*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}:root{--accent:#FF8A5B;--ink:#F4F5F7;--muted:#9299A5;--dim:#68707E;--line:rgba(255,255,255,.1);--cell:#191D26}html,body{margin:0;height:100%;background:#101218;color:var(--ink)}body{font-family:Inter,system-ui,sans-serif;overflow:hidden;touch-action:manipulation;background:radial-gradient(80% 80% at 50% 12%,rgba(255,138,91,.11),transparent 70%),linear-gradient(180deg,#161922,#0F1117)}button{font:inherit;color:inherit;cursor:pointer}#app{width:min(100%,560px);height:100dvh;margin:auto;padding:14px 16px calc(12px + env(safe-area-inset-bottom,0px));display:flex;flex-direction:column;gap:12px}.topbar{display:flex;align-items:center;justify-content:space-between;gap:10px}.title{text-align:center}.title b{display:block;font:700 21px 'Bricolage Grotesque',sans-serif;color:var(--accent);text-shadow:0 0 22px rgba(255,138,91,.32)}.title small,.stat span,.status small,.hint{font:10px 'Space Mono',monospace;color:var(--dim);letter-spacing:.12em;text-transform:uppercase}.stat{min-width:72px}.stat.right{text-align:right}.stat strong{display:block;font:700 25px 'Bricolage Grotesque',sans-serif}.status{display:flex;justify-content:center;gap:9px}.status span{min-width:78px;padding:8px 10px;text-align:center;border:1px solid var(--line);border-radius:11px;background:rgba(255,255,255,.035)}.status b{display:block;font:700 17px 'Space Mono',monospace}.status small{display:block;margin-top:3px;font-size:8px;letter-spacing:.1em}.stage{flex:1;min-height:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px}.prompt{height:19px;font:700 12px 'Space Mono',monospace;letter-spacing:.12em;text-transform:uppercase;color:var(--accent);text-align:center}.board{width:min(82vw,420px);aspect-ratio:1;display:grid;grid-template-columns:repeat(7,1fr);gap:6px;padding:10px;border-radius:20px;border:1px solid var(--line);background:linear-gradient(180deg,#1A1D26,#13161D);box-shadow:inset 0 1px 0 rgba(255,255,255,.06),0 22px 50px rgba(0,0,0,.45)}.cell{border:1px solid rgba(255,255,255,.07);border-radius:8px;background:var(--cell);transition:background .14s,box-shadow .14s,transform .14s}.cell.source{background:var(--accent);border-color:rgba(255,255,255,.5);box-shadow:0 0 18px rgba(255,138,91,.66),inset 0 -4px 0 rgba(0,0,0,.17);transform:scale(.95)}.cell.selected{background:#A65335;border-color:rgba(255,180,150,.7);box-shadow:inset 0 -4px 0 rgba(0,0,0,.2)}.cell.correct{animation:pop .28s ease-out}.cell.wrong{background:#FF5E72;border-color:#FF9BA8;animation:shake .28s ease-out}@keyframes pop{50%{transform:scale(.9);box-shadow:0 0 24px rgba(255,138,91,.6)}}@keyframes shake{25%{transform:translateX(-4px)}75%{transform:translateX(4px)}}.hint{height:18px;text-align:center;letter-spacing:.03em;text-transform:none;font-size:11px;color:var(--muted)}.controls{display:flex;justify-content:center;gap:8px}.button{min-height:42px;padding:0 13px;border-radius:12px;border:1px solid var(--line);background:rgba(255,255,255,.05);font-size:12.5px;font-weight:700;color:#D4D9E1}.button:hover{background:rgba(255,255,255,.11)}.button.primary{background:var(--accent);border-color:var(--accent);color:#2B130A;box-shadow:0 8px 22px rgba(255,138,91,.24)}.modal{position:fixed;inset:0;display:flex;align-items:center;justify-content:center;padding:18px;background:rgba(8,10,13,.76);backdrop-filter:blur(8px);z-index:5}.modal[hidden]{display:none}.modal-card{width:min(410px,100%);padding:26px;border:1px solid rgba(255,255,255,.13);border-radius:20px;background:linear-gradient(180deg,#1B1F29,#14171E);box-shadow:0 30px 70px rgba(0,0,0,.6);text-align:center}.modal-card h2{margin:0 0 6px;font:700 27px 'Bricolage Grotesque',sans-serif}.modal-card p{margin:8px 0;color:#B9C0CB;line-height:1.55;font-size:13.5px}.bigscore{margin:12px 0 4px;color:var(--accent);font:700 46px 'Bricolage Grotesque',sans-serif}.modal-actions{display:flex;gap:8px;margin-top:16px}.modal-actions .button{flex:1}@media(max-height:640px){#app{gap:8px}.board{width:min(70vh,360px);gap:5px;padding:8px}.status{gap:5px}.status span{padding:5px 8px}.stage{gap:6px}}@media(max-width:380px){.button{padding:0 9px;font-size:11px}.board{gap:5px;padding:8px}.cell{border-radius:6px}}
