:root{--app-fallback-bg: #020617}#root{min-height:100dvh;background:var(--app-fallback-bg)}.app-shell{--bg: #0757b8;--bg-soft: #0757b8;--panel: #93d8ff;--panel-strong: #c7efff;--text: #06234c;--page-text: #f8fbff;--muted: #315c82;--page-muted: #d8efff;--accent: #075bd8;--accent-strong: #0047a8;--accent-bright: #1597ff;--accent-soft: #d7f1ff;--border: #4ab8f1;--success: #0f8a4b;--warning: #b77900;--danger: #c8324a;--shadow: 0 24px 54px rgba(3, 40, 92, .28);--shadow-soft: 0 12px 26px rgba(3, 40, 92, .18);--glow: 0 20px 48px rgba(31, 156, 255, .34);--grid-color: rgba(248, 251, 255, .16);--surface: #dff5ff;--surface-muted: #bde9ff;--surface-alt: #c6edff;--surface-warm: #fff1df;--control-bg: #ffffff;--control-text: #06234c;--segment-bg: #c8ecff;--border-strong: color-mix(in srgb, var(--accent) 56%, transparent);--focus-ring: color-mix(in srgb, var(--accent) 34%, transparent);--ink: var(--text);--inactive: #6188a8;--hero-copy: var(--page-muted);--primary-text: #ffffff;--camera-panel: #073767;--camera-bg: #021d38;--camera-badge-bg: rgba(255, 255, 255, .9);--camera-badge-border: color-mix(in srgb, var(--accent) 36%, transparent);--camera-badge-text: var(--control-text);--camera-badge-muted: var(--muted);--overlay-bg: rgba(4, 25, 55, .68);--success-soft: color-mix(in srgb, var(--success) 18%, transparent);--danger-soft: color-mix(in srgb, var(--danger) 18%, transparent);--mode-blue: #075bd8;--mode-blue-soft: #d7f1ff;--mode-success: #0f8a4b;--mode-success-soft: #dff5e9;--mode-warm: #f08c2e;--mode-warm-soft: #fff1df;--logo-shadow: none;--visual-shadow: drop-shadow(0 28px 45px rgba(3, 40, 92, .26));--hand-connector: rgba(21, 151, 255, .9);--hand-landmark: rgba(147, 216, 255, .95);--hand-guidance: rgba(255, 255, 255, .94);--pulse-blue: #1597ff;--pulse-blue-soft: rgba(21, 151, 255, .24);min-height:100dvh;overflow-x:hidden;color:var(--ink);color-scheme:light;background:var(--bg)}.app-shell[data-theme=grove]{--bg: #16845f;--bg-soft: #16845f;--panel: #9ce7c2;--panel-strong: #d3f8e4;--text: #06331f;--page-text: #f4fff8;--muted: #3d6f59;--page-muted: #d9f7e8;--accent: #087a61;--accent-strong: #045944;--accent-bright: #11aa86;--accent-soft: #d9f7e8;--border: #4fc996;--success: #087a45;--warning: #9b6900;--danger: #bd3f55;--shadow: 0 24px 54px rgba(2, 53, 34, .28);--shadow-soft: 0 12px 26px rgba(2, 53, 34, .18);--glow: 0 20px 48px rgba(55, 216, 159, .3);--surface: #ddf8e9;--surface-muted: #bdf1d4;--surface-alt: #c7f4dc;--surface-warm: #fff2c8;--control-bg: #ffffff;--control-text: #06331f;--segment-bg: #c3f1d7;--grid-color: rgba(244, 255, 248, .15);--camera-panel: #064833;--camera-bg: #032518;--camera-badge-bg: rgba(255, 255, 255, .9);--camera-badge-text: var(--control-text);--overlay-bg: rgba(2, 36, 24, .68);--visual-shadow: drop-shadow(0 28px 45px rgba(2, 53, 34, .26));--hand-connector: rgba(17, 170, 134, .9);--hand-landmark: rgba(156, 231, 194, .95);--hand-guidance: rgba(255, 255, 255, .94)}.app-shell[data-theme=signiq]{--bg: #2b2d31;--bg-soft: #313338;--panel: #404249;--panel-strong: #4e5058;--text: #f2f3f5;--page-text: #f2f3f5;--muted: #c4c9ce;--page-muted: #c4c9ce;--accent: #5aaeff;--accent-strong: #0b6fc2;--accent-bright: #1597ff;--accent-soft: #4e5058;--border: #5c5f66;--border-strong: #6d6f78;--focus-ring: rgba(21, 151, 255, .3);--primary-border: #6d6f78;--active-border: #6d6f78;--difficulty-border: #6d6f78;--mode-card-hover-border: #6d6f78;--mode-icon-border: #6d6f78;--avatar-border: #6d6f78;--ghost-border: #6d6f78;--eligible-border: #6d6f78;--nudge-border: #6d6f78;--ghost-guide-pulse-border: #6d6f78;--success: #0f8a4b;--warning: #b77900;--danger: #c8324a;--shadow: 0 24px 58px rgba(1, 12, 30, .32);--shadow-soft: 0 14px 30px rgba(1, 12, 30, .18);--glow: 0 20px 48px rgba(21, 151, 255, .25);--surface: #45474e;--surface-muted: #4e5058;--surface-alt: #56585f;--surface-warm: #56585f;--control-bg: var(--panel);--control-text: #f2f3f5;--segment-bg: #313338;--inactive: #aeb4bc;--grid-color: rgba(151, 198, 238, .065);--mode-blue: #075bd8;--mode-blue-soft: #bdd5eb;--mode-success: #0f8a4b;--mode-success-soft: #c4ddd5;--mode-warm-soft: #e6d0bf;--camera-panel: #2b2d31;--camera-bg: #111214;--camera-badge-bg: rgba(64, 66, 73, .94);--camera-badge-border: rgba(92, 95, 102, .92);--camera-badge-text: var(--control-text);--camera-badge-muted: var(--muted);--overlay-bg: rgba(4, 17, 35, .74);--visual-shadow: drop-shadow(0 28px 45px rgba(0, 0, 0, .36));--hand-connector: rgba(21, 151, 255, .9);--hand-landmark: rgba(147, 216, 255, .95);--hand-guidance: rgba(255, 255, 255, .94);background:radial-gradient(ellipse 56rem 34rem at 16% 28%,rgba(56,189,248,.3),rgba(56,189,248,.08) 42%,transparent 72%),radial-gradient(ellipse 54rem 34rem at 82% 38%,rgba(45,212,191,.22),rgba(45,212,191,.07) 44%,transparent 74%),radial-gradient(ellipse 64rem 40rem at 62% 98%,rgba(129,140,248,.2),rgba(129,140,248,.06) 46%,transparent 76%),linear-gradient(135deg,rgba(21,151,255,.1) 0%,transparent 42%,rgba(45,212,191,.08) 100%),linear-gradient(180deg,#06111f,#071827,#030712);color-scheme:dark}.app-shell[data-theme=signiq-light]{--bg: #d9e5f2;--bg-soft: #e6eef7;--panel: #f8fbff;--panel-strong: #ffffff;--text: #061a38;--page-text: #061a38;--muted: #426079;--page-muted: #426079;--accent: #075bd8;--accent-strong: #0047a8;--accent-bright: #1597ff;--accent-soft: #d7e9f8;--border: #a8b7c8;--border-strong: #7f90a3;--focus-ring: rgba(21, 151, 255, .22);--primary-border: #7f90a3;--active-border: #7f90a3;--difficulty-border: #7f90a3;--mode-card-hover-border: #7f90a3;--mode-icon-border: #98aabd;--avatar-border: #98aabd;--ghost-border: #98aabd;--eligible-border: #7f90a3;--nudge-border: #7f90a3;--ghost-guide-pulse-border: #7f90a3;--success: #0f8a4b;--warning: #b77900;--danger: #c8324a;--shadow: none;--shadow-soft: none;--glow: none;--surface: #e2ebf5;--surface-muted: #cfdae7;--surface-alt: #d7e3ee;--surface-warm: #fff1df;--control-bg: #ffffff;--control-text: #061a38;--segment-bg: #cfdae7;--grid-color: rgba(6, 26, 56, .12);--mode-blue-soft: #d7e9f8;--mode-success-soft: #d5eadf;--mode-warm-soft: #eadbc9;--camera-panel: #071426;--camera-bg: #02050a;--camera-badge-bg: rgba(255, 255, 255, .94);--camera-badge-border: rgba(135, 150, 168, .54);--camera-badge-text: #061a38;--camera-badge-muted: #426079;--overlay-bg: rgba(12, 27, 46, .38);--visual-shadow: none;--hand-connector: rgba(21, 151, 255, .9);--hand-landmark: rgba(147, 190, 220, .95);--hand-guidance: rgba(255, 255, 255, .94);background:radial-gradient(circle at 18% 34%,rgba(21,151,255,.46) 0,rgba(21,151,255,.22) 18rem,transparent 36rem),radial-gradient(circle at 76% 38%,rgba(45,212,191,.36) 0,rgba(45,212,191,.18) 17rem,transparent 34rem),radial-gradient(circle at 70% 88%,rgba(129,140,248,.38) 0,rgba(129,140,248,.19) 20rem,transparent 38rem),linear-gradient(180deg,#f1f8ff,#d6e5f3,#c4d5e8);color-scheme:light}.app-shell[data-theme=watermelon]{--bg: #073f4c;--bg-soft: #0a4a59;--panel: #ffd166;--panel-strong: #ffe29a;--text: #062f39;--page-text: #fff7fb;--muted: #386a70;--page-muted: #c6f7ec;--accent: #ef3f70;--accent-strong: #c92f59;--accent-bright: #ef3f70;--accent-soft: #ffd7e2;--border: #16d2a3;--success: #16d2a3;--warning: #c88b1f;--danger: #d22e57;--shadow: 0 24px 54px rgba(2, 43, 52, .32);--shadow-soft: 0 12px 26px rgba(2, 43, 52, .22);--glow: 0 20px 48px rgba(239, 63, 112, .3);--surface: #fff0be;--surface-muted: #afeedc;--surface-alt: #d9f8ef;--surface-warm: #ffdbe5;--control-bg: #fff8df;--control-text: #062f39;--segment-bg: #f7dc91;--grid-color: rgba(255, 209, 102, .18);--mode-blue: #1895ad;--mode-blue-soft: #cceff4;--mode-success: #16d2a3;--mode-success-soft: #d9f8ef;--mode-warm: #ef3f70;--mode-warm-soft: #ffd7e2;--camera-panel: #063440;--camera-bg: #031b22;--camera-badge-bg: rgba(255, 248, 223, .94);--camera-badge-text: var(--control-text);--overlay-bg: rgba(5, 38, 47, .72);--visual-shadow: drop-shadow(0 28px 45px rgba(2, 43, 52, .3));--hand-connector: rgba(22, 210, 163, .9);--hand-landmark: rgba(255, 209, 102, .95);--hand-guidance: rgba(255, 247, 251, .94)}.app-shell[data-theme=ember]{--bg: #cf6231;--bg-soft: #cf6231;--panel: #ffc28f;--panel-strong: #ffe2c5;--text: #4a1c09;--page-text: #fff7ed;--muted: #815034;--page-muted: #ffe7d1;--accent: #c4421f;--accent-strong: #8f2d13;--accent-bright: #ef6b35;--accent-soft: #ffe5cf;--border: #f09b63;--success: #287a45;--warning: #9d6800;--danger: #b83131;--shadow: 0 24px 54px rgba(93, 34, 9, .28);--shadow-soft: 0 12px 26px rgba(93, 34, 9, .18);--glow: 0 20px 48px rgba(239, 107, 53, .3);--surface: #fff0df;--surface-muted: #ffd6b4;--surface-alt: #ffdabf;--surface-warm: #ffd0be;--control-bg: #ffffff;--control-text: #4a1c09;--segment-bg: #ffd6b4;--grid-color: rgba(255, 247, 237, .16);--camera-panel: #67280f;--camera-bg: #2c0e04;--camera-badge-bg: rgba(255, 255, 255, .9);--camera-badge-text: var(--control-text);--overlay-bg: rgba(65, 22, 6, .68);--visual-shadow: drop-shadow(0 28px 45px rgba(93, 34, 9, .26));--hand-connector: rgba(239, 107, 53, .9);--hand-landmark: rgba(255, 194, 143, .95);--hand-guidance: rgba(255, 255, 255, .94)}.app-shell.screen-landing,.app-shell.screen-mode-select{min-height:100vh;min-height:100dvh}.theme-picker{position:fixed;right:14px;bottom:14px;z-index:20;width:44px;height:44px;display:grid;place-items:center;padding:0;border:1px solid var(--border);border-radius:50%;color:var(--control-text);background:var(--control-bg);box-shadow:none;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);cursor:pointer;transition:color .16s ease,border-color .16s ease,background .16s ease,transform .16s ease}:is(.app-shell[data-theme=signiq]) .theme-picker,:is(.app-shell[data-theme=signiq]) .theme-picker-nav{color:var(--control-text);border-color:color-mix(in srgb,var(--border) 58%,transparent);background:var(--control-bg)}.theme-picker:hover{color:var(--accent);border-color:var(--border-strong);transform:translateY(-2px)}:is(.app-shell[data-theme=signiq]) .theme-picker:hover,:is(.app-shell[data-theme=signiq]) .theme-picker:focus-within,:is(.app-shell[data-theme=signiq]) .theme-picker-nav:hover,:is(.app-shell[data-theme=signiq]) .theme-picker-nav:focus-within{color:var(--control-text);border-color:color-mix(in srgb,var(--border-strong) 72%,transparent);background:var(--control-bg)}.theme-picker:focus-within{outline:3px solid var(--focus-ring);outline-offset:3px}.theme-picker svg{width:20px;height:20px;flex:0 0 auto;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round;pointer-events:none}.theme-picker select{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;border:0;opacity:0;cursor:pointer}.theme-picker-nav{display:none}.screen{width:min(1180px,calc(100% - 32px));min-height:100dvh;margin:0 auto;padding:32px 0}.app-shell.page-transition-forward .mode-screen,.app-shell.page-transition-back .landing-screen{will-change:opacity,transform}.app-shell.page-transition-forward .mode-screen{animation:page-forward-in .52s cubic-bezier(.2,.82,.22,1) both}.app-shell.page-transition-back .landing-screen{animation:page-back-in .52s cubic-bezier(.2,.82,.22,1) both}.app-shell:not(.screen-practice) .screen{padding-top:86px}.app-shell.screen-practice .app-topbar{display:none}.app-topbar{position:fixed;top:14px;z-index:30;display:flex;flex-wrap:wrap;align-items:center;gap:10px}.app-topbar-left{left:14px}.app-topbar-right{right:14px;justify-content:flex-end}.profile-menu,.inline-actions{position:relative;display:flex;flex-wrap:wrap;align-items:center;gap:10px}.nav-link-button{min-height:42px;display:inline-flex;align-items:center;gap:8px;padding:0 12px;border:1px solid transparent;border-radius:999px;color:var(--page-text);background:color-mix(in srgb,var(--bg-soft) 42%,transparent);font-weight:850;transition:transform .18s ease,border-color .18s ease,background .18s ease,color .18s ease}.nav-link-button:hover,.nav-link-button:focus-visible{color:var(--primary-text);border-color:color-mix(in srgb,var(--accent-bright) 32%,transparent);background:color-mix(in srgb,var(--accent-bright) 82%,var(--bg-soft) 18%);outline:none;transform:translateY(-1px)}.leaderboard-nav-button{min-height:46px;padding-inline:20px;color:var(--control-text);border-color:color-mix(in srgb,var(--border) 58%,transparent);background:var(--control-bg);box-shadow:var(--shadow-soft)}.leaderboard-nav-button:hover,.leaderboard-nav-button:focus-visible{color:var(--control-text);border-color:color-mix(in srgb,var(--border-strong) 72%,transparent);background:var(--control-bg)}.leaderboard-nav-button-mobile{display:none}.profile-chip{width:42px;height:42px;min-height:42px;display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:0;border:0;border-radius:50%;color:var(--control-text);background:transparent;box-shadow:none;font-weight:850}.profile-chip .avatar-badge{width:42px;height:42px}.profile-popover{position:absolute;top:calc(100% + 8px);right:0;z-index:35;min-width:168px;display:grid;gap:8px;padding:8px;border:1px solid var(--border);border-radius:16px;background:var(--panel-strong);box-shadow:var(--shadow)}.profile-menu-item{min-height:40px;display:inline-flex;align-items:center;justify-content:flex-start;gap:8px;padding:0 12px;border:1px solid color-mix(in srgb,var(--border) 64%,transparent);border-radius:12px;color:var(--ink);background:color-mix(in srgb,var(--surface-alt) 72%,#ffffff 28%);font-weight:850}.profile-menu-item:hover,.profile-menu-item:focus-visible{border-color:var(--border-strong);background:var(--surface-alt);outline:none}.profile-menu-item-sign-out{color:var(--ink)}.profile-menu-item-sign-out:hover,.profile-menu-item-sign-out:focus-visible{color:var(--ink)}:is(.app-shell[data-theme=signiq],.app-shell[data-theme=signiq-light]) .nav-link-button:not(.leaderboard-nav-button){color:var(--page-muted);background:#0d274857}:is(.app-shell[data-theme=signiq],.app-shell[data-theme=signiq-light]) .profile-popover{border-color:color-mix(in srgb,var(--border) 58%,transparent);background:#e8f5ff;box-shadow:0 20px 44px #010c1e3d}.app-shell[data-theme=signiq] .profile-popover{background:var(--panel-strong)}.app-shell[data-theme=signiq] .profile-menu-item{background:var(--control-bg)}.app-shell[data-theme=signiq] .profile-menu-item:hover,.app-shell[data-theme=signiq] .profile-menu-item:focus-visible{background:var(--surface-alt)}.app-shell[data-theme=signiq-light] .nav-link-button:not(.leaderboard-nav-button){color:var(--control-text);background:color-mix(in srgb,var(--surface-alt) 76%,#ffffff 24%)}.avatar-badge{--avatar-bg: var(--accent-bright);--avatar-color: #ffffff;--avatar-border: color-mix(in srgb, var(--avatar-bg) 72%, #ffffff 28%);width:46px;height:46px;display:inline-grid;place-items:center;flex:0 0 auto;border:1px solid var(--avatar-border);border-radius:50%;color:var(--avatar-color);background:var(--avatar-bg);box-shadow:none}.avatar-sm{width:32px;height:32px}.avatar-badge svg{width:72%;height:72%;fill:none;stroke:currentColor;stroke-width:3.2;stroke-linecap:round;stroke-linejoin:round}.avatar-blue{--avatar-bg: #1597ff}.avatar-ocean{--avatar-bg: #06b6d4}.avatar-green{--avatar-bg: #16a34a}.avatar-orange{--avatar-bg: #f97316}.avatar-purple{--avatar-bg: #7c3aed}.avatar-picker{display:grid;gap:10px;padding:0;border:0}.avatar-picker-options{display:flex;flex-wrap:wrap;gap:10px}.avatar-choice{width:58px;height:58px;display:grid;place-items:center;padding:0;border:2px solid transparent;border-radius:50%;background:transparent;transition:border-color .16s ease,background .16s ease,transform .16s ease}.avatar-choice:hover,.avatar-choice:focus-visible{border-color:var(--border);outline:none;transform:translateY(-1px)}.avatar-choice.is-selected{border-color:var(--accent);background:var(--accent-soft)}.field-hint strong{font-weight:900}.landing-screen{display:flex;align-items:center;justify-content:center;text-align:center}.screen-landing .landing-screen,.screen-mode-select .mode-screen{min-height:100vh;min-height:100dvh}.hero-panel{position:relative;z-index:1;display:grid;justify-items:center;align-content:center;width:min(720px,100%)}.hero-logo{display:block;width:min(590px,100%);height:auto;margin-top:12px;filter:var(--logo-shadow);transform-origin:center;animation:hero-arrive .52s ease both,logo-breathe 5.2s ease-in-out .7s infinite;will-change:transform}.eyebrow,.panel-label{display:inline-flex;align-items:center;gap:8px;padding:6px 10px;border:1px solid var(--border);border-radius:8px;color:var(--accent);background:var(--surface-alt);font-size:.78rem;font-weight:850;letter-spacing:0;text-transform:uppercase}.hero-panel h1,.screen-header h1,.practice-header h1{margin-top:12px;color:var(--ink);font-size:clamp(3rem,8vw,6.4rem);line-height:.96;letter-spacing:0}.screen-header h1,.practice-header h1{font-size:clamp(2rem,4vw,3.2rem)}.hero-subtitle{width:min(600px,100%);margin:18px 0 26px;color:var(--hero-copy);font-size:clamp(1.18rem,1.7vw,1.45rem);line-height:1.38}button{border:0;border-radius:14px;cursor:pointer;font:inherit}button:disabled{cursor:not-allowed;opacity:.45}.primary-button,.secondary-button,.ghost-button{min-height:46px;padding:0 20px;color:var(--ink);font-weight:800;transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease,background .18s ease,color .18s ease}.primary-button{color:var(--primary-text);border:1px solid var(--primary-border, color-mix(in srgb, var(--primary-text) 18%, var(--accent-bright)));background:var(--accent-bright);box-shadow:none}.landing-screen .hero-panel .primary-button{min-width:min(300px,100%);min-height:clamp(50px,4.2vw,60px);padding:0 36px;border-radius:999px;font-size:clamp(1.08rem,1.55vw,1.32rem);font-weight:800}.secondary-button,.ghost-button{color:var(--control-text);border:1px solid var(--border);background:var(--control-bg);box-shadow:none}.google-auth-button{display:inline-flex;align-items:center;justify-content:center;gap:10px}.google-logo{width:20px;height:20px;flex:0 0 auto}.ghost-button{border-color:var(--ghost-border, color-mix(in srgb, var(--accent) 28%, var(--border)))}.primary-button:hover,.secondary-button:hover,.ghost-button:hover{transform:translateY(-1px);border-color:var(--border-strong);box-shadow:none}.primary-button:hover{background:var(--accent-bright)}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:120;display:grid;place-items:center;padding:18px;background:var(--overlay-bg);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);animation:modal-backdrop-in .18s ease-out}.modal-backdrop.is-closing{pointer-events:none;animation:modal-backdrop-out .18s ease-in forwards}.auth-card{width:min(520px,100%);max-height:min(780px,calc(100dvh - 36px));display:grid;gap:12px;padding:clamp(18px,4vw,28px);overflow:auto;border:1px solid var(--border-strong);border-radius:8px;color:var(--ink);background:var(--panel);box-shadow:0 30px 90px #00000061;transform-origin:center;animation:modal-pop-in .22s cubic-bezier(.2,.9,.22,1.18)}.modal-backdrop.is-closing .auth-card{animation:modal-pop-out .18s cubic-bezier(.4,0,.8,.2) forwards}.modal-header,.leaderboard-header{display:flex;align-items:flex-start;justify-content:space-between;gap:18px}.auth-modal-header{flex-direction:column}.modal-header h2,.leaderboard-header h1{margin:10px 0 0;color:var(--ink);font-size:clamp(1.8rem,4vw,3rem);line-height:1}.leaderboard-header h1{margin-top:0}.field-label{color:var(--muted);font-size:.82rem;font-weight:850;text-transform:uppercase}.field-hint{color:var(--muted);font-size:.82rem;line-height:1.35}.text-field{width:100%;min-height:48px;padding:0 14px;border:1px solid var(--input-border, var(--border));border-radius:8px;color:var(--ink);background:var(--input-bg, var(--control-bg));font:inherit;font-weight:800;outline:none}.text-field:focus{border-color:var(--border-strong);box-shadow:0 0 0 3px var(--focus-ring)}.password-field{position:relative}.password-field .text-field{padding-right:52px}.password-toggle{position:absolute;top:50%;right:10px;display:grid;place-items:center;width:32px;height:32px;padding:0;border:0;border-radius:999px;color:var(--muted);background:transparent;transform:translateY(-50%)}.password-toggle:hover,.password-toggle:focus-visible{color:var(--accent);outline:none}.password-toggle svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}.form-message{padding:10px 12px;border:1px solid var(--border);border-radius:8px;color:var(--ink);background:var(--surface);font-size:.92rem;font-weight:800;line-height:1.35}.form-message.is-error{border-color:color-mix(in srgb,var(--danger) 42%,transparent);color:var(--danger);background:color-mix(in srgb,var(--danger) 10%,var(--surface))}.auth-switch{width:100%;justify-self:stretch;margin-top:14px;box-shadow:none}.back-button{color:var(--primary-text);border-color:color-mix(in srgb,var(--danger) 70%,var(--border));background:var(--danger)}.back-button:hover,.back-button:focus-visible{color:var(--primary-text);border-color:color-mix(in srgb,var(--danger) 86%,var(--primary-text));background:color-mix(in srgb,var(--danger) 86%,#ffffff 14%)}.screen-header,.practice-header{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:28px}.mode-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.mode-screen{display:grid;align-content:center}.mode-screen .screen-header{width:100%}.mode-header{align-items:flex-end}.mode-header h1{margin:0;max-width:720px;color:var(--page-text)}.leaderboard-spotlight{position:relative;width:100%;min-height:78px;display:grid;align-items:center;margin:0 0 18px;padding:30px 62px 12px;overflow:hidden;border:1px solid var(--border);border-radius:24px;color:var(--ink);background:var(--panel);box-shadow:none;cursor:pointer;transition:border-color .18s ease,box-shadow .18s ease,transform .18s ease}.leaderboard-spotlight:hover,.leaderboard-spotlight:focus-visible{border-color:var(--border-strong);box-shadow:none;transform:translateY(-1px);outline:none}.spotlight-toggle,.spotlight-difficulty-tag{position:absolute;top:8px;z-index:2;min-height:24px;display:inline-flex;align-items:center;justify-content:center;padding:0 9px;border:1px solid var(--border);border-radius:8px;font-size:.72rem;font-weight:900;line-height:1}.spotlight-toggle{left:62px;color:var(--control-text);background:var(--control-bg);box-shadow:none}.spotlight-toggle.is-today{color:var(--primary-text);border-color:var(--active-border, var(--accent-bright));background:var(--accent-bright)}.spotlight-difficulty-tag{right:62px;color:var(--primary-text);border-color:var(--difficulty-border, color-mix(in srgb, var(--difficulty-color, var(--mode-blue)) 72%, transparent));background:var(--difficulty-color, var(--mode-blue));animation:spotlight-tag-fade .38s ease both}.spotlight-title-tag{display:none}.spotlight-title-tag,.spotlight-difficulty-tag.is-alphabet{--difficulty-color: var(--mode-blue)}.app-shell .spotlight-title .spotlight-title-tag{color:#fff}.spotlight-arrow{position:absolute;top:8px;bottom:8px;z-index:2;width:42px;display:grid;place-items:center;padding:0;border:1px solid var(--border);border-radius:999px;color:var(--control-text);background:var(--control-bg);box-shadow:none;transition:border-color .16s ease,color .16s ease,transform .16s ease}.spotlight-arrow:hover,.spotlight-arrow:focus-visible{color:var(--accent);border-color:var(--border-strong);outline:none;transform:scale(1.03)}.spotlight-arrow svg{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:2.6;stroke-linecap:round;stroke-linejoin:round}.spotlight-arrow-prev{left:9px}.spotlight-arrow-next{right:9px}.spotlight-window{min-width:0;overflow:hidden}.spotlight-track{display:flex;transition:transform .52s cubic-bezier(.2,.8,.2,1);will-change:transform}.spotlight-slide{flex:0 0 100%;min-width:100%;display:grid;grid-template-columns:minmax(150px,.9fr) minmax(0,1.15fr) auto;align-items:center;gap:18px}.spotlight-title,.spotlight-player{min-width:0;display:inline-flex;align-items:center;gap:8px}.spotlight-title{color:#020617;font-size:.88rem;font-weight:900}.spotlight-title svg{width:18px;height:18px;flex:0 0 auto;fill:none;stroke:currentColor;stroke-width:2.3;stroke-linecap:round;stroke-linejoin:round}.spotlight-title span,.spotlight-player strong{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.spotlight-player{color:var(--ink)}.spotlight-player strong,.spotlight-time{color:var(--ink);font-weight:950}.spotlight-time{justify-self:end;white-space:nowrap}.spotlight-score-separator{display:none}.app-shell .primary-button,.app-shell .secondary-button,.app-shell .ghost-button{border-radius:999px;box-shadow:var(--shadow-soft)}:is(.app-shell[data-theme=signiq],.app-shell[data-theme=signiq-light]) .primary-button{border-color:color-mix(in srgb,var(--accent-bright) 74%,#ffffff 26%);background:linear-gradient(180deg,#2da7ff,var(--accent-bright))}:is(.app-shell[data-theme=signiq],.app-shell[data-theme=signiq-light]) .secondary-button,:is(.app-shell[data-theme=signiq],.app-shell[data-theme=signiq-light]) .ghost-button,:is(.app-shell[data-theme=signiq],.app-shell[data-theme=signiq-light]) .profile-chip{border-color:color-mix(in srgb,var(--border) 58%,transparent);background:color-mix(in srgb,var(--surface-alt) 76%,#ffffff 24%)}.app-shell[data-theme=signiq] .secondary-button,.app-shell[data-theme=signiq] .ghost-button{background:var(--control-bg)}:is(.app-shell[data-theme=signiq],.app-shell[data-theme=signiq-light]) .profile-chip{border-color:transparent;background:transparent;box-shadow:none}.app-shell[data-theme=signiq-light] .secondary-button,.app-shell[data-theme=signiq-light] .ghost-button,.app-shell[data-theme=signiq-light] .reference-toggle,.app-shell[data-theme=signiq-light] .spotlight-toggle,.app-shell[data-theme=signiq-light] .spotlight-arrow,.app-shell[data-theme=signiq-light] .leaderboard-nav-button,.app-shell[data-theme=signiq-light] .theme-picker{border-color:#b8c7d8;background:#e8f1fa}.app-shell[data-theme=signiq-light] .sign-in-nav-button{color:var(--control-text);border-color:#b8c7d8;background:#e8f1fa}.app-shell[data-theme=signiq-light] .sign-in-nav-button:hover,.app-shell[data-theme=signiq-light] .sign-in-nav-button:focus-visible{color:var(--control-text);border-color:#b8c7d8;background:#e8f1fa}.app-shell[data-theme=signiq-light] .secondary-button:disabled,.app-shell[data-theme=signiq-light] .ghost-button:disabled{background:#ffffff94}:is(.app-shell[data-theme=signiq],.app-shell[data-theme=signiq-light]) .back-button{background:linear-gradient(180deg,#e54a68,var(--danger))}.app-shell .auth-card,.app-shell .leaderboard-card,.app-shell .setup-card,.app-shell .results-card,.app-shell .target-panel,.app-shell .webcam-panel,.app-shell .reading-sequence,.app-shell .reading-answer-panel,.app-shell .result-metric,.app-shell .leaderboard-row,.app-shell .leaderboard-submit-panel{border-color:color-mix(in srgb,var(--border) 54%,transparent);border-radius:22px;box-shadow:var(--shadow-soft)}:is(.app-shell[data-theme=signiq],.app-shell[data-theme=signiq-light]) .leaderboard-spotlight{min-height:74px;border-color:color-mix(in srgb,var(--border) 58%,transparent);border-radius:24px;background:color-mix(in srgb,var(--surface-alt) 76%,#ffffff 24%);box-shadow:0 18px 36px #02142e2e}.app-shell[data-theme=signiq] .leaderboard-spotlight,.app-shell[data-theme=signiq] .auth-card{background:var(--panel)}.app-shell[data-theme=signiq] .leaderboard-nav-button{background:var(--control-bg)}.app-shell[data-theme=signiq] .leaderboard-card{background:var(--panel)}.app-shell[data-theme=signiq] .leaderboard-spotlight .spotlight-arrow{background:inherit}.app-shell[data-theme=signiq-light] .leaderboard-spotlight,.app-shell[data-theme=signiq-light] .segmented-control,.app-shell[data-theme=signiq-light] .empty-state,.app-shell[data-theme=signiq-light] .leaderboard-card{border-color:#b8c7d8;background:#e8f1fa}.app-shell[data-theme=signiq-light] .spotlight-toggle.is-today{color:var(--primary-text);border-color:var(--accent-bright);background:var(--accent-bright)}:is(.app-shell[data-theme=signiq],.app-shell[data-theme=signiq-light]) .spotlight-toggle,:is(.app-shell[data-theme=signiq],.app-shell[data-theme=signiq-light]) .spotlight-difficulty-tag,:is(.app-shell[data-theme=signiq],.app-shell[data-theme=signiq-light]) .spotlight-arrow{border-radius:999px}.app-shell .spotlight-title,.app-shell .spotlight-title span{color:#020617}.leaderboard-spotlight .spotlight-title,.leaderboard-spotlight .spotlight-title>span:not(.spotlight-title-tag),.leaderboard-spotlight .spotlight-title svg{color:#020617!important;stroke:#020617}.app-shell[data-theme=signiq] .leaderboard-spotlight .spotlight-title,.app-shell[data-theme=signiq] .leaderboard-spotlight .spotlight-title span:not(.spotlight-title-tag),.app-shell[data-theme=signiq] .leaderboard-spotlight .spotlight-title svg{color:var(--ink)!important;stroke:var(--ink)}.app-shell .mode-card{min-height:352px;border-color:color-mix(in srgb,var(--mode-accent, var(--accent)) 20%,transparent);border-radius:24px;box-shadow:0 22px 42px #02142e33}.app-shell .mode-card:before{height:7px;border-radius:24px 24px 0 0}.app-shell .mode-card:hover{box-shadow:0 28px 52px #02142e3d;transform:translateY(-5px)}.app-shell .mode-icon{width:58px;height:58px;border-width:2px;border-radius:18px;background:color-mix(in srgb,var(--mode-surface, var(--surface-alt)) 74%,#ffffff 26%)}.app-shell .mode-icon svg{width:29px;height:29px;stroke-width:2.25}.app-shell .mode-icon-text{font-size:.92rem}:is(.app-shell[data-theme=signiq],.app-shell[data-theme=signiq-light]) .mode-card h2{color:#05214a}:is(.app-shell[data-theme=signiq],.app-shell[data-theme=signiq-light]) .mode-card p{color:#315a7c}.mode-card{position:relative;min-height:340px;display:flex;flex-direction:column;justify-content:space-between;gap:26px;padding:28px;border:1px solid var(--border);border-radius:8px;background:var(--mode-card-bg, var(--panel));box-shadow:var(--shadow);overflow:hidden;transition:border-color .18s ease,box-shadow .18s ease,transform .18s ease,background .18s ease}.mode-card:before{content:"";position:absolute;inset:0 0 auto;height:4px;background:var(--mode-accent, var(--accent))}.mode-card:hover{border-color:var(--mode-card-hover-border, color-mix(in srgb, var(--mode-accent, var(--accent)) 52%, var(--border)));box-shadow:var(--shadow);transform:translateY(-4px)}.mode-card-blue{--mode-accent: var(--mode-blue);--mode-surface: var(--mode-blue-soft);--mode-card-bg: var(--mode-blue-soft)}:is(.app-shell[data-theme=signiq],.app-shell[data-theme=signiq-light]) .mode-card-blue{--mode-card-bg: linear-gradient(145deg, #d8eeff 0%, #b9dcfb 100%);--mode-surface: #d9edff;border-color:color-mix(in srgb,var(--mode-blue) 34%,transparent)}.mode-card-green{--mode-accent: var(--mode-success);--mode-surface: var(--mode-success-soft);--mode-card-bg: var(--mode-success-soft)}.mode-card-clay{--mode-accent: var(--mode-warm);--mode-surface: var(--control-bg);--mode-card-bg: var(--segment-bg)}.app-shell[data-theme=signiq] .mode-card-clay{--mode-surface: var(--panel)}.app-shell[data-theme=signiq] .mode-card-clay h2{color:var(--page-text)}.app-shell[data-theme=signiq] .mode-card-clay p{color:var(--page-muted)}.mode-card-copy{display:grid;gap:14px}.mode-card-topline{margin-bottom:8px}.mode-icon{flex:0 0 auto;width:50px;height:50px;display:grid;place-items:center;border:1px solid var(--mode-icon-border, color-mix(in srgb, var(--mode-accent, var(--accent)) 34%, transparent));border-radius:8px;color:var(--mode-accent, var(--accent));background:var(--mode-surface, var(--surface-alt))}.mode-icon svg{width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.mode-icon-text{color:currentColor;font-size:.82rem;font-weight:950;letter-spacing:0}.mode-card h2{max-width:12ch;margin:0;color:var(--ink);font-size:clamp(1.85rem,3vw,2.6rem);line-height:1.02;letter-spacing:0}.mode-card p,.muted-text{color:var(--muted);line-height:1.55}.mode-card p{margin:0}.setup-screen,.results-screen{display:grid;place-items:center}.setup-card,.results-card{width:min(1040px,100%);padding:clamp(22px,4vw,40px);border:1px solid var(--border);border-radius:8px;background:var(--panel);box-shadow:var(--shadow)}.setup-card{width:min(760px,100%)}.setup-header,.results-header{display:flex;align-items:flex-start;justify-content:space-between;gap:24px;margin-bottom:30px}.setup-header{justify-content:flex-start}.results-header h1{width:100%;max-width:none;margin:8px auto 0;color:var(--ink);font-size:clamp(2.2rem,5.4vw,4rem);line-height:1;letter-spacing:0;text-align:center;text-wrap:balance}.results-header{width:100%;margin-inline:0;display:grid;grid-template-columns:minmax(0,1fr);align-items:center;justify-content:stretch;justify-items:center;gap:12px;text-align:center}.results-header .eyebrow{justify-self:center;margin-bottom:2px}.setup-section{display:grid;gap:12px;margin-top:24px}.setup-label,.setup-range-header span{color:var(--muted);font-size:.86rem;font-weight:850;letter-spacing:0;text-transform:uppercase}.segmented-control{position:relative;isolation:isolate;--segment-count: 3;--segment-index: 0;--segment-color: var(--accent);display:grid;grid-template-columns:repeat(var(--segment-count),minmax(0,1fr));gap:0;padding:6px;border:1px solid var(--border);border-radius:999px;background:var(--segment-bg)}.segmented-control:before{content:"";position:absolute;inset-block:6px;left:6px;z-index:0;width:calc((100% - 12px) / var(--segment-count));border-radius:999px;background-color:var(--segment-color);transform:translate(calc(var(--segment-index) * 100%));transition:transform .26s cubic-bezier(.2,.8,.2,1),background-color .26s ease}.segmented-control-timeframe{--segment-count: 2}.leaderboard-filters .segmented-control{width:100%;min-width:0;max-width:100%}.segmented-control button{position:relative;z-index:1;display:flex;align-items:center;justify-content:center;min-width:0;min-height:44px;padding-inline:clamp(8px,1.1vw,16px);border-radius:999px;color:var(--muted);background:transparent;font-weight:850;overflow:hidden;text-align:center;white-space:nowrap}.difficulty-easy{--difficulty-color: var(--success)}.difficulty-medium{--difficulty-color: var(--warning)}.difficulty-hard{--difficulty-color: var(--danger)}.segmented-control button.is-selected{color:var(--primary-text);background:transparent;box-shadow:none}.setup-range-header{display:flex;align-items:center;justify-content:space-between;gap:16px}.setup-range-header strong{color:var(--accent);font-size:1.6rem}.word-count-slider{width:100%;accent-color:var(--accent)}.range-labels{display:flex;justify-content:space-between;color:var(--muted);font-size:.82rem;font-weight:800}.setup-start-button{width:100%;margin-top:30px}.results-stat-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.results-stat-grid.is-words{width:min(1040px,100%);margin-inline:auto}.results-stat-grid.is-alphabet{grid-template-columns:repeat(4,minmax(0,1fr));margin-inline:auto}.results-stat-grid.is-reading{grid-template-columns:repeat(4,minmax(0,1fr))}.result-metric{min-height:124px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;padding:18px;border:1px solid var(--border);border-radius:8px;background:var(--surface);box-shadow:var(--shadow-soft);text-align:center}.result-metric span{color:var(--muted);font-size:.82rem;font-weight:850;text-transform:uppercase}.result-metric strong{color:var(--ink);font-size:clamp(1.35rem,3vw,2.2rem);line-height:1.08}.result-metric.is-featured{align-items:center;justify-content:center;text-align:center;border-color:var(--border-strong);background:linear-gradient(180deg,color-mix(in srgb,var(--surface-alt) 76%,var(--surface) 24%),var(--surface))}.result-metric.is-featured strong{font-size:clamp(1.35rem,3vw,2.2rem)}.result-metric-success{border-color:color-mix(in srgb,var(--success) 38%,transparent)}.result-metric-success.is-featured{background:linear-gradient(180deg,color-mix(in srgb,var(--surface) 82%,var(--success) 18%),var(--surface))}:is(.app-shell[data-theme=signiq],.app-shell[data-theme=signiq-light]) .result-metric{position:relative;overflow:hidden;border-color:var(--metric-border, var(--border));background:var(--metric-background, var(--surface))}:is(.app-shell[data-theme=signiq],.app-shell[data-theme=signiq-light]) .result-metric:before{content:none}.app-shell[data-theme=signiq] .text-field,.app-shell[data-theme=signiq] .reading-form input{color:#061a38;background:#fff}.app-shell[data-theme=signiq] .text-field,.app-shell[data-theme=signiq] .reading-form input{border-color:#a9b5c3}:is(.app-shell[data-theme=signiq],.app-shell[data-theme=signiq-light]) .result-metric span{color:#315a7c}:is(.app-shell[data-theme=signiq],.app-shell[data-theme=signiq-light]) .result-metric strong{color:#05214a}.result-metric-completed{--metric-accent: #3194b8;--metric-border: #73b8d0;--metric-background: linear-gradient(145deg, #d9f1f8, #bfe3f1)}.result-metric-secondary-count{--metric-accent: #3f9a70;--metric-border: #73b995;--metric-background: linear-gradient(145deg, #e1f3ea, #c6e4d5)}.result-metric-time{--metric-accent: #397ecb;--metric-border: #719ed7;--metric-background: linear-gradient(145deg, #dce9fb, #c3d8f3)}.result-metric-average{--metric-accent: #7f60b2;--metric-border: #9a82c2;--metric-background: linear-gradient(145deg, #eee7f9, #dbcef0)}.result-metric-fastest{--metric-accent: #b88916;--metric-border: #c6a042;--metric-background: linear-gradient(145deg, #fff3cd, #f3dfa0)}.result-metric-streak{--metric-accent: #bb7136;--metric-border: #c58d5d;--metric-background: linear-gradient(145deg, #f8e7d5, #ebceb1)}.result-metric-correct{--metric-accent: #34865a;--metric-border: #62a87e;--metric-background: linear-gradient(145deg, #e1f1e8, #c7e3d3)}.result-metric-needs-practice{--metric-accent: #b95e72;--metric-border: #c87888;--metric-background: linear-gradient(145deg, #f9e5e9, #edcdd4)}.results-actions{display:flex;flex-wrap:wrap;align-items:flex-start;justify-content:center;gap:12px;margin-top:32px}.leaderboard-submit-panel{position:relative;width:max-content;max-width:100%;display:grid;justify-items:center;gap:10px;margin:0;padding:0;border:0;border-radius:0;color:var(--ink);background:transparent;text-align:center;box-shadow:none}.leaderboard-submit-panel.is-eligible{animation:none}.leaderboard-submit-button{min-width:min(280px,calc(100vw - 48px));color:var(--control-text);border-color:color-mix(in srgb,var(--border) 58%,transparent);background:#ffffffe6}.leaderboard-submit-button:hover,.leaderboard-submit-button:focus-visible{color:var(--control-text);border-color:color-mix(in srgb,var(--border-strong) 72%,transparent);background:#fff}.app-shell[data-theme=signiq] .leaderboard-submit-button,.app-shell[data-theme=signiq] .leaderboard-submit-button:hover,.app-shell[data-theme=signiq] .leaderboard-submit-button:focus-visible{background:var(--control-bg)}.app-shell[data-theme=signiq-light] .leaderboard-submit-button:not([aria-disabled=true]){border-color:#b8c7d8;background:#e8f1fa}.app-shell[data-theme=signiq-light] .leaderboard-submit-button:not([aria-disabled=true]):hover,.app-shell[data-theme=signiq-light] .leaderboard-submit-button:not([aria-disabled=true]):focus-visible{background:#f1f7fd}.leaderboard-submit-button[aria-disabled=true]{color:var(--muted);border-color:var(--border);background:var(--surface-muted);cursor:not-allowed;filter:grayscale(.16);opacity:.48;transform:none}.leaderboard-submit-panel.is-eligible .leaderboard-submit-button{animation:leaderboard-eligible-glow 1.15s ease-in-out infinite}.leaderboard-submit-tooltip{position:absolute;bottom:calc(100% + 12px);left:50%;z-index:4;width:max-content;max-width:min(300px,calc(100vw - 32px));padding:10px 12px;border:1px solid color-mix(in srgb,var(--border) 60%,transparent);border-radius:14px;color:var(--ink);background:var(--panel-strong);box-shadow:var(--shadow-soft);font-size:.86rem;font-weight:850;line-height:1.25;opacity:0;pointer-events:none;transform:translate(-50%,6px);transition:opacity .16s ease,transform .16s ease}.leaderboard-submit-tooltip:after{content:"";position:absolute;top:100%;left:50%;width:0;height:0;border-left:9px solid transparent;border-right:9px solid transparent;border-top:9px solid var(--panel-strong);transform:translate(-50%)}.leaderboard-submit-panel:hover .leaderboard-submit-tooltip,.leaderboard-submit-panel:focus-within .leaderboard-submit-tooltip,.leaderboard-submit-tooltip.is-visible{opacity:1;transform:translate(-50%)}.leaderboard-screen{display:grid;place-items:center}.leaderboard-card{width:min(980px,100%);display:grid;gap:22px;padding:clamp(22px,4vw,40px);border:1px solid var(--border);border-radius:8px;background:var(--panel);box-shadow:var(--shadow)}.leaderboard-filters{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));align-items:start;gap:12px}.leaderboard-list{display:grid;gap:10px}.leaderboard-row{display:grid;grid-template-columns:auto auto minmax(0,1fr) auto;align-items:center;gap:12px;padding:12px;border:1px solid var(--border);border-radius:8px;background:var(--surface);box-shadow:var(--shadow-soft)}.leaderboard-row.rank-gold{border-color:#e4b33e;background:linear-gradient(135deg,#fff2b8,#f4cf5f)}.leaderboard-row.rank-silver{border-color:#b7c0cb;background:linear-gradient(135deg,#f4f7fb,#c9d2dd)}.leaderboard-row.rank-bronze{border-color:#a96f42;background:linear-gradient(135deg,#ead0b8,#b9794d)}.leaderboard-rank{min-width:44px;color:var(--accent);font-weight:900}.leaderboard-rank.rank-gold{color:#b77900}.leaderboard-rank.rank-silver{color:#7b8794}.leaderboard-rank.rank-bronze{color:#a55a2a}.leaderboard-user{min-width:0;display:grid;gap:2px}.leaderboard-user strong,.leaderboard-time{color:var(--ink);font-weight:900}.leaderboard-user span{color:var(--muted);font-size:.84rem;font-weight:750}.app-shell[data-theme=signiq] .leaderboard-row:is(.rank-gold,.rank-silver,.rank-bronze){--ink: #061a38;--muted: #426079}.empty-state{padding:22px;border:1px solid var(--border);border-radius:8px;color:var(--muted);background:var(--surface);font-weight:850;text-align:center}.practice-screen{width:calc(100% - 20px);max-width:none;height:100dvh;min-height:0;display:flex;flex-direction:column;overflow:hidden;padding:10px 0}.practice-header{gap:12px;margin-bottom:8px}.practice-mobile-target,.mobile-change-mode{display:none}.practice-actions{display:flex;flex:1 1 auto;flex-wrap:wrap;align-items:center;gap:10px;min-width:0}.session-stat{flex:0 0 auto;min-width:124px;padding:9px 14px;border:1px solid var(--border);border-radius:22px;background:var(--control-bg);box-shadow:var(--shadow-soft);text-align:right}.session-stat span{display:block;color:var(--muted);font-size:.82rem}.session-stat strong{display:block;margin-top:2px;color:var(--accent);font-size:1.2rem}.target-panel{position:relative;min-height:clamp(210px,24vh,280px);display:grid;grid-template-rows:auto minmax(0,1fr);align-items:center;margin-bottom:8px;padding:clamp(14px,2vh,22px) 20px;border:1px solid var(--border);border-radius:8px;background:var(--panel);box-shadow:var(--shadow-soft);overflow:hidden}.target-panel.is-correct{border-color:color-mix(in srgb,var(--success) 44%,transparent);box-shadow:var(--shadow-soft),0 0 0 4px var(--success-soft)}.target-panel.correct-pulse-0{animation:correct-pop .42s ease}.target-panel.correct-pulse-1{animation:correct-pop-alt .42s ease}.target-panel.has-reference-nudge{border-color:var(--nudge-border, color-mix(in srgb, var(--accent) 42%, transparent))}.target-label{margin:0 0 2px;color:var(--ink);font-size:.8rem;font-weight:850;letter-spacing:0;text-transform:uppercase}.target-letter{align-self:center;padding-left:0;color:var(--inactive);font-size:clamp(5.8rem,17vh,10.4rem);font-weight:900;line-height:.78;text-align:center}.sign-reference{position:absolute;top:clamp(66px,7.2vh,92px);left:20px;width:clamp(118px,15vh,150px);height:clamp(118px,15vh,150px);display:block;margin:0;padding:0;border:0;border-radius:6px;color:var(--accent);background:transparent;box-shadow:none;cursor:default}.sign-reference.needs-attention{background:var(--accent-soft);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 24%,transparent),var(--glow);animation:reference-glow 1.15s ease-in-out infinite}.reference-toggle.is-reference-nudged{border-color:var(--pulse-blue);box-shadow:0 0 0 3px var(--pulse-blue-soft),var(--shadow-soft);animation:reference-toggle-glow 1.15s ease-in-out infinite}.sign-reference:focus-visible,.sign-reference-close:focus-visible,.ghost-guide:focus-visible{outline:3px solid var(--focus-ring);outline-offset:3px}.sign-reference img{width:100%;height:100%;display:block;object-fit:contain;border-radius:6px}.sign-reference-modal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;display:grid;place-items:center;padding:24px;background:var(--overlay-bg);cursor:zoom-out;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);animation:reference-backdrop-in .18s ease-out}.sign-reference-modal-content{position:relative;width:min(680px,92vw);max-height:90vh;display:grid;justify-items:center;gap:14px;padding:clamp(18px,4vw,34px);overflow:auto;border:1px solid var(--border-strong);border-radius:14px;color:var(--ink);background:var(--panel-strong);box-shadow:0 30px 90px #00000075;cursor:default;animation:reference-image-in .18s ease-out}.sign-reference-video{width:min(520px,78vw);max-height:64vh;display:block;object-fit:contain;border-radius:10px;background:#000}.sign-reference-note{display:grid;gap:6px;text-align:center}.sign-reference-note p{margin:0;color:var(--ink);font-size:1rem;font-weight:850}.sign-reference-note span{color:var(--muted);font-size:.95rem;font-weight:750;line-height:1.4}.sign-reference-close{position:absolute;top:12px;right:12px;z-index:1;width:38px;height:38px;display:grid;place-items:center;padding:0;border:1px solid var(--border);border-radius:50%;color:var(--ink);background:var(--control-bg);box-shadow:none;cursor:pointer}.sign-reference-close svg{width:20px;height:20px}@keyframes reference-backdrop-in{0%{opacity:0}}@keyframes modal-backdrop-in{0%{opacity:0}}@keyframes modal-backdrop-out{to{opacity:0}}@keyframes reference-image-in{0%{opacity:0;transform:scale(.96)}}@keyframes modal-pop-in{0%{opacity:0;transform:translateY(12px) scale(.94)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes modal-pop-out{to{opacity:0;transform:translateY(10px) scale(.94)}}@keyframes reference-glow{0%,to{filter:brightness(1);transform:translateY(0) scale(1)}50%{filter:brightness(1.08);transform:translateY(-2px) scale(1.035)}}@keyframes reference-toggle-glow{0%,to{box-shadow:0 0 0 3px var(--pulse-blue-soft),var(--shadow-soft)}50%{box-shadow:0 0 0 4px color-mix(in srgb,var(--pulse-blue) 34%,transparent),0 0 28px color-mix(in srgb,var(--pulse-blue) 34%,transparent)}}@keyframes leaderboard-eligible-glow{0%,to{border-color:color-mix(in srgb,var(--border) 58%,transparent);box-shadow:0 0 0 3px var(--pulse-blue-soft),var(--shadow-soft)}50%{border-color:color-mix(in srgb,var(--pulse-blue) 88%,transparent);box-shadow:0 0 0 4px color-mix(in srgb,var(--pulse-blue) 34%,transparent),0 0 28px color-mix(in srgb,var(--pulse-blue) 34%,transparent)}}@keyframes spotlight-tag-fade{0%{opacity:0;transform:translateY(-3px)}to{opacity:1;transform:translateY(0)}}@keyframes ghost-guide-pulse{0%,to{border-color:color-mix(in srgb,var(--camera-badge-border) 62%,transparent);box-shadow:0 12px 30px #0000003d}50%{border-color:var(--pulse-blue);box-shadow:0 0 0 3px var(--pulse-blue-soft),0 0 28px color-mix(in srgb,var(--pulse-blue) 34%,transparent),0 14px 34px #00000047}}@keyframes hero-arrive{0%{opacity:0;transform:translateY(10px) scale(.985)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes page-forward-in{0%{opacity:0;transform:translate(42px) scale(.985)}to{opacity:1;transform:translate(0) scale(1)}}@keyframes page-back-in{0%{opacity:0;transform:translate(-42px) scale(.985)}to{opacity:1;transform:translate(0) scale(1)}}@keyframes logo-breathe{0%,to{transform:translateY(0) scale(1)}50%{transform:translateY(-5px) scale(1.012)}}.target-letter.completed,.word-letter.completed,.status-success{color:var(--success);animation:correct-letter-pop .42s ease}@keyframes correct-pop{0%{transform:scale(.985)}45%{transform:scale(1.01)}to{transform:scale(1)}}@keyframes correct-pop-alt{0%{transform:scale(.985)}45%{transform:scale(1.01)}to{transform:scale(1)}}@keyframes correct-letter-pop{0%{transform:translateY(0) scale(.96)}45%{transform:translateY(-3px) scale(1.08)}to{transform:translateY(0) scale(1)}}@keyframes centered-target-letter-pop{0%{transform:translate(-50%) translateY(0) scale(.96)}45%{transform:translate(-50%) translateY(-3px) scale(1.08)}to{transform:translate(-50%) translateY(0) scale(1)}}@keyframes centered-hidden-target-letter-pop{0%{transform:translate(-50%,-50%) translateY(0) scale(.96)}45%{transform:translate(-50%,-50%) translateY(-3px) scale(1.08)}to{transform:translate(-50%,-50%) translateY(0) scale(1)}}.word-target{container-type:inline-size;display:flex;flex-wrap:nowrap;align-items:center;justify-content:center;gap:var(--word-letter-gap, clamp(10px, 2vw, 22px));max-width:100%;min-height:clamp(96px,17vh,160px);padding-left:0;box-sizing:border-box;white-space:nowrap}.word-letter{flex:0 1 var(--word-letter-fit-width, auto);min-width:min(var(--word-letter-min-width, clamp(42px, 9vw, 86px)),var(--word-letter-fit-width, 999px));color:var(--inactive);font-size:min(var(--word-letter-size, clamp(4rem, 15vh, 8.8rem)),var(--word-letter-fit-size, 999px));font-weight:900;line-height:1;text-align:center;transition:color .18s ease,transform .18s ease}.word-letter.current{color:var(--ink);transform:translateY(-2px)}.practice-layout{flex:1;min-height:0;display:grid;grid-template-columns:minmax(0,1fr);align-items:stretch}.practice-controls{display:none;margin-top:8px}.practice-controls>.practice-actions{margin-top:0}.toggle-control.reference-toggle-mobile{display:none}.reading-screen{display:flex;flex-direction:column}.reading-panel{flex:1;min-height:0;display:grid;grid-template-columns:minmax(0,1.35fr) minmax(320px,.65fr);gap:16px}.reading-sequence,.reading-answer-panel{min-width:0;border:1px solid var(--border);border-radius:8px;background:var(--panel);box-shadow:var(--shadow)}.reading-sequence{--reading-image-size: 68%;--reading-image-y: -4%;align-content:center;display:grid;grid-template-columns:repeat(var(--reading-desktop-columns, 3),minmax(160px,1fr));grid-template-rows:repeat(var(--reading-desktop-rows, 1),auto);justify-content:center;gap:14px;padding:clamp(16px,3vw,30px);overflow:auto}.reading-sign-tile{aspect-ratio:1;perspective:900px}.reading-card-inner{position:relative;width:100%;height:100%;transition:transform .52s cubic-bezier(.2,.76,.28,1);transition-delay:var(--flip-delay, 0ms);transform-style:preserve-3d}.reading-sign-tile.is-flipped .reading-card-inner{transform:rotateY(180deg)}.reading-card-face{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;padding:12px;border:1px solid var(--border);border-radius:8px;background:var(--surface);backface-visibility:hidden;-webkit-backface-visibility:hidden;overflow:hidden}.reading-card-front img{width:var(--reading-image-size, 78%);height:var(--reading-image-size, 78%);max-width:calc(100% - 44px);max-height:calc(100% - 44px);object-fit:contain;display:block;transform:translateY(var(--reading-image-y, 0))}.reading-card-front img[data-letter=A],.reading-card-front img[data-letter=B],.reading-card-front img[data-letter=D],.reading-card-front img[data-letter=E],.reading-card-front img[data-letter=F],.reading-card-front img[data-letter=I],.reading-card-front img[data-letter=K],.reading-card-front img[data-letter=L],.reading-card-front img[data-letter=M],.reading-card-front img[data-letter=N],.reading-card-front img[data-letter=R],.reading-card-front img[data-letter=S],.reading-card-front img[data-letter=T],.reading-card-front img[data-letter=U],.reading-card-front img[data-letter=V],.reading-card-front img[data-letter=W],.reading-card-front img[data-letter=Y]{--reading-image-size: 58%;--reading-image-y: -7%}.reading-card-front img[data-letter=D],.reading-card-front img[data-letter=I],.reading-card-front img[data-letter=U]{--reading-image-size: 54%;--reading-image-y: -8%}.reading-card-front img[data-letter=B]{--reading-image-y: -20%}.reading-card-back{color:var(--primary-text);background:linear-gradient(135deg,var(--accent-strong),var(--accent));border-color:var(--border-strong);transform:rotateY(180deg)}.reading-sign-tile.is-correct .reading-card-back{background:linear-gradient(135deg,color-mix(in srgb,var(--success) 72%,var(--bg)),var(--success));border-color:color-mix(in srgb,var(--success) 72%,transparent)}.reading-sign-tile.is-incorrect .reading-card-back{background:linear-gradient(135deg,color-mix(in srgb,var(--danger) 72%,var(--bg)),var(--danger));border-color:color-mix(in srgb,var(--danger) 72%,transparent)}.reading-card-letter{font-size:clamp(3.8rem,9vw,7rem);font-weight:950;line-height:1}.reading-sign-index{position:absolute;top:8px;left:8px;min-width:28px;height:28px;display:grid;place-items:center;border-radius:50%;color:var(--primary-text);background:var(--accent);font-size:.82rem;font-weight:900}.reading-answer-panel{display:flex;flex-direction:column;gap:20px;padding:clamp(18px,3vw,28px)}.reading-session-timer{margin:0;color:var(--ink);font-size:.8rem;font-weight:850;letter-spacing:0;text-transform:uppercase}.reading-attempts{color:var(--muted);font-size:.9rem;font-weight:800}.reading-attempts strong{color:var(--accent)}.reading-form{display:grid;gap:10px}.reading-form input{width:100%;min-height:58px;padding:0 16px;border:1px solid var(--border);border-radius:8px;color:var(--ink);background:var(--surface);font:inherit;font-size:clamp(1.15rem,3vw,1.7rem);font-weight:900;letter-spacing:0;text-transform:uppercase}.reading-form input:focus{outline:3px solid var(--focus-ring);border-color:var(--border-strong)}.reading-feedback{min-height:32px;color:var(--muted);font-weight:850}.reading-feedback.status-success{color:var(--success)}.reading-feedback.status-revealed{color:var(--accent)}.status-error{color:var(--danger)}@media (min-width: 769px){.app-shell.screen-practice.mode-reading .reading-screen{width:min(100% - 20px,1880px);padding:18px 0}.app-shell.screen-practice.mode-reading .reading-panel{grid-template-columns:minmax(0,1fr) minmax(360px,.48fr);gap:12px}.app-shell.screen-practice.mode-reading .reading-sequence{align-content:center;grid-auto-rows:auto;gap:clamp(14px,1.4vw,24px);padding:clamp(18px,2vw,34px)}}.icon-button-label{display:inline-flex;align-items:center;justify-content:center;gap:9px}.icon-button-label svg{width:18px;height:18px;flex:0 0 auto;fill:none;stroke:currentColor;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}.mobile-change-mode.icon-button-label{display:none}.webcam-panel{min-width:0;min-height:0;display:flex;flex-direction:column;overflow:hidden;border:1px solid var(--border);border-radius:8px;background:var(--camera-panel);box-shadow:var(--shadow)}.webcam-container{position:relative;width:100%;flex:1;min-height:0;overflow:hidden;border-radius:8px;background:var(--camera-bg)}.webcam,.hand-canvas{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover;transition:filter .36s ease,opacity .36s ease}.hand-canvas{z-index:2;pointer-events:none;transform:scaleX(-1)}.webcam-container.is-awaiting-start .webcam{opacity:.54;filter:brightness(.48) saturate(.72)}.webcam-container.is-awaiting-start .hand-canvas,.webcam-container.is-awaiting-start .ghost-guide,.webcam-container.is-awaiting-start .camera-guidance,.webcam-container.is-awaiting-start .confidence-card{opacity:0}.webcam-error{position:absolute;top:0;right:0;bottom:0;left:0;z-index:4;display:grid;place-content:center;gap:10px;padding:24px;color:var(--camera-badge-text);background:var(--overlay-bg);text-align:center;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.webcam-error strong{font-size:clamp(1.1rem,2vw,1.45rem);line-height:1.15}.webcam-error span{max-width:420px;color:var(--camera-badge-muted);line-height:1.5}.camera-start-overlay{position:absolute;top:0;right:0;bottom:0;left:0;z-index:5;display:grid;place-items:center;padding:24px;color:var(--page-text);background:color-mix(in srgb,var(--overlay-bg) 86%,rgba(0,0,0,.18));text-align:center;opacity:0;pointer-events:none;transition:opacity .26s ease}.camera-start-overlay.is-visible{opacity:1}.camera-start-overlay strong{max-width:360px;font-size:clamp(1.05rem,2.4vw,1.45rem);line-height:1.25}.app-shell[data-theme=signiq-light] .camera-start-overlay{color:#eef5ff}.ghost-guide{position:absolute;top:14px;left:14px;z-index:3;width:clamp(92px,18%,150px);aspect-ratio:4 / 3;display:block;box-sizing:border-box;overflow:hidden;border:1px solid color-mix(in srgb,var(--camera-badge-border) 62%,transparent);border-radius:8px;background:#00000038;box-shadow:0 12px 30px #0000003d;opacity:.72;padding:0;cursor:zoom-in;transition:opacity .16s ease,transform .16s ease}.ghost-guide:hover{opacity:.84;transform:translateY(-1px)}.ghost-guide video{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;display:block;object-fit:cover;pointer-events:none}.ghost-guide-active-video{opacity:1}.ghost-guide-expand-icon{position:absolute;right:6px;bottom:6px;width:24px;height:24px;display:grid;place-items:center;border:1px solid color-mix(in srgb,var(--camera-badge-border) 72%,transparent);border-radius:6px;color:var(--camera-badge-text);background:color-mix(in srgb,var(--camera-badge-bg) 88%,transparent);box-shadow:0 6px 16px #00000038;pointer-events:none}.ghost-guide-expand-icon svg{width:15px;height:15px;stroke-width:2.3}.ghost-guide.is-pulsing{border-width:2px;animation:ghost-guide-pulse .95s ease-in-out infinite}.camera-guidance{position:absolute;bottom:14px;left:14px;z-index:3;max-width:min(280px,calc(100% - 28px));padding:9px 12px;border:1px solid var(--camera-badge-border);border-radius:8px;color:var(--camera-badge-text);background:var(--camera-badge-bg);box-shadow:var(--shadow-soft);font-size:.86rem;font-weight:850;line-height:1.2;opacity:0;pointer-events:none;transform:translateY(4px);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);transition:opacity .18s ease,transform .18s ease}.camera-guidance.is-visible{opacity:1;transform:translateY(0)}.confidence-card{position:absolute;top:14px;right:14px;z-index:3;min-width:64px;padding:8px 12px;border:1px solid var(--camera-badge-border);border-radius:8px;color:var(--camera-badge-text);background:var(--camera-badge-bg);box-shadow:var(--shadow-soft);line-height:1;text-align:center;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);transition:opacity .26s ease}.confidence-value{display:block;font-size:1.15rem;font-weight:900}.confidence-label{display:block;margin-bottom:4px;color:var(--camera-badge-muted);font-size:.66rem;font-weight:800;line-height:1.1;text-transform:uppercase}.confidence-card.is-expanded{min-width:min(230px,calc(100% - 28px));padding:12px;text-align:left}.confidence-metrics{display:grid;gap:8px;margin-top:12px;color:var(--camera-badge-text);font-size:.78rem;line-height:1.25}.confidence-row{display:flex;align-items:center;justify-content:space-between;gap:14px}.confidence-row span{color:var(--camera-badge-muted)}.confidence-row strong{color:var(--camera-badge-text);font-size:.82rem;white-space:nowrap}.toggle-control{min-height:46px;display:inline-flex;align-items:center;gap:10px;padding:0 20px;border:1px solid var(--border);border-radius:8px;color:var(--control-text);background:var(--control-bg);box-shadow:none;font-weight:800}.reference-toggle{border-radius:999px}:is(.app-shell[data-theme=signiq],.app-shell[data-theme=signiq-light]) .reference-toggle{border-color:color-mix(in srgb,var(--border) 58%,transparent);border-radius:999px;background:color-mix(in srgb,var(--surface-alt) 76%,#ffffff 24%);box-shadow:var(--shadow-soft)}.app-shell[data-theme=signiq] .reference-toggle{background:var(--control-bg)}.app-shell[data-theme=signiq-light] .reference-toggle{border-color:#b8c7d8;background:#e8f1fa}.app-shell[data-theme=signiq-light] :is(.primary-button,.secondary-button,.ghost-button,.nav-link-button,.leaderboard-nav-button,.profile-popover,.auth-card,.leaderboard-card,.setup-card,.results-card,.target-panel,.target-panel.is-correct,.webcam-panel,.reading-sequence,.reading-answer-panel,.result-metric,.leaderboard-row,.leaderboard-submit-panel,.leaderboard-submit-button,.leaderboard-spotlight,.mode-card,.mode-card:hover,.reference-toggle,.theme-picker,.empty-state,.segmented-control,.camera-start-overlay,.ghost-guide,.sign-reference,.sign-reference.needs-attention,.sign-reference-modal,.sign-reference-modal-content){box-shadow:none}.app-shell[data-theme=signiq-light] :is(.reference-toggle.is-reference-nudged,.ghost-guide.is-pulsing){animation:none;box-shadow:none}.toggle-control input{width:18px;height:18px;accent-color:var(--accent)}.results-screen{position:relative;overflow:hidden}.results-card{position:relative;z-index:1}.confetti-layer{position:fixed;top:0;right:0;bottom:0;left:0;z-index:2;overflow:hidden;pointer-events:none}.confetti-piece{position:absolute;top:-18px;width:9px;height:16px;border-radius:3px;background:var(--accent);opacity:0;animation-name:confetti-pop;animation-timing-function:cubic-bezier(.15,.72,.28,1);animation-fill-mode:both}.confetti-piece:nth-child(4n+1){background:var(--accent-bright)}.confetti-piece:nth-child(4n+2){background:var(--success)}.confetti-piece:nth-child(4n+3){background:var(--mode-warm)}@keyframes confetti-pop{0%{opacity:0;transform:translate3d(0,-24px,0) rotate(var(--rotate)) scale(.8)}12%{opacity:1}to{opacity:0;transform:translate3d(var(--drift),105vh,0) rotate(calc(var(--rotate) + 720deg)) scale(1)}}@media (max-width: 860px){.screen{width:min(100% - 22px,680px);padding:18px 0}.practice-screen{width:calc(100% - 12px);padding:8px 0}.screen-header{align-items:flex-start;flex-direction:column}.practice-header{align-items:stretch;flex-direction:row}.practice-actions{gap:8px}.session-stat{min-width:106px;text-align:right}.practice-layout,.reading-panel{grid-template-columns:1fr}.reading-screen{height:auto;min-height:100dvh;overflow:visible}.reading-panel{gap:10px}.reading-sequence{grid-template-columns:repeat(auto-fit,minmax(92px,1fr));align-content:start;gap:10px;max-height:none;padding:12px}.reading-card-face{padding:8px}.reading-sign-index{top:6px;left:6px;min-width:22px;height:22px;font-size:.72rem}.reading-card-letter{font-size:clamp(2.6rem,13vw,4.5rem)}.reading-answer-panel{gap:12px;padding:14px}.reading-form input{min-height:48px;font-size:clamp(1rem,4.8vw,1.3rem)}.mode-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.mode-card{min-height:300px}.results-stat-grid,.results-stat-grid.is-reading{grid-template-columns:repeat(2,minmax(0,1fr))}.practice-actions>button,.practice-actions .toggle-control{flex:1 1 132px;justify-content:center}}@media (min-width: 769px){.app-shell.screen-mode-select{height:100dvh;min-height:100dvh;overflow:hidden}.app-shell.screen-mode-select .mode-screen{width:min(1180px,calc(100% - 22px));height:100dvh;min-height:0;padding-top:clamp(64px,9dvh,86px);padding-bottom:clamp(16px,3dvh,32px);align-content:center}.app-shell.screen-mode-select .screen-header{margin-bottom:clamp(12px,2.2dvh,28px)}.app-shell.screen-mode-select .mode-header h1{font-size:clamp(1.8rem,min(4vw,6.3dvh),3.2rem)}.app-shell.screen-mode-select .leaderboard-spotlight{min-height:clamp(58px,10dvh,78px);margin-bottom:clamp(10px,2dvh,18px);padding-top:clamp(24px,4dvh,30px);padding-bottom:clamp(8px,1.7dvh,12px)}.app-shell.screen-mode-select .mode-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(12px,1.8dvh,18px)}.app-shell.screen-mode-select .mode-card{height:clamp(276px,42dvh,352px);min-height:0;gap:clamp(12px,2.1dvh,26px);padding:clamp(18px,3dvh,28px)}.app-shell.screen-mode-select .mode-card-copy{gap:clamp(8px,1.5dvh,14px)}.app-shell.screen-mode-select .mode-card-topline{margin-bottom:clamp(2px,1dvh,8px)}.app-shell.screen-mode-select .mode-icon{width:clamp(44px,7.8dvh,58px);height:clamp(44px,7.8dvh,58px)}.app-shell.screen-mode-select .mode-icon svg{width:clamp(22px,3.8dvh,29px);height:clamp(22px,3.8dvh,29px)}.app-shell.screen-mode-select .mode-card h2{font-size:clamp(1.45rem,min(3vw,4.8dvh),2.6rem)}.app-shell.screen-mode-select .mode-card p{font-size:clamp(.9rem,2dvh,1rem);line-height:1.4}.app-shell.screen-mode-select .mode-card .primary-button{min-height:clamp(40px,6dvh,46px);padding-inline:clamp(16px,2vw,20px)}}@media (min-width: 769px) and (max-height: 620px){.app-shell.screen-mode-select .mode-screen{padding-top:62px;padding-bottom:12px}.app-shell.screen-mode-select .screen-header{margin-bottom:10px}.app-shell.screen-mode-select .mode-header h1{font-size:clamp(1.65rem,5.5dvh,2.2rem)}.app-shell.screen-mode-select .leaderboard-spotlight{min-height:52px;margin-bottom:8px;padding-top:22px;padding-bottom:6px}.app-shell.screen-mode-select .spotlight-toggle,.app-shell.screen-mode-select .spotlight-difficulty-tag{top:6px;min-height:20px;font-size:.66rem}.app-shell.screen-mode-select .spotlight-arrow{top:6px;bottom:6px;width:36px}.app-shell.screen-mode-select .mode-card{height:clamp(236px,42dvh,270px);gap:10px;padding:14px}.app-shell.screen-mode-select .mode-card-copy{gap:6px}.app-shell.screen-mode-select .mode-card-topline{margin-bottom:1px}.app-shell.screen-mode-select .mode-icon{width:40px;height:40px;border-radius:14px}.app-shell.screen-mode-select .mode-icon svg{width:21px;height:21px}.app-shell.screen-mode-select .mode-icon-text{font-size:.78rem}.app-shell.screen-mode-select .mode-card h2{font-size:clamp(1.35rem,4.5dvh,1.8rem)}.app-shell.screen-mode-select .mode-card p{font-size:.84rem;line-height:1.3}.app-shell.screen-mode-select .mode-card .primary-button{min-height:36px;padding-inline:14px;font-size:.9rem}}@media (max-width: 768px){.mode-header h1{display:none}.leaderboard-spotlight{order:0;justify-self:center;width:100%;min-height:74px;grid-template-columns:minmax(0,1fr);margin:2px 0 14px;padding:6px 50px}.spotlight-toggle{display:none}.spotlight-arrow{position:absolute;top:50%;bottom:auto;width:46px;height:46px;transform:translateY(-50%)}.spotlight-arrow:hover,.spotlight-arrow:focus-visible{transform:translateY(-50%) scale(1.03)}.spotlight-arrow-prev{left:8px}.spotlight-window{grid-column:1}.spotlight-arrow-next{right:8px}.spotlight-slide{display:flex;align-items:center;justify-content:center;gap:4px;text-align:left}.spotlight-title{flex:0 1 auto;gap:5px;max-width:100%;font-size:.76rem}.spotlight-title-prefix{display:none}.spotlight-mode-label{flex:0 1 auto}.spotlight-title-tag{flex:0 0 auto;min-height:19px;display:inline-flex;align-items:center;justify-content:center;padding:0 8px;border:1px solid var(--difficulty-border, color-mix(in srgb, var(--difficulty-color, var(--mode-blue)) 72%, transparent));border-radius:999px;color:#fff!important;background:var(--difficulty-color, var(--mode-blue));font-size:.62rem;font-weight:900;line-height:1}.spotlight-title-tag.is-alphabet{display:none}.spotlight-title svg{width:16px;height:16px}.spotlight-arrow svg{width:21px;height:21px;stroke-width:3.2}.spotlight-player{flex:0 1 auto;gap:5px;max-width:min(34vw,190px)}.spotlight-player strong{font-size:.78rem}.spotlight-score-separator{flex:0 0 auto;display:inline-flex;align-items:center;color:color-mix(in srgb,var(--ink) 50%,transparent);font-size:.78rem;font-weight:900;line-height:1;margin:0 18px}.spotlight-time{flex:0 0 auto;font-size:.78rem}.spotlight-slide.has-score{justify-content:center}.spotlight-slide.is-empty{justify-content:center;text-align:left}.spotlight-slide.is-empty .spotlight-player{max-width:100%}.spotlight-slide.is-empty .spotlight-time,.spotlight-difficulty-tag{display:none}.screen{width:min(100% - 20px,620px);padding:clamp(12px,3dvh,22px) 0}.landing-screen{min-height:100dvh;display:flex;align-items:center;justify-content:center;padding-block:clamp(20px,5dvh,46px);text-align:center}.app-shell[data-theme=signiq-light].screen-landing{background:radial-gradient(ellipse 28rem 22rem at 50% 49%,rgba(255,255,255,.66) 0,rgba(255,255,255,.42) 42%,transparent 78%),radial-gradient(circle at 10% 20%,rgba(21,151,255,.32) 0,rgba(21,151,255,.14) 17rem,transparent 31rem),radial-gradient(circle at 91% 24%,rgba(45,212,191,.34) 0,rgba(45,212,191,.15) 16rem,transparent 30rem),radial-gradient(circle at 74% 92%,rgba(129,140,248,.34) 0,rgba(129,140,248,.16) 18rem,transparent 34rem),linear-gradient(180deg,#f4faff,#d9eaf7 52%,#c8d8ec)}.hero-panel{display:grid;justify-items:center;align-content:center;width:min(390px,100%);transform:none}.hero-logo{width:clamp(205px,64vw,330px);margin-top:6px}.hero-subtitle{width:min(330px,100%);margin:clamp(12px,2.2dvh,18px) 0 clamp(16px,3dvh,24px);font-size:clamp(.98rem,3.7vw,1.1rem);line-height:1.42}.landing-screen .hero-panel .primary-button{min-width:min(270px,100%);min-height:48px;padding-inline:24px;font-size:1.05rem}.practice-screen{width:min(100% - 12px,560px);height:auto;min-height:100dvh;overflow:visible;padding:8px 0 14px}.practice-header{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:stretch;gap:8px;margin-bottom:8px}.practice-actions-desktop{display:none}.toggle-control.reference-toggle-mobile,.mobile-change-mode.icon-button-label{display:inline-flex}.practice-mobile-target,.session-stat{min-width:0;padding:8px 10px;border:1px solid var(--border);border-radius:22px;background:var(--control-bg);box-shadow:var(--shadow-soft)}.practice-mobile-target{display:block}.practice-mobile-target span,.session-stat span{display:block;color:var(--muted);font-size:.72rem;font-weight:850;line-height:1.1;text-transform:uppercase}.practice-mobile-target strong,.session-stat strong{display:block;margin-top:3px;color:var(--accent);font-size:1.05rem;line-height:1}.session-stat{width:auto;text-align:right}.reference-toggle{grid-column:1 / -1;min-height:36px;justify-content:center;padding-inline:10px;font-size:.88rem}.reference-toggle input{width:16px;height:16px}.target-panel{min-height:112px;margin-bottom:8px;padding:10px 12px}.target-label{margin-bottom:0;font-size:.72rem}.target-letter{padding-left:104px;font-size:clamp(3.4rem,18vw,5.4rem);line-height:.86;text-align:right}.sign-reference{top:auto;bottom:10px;left:12px;width:clamp(78px,21vw,96px);height:clamp(78px,21vw,96px)}.word-target{justify-content:flex-end;gap:var(--word-letter-gap, clamp(5px, 1.8vw, 10px));min-height:82px;padding-left:104px}.word-letter{min-width:min(var(--word-letter-min-width, clamp(24px, 7vw, 42px)),var(--word-letter-fit-width, 999px));font-size:min(var(--word-letter-size, clamp(2.2rem, 11vw, 4rem)),var(--word-letter-fit-size, 999px))}.practice-layout{flex:0 0 auto}.webcam-panel{aspect-ratio:4 / 3}.webcam-container{flex:0 0 auto;height:100%;aspect-ratio:4 / 3}.webcam,.hand-canvas{object-fit:contain}.practice-controls{display:block}.practice-controls>.practice-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:8px}.practice-controls .secondary-button,.practice-controls .ghost-button{min-height:40px;padding-inline:10px;font-size:.88rem}.confidence-card{top:8px;right:8px}.ghost-guide{top:8px;left:10px;width:clamp(82px,24%,128px)}.camera-guidance{bottom:8px;left:10px;max-width:min(250px,calc(100% - 20px));padding:8px 10px;font-size:.8rem}.app-shell.screen-practice.mode-alphabet,.app-shell.screen-practice.mode-words{height:100dvh;min-height:100dvh;overflow:hidden}.app-shell.screen-practice.mode-alphabet .practice-screen,.app-shell.screen-practice.mode-words .practice-screen{width:min(100% - 12px,560px);height:100dvh;min-height:0;overflow:hidden;padding:8px 0 calc(56px + env(safe-area-inset-bottom));justify-content:flex-start}.app-shell.screen-practice.mode-alphabet .practice-mobile-target,.app-shell.screen-practice.mode-words .practice-mobile-target{display:none}.app-shell.screen-practice.mode-alphabet .session-stat,.app-shell.screen-practice.mode-words .session-stat{grid-column:1 / -1;text-align:left}.app-shell.screen-practice.mode-alphabet .mobile-change-mode,.app-shell.screen-practice.mode-words .mobile-change-mode{grid-column:1 / -1;justify-content:center;text-align:center}.app-shell.screen-practice.mode-alphabet .practice-header,.app-shell.screen-practice.mode-words .practice-header,.app-shell.screen-practice.mode-alphabet .practice-controls,.app-shell.screen-practice.mode-words .practice-controls{flex:0 0 auto}.app-shell.screen-practice.mode-alphabet .target-panel,.app-shell.screen-practice.mode-words .target-panel{flex:1 1 auto;min-height:132px;display:flex;flex-direction:column}.app-shell.screen-practice.mode-alphabet .target-letter,.app-shell.screen-practice.mode-words .target-letter{margin-top:auto;font-size:clamp(4.8rem,15dvh,8.5rem)}.app-shell.screen-practice.mode-alphabet .sign-reference,.app-shell.screen-practice.mode-words .sign-reference{top:clamp(38px,6dvh,58px);bottom:auto;width:clamp(96px,15dvh,148px);height:clamp(96px,15dvh,148px)}.app-shell.screen-practice.mode-words .word-target{min-height:clamp(78px,13dvh,132px)}.app-shell.screen-practice.mode-words .word-letter{font-size:clamp(2.6rem,10dvh,5.6rem)}.app-shell.screen-practice.mode-alphabet .practice-layout,.app-shell.screen-practice.mode-words .practice-layout{flex:0 0 auto;min-height:0;align-items:stretch}.app-shell.screen-practice.mode-alphabet .webcam-panel,.app-shell.screen-practice.mode-words .webcam-panel{width:100%;height:auto;max-height:100%;min-height:0;aspect-ratio:4 / 3}.app-shell.screen-practice.mode-alphabet .webcam-container,.app-shell.screen-practice.mode-words .webcam-container{height:100%;aspect-ratio:auto}.app-shell.screen-practice.mode-alphabet .webcam,.app-shell.screen-practice.mode-alphabet .hand-canvas,.app-shell.screen-practice.mode-words .webcam,.app-shell.screen-practice.mode-words .hand-canvas{object-fit:contain}.app-shell.screen-practice.mode-alphabet .practice-controls .practice-actions>button:first-child,.app-shell.screen-practice.mode-words .practice-controls .practice-actions>button:first-child{display:none}.app-shell.screen-practice.mode-reading{height:100dvh;min-height:100dvh;overflow:hidden}.app-shell.screen-practice.mode-reading .reading-screen{width:min(100% - 12px,560px);height:100dvh;min-height:0;overflow:hidden;padding:8px 0 calc(56px + env(safe-area-inset-bottom))}.app-shell.screen-practice.mode-reading .practice-header{flex:0 0 auto;margin-bottom:8px}.app-shell.screen-practice.mode-reading .practice-actions{gap:8px}.app-shell.screen-practice.mode-reading .practice-actions>button{min-height:40px;padding-inline:10px}.app-shell.screen-practice.mode-reading .reading-panel{flex:1 1 auto;min-height:0;grid-template-columns:1fr;grid-template-rows:minmax(0,1fr) auto;gap:8px;overflow:hidden}.app-shell.screen-practice.mode-reading .reading-sequence{min-height:0;align-content:start;grid-template-columns:repeat(auto-fit,minmax(clamp(56px,15vw,86px),1fr));gap:8px;overflow:hidden;padding:10px}.app-shell.screen-practice.mode-reading .reading-card-face{padding:6px}.app-shell.screen-practice.mode-reading .reading-answer-panel{flex:0 0 auto;min-height:0;gap:8px;padding:12px}.app-shell.screen-practice.mode-reading .reading-form{gap:8px}.app-shell.screen-practice.mode-reading .setup-label{font-size:.74rem}.app-shell.screen-practice.mode-reading .reading-form input{min-height:42px;padding-inline:12px;font-size:clamp(.98rem,4.2vw,1.18rem)}.app-shell.screen-practice.mode-reading .reading-form .primary-button{min-height:42px}.app-shell.screen-practice.mode-reading .reading-feedback{min-height:0;font-size:.88rem;line-height:1.25}.app-shell.screen-practice.mode-reading .reading-attempts{font-size:.84rem;line-height:1.2}.app-shell.screen-practice.mode-alphabet .theme-picker,.app-shell.screen-practice.mode-words .theme-picker,.app-shell.screen-practice.mode-reading .theme-picker{left:auto;right:14px;bottom:14px;width:44px;height:44px;display:grid;place-items:center;border-radius:50%}}@media (max-width: 520px){.hero-logo{width:clamp(198px,66vw,310px)}.leaderboard-spotlight{width:100%;padding-inline:40px}.spotlight-arrow{width:28px}.target-panel,.mode-card,.setup-card,.results-card{padding:16px}.setup-header{flex-direction:column}.mode-grid,.results-stat-grid,.results-stat-grid.is-alphabet,.results-stat-grid.is-reading{grid-template-columns:1fr}.results-actions{align-items:center;flex-direction:column;width:100%}.results-actions>button,.results-actions .leaderboard-submit-panel,.results-actions .leaderboard-submit-button{width:min(100%,420px)}.target-panel{padding:12px}.sign-reference{top:auto;bottom:10px;left:12px}.sign-reference-modal{padding:12px}.practice-header{flex-direction:column}.session-stat{width:auto;text-align:right}.word-letter{min-width:min(var(--word-letter-min-width, 34px),var(--word-letter-fit-width, 999px))}.reading-sequence{grid-template-columns:repeat(auto-fit,minmax(82px,1fr));gap:8px;padding:10px}.confidence-card{top:10px;right:10px;min-width:56px;padding:7px 10px;font-size:1rem}.theme-picker{right:10px;bottom:10px}}@media (max-width: 480px){.screen{width:calc(100% - 16px)}.landing-screen{padding-block:clamp(18px,5dvh,42px)}.eyebrow{font-size:.72rem}.practice-screen{width:calc(100% - 10px);padding-top:6px}.target-panel{min-height:86px}.target-letter{padding-left:66px;font-size:clamp(3rem,17vw,4.6rem)}.sign-reference{width:54px;height:54px;bottom:9px}.word-target{min-height:58px;padding-left:64px}.word-letter{min-width:min(var(--word-letter-min-width, 22px),var(--word-letter-fit-width, 999px));font-size:min(var(--word-letter-size, clamp(1.9rem, 10vw, 3.3rem)),var(--word-letter-fit-size, 999px))}.practice-controls>.practice-actions{grid-template-columns:1fr}.reading-sequence{grid-template-columns:repeat(auto-fit,minmax(72px,1fr))}.reading-card-face{padding:6px}.app-shell.screen-practice.mode-reading .reading-screen{width:calc(100% - 10px);padding-top:6px;padding-bottom:calc(54px + env(safe-area-inset-bottom))}.app-shell.screen-practice.mode-reading .practice-header{gap:6px;margin-bottom:6px}.app-shell.screen-practice.mode-reading .practice-actions{gap:6px}.app-shell.screen-practice.mode-reading .practice-actions>button{min-height:38px;padding-inline:8px;font-size:.88rem}.app-shell.screen-practice.mode-reading .session-stat{min-width:92px;padding:7px 8px}.app-shell.screen-practice.mode-reading .reading-panel{grid-template-rows:minmax(0,1fr) minmax(clamp(210px,32dvh,280px),auto);gap:6px}.app-shell.screen-practice.mode-reading .reading-sequence{grid-template-columns:repeat(auto-fit,minmax(clamp(50px,16vw,74px),1fr));gap:6px;padding:8px}.app-shell.screen-practice.mode-reading .reading-sign-index{top:5px;left:5px;min-width:20px;height:20px;font-size:.68rem}.app-shell.screen-practice.mode-reading .reading-answer-panel{gap:7px;padding:10px}.app-shell.screen-practice.mode-reading .reading-form{gap:7px}.app-shell.screen-practice.mode-reading .reading-form input,.app-shell.screen-practice.mode-reading .reading-form .primary-button{min-height:38px}.app-shell.screen-practice.mode-reading .reading-feedback,.app-shell.screen-practice.mode-reading .reading-attempts{font-size:.8rem}.app-shell.screen-practice.mode-alphabet .practice-screen,.app-shell.screen-practice.mode-words .practice-screen{width:calc(100% - 10px);padding-top:6px;padding-bottom:calc(54px + env(safe-area-inset-bottom))}.app-shell.screen-practice.mode-alphabet .practice-header,.app-shell.screen-practice.mode-words .practice-header{gap:6px;margin-bottom:6px}.app-shell.screen-practice.mode-alphabet .target-panel,.app-shell.screen-practice.mode-words .target-panel{min-height:clamp(94px,16dvh,132px);margin-bottom:6px}.app-shell.screen-practice.mode-alphabet .reference-toggle,.app-shell.screen-practice.mode-words .reference-toggle{min-height:34px}.app-shell.screen-practice.mode-alphabet .practice-controls,.app-shell.screen-practice.mode-words .practice-controls{margin-top:6px}.app-shell.screen-practice.mode-alphabet .practice-controls>.practice-actions,.app-shell.screen-practice.mode-words .practice-controls>.practice-actions{gap:6px;margin-top:0}.app-shell.screen-practice.mode-alphabet .practice-controls .secondary-button,.app-shell.screen-practice.mode-alphabet .practice-controls .ghost-button,.app-shell.screen-practice.mode-words .practice-controls .secondary-button,.app-shell.screen-practice.mode-words .practice-controls .ghost-button{min-height:36px;font-size:.84rem}}@media (max-width: 768px) and (max-height: 700px){.app-shell.screen-practice.mode-alphabet .practice-screen,.app-shell.screen-practice.mode-words .practice-screen{width:calc(100% - 8px);padding-top:4px;padding-bottom:calc(46px + env(safe-area-inset-bottom))}.app-shell.screen-practice.mode-alphabet .practice-header,.app-shell.screen-practice.mode-words .practice-header{gap:4px;margin-bottom:4px}.app-shell.screen-practice.mode-alphabet .session-stat,.app-shell.screen-practice.mode-words .session-stat{padding:6px 10px}.app-shell.screen-practice.mode-alphabet .session-stat span,.app-shell.screen-practice.mode-words .session-stat span{font-size:.64rem}.app-shell.screen-practice.mode-alphabet .session-stat strong,.app-shell.screen-practice.mode-words .session-stat strong{font-size:.96rem}.app-shell.screen-practice.mode-alphabet .reference-toggle,.app-shell.screen-practice.mode-alphabet .mobile-change-mode,.app-shell.screen-practice.mode-words .reference-toggle,.app-shell.screen-practice.mode-words .mobile-change-mode{min-height:32px;padding-inline:8px;font-size:.78rem}.app-shell.screen-practice.mode-alphabet .reference-toggle input,.app-shell.screen-practice.mode-words .reference-toggle input{width:14px;height:14px}.app-shell.screen-practice.mode-alphabet .target-panel,.app-shell.screen-practice.mode-words .target-panel{flex:0 1 auto;min-height:86px;margin-bottom:4px;padding:7px 10px}.app-shell.screen-practice.mode-alphabet .target-label,.app-shell.screen-practice.mode-words .target-label{font-size:.64rem}.app-shell.screen-practice.mode-alphabet .target-letter,.app-shell.screen-practice.mode-words .target-letter{padding-left:72px;font-size:clamp(3rem,12dvh,5rem)}.app-shell.screen-practice.mode-alphabet .sign-reference,.app-shell.screen-practice.mode-words .sign-reference{width:clamp(62px,11dvh,84px);height:clamp(62px,11dvh,84px);top:clamp(28px,5dvh,40px);bottom:auto}.app-shell.screen-practice.mode-words .word-target{min-height:48px;padding-left:72px}.app-shell.screen-practice.mode-words .word-letter{min-width:min(var(--word-letter-min-width, 20px),var(--word-letter-fit-width, 999px));font-size:min(var(--word-letter-size, clamp(1.8rem, 8dvh, 3.4rem)),var(--word-letter-fit-size, 999px))}.app-shell.screen-practice.mode-alphabet .practice-layout,.app-shell.screen-practice.mode-words .practice-layout{justify-items:center}.app-shell.screen-practice.mode-alphabet .webcam-panel,.app-shell.screen-practice.mode-words .webcam-panel{width:min(100%,48dvh)}.app-shell.screen-practice.mode-alphabet .practice-controls,.app-shell.screen-practice.mode-words .practice-controls{margin-top:4px}.app-shell.screen-practice.mode-alphabet .practice-controls>.practice-actions,.app-shell.screen-practice.mode-words .practice-controls>.practice-actions{gap:4px}.app-shell.screen-practice.mode-alphabet .practice-controls .secondary-button,.app-shell.screen-practice.mode-alphabet .practice-controls .ghost-button,.app-shell.screen-practice.mode-words .practice-controls .secondary-button,.app-shell.screen-practice.mode-words .practice-controls .ghost-button{min-height:30px;padding-inline:8px;font-size:.76rem}.app-shell.screen-practice.mode-alphabet .theme-picker,.app-shell.screen-practice.mode-words .theme-picker{width:40px;height:40px}}@media (prefers-reduced-motion: reduce){.app-shell.page-transition-back .landing-screen,.app-shell.page-transition-forward .mode-screen,.hero-logo,.sign-reference.needs-attention,.reference-toggle.is-reference-nudged,.spotlight-difficulty-tag,.leaderboard-submit-panel.is-eligible,.ghost-guide.is-pulsing,.modal-backdrop,.auth-card,.sign-reference-modal,.sign-reference-modal-content{animation:none}.spotlight-track{transition:none}}@media (max-width: 768px){.app-shell.screen-practice.mode-alphabet,.app-shell.screen-practice.mode-words{height:100dvh;min-height:100dvh;overflow:hidden}.app-shell.screen-practice.mode-alphabet .practice-screen,.app-shell.screen-practice.mode-words .practice-screen{width:min(100% - 12px,560px);height:100dvh;min-height:100dvh;overflow:hidden;padding:8px 0}.app-shell.screen-practice.mode-alphabet .practice-header,.app-shell.screen-practice.mode-words .practice-header{display:grid;grid-template-columns:1fr;gap:8px;margin-bottom:8px}.app-shell.screen-practice.mode-alphabet .practice-actions-desktop,.app-shell.screen-practice.mode-words .practice-actions-desktop{display:grid;grid-column:1 / -1;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;order:1}.app-shell.screen-practice.mode-words .practice-actions-desktop>button:nth-of-type(3){grid-column:1 / -1}.app-shell.screen-practice.mode-alphabet .practice-actions-desktop>button,.app-shell.screen-practice.mode-words .practice-actions-desktop>button{min-height:40px;padding-inline:10px;font-size:.88rem}.app-shell.screen-practice.mode-alphabet .practice-actions-desktop .reference-toggle-desktop,.app-shell.screen-practice.mode-words .practice-actions-desktop .reference-toggle-desktop,.app-shell.screen-practice.mode-alphabet .practice-mobile-target,.app-shell.screen-practice.mode-words .practice-mobile-target,.app-shell.screen-practice.mode-alphabet .mobile-change-mode,.app-shell.screen-practice.mode-words .mobile-change-mode,.app-shell.screen-practice.mode-alphabet .practice-controls,.app-shell.screen-practice.mode-words .practice-controls{display:none}.app-shell.screen-practice.mode-alphabet .reference-toggle-mobile,.app-shell.screen-practice.mode-words .reference-toggle-mobile{display:inline-flex;grid-column:1 / -1;order:2;min-height:36px;justify-content:center;padding-inline:10px;font-size:.88rem}.app-shell.screen-practice.mode-alphabet .reference-toggle-mobile input,.app-shell.screen-practice.mode-words .reference-toggle-mobile input{width:16px;height:16px}.app-shell.screen-practice.mode-alphabet .session-stat,.app-shell.screen-practice.mode-words .session-stat{grid-column:1 / -1;order:3;width:auto;min-width:0;padding:12px 14px;text-align:left}.app-shell.screen-practice.mode-alphabet .session-stat span,.app-shell.screen-practice.mode-words .session-stat span{font-size:.82rem;text-transform:none}.app-shell.screen-practice.mode-alphabet .session-stat strong,.app-shell.screen-practice.mode-words .session-stat strong{margin-top:6px;font-size:1.25rem}.app-shell.screen-practice.mode-alphabet .target-panel,.app-shell.screen-practice.mode-words .target-panel{display:block;flex:0 0 auto;min-height:clamp(260px,28dvh,330px);margin-bottom:8px;padding:20px}.app-shell.screen-practice.mode-alphabet .target-letter{position:absolute;right:20px;bottom:24px;left:auto;margin-top:0;padding-left:0;font-size:clamp(7rem,24vw,10.5rem);line-height:.9;text-align:right}.app-shell.screen-practice.mode-alphabet .sign-reference,.app-shell.screen-practice.mode-words .sign-reference{top:clamp(42px,5.4dvh,58px);bottom:auto;left:20px;width:clamp(140px,25vw,180px);height:clamp(140px,25vw,180px)}.app-shell.screen-practice.mode-words .word-target{position:absolute;right:20px;bottom:28px;left:20px;justify-content:flex-end;gap:var(--word-letter-gap, clamp(5px, 1.8vw, 10px));min-height:auto;padding-left:0}.app-shell.screen-practice.mode-words .word-letter{min-width:min(var(--word-letter-min-width, clamp(24px, 7vw, 42px)),var(--word-letter-fit-width, 999px));font-size:min(var(--word-letter-size, clamp(2.2rem, 11vw, 4rem)),var(--word-letter-fit-size, 999px))}.app-shell.screen-practice.mode-alphabet .practice-layout,.app-shell.screen-practice.mode-words .practice-layout{flex:1 1 auto;min-height:0;align-items:stretch;justify-items:stretch}.app-shell.screen-practice.mode-alphabet .webcam-panel,.app-shell.screen-practice.mode-words .webcam-panel{width:100%;height:100%;max-height:none;min-height:0;aspect-ratio:auto}.app-shell.screen-practice.mode-alphabet .webcam-container,.app-shell.screen-practice.mode-words .webcam-container{height:100%;aspect-ratio:auto}.app-shell.screen-practice.mode-alphabet .webcam,.app-shell.screen-practice.mode-alphabet .hand-canvas,.app-shell.screen-practice.mode-words .webcam,.app-shell.screen-practice.mode-words .hand-canvas{object-fit:cover}.app-shell.screen-practice.mode-alphabet .theme-picker,.app-shell.screen-practice.mode-words .theme-picker{left:auto;right:10px;bottom:10px;width:44px;height:44px;display:grid;place-items:center;gap:0;border-radius:8px}}@media (max-width: 768px) and (max-height: 700px){.app-shell.screen-practice.mode-alphabet .practice-screen,.app-shell.screen-practice.mode-words .practice-screen{width:calc(100% - 8px);padding-top:6px}.app-shell.screen-practice.mode-alphabet .practice-header,.app-shell.screen-practice.mode-words .practice-header{gap:6px;margin-bottom:6px}.app-shell.screen-practice.mode-alphabet .practice-actions-desktop,.app-shell.screen-practice.mode-words .practice-actions-desktop{gap:6px}.app-shell.screen-practice.mode-alphabet .practice-actions-desktop>button,.app-shell.screen-practice.mode-words .practice-actions-desktop>button{min-height:36px;padding-inline:8px;font-size:.8rem}.app-shell.screen-practice.mode-alphabet .reference-toggle-mobile,.app-shell.screen-practice.mode-words .reference-toggle-mobile{min-height:34px;padding-inline:8px;font-size:.82rem}.app-shell.screen-practice.mode-alphabet .reference-toggle-mobile input,.app-shell.screen-practice.mode-words .reference-toggle-mobile input{width:15px;height:15px}.app-shell.screen-practice.mode-alphabet .session-stat,.app-shell.screen-practice.mode-words .session-stat{padding:9px 12px}.app-shell.screen-practice.mode-alphabet .session-stat span,.app-shell.screen-practice.mode-words .session-stat span{font-size:.76rem}.app-shell.screen-practice.mode-alphabet .session-stat strong,.app-shell.screen-practice.mode-words .session-stat strong{margin-top:4px;font-size:1.12rem}.app-shell.screen-practice.mode-alphabet .target-panel,.app-shell.screen-practice.mode-words .target-panel{min-height:clamp(210px,30dvh,250px);margin-bottom:6px;padding:14px 18px}.app-shell.screen-practice.mode-alphabet .target-letter{right:18px;bottom:14px;left:auto;padding-left:0;font-size:clamp(5rem,20vw,6.8rem)}.app-shell.screen-practice.mode-alphabet .sign-reference,.app-shell.screen-practice.mode-words .sign-reference{top:clamp(30px,5dvh,40px);bottom:auto;left:18px;width:clamp(92px,20vw,116px);height:clamp(92px,20vw,116px)}.app-shell.screen-practice.mode-words .word-target{right:18px;bottom:18px;left:18px;min-height:auto;padding-left:0}.app-shell.screen-practice.mode-words .word-letter{min-width:min(var(--word-letter-min-width, 22px),var(--word-letter-fit-width, 999px));font-size:min(var(--word-letter-size, clamp(2rem, 9vw, 3.3rem)),var(--word-letter-fit-size, 999px))}}@media (max-width: 768px){.app-shell.screen-practice.mode-reading .practice-header{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(82px,.52fr);gap:8px;align-items:stretch}.app-shell.screen-practice.mode-reading .practice-actions{display:contents}.app-shell.screen-practice.mode-reading .practice-actions>button{width:100%;min-width:0}.app-shell.screen-practice.mode-reading .practice-actions>button:nth-child(1){grid-column:1;grid-row:1}.app-shell.screen-practice.mode-reading .practice-actions>button:nth-child(2){grid-column:2;grid-row:1}.app-shell.screen-practice.mode-reading .practice-actions>button:nth-child(3){grid-column:1 / -1;grid-row:2}.app-shell.screen-practice.mode-reading .session-stat{grid-column:3;grid-row:1;width:auto;min-width:0;display:grid;align-content:center;padding:7px 8px}.app-shell.screen-practice.mode-reading .reading-screen{padding:8px 0}.app-shell.screen-practice.mode-reading .reading-panel{grid-template-rows:minmax(0,1fr) minmax(clamp(320px,28dvh,430px),auto);gap:8px}.app-shell.screen-practice.mode-reading .reading-sequence{--reading-image-size: 62%;--reading-image-y: -4%;--reading-columns: 3;--reading-card-gap: clamp(8px, 1.8vw, 12px);grid-template-columns:repeat(var(--reading-columns),minmax(0,1fr));grid-template-rows:repeat(var(--reading-rows),auto);grid-auto-rows:auto;align-content:start;gap:var(--reading-card-gap);padding:clamp(8px,2vw,12px)}.app-shell.screen-practice.mode-reading .reading-sign-tile{width:100%;min-height:0}.app-shell.screen-practice.mode-reading .reading-card-face{padding:clamp(7px,2vw,12px)}.app-shell.screen-practice.mode-reading .reading-sign-index{min-width:clamp(24px,5.4vw,34px);height:clamp(24px,5.4vw,34px);font-size:clamp(.72rem,2.6vw,.95rem)}.app-shell.screen-practice.mode-reading .reading-answer-panel{min-height:clamp(320px,28dvh,430px);gap:7px;padding:16px 20px 18px}.app-shell.screen-practice.mode-reading .reading-form{gap:8px}.app-shell.screen-practice.mode-reading .setup-label{font-size:.72rem}.app-shell.screen-practice.mode-reading .reading-form input{min-height:50px;font-size:clamp(1.08rem,4.8vw,1.4rem)}.app-shell.screen-practice.mode-reading .reading-form .primary-button{min-height:48px}.app-shell.screen-practice.mode-reading .reading-feedback,.app-shell.screen-practice.mode-reading .reading-attempts{font-size:.8rem;line-height:1.15}.app-shell.screen-practice.mode-reading .reading-feedback{margin-top:22px}.app-shell.screen-practice.mode-reading .theme-picker{left:auto;right:10px;bottom:10px;width:44px;height:44px;display:grid;place-items:center;gap:0;border-radius:8px}}@media (max-width: 768px) and (max-height: 700px){.app-shell.screen-practice.mode-reading .reading-screen{width:calc(100% - 8px);padding:6px 0}.app-shell.screen-practice.mode-reading .practice-header{gap:6px;margin-bottom:6px}.app-shell.screen-practice.mode-reading .practice-actions>button{min-height:36px;padding-inline:8px;font-size:.8rem}.app-shell.screen-practice.mode-reading .session-stat{padding:7px 8px}.app-shell.screen-practice.mode-reading .reading-panel{grid-template-rows:minmax(0,1fr) minmax(clamp(210px,32dvh,280px),auto);gap:6px}.app-shell.screen-practice.mode-reading .reading-sequence{--reading-image-size: 58%;--reading-image-y: -5%;gap:6px;padding:6px}.app-shell.screen-practice.mode-reading .reading-answer-panel{min-height:clamp(210px,32dvh,280px);gap:6px;padding:8px 10px}.app-shell.screen-practice.mode-reading .reading-feedback{margin-top:14px}.app-shell.screen-practice.mode-reading .reading-form{gap:6px}.app-shell.screen-practice.mode-reading .reading-form input,.app-shell.screen-practice.mode-reading .reading-form .primary-button{min-height:40px}}@media (max-width: 768px){.app-shell.auth-signed-out.screen-landing .app-topbar-left{padding-right:92px}.app-shell.auth-signed-out .app-topbar-left{right:14px;flex-wrap:nowrap;padding-right:124px}.app-shell.auth-signed-out .app-topbar-left .back-button{flex:0 0 auto;padding-inline:16px}.app-shell.auth-signed-out .app-topbar-left .primary-button{flex:1 1 auto;min-width:0;max-width:204px;padding-inline:16px;overflow:visible;text-overflow:clip;white-space:nowrap}.app-topbar-left .leaderboard-nav-button-desktop,.app-shell.auth-signed-out .app-topbar-left .leaderboard-nav-button{display:none}.app-topbar-right{right:14px}.app-shell.auth-signed-out .app-topbar-right{gap:8px}.app-shell.auth-signed-out .app-topbar-right .leaderboard-nav-button,.app-shell.auth-signed-out .app-topbar-right .secondary-button{width:46px;min-width:46px;height:46px;min-height:46px;padding:0;border-radius:50%}.app-shell.auth-signed-out .app-topbar-right .leaderboard-nav-button span,.app-shell.auth-signed-out .app-topbar-right .secondary-button span{display:none}.app-shell.auth-signed-out.screen-landing .app-topbar-right .secondary-button{width:auto;min-width:0;padding:0 16px;border-radius:999px}.app-shell.auth-signed-out.screen-landing .app-topbar-right .secondary-button span{display:inline}.profile-chip,.profile-chip .avatar-badge{width:46px;height:46px;min-height:46px}.app-topbar,.profile-menu,.inline-actions{align-items:stretch}.leaderboard-filters{grid-template-columns:minmax(0,1fr)}.leaderboard-filters .segmented-control{width:100%;grid-template-columns:repeat(var(--segment-count, 3),minmax(0,1fr))}.leaderboard-row{grid-template-columns:auto auto minmax(0,1fr) auto}.leaderboard-time{grid-column:auto;justify-self:end;white-space:nowrap}.app-shell.screen-practice.mode-alphabet .theme-picker,.app-shell.screen-practice.mode-words .theme-picker,.app-shell.screen-practice.mode-reading .theme-picker{left:auto;right:8px;bottom:8px;width:44px;height:44px;display:grid;place-items:center;border-radius:8px}}@media (max-width: 412px){.app-shell.auth-signed-out .app-topbar-left .primary-button{display:grid;place-items:center;flex:0 0 auto;width:46px;min-width:46px;max-width:46px;padding:0;border-radius:50%;overflow:hidden;gap:0;font-size:0;line-height:0}.app-shell.auth-signed-out .app-topbar-left .primary-button span{display:none}.app-shell.auth-signed-out .app-topbar-left .primary-button svg{width:22px;height:22px;stroke-width:2.2;transform:translate(1px)}}.app-shell.auth-signed-out.screen-landing .app-topbar-left .primary-button{--landing-create-account-width: min(204px, calc(100vw - 150px) );display:inline-flex;align-items:center;flex:0 0 var(--landing-create-account-width);gap:9px;width:var(--landing-create-account-width);min-width:var(--landing-create-account-width);max-width:var(--landing-create-account-width);padding:0 16px;border-radius:999px;font-size:inherit;line-height:inherit;justify-content:center;overflow:hidden;text-overflow:clip;white-space:nowrap}.app-shell.auth-signed-out.screen-landing .app-topbar-left .primary-button span{display:inline}.app-shell.auth-signed-out.screen-landing .app-topbar-left .primary-button svg{width:18px;height:18px;transform:none}@media (max-width: 520px){.theme-picker,.app-shell.screen-practice.mode-alphabet .theme-picker,.app-shell.screen-practice.mode-words .theme-picker,.app-shell.screen-practice.mode-reading .theme-picker{right:18px;bottom:18px}}.app-shell.screen-practice.mode-alphabet .theme-picker,.app-shell.screen-practice.mode-words .theme-picker,.app-shell.screen-practice.mode-reading .theme-picker{right:24px;bottom:24px}@media (max-width: 768px){.app-shell.screen-practice.mode-alphabet .theme-picker,.app-shell.screen-practice.mode-words .theme-picker,.app-shell.screen-practice.mode-reading .theme-picker{right:18px;bottom:18px}}@media (max-width: 768px){.app-shell:not(.screen-practice)>.theme-picker-floating{display:none}.app-topbar-right .leaderboard-nav-button-mobile,.app-topbar-right .theme-picker-nav{position:relative;inset:auto;z-index:auto;width:46px;min-width:46px;height:46px;min-height:46px;display:grid;place-items:center;flex:0 0 auto;border-radius:50%;-webkit-backdrop-filter:none;backdrop-filter:none}.app-topbar-right .leaderboard-nav-button-mobile{display:inline-flex}.app-topbar-right .leaderboard-nav-button-mobile span{display:none}.app-topbar-right .leaderboard-nav-button-mobile svg,.app-topbar-right .theme-picker-nav svg{width:24px;height:24px;stroke-width:2.2}.app-topbar-right .theme-picker-nav:hover{transform:translateY(-1px)}}@media (min-width: 769px){.app-shell.screen-practice.mode-alphabet .practice-screen,.app-shell.screen-practice.mode-words .practice-screen{display:grid;grid-template-columns:clamp(220px,22vw,320px) minmax(0,1fr);grid-template-rows:auto minmax(0,1fr);gap:10px;align-items:stretch}.app-shell.screen-practice.mode-alphabet .practice-header,.app-shell.screen-practice.mode-words .practice-header{grid-column:1 / -1;margin-bottom:0}.app-shell.screen-practice.mode-alphabet .target-panel,.app-shell.screen-practice.mode-words .target-panel{grid-column:1;grid-row:2;width:100%;height:100%;min-height:0;display:grid;grid-template-rows:auto auto minmax(0,1fr);justify-items:center;gap:clamp(8px,1.5dvh,16px);margin-bottom:0;padding:clamp(12px,1.8dvh,18px)}.app-shell.screen-practice.mode-alphabet .target-panel{--practice-target-half-gap: clamp(16px, 2.8dvh, 24px);--practice-target-size: clamp(128px, 29dvh, 220px);grid-template-rows:auto minmax(0,1fr) auto}.app-shell.screen-practice.mode-words .target-panel{--practice-target-half-gap: clamp(16px, 2.5dvh, 22px);--practice-target-size: clamp(104px, 20dvh, 160px);grid-template-rows:auto minmax(0,1fr) auto}.app-shell.screen-practice.mode-alphabet .target-label,.app-shell.screen-practice.mode-words .target-label{justify-self:start;margin-bottom:0}.app-shell.screen-practice.mode-alphabet .sign-reference,.app-shell.screen-practice.mode-words .sign-reference{position:absolute;top:calc(50% - var(--practice-target-size) - var(--practice-target-half-gap));left:50%;width:min(100%,var(--practice-target-size));height:min(100%,var(--practice-target-size));transform:translate(-50%)}.app-shell.screen-practice.mode-alphabet .target-letter,.app-shell.screen-practice.mode-words .target-letter{position:absolute;top:calc(50% + var(--practice-target-half-gap));left:50%;width:min(100%,var(--practice-target-size));height:min(100%,var(--practice-target-size));display:grid;place-items:center;margin:0;padding-left:0;font-size:clamp(7rem,27dvh,13rem);line-height:1;text-align:center;transform:translate(-50%)}.app-shell.screen-practice.mode-words .word-target{position:absolute;top:calc(50% + var(--practice-target-half-gap));left:50%;width:100%;height:min(100%,var(--practice-target-size));justify-content:center;align-content:center;gap:var(--word-letter-gap, clamp(5px, 1.2vw, 12px));min-height:0;padding-left:0;transform:translate(-50%)}.app-shell.screen-practice.mode-words .word-letter{min-width:min(var(--word-letter-min-width, clamp(24px, 3.8vw, 48px)),var(--word-letter-fit-width, 999px));font-size:min(var(--word-letter-size, clamp(2rem, 6.8dvh, 4rem)),var(--word-letter-fit-size, 999px))}.app-shell.screen-practice.mode-alphabet .target-panel.reference-hidden .target-letter,.app-shell.screen-practice.mode-words .target-panel.reference-hidden .word-target{top:50%;transform:translate(-50%,-50%)}.app-shell.screen-practice.mode-alphabet .target-letter.completed{animation:centered-target-letter-pop .42s ease}.app-shell.screen-practice.mode-alphabet .target-panel.reference-hidden .target-letter.completed{animation:centered-hidden-target-letter-pop .42s ease}.app-shell.screen-practice.mode-alphabet .practice-layout,.app-shell.screen-practice.mode-words .practice-layout{grid-column:2;grid-row:2;height:100%;min-height:0}.app-shell.screen-practice.mode-alphabet .webcam-panel,.app-shell.screen-practice.mode-words .webcam-panel{width:100%;height:100%;aspect-ratio:auto}.app-shell.screen-practice.mode-alphabet .webcam-container,.app-shell.screen-practice.mode-words .webcam-container{height:100%}}@media (max-width: 768px){.app-shell.screen-practice.mode-alphabet .target-panel,.app-shell.screen-practice.mode-words .target-panel{min-height:clamp(150px,19dvh,210px);margin-bottom:6px;padding:12px 14px}.app-shell.screen-practice.mode-alphabet .target-letter{right:16px;bottom:14px;font-size:clamp(4.8rem,18vw,7rem)}.app-shell.screen-practice.mode-alphabet .sign-reference,.app-shell.screen-practice.mode-words .sign-reference{top:clamp(34px,5dvh,44px);left:16px;width:clamp(84px,18vw,124px);height:clamp(84px,18vw,124px)}.app-shell.screen-practice.mode-words .word-target{right:14px;bottom:16px;left:14px}.app-shell.screen-practice.mode-words .word-letter{min-width:min(var(--word-letter-min-width, clamp(22px, 6.2vw, 36px)),var(--word-letter-fit-width, 999px));font-size:min(var(--word-letter-size, clamp(2rem, 8.5vw, 3.5rem)),var(--word-letter-fit-size, 999px))}.app-shell.screen-practice.mode-alphabet .target-panel.reference-hidden .target-letter{top:50%;right:auto;bottom:auto;left:50%;transform:translate(-50%,-50%)}.app-shell.screen-practice.mode-words .target-panel.reference-hidden .word-target{top:50%;right:14px;bottom:auto;left:14px;transform:translateY(-50%)}}@media (max-width: 768px) and (max-height: 700px){.app-shell.screen-practice.mode-alphabet .target-panel,.app-shell.screen-practice.mode-words .target-panel{min-height:clamp(110px,17dvh,145px);margin-bottom:4px;padding:8px 10px}.app-shell.screen-practice.mode-alphabet .target-label,.app-shell.screen-practice.mode-words .target-label{font-size:.64rem}.app-shell.screen-practice.mode-alphabet .target-letter{right:12px;bottom:10px;font-size:clamp(3.8rem,15vw,5.2rem)}.app-shell.screen-practice.mode-alphabet .sign-reference,.app-shell.screen-practice.mode-words .sign-reference{top:clamp(26px,4.5dvh,34px);left:12px;width:clamp(62px,15vw,88px);height:clamp(62px,15vw,88px)}.app-shell.screen-practice.mode-words .word-target{right:10px;bottom:12px;left:10px}.app-shell.screen-practice.mode-words .word-letter{min-width:min(var(--word-letter-min-width, 20px),var(--word-letter-fit-width, 999px));font-size:min(var(--word-letter-size, clamp(1.7rem, 7.2vw, 2.8rem)),var(--word-letter-fit-size, 999px))}.app-shell.screen-practice.mode-words .target-panel.reference-hidden .word-target{right:10px;left:10px}}*{box-sizing:border-box}html{min-width:320px;min-height:100%;min-height:100dvh;background:#020617;color-scheme:dark}body{min-width:320px;min-height:100vh;min-height:100dvh;margin:0;color:#f8fbff;background:#020617;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;line-height:1.5}body,button,input{font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}
