@font-face{font-family:DM Sans;src:url(/fonts/DMSans.woff2) format("woff2");font-weight:100 1000;font-display:swap}@font-face{font-family:"DM Serif Display";src:url(/fonts/DMSerif.woff2) format("woff2");font-weight:400;font-display:swap}:root{--surface:#FAFCFD;--surface-soft:#F4F8FB;--surface-deep:#E6F2F8;--ink:#0B2E5B;--ink-soft:#1F4575;--ink-muted:#5A6B7E;--ink-faint:#A4B0BD;--line:rgba(11,46,91,.12);--line-soft:rgba(11,46,91,.07);--accent:#0890BC;--accent-bright:#0EACDD;--accent-sky:#39CFFF;--accent-deep:#076F91;--accent-wash:rgba(8,144,188,.08);--navy-black:#04101F;--navy-deep:#071A31;--navy-panel:#0F2A4C;--green:#16A34A;--green-wash:rgba(22,163,74,.1);--red:#DC2626;--red-wash:rgba(220,38,38,.09);--amber:#D97706;--amber-wash:rgba(217,119,6,.11);--pop:#B45309;--paper:#fff;--shadow-card:0 1px 2px rgba(11,46,91,.04),0 2px 8px rgba(11,46,91,.05);--shadow-strong:0 12px 40px rgba(11,46,91,.14),0 4px 8px rgba(11,46,91,.06);--shadow-cta:0 4px 14px rgba(8,144,188,.28),0 1px 3px rgba(11,46,91,.08);--r:16px;--r-sm:12px;--serif:"DM Serif Display",Georgia,serif;--sans:"DM Sans","Avenir Next",system-ui,-apple-system,sans-serif}*{box-sizing:border-box}html,body{margin:0;padding:0}body{font-family:var(--sans);color:var(--ink);background:var(--surface);-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer}a{color:var(--accent-deep)}:focus-visible{outline:3px solid var(--accent-bright);outline-offset:2px;border-radius:6px}.ic{flex:none;vertical-align:middle}.logo{display:inline-flex;align-items:center;gap:.45em;font-family:var(--serif);font-size:1.25em;color:var(--ink);text-decoration:none;letter-spacing:.005em}.logo .logo-mark{width:1.5em;height:1.15em;color:var(--accent)}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5em;border:1px solid var(--line);background:var(--paper);color:var(--ink);border-radius:999px;padding:.7em 1.25em;font-weight:600;line-height:1.1;transition:transform .12s ease,background .15s,box-shadow .15s;text-decoration:none;white-space:nowrap}.btn:active{transform:scale(.97)}.btn.primary{background:var(--accent);border-color:var(--accent);color:#fff;box-shadow:var(--shadow-cta)}.btn.primary:hover{background:var(--accent-deep)}.btn.dark{background:var(--ink);border-color:var(--ink);color:#fff}.btn.ghost{background:transparent;border-color:transparent}.btn.danger{color:var(--red);border-color:#dc26264d}.btn[disabled]{opacity:.45;pointer-events:none}.pill{display:inline-flex;align-items:center;gap:.35em;border-radius:999px;padding:.2em .65em;font-size:.78em;font-weight:600;background:var(--surface-deep);color:var(--ink-soft);white-space:nowrap}.pill.green{background:var(--green-wash);color:#11803a}.pill.red{background:var(--red-wash);color:#b91c1c}.pill.amber{background:var(--amber-wash);color:#a1580a}.pill.blue{background:var(--accent-wash);color:var(--accent-deep)}.pill.grey{background:#eef1f5;color:var(--ink-muted)}.toast{position:fixed;left:50%;bottom:24px;transform:translate(-50%) translateY(20px);background:var(--navy-deep);color:#fff;padding:.8em 1.2em;border-radius:14px;box-shadow:var(--shadow-strong);opacity:0;transition:.25s;z-index:9999;font-weight:500;max-width:min(92vw,520px);text-align:center;pointer-events:none}.toast.show{opacity:1;transform:translate(-50%) translateY(0)}.demo-ribbon{font-size:12px;letter-spacing:.02em;color:var(--ink-muted)}.frame-img{display:block;width:100%;height:auto;object-fit:contain;-webkit-user-drag:none;user-select:none}.spinner{width:2.2em;height:2.2em;border-radius:50%;border:3px solid rgba(255,255,255,.25);border-top-color:var(--accent-sky);animation:spin .8s linear infinite;display:inline-block}.panel .spinner,.content .spinner,.auth .spinner{border-color:var(--line);border-top-color:var(--accent)}@keyframes spin{to{transform:rotate(360deg)}}.offline-bar{background:var(--amber-wash);color:var(--pop);font-size:.7em;font-weight:600;padding:.45em 1em;display:flex;gap:.4em;align-items:center}.enroll{display:flex;flex-direction:column;gap:.8em}.code-inp{font-size:2.2em;letter-spacing:.3em;text-align:center;text-transform:uppercase;border:2px solid var(--line);border-radius:var(--r);padding:.4em;font-weight:700;font-variant-numeric:tabular-nums}.code-inp:focus{border-color:var(--accent);outline:none}.note.err,.err{color:var(--red)}.field{border:1px solid var(--line);border-radius:var(--r-sm);padding:.75em 1em;background:#fff;width:100%}.fimg img,.detail-img img,.strip img,.rev-thumb img{width:100%;height:100%;object-fit:contain}.glasses img{width:100%;height:100%;display:block}.k-screen .face-chip{display:inline-flex;gap:.4em;align-items:center}.pd-card-hint{position:absolute;left:50%;transform:translate(-50%);border:2px dashed rgba(57,207,255,.9);border-radius:.4em;pointer-events:none}.gaze{position:absolute;color:#fff;background:#04101f99;border-radius:999px;padding:.35em .8em;font-size:.75em;font-weight:700;display:flex;gap:.4em;align-items:center;z-index:4}.gaze.up{top:.6em;left:50%;transform:translate(-50%)}.gaze.left{left:.6em;top:40%}.gaze.right{right:.6em;top:40%}.qr-box{display:grid;place-items:center;gap:.5em;padding:1em;background:#fff;border-radius:var(--r);border:1px solid var(--line)}.qr-box img{width:11em;height:11em}.auth{min-height:100dvh;display:grid;place-items:center;background:var(--surface-soft);padding:1.5em}.auth-card{background:#fff;border-radius:20px;box-shadow:var(--shadow-strong);padding:2em;width:min(420px,100%);display:flex;flex-direction:column;gap:.9em}.auth-card h1{font-family:var(--serif);font-weight:400;margin:.2em 0 0;font-size:1.7em}.auth-card p{margin:0;color:var(--ink-muted);font-size:.92em}.auth-card label{display:flex;flex-direction:column;gap:.3em;font-size:.85em;font-weight:600}.auth-card input{border:1px solid var(--line);border-radius:10px;padding:.7em .9em}.auth-card .divider{display:flex;align-items:center;gap:.6em;color:var(--ink-faint);font-size:.8em}.auth-card .divider:before,.auth-card .divider:after{content:"";flex:1;height:1px;background:var(--line)}.auth-card .qr{align-self:center;width:180px;height:180px}.track-steps{display:flex;flex-direction:column;gap:.6em;margin:.5em 0}.track-steps div{display:flex;gap:.6em;align-items:center;color:var(--ink-faint)}.track-steps div.done{color:var(--ink)}.track-steps div.done .ic{color:var(--green)}.k-bar:empty{display:none}
