@font-face{font-family:Questrial;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/questrial-vietnamese-400-normal-e8YnA9wZ.woff2)format("woff2"),url(/assets/questrial-vietnamese-400-normal-B2ptJQWX.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Questrial;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/questrial-latin-ext-400-normal-rdiUVXr0.woff2)format("woff2"),url(/assets/questrial-latin-ext-400-normal-urOzOTIY.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Questrial;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/questrial-latin-400-normal-DNhQdR1R.woff2)format("woff2"),url(/assets/questrial-latin-400-normal-BcF-iMQl.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--background:#080808;--surface:#161616;--surface-hover:#222;--key-edge:#000;--border:#2a2a2a;--danger:#ff6b6b;--text:#fafafa;--text-muted:#b8b8b8;--accent:#ff4a1c;--live:#7c5cfa;--warning:#ffb199;--font:"Questrial", system-ui, sans-serif;--font-mono:ui-monospace, "SF Mono", "Cascadia Mono", Menlo, monospace;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box;margin:0}html,body,#root{height:100%}body{background:var(--background);color:var(--text);font-family:var(--font);-webkit-font-smoothing:antialiased;font-size:28px;line-height:1.4}h1{letter-spacing:-.01em;font-size:64px;font-weight:400;line-height:1.1}.screen{min-height:100%;padding:48px 64px}.centered{text-align:center;place-content:center;gap:16px;display:grid}.wordmark{letter-spacing:.02em;font-size:32px}.lead{color:var(--text-muted);font-size:32px}.button{min-height:72px;font:inherit;cursor:pointer;border:2px solid #0000;border-radius:999px;padding:0 36px}.button.primary{background:var(--accent);color:var(--background)}.button.quiet{border-color:var(--border);color:var(--text);background:0 0}.button:focus-visible,button:focus-visible{outline:4px solid var(--text);outline-offset:4px}.headset-strip{border-top:1px solid var(--border);background:var(--background);color:var(--text-muted);justify-content:center;align-items:center;gap:16px;padding:20px 64px;font-size:24px;display:flex;position:fixed;inset:auto 0 0}.headset-dot{background:var(--accent);border-radius:50%;width:14px;height:14px;animation:2.4s ease-in-out infinite headset-breathe}.headset-name{border:1px solid var(--border);border-radius:999px;margin-left:16px;padding:4px 14px;font-size:20px}.launching h1{max-width:18ch}.launch-pulse{background:var(--accent);border-radius:50%;width:96px;height:96px;margin:0 auto;animation:1.2s ease-in-out infinite headset-breathe}@keyframes headset-breathe{0%,to{opacity:.45;transform:scale(.9)}50%{opacity:1;transform:scale(1)}}@media (prefers-reduced-motion:reduce){.headset-dot,.launch-pulse{animation:none}}.practice{flex-direction:column;gap:48px;display:flex}.practice-header{justify-content:space-between;align-items:center;display:flex}.practice-options{grid-template-columns:repeat(auto-fit,minmax(360px,1fr));gap:32px;display:grid}.practice-option{text-align:left;background:var(--surface);border:2px solid var(--border);min-height:280px;color:var(--text);font:inherit;cursor:pointer;border-radius:28px;flex-direction:column;justify-content:flex-end;gap:12px;padding:40px;display:flex}.practice-option:hover{border-color:var(--accent)}.practice-title{font-size:56px;line-height:1.1}.practice-hint{color:var(--text-muted)}.profile-summary{flex-direction:column;gap:12px;min-height:132px;display:flex}.skeleton{background:var(--surface);border-radius:16px;animation:1.4s ease-in-out infinite skeleton-pulse;display:block}.skeleton-title{width:min(640px,80%);height:70px}.skeleton-line{width:min(420px,60%);height:40px}@keyframes skeleton-pulse{50%{opacity:.5}}@media (prefers-reduced-motion:reduce){.skeleton{animation:none}}.pairing{flex-direction:column;gap:24px;display:flex}.pairing-layout{flex-wrap:wrap;flex:1;justify-content:center;align-items:center;gap:96px;display:flex}.pairing-details{flex-direction:column;gap:24px;max-width:600px;display:flex}.pairing-details strong{color:var(--text);font-weight:400}.digit-boxes{gap:20px;margin-top:16px;display:flex}.digit-box{border:3px solid var(--border);background:var(--surface);width:112px;height:140px;font-family:var(--font-mono);font-variant-numeric:tabular-nums;border-radius:24px;place-items:center;font-size:80px;font-weight:600;transition:border-color .12s ease-out;display:grid}.digit-box.is-next{border-color:var(--accent)}.is-checking .digit-box{border-color:var(--text-muted);animation:.9s ease-in-out infinite checking}.is-wrong .digit-box{border-color:var(--danger)}.shake{animation:.42s cubic-bezier(.36,.07,.19,.97) shake}.pairing-status{min-height:1.4em;color:var(--text-muted)}.pairing-status.is-problem{color:var(--warning)}.keypad{grid-template-columns:repeat(3,120px);grid-auto-rows:108px;gap:16px;display:grid}.key{border:2px solid var(--border);background:var(--surface);color:var(--text);font-family:var(--font-mono);cursor:pointer;-webkit-user-select:none;user-select:none;touch-action:manipulation;box-shadow:0 6px 0 var(--key-edge);border-radius:24px;place-items:center;font-size:52px;font-weight:600;transition:transform 60ms ease-out,box-shadow 60ms ease-out,background-color .12s ease-out,border-color .12s ease-out;display:grid}.key:hover:not(:disabled){background:var(--surface-hover);border-color:var(--accent)}.key:active:not(:disabled){box-shadow:0 0 0 var(--key-edge);background:var(--accent);border-color:var(--accent);color:var(--background);transform:translateY(6px)}.key:disabled{opacity:.45;cursor:default}.key-quiet{color:var(--text-muted)}@keyframes shake{20%,60%{transform:translate(-16px)}40%,80%{transform:translate(16px)}}@keyframes checking{50%{opacity:.5}}@media (prefers-reduced-motion:reduce){.shake,.is-checking .digit-box{animation:none}.key{transition:none}}
