:root{--bg: #05060a;--panel: #0b1018;--grid: rgba(0, 240, 255, .06);--dim: #3a4454;--text: #9fb3c8;--cyan: #00f0ff;--magenta: #ff2e97;--amber: #ffb627;--edge: rgba(0, 240, 255, .28);--mono: "Share Tech Mono", "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace}*{box-sizing:border-box;margin:0;padding:0}html,body{height:100%;background:var(--bg);color:var(--text);font-family:var(--mono);-webkit-font-smoothing:antialiased}body{display:grid;place-items:center;padding:24px;overflow-x:hidden;background-image:linear-gradient(var(--grid) 1px,transparent 1px),linear-gradient(90deg,var(--grid) 1px,transparent 1px);background-size:48px 48px}#crt{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:100;background:repeating-linear-gradient(to bottom,rgba(0,0,0,.22) 0px,rgba(0,0,0,.22) 1px,transparent 1px,transparent 3px);animation:drift 7s linear infinite}#crt:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(ellipse at center,transparent 55%,rgba(0,0,0,.7) 100%)}@keyframes drift{0%{background-position-y:0}to{background-position-y:3px}}#app{width:min(940px,100%)}.frame{position:relative;border:1px solid var(--edge);background:linear-gradient(180deg,#0b1018f0,#05060af0);padding:28px 30px;box-shadow:0 0 40px #00f0ff12,inset 0 0 60px #00f0ff08}.frame:before,.frame:after{content:"";position:absolute;width:14px;height:14px;border:2px solid var(--cyan)}.frame:before{top:-1px;left:-1px;border-right:0;border-bottom:0}.frame:after{bottom:-1px;right:-1px;border-left:0;border-top:0}.eyebrow{font-size:11px;letter-spacing:.42em;color:var(--cyan);opacity:.75;text-transform:uppercase}h1{font-size:clamp(30px,6vw,54px);letter-spacing:.14em;color:#eaf6ff;text-shadow:0 0 14px rgba(0,240,255,.55),0 0 44px rgba(0,240,255,.18);margin:10px 0 4px}.tagline{color:var(--dim);letter-spacing:.2em;font-size:12px}.hint{margin-top:20px;font-size:12px;letter-spacing:.16em;color:var(--dim)}.hint b{color:var(--cyan);font-weight:400}.modes{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-top:28px}@media(max-width:620px){.modes{grid-template-columns:1fr}}.mode{-webkit-appearance:none;-moz-appearance:none;appearance:none;font:inherit;color:inherit;text-align:left;cursor:pointer;padding:18px 16px;background:#00f0ff08;border:1px solid rgba(0,240,255,.18);border-left:3px solid var(--cyan);transition:background .12s linear,transform .12s ease-out,box-shadow .12s linear}.mode:hover,.mode:focus-visible{background:#00f0ff17;box-shadow:0 0 24px #00f0ff29;transform:translateY(-2px);outline:none}.mode[data-id=medium]{border-left-color:var(--amber)}.mode[data-id=hard]{border-left-color:var(--magenta)}.mode .key{color:var(--dim);font-size:11px;letter-spacing:.3em}.mode .name{font-size:22px;letter-spacing:.18em;color:#eaf6ff;margin:6px 0}.mode .meta{font-size:11px;color:var(--dim);letter-spacing:.08em;line-height:1.7}.mode .par{color:var(--cyan)}.mode[data-id=medium] .par{color:var(--amber)}.mode[data-id=hard] .par{color:var(--magenta)}.toggle{-webkit-appearance:none;-moz-appearance:none;appearance:none;font:inherit;color:var(--text);cursor:pointer;display:flex;align-items:center;gap:12px;width:100%;margin-top:22px;padding:12px 14px;text-align:left;letter-spacing:.18em;font-size:12px;background:#00f0ff08;border:1px solid rgba(0,240,255,.18);transition:background .12s linear,border-color .12s linear}.toggle:hover,.toggle:focus-visible{background:#00f0ff17;outline:none}.toggle[aria-checked=true]{border-color:var(--edge);color:#eaf6ff}.toggle .box{display:grid;place-items:center;width:20px;height:20px;border:1px solid var(--cyan);color:var(--cyan);font-size:13px;white-space:pre}.toggle[aria-checked=true] .box{background:#00f0ff29;box-shadow:0 0 12px #00f0ff59}.toggle .note{margin-left:auto;color:var(--dim);font-size:10px;letter-spacing:.24em}.status{margin-top:26px;border-top:1px solid rgba(0,240,255,.12);padding-top:14px;font-size:11px;letter-spacing:.16em;color:var(--dim);display:flex;align-items:center;gap:10px;flex-wrap:wrap}.dot{width:7px;height:7px;background:var(--amber);box-shadow:0 0 10px currentColor;animation:pulse 1.4s ease-in-out infinite}.dot[data-phase=ready]{background:var(--cyan);animation:none}.dot[data-phase=offline]{background:var(--magenta);animation:none}.dot[data-phase=disabled]{background:var(--dim);animation:none;box-shadow:none}@keyframes pulse{0%,to{opacity:1}50%{opacity:.25}}.bar{flex:1 1 160px;height:4px;min-width:120px;background:#00f0ff1a;overflow:hidden}.bar span{display:block;height:100%;background:var(--cyan);box-shadow:0 0 12px var(--cyan);transition:width .2s linear}.hud{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:22px;font-size:12px;letter-spacing:.12em}.stat{border:1px solid rgba(0,240,255,.16);padding:8px 12px;min-width:92px;background:#00f0ff08}.stat i{display:block;font-style:normal;font-size:10px;color:var(--dim);letter-spacing:.3em}.stat b{font-weight:400;font-size:18px;color:#eaf6ff}.stat[data-tone=cyan] b{color:var(--cyan)}.stat[data-tone=magenta] b{color:var(--magenta)}.stat[data-tone=amber] b{color:var(--amber)}#passage{font-size:clamp(17px,2.4vw,22px);line-height:2.05;letter-spacing:.04em;white-space:pre-wrap;word-break:break-word}#passage span{color:var(--dim);transition:color 60ms linear}#passage span.correct{color:var(--cyan);text-shadow:0 0 10px rgba(0,240,255,.4)}#passage span.wrong{color:var(--magenta);background:#ff2e9729;text-shadow:0 0 10px rgba(255,46,151,.5);border-bottom:2px solid var(--magenta)}#passage span.wrong.space{background:#ff2e976b}#passage span.cursor{background:var(--cyan);color:var(--bg);animation:blink 1s steps(2,start) infinite}@keyframes blink{50%{background:transparent;color:var(--dim)}}.verdict{font-size:clamp(34px,7vw,62px);letter-spacing:.16em;margin-bottom:4px}.verdict[data-win=true]{color:var(--cyan);text-shadow:0 0 24px rgba(0,240,255,.5)}.verdict[data-win=false]{color:var(--magenta);text-shadow:0 0 24px rgba(255,46,151,.45)}.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:12px;margin:26px 0 6px}.cell{border-left:2px solid rgba(0,240,255,.3);padding:6px 0 6px 12px}.cell i{display:block;font-style:normal;font-size:10px;letter-spacing:.3em;color:var(--dim)}.cell b{font-weight:400;font-size:26px;color:#eaf6ff}.cell small{display:block;font-size:11px;color:var(--dim);margin-top:4px;letter-spacing:.08em}@media(prefers-reduced-motion:reduce){#crt,#passage span.cursor,.dot{animation:none}.mode{transition:none}.mode:hover,.mode:focus-visible{transform:none}}
