:root,:root[data-theme=dark]{--surface-0: #040404;--surface-1: #0d0d0d;--section: #101011;--surface-2: #141414;--surface-3: #1b1b1b;--card: #1b1b1b;--surface-4: #272727;--surface-5: #323232;--surface-6: #3c3c3c;--surface-7: #454545;--surface-8: #4d4d4d;--border: #232323;--muted: #262626;--nav-selected: rgba(38, 38, 38, .6);--input: #292929;--ring: #525252;--fg: #fafafa;--fg-subtle: #d1d1d1;--fg-muted: #a1a1a1;--fg-nav: rgba(250, 250, 250, .8);--fg-sub-2: rgba(255, 255, 255, .6);--primary: #fafafa;--primary-fg: #171717;--ring-panel: inset 0 0 0 1px rgba(250, 250, 250, .04);--ring-demo: inset 0 0 0 .5px rgba(250, 250, 250, .1);--ring-card: inset 0 0 0 1px rgba(250, 250, 250, .06);--panel-card: var(--surface-2);--btn-1-bg: #060606 radial-gradient(62px 50% at 50% 50%, rgba(255, 255, 255, .2), transparent), linear-gradient(181deg, rgba(255, 255, 255, .18), rgba(255, 255, 255, .3));--btn-1-bg-color: #060606;--btn-1-bg-image: radial-gradient(62px 50% at 50% 50%, rgba(255, 255, 255, .2), transparent), linear-gradient(181deg, rgba(255, 255, 255, .18), rgba(255, 255, 255, .3));--btn-1-shadow: 0 20px 20px rgba(0, 0, 0, .17), 0 5px 11px rgba(0, 0, 0, .2), inset 0 -.5px 0 rgba(255, 255, 255, .2), inset 0 .5px 0 rgba(255, 255, 255, .7);--btn-1-fg: #fafafa;--btn-2-bg: #000000;--btn-2-border: rgba(250, 250, 250, .2);--btn-2-border-hover: rgba(250, 250, 250, .36);--btn-2-fg: #fafafa;--btn-3-fg: rgba(250, 250, 250, .8);--btn-3-hover: rgba(250, 250, 250, .06);--bg: var(--surface-1);--bg-raise: var(--section);--surface: var(--card);--line: var(--border);--line-strong: #737373;--scrim: rgba(4, 4, 4, .78);--ink: var(--fg);--ink-2: var(--fg-subtle);--ink-3: var(--fg-muted);--brand-teal: #2cc7b4;--accent: #2cc7b4;--accent-ink: #2cc7b4;--accent-tint: rgba(44, 199, 180, .1);--accent-line: rgba(44, 199, 180, .34);--on-accent: #0d0d0d;--focus: #2cc7b4;--accent-mark: #2cc7b4;--btn-neutral-bg: var(--primary);--btn-neutral-bg-hover: #ffffff;--btn-neutral-fg: var(--primary-fg);--btn-neutral-line: transparent;--accent-fill: var(--btn-neutral-bg);--accent-fill-hover: var(--btn-neutral-bg-hover);--on-fill: var(--btn-neutral-fg);--glow: rgba(255, 255, 255, .03);--glow-soft: rgba(255, 255, 255, .015);--ok: #2cc7b4;--ok-tint: rgba(44, 199, 180, .1);--bad: #ff8e8e;--bad-tint: rgba(255, 142, 142, .1);--warn: #f2c063;--warn-tint: rgba(242, 192, 99, .1);--bone: #e9e4d8;--bone-dim: #3d3c39;--edge: inset 0 0 0 0 transparent;--edge-light: rgba(255, 255, 255, .04);--btn-highlight: rgba(255, 255, 255, .5);--shadow-1: 0 0 0 0 transparent;--shadow-2: 0 0 0 0 transparent;--shadow-3: 0 0 0 0 transparent;--shadow-hair: 0 0 0 0 transparent;--shadow-primary: 0 0 0 0 transparent;--kbd-bg: rgba(255, 255, 255, .05);--kbd-lip: rgba(0, 0, 0, .3);--scroll-thumb: #333333;--dot-color: rgba(250, 250, 250, .06);--matrix-lo: 22;--matrix-hi: 74;--matrix-ground: #040404;--specimen-lit: var(--bone);--target: var(--specimen-lit);--target-outline: #262626;--target-hatch: rgba(255, 255, 255, .28);--bone-ctx: #e4e0d6;--stage-accent: var(--ok);--stage-ghost: var(--bone-ctx);--stage-specimen: #e8e4da;--stage-next: #d2cdc1;--stage-ok: var(--ok);--stage-bad: var(--bad);--stage-pass: var(--warn);--specimen-shadow: #000000;--halo: rgba(255, 255, 255, .04);--halo-hero: var(--glow-soft);color-scheme:dark}:root[data-theme=light]{--surface-0: #f4f4f4;--surface-1: #fafafa;--section: #f5f5f5;--surface-2: #f4f4f4;--surface-3: #ffffff;--card: #ffffff;--surface-4: #f8f8f8;--surface-5: #f1f1f1;--surface-6: #e9e9e9;--surface-7: #e2e2e2;--surface-8: #dbdbdb;--border: #e5e5e5;--muted: #ededed;--nav-selected: rgba(13, 13, 13, .05);--input: #d4d4d4;--ring: #a3a3a3;--fg: #0d0d0d;--fg-subtle: #3d3d3d;--fg-muted: #5c5c5c;--fg-nav: rgba(13, 13, 13, .8);--fg-sub-2: rgba(0, 0, 0, .62);--primary: #171717;--primary-fg: #fafafa;--ring-panel: inset 0 0 0 1px rgba(13, 13, 13, .06);--ring-demo: inset 0 0 0 .5px rgba(13, 13, 13, .14);--ring-card: inset 0 0 0 1px rgba(13, 13, 13, .07);--panel-card: #ffffff;--btn-1-bg: #060606 radial-gradient(62px 50% at 50% 50%, rgba(255, 255, 255, .2), transparent), linear-gradient(181deg, rgba(255, 255, 255, .18), rgba(255, 255, 255, .3));--btn-1-bg-color: #060606;--btn-1-bg-image: radial-gradient(62px 50% at 50% 50%, rgba(255, 255, 255, .2), transparent), linear-gradient(181deg, rgba(255, 255, 255, .18), rgba(255, 255, 255, .3));--btn-1-shadow: 0 20px 20px rgba(0, 0, 0, .08), 0 5px 11px rgba(0, 0, 0, .12), inset 0 -.5px 0 rgba(255, 255, 255, .2), inset 0 .5px 0 rgba(255, 255, 255, .7);--btn-1-fg: #fafafa;--btn-2-bg: #ffffff;--btn-2-border: rgba(13, 13, 13, .2);--btn-2-border-hover: rgba(13, 13, 13, .4);--btn-2-fg: #0d0d0d;--btn-3-fg: rgba(13, 13, 13, .8);--btn-3-hover: rgba(13, 13, 13, .05);--bg: var(--surface-1);--bg-raise: var(--section);--surface: var(--card);--line: var(--border);--line-strong: #8c8c8c;--scrim: rgba(250, 250, 250, .8);--ink: var(--fg);--ink-2: var(--fg-subtle);--ink-3: var(--fg-muted);--brand-teal: #12a594;--accent: #0b7a6e;--accent-ink: #0b7a6e;--accent-tint: rgba(18, 165, 148, .08);--accent-line: rgba(18, 165, 148, .4);--on-accent: #ffffff;--focus: #0b7a6e;--accent-mark: #12a594;--btn-neutral-bg: var(--primary);--btn-neutral-bg-hover: #2e2e2e;--btn-neutral-fg: var(--primary-fg);--btn-neutral-line: transparent;--accent-fill: var(--btn-neutral-bg);--accent-fill-hover: var(--btn-neutral-bg-hover);--on-fill: var(--btn-neutral-fg);--glow: rgba(255, 255, 255, .7);--glow-soft: rgba(255, 255, 255, .45);--ok: #0b7a6e;--ok-tint: rgba(18, 165, 148, .09);--bad: #bf2f37;--bad-tint: rgba(191, 47, 55, .08);--warn: #875700;--warn-tint: rgba(135, 87, 0, .09);--bone: #ffffff;--bone-dim: #cfccc5;--edge: inset 0 0 0 0 transparent;--edge-light: rgba(255, 255, 255, .9);--btn-highlight: rgba(255, 255, 255, .1);--shadow-1: 0 0 0 0 transparent;--shadow-2: 0 0 0 0 transparent;--shadow-3: 0 0 0 0 transparent;--shadow-hair: 0 0 0 0 transparent;--shadow-primary: 0 0 0 0 transparent;--kbd-bg: var(--surface-2);--kbd-lip: rgba(13, 13, 13, .08);--scroll-thumb: #c7c7c7;--dot-color: rgba(13, 13, 13, .07);--matrix-lo: 238;--matrix-hi: 205;--matrix-ground: #fafafa;--specimen-lit: #6e604a;--target: var(--specimen-lit);--target-outline: #262626;--target-hatch: rgba(255, 255, 255, .28);--bone-ctx: #cfccc5;--stage-accent: var(--brand-teal);--stage-ghost: var(--bone-ctx);--stage-specimen: #cfccc5;--stage-next: #a3a3a3;--stage-ok: var(--ok);--stage-bad: var(--bad);--stage-pass: var(--warn);--specimen-shadow: #858585;--halo: rgba(255, 255, 255, .6);--halo-hero: var(--glow-soft);color-scheme:light}@font-face{font-family:Redaction;src:url(/fonts/redaction/Redaction-Regular.woff2) format("woff2");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Redaction;src:url(/fonts/redaction/Redaction-Italic.woff2) format("woff2");font-weight:400;font-style:italic;font-display:swap}@font-face{font-family:"Redaction 10";src:url(/fonts/redaction/Redaction_10-Regular.woff2) format("woff2");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:"Redaction 50";src:url(/fonts/redaction/Redaction_50-Italic.woff2) format("woff2");font-weight:400;font-style:italic;font-display:swap}@font-face{font-family:Geist;src:url(/fonts/geist/Geist-Variable.woff2) format("woff2");font-weight:100 900;font-style:normal;font-display:swap}@font-face{font-family:Geist Mono;src:url(/fonts/geist/GeistMono-Variable.woff2) format("woff2");font-weight:100 900;font-style:normal;font-display:swap}@font-face{font-family:Atkinson Hyperlegible Next;src:url(/fonts/atkinson/AtkinsonHyperlegibleNext-Variable.ttf) format("truetype");font-weight:200 800;font-style:normal;font-display:swap}:root{--f-redaction: "Redaction", "Iowan Old Style", Georgia, ui-serif, serif;--f-redaction-10: "Redaction 10", "Redaction", Georgia, ui-serif, serif;--f-redaction-50: "Redaction 50", "Redaction", Georgia, ui-serif, serif;--f-serif: var(--f-redaction);--f-ui: "Geist", ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;--f-display: var(--f-serif);--f-text: var(--f-ui);--f-legible: "Atkinson Hyperlegible Next", "Atkinson Hyperlegible", ui-sans-serif, system-ui, sans-serif;--f-mono: "Geist Mono", ui-monospace, "SF Mono", Menlo, Consolas, monospace;--t-12: .75rem;--t-13: .8125rem;--t-14: .875rem;--t-16: 1rem;--t-18: 1.125rem;--t-20: 1.25rem;--t-24: 1.5rem;--t-28: 1.75rem;--t-32: 2rem;--t-40: 2.5rem;--t-46: 2.875rem;--t-56: 3.5rem;--t-68: 4.25rem;--t-72: 4.5rem;--t-term: clamp(2rem, 4.2vw, 3.5rem);--t-display: var(--t-68);--track-serif: 0;--lh-serif: 1;--lh-body: 1.6;--s-1: 4px;--s-2: 8px;--s-3: 12px;--s-4: 16px;--s-5: 20px;--s-6: 24px;--s-8: 32px;--s-10: 40px;--s-12: 48px;--s-16: 64px;--s-20: 80px;--s-24: 96px;--s-32: 128px;--container: 1128px;--container-pad: 24px;--content: 1080px;--section-pad: 80px;--max: var(--content);--max-app: var(--content);--gutter: 24px;--margin: 24px;--page-gutter: clamp(16px, 2.6vw, 40px);--appbar-h: 56px;--tabbar-h: 76px;--texture-dots-tile: 4px;--texture-dots-size: var(--texture-dots-tile) var(--texture-dots-tile);--texture-dots-image: radial-gradient(circle at 1px 1px, var(--dot-color) .8px, transparent 1.2px);--texture-dots: var(--texture-dots-image) 0 0 / var(--texture-dots-size) repeat;--radius-6: 6px;--r-xs: 6px;--r-sm: 6px;--r-key: 6px;--r-md: 6px;--r-lg: 6px;--r-xl: 6px;--r-pill: 999px;--hair: 1px;--bw: 1px;--focus-ring: 0 0 0 2px var(--bg), 0 0 0 4px var(--focus);--ease: cubic-bezier(.22, .61, .36, 1);--ease-out: cubic-bezier(.2, 0, 0, 1);--ease-in-out: cubic-bezier(.65, 0, .35, 1);--ease-arrive: var(--ease);--ease-snap: var(--ease-out);--t-instant: 60ms;--t-press: 80ms;--t-fast: .15s;--t-base: .2s;--t-slow: .2s;--t-arrive: .32s;--t-stage: .7s;--t-flash: .4s;--t-halo: .7s;--rise: 6px;--z-stage: 0;--z-ui: 10;--z-flash: 20;--z-grain: 25;--z-overlay: 30;--z-appbar: 40;--z-tabbar: 41;--z-palette: 60;--on-accent-fill: var(--on-fill);--border-strong: var(--line-strong);--pass: var(--warn);--pass-tint: var(--warn-tint);--paper: var(--bg);--paper-card: var(--surface);--paper-sunk: var(--surface-2);--paper-scrim: var(--scrim);--rule: var(--line);--rule-strong: var(--line-strong);--ghost: var(--ink-3);--accent-wash: var(--accent-tint);--accent-glow: transparent;--btn-off-bd: var(--line);--bad-halo: color-mix(in srgb, var(--bad) 22%, transparent);--slot-wash: transparent;--stamp-blend: normal;--vignette: transparent;--grain: none;--specimen: var(--stage-specimen);--stage-accent-color: var(--stage-accent);--stage-ghost-color: var(--stage-ghost);--shadow-card: var(--shadow-2);--shadow-lift: var(--shadow-3);--font-display: var(--f-display);--font-sans: var(--f-text);--font-mono: var(--f-mono);--font-num: var(--f-mono);--font-serif: var(--f-serif);--fs-micro: var(--t-13);--fs-xs: var(--t-14);--fs-sm: var(--t-14);--fs-label: var(--t-14);--fs-md: var(--t-16);--fs-body: var(--t-16);--fs-lg: var(--t-20);--fs-xl: var(--t-32);--fs-2xl: var(--t-40);--fs-h1: clamp(2.25rem, 4vw, 2.875rem);--fs-stat: 1.75rem;--fs-hero: clamp(2.125rem, min(4vw, 6vh), 3.25rem);--fs-score: clamp(3rem, 6vw, 4.5rem);--fs-term: var(--t-term);--fs-type-max: var(--t-56);--fs-type-min: var(--t-32);--fs-type-sentence: clamp(1.5rem, 2.1vw, 2.125rem);--fs-display: var(--t-display);--lh-tight: 1.1;--lh-snug: 1.25;--lh-display: 1;--track-display: var(--track-serif);--track-caps: 0;--r-0: 0;--r-1: var(--r-xs);--r-2: var(--r-key);--r-3: var(--r-lg);--radius: var(--radius-6)}html:not(.is-landing){--f-display: var(--f-ui);--font-display: var(--f-ui)}@media(max-width:899px){:root{--gutter: 12px;--margin: 16px;--container-pad: 16px;--section-pad: 48px}}:root:lang(zh-Hans){--f-redaction: "Redaction", "Songti SC", "Noto Serif SC", "Source Han Serif SC", "Noto Serif CJK SC", serif;--f-redaction-10: "Redaction 10", "Redaction", "Songti SC", "Noto Serif SC", "Source Han Serif SC", serif;--f-redaction-50: "Redaction 50", "Redaction", "Songti SC", "Noto Serif SC", "Source Han Serif SC", serif;--f-ui: "Geist", "PingFang SC", "Noto Sans SC", "Microsoft YaHei", "Source Han Sans SC", ui-sans-serif, system-ui, sans-serif;--f-legible: "Atkinson Hyperlegible Next", "Atkinson Hyperlegible", "PingFang SC", "Noto Sans SC", "Microsoft YaHei", sans-serif}:root:lang(ko){--f-redaction: "Redaction", "AppleMyungjo", "Noto Serif KR", "Nanum Myeongjo", serif;--f-redaction-10: "Redaction 10", "Redaction", "AppleMyungjo", "Noto Serif KR", "Nanum Myeongjo", serif;--f-redaction-50: "Redaction 50", "Redaction", "AppleMyungjo", "Noto Serif KR", "Nanum Myeongjo", serif;--f-ui: "Geist", "Apple SD Gothic Neo", "Noto Sans KR", "Malgun Gothic", ui-sans-serif, system-ui, sans-serif;--f-legible: "Atkinson Hyperlegible Next", "Atkinson Hyperlegible", "Apple SD Gothic Neo", "Noto Sans KR", "Malgun Gothic", sans-serif}:lang(zh-Hans),:lang(ko){line-break:strict}:lang(ko){word-break:keep-all}:lang(zh-Hans) :is(h1,h2,h3,.lp-hero__title,.lp-h2,.lp-card__title),:lang(ko) :is(h1,h2,h3,.lp-hero__title,.lp-h2,.lp-card__title){line-height:1.25}:root:lang(ko) :is(h1,h2,h3,h4,.h1,.h2,.h3,.display,.card-title,.lp-hero__title,.lp-h2,.lp-card__title),:root:lang(ko) :is(h1,h2,h3,h4,.h1,.h2,.h3,.display,.card-title,.lp-hero__title,.lp-h2,.lp-card__title) :is(em,span){letter-spacing:0}:lang(zh-Hans) :is(em,i,.lp .lp-hero__title em,.lp .lp-card__title em),:lang(ko) :is(em,i,.lp .lp-hero__title em,.lp .lp-card__title em){font-style:normal}:root:lang(ar){--f-redaction: "Redaction", "Noto Naskh Arabic", "Geeza Pro", "Times New Roman", serif;--f-redaction-10: "Redaction 10", "Redaction", "Noto Naskh Arabic", "Geeza Pro", "Times New Roman", serif;--f-redaction-50: "Redaction 50", "Redaction", "Noto Naskh Arabic", "Geeza Pro", "Times New Roman", serif;--f-ui: "Geist", "Noto Sans Arabic", "SF Arabic", "Geeza Pro", "Segoe UI", Tahoma, sans-serif}:lang(ar) body{line-height:1.5}:lang(ar) :is(h1,h2,h3,.lp-hero__title,.lp-h2,.lp-card__title){line-height:1.3}:lang(ar) :is(*,.lp .lp-hero__title,.lp .lp-card__title){letter-spacing:normal}:lang(ar) :is(em,i,.lp .lp-hero__title em,.lp .lp-card__title em){font-style:normal}*,*:before,*:after{box-sizing:border-box}html,body,#root{margin:0;height:100%}html{-webkit-text-size-adjust:100%;text-size-adjust:100%}body{background-color:var(--bg);color:var(--ink);font-family:var(--f-text);font-size:var(--fs-body);font-weight:400;line-height:var(--lh-body);font-synthesis:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility;overflow:hidden}h1,h2,h3,h4,p,ol,ul,dl,dd,figure{margin:0}h1,h2,h3,h4{font-family:var(--f-serif);font-weight:400;line-height:var(--lh-tight);letter-spacing:var(--track-serif);font-optical-sizing:auto}h4{font-family:var(--f-ui);font-weight:600;letter-spacing:-.005em}:is(.app-shell,.auth,.app:not([data-screen=game])) :is(h1,h2,h3):not(.h4,.game__ask){font-family:var(--f-serif);font-weight:400;letter-spacing:var(--track-serif)}.display{font:400 var(--t-display) / 1 var(--f-serif);letter-spacing:var(--track-serif);text-wrap:balance}.h1{font:400 var(--t-46) / 1 var(--f-redaction-10);letter-spacing:0;text-wrap:balance}.h2{font:400 var(--t-28) / 34px var(--f-serif);letter-spacing:0;text-wrap:balance}.h3{font:400 var(--t-20) / 24px var(--f-serif);letter-spacing:-.4px}.h4{font:600 var(--t-16) / 1.35 var(--f-ui);letter-spacing:-.005em}.lead{font-size:var(--t-16);line-height:22px;color:var(--fg-muted)}.body-2{font-size:var(--t-14);line-height:20px;color:var(--fg-muted)}.t-label{font:500 var(--t-13) / 1.3 var(--f-text);color:var(--ink-3)}.t-mono{font:500 var(--t-13) / 1.2 var(--f-mono);color:var(--ink-3)}.t-accent{color:var(--accent)}@media(max-width:899px){.h1{font-size:var(--t-32)}.h2{font-size:var(--t-24);line-height:1.15}}em,i,cite,dfn,address{font-style:normal}em,i{font-weight:700}:is(h1,h2,h3,.display,.h1,.h2,.h3) :is(em,i),.display__accent{font-family:var(--f-serif);font-style:italic;font-weight:inherit;color:inherit;letter-spacing:inherit}a{color:var(--accent-ink);text-underline-offset:3px}ol,ul{padding:0;list-style:none}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer;background:none;border:0;padding:0}button:disabled,[aria-disabled=true]{cursor:not-allowed}::selection{background:var(--accent);color:var(--on-accent)}*{scrollbar-color:var(--scroll-thumb) transparent}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{border:2px solid transparent;border-radius:var(--r-pill);background:var(--scroll-thumb) padding-box}:focus{outline:none}:focus-visible{outline:2px solid var(--focus);outline-offset:3px}.sr-only{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap}.app{position:relative;height:100%;isolation:isolate}.stage-layer{position:fixed;top:0;right:0;bottom:0;left:0;z-index:var(--z-stage)}.stage-layer canvas{display:block;width:100%!important;height:100%!important}.ui-layer{position:relative;z-index:var(--z-ui);height:100%;pointer-events:none}.ui-layer :is(button,a,input,label,select,textarea,[role=switch],[role=tab],[role=radio],[tabindex]),.ui-layer .is-interactive{pointer-events:auto}.eyebrow{font-family:var(--font-sans);font-size:var(--fs-label);font-weight:500;letter-spacing:0;text-transform:none;color:var(--ink-3);line-height:1.35}.eyebrow--accent{color:var(--accent-ink)}.mono{font-family:var(--font-num);font-variant-numeric:tabular-nums slashed-zero}.num,.tnum{font-variant-numeric:tabular-nums!important}.skip-link{position:absolute;inset-inline-start:12px;top:-60px;z-index:100;padding:10px 16px;border-radius:var(--radius-6);background:var(--primary);color:var(--primary-fg);font:400 var(--t-14) / 1 var(--f-ui);text-decoration:none}.skip-link:focus-visible{top:12px}.credit{font-family:var(--font-sans);font-size:var(--fs-xs);color:var(--ink-3);letter-spacing:0}.credit a{color:inherit;text-decoration:underline;text-decoration-color:var(--border-strong);text-underline-offset:2px}.credit a:hover{color:var(--accent-ink);text-decoration-color:currentColor}.texture-dots{background-image:var(--texture-dots-image);background-size:var(--texture-dots-size);background-repeat:repeat}.texture-layer{position:absolute;top:0;right:0;bottom:0;left:0;z-index:0;pointer-events:none}.texture-fade{-webkit-mask-image:linear-gradient(180deg,#000 0%,#000 40%,transparent 100%);mask-image:linear-gradient(180deg,#000 0%,#000 40%,transparent 100%)}html[data-text-size=large]{font-size:112.5%}html[data-text-size=larger]{font-size:125%}.typeline,.key{--f-text: var(--f-legible)}html:not(.is-landing) :is(h1,h2,h3,.card-title,.results__title,.display,.h1,.h2,.h3) :is(em,i){font-style:normal}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:38px;padding:0 16px;border:1px solid var(--btn-2-border);border-radius:var(--radius-6);background:var(--btn-2-bg);color:var(--btn-2-fg);box-shadow:none;font:400 var(--t-14) / 20px var(--f-ui);letter-spacing:0;text-transform:none;text-decoration:none;white-space:nowrap;transition:background-color var(--t-fast) var(--ease),border-color var(--t-fast) var(--ease),color var(--t-fast) var(--ease),opacity var(--t-fast) var(--ease)}.btn:hover{border-color:var(--btn-2-border-hover)}.btn:active{transform:translateY(.5px)}.btn:disabled,.btn[aria-disabled=true]{opacity:.5;transform:none}.btn--primary,.btn-primary{padding:0 14px;border:0;background-color:var(--btn-1-bg-color);background-image:var(--btn-1-bg-image);color:var(--btn-1-fg);box-shadow:var(--btn-1-shadow)}.btn--primary:hover,.btn-primary:hover{background-image:linear-gradient(#ffffff0d,#ffffff0d),var(--btn-1-bg-image)}.btn--ghost,.btn-ghost{min-height:34px;padding:0 12px;border-color:transparent;background:transparent;color:var(--btn-3-fg)}.btn--ghost:hover,.btn-ghost:hover{border-color:transparent;background:var(--btn-3-hover);color:var(--fg)}.btn--quiet{min-height:34px;padding:0 12px;border-color:transparent;background:transparent;color:var(--accent-ink)}.btn--quiet:hover{border-color:transparent;background:var(--accent-tint)}.btn--sm,.btn-sm{min-height:34px}.btn--lg,.btn-lg,.btn--xl{min-height:38px}.btn--block{width:100%}.btn--icon{width:38px;min-width:38px;padding:0}.btn--icon.btn--sm{width:34px;min-width:34px}.btn>svg{flex:none;width:16px;height:16px}@media(max-width:640px),(pointer:coarse){.btn,.btn--sm,.btn-sm,.btn--lg,.btn-lg,.btn--xl,.btn--ghost,.btn--quiet{min-height:44px}.btn--icon,.btn--icon.btn--sm{width:44px;min-width:44px}}.btn__key,.btn .kbd{margin-inline-end:-6px}.btn__key{display:inline-grid;place-items:center;min-width:20px;height:20px;padding:0 5px;border-radius:4px;background:var(--kbd-bg);box-shadow:inset 0 0 0 1px var(--line);color:var(--ink-2);font:500 var(--t-12) / 1 var(--f-mono);letter-spacing:0}.btn--primary .btn__key,.btn-primary .btn__key,.btn--primary .kbd,.btn-primary .kbd{background:#ffffff1a;color:var(--btn-1-fg);box-shadow:inset 0 0 0 1px #fff3}.kbd{display:inline-grid;place-items:center;min-width:24px;height:24px;padding:0 6px;border-radius:var(--r-xs);background:var(--kbd-bg);box-shadow:inset 0 0 0 1px var(--line),inset 0 -1px 0 var(--kbd-lip);color:var(--ink-2);font:500 var(--t-12) / 1 var(--f-mono);letter-spacing:0;text-transform:none;white-space:nowrap}.shortcut{display:inline-flex;align-items:center;gap:4px}.seg{display:inline-grid;grid-auto-flow:column;grid-auto-columns:1fr;gap:2px;padding:4px;border-radius:var(--radius-6);background:var(--surface-2);box-shadow:inset 0 0 0 1px var(--line)}.seg__opt{min-height:36px;padding:0 16px;border-radius:4px;color:var(--ink-3);font:500 var(--t-14) / 1 var(--f-ui);letter-spacing:0;text-transform:none;white-space:nowrap;transition:background-color var(--t-fast) var(--ease),color var(--t-fast) var(--ease)}.seg__opt{position:relative}.seg__opt:after{content:"";position:absolute;top:-4px;right:0;bottom:-4px;left:0}.seg__opt:hover{color:var(--ink)}.seg__opt[aria-checked=true],.seg__opt[aria-pressed=true],.seg__opt.is-active{background:var(--surface-3);color:var(--ink);box-shadow:inset 0 0 0 1px var(--line)}:root[data-theme=light] .seg__opt[aria-checked=true],:root[data-theme=light] .seg__opt[aria-pressed=true]{background:var(--surface)}.seg__opt:disabled{color:var(--ink-3);opacity:.6}.seg--block{display:grid;width:100%}.seg--icons .seg__opt{display:inline-grid;place-items:center;width:36px;padding:0}.seg--icons .seg__opt svg{width:16px;height:16px}.seg--icons .seg__opt:after{top:-4px;right:-2px;bottom:-4px;left:-2px}.tabs{display:flex;gap:var(--s-6);border-bottom:var(--hair) solid var(--line)}.tab{position:relative;display:inline-flex;align-items:center;gap:var(--s-2);min-height:44px;padding:0 2px;color:var(--ink-3);font:500 var(--t-16) / 1 var(--f-ui);white-space:nowrap;transition:color var(--t-fast) var(--ease)}.tab:after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:2px;border-radius:2px 2px 0 0;background:var(--ink);opacity:0;transition:opacity var(--t-fast) var(--ease)}.tab:hover:not(:disabled):not([aria-disabled=true]){color:var(--ink)}.tab[aria-selected=true]{color:var(--ink)}.tab[aria-selected=true]:after{opacity:1}.tab:disabled,.tab[aria-disabled=true]{color:var(--ink-3);opacity:.7}.tag-soon{display:inline-flex;align-items:center;height:20px;padding:0 8px;border-radius:var(--radius-6);box-shadow:inset 0 0 0 1px var(--line);color:var(--ink-3);font:500 var(--t-12) / 1 var(--f-text)}.tag{display:inline-flex;align-items:center;height:24px;padding:0 10px;border-radius:var(--radius-6);background:var(--accent-tint);color:var(--accent-ink);font:500 var(--t-13) / 1 var(--f-text)}.switch{display:inline-flex;align-items:center;gap:var(--s-3);min-height:44px;padding:0 2px;color:var(--ink-2);font:500 var(--t-14) / 1.3 var(--f-text);text-align:start;border-radius:var(--r-xs)}.switch__track{position:relative;flex:none;width:44px;height:26px;border-radius:var(--r-pill);background:var(--surface-2);box-shadow:inset 0 0 0 1.5px var(--line-strong);transition:background-color var(--t-base) var(--ease),box-shadow var(--t-base) var(--ease)}.switch__thumb{position:absolute;top:4px;inset-inline-start:4px;width:18px;height:18px;border-radius:50%;background:var(--ink-3);transition:transform var(--t-base) var(--ease),background-color var(--t-base) var(--ease)}.switch:hover,.switch[aria-checked=true]{color:var(--ink)}.switch[aria-checked=true] .switch__track{background:var(--btn-neutral-bg);box-shadow:inset 0 1px 0 var(--btn-highlight)}.switch[aria-checked=true] .switch__thumb{transform:translate(18px);background:var(--btn-neutral-fg)}.switch:disabled{color:var(--ink-3)}.switch:disabled .switch__track{box-shadow:inset 0 0 0 1.5px var(--line)}.switch:disabled .switch__thumb{background:var(--line-strong)}.switch__hint{color:var(--ink-3);font-size:var(--t-13);font-weight:400}.switch--sm .switch__track{width:36px;height:22px}.switch--sm .switch__thumb{top:4px;inset-inline-start:4px;width:14px;height:14px}.switch--sm[aria-checked=true] .switch__thumb{transform:translate(14px)}.chips{display:flex;flex-wrap:wrap;gap:var(--s-2)}.chip{position:relative;display:inline-flex;align-items:center;gap:var(--s-2);min-height:44px;padding:0 16px 0 12px;border:0;border-radius:var(--radius-6);background:var(--surface-2);box-shadow:inset 0 0 0 1px var(--line);color:var(--ink-2);font:500 var(--t-14) / 1 var(--f-text);transition:background-color var(--t-fast) var(--ease),box-shadow var(--t-fast) var(--ease),color var(--t-fast) var(--ease)}.chip:before{content:"";flex:none;width:16px;height:16px;border:1.5px solid currentColor;border-radius:50%;opacity:.75}.chip:hover{box-shadow:inset 0 0 0 1px var(--line-strong);color:var(--ink)}.chip[aria-pressed=true],.chip[aria-checked=true]{background:var(--surface-3);box-shadow:inset 0 0 0 1px var(--line-strong);color:var(--ink)}.chip[aria-pressed=true]:before,.chip[aria-checked=true]:before{opacity:1;border-color:var(--btn-neutral-bg);background-color:var(--btn-neutral-bg)}.chip[aria-pressed=true]:after,.chip[aria-checked=true]:after{content:"";position:absolute;inset-inline-start:18px;top:50%;width:4px;height:8px;border-right:2px solid var(--btn-neutral-fg);border-bottom:2px solid var(--btn-neutral-fg);transform:translateY(-62%) rotate(45deg);pointer-events:none}.chip:disabled{color:var(--ink-3);box-shadow:inset 0 0 0 1px var(--line);opacity:.6}.chip--all{padding-inline-start:16px;box-shadow:inset 0 0 0 1px var(--line-strong)}.chip--all:before,.chip--all:after{display:none}.pill{display:inline-flex;align-items:center;gap:6px;height:28px;padding:0 10px;border-radius:var(--radius-6);background:var(--surface-2);box-shadow:inset 0 0 0 1px var(--line);color:var(--ink-2);font:500 var(--t-13) / 1 var(--f-text);white-space:nowrap}.pill>svg{flex:none;width:14px;height:14px}.pill--accent{color:var(--accent);background:var(--accent-tint);box-shadow:inset 0 0 0 1px var(--accent-line)}.pill--ok{color:var(--ok);background:var(--ok-tint);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--ok) 40%,transparent)}.pill--bad{color:var(--bad);background:var(--bad-tint);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--bad) 40%,transparent)}.pill--warn{color:var(--warn);background:var(--warn-tint);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--warn) 40%,transparent)}.status-pill{display:inline-flex;align-items:center;gap:8px;min-height:36px;padding:6px 14px 6px 10px;border-radius:var(--radius-6);font:500 var(--t-14) / 1.3 var(--f-text);color:var(--ink);background:var(--surface-2);box-shadow:inset 0 0 0 1px var(--line)}.status-pill__icon{flex:none;display:grid;place-items:center;width:20px;height:20px;border-radius:50%;color:var(--ink-2)}.status-pill__icon svg{width:14px;height:14px}.status-pill__word{font-weight:600}.status-pill--ok{background:var(--ok-tint);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--ok) 45%,transparent)}.status-pill--ok .status-pill__icon,.status-pill--ok .status-pill__word{color:var(--ok)}.status-pill--bad{background:var(--bad-tint);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--bad) 45%,transparent)}.status-pill--bad .status-pill__icon,.status-pill--bad .status-pill__word{color:var(--bad)}.status-pill--warn{background:var(--warn-tint);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--warn) 45%,transparent)}.status-pill--warn .status-pill__icon,.status-pill--warn .status-pill__word{color:var(--warn)}.status-pill--info{background:var(--accent-tint);box-shadow:inset 0 0 0 1px var(--accent-line)}.status-pill--info .status-pill__icon,.status-pill--info .status-pill__word{color:var(--accent)}.field{display:grid;grid-template-columns:minmax(0,1fr);gap:8px}.field__label{font:500 var(--t-14) / 1.3 var(--f-text);color:var(--ink-2)}.input,.field__input{width:100%;min-width:0;height:44px;padding:0 12px;border:1px solid var(--line-strong);border-radius:var(--r-md);background:var(--surface-2);color:var(--ink);font:400 var(--t-16) / 1 var(--f-text);outline:none;transition:border-color var(--t-fast) var(--ease),box-shadow var(--t-fast) var(--ease)}:root[data-theme=light] .input,:root[data-theme=light] .field__input{background:var(--surface)}.input::placeholder,.field__input::placeholder{color:var(--ink-3);opacity:1}.input:hover,.field__input:hover{border-color:var(--ink-3)}.input:focus,.input:focus-visible,.field__input:focus,.field__input:focus-visible{border-color:var(--focus);box-shadow:0 0 0 3px var(--accent-tint);outline:none}.input:disabled,.field__input:disabled{color:var(--ink-3);border-color:var(--line)}.input[aria-invalid=true],.field.is-invalid .field__input,.field__input[aria-invalid=true]{border-color:var(--bad);box-shadow:0 0 0 4px var(--bad-tint)}.field__hint{display:flex;align-items:flex-start;gap:6px;padding-top:8px;font:400 var(--t-13) / 1.45 var(--f-text);color:var(--ink-3)}.field.is-invalid+.field__hint,.field__hint.is-error{color:var(--bad);font-weight:500}.field__hint-icon{flex:none;width:16px;height:16px;margin-top:1px}.card,.card-lit{border:0;border-radius:var(--radius-6);background:var(--card);box-shadow:var(--ring-card)}.card--hero{border-radius:var(--r-xl)}.card--pad{padding:var(--s-6)}.card--interactive{transition:box-shadow var(--t-base) var(--ease),background-color var(--t-base) var(--ease)}.card--interactive:hover{background:var(--surface-4)}:root[data-theme=light] .card--interactive:hover{background:var(--card);box-shadow:inset 0 0 0 1px var(--line-strong)}.well{border-radius:var(--r-md);background:var(--surface-2)}@media(max-width:899px){.card--pad{padding:var(--s-5)}}.stat-tile{display:grid;gap:4px;align-content:start;padding:12px 14px;border-radius:var(--r-key);background:var(--surface-2);min-width:0}.stat-tile__value{font:600 var(--t-20) / 1.05 var(--f-ui);letter-spacing:-.01em;font-variant-numeric:tabular-nums;color:var(--ink)}.stat-tile__value small{margin-inline-start:2px;font:500 var(--t-13) / 1 var(--f-text);letter-spacing:0;color:var(--ink-3)}.stat-tile__label{font:400 var(--t-12) / 1.35 var(--f-text);color:var(--ink-3)}.stat-tile--lg .stat-tile__value{font-size:var(--t-32);letter-spacing:-.03em}.stat-tile--plain{padding:0;background:none}.bar{height:6px;border-radius:99px;background:var(--surface-3);overflow:hidden}:root[data-theme=light] .bar{background:var(--surface-2)}.bar--thin{height:4px}.bar>i{display:block;height:100%;border-radius:inherit;background:var(--accent);transition:width var(--t-arrive) var(--ease)}.bar--ok>i{background:var(--ok)}.bar--warn>i{background:var(--warn)}.bar--bad>i{background:var(--bad)}.progress-meter{display:grid;gap:8px}.progress-meter__row{display:flex;justify-content:space-between;gap:12px;font-size:var(--t-14);color:var(--ink-2)}.progress-meter__row b{color:var(--ink);font-weight:600;font-variant-numeric:tabular-nums}.ring{position:relative;flex:none;width:var(--ring-size, 112px);height:var(--ring-size, 112px)}.ring svg{display:block;width:100%;height:100%;transform:rotate(-90deg)}.ring__track{stroke:var(--surface-2)}.ring__value{stroke:var(--accent);transition:stroke-dashoffset var(--t-arrive) var(--ease)}.ring--ok .ring__value{stroke:var(--ok)}.ring--warn .ring__value{stroke:var(--warn)}.ring--bad .ring__value{stroke:var(--bad)}.ring__center{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;text-align:center}.ring__center b{display:block;font:600 var(--t-24) / 1 var(--f-ui);letter-spacing:-.02em;font-variant-numeric:tabular-nums}.ring__center span{font-size:var(--t-12);color:var(--ink-3)}.avatar{flex:none;display:grid;place-items:center;width:var(--avatar-size, 44px);height:var(--avatar-size, 44px);border-radius:50%;background:var(--surface-3);color:var(--ink);font:600 var(--t-14) / 1 var(--f-ui);box-shadow:inset 0 0 0 1px var(--line-strong),0 0 0 2px var(--bg),0 0 0 3px var(--line);-webkit-user-select:none;user-select:none}button.avatar:hover{box-shadow:inset 0 0 0 1px var(--line-strong),0 0 0 2px var(--bg),0 0 0 3px var(--line-strong)}.streak-chip{display:inline-flex;align-items:center;gap:6px;height:44px;padding:0 14px;border-radius:var(--radius-6);background:var(--surface);box-shadow:inset 0 0 0 1px var(--line);color:var(--ink);font:600 var(--t-14) / 1 var(--f-ui);font-variant-numeric:tabular-nums;white-space:nowrap}.streak-chip svg{flex:none;width:16px;height:16px;color:var(--warn)}.streak-chip.is-zero svg{color:var(--ink-3)}.streak-chip--sm{height:28px;padding:0 10px;font-size:var(--t-13);background:var(--surface-2)}.streak-chip--sm svg{width:13px;height:13px}.logo,.brand.brand--d1{display:inline-flex;align-items:center;flex:none;min-height:44px;padding:0 5px;margin-inline:-5px;border-radius:var(--radius-6);text-decoration:none}.logo__img{display:block;flex:none;height:28px}.logo__img--full{width:122px}.logo__img--mark{width:28px}.logo__img--light,:root[data-theme=light] .logo__img--dark{display:none}:root[data-theme=light] .logo__img--light{display:block}.logo--full .logo__img--mark,.logo--mark .logo__img--full,.logo--auto .logo__img--mark{display:none!important}@media(max-width:640px){.logo--auto .logo__img--full{display:none!important}.logo--auto .logo__img--mark.logo__img--dark{display:block!important}:root[data-theme=light] .logo--auto .logo__img--mark.logo__img--dark{display:none!important}:root[data-theme=light] .logo--auto .logo__img--mark.logo__img--light{display:block!important}}.brand.brand--d1 .brand__ed{margin-inline-start:12px;padding-inline-start:12px;border-inline-start:var(--hair) solid var(--line);font:400 var(--t-13) / 1 var(--f-ui);color:var(--ink-3)}.plate.plate--card{border:var(--hair) solid var(--line);border-radius:var(--r-xl);box-shadow:0 0 0 8px var(--bg)}.plate.plate--card:before,.plate.plate--card:after{display:none}.plate.plate--card .plate__no,.plate.plate--card .plate__caption,.plate.plate--card .plate__view{position:absolute;font:500 var(--t-13) / 1.3 var(--f-text);color:var(--ink-3)}.plate.plate--card .plate__no{top:12px;left:16px;right:auto;bottom:auto}.plate.plate--card .plate__no b{font-weight:700}.plate.plate--card .plate__caption{bottom:12px;left:16px;right:auto;top:auto}.plate.plate--card .plate__view{bottom:12px;right:16px;left:auto;top:auto}@media(hover:none)and (pointer:coarse){.btn__key,.shortcut--hide-touch{display:none}}@media(max-width:640px),(pointer:coarse){.seg{padding:2px}.seg__opt{min-height:44px}.seg--icons .seg__opt{width:44px}.switch,.chip,.tab{min-height:44px}.logo,.brand.brand--d1{min-width:44px;min-height:44px;justify-content:center}}.app[data-screen=menu]{--stage-x: 29%;--stage-y: 13%;--stage-w: 46%;--stage-h: 74%;--prev-x: 0%;--prev-y: 0%;--prev-w: 0%;--prev-h: 0%;--next-x: 0%;--next-y: 0%;--next-w: 0%;--next-h: 0%}.app[data-screen=game]{--stage-x: 2%;--stage-y: 8%;--stage-w: 96%;--stage-h: 44.5%;--stage-inset-t: 16;--stage-inset-r: 0;--stage-inset-b: 16;--stage-inset-l: 0;--prev-x: 0%;--prev-y: 0%;--prev-w: 0%;--prev-h: 0%;--next-x: 0%;--next-y: 0%;--next-w: 0%;--next-h: 0%}.app[data-screen=results]{--stage-x: 30%;--stage-y: 2%;--stage-w: 40%;--stage-h: 28%;--prev-x: 0%;--prev-y: 0%;--prev-w: 0%;--prev-h: 0%;--next-x: 0%;--next-y: 0%;--next-w: 0%;--next-h: 0%}@media(min-width:1680px){.app[data-screen=game]{--stage-x: 7%;--stage-w: 86%}}@media(min-width:2000px){.app[data-screen=game]{--stage-x: 14%;--stage-w: 72%}}@media(min-width:1280px)and (max-width:1439.98px){.app[data-screen=menu]{--stage-x: 31%;--stage-w: 44%}}@media(max-width:1279.98px){.app[data-screen=menu]{--stage-x: 40%;--stage-y: 10%;--stage-w: 57%;--stage-h: 50%}.app[data-screen=results]{--stage-x: 20%;--stage-y: 2%;--stage-w: 60%;--stage-h: 28%}}@media(min-width:860.02px)and (min-height:960px){.app[data-screen=game]{--stage-y: 7.5%;--stage-h: 48.5%}}@media(min-width:860.02px)and (max-height:819.98px){.app[data-screen=game]{--stage-y: 8.5%;--stage-h: 43.5%;--stage-inset-t: 12;--stage-inset-b: 12}}@media(max-width:860px){.app[data-screen=menu]{--stage-x: 4%;--stage-y: 9%;--stage-w: 92%;--stage-h: 34%}.app[data-screen=game]{--stage-x: 2%;--stage-y: 7%;--stage-w: 96%;--stage-h: 52%;--stage-inset-t: 54;--stage-inset-b: 12}.app[data-screen=results]{--stage-x: 4%;--stage-y: 2%;--stage-w: 92%;--stage-h: 24%}}.plate{position:fixed;left:var(--stage-x);top:var(--stage-y);width:var(--stage-w);height:var(--stage-h);pointer-events:none;transition:left var(--t-stage) var(--ease-in-out),top var(--t-stage) var(--ease-in-out),width var(--t-stage) var(--ease-in-out),height var(--t-stage) var(--ease-in-out)}@media(max-width:860px)and (max-height:799.98px){.app[data-screen=game]{--stage-y: 8%;--stage-h: 44%}}@media(max-width:860px)and (max-height:699.98px){.app[data-screen=game]{--stage-y: 9%;--stage-h: 37%}}.ui-layer .app-shell{pointer-events:auto}.menu__head{align-items:flex-end}.menu__head p{max-width:60ch}.menu__form{display:flex;flex-direction:column;gap:var(--s-8);padding:var(--s-6)}.menu__group{display:flex;flex-direction:column;align-items:flex-start;gap:var(--s-3);min-width:0}.menu__label-row{display:flex;align-items:center;justify-content:space-between;gap:var(--s-4);align-self:stretch;min-height:24px}.menu__label{font:500 var(--t-14) / 20px var(--f-ui);color:var(--ink)}.menu__count{font-size:var(--t-13);color:var(--ink-3)}.menu__desc{font-size:var(--t-14);line-height:1.5;color:var(--ink-3)}.menu__desc--tight{margin-top:calc(-1 * var(--s-1))}.menu__atlas{align-self:stretch}.menu__atlas .seg__opt{min-height:44px}.atlas-opt{display:inline-flex;align-items:center;gap:8px}.atlas-opt__icon,.mode-opt>svg{flex:none;width:16px;height:16px;color:var(--ink-3)}.seg__opt[aria-checked=true] .atlas-opt__icon,.seg__opt[aria-checked=true] .mode-opt>svg{color:var(--accent-ink)}.mode-opt{display:inline-flex;align-items:center;gap:8px}.seg-icon{display:inline-grid;place-items:center;min-width:32px}.seg-icon>svg{width:18px;height:18px}.atlas-opt__name{font:500 var(--t-14) / 1 var(--f-ui)}.atlas-opt__n{font-size:var(--t-12);color:var(--ink-3)}.seg__opt[aria-checked=true] .atlas-opt__n{color:var(--ink-2)}.atlas-opt__soon{font-size:var(--t-12);font-weight:500}.menu__atlas .seg__opt:disabled{opacity:1;color:var(--ink-3);cursor:not-allowed}.menu__mode{min-width:min(100%,320px)}.menu__board-link{display:inline-flex;align-items:center;gap:6px;min-height:44px;margin:-10px 0;padding:0 4px;border-radius:var(--r-xs);font:400 var(--t-14) / 1 var(--f-ui);color:var(--accent-ink);text-decoration:none}.menu__board-link:hover{color:var(--accent-ink);text-decoration:underline;text-underline-offset:3px}.menu__group--slot{min-height:128px}.chip__n{font-size:var(--t-12);color:var(--ink-3)}.chip[aria-pressed=true] .chip__n{color:inherit;opacity:.85}.menu__error{display:inline-flex;align-items:center;gap:var(--s-2);font-size:var(--t-14);font-weight:500;color:var(--bad)}.menu__name{display:flex;flex-direction:column;gap:var(--s-2);align-self:stretch;max-width:440px}.menu__name .field{display:flex;flex-direction:column;gap:var(--s-2)}.menu__aside{font-size:var(--t-14);line-height:1.4;color:var(--ink-3)}.menu__aside--link{align-self:flex-start;display:inline-flex;align-items:center;gap:var(--s-1);min-height:44px;border-radius:var(--r-xs);font-weight:500;color:var(--accent-ink);text-decoration:underline;text-decoration-color:color-mix(in srgb,currentColor 40%,transparent);text-underline-offset:3px}.menu__aside--link:hover{text-decoration-color:currentColor}.name-as{display:flex;flex-direction:column;gap:var(--s-2);align-self:stretch;max-width:440px}.name-as__line{display:flex;align-items:center;justify-content:space-between;gap:var(--s-3);min-height:52px;padding:0 4px 0 var(--s-4);border:0;border-radius:var(--radius-6);background:var(--surface-2);box-shadow:var(--ring-demo)}.name-as__value{overflow:hidden;min-width:0;font-size:var(--t-16);font-weight:500;text-overflow:ellipsis;white-space:nowrap;color:var(--ink)}.name-as__value--wait{font-weight:400;color:var(--ink-3)}.name-as__change{min-height:44px;padding:0 var(--s-4)}.name-edit{display:grid;grid-template-columns:minmax(0,1fr) auto;column-gap:var(--s-3);align-self:stretch;max-width:540px}.name-edit__field,.name-edit__field .field{display:flex;flex-direction:column;gap:var(--s-2)}.name-edit__actions{display:flex;align-items:center;gap:var(--s-1);height:52px;margin-top:30px}.menu__pair{display:grid;grid-template-columns:auto minmax(0,1fr);column-gap:var(--s-12);row-gap:var(--s-6);align-items:start;padding-top:var(--s-6);box-shadow:inset 0 1px 0 var(--line)}.menu__pair>.menu__group:last-child{padding-top:34px}.menu__blind .switch__label{font-size:var(--t-16);color:var(--ink)}.menu__side{display:flex;flex-direction:column;gap:var(--s-4);align-self:start;position:sticky;top:calc(var(--appbar-h) + var(--s-6))}.menu__round{position:relative;display:flex;flex-direction:column;gap:var(--s-4);padding:var(--s-6);overflow:hidden}.menu__round>*{position:relative}.menu__round-head{display:flex;justify-content:space-between;align-items:center;gap:var(--s-3)}.menu__round-count{display:flex;align-items:baseline;gap:var(--s-2);margin:0}.menu__round-count b{font:400 var(--t-56) / 1 var(--f-ui);letter-spacing:-.03em;color:var(--ink)}.menu__round-count span{font-size:var(--t-14);color:var(--ink-3)}.menu__round-facts{gap:4px 16px}.menu__start{display:flex;flex-direction:column;gap:var(--s-2);margin-top:var(--s-1)}.menu__start-note{font-size:var(--t-14);line-height:1.45;color:var(--ink-3);font-variant-numeric:tabular-nums}.menu__start-note.is-warn{font-weight:500;color:var(--bad)}.menu__keys{display:flex;flex-wrap:wrap;align-items:center;gap:var(--s-2);padding-top:var(--s-3);box-shadow:inset 0 1px 0 var(--line);font-size:var(--t-13);color:var(--ink-3)}.menu__keys .kbd+.kbd,.menu__keys .kbd:not(:first-child){margin-inline-start:var(--s-2)}.menu__foot{display:grid;gap:var(--s-1);padding:0 var(--s-2)}.menu__soon{font-size:var(--t-14);color:var(--ink-3)}.menu__foot .credit{font-size:var(--t-13);line-height:1.5}.settings{position:relative;display:inline-flex}.settings__trigger{display:inline-grid;place-items:center;width:44px;height:44px;border:0;border-radius:var(--radius-6);background:transparent;box-shadow:inset 0 0 0 1px var(--btn-2-border);color:var(--btn-3-fg);transition:background-color var(--t-fast) var(--ease),box-shadow var(--t-fast) var(--ease),color var(--t-fast) var(--ease)}.settings__trigger:hover,.settings__trigger[aria-expanded=true]{background:var(--btn-3-hover);box-shadow:inset 0 0 0 1px var(--btn-2-border-hover);color:var(--ink)}.settings__icon{flex:none;width:20px;height:20px}.settings__panel{position:absolute;top:calc(100% + var(--s-2));inset-inline-end:0;z-index:var(--z-overlay);display:flex;flex-direction:column;gap:var(--s-4);width:max-content;min-width:300px;max-width:calc(100vw - 2 * var(--margin));padding:var(--s-6);border:0;border-radius:var(--radius-6);background:var(--card);box-shadow:var(--ring-card),0 16px 32px #0000003d;animation:menu-fade var(--t-fast) var(--ease)}.settings__title{font:400 var(--t-20) / 24px var(--f-serif);letter-spacing:-.4px;color:var(--ink)}.settings__row{display:flex;flex-direction:column;align-items:flex-start;gap:var(--s-2)}.settings__row--switches{flex-direction:row;flex-wrap:wrap;gap:var(--s-2) var(--s-8)}.settings__label{font-size:var(--t-14);font-weight:500;color:var(--ink-2)}.settings__seg{align-self:stretch}.settings__hint{font-size:var(--t-13);color:var(--ink-3)}@keyframes menu-fade{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}}@media(prefers-reduced-motion:reduce){.settings__panel{animation:none}}@media(max-width:1100px){.menu__pair{grid-template-columns:minmax(0,1fr)}.menu__pair>.menu__group:last-child{padding-top:0}}@media(max-width:899px){.menu__head{flex-direction:row;align-items:flex-start;justify-content:space-between}.menu__form{gap:var(--s-6);padding:var(--s-5)}.menu__side{position:static}.menu__round{padding:var(--s-5)}.menu__round-count b{font-size:var(--t-40)}.atlas-opt__icon{display:none}.menu__group--slot{min-height:0}.menu__keys{display:none}.menu__atlas .seg__opt{padding:0 8px}.name-edit{grid-template-columns:minmax(0,1fr)}.name-edit__actions{margin-top:var(--s-2)}}@media(max-width:420px){.atlas-opt{flex-direction:column;align-items:center;gap:2px}.menu__atlas .seg__opt{min-height:52px}}.brand{display:inline-flex;align-items:center;gap:var(--s-3);color:var(--ink);text-decoration:none}.brand__mark{position:relative;flex:none;width:22px;height:22px;border:var(--bw) solid var(--accent);border-radius:1px}.brand__mark:before,.brand__mark:after{content:"";position:absolute;background:var(--accent)}.brand__mark:before{left:50%;top:3px;bottom:3px;width:1.5px;transform:translate(-50%)}.brand__mark:after{top:50%;left:3px;right:3px;height:1.5px;transform:translateY(-50%)}.brand__name{display:inline-flex;align-items:baseline;font-family:var(--font-serif);font-size:1.375rem;font-weight:560;font-variation-settings:"opsz" 36,"SOFT" 70;letter-spacing:-.02em;line-height:1;text-transform:lowercase;color:var(--ink)}.brand__tld{margin-inline-start:.04em;font-family:var(--font-mono);font-size:.6em;font-weight:500;letter-spacing:.02em;color:var(--accent)}.brand__ed{font-family:var(--font-mono);font-size:var(--fs-micro);letter-spacing:var(--track-caps);text-transform:uppercase;color:var(--ink-3);padding-inline-start:var(--s-3);border-inline-start:var(--hair) solid var(--rule-strong)}@media(min-width:900px){.app-main>.page-stack{width:100%;max-width:min(100%,80vw);margin-inline:auto}}.page-head h1{max-width:18ch;text-wrap:balance}.page-head .page-sub{max-width:44ch;text-wrap:pretty}.page-sub__key{color:var(--fg);font-weight:500}.card-title{font:400 var(--t-20) / 24px var(--f-serif);letter-spacing:-.4px;color:var(--ink);text-wrap:balance}.card-title em{font-style:italic}.card-title--lg{font-size:var(--t-28);line-height:34px;letter-spacing:0}.status-text{display:inline-flex;align-items:center;gap:6px;font:500 var(--t-13) / 1.2 var(--f-ui);color:var(--ink-3);white-space:nowrap}.status-text>svg{flex:none;width:14px;height:14px}.status-text--ok,.status-text--accent{color:var(--accent-ink)}.status-text--bad{color:var(--bad)}.status-text--warn{color:var(--warn)}.status-text--strong{color:var(--ink-2)}.icon-stat{display:inline-flex;align-items:center;gap:6px;font-variant-numeric:tabular-nums}.icon-stat>svg{flex:none;width:14px;height:14px;color:var(--ink-3)}.meta-line{display:flex;flex-wrap:wrap;align-items:center;gap:4px 14px;margin:0;padding:0;list-style:none;font:400 var(--t-14) / 20px var(--f-ui);color:var(--fg-muted)}.meta-line>li{display:inline-flex;align-items:center;gap:6px}.meta-line>li>svg{width:14px;height:14px;color:var(--ink-3)}.meta-line__key{color:var(--fg)}.text-link{display:inline-flex;align-items:center;gap:6px;min-height:44px;padding:0 2px;border:0;border-radius:var(--radius-6);background:none;font:400 var(--t-14) / 20px var(--f-ui);color:var(--accent-ink);text-decoration:none;cursor:pointer}.text-link:hover{text-decoration:underline;text-underline-offset:3px}.text-link>svg{width:14px;height:14px}.well-v7{border-radius:var(--radius-6);background:var(--surface-2);box-shadow:var(--ring-demo)}:root[data-theme=light] .well-v7{background:var(--surface-2)}@media(max-width:899px){.app-main .page-head h1{font-size:2.25rem;line-height:1}}[dir=rtl] .icon-dir{transform:scaleX(-1)}.app[data-screen=game]{background:var(--surface)}.app{transition:background-color var(--t-base) var(--ease-out)}.app:before{content:"";position:fixed;left:var(--stage-x, 2%);top:var(--stage-y, 9%);width:var(--stage-w, 96%);height:var(--stage-h, 42%);z-index:-1;border-radius:var(--r-xl);pointer-events:none;opacity:0;background:radial-gradient(120% 90% at 50% 0%,var(--bg-raise),var(--surface) 70%);transition:opacity var(--t-base) var(--ease-out)}:root[data-theme=light] .app:before{background:linear-gradient(var(--surface),var(--bg))}.app[data-screen=game]:before{opacity:1}.game{--col-w: 96vw;--term-scale: 1;--pad-b: var(--s-2);position:fixed;top:0;right:0;bottom:0;left:0;display:grid;grid-template-columns:minmax(0,1fr);grid-template-rows:var(--stage-y) var(--stage-h) minmax(0,1fr) auto;grid-template-areas:"top" "specimen" "answer" "deck";padding:0 calc(100% - var(--stage-x) - var(--stage-w)) 0 var(--stage-x);color:var(--ink);font-family:var(--f-text)}.game>.deck{margin-bottom:max(var(--pad-b),env(safe-area-inset-bottom))}.game .icon{flex:none}.game__top{grid-area:top;position:relative;z-index:2;display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:var(--s-4);min-height:0}.game__start{display:flex;align-items:center;min-width:0}.game__quit,.game__progress,.icon-btn{background:var(--surface);box-shadow:var(--edge),inset 0 0 0 1px var(--line)}.game__quit{display:inline-flex;align-items:center;gap:10px;height:44px;padding:0 14px 0 12px;border:0;border-radius:var(--radius-6);color:var(--ink-2);font:500 var(--t-14) / 1 var(--f-display);cursor:pointer;transition:color var(--t-fast) var(--ease),box-shadow var(--t-fast) var(--ease)}.game__quit:hover{color:var(--ink);box-shadow:var(--edge),inset 0 0 0 1px var(--line-strong)}.game__quit-word{color:var(--ink)}.game__progress{display:flex;align-items:center;gap:14px;height:44px;min-width:0;padding:0 6px;border-radius:var(--radius-6)}.game__ctx{display:flex;align-items:center;gap:14px;min-width:0}.game__mode{display:inline-flex;flex:none;align-items:center;gap:8px;height:32px;padding:0 10px;border-radius:var(--radius-6);background:transparent;color:var(--ink);font:500 var(--t-13) / 1 var(--f-display)}.game__mode svg{width:14px;height:14px;color:var(--accent)}.game__mode[data-mode=ranked] svg{color:var(--warn)}.game__where{overflow:hidden;max-width:34ch;font:500 var(--t-14) / 1.2 var(--f-display);color:var(--ink);white-space:nowrap;text-overflow:ellipsis}.game__where>span{color:var(--ink-3)}.game__prog{display:flex;align-items:center;gap:10px;padding-inline-end:12px}.game__bar{display:block;width:140px;height:6px;overflow:hidden;border-radius:var(--radius-6);background:var(--surface-3)}:root[data-theme=light] .game__bar{background:var(--surface-2)}.game__bar>i{display:block;width:calc(var(--p, 0) * 100%);height:100%;border-radius:inherit;background:var(--accent);transition:width var(--t-base) var(--ease-out)}.game__count{font:600 var(--t-13) / 1 var(--f-mono);color:var(--ink-2);white-space:nowrap}.game__end{display:flex;align-items:center;justify-content:flex-end;gap:8px;min-width:0}.game__stat{display:flex;flex-direction:column;align-items:flex-end;gap:3px;padding:0 10px;white-space:nowrap}.game__stat b{font:600 var(--t-16) / 1 var(--f-display);letter-spacing:-.01em;color:var(--ink)}.game__stat b small{font-size:.78em;color:var(--ink-3)}.game__stat>span{font:500 var(--t-12) / 1 var(--f-text);color:var(--ink-3)}.game__streak b{color:var(--ok)}.game__streak[data-zero] b{color:var(--ink)}.game__sep{width:1px;height:28px;background:var(--line)}.icon-btn{display:inline-grid;flex:none;place-items:center;width:44px;height:44px;padding:0;border:0;border-radius:var(--radius-6);color:var(--ink-2);cursor:pointer;transition:color var(--t-fast) var(--ease-out),box-shadow var(--t-fast) var(--ease-out)}.icon-btn:hover,.icon-btn[aria-expanded=true]{color:var(--ink);box-shadow:var(--edge),inset 0 0 0 1px var(--line-strong)}.icon-btn:active{transform:translateY(1px)}.game-settings{position:relative;margin-inline-start:4px}.game-settings__panel{position:absolute;top:calc(100% + var(--s-2));inset-inline-end:0;z-index:3;display:grid;gap:var(--s-2);width:300px;padding:var(--s-4);border:1px solid var(--line);border-radius:var(--r-lg);background:var(--surface);box-shadow:var(--edge),var(--shadow-3);animation:rise var(--t-base) var(--ease-out) both}.game-settings__row{display:grid;gap:var(--s-1);padding-top:var(--s-1)}.game-settings__label{font:500 var(--t-13) / 1.3 var(--f-text);color:var(--ink-3)}.game-settings__panel .seg{width:100%}.game-settings__panel .seg__opt{flex:1}.game__specimen,.feedback-flash{grid-area:specimen;border-radius:var(--r-xl);pointer-events:none}.game__specimen{position:relative;z-index:0;border:1px solid var(--line);box-shadow:var(--edge),var(--shadow-2),0 0 0 200vmax var(--bg);transition:border-color var(--t-base) var(--ease-out),box-shadow var(--t-base) var(--ease-out)}.spec__tl{position:absolute;inset-inline-start:20px;top:18px;display:grid;gap:6px;max-width:calc(100% - 40px);text-shadow:0 0 2px var(--surface),0 0 8px var(--surface),0 0 14px var(--surface)}.game__ask{margin:0;font:600 var(--t-16) / 1.2 var(--f-display);letter-spacing:-.005em;color:var(--ink)}.spec__sub{margin:0;font:400 var(--t-13) / 1.3 var(--f-text);color:var(--ink-3)}.spec__bl{position:absolute;inset-inline-start:20px;bottom:18px;display:flex;gap:8px}.spec__tag{display:inline-flex;align-items:center;gap:6px;color:var(--ink-3);font:400 var(--t-13) / 18px var(--f-text);white-space:nowrap}.spec__bl{column-gap:16px}.spec__dot{flex:none;width:6px;height:6px;border-radius:50%;background:var(--accent-mark)}.feedback-flash{--c: var(--ok);position:relative;z-index:1;box-shadow:inset 0 0 0 2px var(--c);opacity:0;animation:flash var(--t-flash) var(--ease-out)}.feedback-flash[data-kind=wrong]{--c: var(--bad)}.feedback-flash[data-kind=pass]{--c: var(--warn)}.typebox{grid-area:answer;position:relative;z-index:2;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;min-height:0;padding:4px 0;text-align:center}.typebox__line{display:flex;justify-content:center;width:100%;min-width:0}.typeline{--fit: calc(var(--col-w) * 1.7 / var(--len, 12));position:relative;max-width:100%;margin:0;font-family:var(--f-text);font-size:min(calc(var(--t-term) * var(--term-scale)),calc(6.4vh * var(--term-scale)),var(--fit));font-weight:500;line-height:1.1;letter-spacing:-.01em;color:var(--ink);white-space:pre;font-feature-settings:"liga" 0,"calt" 0,"kern" 1;animation:type-in var(--t-base) var(--ease-out) both}.typeline--sentence{max-width:min(76ch,100%);font-size:calc(clamp(1.125rem,min(1.9vw,3.1vh),1.75rem) * var(--term-scale));line-height:1.45;letter-spacing:0;white-space:pre-wrap;overflow-wrap:anywhere;text-wrap:balance}.typeline__word{white-space:nowrap}.ch{position:relative;transition:color var(--t-instant) linear}.ch--pending{color:var(--ink-3)}.ch--ok{color:var(--ink)}.ch--bad{color:var(--bad);text-decoration:underline wavy var(--bad);text-decoration-thickness:max(1.5px,.035em);text-underline-offset:.18em;text-decoration-skip-ink:none}.caret{position:relative;display:inline-block;width:0;height:1em;vertical-align:-.16em}.caret:before{content:"";position:absolute;left:max(-1.5px,-.03em);top:.02em;bottom:-.02em;width:max(2px,.055em);border-radius:2px;background:var(--accent);box-shadow:0 0 16px var(--accent);animation:caret-blink 1.1s steps(1) .6s infinite}.typeline--blind:not(.is-revealed) .ch--pending{color:transparent;background:linear-gradient(var(--line-strong),var(--line-strong)) center 86% / 70% 2px no-repeat}.typeline--blind:not(.is-revealed) .ch--pending.ch--space{background:none}.typeline--blind.is-revealed .ch--pending{animation:reveal-ink var(--t-base) var(--ease-out) both}.game__slot{display:flex;justify-content:center;min-height:36px;margin:0;max-width:100%}.game__slot .status-pill{max-width:100%;min-height:34px;padding:5px 0;background:none;box-shadow:none;font:400 var(--t-14) / 1.25 var(--f-text);color:var(--ink-3);animation:fade-in var(--t-base) var(--ease-out) both}.game__slot .status-pill .status-pill__word{color:var(--ink-2)}.game__slot .status-pill>span:last-child{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.game__status b{font-weight:600;color:var(--ink)}.game__typo,.game__typo .status-pill__icon,.game__typo-key{color:var(--bad)}.game__typo-key{font-family:var(--f-mono);font-weight:600}.game__typo .kbd{height:20px;min-width:20px}.app[data-screen=results] .game :is(.game__top,.typebox,.deck,.feedback-flash){opacity:0;visibility:hidden;transition:opacity var(--t-base) var(--ease-out),visibility 0s linear var(--t-base)}.app[data-screen=results] .game__specimen{border-color:transparent;box-shadow:inset 0 1px 0 transparent,0 0 0 transparent,0 0 0 transparent,0 0 0 200vmax transparent}.app[data-screen=results] .game__specimen>*{opacity:0;visibility:hidden}@media(min-width:1680px){.game{--col-w: 86vw}}@media(min-width:2000px){.game{--col-w: 72vw}}@media(max-width:1100px){.game__where{max-width:22ch}.game__bar{width:96px}.game__stat{padding:0 6px}}@media(max-width:960px){.game__stat--wide,.game__sep{display:none}}@media(max-height:819.98px){.typebox{gap:6px;padding:6px 0 8px}.game__slot{min-height:32px}.game__slot .status-pill{min-height:30px;padding-block:3px}.game{--pad-b: 12px}}@media(hover:none)and (pointer:coarse){.game__quit .kbd{display:none}}@media(max-width:860px){.game{--col-w: 96vw;--pad-b: 10px}.game__top{grid-template-columns:auto minmax(0,1fr) auto;gap:8px}.game__quit{justify-content:center;width:44px;padding:0}.game__quit-word,.game__quit .kbd,.game__ctx,.game__stat--wide,.game__sep,.spec__bl{display:none}.game__progress{width:100%;padding:0;background:none;box-shadow:none}.game__prog{flex:1;padding:0}.game__bar{flex:1;width:auto}.game__end{gap:4px}.game__stat{padding:0 6px}.game__stat b{font-size:var(--t-16)}.game__specimen,.feedback-flash{border-radius:var(--r-xl)}.app:before{border-radius:var(--r-xl)}.spec__tl{inset-inline-start:16px;top:14px;max-width:calc(100% - 32px)}.game__ask{font-size:var(--t-14)}.typebox{gap:8px;padding:8px 0}.typeline--sentence{font-size:calc(1rem * var(--term-scale));line-height:1.4}.game__slot{min-height:32px}.game__slot .status-pill{min-height:30px;padding-block:3px;font-size:var(--t-13)}}@media(max-width:640px){.game__slot .game__typo>span:last-child{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;line-clamp:2;white-space:normal;text-align:center;text-wrap:balance}}@media(max-width:400px){.spec__sub{font-size:var(--t-12)}}@media(max-height:819.98px){.game{--pad-b: 8px}.typebox{padding-block:2px;gap:2px}}.deck{--kg: 8px;--kp: 12px;--u: min(56px, calc((96vw - 2 * var(--kp) - 9 * var(--kg) - 2px) / 10));--kh: clamp(38px, 5.3vh, 48px);grid-area:deck;position:relative;z-index:2;justify-self:center;display:grid;gap:var(--kg);max-width:100%;padding:var(--kp);border:1px solid var(--line);border-radius:var(--r-lg);background:color-mix(in srgb,var(--surface) 88%,transparent);box-shadow:var(--edge),var(--shadow-3);touch-action:manipulation;user-select:none;-webkit-user-select:none;-webkit-tap-highlight-color:transparent}.deck__keys{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--kg);min-width:0}.deck__row{display:flex;justify-content:center;gap:var(--kg);min-width:0}.key{position:relative;display:grid;flex:0 1 auto;min-width:26px;place-items:center;width:var(--u);height:var(--kh);padding:0;border:0;border-radius:var(--r-key);background:linear-gradient(180deg,var(--surface-3),var(--surface-2));box-shadow:inset 0 1px #ffffff12,inset 0 0 0 1px var(--line),0 2px #00000073,0 6px 12px -8px #000000b3;color:var(--ink-2);font:600 var(--t-16) / 1 var(--f-text);font-size:17px;cursor:pointer;transition:transform var(--t-press) var(--ease),box-shadow var(--t-press) var(--ease),background-color var(--t-press) var(--ease),color var(--t-fast) var(--ease)}:root[data-theme=light] .key{background:linear-gradient(#fff,#f6f7fa);box-shadow:inset 0 0 0 1px var(--line),0 2px #d9dde5,0 6px 12px -8px #10141c40}@media(hover:hover){.key:hover{color:var(--ink)}}.key:active,.key.is-pressed{transform:translateY(2px);color:var(--ink);box-shadow:inset 0 1px #ffffff0d,inset 0 0 0 1px var(--line-strong),0 0 #0000}:root[data-theme=light] .key:active,:root[data-theme=light] .key.is-pressed{background:linear-gradient(#f3f4f8,#eceef3);box-shadow:inset 0 0 0 1px var(--line-strong),0 0 0 transparent}.key:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.key svg{width:20px;height:20px}.key--bksp{width:calc(var(--u) * 1.5 + var(--kg) / 2)}.key--hint,.key--skip{width:calc(var(--u) * 2 + var(--kg))}.key--space{width:calc(var(--u) * (4 - var(--extra, 0)) + var(--kg) * (3 - var(--extra, 0)))}.key small{display:flex;align-items:center;gap:6px;font:500 var(--t-12) / 1 var(--f-text);color:var(--ink-3)}.key small .kbd{min-width:22px;height:22px}.key[aria-disabled=true]{cursor:default;opacity:.5}.key.is-next{z-index:1;background:linear-gradient(180deg,color-mix(in srgb,var(--accent-fill) 30%,var(--surface-3)),color-mix(in srgb,var(--accent-fill) 18%,var(--surface-2)));box-shadow:inset 0 1px #ffffff1f,0 0 0 2px var(--accent),0 2px #00000073,0 0 28px -2px var(--glow);color:var(--accent);font-weight:700}:root[data-theme=light] .key.is-next{background:linear-gradient(#eef0ff,#e3e7ff);box-shadow:0 0 0 2px var(--accent),0 2px #c9cef2}.key.is-next:after{content:"";position:absolute;bottom:8px;left:50%;width:14px;height:3px;border-radius:2px;background:var(--accent);transform:translate(-50%)}.key__tag{position:absolute;top:-24px;left:50%;padding:2px 4px;border-radius:0;background:none;box-shadow:none;color:var(--accent);font:600 11px / 1 var(--f-text);white-space:nowrap;transform:translate(-50%);pointer-events:none}.key--space .key__tag{top:50%;transform:translate(-50%,-70%)}.key.is-undo:not(.is-next){color:var(--accent);box-shadow:inset 0 1px #ffffff12,inset 0 0 0 1.5px var(--accent-line),0 2px #00000073}:root[data-theme=light] .key.is-undo:not(.is-next){box-shadow:inset 0 0 0 1.5px var(--accent-line),0 2px #d9dde5}.key.is-typo{z-index:1;background:linear-gradient(180deg,color-mix(in srgb,var(--bad) 14%,var(--surface-3)),var(--surface-2));box-shadow:inset 0 0 0 2px var(--bad),0 2px #00000073;color:var(--bad);transform:translateY(1px)}:root[data-theme=light] .key.is-typo{background:#fff3f3;box-shadow:inset 0 0 0 2px var(--bad),0 2px #ebc9cb}.key__x{position:absolute;top:-7px;right:-7px;display:grid;place-items:center;width:18px;height:18px;border-radius:50%;background:var(--bad);color:var(--bg);pointer-events:none}.key__x svg{width:10px;height:10px}.deck__foot{display:flex;justify-content:space-between;align-items:center;gap:16px;margin:0;padding:2px 4px 0;font:400 12.5px / 1.3 var(--f-text);color:var(--ink-3)}.deck__foot>span{display:flex;align-items:center;gap:6px}.deck__foot .kbd{height:22px;min-width:22px}@media(max-height:819.98px){.deck{--kg: 6px;--kp: 10px;border-radius:var(--r-lg)}.key{border-radius:var(--r-key)}.key.is-next:after{bottom:5px}}@media(max-width:860px){.deck{--kg: clamp(3px, 1.2vw, 5px);--kp: 6px;--u: min(56px, calc((100vw - 76px)*.1) );--kh: clamp(36px, 5.5vh, 46px);width:100%;padding:8px var(--kp);border-radius:var(--r-lg)}.deck__row{gap:var(--kg)}.key{border-radius:var(--r-key);font-size:17px}.key--bksp{width:calc(var(--u) * 1.5 + 5px)}.key--hint,.key--skip{width:calc(var(--u) * 1.6)}.key--space{width:calc(var(--u) * (3.6 - var(--extra, 0)) - var(--kg) * var(--extra, 0))}.key small .kbd,.key__tag,.deck__foot{display:none}.key.is-next:after{bottom:5px}}@media(hover:none)and (pointer:coarse){.key small .kbd{display:none}}.deck[data-accents=true],.deck[data-accents=true] .deck__keys,.deck[data-accents=true] .deck__row{--kg: 6px}.deck[data-accents=true] .key{height:calc(var(--kh) * .84)}.deck[data-accents=true] .deck__row--accents .key{width:calc(var(--u) * .86);height:calc(var(--kh) * .6);font-size:15px}.deck[data-layout=ar]{--u: min(50px, calc((96vw - 2 * var(--kp) - 11 * var(--kg) - 2px) / 12))}@media(max-width:860px){.deck[data-layout=ar]{--u: min(50px, calc((100vw - 2 * var(--kp) - 11 * var(--kg) - 4px) / 12))}}.deck[data-layout=ko] .key--char,.deck[data-layout=ar] .key--char{font-weight:500;font-size:18px}.key--shift,.key--layout{width:calc(var(--u) * 1.25)}.key--shift[aria-pressed=true]{color:var(--accent);box-shadow:inset 0 0 0 1.5px var(--accent-line, var(--accent))}.deck[data-layout=ko] .key--space,.deck[data-layout=ar] .key--space{width:calc(var(--u) * 3.5 + var(--kg) * 3)}.deck__ime{color:var(--ink-2);font-weight:600}.results{position:fixed;top:0;right:0;bottom:0;left:0;z-index:var(--z-overlay);overflow-y:auto;overscroll-behavior:contain;pointer-events:auto;padding:var(--s-12) var(--s-6);display:flex;justify-content:center;align-items:flex-start}.results__scrim{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--bg);animation:results-fade var(--t-base) var(--ease-out) both}.results__card{position:relative;isolation:isolate;overflow:hidden;width:100%;max-width:640px;margin:auto 0;padding:var(--s-8);background:var(--card);border:0;border-radius:var(--radius-6);box-shadow:var(--ring-card);color:var(--ink);font:400 var(--t-16) / 1.5 var(--f-text);animation:results-rise var(--t-arrive) var(--ease-arrive) both}@keyframes results-fade{0%{opacity:0}}@keyframes results-rise{0%{opacity:0;transform:translateY(6px)}}.results__eyebrow{display:flex;align-items:center;gap:10px}.results__mode{flex:none;display:grid;place-items:center;width:20px;height:20px;color:var(--ink-3)}.results__mode.is-ranked{color:var(--accent-ink)}.results__mode svg{width:16px;height:16px}.results__context{margin:0;font:400 var(--t-14) / 20px var(--f-ui);color:var(--fg-muted)}.results__title{margin:var(--s-4) 0 0;font:400 var(--t-46) / 1 var(--f-redaction-10);letter-spacing:0;text-wrap:balance}.results__title em{font-family:var(--f-serif);font-style:italic}.results__summary{max-width:44ch;margin:var(--s-4) 0 var(--s-6);font-size:var(--t-16);line-height:22px;color:var(--fg-muted)}.results__stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--s-2);margin:0}.results__stat{display:flex;flex-direction:column-reverse;justify-content:flex-end;gap:6px;min-width:0;padding:14px 16px;border-radius:var(--radius-6);background:var(--surface-2);box-shadow:var(--ring-demo)}.results__stat dt{font:400 var(--t-12) / 1.35 var(--f-text);color:var(--ink-3)}.results__stat dd{display:flex;align-items:center;gap:6px;margin:0;font:400 var(--t-24) / 1.05 var(--f-ui);letter-spacing:-.02em;font-variant-numeric:tabular-nums;color:var(--ink);white-space:nowrap}.results__stat-icon{flex:none;width:16px;height:16px;color:var(--ink-3)}.results__stat dd small{margin-inline-start:2px;font:500 var(--t-13) / 1 var(--f-text);letter-spacing:0;color:var(--ink-3)}.results__stat--score{grid-column:1 / -1;flex-direction:row-reverse;justify-content:space-between;align-items:center;padding:18px 20px;background:var(--surface-2);box-shadow:var(--ring-demo)}.results__stat--score dt{font:400 var(--t-14) / 1.3 var(--f-ui);color:var(--ink-2)}.results__stat--score dd{font-size:var(--t-56);letter-spacing:-.035em;line-height:1}.results__formula{margin:var(--s-3) 0 0;font:500 var(--t-13) / 1.4 var(--f-mono);font-variant-numeric:tabular-nums;color:var(--ink-3)}.results__best{color:var(--fg);font-weight:500}.pace{margin:var(--s-6) 0 0;padding:var(--s-5) var(--s-5) var(--s-2);border-radius:var(--radius-6);background:var(--surface-2);box-shadow:var(--ring-demo)}.pace__head{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:var(--s-1) var(--s-4);margin-bottom:var(--s-3)}.pace__title{margin:0;font:400 var(--t-20) / 24px var(--f-serif);letter-spacing:-.4px}.pace__meta{margin:0;color:var(--ink-3);font-size:var(--t-13)}.pace__plot{position:relative}.pace__tick{position:absolute;right:0;transform:translateY(-50%);padding-left:6px;background:var(--surface-2);color:var(--ink-3);font:500 var(--t-12) / 1 var(--f-mono);font-variant-numeric:tabular-nums}.pace__svg{display:block;width:100%;height:auto;overflow:visible}.pace__grid{stroke:var(--line);stroke-width:1}.pace__base{stroke:var(--line-strong);stroke-width:1}.pace__median{stroke:var(--ink-3);stroke-width:1.5;stroke-dasharray:4 3}.pace__hit{fill:transparent}.pace__bar path:not(.pace__glyph){fill:var(--ink-3)}.pace__bar--wrong path:not(.pace__glyph){fill:var(--bad)}.pace__bar--pass path:not(.pace__glyph){fill:var(--warn)}.pace__bar:hover path:not(.pace__glyph){opacity:.8}.pace__glyph{fill:none;stroke:var(--ink-2);stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.pace__legend{display:flex;flex-wrap:wrap;gap:var(--s-1) var(--s-4);margin:var(--s-3) 0 0;padding:0;list-style:none;color:var(--ink-3);font-size:var(--t-12)}.pace__legend li{display:inline-flex;align-items:center;gap:6px}.pace__key{display:inline-block;width:10px;height:10px;border-radius:2px;background:var(--ink-3)}.pace__key--wrong{background:var(--bad)}.pace__key--pass{background:var(--warn)}.pace__key--median{width:14px;height:0;border-radius:0;background:none;border-top:1.5px dashed var(--ink-3)}.pace__table{margin-top:var(--s-1);font-size:var(--t-13)}.pace__table summary{display:inline-flex;align-items:center;min-height:44px;color:var(--accent-ink);font:400 var(--t-14) / 1 var(--f-ui);cursor:pointer}.pace__table summary:hover{text-decoration:underline;text-underline-offset:3px}.pace__table table{width:100%;border-collapse:collapse;margin:var(--s-1) 0 var(--s-3)}.pace__table th,.pace__table td{padding:6px var(--s-2) 6px 0;border-bottom:1px solid var(--line);text-align:start;font-weight:400}.pace__table thead th{color:var(--ink-3);font-weight:500}.pace__table tbody th{color:var(--ink);font-weight:500}.review{margin:var(--s-8) 0 0}.review__head{display:flex;align-items:center;gap:10px;margin-bottom:var(--s-3)}.review__title{margin:0;font:400 var(--t-20) / 24px var(--f-serif);letter-spacing:-.4px}.review__count{font:400 var(--t-14) / 1 var(--f-ui);font-variant-numeric:tabular-nums;color:var(--ink-3)}.review__list{display:grid;margin:0;padding:4px;list-style:none;border-radius:var(--radius-6);background:var(--surface-2);box-shadow:var(--ring-demo)}.review__item{display:grid;grid-template-columns:20px minmax(0,1fr) auto;gap:var(--s-3);align-items:center;padding:12px;border-radius:var(--r-key)}.review__item+.review__item{border-top:1px solid var(--line)}.review__status{display:grid;place-items:center;width:20px;height:20px}.review__status--missed{color:var(--bad)}.review__status--skipped{color:var(--warn)}.review__status--correct{color:var(--ok)}.status-icon{width:16px;height:16px}.review__body{display:grid;gap:2px;min-width:0}.review__name{font:500 var(--t-16) / 1.3 var(--f-text);color:var(--ink)}.review__typed{color:var(--ink-3);font-size:var(--t-14);overflow-wrap:anywhere}.review__text{color:var(--ink-2);font-weight:500}.review__wrong{padding:0 2px;border-radius:4px;background:var(--bad-tint);color:var(--bad);font-weight:700;text-decoration:underline wavy var(--bad);text-decoration-thickness:1.5px;text-underline-offset:4px;text-decoration-skip-ink:none}.review__tag{display:inline-flex;align-items:center;gap:2px;color:var(--ink-3);font-size:var(--t-13);text-align:end;white-space:nowrap}.review__word{font:500 var(--t-13) / 1 var(--f-text)}.review__word--missed{color:var(--bad)}.review__word--skipped{color:var(--warn)}.review__empty{display:flex;align-items:center;gap:var(--s-3);margin:0;padding:12px 16px;border-radius:var(--radius-6);background:var(--surface-2);box-shadow:var(--ring-demo);color:var(--ink-2)}.results__actions{display:flex;flex-wrap:wrap;align-items:center;gap:var(--s-2);margin-top:var(--s-8)}.results__progress{display:grid;gap:var(--s-3);margin:var(--s-6) 0 0;padding-top:var(--s-5);box-shadow:inset 0 1px 0 var(--line);color:var(--ink-3);font-size:var(--t-14);font-variant-numeric:tabular-nums;animation:results-fade var(--t-base) var(--ease-out) both}.results__progress--pending{min-height:28px}.results__progress-line{display:flex;flex-wrap:wrap;align-items:center;gap:var(--s-2) var(--s-4);margin:0}.results__progress-text{display:contents}.results__chip{display:inline-flex;align-items:center;gap:6px;color:var(--ink-2);font:400 var(--t-14) / 20px var(--f-text);white-space:nowrap}.results__chip--xp{color:var(--fg);font-weight:500}.results__chip-icon{width:14px;height:14px;color:var(--ok)}.results__flame{width:14px;height:14px;color:var(--warn)}.results__levelup{display:inline-flex;align-items:center;gap:6px;color:var(--accent-ink);font:500 var(--t-14) / 20px var(--f-ui);animation:results-fade .4s var(--ease-out) both}.results__levelup-icon{width:14px;height:14px;transform:rotate(-90deg)}.results__goal{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:var(--s-3)}.results__goal-label{display:inline-flex;align-items:center;gap:6px;font-size:var(--t-13);color:var(--ink-2)}.results__goal-check{width:14px;height:14px;color:var(--ok);stroke-width:3}.results__goal-n{font:600 var(--t-13) / 1 var(--f-ui);font-variant-numeric:tabular-nums;color:var(--ink-2)}.results__links{display:flex;flex-wrap:wrap;gap:0 var(--s-6);margin-top:var(--s-2)}.results__link{display:inline-flex;align-items:center;gap:6px;min-height:44px;color:var(--accent-ink);font:400 var(--t-14) / 1.3 var(--f-ui);text-decoration:underline;text-decoration-color:color-mix(in srgb,var(--accent-ink) 45%,transparent);text-underline-offset:4px}.results__link svg{width:16px;height:16px}.results__link:hover{text-decoration-color:currentColor}.results__note{margin:var(--s-1) 0 0;color:var(--ink-3);font-size:var(--t-13)}@media(max-width:760px){.results__card{padding:var(--s-6)}.results__stats{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:640px){.results{padding:var(--s-3);display:block}.results__card{max-width:none;margin:0;padding:var(--s-5) var(--s-4) var(--s-6);overflow:visible}.results__title{margin-top:var(--s-3);font-size:2.25rem}.results__summary{font-size:var(--t-16)}.results__stat dd{font-size:var(--t-20)}.results__stat--score dd{font-size:var(--t-40)}.pace{padding:var(--s-4) var(--s-3) var(--s-1)}.review__item{grid-template-columns:20px minmax(0,1fr);row-gap:6px}.review__status{align-self:start}.review__tag{grid-column:2;justify-self:start;text-align:start}.results__actions .btn{flex:1 1 100%}}@media(hover:none)and (pointer:coarse){.results .btn__key{display:none}}@keyframes rise{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}.arrive{animation:rise var(--t-arrive) var(--ease-arrive) both}@keyframes halo-breathe-a{0%{opacity:.6}to{opacity:1}}@keyframes halo-breathe-b{0%{opacity:.6}to{opacity:1}}@keyframes pop-in{0%{opacity:0;transform:translateY(-4px) scale(.99)}to{opacity:1;transform:none}}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes type-in{0%{opacity:0;transform:translateY(.1em)}to{opacity:1;transform:none}}@keyframes reveal-ink{0%{opacity:0}to{opacity:1}}@keyframes caret-blink{0%,to{opacity:1}50%{opacity:0}}@keyframes shake{0%,to{transform:none}30%{transform:translate(-3px)}65%{transform:translate(2px)}}@keyframes flash{0%{opacity:0}18%{opacity:1}to{opacity:0}}@keyframes verdict{0%{opacity:0;transform:translate(-4px)}12%{opacity:1;transform:none}75%{opacity:1}to{opacity:0}}@keyframes combo-pulse{0%{opacity:.55}to{opacity:1}}@keyframes combo-ring{0%{opacity:0}to{opacity:0}}@keyframes fix-pulse{0%,to{box-shadow:0 0 0 0 transparent}50%{box-shadow:0 0 0 3px var(--bad-halo)}}@keyframes sheet-in{0%{opacity:0;transform:translate(16px)}to{opacity:1;transform:none}}@keyframes sheet-up{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}@keyframes count-in{0%{opacity:0;transform:translateY(.1em)}to{opacity:1;transform:none}}@keyframes stamp-in{0%{opacity:0}to{opacity:1}}@keyframes texture-drift{0%{background-position:0 0}to{background-position:var(--texture-dots-tile) var(--texture-dots-tile)}}.texture-drift{animation:texture-drift 90s linear infinite}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:1ms!important;animation-delay:0ms!important;animation-iteration-count:1!important;transition-duration:1ms!important;scroll-behavior:auto!important}.verdict{animation:none!important;opacity:1}.feedback-flash{animation:none!important;opacity:0}.caret:before{animation:none!important}.key.is-fix{animation:none!important;box-shadow:0 0 0 2px var(--bad-halo)}.combo.is-pulse:after{display:none}.arrive,.palette,.palette-scrim{animation:none!important}.app:before{animation:none!important}.texture-drift{animation:none!important}}[dir=rtl] :is(svg[data-icon=arrow-left],svg[data-icon=arrow-right],svg[data-icon=enter],svg[data-icon=sign-out],svg[data-icon=external]),[dir=rtl] .game__quit>svg{transform:scaleX(-1)}[dir=rtl] .switch[aria-checked=true] .switch__thumb{transform:translate(-18px)}[dir=rtl] .switch--sm[aria-checked=true] .switch__thumb{transform:translate(-14px)}.typeline{unicode-bidi:isolate}[dir=rtl] :is(.deck__keys,.lp-hint__kb){direction:ltr;unicode-bidi:isolate}:is(.lp-term__text,.lp-names li,.lp-queue__name,.lp-feed__name,.lp-board__name,.palette__name){unicode-bidi:plaintext}[dir=rtl] :is(.lp-term,.lp-names li,.lp-feed__name,.palette__name){text-align:start}
