:root{--bg:#f6f4ef;--ink:#1f1d1a;--muted:#7a746b;--line:#e2ddd3;--card:#fff;--accent:#ff6b35;--ok:#2a9d8f;--bad:#d62828;color:var(--ink);background:var(--bg);font-family:system-ui,-apple-system,Segoe UI,sans-serif}*{box-sizing:border-box}body{min-height:100dvh;margin:0}#app{flex-direction:column;gap:1.25rem;max-width:720px;margin:0 auto;padding:2.5rem 1.25rem;display:flex}.title{letter-spacing:-.02em;margin:0;font-size:clamp(2rem,6vw,3rem)}.subtitle{color:var(--muted);margin:0}.cards,.levels{gap:.75rem;display:grid}.cards{grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}.summary,.badge{color:var(--muted);margin:0;font-size:.9rem}.badge{color:color-mix(in srgb, var(--accent) 65%, #000);font-weight:600}.card,.level,.btn{font:inherit;cursor:pointer;border:1px solid var(--line);background:var(--card);color:var(--ink);border-radius:14px;transition:transform .12s,border-color .12s}.card{text-align:left;flex-direction:column;gap:.25rem;padding:1.25rem;display:flex}.card span{color:var(--muted);font-size:.9rem}.level{flex-direction:column;align-items:center;gap:.2rem;padding:.9rem .5rem;display:flex}.level strong{font-size:1.2rem}.level span{color:var(--muted);font-variant-numeric:tabular-nums;font-size:.85rem}.level.locked,.level.locked:hover{opacity:.45;cursor:not-allowed;border-color:var(--line);transform:none}.card:hover,.level:hover,.btn:hover{border-color:var(--accent);transform:translateY(-2px)}.link{font:inherit;color:var(--muted);cursor:pointer;background:0 0;border:none;align-self:flex-start;padding:0}.hud{color:var(--muted);justify-content:space-between;align-items:center;display:flex}.timer{font-variant-numeric:tabular-nums;color:var(--ink);font-size:1.75rem;font-weight:700}.progress{color:var(--muted);margin:0;font-size:.9rem}.words{flex-wrap:wrap;gap:.5rem .9rem;margin:0;padding:0;font-size:clamp(1.4rem,4vw,2rem);font-weight:600;list-style:none;display:flex}.word.todo{color:var(--muted)}.word.current{color:var(--ink)}.word.done{color:var(--ok);opacity:.7;text-decoration:line-through}.word.current.enter{animation:.26s ease-out rise}.ch.todo{color:var(--accent)}.ch.ok{color:var(--ok)}.ch.bad{color:var(--bad);background:color-mix(in srgb, var(--bad) 16%, transparent);border-radius:3px;-webkit-text-decoration:underline wavy;text-decoration:underline wavy}.timer.low{color:var(--bad);animation:1s ease-in-out infinite pulse}.entry.error{animation:.26s ease-in-out shake}#app.enter{animation:.24s ease-out fade}@keyframes fade{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}@keyframes rise{0%{opacity:.4;transform:translateY(8px)}to{opacity:1;transform:none}}@keyframes shake{20%{transform:translate(-6px)}40%{transform:translate(6px)}60%{transform:translate(-4px)}80%{transform:translate(3px)}}@keyframes pulse{50%{opacity:.55}}@media (width<=520px){#app{gap:1rem;padding:1.25rem 1rem}.timer{font-size:1.4rem}.card{padding:1rem}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition:none!important;animation:none!important}}.entry{width:100%;font:inherit;border:2px solid var(--line);background:var(--card);color:var(--ink);border-radius:14px;outline:none;padding:.9rem 1rem;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:clamp(1.3rem,4vw,1.8rem)}.entry:focus{border-color:var(--accent)}.entry.error{border-color:var(--bad);background:#fdecec}.feedback{min-height:1.4em;color:var(--muted);margin:0}.stats{grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:.75rem;margin:0;display:grid}.stats div{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:1rem}.stats dt{color:var(--muted);font-size:.9rem}.stats dd{margin:.25rem 0 0;font-size:1.5rem;font-weight:700}.win{color:var(--ok)}.lose{color:var(--bad)}.actions{flex-wrap:wrap;gap:.75rem;display:flex}.btn{padding:.8rem 1.3rem;font-weight:600}.btn.primary{background:var(--accent);border-color:var(--accent);color:#fff}.btn.ghost{background:0 0}.site-footer{text-align:center;padding:1.5rem 1rem 2rem;font-size:.85rem}.site-footer a{color:var(--muted)}body{flex-direction:column;display:flex}#app{flex:1;width:100%}.word{white-space:pre-wrap;overflow-wrap:anywhere}.toggle{color:var(--muted);cursor:pointer;align-items:center;gap:.6rem;font-size:.95rem;display:flex}.toggle input{accent-color:var(--accent);width:1.1rem;height:1.1rem}.levels{grid-template-columns:repeat(auto-fill,minmax(96px,1fr))}.level{border-left:3px solid hsl(var(--lh,16) 80% 55%)}.particle{pointer-events:none;z-index:20;border-radius:50%;position:fixed}.flash{pointer-events:none;z-index:15;position:fixed;inset:0}.intro{pointer-events:none;z-index:30;color:var(--accent);text-shadow:0 2px 24px color-mix(in srgb, var(--accent) 40%, transparent);flex-direction:column;justify-content:center;align-items:center;gap:.25rem;display:flex;position:fixed;inset:0}.intro strong{letter-spacing:-.03em;font-size:clamp(2.5rem,12vw,5rem)}.intro span{letter-spacing:.3em;text-transform:uppercase;font-size:1.1rem}.combo{min-width:3rem;color:var(--accent);font-variant-numeric:tabular-nums;font-weight:700}.combo.bump{animation:.16s ease-out bump}@keyframes bump{0%{transform:scale(1.5)}to{transform:none}}body:before{content:"";z-index:-1;pointer-events:none;opacity:0;background:radial-gradient(ellipse at 50% 120%, color-mix(in srgb, var(--accent) 30%, transparent), transparent 65%);transition:opacity .6s;position:fixed;inset:0}:root[data-tier="2"] body:before{opacity:.5}:root[data-tier="3"] body:before{opacity:.8;animation:3s ease-in-out infinite glow}:root[data-tier="4"] body:before{opacity:1;animation:1.6s ease-in-out infinite glow}:root[data-tier="1"] .word.current .ch.todo,:root[data-tier="2"] .word.current .ch.todo,:root[data-tier="3"] .word.current .ch.todo,:root[data-tier="4"] .word.current .ch.todo{text-shadow:0 0 14px color-mix(in srgb, var(--accent) 55%, transparent)}:root[data-tier="4"] .entry:focus{box-shadow:0 0 0 4px color-mix(in srgb, var(--accent) 25%, transparent)}@keyframes glow{50%{filter:brightness(1.25)}}.card.daily{background:linear-gradient(135deg, #fffaf0, var(--card));border:2px solid #f4c025}.card.daily strong{font-size:1.2rem}.share{flex-direction:column;align-items:flex-start;gap:.6rem;display:flex}.share pre{background:var(--card);border:1px solid var(--line);width:100%;font:inherit;white-space:pre-wrap;border-radius:14px;margin:0;padding:1rem}.tabs{gap:.5rem;display:flex}.tab{font:inherit;cursor:pointer;border:1px solid var(--line);background:var(--card);color:var(--muted);border-radius:999px;padding:.55rem 1rem}.tab.active{background:var(--ink);border-color:var(--ink);color:#fff}.pickers{flex-wrap:wrap;gap:.5rem;display:flex}.pickers select,.pseudo{font:inherit;border:1px solid var(--line);background:var(--card);color:var(--ink);border-radius:10px;padding:.6rem .8rem}.pseudo-form{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.pseudo{flex:14rem;font-size:1rem}.form-error{color:var(--bad);width:100%;margin:0}.rank{flex-direction:column;align-items:flex-start;gap:.5rem;display:flex}.board{border-collapse:collapse;font-variant-numeric:tabular-nums;width:100%}.board th{text-align:left;color:var(--muted);padding:.4rem .5rem;font-size:.85rem;font-weight:500}.board td{border-top:1px solid var(--line);overflow-wrap:anywhere;padding:.55rem .5rem}.board tr.mine td{background:color-mix(in srgb, var(--accent) 12%, transparent);font-weight:600}
