@font-face{font-family:Bricolage Grotesque;font-style:normal;font-weight:200 800;font-stretch:100%;font-display:swap;src:url(../media/033400d475fad6b1-s.0ekd.j2hc~_w0.woff2?dpl=dpl_C5xzbiyXWdjdFcjL2omDPteGwzNb)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Bricolage Grotesque;font-style:normal;font-weight:200 800;font-stretch:100%;font-display:swap;src:url(../media/26daee0352f50a5f-s.0rqws-.h91di~.woff2?dpl=dpl_C5xzbiyXWdjdFcjL2omDPteGwzNb)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Bricolage Grotesque;font-style:normal;font-weight:200 800;font-stretch:100%;font-display:swap;src:url(../media/017d9bea37084d9b-s.p.179.vsfvxa6t5.woff2?dpl=dpl_C5xzbiyXWdjdFcjL2omDPteGwzNb)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Bricolage Grotesque Fallback;src:local(Arial);ascent-override:88.21%;descent-override:25.61%;line-gap-override:0.0%;size-adjust:105.43%}.bricolage_grotesque_bbdf13c8-module__P4C4gW__className{font-family:Bricolage Grotesque,Bricolage Grotesque Fallback;font-style:normal}.bricolage_grotesque_bbdf13c8-module__P4C4gW__variable{--font-display:"Bricolage Grotesque", "Bricolage Grotesque Fallback"}
@font-face{font-family:DM Sans;font-style:normal;font-weight:100 1000;font-display:swap;src:url(../media/c3cb240f9c892514-s.163v2i5cux7-c.woff2?dpl=dpl_C5xzbiyXWdjdFcjL2omDPteGwzNb)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:DM Sans;font-style:normal;font-weight:100 1000;font-display:swap;src:url(../media/5c285b27cdda1fe8-s.p.0yo6-5yoeeudq.woff2?dpl=dpl_C5xzbiyXWdjdFcjL2omDPteGwzNb)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:DM Sans Fallback;src:local(Arial);ascent-override:94.9%;descent-override:29.66%;line-gap-override:0.0%;size-adjust:104.53%}.dm_sans_5a306cfd-module__r_Kq-a__className{font-family:DM Sans,DM Sans Fallback;font-style:normal}.dm_sans_5a306cfd-module__r_Kq-a__variable{--font-sans:"DM Sans", "DM Sans Fallback"}
@font-face{font-family:DM Mono;font-style:normal;font-weight:400;font-display:swap;src:url(../media/b12e986493c137cf-s.0unhoe1q6hp6-.woff2?dpl=dpl_C5xzbiyXWdjdFcjL2omDPteGwzNb)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:DM Mono;font-style:normal;font-weight:400;font-display:swap;src:url(../media/36363bfb06833f56-s.p.0-pny06~-x26a.woff2?dpl=dpl_C5xzbiyXWdjdFcjL2omDPteGwzNb)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:DM Mono;font-style:normal;font-weight:500;font-display:swap;src:url(../media/b2fa3ef4ca165ab4-s.0cnogfwvi2_o-.woff2?dpl=dpl_C5xzbiyXWdjdFcjL2omDPteGwzNb)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:DM Mono;font-style:normal;font-weight:500;font-display:swap;src:url(../media/a73419dd2ba2d841-s.p.0x-0vqtj_fzf1.woff2?dpl=dpl_C5xzbiyXWdjdFcjL2omDPteGwzNb)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:DM Mono Fallback;src:local(Arial);ascent-override:73.71%;descent-override:23.03%;line-gap-override:0.0%;size-adjust:134.59%}.dm_mono_e5cd5ea8-module__bFqJlW__className{font-family:DM Mono,DM Mono Fallback;font-style:normal}.dm_mono_e5cd5ea8-module__bFqJlW__variable{--font-mono:"DM Mono", "DM Mono Fallback"}
:root{--brand-violet:#6558f5;--brand-violet-deep:#4f43df;--brand-coral:#ff725e;--brand-sun:#ffca64;--brand-ink:#1d1d1b;--brand-cream:#fffdf8;--brand-dark:#11120f;--canvas:#f5f2ea;--canvas-elevated:#fbf9f3;--surface:#fffdf8;--surface-soft:#f0ede4;--surface-pressed:#e8e4da;--ink:#1d1d1b;--ink-soft:#45443f;--muted:#77746c;--faint:#8e8a82;--line:#dedacf;--line-strong:#cbc5b8;--violet:#6558f5;--violet-deep:#4f43df;--violet-soft:#ece9ff;--coral:#ff725e;--coral-soft:#fff0ed;--mint:#32b88b;--mint-soft:#e5f7f0;--sun:#ffca64;--danger:#d9483b;--danger-soft:#fff0ed;--shadow-sm:0 2px 8px #302a1e0f, 0 1px 2px #302a1e14;--shadow-md:0 18px 45px #38302117, 0 3px 10px #3830210f;--shadow-lg:0 32px 90px #30271829, 0 6px 20px #30271814;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}:root[data-theme=dark]{--canvas:#11120f;--canvas-elevated:#151612;--surface:#1a1b17;--surface-soft:#262721;--surface-pressed:#30312a;--ink:#f7f3e9;--ink-soft:#d5d1c8;--muted:#b4b0a7;--faint:#918d84;--line:#393a33;--line-strong:#4e5047;--violet:#8a7ffc;--violet-deep:#9c93ff;--violet-soft:#292541;--coral:#ff846f;--coral-soft:#3b2522;--mint:#56d2a7;--mint-soft:#17382d;--sun:#ffd37c;--danger:#ff8b7b;--danger-soft:#3c2421;--shadow-sm:0 2px 10px #00000038, 0 1px 2px #0000004d;--shadow-md:0 22px 55px #0000004d, 0 3px 12px #0000003d;--shadow-lg:0 36px 100px #0000008c, 0 8px 24px #00000052;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html{scroll-behavior:smooth;background:var(--canvas);min-width:320px}body{background:radial-gradient(circle at 9% -10%, color-mix(in srgb, var(--coral) 11%, transparent) 0, transparent 27rem), radial-gradient(circle at 91% 3%, color-mix(in srgb, var(--violet) 10%, transparent) 0, transparent 32rem), var(--canvas);min-height:100vh;color:var(--ink);font-family:var(--font-sans), "Avenir Next", system-ui, sans-serif;text-rendering:optimizelegibility;margin:0;transition:background-color .22s,color .22s;overflow-x:hidden}button,input,textarea{color:inherit;font:inherit}button{-webkit-tap-highlight-color:transparent}button:not(:disabled){cursor:pointer}button:disabled{cursor:not-allowed;opacity:.56}::selection{background:var(--violet-soft);color:var(--ink)}:focus-visible{outline:3px solid color-mix(in srgb, var(--violet) 75%, white);outline-offset:3px}.sr-only{clip:rect(0, 0, 0, 0)!important;white-space:nowrap!important;border:0!important;width:1px!important;height:1px!important;margin:-1px!important;padding:0!important;position:absolute!important;overflow:hidden!important}.app-shell{width:min(1180px,100% - 40px);min-width:0;margin:0 auto}.topbar{z-index:30;border-bottom:1px solid color-mix(in srgb, var(--line) 70%, transparent);justify-content:space-between;align-items:center;min-width:0;min-height:82px;display:flex;position:relative}.brand{background:0 0;border:0;align-items:center;gap:11px;min-width:0;padding:5px;display:inline-flex}.brand-mark{background:var(--brand-violet);width:37px;height:37px;box-shadow:var(--shadow-sm);border-radius:11px;flex:none;justify-content:center;align-items:center;display:inline-flex;overflow:hidden}.brand-mark-image{object-fit:cover;width:100%;height:100%;display:block}.brand-mark.small{border-radius:10px;width:34px;height:34px;font-size:18px}.brand-word{font-family:var(--font-display), sans-serif;letter-spacing:-.055em;font-size:22px;font-weight:780}.brand-word>span{color:var(--brand-coral);display:inline-block;position:relative;top:-2px;transform:rotate(-7deg)}.brand-word.small{letter-spacing:-.04em;font-size:15px}.top-actions{align-items:center;gap:8px;min-width:0;display:flex}.nav-button,.icon-button,.secondary-button,.text-button{border:1px solid var(--line);background:var(--surface);box-shadow:var(--shadow-sm)}.nav-button{min-height:44px;color:var(--ink-soft);border-radius:13px;align-items:center;gap:8px;padding:0 15px;font-size:14px;font-weight:700;transition:transform .12s,border-color .12s,background-color .12s;display:inline-flex}.nav-button:hover,.icon-button:hover,.secondary-button:hover{border-color:var(--line-strong);background:var(--canvas-elevated);transform:translateY(-1px)}.player-chip{border:1px solid color-mix(in srgb, var(--violet) 24%, var(--line));background:var(--surface);min-height:44px;box-shadow:var(--shadow-sm);text-align:left;border-radius:13px;align-items:center;gap:8px;padding:4px 9px 4px 5px;transition:transform .12s,border-color .12s,background-color .12s;display:inline-flex}.player-chip:hover{border-color:color-mix(in srgb, var(--violet) 48%, var(--line));background:var(--canvas-elevated);transform:translateY(-1px)}.player-chip-avatar{background:var(--violet-soft);width:34px;height:34px;color:var(--violet-deep);font-family:var(--font-display), sans-serif;border-radius:10px;flex:none;place-items:center;font-size:14px;font-weight:850;display:grid}.player-chip.is-new .player-chip-avatar{background:var(--coral-soft);color:var(--coral)}.player-chip-copy strong,.player-chip-copy small{text-overflow:ellipsis;white-space:nowrap;max-width:100px;display:block;overflow:hidden}.player-chip-copy strong{color:var(--ink);font-size:12px}.player-chip-copy small{color:var(--muted);font-family:var(--font-mono), monospace;letter-spacing:.04em;margin-top:1px;font-size:9px}.player-chip-edit{color:var(--faint)}.icon-button{width:44px;height:44px;color:var(--ink-soft);border-radius:13px;place-items:center;padding:0;transition:transform .12s,border-color .12s,background-color .12s;display:inline-grid}.level-pill{border:1px solid var(--line);background:color-mix(in srgb, var(--surface) 88%, transparent);min-height:44px;color:var(--muted);font-family:var(--font-mono), monospace;border-radius:13px;align-items:center;gap:9px;padding:0 12px;font-size:11px;font-weight:500;display:flex}.level-pill i{background:var(--surface-pressed);border-radius:99px;width:45px;height:5px;overflow:hidden}.level-pill b{border-radius:inherit;background:var(--violet);height:100%;transition:width .3s;display:block}.hero{grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:56px;min-width:0;padding:64px 2px 35px;display:grid}.hero-copy{min-width:0;max-width:790px}.eyebrow,.result-kicker,.dialog-kicker{color:var(--violet-deep);letter-spacing:.105em;text-transform:uppercase;align-items:center;gap:8px;font-size:12px;font-weight:800;display:inline-flex}.live-dot{border:2px solid color-mix(in srgb, var(--violet) 35%, var(--surface));background:var(--violet);width:8px;height:8px;box-shadow:0 0 0 4px var(--violet-soft);border-radius:50%}.hero h1{max-width:840px;font-family:var(--font-display), sans-serif;letter-spacing:-.066em;text-wrap:balance;margin:14px 0 12px;font-size:clamp(44px,5.8vw,72px);font-weight:760;line-height:.99}.hero h1 span{color:var(--violet);white-space:nowrap}.hero-copy>p{max-width:660px;color:var(--muted);margin:0;font-size:17px;line-height:1.6}.weekly-card{border:1px solid var(--line);background:color-mix(in srgb, var(--surface) 92%, transparent);min-width:252px;max-width:100%;box-shadow:var(--shadow-sm);border-radius:19px;grid-template-columns:auto 1fr;gap:0 12px;padding:16px;display:grid}.weekly-icon{background:var(--coral-soft);width:42px;height:42px;color:var(--coral);border-radius:13px;grid-row:span 2;place-items:center;display:grid}.weekly-card span{color:var(--muted);font-size:12px;font-weight:700}.weekly-card strong{margin-top:2px;font-size:15px;display:block}.week-dots{grid-column:1/-1;gap:5px;margin-top:13px;display:flex}.week-dots i{background:var(--surface-pressed);border-radius:99px;flex:1;height:5px}.week-dots i.active{background:var(--coral)}.game-card{border:1px solid var(--line);background:var(--surface);width:100%;min-width:0;max-width:100%;box-shadow:var(--shadow-md);border-radius:28px;transition:border-color .18s,box-shadow .18s;position:relative;overflow:hidden}.game-card.phase-running{border-color:color-mix(in srgb, var(--violet) 55%, var(--line));box-shadow:0 0 0 4px color-mix(in srgb, var(--violet) 10%, transparent), var(--shadow-md)}.game-toolbar{border-bottom:1px solid var(--line);background:color-mix(in srgb, var(--canvas-elevated) 54%, var(--surface));justify-content:space-between;align-items:center;gap:20px;min-width:0;padding:18px 20px;display:flex}.mode-switcher,.board-tabs,.period-switch{border:1px solid var(--line);background:var(--surface-soft);border-radius:14px;gap:3px;min-width:0;padding:4px;display:inline-flex}.mode-switcher button,.board-tabs button,.period-switch button{min-height:38px;color:var(--muted);background:0 0;border:0;border-radius:10px;align-items:center;gap:7px;padding:0 13px;font-size:13px;font-weight:750;transition:color .12s,background-color .12s,box-shadow .12s;display:inline-flex}.mode-switcher button span,.board-tabs button span{color:var(--faint);font-family:var(--font-mono), monospace;font-size:10px}.mode-switcher button.active,.board-tabs button.active,.period-switch button.active{background:var(--surface);box-shadow:var(--shadow-sm);color:var(--ink)}.mode-switcher button.active span,.board-tabs button.active span{color:var(--violet)}.best-chip{border:1px solid color-mix(in srgb, var(--violet) 25%, var(--line));background:var(--violet-soft);min-height:38px;color:var(--violet-deep);border-radius:12px;align-items:center;gap:7px;padding:0 12px;font-size:12px;display:inline-flex}.best-chip span{color:var(--muted)}.best-chip b{font-family:var(--font-mono), monospace;font-size:11px;font-weight:500}.hud{grid-template-columns:repeat(3,1fr) 145px;gap:10px;min-width:0;padding:18px 20px 0;display:grid}.metric,.timer-metric{border:1px solid var(--line);background:var(--canvas-elevated);border-radius:16px;min-width:0;min-height:78px;padding:13px 15px}.metric{flex-direction:column;justify-content:space-between;display:flex}.metric>span,.timer-metric span{color:var(--muted);letter-spacing:.08em;text-transform:uppercase;font-size:10px;font-weight:800}.metric strong,.timer-metric strong{font-family:var(--font-mono), monospace;letter-spacing:-.06em;font-size:27px;font-weight:500;line-height:1}.metric strong small{color:var(--muted);margin-left:2px;font-size:13px}.metric-accent{border-color:color-mix(in srgb, var(--violet) 28%, var(--line));background:var(--violet-soft)}.metric-accent strong{color:var(--violet-deep)}.timer-metric{align-items:center;gap:11px;padding:11px 13px;display:flex}.timer-ring{--timer-progress:100;background:conic-gradient(var(--coral) calc(var(--timer-progress) * 1%), var(--surface-pressed) 0);border-radius:50%;flex:none;width:47px;height:47px;position:relative;transform:rotate(-90deg)}.timer-ring:after{border-radius:inherit;background:var(--canvas-elevated);content:"";position:absolute;inset:5px}.timer-metric>div{flex-direction:column;gap:4px;min-width:0;display:flex}.passage-meta{min-width:0;color:var(--muted);justify-content:space-between;padding:19px 25px 10px;font-size:12px;font-weight:700;display:flex}.passage-meta span:first-child{color:var(--violet-deep);align-items:center;gap:7px;display:inline-flex}.play-stage{min-width:0;min-height:372px;padding:0 20px 20px;position:relative}.passage{border:1px solid var(--line);background:color-mix(in srgb, var(--canvas-elevated) 72%, var(--surface));width:100%;min-width:0;max-width:100%;height:292px;color:var(--faint);font-family:var(--font-sans), sans-serif;letter-spacing:-.02em;white-space:pre-wrap;word-break:normal;scroll-behavior:smooth;border-radius:20px;padding:26px 28px 92px;font-size:clamp(21px,2.25vw,27px);font-weight:560;line-height:1.72;transition:border-color .16s,background-color .16s;overflow:hidden}.phase-running .passage{border-color:color-mix(in srgb, var(--violet) 36%, var(--line));background:var(--surface)}.char{border-radius:3px;transition:color 80ms linear,background-color 80ms linear;position:relative}.char-correct{color:var(--ink)}.char-wrong{background:var(--danger-soft);color:var(--danger);text-decoration:underline;-webkit-text-decoration-color:var(--danger);text-decoration-color:var(--danger);text-underline-offset:4px;text-decoration-thickness:2px}.char-current{color:var(--ink)}.char-current:before{background:var(--violet);content:"";border-radius:3px;width:2px;animation:.9s step-end infinite caret-blink;position:absolute;top:2px;bottom:2px;left:-1px}@keyframes caret-blink{0%,52%{opacity:1}53%,to{opacity:.14}}.typing-input{z-index:-1;opacity:.01;border:0;width:2px;height:2px;padding:0;position:fixed;top:50%;left:50%;transform:translate(-50%,-50%)}.start-panel{border:1px solid color-mix(in srgb, var(--line) 80%, transparent);background:color-mix(in srgb, var(--surface) 94%, transparent);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-radius:18px;justify-content:space-between;align-items:center;gap:18px;padding:13px;display:flex;position:absolute;bottom:41px;left:40px;right:40px;box-shadow:0 10px 30px #302a1e1f}.primary-button,.score-submit{border:1px solid var(--violet-deep);background:var(--violet);min-height:52px;box-shadow:inset 0 -3px 0 var(--violet-deep), 0 9px 20px color-mix(in srgb, var(--violet) 24%, transparent);color:#fff;border-radius:14px;justify-content:center;align-items:center;gap:9px;padding:0 18px;font-size:14px;font-weight:800;transition:transform .1s,box-shadow .1s,background-color .1s;display:inline-flex}.primary-button:hover,.score-submit:hover{background:color-mix(in srgb, var(--violet) 90%, white);transform:translateY(-1px)}.primary-button:active,.score-submit:active{box-shadow:inset 0 -1px 0 var(--violet-deep), 0 4px 10px color-mix(in srgb, var(--violet) 18%, transparent);transform:translateY(2px)}.start-panel>span,.typing-status{color:var(--muted);align-items:center;gap:7px;font-size:12px;font-weight:650;display:inline-flex}.countdown{border:1px solid color-mix(in srgb, var(--violet) 25%, var(--line));background:color-mix(in srgb, var(--surface) 90%, transparent);text-align:center;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:20px;place-content:center;display:grid;position:absolute;inset:0 20px 20px}.countdown span{color:var(--violet);font-family:var(--font-display), sans-serif;letter-spacing:-.08em;font-size:96px;font-weight:800;line-height:.9;animation:.62s cubic-bezier(.22,1,.36,1) countdown-pop}.countdown p{color:var(--muted);letter-spacing:.08em;text-transform:uppercase;margin:12px 0 0;font-size:13px;font-weight:800}@keyframes countdown-pop{0%{opacity:0;transform:scale(.58)rotate(-6deg)}to{opacity:1;transform:scale(1)rotate(0)}}.typing-status{justify-content:space-between;position:absolute;bottom:38px;left:40px;right:40px}.typing-status span:first-child{color:var(--mint)}.typing-status i{background:var(--mint);width:7px;height:7px;box-shadow:0 0 0 4px var(--mint-soft);border-radius:50%;animation:1.1s ease-in-out infinite pulse;display:inline-block}@keyframes pulse{50%{opacity:.65;transform:scale(.75)}}.results-view{border:1px solid var(--line);background:var(--canvas-elevated);border-radius:20px;grid-template-columns:minmax(0,.88fr) minmax(360px,1.12fr);gap:28px 36px;min-height:450px;padding:32px;display:grid;position:relative;overflow:hidden}.result-heading{z-index:2;align-self:center;position:relative}.result-kicker{color:var(--coral)}.result-heading h2{font-family:var(--font-display), sans-serif;letter-spacing:-.06em;margin:12px 0 8px;font-size:clamp(36px,4vw,54px);font-weight:770;line-height:1}.result-heading p{max-width:410px;color:var(--muted);margin:0;line-height:1.6}.result-score-row{z-index:2;grid-template-columns:155px 1fr;gap:14px;display:grid;position:relative}.wpm-score{border:1px solid color-mix(in srgb, var(--violet) 30%, var(--line));background:var(--violet-soft);min-height:165px;color:var(--violet-deep);text-align:center;border-radius:24px;place-content:center;display:grid;position:relative;overflow:hidden}.wpm-score>span{font-family:var(--font-mono), monospace;letter-spacing:-.08em;font-size:55px;font-weight:500;line-height:.95}.wpm-score small{letter-spacing:.12em;margin-top:6px;font-size:11px;font-weight:850}.wpm-score i{color:var(--coral);font-family:var(--font-display), sans-serif;font-size:20px;font-style:normal;position:absolute;top:10px;right:13px}.result-details{grid-template-columns:1fr 1fr;gap:9px;display:grid}.result-details>div{border:1px solid var(--line);background:var(--surface);border-radius:15px;flex-direction:column;justify-content:space-between;min-height:78px;padding:13px;display:flex}.result-details span,.rank-note span{color:var(--muted);font-size:11px;font-weight:750}.result-details strong{font-family:var(--font-mono), monospace;font-size:17px;font-weight:500}.rank-note{z-index:2;border:1px solid var(--line);background:var(--surface);border-radius:16px;align-self:start;align-items:center;gap:12px;padding:14px;display:flex;position:relative}.rank-symbol{background:var(--coral-soft);width:40px;height:40px;color:var(--coral);font-family:var(--font-display), sans-serif;border-radius:12px;flex:none;place-items:center;font-size:22px;font-weight:800;display:grid}.rank-note span{color:var(--ink);font-size:12px;display:block}.rank-note p{color:var(--muted);margin:3px 0 0;font-size:12px}.score-form{z-index:2;border:1px solid color-mix(in srgb, var(--mint) 30%, var(--line));background:var(--mint-soft);border-radius:16px;grid-template-columns:1fr auto;align-self:start;gap:9px;padding:12px;display:grid;position:relative}.score-player{grid-template-columns:auto 1fr auto;align-items:center;gap:10px;min-width:0;display:grid}.score-player-avatar{background:var(--surface);width:40px;height:40px;color:var(--violet-deep);font-family:var(--font-display), sans-serif;border-radius:12px;place-items:center;font-weight:850;display:grid}.score-player>span:nth-child(2),.score-player small,.score-player strong{min-width:0;display:block}.score-player small{color:var(--muted);font-size:10px;font-weight:700}.score-player strong{text-overflow:ellipsis;white-space:nowrap;margin-top:2px;font-size:13px;overflow:hidden}.score-player strong em{color:var(--muted);font-family:var(--font-mono), monospace;font-size:10px;font-style:normal;font-weight:500}.score-change{border:1px solid color-mix(in srgb, var(--violet) 20%, var(--line));background:var(--surface);min-height:36px;color:var(--violet-deep);border-radius:10px;padding:0 10px;font-size:11px;font-weight:800}.score-change:hover{border-color:color-mix(in srgb, var(--violet) 45%, var(--line));background:var(--canvas-elevated)}.score-submit{border-radius:11px;align-self:end;min-height:42px;padding:0 14px;font-size:12px}.score-form>p{grid-column:1/-1;margin:0;font-size:12px;font-weight:700}.form-error{color:var(--danger)}.form-success{color:var(--mint)}.eligibility-note{z-index:2;border:1px solid var(--line);background:var(--surface);color:var(--muted);border-radius:15px;align-self:start;align-items:center;gap:9px;padding:14px;font-size:12px;line-height:1.45;display:flex;position:relative}.eligibility-note svg{color:var(--mint);flex:none}.result-actions{z-index:2;border-top:1px solid var(--line);grid-column:1/-1;align-items:center;gap:9px;padding-top:4px;display:flex;position:relative}.result-actions .primary-button,.secondary-button,.text-button{border-radius:12px;min-height:44px;padding:0 15px;font-size:13px;font-weight:750}.secondary-button,.text-button{justify-content:center;align-items:center;gap:8px;transition:transform .12s,border-color .12s,background-color .12s;display:inline-flex}.text-button{box-shadow:none;color:var(--violet-deep);background:0 0;border-color:#0000;margin-left:auto}.text-button:hover{background:var(--violet-soft)}.confetti{z-index:1;pointer-events:none;position:absolute;inset:0;overflow:hidden}.confetti i{--x:50%;--delay:0s;--rotate:0deg;top:-12px;left:var(--x);background:var(--violet);opacity:0;width:8px;height:13px;transform:rotate(var(--rotate));animation:confetti-fall 1.35s calc(var(--delay) + .12s) ease-out forwards;border-radius:3px;position:absolute}.confetti i.confetti-1{background:var(--coral)}.confetti i.confetti-2{background:var(--sun)}@keyframes confetti-fall{0%{opacity:1;transform:translateY(-10px) rotate(var(--rotate))}to{opacity:0;transform:translateY(440px) rotate(calc(var(--rotate) + 420deg))}}.missions-section{padding:44px 0 34px}.section-heading{justify-content:space-between;align-items:end;gap:20px;margin-bottom:16px;display:flex}.section-heading>div:first-child>span{color:var(--violet-deep);letter-spacing:.09em;text-transform:uppercase;font-size:11px;font-weight:800}.section-heading h2{font-family:var(--font-display), sans-serif;letter-spacing:-.045em;margin:5px 0 0;font-size:28px}.xp-badge{border:1px solid color-mix(in srgb, var(--sun) 45%, var(--line));background:color-mix(in srgb, var(--sun) 15%, var(--surface));color:var(--ink-soft);font-family:var(--font-mono), monospace;border-radius:11px;align-items:center;gap:7px;padding:9px 11px;font-size:11px;display:inline-flex}.xp-badge svg{color:#d99200}.mission-grid{grid-template-columns:repeat(3,1fr);gap:12px;display:grid}.mission-card{border:1px solid var(--line);background:var(--surface);min-height:106px;box-shadow:var(--shadow-sm);border-radius:18px;grid-template-columns:auto 1fr auto;align-items:center;gap:12px;padding:16px;display:grid}.mission-icon{background:var(--violet-soft);width:40px;height:40px;color:var(--violet-deep);border-radius:12px;place-items:center;display:grid}.mission-card:nth-child(2) .mission-icon{background:var(--coral-soft);color:var(--coral)}.mission-card:nth-child(3) .mission-icon{background:var(--mint-soft);color:var(--mint)}.mission-copy>span{color:var(--muted);letter-spacing:.07em;text-transform:uppercase;font-size:10px;font-weight:800;display:block}.mission-copy strong{margin-top:3px;font-size:13px;display:block}.mission-progress{background:var(--surface-pressed);border-radius:99px;height:5px;margin-top:10px;overflow:hidden}.mission-progress i{border-radius:inherit;background:var(--violet);height:100%;transition:width .3s;display:block}.mission-card:nth-child(2) .mission-progress i{background:var(--coral)}.mission-card:nth-child(3) .mission-progress i{background:var(--mint)}.mission-card>b{color:var(--muted);font-family:var(--font-mono), monospace;font-size:11px;font-weight:500}.mission-card.is-complete{border-color:color-mix(in srgb, var(--mint) 38%, var(--line))}.mission-card.is-complete .mission-icon{background:var(--mint);color:#fff}.mission-card.is-complete>b{color:var(--mint)}.trust-strip{border:1px solid var(--line);background:var(--line);border-radius:18px;grid-template-columns:1fr 1fr;gap:1px;margin-bottom:28px;display:grid;overflow:hidden}.trust-strip>div{background:var(--canvas-elevated);color:var(--muted);align-items:center;gap:12px;padding:17px 20px;font-size:12px;line-height:1.55;display:flex}.trust-strip svg{color:var(--violet-deep);flex:none}.trust-strip strong{color:var(--ink-soft)}footer{border-top:1px solid var(--line);color:var(--muted);justify-content:space-between;align-items:center;gap:24px;padding:26px 0 40px;font-size:12px;display:flex}.footer-brand{align-items:center;gap:10px;display:flex}.footer-brand strong,.footer-brand span{display:block}.footer-brand strong{color:var(--ink);font-family:var(--font-display), sans-serif;font-size:15px}.footer-wordmark>span{color:var(--brand-coral);display:inline}.footer-brand div>span{margin-top:1px;font-size:11px}.leaderboard-dialog{border:1px solid var(--line);background:var(--surface);width:min(720px,100% - 30px);max-height:min(86vh,840px);box-shadow:var(--shadow-lg);color:var(--ink);border-radius:26px;padding:0;overflow:hidden}.player-dialog{border:1px solid var(--line);background:var(--surface);width:min(500px,100% - 30px);max-height:min(90vh,760px);box-shadow:var(--shadow-lg);color:var(--ink);border-radius:26px;padding:0;overflow:hidden}.leaderboard-dialog::backdrop,.player-dialog::backdrop{-webkit-backdrop-filter:blur(7px);backdrop-filter:blur(7px);background:#13120f8a}.player-dialog-shell{overscroll-behavior:contain;max-height:min(90vh,760px);padding:24px;overflow:auto}.player-dialog-header{justify-content:space-between;align-items:center;gap:20px;display:flex}.player-card-preview{border:1px solid color-mix(in srgb, var(--violet) 30%, var(--line));background:radial-gradient(circle at 90% -20%, color-mix(in srgb, var(--coral) 22%, transparent), transparent 55%), var(--violet-soft);border-radius:20px;align-items:center;gap:14px;min-height:104px;margin-top:20px;padding:18px;display:flex;position:relative;overflow:hidden}.player-card-preview>span{background:var(--violet);width:66px;height:66px;box-shadow:inset 0 -4px 0 var(--violet-deep), 0 12px 24px color-mix(in srgb, var(--violet) 24%, transparent);color:#fff;font-family:var(--font-display), sans-serif;border-radius:20px;flex:none;place-items:center;font-size:29px;font-weight:850;display:grid}.player-card-preview small,.player-card-preview strong,.player-card-preview em{display:block}.player-card-preview small{color:var(--muted);letter-spacing:.1em;text-transform:uppercase;font-size:10px;font-weight:850}.player-card-preview strong{max-width:250px;font-family:var(--font-display), sans-serif;letter-spacing:-.04em;text-overflow:ellipsis;white-space:nowrap;margin-top:4px;font-size:25px;overflow:hidden}.player-card-preview em{color:var(--violet-deep);font-family:var(--font-mono), monospace;letter-spacing:.08em;margin-top:2px;font-size:10px;font-style:normal;font-weight:500}.player-dialog-copy h2{font-family:var(--font-display), sans-serif;letter-spacing:-.055em;margin:24px 0 7px;font-size:30px}.player-dialog-copy p{color:var(--muted);margin:0;font-size:14px;line-height:1.55}.player-form{margin-top:20px;display:grid}.player-form>label{color:var(--ink-soft);margin-bottom:7px;font-size:12px;font-weight:800}.player-input-shell{border:1px solid var(--line);background:var(--canvas-elevated);min-height:51px;color:var(--faint);border-radius:14px;align-items:center;gap:9px;padding:0 13px;transition:border-color .12s,box-shadow .12s;display:flex}.player-input-shell:focus-within{border-color:var(--violet);box-shadow:0 0 0 3px color-mix(in srgb, var(--violet) 14%, transparent)}.player-input-shell input{width:100%;min-width:0;color:var(--ink);background:0 0;border:0;outline:0;font-weight:700}.player-input-shell input::placeholder{color:var(--faint);font-weight:500}.player-form>p{color:var(--muted);margin:7px 2px 0;font-size:11px;line-height:1.45}.player-form .player-form-error{min-height:15px;color:var(--danger);margin-top:3px;font-weight:700}.player-form .primary-button{width:100%;margin-top:7px}.player-privacy{border:1px solid var(--line);background:var(--canvas-elevated);color:var(--muted);border-radius:14px;gap:10px;margin-top:14px;padding:13px;font-size:11px;line-height:1.5;display:flex}.player-privacy svg{color:var(--mint);flex:none}.player-privacy strong{color:var(--ink-soft)}.dialog-shell{overscroll-behavior:contain;max-height:min(86vh,840px);padding:26px;overflow:auto}.dialog-header{justify-content:space-between;align-items:start;gap:20px;display:flex}.dialog-kicker{color:var(--violet-deep)}.dialog-header h2{font-family:var(--font-display), sans-serif;letter-spacing:-.055em;margin:10px 0 6px;font-size:34px}.dialog-header p{color:var(--muted);margin:0;font-size:13px;line-height:1.5}.board-controls{justify-content:space-between;align-items:center;gap:15px;margin-top:24px;display:flex}.period-switch button{min-height:38px;padding:0 12px}.board-status{color:var(--muted);letter-spacing:.055em;text-transform:uppercase;justify-content:space-between;margin:15px 2px 9px;font-size:11px;font-weight:750;display:flex}.board-status span:first-child{align-items:center;gap:7px;display:inline-flex}.board-status i{background:var(--sun);border-radius:50%;width:7px;height:7px}.board-status i.is-live{background:var(--mint);box-shadow:0 0 0 3px var(--mint-soft)}.leaderboard-list{flex-direction:column;gap:7px;display:flex}.leaderboard-row{border:1px solid var(--line);background:var(--canvas-elevated);border-radius:15px;grid-template-columns:34px 42px 1fr auto;align-items:center;gap:11px;min-height:66px;padding:10px 14px 10px 9px;display:grid}.leaderboard-row.is-you{border-color:color-mix(in srgb, var(--violet) 46%, var(--line));background:var(--violet-soft)}.rank{width:30px;height:30px;color:var(--muted);font-family:var(--font-mono), monospace;border-radius:10px;place-items:center;font-size:12px;font-weight:500;display:grid}.rank-1{color:#a26600;background:#fff0bd}.rank-2{color:#657087;background:#eceff4}.rank-3{color:#a85c35;background:#f7dfd2}:root[data-theme=dark] .rank-1{color:#ffd66f;background:#423714}:root[data-theme=dark] .rank-2{color:#bdc7dc;background:#2b2e35}:root[data-theme=dark] .rank-3{color:#ffac81;background:#3c2a22}.avatar{background:color-mix(in srgb, var(--violet) 14%, var(--surface));width:40px;height:40px;color:var(--violet-deep);font-family:var(--font-display), sans-serif;border-radius:13px;place-items:center;font-weight:800;display:grid}.player-copy strong,.player-copy span{display:block}.player-copy strong{font-size:13px}.player-copy strong em{color:var(--muted);font-family:var(--font-mono), monospace;font-size:9px;font-style:normal;font-weight:500}.player-copy strong small{background:var(--violet);color:#fff;letter-spacing:.08em;text-transform:uppercase;border-radius:5px;margin-left:5px;padding:2px 5px;font-size:8px}.player-copy span{color:var(--muted);margin-top:3px;font-size:11px}.board-wpm{text-align:right;min-width:62px}.board-wpm strong,.board-wpm span{display:block}.board-wpm strong{font-family:var(--font-mono), monospace;font-size:19px;font-weight:500}.board-wpm span{color:var(--muted);letter-spacing:.08em;font-size:9px;font-weight:800}.board-skeleton{border:1px solid var(--line);background:linear-gradient(90deg, var(--surface-soft), var(--canvas-elevated), var(--surface-soft));background-size:220% 100%;border-radius:15px;height:66px;animation:1.3s linear infinite shimmer}@keyframes shimmer{to{background-position:-220% 0}}.empty-board{border:1px dashed var(--line-strong);color:var(--muted);text-align:center;border-radius:16px;justify-items:center;padding:50px 20px;display:grid}.empty-board svg{color:var(--violet);margin-bottom:10px}.empty-board strong{color:var(--ink);font-size:16px}.empty-board span{margin-top:5px;font-size:12px}.preview-note{color:var(--muted);margin:14px 2px 0;font-size:11px;line-height:1.5}.toast{z-index:80;border:1px solid color-mix(in srgb, var(--mint) 36%, var(--line));background:var(--surface);min-height:48px;box-shadow:var(--shadow-lg);color:var(--ink-soft);border-radius:14px;align-items:center;gap:9px;padding:0 16px;font-size:13px;font-weight:700;animation:.22s ease-out toast-in;display:flex;position:fixed;bottom:22px;right:22px}.toast svg{color:var(--mint)}@keyframes toast-in{0%{opacity:0;transform:translateY(8px)scale(.98)}to{opacity:1;transform:translateY(0)scale(1)}}@media (max-width:920px){.hero{grid-template-columns:1fr;gap:24px;padding-top:50px}.weekly-card{width:min(330px,100%)}.hud{grid-template-columns:repeat(2,1fr)}.timer-metric{grid-column:auto}.results-view{grid-template-columns:1fr}.result-score-row{grid-template-columns:150px 1fr}.mission-grid{grid-template-columns:1fr;min-width:0}.mission-card{min-height:90px}}@media (max-width:680px){.app-shell{width:calc(100% - 24px);max-width:1180px}.topbar{gap:8px;min-height:70px}.brand{gap:8px}.brand-mark{width:34px;height:34px}.brand-word{font-size:19px}.rankings-button span,.level-pill{display:none}.rankings-button{justify-content:center;width:42px;padding:0}.player-chip{justify-content:center;width:42px;padding:4px}.player-chip-copy,.player-chip-edit{display:none}.hero{padding:40px 2px 25px}.hero h1{overflow-wrap:break-word;max-width:100%;margin-top:12px;font-size:clamp(36px,10.5vw,46px);line-height:1.01}.hero h1 span{white-space:normal}.hero-copy>p{overflow-wrap:anywhere;font-size:15px}.weekly-card{width:100%;min-width:0}.game-card{border-radius:21px}.game-toolbar{align-items:stretch;min-width:0;padding:12px}.mode-switcher{grid-template-columns:repeat(3,1fr);width:100%;display:grid}.mode-switcher button{justify-content:center;min-height:44px;padding:0 8px}.best-chip{display:none}.hud{gap:7px;min-width:0;padding:12px 12px 0}.metric,.timer-metric{border-radius:13px;min-height:69px;padding:11px}.metric strong,.timer-metric strong{font-size:23px}.timer-ring{width:41px;height:41px}.passage-meta{padding:16px 15px 8px}.passage-meta span:last-child{display:none}.play-stage{min-height:348px;padding:0 12px 12px}.passage{overflow-wrap:break-word;border-radius:16px;height:300px;padding:21px 18px 104px;font-size:20px;line-height:1.65}.start-panel{flex-direction:column;gap:9px;padding:10px;bottom:28px;left:22px;right:22px}.start-panel .primary-button{width:100%}.start-panel>span{text-align:center}.countdown{inset:0 12px 12px}.typing-status{bottom:28px;left:28px;right:28px}.typing-status span:last-child{display:none}.results-view{border-radius:16px;gap:20px;min-height:0;padding:24px 18px}.result-heading h2{font-size:40px}.result-score-row{grid-template-columns:1fr;min-width:0}.wpm-score{min-height:135px}.result-details>div{min-height:69px}.score-form{grid-template-columns:1fr}.score-submit{width:100%;min-height:48px}.result-actions{flex-wrap:wrap}.result-actions .primary-button,.result-actions .secondary-button{flex:1;min-height:48px}.result-actions .text-button{width:100%;min-height:48px;margin-left:0}.section-heading{align-items:start}.xp-badge{white-space:nowrap}.trust-strip{grid-template-columns:1fr}.mission-card,.trust-strip,footer{min-width:0;max-width:100%}footer{flex-direction:column;align-items:start}footer>p{margin:0}.leaderboard-dialog{border-width:1px 0 0;border-radius:24px 24px 0 0;width:100%;max-width:none;max-height:92vh;margin:auto 0 0}.player-dialog{border-radius:22px;width:calc(100% - 24px);max-height:calc(100dvh - 24px)}.player-dialog-shell{max-height:calc(100dvh - 24px);padding:20px 17px}.player-input-shell,.player-form .primary-button{min-height:54px}.player-card-preview{min-height:96px;padding:15px}.player-card-preview>span{border-radius:18px;width:60px;height:60px}.player-dialog-copy h2{font-size:29px}.dialog-shell{width:100%;min-width:0;max-height:92vh;padding:21px 15px 28px}.dialog-header h2{font-size:29px}.board-controls{flex-direction:column;align-items:stretch}.board-tabs{grid-template-columns:repeat(3,1fr);display:grid}.board-tabs button{justify-content:center;min-height:44px}.period-switch{grid-template-columns:1fr 1fr;display:grid}.period-switch button{min-height:44px}.board-status{align-items:center;gap:10px;line-height:1.35}.board-status span:last-child{text-align:right}.empty-board{padding:42px 18px}.empty-board span{max-width:280px;line-height:1.5}.preview-note{font-size:12px}.leaderboard-row{grid-template-columns:30px 36px 1fr auto;gap:8px;padding-right:10px}.player-copy,.player-card-preview>div,.dialog-header>div{min-width:0}.avatar{width:36px;height:36px}.player-copy span{text-overflow:ellipsis;white-space:nowrap;max-width:150px;overflow:hidden}.toast{justify-content:center;bottom:12px;left:12px;right:12px}.score-change{min-height:40px}.eligibility-note{font-size:13px}.trust-strip>div{padding:16px}footer{padding-bottom:28px}.dialog-header .icon-button,.player-dialog-header .icon-button{flex:none}}@media (max-width:410px){.top-actions{gap:5px}.level-pill{display:none}.mode-switcher button{flex-direction:column;gap:0;min-height:42px}.timer-metric{gap:8px}.timer-ring{width:36px;height:36px}.result-actions .primary-button,.result-actions .secondary-button{flex-basis:100%}}@media (max-width:360px){.brand-word{display:none}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
