@font-face{font-family:Be Vietnam Pro;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/be-vietnam-pro-vietnamese-400-normal-CRcqvyg1.woff2)format("woff2"),url(/assets/be-vietnam-pro-vietnamese-400-normal-BuGn0gnm.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Be Vietnam Pro;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/be-vietnam-pro-latin-ext-400-normal-CiZNW1ec.woff2)format("woff2"),url(/assets/be-vietnam-pro-latin-ext-400-normal-DYBYyMQr.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Be Vietnam Pro;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/be-vietnam-pro-latin-400-normal-PpnXBOrz.woff2)format("woff2"),url(/assets/be-vietnam-pro-latin-400-normal-bXgqVju9.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Be Vietnam Pro;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/be-vietnam-pro-vietnamese-600-normal-nyU-ZL2p.woff2)format("woff2"),url(/assets/be-vietnam-pro-vietnamese-600-normal-DkpCIyan.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Be Vietnam Pro;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/be-vietnam-pro-latin-ext-600-normal-BNd8euf0.woff2)format("woff2"),url(/assets/be-vietnam-pro-latin-ext-600-normal-BeUwKxhG.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Be Vietnam Pro;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/be-vietnam-pro-latin-600-normal-BZDkUTrt.woff2)format("woff2"),url(/assets/be-vietnam-pro-latin-600-normal-5IO4e7bK.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Be Vietnam Pro;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/be-vietnam-pro-vietnamese-700-normal-Csr0PCuG.woff2)format("woff2"),url(/assets/be-vietnam-pro-vietnamese-700-normal-By_5yT39.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Be Vietnam Pro;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/be-vietnam-pro-latin-ext-700-normal-C8_gqRu2.woff2)format("woff2"),url(/assets/be-vietnam-pro-latin-ext-700-normal-4Hjo2OtD.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Be Vietnam Pro;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/be-vietnam-pro-latin-700-normal-DlW1Zbsh.woff2)format("woff2"),url(/assets/be-vietnam-pro-latin-700-normal-C2EtzaOi.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Be Vietnam Pro;font-style:normal;font-display:swap;font-weight:800;src:url(/assets/be-vietnam-pro-vietnamese-800-normal-D4LFh2W4.woff2)format("woff2"),url(/assets/be-vietnam-pro-vietnamese-800-normal-CA0HL1e4.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Be Vietnam Pro;font-style:normal;font-display:swap;font-weight:800;src:url(/assets/be-vietnam-pro-latin-ext-800-normal-GEpNgheG.woff2)format("woff2"),url(/assets/be-vietnam-pro-latin-ext-800-normal-BvOXQlBN.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Be Vietnam Pro;font-style:normal;font-display:swap;font-weight:800;src:url(/assets/be-vietnam-pro-latin-800-normal-BpHZASpI.woff2)format("woff2"),url(/assets/be-vietnam-pro-latin-800-normal-Cwp5p0gU.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Lexend;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/lexend-vietnamese-400-normal-DoLa7jNB.woff2)format("woff2"),url(/assets/lexend-vietnamese-400-normal-mPlHoWg5.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Lexend;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/lexend-latin-ext-400-normal-D38JI5AK.woff2)format("woff2"),url(/assets/lexend-latin-ext-400-normal-D9P7pMo-.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Lexend;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/lexend-latin-400-normal-CwRJVcUA.woff2)format("woff2"),url(/assets/lexend-latin-400-normal-CHypAkT3.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Lexend;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/lexend-vietnamese-500-normal-Bos7Oy9U.woff2)format("woff2"),url(/assets/lexend-vietnamese-500-normal-EFAPmUTE.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Lexend;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/lexend-latin-ext-500-normal-Bo17xs96.woff2)format("woff2"),url(/assets/lexend-latin-ext-500-normal-DbCmXT_D.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Lexend;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/lexend-latin-500-normal-Dl-X5nog.woff2)format("woff2"),url(/assets/lexend-latin-500-normal-D9x1QWTH.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--bg:#f3f5fa;--surface:#fff;--surface-2:#f8f9fc;--line:#dce2ee;--line-strong:#b5bfd3;--ink:#14213d;--ink-2:#33405c;--muted:#4a5672;--nav:#14213d;--nav-hover:#1e2d50;--nav-text:#c9d2e6;--primary:#2b59c3;--primary-strong:#1f4396;--primary-tint:#e6edfb;--primary-ring:#bfd0f3;--accent:#f2a541;--accent-tint:#fdf1de;--accent-ink:#8a5300;--ok:#1e7a50;--ok-tint:#e3f4ec;--err:#b42318;--err-tint:#fde8e6;--focus:#f59e0b;--radius-s:10px;--radius-m:14px;--radius-l:20px;--font-ui:"Be Vietnam Pro", system-ui, "Segoe UI", Roboto, Arial, sans-serif;--font-type:"Lexend", "Be Vietnam Pro", system-ui, sans-serif;--font-scale:1;font-size:calc(17px * var(--font-scale))}:root[data-font-scale="125"]{--font-scale:1.25}:root[data-font-scale="150"]{--font-scale:1.5}:root[data-contrast=high]{--bg:#000;--surface:#000;--surface-2:#0b0b0b;--line:#fff;--line-strong:#fff;--ink:#fff;--ink-2:#fff;--muted:#e6e9f0;--nav:#000;--nav-hover:#222;--nav-text:#fff;--primary:#ffd84d;--primary-strong:#ffd84d;--primary-tint:#222;--primary-ring:#ffd84d;--accent:#ffd84d;--accent-tint:#222;--accent-ink:#ffd84d;--ok:#7cffb2;--ok-tint:#002b14;--err:#ff8a80;--err-tint:#300;--focus:#ffd84d}:root{font-family:var(--font-ui);color:var(--ink);background:var(--bg);line-height:1.5}body{background:var(--bg);margin:0}.app{box-sizing:border-box;max-width:48rem;min-height:100vh;margin:0 auto;padding:1rem}.app-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1.5rem;display:flex}.brand{align-items:center;gap:.7rem;display:flex}.brand-mark{background:var(--ink);width:2.4rem;height:2.4rem;color:var(--surface);box-shadow:0 3px 0 var(--primary);border-radius:.6rem;flex:none;justify-content:center;align-items:center;font-size:1.25rem;font-weight:800;display:flex}.brand-text{flex-direction:column;display:flex}.brand-name{letter-spacing:-.01em;color:var(--ink);font-size:1.45rem;font-weight:800;line-height:1.15}.tagline{color:var(--muted);margin:0;font-size:.85rem}.center-text{text-align:center}.panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-l);margin-bottom:1rem;padding:1.4rem}.panel.center{text-align:center}.panel.danger{border:2px solid #f3b4ae}.title{letter-spacing:-.01em;color:var(--ink);margin:0 0 .6rem;font-size:1.75rem;font-weight:800}h2{margin:1rem 0 .35rem;font-size:1.15rem;font-weight:800}.big{font-size:1.3rem}.form{flex-direction:column;gap:1rem;display:flex}label{flex-direction:column;gap:.3rem;font-weight:600;display:flex}label small{color:var(--muted);font-weight:400}label.check{flex-direction:row;align-items:flex-start;gap:.7rem;margin:.75rem 0;font-weight:400}label.check input{width:1.35rem;height:1.35rem;accent-color:var(--primary);flex:none;margin-top:.15rem}input:not([type=checkbox]):not([type=radio]),select{font:inherit;border:1.5px solid var(--line-strong);background:var(--surface);min-height:2.9rem;color:inherit;box-sizing:border-box;border-radius:12px;padding:0 .8rem;font-size:1rem}input[type=radio]{accent-color:var(--primary)}.pin-input{text-align:center;letter-spacing:.5rem;align-self:center;max-width:10rem;font-size:2rem}button{font:inherit;border:1.5px solid var(--line);background:var(--surface);min-height:2.75rem;color:var(--ink);cursor:pointer;border-radius:12px;padding:0 1.1rem;font-size:1rem;font-weight:600}button:hover:not(:disabled){border-color:var(--primary)}button.primary{background:var(--primary);border-color:var(--primary);color:#fff;box-shadow:0 3px 0 var(--primary-strong);font-weight:800}button.primary:hover:not(:disabled){background:var(--primary-strong)}button.danger-button{color:var(--err);border-color:#f3b4ae}button:disabled{opacity:.5;cursor:not-allowed}button:focus-visible,input:focus-visible,select:focus-visible,a:focus-visible{outline:3px solid var(--focus);outline-offset:2px}a{color:var(--primary)}.lang-switch{flex:none}.row{flex-wrap:wrap;gap:.6rem;display:flex}.panel.center .row{justify-content:center}.footer-row{margin-top:1rem}.tabs{border-radius:var(--radius-m);background:#e4e8f1;flex-wrap:wrap;gap:4px;margin:1rem 0;padding:4px;display:inline-flex}.tabs .tab{color:var(--muted);background:0 0;border:none;min-height:2.6rem}.tabs .tab.active,.tab.active{background:var(--surface);color:var(--ink);box-shadow:0 1px 3px #14213d24}.error{color:var(--err);margin:0}.notice{color:#6b4100;background:var(--accent-tint);border-radius:12px;margin:0;padding:.65rem .9rem}.consent-item p{margin:0}.meta{color:var(--muted);font-size:.9rem}.mode-box{border:1px solid var(--line-strong);border-radius:10px;margin:0 0 1rem;padding:.5rem .9rem}.mode-box legend{padding:0 .3rem;font-weight:600}.mode-box label.check{margin:.3rem 0}.typing-box{background:var(--surface-2);border:3px solid var(--line-strong);cursor:text;-webkit-user-select:none;user-select:none;border-radius:12px;margin:0 0 .5rem;padding:1.25rem}.typing-box:focus{border-color:var(--primary);outline:none}.typing-box:not(:focus) .typing-text{opacity:.6}.typing-text{font-family:var(--font-type);white-space:pre-wrap;word-break:break-word;margin:0;font-size:1.7rem;line-height:2.4rem}.ch{border-radius:3px}.ch.correct{color:var(--ok)}.ch.wrong{color:var(--err);-webkit-text-decoration:underline wavy var(--err);text-decoration:underline wavy var(--err);text-underline-offset:4px;background:var(--err-tint);font-weight:700;text-decoration-thickness:2px}.ch.cursor.wrong{background:var(--err-tint)}.stats{grid-template-columns:repeat(auto-fit,minmax(9rem,1fr));gap:.75rem;margin:1rem 0;display:grid}.stats dt{color:var(--muted);font-size:.85rem}.stats dd{color:var(--primary);margin:0;font-size:2rem;font-weight:700}.mistakes{flex-wrap:wrap;justify-content:center;gap:.5rem 1.2rem;padding:0;list-style:none;display:flex}kbd{border:2px solid var(--line-strong);background:#fff;border-bottom-width:4px;border-radius:6px;padding:.1rem .5rem;font-family:ui-monospace,Consolas,monospace}:root{--f-pinky:#8b6fd6;--f-ring:#2f86d1;--f-middle:#2e9e6b;--f-index:#e07b2e;--f-thumb:#7c869a;--f-l-pinky:var(--f-pinky);--f-l-ring:var(--f-ring);--f-l-middle:var(--f-middle);--f-l-index:var(--f-index);--f-r-index:var(--f-index);--f-r-middle:var(--f-middle);--f-r-ring:var(--f-ring);--f-r-pinky:var(--f-pinky);--ft-pinky:#eee9fb;--ft-ring:#e2effa;--ft-middle:#e1f3ea;--ft-index:#fcebdd;--ft-thumb:#eceef2}.finger-l-pinky{--fc:var(--f-l-pinky);--fct:var(--ft-pinky)}.finger-l-ring{--fc:var(--f-l-ring);--fct:var(--ft-ring)}.finger-l-middle{--fc:var(--f-l-middle);--fct:var(--ft-middle)}.finger-l-index{--fc:var(--f-l-index);--fct:var(--ft-index)}.finger-thumb{--fc:var(--f-thumb);--fct:var(--ft-thumb)}.finger-r-index{--fc:var(--f-r-index);--fct:var(--ft-index)}.finger-r-middle{--fc:var(--f-r-middle);--fct:var(--ft-middle)}.finger-r-ring{--fc:var(--f-r-ring);--fct:var(--ft-ring)}.finger-r-pinky{--fc:var(--f-r-pinky);--fct:var(--ft-pinky)}.kb-panel{flex-direction:column;align-items:center;gap:.6rem;margin:.75rem 0;display:flex}.kb-caption{background:var(--primary-tint);text-align:center;border-radius:999px;min-height:1.6rem;margin:0;padding:.4rem 1rem;font-weight:600}.kb-scroll{box-sizing:border-box;width:100%;padding:.4rem .2rem 0;overflow-x:auto}.kb-stage{width:100%;min-width:36rem;max-width:54rem;margin:0 auto;position:relative;container-type:inline-size}.kb-stage.with-hands{aspect-ratio:840/448}.vk{-webkit-user-select:none;user-select:none;flex-direction:column;display:flex}.vk-row{grid-template-columns:repeat(60,minmax(0,1fr));height:6.66667cqw;min-height:2.4rem;display:grid}.vk-key{box-sizing:border-box;border:1.5px solid var(--fc);background:color-mix(in srgb, var(--fc) 16%, white);min-width:0;color:var(--ink);white-space:nowrap;border-radius:9px;justify-content:center;align-items:center;margin:.357143cqw;font-size:.85rem;font-weight:700;display:flex;position:relative;overflow:hidden;box-shadow:0 3px #14213d21}.vk-symbol{color:color-mix(in srgb, var(--fc) 80%, black);font-size:.6rem;font-weight:400;line-height:1;position:absolute;top:2px;right:4px}.vk-key.home:after{content:"";background:var(--ink);border-radius:2px;height:3px;position:absolute;bottom:18%;left:38%;right:38%}.vk-key.active{background:var(--primary);border-color:var(--primary-strong);color:#fff;box-shadow:0 0 0 4px var(--primary-ring), 0 3px 0 var(--primary-strong);z-index:1}.vk-key.active .vk-symbol,.vk-key.active.home:after{color:#fff;background-color:#0000}.vk-key.active.home:after{background:#fff}@media (prefers-reduced-motion:no-preference){.vk-key.active{animation:.9s ease-in-out infinite vk-pulse}}@keyframes vk-pulse{50%{transform:translateY(-2px)}}.vk[data-fade=dim] .vk-key:not(.active){background:var(--surface);border-width:2.5px}.vk[data-fade=dim] .vk-key:not(.active) .vk-label{visibility:hidden}.vk[data-fade=next] .vk-key:not(.active){background:var(--surface-2);border-color:var(--line);box-shadow:none}.vk[data-fade=next] .vk-key:not(.active) .vk-label,.vk[data-fade=next] .vk-key:not(.active) .vk-symbol{visibility:hidden}.vk[data-fade=next] .vk-key.home:not(.active):after{background:var(--line-strong)}.hands-overlay{z-index:2;pointer-events:none;width:100%;height:100%;position:absolute;inset:0;overflow:visible;-webkit-mask-image:linear-gradient(#000 80%,#0000);mask-image:linear-gradient(#000 80%,#0000)}.hand-outline path{fill:none;stroke:#2e2a28;stroke-width:1.5px;stroke-linejoin:round;stroke-linecap:round;opacity:.75}.hand-finger{fill:none;stroke:var(--fc);stroke-width:3px;stroke-linejoin:round;stroke-linecap:round}.hand-finger.shift{stroke-width:2.5px;stroke-dasharray:6 4}.header-tools{align-items:center;gap:.6rem;display:flex}label.contrast-switch{flex-direction:row;align-items:center;gap:.4rem;font-weight:400}:root[data-contrast=high]{color:#fff;--f-pinky:#d0a8ff;--f-ring:#4fc3ff;--f-middle:#00e676;--f-index:#ffab40;--f-thumb:#e0e0e0;--ft-pinky:#000;--ft-ring:#000;--ft-middle:#000;--ft-index:#000;--ft-thumb:#000;background:#000}[data-contrast=high] body{background:#000}[data-contrast=high] .brand-name,[data-contrast=high] .title,[data-contrast=high] .stats dd{color:#ffeb3b}[data-contrast=high] .tagline,[data-contrast=high] .meta,[data-contrast=high] label small,[data-contrast=high] .stats dt{color:#fff}[data-contrast=high] .panel,[data-contrast=high] .mode-box{background:#000;border:3px solid #fff}[data-contrast=high] .panel.danger{border-color:#ff6b6b}[data-contrast=high] input:not([type=checkbox]):not([type=radio]),[data-contrast=high] select,[data-contrast=high] button{color:#fff;background:#000;border:3px solid #fff}[data-contrast=high] button.primary,[data-contrast=high] .tab.active{color:#000;background:#ffeb3b;border-color:#fff;font-weight:700}[data-contrast=high] button.danger-button{color:#ff6b6b;border-color:#ff6b6b}[data-contrast=high] button:focus-visible,[data-contrast=high] input:focus-visible,[data-contrast=high] select:focus-visible{outline-offset:3px;outline:4px solid #00e5ff}[data-contrast=high] .error{color:#ff8a80}[data-contrast=high] .notice{color:#ffeb3b;background:#000;border:2px solid #ffeb3b}[data-contrast=high] kbd{color:#fff;background:#000;border-color:#fff}[data-contrast=high] .typing-box{background:#000;border:4px solid #fff}[data-contrast=high] .typing-box:focus{border-color:#00e5ff}[data-contrast=high] .typing-box:not(:focus) .typing-text{opacity:1}[data-contrast=high] .ch.pending{color:#fff}[data-contrast=high] .ch.correct{color:#00ff7f}[data-contrast=high] .ch.wrong{color:#ff8a80;background:#3b0000;text-decoration-color:#ff8a80}[data-contrast=high] .ch.cursor{background:#03c;box-shadow:inset 0 -5px #00e5ff}[data-contrast=high] .ch.cursor.wrong{background:#7a0000}[data-contrast=high] .vk-key{color:#fff;border:2px solid #fff;border-bottom:7px solid var(--fc);background:#000;font-size:.95rem}[data-contrast=high] .vk-symbol{color:var(--fc);font-size:.75rem}[data-contrast=high] .vk-key.home:after{background:#fff}[data-contrast=high] .vk-key.active{color:#000;border-color:#fff;border-bottom-color:var(--fc);background:#ffeb3b;box-shadow:0 0 0 4px #fff}[data-contrast=high] .vk-key.active .vk-symbol{color:#000}[data-contrast=high] .vk[data-fade=dim] .vk-key:not(.active){border-width:2px;border-color:#fff;border-bottom:7px solid var(--fc);background:#000}[data-contrast=high] .vk[data-fade=next] .vk-key:not(.active){background:#000;border-color:#777 #777 #444;border-bottom-style:solid;border-bottom-width:7px}[data-contrast=high] .hand-outline path{stroke:#fff;opacity:1;stroke-width:2px}[data-contrast=high] .hand-finger{stroke-width:4px}.ch.composing{color:var(--primary);-webkit-text-decoration:underline dotted var(--primary);text-decoration:underline dotted var(--primary);text-underline-offset:4px;text-decoration-thickness:2px}[data-contrast=high] .ch.composing{color:#7dd3fc;text-decoration-color:#7dd3fc}.os-ime{margin:.5rem 0;font-size:1.05rem}.timer{color:var(--accent-ink);margin:.2rem 0;font-weight:700}.intro-text{font-size:1.05rem;line-height:1.5}.badge{border:2px solid;border-radius:999px;padding:.15rem .6rem;font-size:.8rem;font-weight:700}.badge.locked{color:var(--muted)}.badge.open{color:var(--primary)}.badge.done{color:var(--ok)}.lesson-row{background:var(--surface-2);border-radius:8px;justify-content:space-between;align-items:center;gap:.75rem;padding:.4rem .6rem;display:flex}.lesson-row.locked{color:var(--muted)}.lesson-row.passed{background:var(--ok-tint)}.meanings{grid-template-columns:repeat(auto-fill,minmax(11rem,1fr));gap:.3rem 1rem;margin:0;display:grid}.meanings>div{gap:.4rem;display:flex}.meanings dt{font-family:ui-monospace,Consolas,monospace;font-weight:700}.meanings dd{color:var(--muted);margin:0}.placement-prompt{margin:.75rem 0}.placement-prompt p{margin:0 0 .5rem}[data-contrast=high] .timer{color:#ffeb3b}[data-contrast=high] .passed{color:#00ff7f}[data-contrast=high] .badge.locked{color:#fff}[data-contrast=high] .badge.open{color:#00e5ff}[data-contrast=high] .badge.done{color:#00ff7f}[data-contrast=high] .lesson-row{background:#000;border:2px solid #fff}[data-contrast=high] .lesson-row.locked{color:#fff;border-style:dashed}[data-contrast=high] .lesson-row.passed{border-color:#00ff7f}[data-contrast=high] .meanings dd{color:#fff}.example{line-height:1.5}.blank{border-bottom:3px solid var(--primary);text-align:center;color:#0000;-webkit-user-select:none;user-select:none;min-width:4.5rem;margin:0 .2rem;display:inline-block}.mode-card{border:1px solid var(--line-strong);border-radius:10px;padding:.6rem .8rem}.mode-card p{margin:.4rem 0 0}.result-words{text-align:left;margin:.5rem 0 1rem;padding:0;list-style:none}.result-words li.ok{color:var(--ok)}.result-words li.bad{color:var(--err)}.level-prompt{line-height:1.6}[data-contrast=high] .mode-card{border-color:#fff}[data-contrast=high] .blank{border-bottom-color:#ffeb3b}[data-contrast=high] .result-words li.ok{color:#00ff7f}[data-contrast=high] .result-words li.bad{color:#ff8a80}.reward-chips{color:var(--primary);margin:.2rem 0 .6rem;font-weight:600}.xp-gain{color:var(--ok);margin:.4rem 0;font-size:1.4rem;font-weight:700}.level-badge{border:4px solid var(--primary);background:var(--primary-tint);border-radius:50%;flex-direction:column;justify-content:center;align-items:center;width:5.5rem;height:5.5rem;display:flex}.level-num{color:var(--primary);font-size:2.2rem;font-weight:800;line-height:1}.coin-box{margin:0}progress{width:100%;height:1rem;accent-color:var(--primary)}.quest-list,.badge-grid{margin:.5rem 0 1rem;padding:0;list-style:none}.quest{border:2px solid var(--line-strong);border-radius:10px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.5rem 1rem;margin-bottom:.5rem;padding:.5rem .75rem;display:flex}.quest.done{border-color:var(--ok);background:var(--ok-tint)}.badge-grid{grid-template-columns:repeat(auto-fill,minmax(11rem,1fr));gap:.6rem;display:grid}.badge-card{text-align:center;border:2px dashed var(--line-strong);color:var(--muted);border-radius:12px;flex-direction:column;align-items:center;gap:.2rem;padding:.7rem .5rem;display:flex}.badge-card.earned{background:var(--accent-tint);color:var(--ink);border:2px solid #f59e0b}.badge-icon{font-size:2rem}[data-contrast=high] .reward-chips{color:#ffeb3b}[data-contrast=high] .xp-gain{color:#00ff7f}[data-contrast=high] .level-badge{background:#000;border-color:#ffeb3b}[data-contrast=high] .level-num{color:#ffeb3b}[data-contrast=high] progress{accent-color:#00e5ff}[data-contrast=high] .quest{border-color:#fff}[data-contrast=high] .quest.done{background:#000;border-color:#00ff7f}[data-contrast=high] .badge-card{color:#fff;border-color:#fff}[data-contrast=high] .badge-card.earned{background:#000;border-color:#ffeb3b}.app:has(.game-zone,.game-screen){max-width:72rem}.game-zone .title,.game-screen .title{margin-block:.25rem;font-size:1.5rem}.game-zone>p{margin:.25rem 0}.game-cards{grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:1rem;margin:1rem 0;display:grid}.game-card{border:2px solid var(--line-strong);border-radius:12px;align-content:start;gap:.5rem;padding:1rem;display:grid}.game-card h2{margin:0;font-size:1.15rem}.game-host{width:100%;margin-bottom:.5rem}.game-canvas{aspect-ratio:16/9;background:#0b3d5c;border-radius:12px;width:min(100%,177.778vh - 30.2222rem);min-width:20rem;margin-inline:auto;overflow:hidden}.game-canvas canvas{display:block}[data-contrast=high] .game-card{border-color:#fff}[data-contrast=high] .game-canvas{background:#000;border:2px solid #ffeb3b}.status-bar{border:2px solid var(--line-strong);background:var(--surface-2);border-radius:8px;margin:0 0 .75rem;padding:.5rem .75rem;font-weight:600}.status-bar.offline{border-color:var(--accent-ink);background:var(--accent-tint)}.status-bar.back-online{border-color:var(--ok);background:var(--ok-tint)}.status-bar.update{border-color:var(--primary);background:var(--primary-tint)}.install-guide ol{padding-left:1.25rem}[data-contrast=high] .status-bar,[data-contrast=high] .status-bar.offline,[data-contrast=high] .status-bar.back-online,[data-contrast=high] .status-bar.update{color:#fff;background:#000;border-color:#ffeb3b}.header-tools{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:.5rem;display:flex}.app-header{flex-wrap:wrap}.leaderboard,.ranked{max-width:56rem;margin-inline:auto}.tabs{flex-wrap:wrap;gap:.5rem;margin:.5rem 0;display:flex}.periods{margin-bottom:.5rem}.board{border-collapse:collapse;max-width:100%;margin:.5rem 0 1rem;display:block;overflow-x:auto}.board th,.board td{border-bottom:1px solid var(--line-strong);text-align:left;padding:.4rem .5rem}.board tr.mine{background:var(--primary-tint);font-weight:700}.ranked-rules{text-align:left;max-width:34rem;margin:.5rem auto 1rem}.group-list{gap:.75rem;padding:0;list-style:none;display:grid}.group-item{border:2px solid var(--line-strong);border-radius:12px;padding:.75rem}.group-form{margin-top:1rem}.admin-flagged{margin-top:1.5rem}[data-contrast=high] .board th,[data-contrast=high] .board td{border-bottom-color:#fff}[data-contrast=high] .board tr.mine{background:#000;outline:2px solid #ffeb3b}[data-contrast=high] .group-item{border-color:#fff}.app{max-width:none;padding:0}.app-header{background:var(--surface);border-bottom:1px solid var(--line);margin:0;padding:.6rem 1.5rem}.header-tools button,.header-tools .contrast-switch{min-height:2.5rem;font-size:.9rem}.app-body>.panel,.app-body>.center-text,.app-body>section:not(.shell){box-sizing:border-box;max-width:46rem;margin:1.5rem auto}.app-body>p.center-text{padding:2rem 1rem}@media (width<=760px){.app-body>.panel,.app-body>section:not(.shell){margin:1rem}}.shell{flex-wrap:wrap;min-height:calc(100vh - 4rem);display:flex}.shell-nav{background:var(--nav);box-sizing:border-box;flex-direction:column;flex:14rem;gap:1rem;max-width:100%;padding:1.2rem .9rem;display:flex}.shell-nav ul{flex-direction:column;gap:4px;margin:0;padding:0;list-style:none;display:flex}.shell-nav-bottom{border-top:1px solid #2a3a60!important;margin-top:auto!important;padding-top:1rem!important}.nav-item{width:100%;min-height:2.8rem;color:var(--nav-text);text-align:left;background:0 0;border:none;border-radius:12px;align-items:center;gap:.75rem;padding:0 .85rem;font-weight:600;display:flex}.nav-item:hover:not(:disabled){background:var(--nav-hover);color:#fff}.nav-item.on{background:var(--primary);color:#fff}.shell-main{box-sizing:border-box;flex:999 34rem;min-width:0;padding:2rem 2.2rem 3rem}.shell-main>*{max-width:64rem}.shell-main>.panel{margin-left:0}@media (width<=760px){.shell-nav ul{flex-flow:wrap}.nav-item{width:auto}.shell-nav-bottom{margin-top:0!important}.shell-main{padding:1.2rem 1rem 2rem}}.page-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:1rem;margin-bottom:1.4rem;display:flex}.page-title{letter-spacing:-.01em;margin:0;font-size:1.9rem;font-weight:800}.page-sub{color:var(--muted);margin:.3rem 0 0}.chip-row{flex-wrap:wrap;gap:.5rem;display:flex}.chip{background:var(--primary-tint);min-height:2.3rem;color:var(--primary-strong);border-radius:999px;align-items:center;gap:.4rem;padding:0 .85rem;font-size:.92rem;font-weight:700;display:inline-flex}.chip.warm{background:var(--accent-tint);color:var(--accent-ink)}.chip.ok{background:var(--ok-tint);color:var(--ok)}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-l);box-sizing:border-box;padding:1.4rem}.card>h2:first-child{margin-top:0}.grid-tiles{grid-template-columns:repeat(auto-fill,minmax(13rem,1fr));gap:1rem;display:grid}.tile{text-align:left;border-radius:var(--radius-l);border:1px solid var(--line);background:var(--surface);flex-direction:column;align-items:flex-start;gap:.8rem;min-height:9rem;padding:1.2rem;font-weight:400;display:flex}.tile:hover:not(:disabled){box-shadow:0 6px 18px #14213d14}.tile-icon{background:var(--primary-tint);width:2.7rem;height:2.7rem;color:var(--primary-strong);border-radius:12px;justify-content:center;align-items:center;display:flex}.tile-icon.green{background:var(--ok-tint);color:var(--ok)}.tile-icon.warm{background:var(--accent-tint);color:var(--accent-ink)}.tile-icon.purple{color:#5b3fb0;background:#eee9fb}.tile-title{color:var(--ink);font-size:1.08rem;font-weight:800;display:block}.tile-sub{color:var(--muted);margin-top:.2rem;font-size:.88rem;display:block}.hero{background:var(--primary);color:#fff;border-radius:24px;flex-direction:column;gap:1rem;margin-bottom:1.2rem;padding:1.8rem;display:flex;position:relative;overflow:hidden}.hero-label{letter-spacing:.08em;text-transform:uppercase;color:#c9d8fa;font-size:.82rem;font-weight:700}.hero-title{margin:0;font-size:1.9rem;font-weight:800}.hero-text{color:#dce6fc;max-width:32rem;margin:0}.hero .row{align-items:center}.hero-button{min-height:3.2rem;color:var(--primary-strong);box-shadow:0 4px 0 var(--ink);background:#fff;border:none;border-radius:14px;align-items:center;gap:.6rem;padding:0 1.5rem;font-size:1.05rem;font-weight:800;display:inline-flex}.hero-button.ghost{color:#fff;box-shadow:none;background:0 0;border:1.5px solid #ffffff80}.hero-deco{opacity:.16;pointer-events:none;grid-template-columns:repeat(3,3.6rem);gap:.6rem;display:grid;position:absolute;top:-1.5rem;right:-1.5rem}.hero-deco span{background:#fff;border-radius:14px;height:3.6rem}.hero-deco span:nth-child(5){background:var(--accent)}.callout{border-radius:var(--radius-m);background:var(--accent-tint);flex-wrap:wrap;align-items:center;gap:.8rem 1rem;margin-bottom:1.2rem;padding:1rem 1.2rem;display:flex}.callout p{flex:16rem;margin:0}.who-grid{grid-template-columns:repeat(auto-fill,minmax(10rem,1fr));gap:1rem;margin:0 0 1.2rem;padding:0;list-style:none;display:grid}.who-card{text-align:left;border-radius:18px;flex-direction:column;justify-content:space-between;align-items:flex-start;gap:.9rem;width:100%;min-height:9rem;padding:1.1rem;display:flex}.who-card:hover:not(:disabled){border-color:var(--primary);box-shadow:0 0 0 4px var(--primary-tint)}.avatar{color:#14213d;border-radius:14px;flex:none;justify-content:center;align-items:center;width:3.3rem;height:3.3rem;font-size:1.4rem;font-weight:800;display:flex}.avatar.c0{background:#fcebdd;box-shadow:0 4px #e07b2e}.avatar.c1{background:#e2effa;box-shadow:0 4px #2f86d1}.avatar.c2{background:#e1f3ea;box-shadow:0 4px #2e9e6b}.avatar.c3{background:#eee9fb;box-shadow:0 4px #8b6fd6}.avatar.c4{background:#fdf1de;box-shadow:0 4px #f2a541}.who-name{font-size:1.2rem;font-weight:800}.pin-wrap{flex-wrap:wrap;justify-content:center;align-items:center;gap:2rem;display:flex}.pin-left{flex-direction:column;flex:14rem;align-items:center;gap:.8rem;display:flex}.keypad{grid-template-columns:repeat(3,4.2rem);gap:.6rem;display:grid}.keypad button{min-height:3.6rem;box-shadow:0 3px 0 var(--line);font-size:1.4rem;font-weight:700}.keypad button.small{color:var(--muted);font-size:.95rem}.settings-stack{flex-direction:column;gap:1.2rem;max-width:52rem;display:flex}.opt-row{flex-wrap:wrap;gap:.75rem;margin:.5rem 0 1rem;display:flex}label.opt{border-radius:var(--radius-m);border:1.5px solid var(--line);cursor:pointer;flex-direction:row;flex:12rem;align-items:flex-start;gap:.75rem;padding:.85rem 1rem;font-weight:400}label.opt:has(input:checked){border:2.5px solid var(--primary);background:var(--primary-tint)}label.opt input{flex:none;width:1.2rem;height:1.2rem;margin:.15rem 0 0}label.opt b{display:block}label.opt small{color:var(--muted)}label.switch{border-top:1px solid var(--line);cursor:pointer;flex-direction:row;justify-content:space-between;align-items:center;gap:1rem;padding:.75rem 0;font-weight:400}label.switch input{appearance:none;background:var(--line-strong);cursor:pointer;border-radius:999px;flex:none;width:3.1rem;height:1.8rem;margin:0;position:relative}label.switch input:after{content:"";background:#fff;border-radius:50%;width:1.4rem;height:1.4rem;transition:left .15s;position:absolute;top:.2rem;left:.2rem;box-shadow:0 1px 2px #0003}label.switch input:checked{background:var(--primary)}label.switch input:checked:after{left:1.5rem}label.switch input:disabled{opacity:.5}.seg{background:#e4e8f1;border-radius:12px;flex-wrap:wrap;gap:4px;padding:4px;display:inline-flex}.seg button{color:var(--muted);background:0 0;border:none;min-height:2.5rem}.seg button[aria-checked=true],.seg button[aria-pressed=true]{background:var(--surface);color:var(--ink);box-shadow:0 1px 3px #14213d24}.setting-line{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.8rem;padding:.5rem 0;display:flex}[data-contrast=high] .shell-nav{border-right:2px solid #fff}[data-contrast=high] .nav-item.on,[data-contrast=high] .hero-button{color:#000;background:#ffd84d}[data-contrast=high] .hero{background:#000;border:3px solid #ffd84d}[data-contrast=high] .card,[data-contrast=high] .tile,[data-contrast=high] .who-card{border:2px solid #fff}[data-contrast=high] .seg,[data-contrast=high] .tabs{background:#222}[data-contrast=high] .avatar{box-shadow:none;border:2px solid #fff}.icon-button{justify-content:center;align-items:center;gap:.5rem;display:inline-flex}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.plain-fieldset{border:none;margin:0;padding:0}.plain-fieldset legend{padding:0;font-weight:700}.install-card{flex-wrap:wrap;align-items:center;gap:1rem 1.2rem;display:flex}.install-text{flex:18rem}.install-text h2{margin:0}.install-text p{margin:.3rem 0 0}.shell.focus .shell-main{max-width:64rem;margin:0 auto}.typing-box{background:var(--surface);border:2px solid var(--line-strong);text-align:center;border-radius:22px;margin:0 0 .6rem;padding:1.8rem 2rem}.typing-box:focus{border-color:var(--primary);box-shadow:0 0 0 5px var(--primary-tint)}.typing-text{font-family:var(--font-type);letter-spacing:.02em;word-spacing:.12em;font-size:2rem;line-height:1.7}.ch.pending{color:var(--muted)}.ch.cursor{box-shadow:inset 0 -4px 0 var(--primary);background:var(--primary-tint)}.timer{background:var(--surface);border:1px solid var(--line);font-variant-numeric:tabular-nums;border-radius:999px;margin:.2rem auto;padding:.3rem .9rem;font-weight:800;display:inline-flex}.stats{gap:.8rem}.stats>div{background:var(--surface);border:1px solid var(--line);text-align:left;border-radius:18px;padding:.9rem 1rem}.stats dd{color:var(--ink);font-variant-numeric:tabular-nums;font-size:2.1rem;font-weight:800}.mistakes kbd,kbd{font-family:var(--font-ui);border:1.5px solid var(--line-strong);background:var(--surface);border-bottom-width:3px;border-radius:8px;font-weight:700}.os-ime{margin-bottom:.8rem}.journey,.lesson,.stats-screen,.result,.vocab,.notebook,.round,.rewards{flex-direction:column;gap:1rem;display:flex}.journey>.page-head,.stats-screen>.page-head,.vocab>.page-head,.notebook>.page-head,.rewards>.page-head,.vocab>.callout,.notebook>.callout,.result>.callout{margin-bottom:0}.card-head{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:.5rem 1rem;display:flex}.card-head h2{margin:0}.link-button{min-height:0;color:var(--primary);font:inherit;cursor:pointer;background:0 0;border:none;padding:0;font-size:.85rem;font-weight:600;text-decoration:underline}.lesson-head{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-l);flex-wrap:wrap;align-items:center;gap:.8rem 1.4rem;padding:.8rem 1.1rem;display:flex}.lesson-head-text{flex:14rem;min-width:0}.lesson-head-text span{display:block}.lesson-head-text strong{font-size:1.05rem;display:block}.icon-text-button{flex:none;align-items:center;gap:.4rem;display:inline-flex}.step-pills{flex-wrap:wrap;gap:.4rem;margin:0;padding:0;font-size:.85rem;font-weight:600;list-style:none;display:flex}.step-pills li{background:var(--surface-2);color:var(--muted);border-radius:999px;align-items:center;gap:.3rem;padding:.4rem .8rem;display:inline-flex}.step-pills li.done{background:var(--ok-tint);color:var(--ok)}.step-pills li.now{background:var(--primary);color:#fff}.step-pills svg{width:1em;height:1em}.result{max-width:60rem}.result-banner{background:var(--nav);color:#fff;border-radius:24px;flex-wrap:wrap;align-items:center;gap:1.2rem;padding:1.5rem 1.6rem;display:flex}.result-banner.pass{background:var(--ok)}.result-banner.fail{background:var(--accent-tint);color:var(--ink);border:2px solid var(--accent)}.result-icon{width:3.6rem;height:3.6rem;color:var(--ok);background:#fff;border-radius:18px;flex:none;justify-content:center;align-items:center;display:flex}.result-icon svg{stroke-width:3px;width:2rem;height:2rem}.result-banner.neutral .result-icon{color:var(--nav)}.result-banner.fail .result-icon{color:var(--accent-ink)}.result-banner-text{flex:16rem;min-width:0}.result-banner-text h1{margin:0;font-size:1.5rem}.result-banner-text p{opacity:.9;margin:.25rem 0 0}.reward-pill{background:#ffffff2e;border-radius:999px;flex:none;margin:0;padding:.5rem .9rem;font-weight:800}.result-banner.fail .reward-pill{background:var(--surface)}.metric-row{flex-wrap:wrap;gap:.8rem;margin:0;display:flex}.metric{background:var(--surface);border:1px solid var(--line);border-radius:18px;flex:9rem;padding:1rem 1.1rem}.metric.highlight{border:2px solid var(--ok)}.metric dt{color:var(--muted);font-size:.82rem}.metric dd{font-variant-numeric:tabular-nums;margin:.2rem 0 0;font-size:2rem;font-weight:800;line-height:1.1}.metric-unit{font-size:1rem;font-weight:600}.mistake-keys{flex-wrap:wrap;gap:.6rem;margin:0;padding:0;list-style:none;display:flex}.mistake-keys li{border-radius:var(--radius-m);background:var(--bg);align-items:center;gap:.5rem;padding:.35rem .7rem .35rem .35rem;display:flex}.sync-line{color:var(--ok);align-items:center;gap:.4rem;margin:0;font-weight:600;display:flex}.sync-line svg{width:1.1em;height:1.1em}.result-actions{gap:.7rem}.keycap-row{flex-wrap:wrap;gap:.35rem;margin:0;display:flex}.keycap{border-radius:var(--radius-s);border:1.5px solid var(--fc,var(--line-strong));background:var(--fct,var(--surface-2));min-width:2.3rem;min-height:2.3rem;color:var(--ink);box-sizing:border-box;justify-content:center;align-items:center;padding:0 .5rem;font-weight:700;display:inline-flex}.keycap.wide{padding:0 .7rem;font-size:.82rem}.journey-cols{flex-wrap:wrap;align-items:flex-start;gap:1.4rem;display:flex}.progress-chip{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-m);font-variant-numeric:tabular-nums;align-items:center;gap:.7rem;margin:0;padding:.6rem 1rem;display:flex}.progress-chip-label{color:var(--muted);font-size:.85rem}.progress-track{background:var(--primary-tint);border-radius:999px;width:7rem;height:.5rem;overflow:hidden}.progress-fill{background:var(--primary);border-radius:999px;height:100%;display:block}.stage-rail{background:var(--surface);border:1px solid var(--line);box-sizing:border-box;border-radius:22px;flex:19rem;margin:0;padding:1rem;list-style:none}.rail-item{position:relative}.rail-item:not(:last-child):before{content:"";background:var(--line);border-radius:2px;width:4px;margin-left:-2px;position:absolute;top:3.1rem;bottom:-.2rem;left:1.75rem}.rail-item.done:not(:last-child):before{background:var(--ok)}.rail-btn{border-radius:var(--radius-m);width:100%;color:var(--ink);text-align:left;font:inherit;cursor:pointer;background:0 0;border:none;align-items:flex-start;gap:.9rem;padding:.5rem .6rem;display:flex}.rail-btn:hover:not(:disabled){background:var(--surface-2)}.rail-item.current .rail-btn{background:var(--primary-tint)}.rail-dot{border-radius:var(--radius-m);box-sizing:border-box;background:var(--surface-2);border:1.5px solid var(--line);width:2.5rem;height:2.5rem;color:var(--muted);z-index:1;flex:none;justify-content:center;align-items:center;font-weight:800;display:flex;position:relative}.rail-item.done .rail-dot{background:var(--ok-tint);border:2px solid var(--ok);color:var(--ok)}.rail-item.open .rail-dot{background:var(--primary);border-color:var(--primary);color:#fff}.rail-item.current .rail-dot{box-shadow:0 0 0 5px var(--primary-ring)}.rail-text{flex:1;min-width:0;padding-top:.2rem}.rail-text b{display:block}.rail-text span{color:var(--muted);margin-top:.1rem;font-size:.85rem;display:block}.rail-item.current .rail-text b{color:var(--primary-strong)}.stage-detail{flex-direction:column;flex:2 26rem;gap:.8rem;min-width:0;display:flex}.stage-head{flex-flow:wrap;justify-content:space-between;align-items:flex-start;gap:1rem}.stage-head-text h2{margin:.3rem 0 0}.eyebrow{letter-spacing:.08em;text-transform:uppercase;color:var(--primary);font-size:.8rem;font-weight:700}.lesson-list{flex-direction:column;gap:.6rem;margin:0;padding:0;list-style:none;display:flex}.lesson-row{background:var(--surface);border:1px solid var(--line);border-radius:16px;align-items:center;gap:.9rem;padding:.9rem 1rem;display:flex}.lesson-row.open{border:2px solid var(--primary);box-shadow:0 0 0 4px var(--primary-tint)}.lesson-row.locked{background:var(--surface-2)}.lesson-dot{border-radius:var(--radius-m);box-sizing:border-box;background:var(--surface-2);border:1.5px solid var(--line);width:2.5rem;height:2.5rem;color:var(--muted);flex:none;justify-content:center;align-items:center;font-weight:800;display:flex}.lesson-row.passed .lesson-dot{background:var(--ok-tint);border:2px solid var(--ok);color:var(--ok)}.lesson-row.open .lesson-dot{background:var(--primary);border-color:var(--primary);color:#fff}.lesson-text{flex:1;min-width:0}.lesson-text strong{display:block}.lesson-text .meta{margin-top:.1rem;display:block}.passed{color:var(--ok);font-weight:700}.meanings>div{background:var(--surface);border:1px solid var(--line);border-radius:12px}.vocab-step{flex-direction:column;gap:.8rem;display:flex}.vocab-step>h2{margin:0;font-size:1.15rem}.step-note{color:var(--muted);font-size:.95rem;font-weight:500}.topic-grid{grid-template-columns:repeat(auto-fill,minmax(11rem,1fr));gap:.8rem;display:grid}.topic-card,.mode-card{font:inherit;text-align:left;border:1.5px solid var(--line);background:var(--surface);color:var(--ink);cursor:pointer;border-radius:18px;flex-direction:column;gap:.5rem;padding:1.1rem;display:flex}.topic-card:hover:not(:disabled),.mode-card:hover:not(:disabled){border-color:var(--primary)}.topic-card.on{border:2.5px solid var(--primary);box-shadow:0 0 0 4px var(--primary-tint)}.topic-card:disabled,.mode-card:disabled{background:var(--surface-2);color:var(--muted);cursor:default;border-style:dashed}.topic-name,.mode-name{font-size:1.05rem;font-weight:800}.mode-grid{grid-template-columns:repeat(auto-fit,minmax(14rem,1fr));gap:1rem;display:grid}.mode-example{font-family:var(--font-type);border-radius:var(--radius-s);background:var(--bg);padding:.6rem .7rem;font-size:.95rem}.mode-example.warn{font-family:var(--font-ui);background:var(--accent-tint);color:var(--accent-ink)}.notebook-callout{gap:.8rem 1rem}.round-progress{flex-direction:column;flex:14rem;gap:.4rem;min-width:0;margin:0;display:flex}.round-progress>span:first-child{justify-content:space-between;gap:1rem;display:flex}.round-progress .progress-track{width:100%}.question-card{background:var(--surface);border:1px solid var(--line);text-align:center;border-radius:24px;flex-direction:column;align-items:center;gap:.7rem;padding:2rem 1.6rem;display:flex}.question-card>p{margin:0}.question-hint{color:var(--muted)}.question-word,.translate-form{flex-wrap:wrap;gap:.6rem;margin-top:.4rem;display:flex}.translate-input{font:inherit;font-family:var(--font-type);border:2px solid var(--line-strong);background:var(--surface);color:var(--ink);border-radius:12px;flex:18rem;padding:.7rem .9rem;font-size:1.15rem}.translate-input:focus-visible{outline:3px solid var(--primary);outline-offset:2px}.your-answer{font-family:var(--font-type);flex-wrap:wrap;align-items:baseline;gap:.3rem .45rem;display:flex}.your-answer .mark.ok{color:var(--ok)}.your-answer .mark.bad{color:var(--err);text-underline-offset:3px;-webkit-text-decoration:underline wavy;text-decoration:underline wavy}.question-sentence{font-family:var(--font-type);font-size:2rem;line-height:1.5}.question-meaning{border-radius:var(--radius-m);background:var(--bg);padding:.6rem 1rem}.example{font-family:var(--font-type)}.blank{border-bottom:4px solid var(--primary);background:var(--primary-tint);border-radius:8px 8px 0 0;padding:0 .3rem}.answer-note{border-radius:18px;flex-wrap:wrap;align-items:flex-start;gap:.9rem;padding:1.1rem 1.2rem;display:flex}.answer-note.ok{background:var(--ok-tint)}.answer-note.bad{background:var(--surface);border:1.5px dashed var(--err)}.answer-mark{border-radius:var(--radius-s);flex:none;justify-content:center;align-items:center;width:2.3rem;height:2.3rem;display:flex}.answer-note.ok .answer-mark{background:var(--ok);color:#fff}.answer-note.bad .answer-mark{background:var(--err-tint);color:var(--err)}.answer-text{flex-direction:column;flex:16rem;gap:.2rem;min-width:0;display:flex}.answer-note.ok .answer-text strong{color:var(--ok)}.answer-note.bad .answer-text strong{color:var(--err)}.word{font-family:var(--font-type)}.result-words{flex-direction:column;gap:.4rem;margin:0;padding:0;list-style:none;display:flex}.result-words li{border-radius:var(--radius-m);background:var(--surface);border:1px solid var(--line);align-items:center;gap:.6rem;padding:.6rem .8rem;display:flex}.result-words li.ok{background:var(--ok-tint);border-color:#0000}.word-mark{flex:none;display:inline-flex}.result-words li.ok .word-mark{color:var(--ok)}.result-words li.bad .word-mark{color:var(--err)}.word-table{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-l);overflow-x:auto}.word-table ul{margin:0;padding:0;list-style:none}.word-row{border-bottom:1px solid var(--surface-2);grid-template-columns:minmax(9rem,1.2fr) minmax(7rem,1fr) minmax(9rem,1fr) minmax(7rem,auto);align-items:center;gap:1rem;min-width:40rem;padding:.85rem 1.2rem;display:grid}.word-table ul li:last-child{border-bottom:none}.col-label{letter-spacing:.06em;text-transform:uppercase;color:var(--muted);font-size:.72rem;font-weight:700}.word-row.head{border-bottom:1px solid var(--line)}.word-cell .word{font-size:1.15rem;display:block}.word-cell .ipa{color:var(--muted);font-size:.78rem;display:block}.box-steps{gap:.25rem;display:flex}.box-step{box-sizing:border-box;border-radius:6px;justify-content:center;align-items:center;width:1.7rem;height:1.4rem;font-size:.68rem;font-weight:700;display:flex}.box-step.done{background:var(--ok);color:#fff}.box-step.now{background:var(--primary);color:#fff;box-shadow:0 0 0 2px var(--primary-ring)}.box-step.todo{background:var(--surface-2);color:var(--muted);border:1px solid var(--line)}.fit-tag{background:var(--ok-tint);color:var(--ok);border-radius:999px;align-self:flex-start;padding:.2rem .6rem;font-size:.78rem;font-weight:700}.due-tag{background:var(--surface-2);color:var(--ink-2);border-radius:999px;justify-self:start;padding:.3rem .65rem;font-size:.78rem;font-weight:700}.due-tag.now{background:var(--accent-tint);color:var(--accent-ink)}.metric.warm{background:var(--accent-tint);border-color:#0000}.metric.warm dt{color:var(--accent-ink)}.rewards-top{flex-wrap:wrap;align-items:stretch;gap:1.2rem;display:flex}.level-panel{background:var(--nav);color:#fff;box-sizing:border-box;border-radius:22px;flex-wrap:wrap;flex:2 25rem;align-items:center;gap:1.4rem;padding:1.6rem;display:flex}.level-badge{background:var(--primary);border-radius:24px;flex-direction:column;flex:none;justify-content:center;align-items:center;width:5.6rem;height:5.6rem;display:flex;box-shadow:0 6px #0a1430}.level-word{letter-spacing:.06em;color:#c9d8fa;font-size:.68rem;font-weight:700}.level-num{font-size:2.4rem;font-weight:800;line-height:1}.level-bars{flex-direction:column;flex:13rem;gap:.5rem;min-width:0;display:flex}.level-name{margin:0;font-size:1.35rem;font-weight:800}.level-line{color:var(--nav-text);flex-wrap:wrap;justify-content:space-between;gap:.3rem 1rem;margin:0;font-size:.85rem;display:flex}.xp-track{background:#ffffff26;border-radius:999px;height:.6rem;overflow:hidden}.xp-fill{background:var(--accent);border-radius:999px;height:100%;display:block}.coin-box{background:#ffffff14;border-radius:14px;flex:none;align-items:center;gap:.5rem;margin:0;padding:.7rem 1rem;display:flex}.coin-box b{font-size:1.6rem}.coin-box>span:last-child{color:var(--nav-text);font-size:.85rem}.coin{background:var(--accent);color:#5a3a00;border-radius:50%;justify-content:center;align-items:center;width:2rem;height:2rem;font-weight:800;display:inline-flex;box-shadow:inset 0 -3px #c97f1e}.streak-card{flex:18rem}.streak-now{align-items:center;gap:.7rem;margin:0;font-size:1.4rem;font-weight:800;display:flex}.streak-now svg{width:2rem;height:2rem;color:var(--f-index)}.week-strip{flex-wrap:wrap;gap:.35rem;margin:0;display:flex}.day{border-radius:var(--radius-s);box-sizing:border-box;background:var(--surface-2);width:2.2rem;height:2.2rem;color:var(--muted);justify-content:center;align-items:center;font-size:.75rem;font-weight:700;display:inline-flex}.day.on{background:var(--accent-tint);color:var(--accent-ink)}.day.now:not(.on){border:2px dashed var(--accent);color:var(--accent-ink);background:0 0}.day.now.on{box-shadow:0 0 0 2px var(--accent)}.quest-list{margin:0;padding:0;list-style:none}.quest{border-top:1px solid var(--surface-2);align-items:center;gap:.9rem;padding:.9rem 0;display:flex}.quest:first-child{border-top:none}.quest-mark{border-radius:var(--radius-s);background:var(--primary-tint);width:2.3rem;height:2.3rem;color:var(--primary-strong);flex:none;justify-content:center;align-items:center;font-size:.78rem;font-weight:800;display:flex}.quest.done .quest-mark{background:var(--ok);color:#fff}.quest-body{flex-direction:column;flex:1;gap:.5rem;min-width:0;display:flex}.quest-track{background:var(--primary-tint);border-radius:999px;height:.5rem;overflow:hidden}.quest-fill{background:var(--primary);border-radius:999px;height:100%;display:block}.quest.done .quest-fill{background:var(--ok)}.quest-side{text-align:right;flex:none;font-size:.82rem}.badge-grid{grid-template-columns:repeat(auto-fill,minmax(9rem,1fr));gap:.8rem;margin:0;padding:0;list-style:none;display:grid}.badge-card{text-align:center;background:var(--surface-2);border-radius:16px;flex-direction:column;align-items:center;gap:.5rem;padding:1rem .7rem;display:flex}.badge-card .meta{font-size:.78rem;line-height:1.4}.badge-card.earned{background:var(--ok-tint);color:var(--ink)}.badge-icon{background:var(--line);width:3.6rem;height:3.6rem;color:var(--muted);border-radius:18px;justify-content:center;align-items:center;display:flex}.badge-icon svg{width:1.9rem;height:1.9rem}.badge-card.earned .badge-icon{background:var(--surface);color:var(--ok);border:2px solid var(--ok)}.stats-cols{flex-wrap:wrap;align-items:flex-start;gap:1.2rem;display:flex}.stats-cols>.card{flex:24rem;min-width:0}.finger-symbol{border:1.5px solid var(--fc,var(--line-strong));background:var(--surface);width:1.7rem;height:1.7rem;color:var(--fc,var(--ink));box-sizing:border-box;border-radius:7px;flex:none;justify-content:center;align-items:center;font-size:.75rem;display:inline-flex}.weak-fingers{flex-wrap:wrap;gap:.7rem;margin:0;padding:0;list-style:none;display:flex}.weak-finger{border-radius:var(--radius-m);background:var(--fct,var(--surface-2));flex:16rem;align-items:center;gap:.8rem;padding:.9rem 1rem;display:flex}.weak-finger .finger-symbol{width:2.3rem;height:2.3rem;font-size:1rem}.weak-finger strong{display:block}.weak-finger .meta{color:var(--ink-2);display:block}.finger-chart{flex-wrap:wrap;justify-content:center;gap:.3rem;margin:0;padding:0;list-style:none;display:flex}.finger-col{flex-direction:column;align-items:center;gap:.35rem;width:3.4rem;display:flex}.finger-col b{font-variant-numeric:tabular-nums;font-size:.85rem}.finger-track{background:var(--surface-2);border-radius:8px;align-items:flex-end;width:1.9rem;height:8rem;display:flex;overflow:hidden}.finger-fill{background:var(--fc,var(--primary));border-radius:8px 8px 0 0;width:100%;min-height:2px;display:block}.finger-col small{color:var(--muted);text-align:center;font-size:.72rem;line-height:1.3}.chart-ends{color:var(--muted);justify-content:space-between;margin:0;padding:0 .6rem;font-size:.8rem;display:flex}.heatmap{flex-direction:column;align-items:flex-start;gap:.3rem;display:flex;overflow-x:auto}.heat-row{gap:.3rem;display:flex}.heat-key{box-sizing:border-box;text-transform:uppercase;border-radius:8px;flex:none;justify-content:center;align-items:center;width:2.3rem;height:2.3rem;font-size:.85rem;font-weight:700;display:inline-flex}.heat-key.h0{background:var(--surface-2);color:var(--muted);border:1px solid var(--line)}.heat-key.h1{color:var(--ink);background:#fde8e6}.heat-key.h2{color:var(--ink);background:#f4a39a}.heat-key.h3{color:#fff;background:#c0392b}.heat-legend{color:var(--muted);align-items:center;gap:.35rem;margin:0;font-size:.75rem;display:flex}.heat-legend .heat-key{width:1.1rem;height:1.1rem}.key-ranking{flex-direction:column;gap:.4rem;margin:0;padding:0;list-style:none;display:flex}.key-ranking li{justify-content:space-between;gap:1rem;display:flex}[data-contrast=high] .heat-key{color:#fff;background:#000;border:1px solid #fff}[data-contrast=high] .heat-key.h1{border:2px solid #ffd84d}[data-contrast=high] .heat-key.h2{border:3px solid #ffd84d}[data-contrast=high] .heat-key.h3{color:#000;background:#ffd84d;border:3px solid #ffd84d}[data-contrast=high] .weak-finger{background:#000;border:2px solid #fff}.leaderboard{flex-direction:column;gap:1rem;display:flex}.leaderboard>.page-head,.leaderboard>.callout{margin-bottom:0}.seg-tabs{border-radius:var(--radius-m);background:#e4e8f1;flex-wrap:wrap;align-self:flex-start;gap:.25rem;padding:.25rem;display:inline-flex}.seg-tab{color:var(--muted);font:inherit;border-radius:var(--radius-s);cursor:pointer;background:0 0;border:none;min-height:2.6rem;padding:0 1.1rem;font-weight:600}.seg-tab.on{background:var(--surface);color:var(--ink);box-shadow:0 1px 3px #14213d1f}.filter-rows{flex-wrap:wrap;justify-content:space-between;gap:.7rem;display:flex}.pill-row{flex-wrap:wrap;gap:.45rem;display:flex}.pill{font:inherit;border:1.5px solid var(--line);background:var(--surface);min-height:2.4rem;color:var(--ink);cursor:pointer;border-radius:999px;padding:0 .9rem;font-size:.85rem;font-weight:600}.pill.on{background:var(--ink);border-color:var(--ink);color:#fff}.podium{grid-template-columns:repeat(auto-fit,minmax(12rem,1fr));align-items:end;gap:1rem;margin:0;padding:0;list-style:none;display:grid}.podium-card{border-radius:var(--radius-l);background:var(--surface);border:1px solid var(--line);box-sizing:border-box;flex-direction:column;gap:.6rem;padding:1.3rem;display:flex}.podium-card.rank-1{background:var(--nav);color:#fff;border-color:#0000;order:0;padding:1.6rem 1.3rem;box-shadow:0 10px 24px #14213d2e}.podium-card.rank-2{order:-1}.podium-card.rank-3{order:1}.podium-card.rank-1 .meta{color:var(--nav-text)}.podium-rank{border-radius:var(--radius-m);box-sizing:border-box;background:var(--surface-2);border:2px solid var(--f-thumb);justify-content:center;align-items:center;width:2.7rem;height:2.7rem;font-weight:800;display:flex}.podium-card.rank-1 .podium-rank{background:var(--accent);border-color:var(--accent);color:var(--ink)}.podium-card.rank-3 .podium-rank{background:var(--ft-index);border-color:var(--f-index)}.podium-who strong{font-size:1.15rem;display:block}.podium-who .meta{font-size:.85rem;display:block}.podium-score{align-items:baseline;gap:.5rem;display:flex}.podium-score b{font-variant-numeric:tabular-nums;font-size:1.8rem}.podium-card.rank-1 .podium-score b{font-size:2.2rem}.board-wrap{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-l);overflow-x:auto}.board{border-collapse:collapse;width:100%;min-width:34rem}.board th{text-align:left;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);border-bottom:1px solid var(--line);padding:.75rem 1rem;font-size:.72rem;font-weight:700}.board td{border-bottom:1px solid var(--surface-2);padding:.8rem 1rem}.board tbody tr:last-child td{border-bottom:none}.board th.n,.board td.n{text-align:right;font-variant-numeric:tabular-nums}.board td.score{font-weight:700}.board td.who{font-weight:600}.board tr.mine td{background:var(--primary-tint);color:var(--primary-strong);font-weight:800}.board tr.mine td:first-child{box-shadow:inset 4px 0 0 var(--primary)}.you-tag{background:var(--primary);color:#fff;border-radius:999px;margin-left:.4rem;padding:.1rem .5rem;font-size:.7rem;font-weight:700;display:inline-block}.board-note{margin:0;line-height:1.5}.friend-groups{flex-direction:column;gap:1rem;display:flex}.friend-groups h2{margin:0;font-size:1.15rem}.friend-groups>.callout{margin-bottom:0}.group-list{flex-direction:column;gap:.7rem;margin:0;padding:0;list-style:none;display:flex}.group-item{border:1px solid var(--line);background:var(--surface);border-radius:18px;flex-direction:column;gap:.7rem;padding:1rem 1.1rem;display:flex}.group-forms{grid-template-columns:repeat(auto-fit,minmax(16rem,1fr));gap:1rem;display:grid}.group-form{background:var(--surface);border:1px solid var(--line);border-radius:18px;padding:1.2rem}.ranked,.ranked-intro,.ranked-result{flex-direction:column;gap:1rem;display:flex}.ranked-intro .question-card{max-width:34rem;margin:0 auto}.ranked-clock{background:var(--primary-tint);width:3.6rem;height:3.6rem;color:var(--primary-strong);border-radius:18px;justify-content:center;align-items:center;display:flex}.ranked-clock svg{width:2rem;height:2rem}.ranked-rules{text-align:left;flex-direction:column;gap:.5rem;margin:0;padding:0;list-style:none;display:flex}.ranked-rules li{align-items:flex-start;gap:.5rem;display:flex}.ranked-rules svg{width:1.1rem;height:1.1rem;color:var(--ok);flex:none;margin-top:.25rem}.game-zone{flex-direction:column;gap:1rem;display:flex}.game-zone>.page-head,.game-zone>.callout{margin-bottom:0}.game-stats{flex-wrap:wrap;gap:1rem;display:flex}.stat-card{flex:13rem;gap:.5rem}.stat-big{align-items:center;gap:.5rem;margin:0;display:flex}.stat-big b{font-variant-numeric:tabular-nums;font-size:1.9rem}.credit-bar{gap:.35rem;display:flex}.credit-bar span{background:var(--primary-tint);border-radius:999px;flex:1;height:.5rem}.credit-bar span.on{background:var(--primary)}.progress-fill.ok{background:var(--ok)}.coin.small{width:1.1rem;height:1.1rem;font-size:.6rem;box-shadow:inset 0 -2px #c97f1e}.game-cards{grid-template-columns:repeat(auto-fit,minmax(20rem,1fr));gap:1.2rem;display:grid}.game-card{border:1px solid var(--line);background:var(--surface);border-radius:22px;flex-direction:column;display:flex;overflow:hidden}.game-art{width:100%;height:10rem;display:block}.game-art-word{font-family:var(--font-type);text-anchor:middle;font-size:17px}.game-card-body{flex-direction:column;flex:1;gap:.8rem;padding:1.3rem;display:flex}.game-card-body h2{margin:0;font-size:1.3rem}.game-card-body .seg{align-self:flex-start}.game-tag{border-radius:var(--radius-s);background:var(--accent-tint);color:var(--accent-ink);align-self:flex-start;align-items:center;gap:.5rem;margin:0;padding:.5rem .8rem;font-size:.85rem;font-weight:600;display:inline-flex}.game-tag svg{width:1.1rem;height:1.1rem}.game-card-foot{margin-top:auto}.cost-tag{background:#ffffff2e;border-radius:999px;align-items:center;gap:.35rem;padding:.15rem .6rem;font-size:.85rem;display:inline-flex}.game-foot{border:1.5px dashed var(--line-strong);background:var(--surface)}.game-host,.game-canvas{border-radius:20px;overflow:hidden}.game-canvas{border:3px solid var(--ink)}.game-over-wrap{background:#0b3d5c;border-radius:24px;justify-content:center;align-items:center;padding:2rem 1rem;display:flex}.game-over{background:var(--surface);box-sizing:border-box;border-radius:28px;flex-direction:column;gap:1.1rem;width:100%;max-width:34rem;padding:2rem;display:flex}.game-over>.callout{margin-bottom:0}.score-panel{border-radius:var(--radius-l);background:var(--accent-tint);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;padding:1.3rem;display:flex}.score-panel .meta{color:var(--accent-ink);font-weight:600;display:block}.score-big{font-variant-numeric:tabular-nums;font-size:3.2rem;font-weight:800;line-height:1.05}.score-best{text-align:right}.score-best b{font-variant-numeric:tabular-nums;font-size:1.7rem}.consent,.parent-page,.child-form{flex-direction:column;gap:1rem;display:flex}.consent>.page-head,.parent-page>.page-head,.consent>.callout,.parent-page>.callout{margin-bottom:0}.parent-bar{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-m);flex-wrap:wrap;align-items:center;gap:.7rem 1rem;padding:.7rem 1rem;display:flex}.parent-bar>:last-child:not(.meta){margin-left:auto}.auth-split{flex-wrap:wrap;align-items:stretch;gap:1.5rem;display:flex}.auth-side{background:var(--nav);color:#fff;box-sizing:border-box;border-radius:22px;flex-direction:column;flex:20rem;gap:1.4rem;padding:2rem;display:flex}.auth-side h1{margin:0;font-size:1.9rem;line-height:1.2}.auth-side p{color:var(--nav-text);margin:0;line-height:1.6}.auth-steps{flex-direction:column;gap:.9rem;margin:0;padding:0;list-style:none;display:flex}.auth-steps li{color:var(--nav-text);align-items:flex-start;gap:.7rem;line-height:1.5;display:flex}.auth-steps b{color:#fff}.step-dot{background:var(--primary);color:#fff;border-radius:8px;flex:none;justify-content:center;align-items:center;width:1.7rem;height:1.7rem;font-size:.82rem;font-weight:800;display:flex}.auth-notes{flex-wrap:wrap;gap:.5rem 1.2rem;font-size:.85rem;display:flex;margin-top:auto!important}.auth-main{flex:999 22rem;justify-content:center;align-items:center;min-width:0;display:flex}.auth-card{background:var(--surface);border:1px solid var(--line);box-sizing:border-box;border-radius:24px;flex-direction:column;gap:1.1rem;width:100%;max-width:28rem;padding:1.8rem;display:flex}.auth-card h2{margin:0;font-size:1.5rem}.auth-card .seg-tabs{align-self:stretch}.auth-card .seg-tab{flex:1}.consent-list{flex-direction:column;gap:.8rem;display:flex}.consent-item{background:var(--surface);border:1px solid var(--line);border-radius:18px;gap:1rem;margin:0;padding:1.2rem;display:flex}.consent-item h2{margin:0 0 .3rem;font-size:1.1rem}.consent-item p{color:var(--ink-2);margin:0;line-height:1.6}.agree-box{background:var(--surface);border:2px solid var(--primary);border-radius:18px;flex-direction:column;gap:1rem;padding:1.4rem;display:flex}.agree-box .meta{margin:0}.big-check{cursor:pointer;align-items:flex-start;gap:.8rem;line-height:1.55;display:flex}.big-check input{width:1.5rem;height:1.5rem;accent-color:var(--primary);flex:none;margin:.15rem 0 0}.child-grid{grid-template-columns:repeat(auto-fit,minmax(22rem,1fr));gap:1.2rem;display:grid}.child-card{gap:1rem}.child-head{align-items:center;gap:1rem;display:flex}.child-head h2{margin:0;font-size:1.3rem}.child-head .meta{margin:.15rem 0 0}.child-actions{border-top:1px solid var(--surface-2);gap:.6rem;padding-top:1rem}.push-right{margin-left:auto}.account-card{flex-flow:wrap;align-items:center;gap:1rem}.account-card>div{flex:18rem}.account-card h2{margin:0;font-size:1.15rem}.account-card .meta{margin:.2rem 0 0}.form-group{background:var(--surface);border:1px solid var(--line);border-radius:20px;flex-direction:column;gap:1rem;margin:0;padding:1.4rem;display:flex}.form-group>legend{padding:0;font-size:1.1rem;font-weight:800}.field-row{grid-template-columns:repeat(auto-fit,minmax(11rem,1fr));gap:1rem;display:grid}.field-row>label{min-width:0}.child-form .pin-input{align-self:flex-start}.install-guide{max-width:46rem}.status-bar{border-radius:0}[data-contrast=high] .stage-rail,[data-contrast=high] .lesson-row,[data-contrast=high] .progress-chip,[data-contrast=high] .game-card,[data-contrast=high] .badge-card,[data-contrast=high] .consent-item,[data-contrast=high] .stats>div,[data-contrast=high] .lesson-head,[data-contrast=high] .metric,[data-contrast=high] .question-card,[data-contrast=high] .topic-card,[data-contrast=high] .mode-card,[data-contrast=high] .word-table,[data-contrast=high] .result-words li,[data-contrast=high] .answer-note{background:#000;border:2px solid #fff}[data-contrast=high] .level-panel,[data-contrast=high] .result-banner{background:#000;border:3px solid #ffd84d}[data-contrast=high] .box-step,[data-contrast=high] .day,[data-contrast=high] .step-pills li,[data-contrast=high] .due-tag,[data-contrast=high] .quest-mark,[data-contrast=high] .badge-icon,[data-contrast=high] .podium-rank,[data-contrast=high] .you-tag,[data-contrast=high] .cost-tag,[data-contrast=high] .game-tag,[data-contrast=high] .ranked-clock{color:#fff;background:#000;border:1px solid #fff}[data-contrast=high] .box-step.now,[data-contrast=high] .day.on,[data-contrast=high] .step-pills li.now,[data-contrast=high] .due-tag.now,[data-contrast=high] .quest.done .quest-mark,[data-contrast=high] .badge-card.earned .badge-icon,[data-contrast=high] .podium-card.rank-1 .podium-rank,[data-contrast=high] .you-tag{color:#ffd84d;border:2px solid #ffd84d}[data-contrast=high] .parent-bar,[data-contrast=high] .auth-card,[data-contrast=high] .consent-item,[data-contrast=high] .child-card,[data-contrast=high] .account-card,[data-contrast=high] .form-group{background:#000;border:2px solid #fff}[data-contrast=high] .auth-side,[data-contrast=high] .agree-box{background:#000;border:3px solid #ffd84d}[data-contrast=high] .step-dot{color:#ffd84d;background:#000;border:2px solid #ffd84d}[data-contrast=high] .seg-tabs,[data-contrast=high] .pill,[data-contrast=high] .podium-card,[data-contrast=high] .board-wrap,[data-contrast=high] .group-item,[data-contrast=high] .group-form,[data-contrast=high] .stat-card,[data-contrast=high] .game-over,[data-contrast=high] .score-panel{background:#000;border:2px solid #fff}[data-contrast=high] .pill.on,[data-contrast=high] .seg-tab.on,[data-contrast=high] .podium-card.rank-1{color:#ffd84d;background:#000;border:3px solid #ffd84d}[data-contrast=high] .board tr.mine td{color:#ffd84d;background:#000}[data-contrast=high] .game-art{border-bottom:2px solid #fff}[data-contrast=high] .game-over-wrap{background:#000}[data-contrast=high] .result-icon,[data-contrast=high] .answer-mark{color:#ffd84d;background:#000;border:2px solid #ffd84d}
