
:root{color-scheme:dark;--bg:#080f18;--line:#2b3c4d;--ink:#e9f3f5;--muted:#869cad;--mint:#9eddd0;--lime:#d3e69c;--red:#e7969f;--amber:#eac499}*{box-sizing:border-box}body{margin:0;background:radial-gradient(ellipse at top,#1b2b3c,transparent 65%),var(--bg);color:var(--ink);font:14px system-ui,-apple-system,sans-serif}button,input,select{font:inherit}button{color:var(--ink);background:#152536;border:1px solid var(--line);border-radius:8px;min-height:44px;padding:11px 14px;cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent}button:disabled{opacity:.4;cursor:default}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,canvas:focus-visible{outline:2px solid var(--mint);outline-offset:3px}[hidden]{display:none!important}.shell{width:min(100%,720px);padding:14px 20px;margin:auto}.topbar{display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:9px;letter-spacing:1.5px;min-height:44px;margin-bottom:10px}.topbar a{color:var(--muted);text-decoration:none;min-height:44px;display:flex;align-items:center}.topbar>span{color:#829fb0}.topbar i{display:inline-block;width:5px;height:5px;background:var(--mint);border-radius:50%;margin:0 5px}.topbar>div{display:flex;gap:7px}.icon{font-size:10px;padding:7px 12px}.hud{display:grid;grid-template-columns:1.2fr 1.5fr 1fr .7fr;gap:8px}.hud>div{padding:10px 13px;border:1px solid #2e4052;border-radius:9px;background:#112030ca}.hud small,.prompt small{font-size:8px;letter-spacing:1.7px;color:var(--muted);display:block}.hud strong{font-size:23px;display:block;margin-top:4px;font-variant-numeric:tabular-nums}.hud #hp{font-size:21px;color:var(--red);letter-spacing:2px}.hud .score strong{color:var(--lime);font-size:28px}#combo{color:var(--mint)}.prompt{display:flex;align-items:center;justify-content:space-between;gap:12px;border:1px solid #355652;background:linear-gradient(105deg,#182f2e,#142131);border-radius:10px;padding:12px 17px;margin:10px 0}.prompt>div{min-width:0}.prompt strong{font-size:clamp(21px,4vw,30px);line-height:1.3;display:block;margin-top:4px;overflow-wrap:anywhere}.prompt.sentence strong{font-size:clamp(16px,3vw,22px)}#hint{color:#acc7b7;font-size:10px;letter-spacing:1px;display:block;min-height:13px;margin-top:4px}.crosshair{font:32px monospace;color:var(--mint)}.board{position:relative;width:min(100%,calc((100svh - 275px)*.8947),544px);min-width:285px;margin:auto;aspect-ratio:17/19;border:1px solid #3d5263;border-radius:13px;overflow:hidden;background:#0d1925;isolation:isolate}canvas{display:block;width:100%;height:100%;touch-action:none;user-select:none}.overlay{position:absolute;inset:0;display:grid;place-items:start center;background:linear-gradient(#0c1b2cee,#0c1923e8);padding:20px 18px;text-align:center;overflow:auto;z-index:10}.overlay>section{width:min(100%,310px);margin-block:auto}.eyebrow{font-size:8px;letter-spacing:1.8px;color:#8aabba;line-height:1.8}.runner-emblem{position:relative;width:42px;height:48px;border-radius:9px 9px 5px 5px;background:linear-gradient(145deg,#416b72,#142d3a);border:1px solid #80b4b8;margin:20px auto;transform:rotate(-7deg)}.runner-emblem i{position:absolute;height:4px;width:26px;background:var(--mint);top:11px;left:7px;box-shadow:0 0 12px #9eddd044}.runner-emblem b{position:absolute;width:12px;height:16px;background:#293f52;bottom:-10px;left:2px;box-shadow:25px 0 #293f52}h1{font-size:clamp(42px,7vw,66px);line-height:.88;letter-spacing:-2px;margin:15px 0}h1 span{color:var(--mint)}.slogan{font-size:12px;font-weight:750;letter-spacing:2px;line-height:1.7;color:#bacdd7}.intro{font-size:11px;line-height:1.7;color:#8ba6b5}.primary{display:flex;align-items:center;justify-content:space-between;width:100%;background:var(--mint);color:#0e2c30;border:0;font-weight:850;letter-spacing:2px;padding:14px 18px;transition:transform .15s,box-shadow .15s}.primary:hover{transform:translateY(-2px);box-shadow:0 5px 20px #9eddd020}#play{animation:play 3s ease-in-out infinite}.menu{display:flex;gap:5px;margin-top:8px}.menu button{flex:1;font-size:8px;letter-spacing:.4px;padding:10px 5px}.best{font-size:9px;letter-spacing:1px;color:#849fac;margin:14px 0}.best strong{color:var(--lime);font-size:18px;margin-left:9px}.controls-hint{font-size:8px;letter-spacing:1px;color:#6f8c9f}.secondary{width:100%;margin-top:8px}.fever-row{display:flex;align-items:center;gap:15px;margin:11px 0 8px}.fever-row>div{flex:1}.fever-row small{font-size:8px;letter-spacing:1px;color:#9caeaf}.fever-track{height:5px;background:#23374a;margin-top:5px;border-radius:4px;overflow:hidden}.fever-track i{display:block;height:100%;background:var(--lime);width:0;transition:width .1s}#fever{font-size:9px;padding:10px 14px;color:var(--lime)}#fever.ready{border-color:var(--lime)}.bottom-row{display:flex;align-items:center;justify-content:space-between;gap:12px}.bottom-row p{font-size:9px;color:#8da4b5;line-height:1.6;text-align:right}#direction-controls{display:flex;gap:5px}#direction-controls button{min-width:44px;font-size:20px;padding:7px 10px}.board.fever{border-color:var(--lime);box-shadow:0 0 15px #d3e69c15}.board.shake{animation:shake .18s}#feedback{position:absolute;top:7%;left:50%;transform:translateX(-50%);width:90%;text-align:center;pointer-events:none;color:var(--lime);font-size:clamp(12px,2vw,18px);font-weight:800;text-shadow:0 2px 8px #000;background:#071622c9;border-radius:8px;padding:9px 12px;z-index:5;opacity:0;white-space:pre-line}#feedback.show{animation:feedback 1.6s both}#feedback.bad{color:#ffd0d5}h2{font-size:28px;margin:16px 0}.end-score{display:block;font-size:46px;color:var(--lime);margin:10px 0 16px}.end-grid{display:grid;grid-template-columns:1fr 1fr;gap:6px;font-size:8px;color:#91aab9;margin-bottom:13px}.end-grid>div{border:1px solid #304b60;border-radius:7px;padding:10px 4px}.end-grid strong{display:block;font-size:22px;color:#e4f2f5;margin-top:5px}#boss{display:grid;grid-template-columns:1fr auto;gap:4px 12px;border:1px solid #79556a;background:#302336;border-radius:9px;padding:8px 13px;margin-bottom:9px;animation:boss .3s}#boss>span{font-size:9px;letter-spacing:1px;color:#d7b9d3}#boss small{grid-column:1/-1;font-size:9px;color:#bdacc5}.boss-track{grid-column:1/-1;height:4px;background:#54324a}.boss-track i{display:block;height:100%;background:#d0a2c0;width:100%;transition:width .1s}#notice{font-size:11px;color:#e1b793;line-height:1.6}#notice:empty{display:none}footer{display:flex;align-items:center;justify-content:space-between;padding-top:8px;font-size:7px;letter-spacing:1px;color:#5c7a8d}dialog{width:min(94vw,680px);max-height:88svh;background:#102033;border:1px solid #3b576b;border-radius:14px;padding:22px;color:var(--ink);overflow:auto}dialog::backdrop{background:#030a12e5}dialog header{display:flex;align-items:center;justify-content:space-between;gap:12px}dialog h2{font-size:23px;margin:0 0 18px}#book-tools{display:flex;gap:8px;margin:8px 0 16px}#book-tools input{flex:1;min-width:0}input,select{background:#183047;border:1px solid #37566c;border-radius:7px;color:#e6f1f6;padding:12px}.word-grid{display:grid;grid-template-columns:1fr 1fr;gap:9px}.word-card{text-align:left;padding:13px;min-width:0}.word-card strong{display:block;font-size:18px;color:var(--mint);overflow-wrap:anywhere}.word-card span{display:block;font-size:12px;color:#a7bac7;margin-top:5px}.word-card .stars{color:var(--lime);letter-spacing:2px}.word-card small{font-size:10px;color:#7c9aad;display:block;margin-top:8px}.stat-grid{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin:15px 0}.stat-grid>div{padding:15px;background:#193047;border:1px solid #334e64;border-radius:8px;color:#9bb4c3;font-size:9px}.stat-grid strong{display:block;color:var(--lime);font-size:27px;margin-top:7px}.detail-word{font-size:30px;color:var(--mint);margin-bottom:8px}.example{border:1px solid #365568;border-radius:9px;padding:18px;background:#172d42;line-height:1.7;margin:18px 0}.example small{color:#8ba4b7}.empty{color:#96aebb;font-size:12px;line-height:1.8}.review-row{display:flex;align-items:center;justify-content:space-between;gap:12px;background:#193047;border:1px solid #304c60;border-radius:8px;padding:14px;margin-top:9px}.review-row strong{display:block;color:var(--mint);font-size:18px}.review-row span{display:block;color:#a9beca;font-size:12px;margin-top:5px}.review-row b{color:var(--amber);font-size:22px}.setting{display:flex;align-items:center;justify-content:space-between;padding:16px 0;border-bottom:1px solid #2c455c;gap:12px}.setting p{color:#8ba7b8;font-size:12px;margin:5px 0}.setting input{width:23px;height:23px;accent-color:var(--mint)}.reduced-motion *{animation:none!important;transition:none!important}@keyframes shake{25%{translate:1px 0}75%{translate:-1px 1px}}@keyframes play{50%{box-shadow:0 0 20px #9eddd020}}@keyframes feedback{0%{opacity:0}15%,75%{opacity:1}100%{opacity:0}}@keyframes boss{from{opacity:0;translate:0 -5px}to{opacity:1}}@media(max-width:600px){.shell{padding:8px 9px max(10px,env(safe-area-inset-bottom))}.topbar{margin:0;font-size:8px}.topbar>span{display:none}.hud{gap:5px}.hud>div{padding:8px}.hud strong{font-size:19px}.hud #hp{font-size:17px;letter-spacing:1px}.hud .score strong{font-size:23px}.hud small{font-size:7px;letter-spacing:1px}.prompt{margin:7px 0;padding:9px 12px}.prompt strong{font-size:22px}.prompt.sentence strong{font-size:16px}.board{width:min(100%,calc((100svh - 260px)*.8947));min-width:260px;max-width:440px}.overlay{padding:12px}.runner-emblem{display:none}.overlay h1{font-size:42px;margin:10px 0}.slogan{font-size:10px;margin:8px 0}.intro{font-size:9px;margin:8px 0 10px}.menu button{font-size:7px;letter-spacing:0;padding:10px 3px}.best{margin:9px 0}.controls-hint{font-size:7px}.primary{padding:12px 16px}.bottom-row{gap:6px}#items{font-size:8px}.fever-row{gap:10px;margin:7px 0}.end-score{font-size:36px;margin:8px}.end-grid>div{padding:7px}.end-grid strong{font-size:19px}.overlay h2{font-size:24px;margin:9px 0}dialog{padding:16px}.word-card strong{font-size:16px}.word-card .stars{letter-spacing:1px}.topbar .icon{min-height:40px}#boss{padding:6px 10px;margin-bottom:6px}body.boss-active .board{width:min(100%,calc((100svh - 325px)*.8947));min-width:250px}.board{flex-shrink:0}}@media(max-height:700px){.overlay .runner-emblem{display:none}.intro{display:none}.overlay h1{font-size:40px;margin:10px}.slogan{margin:8px}.controls-hint{display:none}.best{margin:8px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important}}

.reduced-motion #feedback.show{animation:feedback 1.6s both!important}.board.fever:after{content:"";position:absolute;inset:0;pointer-events:none;border:2px solid #d3e69c35;border-radius:12px;animation:fever-border 2s ease-in-out infinite}@keyframes fever-border{50%{border-color:#d3e69c80}}

.bomb-row{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:7px 0}.bomb-row span{font-size:9px;color:#b6a493}.bomb-row button{min-height:44px;font-size:10px;color:#efc398;white-space:nowrap}.bomb-row button.ready{border-color:#b88757;background:#342a24}.board{width:min(100%,calc((100svh - 325px)*.8947),544px)}@media(max-width:600px){.board{width:min(100%,calc((100svh - 310px)*.8947))}body.boss-active .board{width:min(100%,calc((100svh - 375px)*.8947))}.bomb-row span{font-size:8px}}

.difficulty-picker{display:flex;gap:6px;margin:10px 0 5px}.difficulty-picker button{flex:1;min-height:44px;padding:8px;font-size:12px}.difficulty-picker button.selected{background:#274840;border-color:#9eddd0;color:#c9f3df}.difficulty-description{font-size:9px;color:#a9bcc5;margin:5px 0 10px;line-height:1.5}

.word-source{display:flex;align-items:center;gap:6px;margin:8px 0;flex-wrap:wrap}.word-source label{font-size:10px;color:#9bb6c2}.word-source select{flex:1;padding:8px;font-size:11px;min-width:110px;min-height:44px}.word-source button{font-size:10px;padding:8px}.lesson-progress{margin:7px 0;padding:8px 11px;background:#142331;border:1px solid #2e4555;border-radius:8px}.lesson-progress strong{font-size:11px;color:#c6e5bc}.lesson-progress span{display:block;font-size:10px;color:#a2bac7;line-height:1.5;margin-top:4px;max-height:45px;overflow:auto;overflow-wrap:anywhere}.custom-fields{display:grid;grid-template-columns:1fr 1fr;gap:10px}#custom-tools label{display:block;font-size:12px;color:#a8c1cf}#custom-tools input{display:block;width:100%;margin:6px 0 12px;min-width:0}#custom-tools p{font-size:12px;line-height:1.6}#custom-status{color:#cee598}.board{width:min(100%,calc((100svh - 400px)*.8947),544px)}@media(max-width:600px){.board{width:min(100%,calc((100svh - 385px)*.8947))}body.boss-active .board{width:min(100%,calc((100svh - 450px)*.8947))}.custom-fields{grid-template-columns:1fr}.overlay>section{margin-block:0}}

#lesson-preview-list{display:grid;gap:7px;margin:12px 0;text-align:left;max-height:210px;overflow:auto}.lesson-preview-word{padding:10px 12px;border:1px solid #385263;border-radius:8px;background:#172c3c}.lesson-preview-word strong{display:block;font-size:18px;color:#afe3d4}.lesson-preview-word span{display:block;font-size:13px;margin-top:4px;color:#d0e0e8}#lesson-screen h2{font-size:23px}#lesson-screen{padding-bottom:6px}

.stage-popup{position:absolute;inset:0;z-index:30;display:grid;place-items:center;background:#071320ec;text-align:center;padding:18px;pointer-events:auto}.stage-popup>div{width:min(100%,280px);padding:26px 18px;border:1px solid #7bb3a0;border-radius:16px;background:linear-gradient(145deg,#23463e,#15283a);box-shadow:0 12px 45px #0005;animation:stage-enter .22s ease-out}.stage-popup p{font-size:11px;letter-spacing:3px;color:#b5d9c8;margin:0 0 12px}.stage-popup h2{font-size:32px;margin:8px 0 18px}.stage-popup strong{font-size:24px;letter-spacing:3px;color:#d3e69c}@keyframes stage-enter{from{opacity:0;transform:translateY(8px) scale(.97)}to{opacity:1;transform:none}}

button.lesson-preview-word{width:100%;text-align:left;cursor:pointer;transition:background .15s,border-color .15s}button.lesson-preview-word:hover{border-color:#88c2b2;background:#203d46}button.lesson-preview-word.heard{background:#304c32;border-color:#c3da87}button.lesson-preview-word.heard strong{color:#e3f5ae}.pronunciation-label{display:block;color:#93bcb8;font-size:10px;margin-top:7px}.lesson-preview-word.heard .pronunciation-label{color:#d3e69c}
