:root{color-scheme:dark;--bg:#10121f;--panel:#1b2033;--purple:#7c5cff;--green:#52e08a;--red:#ff5263;--text:#f4f4f8;--muted:#9ba3bd;--gold:#ffd166}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font-family:Consolas,'Courier New',monospace;touch-action:manipulation;user-select:none;background-image:radial-gradient(circle at 18% 24%,#7c5cff22 0,transparent 35%),radial-gradient(circle at 90% 70%,#52e08a0a 0,transparent 30%)}body:before{content:'';position:fixed;inset:0;pointer-events:none;background-image:radial-gradient(#9ba3bd55 1px,transparent 1px);background-size:67px 83px;animation:stars 25s linear infinite;opacity:.35}.arcade{position:relative;max-width:480px;min-height:100svh;margin:auto;padding:22px 24px max(16px,env(safe-area-inset-bottom));display:flex;flex-direction:column}header{display:flex;align-items:center;justify-content:space-between;margin-bottom:32px}.brand{color:var(--gold);font-weight:900;font-size:23px;text-decoration:none}.brand span{font-size:11px;color:var(--muted);letter-spacing:2px}button{font:700 13px Consolas,monospace;cursor:pointer;border:0;color:var(--text);touch-action:manipulation;transition:transform .12s,background .12s}button:active{transform:translateY(3px)}button:focus-visible,a:focus-visible,input:focus-visible{outline:3px solid var(--gold);outline-offset:4px}.sound{background:var(--panel);padding:10px;border:1px solid #363d58;font-size:11px}.screen{flex:1;animation:enter .4s steps(6);display:flex;flex-direction:column;justify-content:center}[hidden]{display:none!important}.eyebrow{color:var(--gold);font-size:10px;letter-spacing:2px;font-weight:bold}h1{font-size:clamp(40px,11vw,59px);line-height:1.12;letter-spacing:-3px;margin:20px 0;text-shadow:4px 4px 0 #070915;font-weight:900}h1 span,h2 span{color:var(--purple)}h2{font-size:29px;line-height:1.35;margin:20px 0;letter-spacing:-1px}.subtitle{font:14px/1.8 Consolas,monospace;color:var(--muted);margin:0 0 24px}.hero{text-align:center}.preview{height:190px;display:flex;justify-content:center;align-items:center;margin-bottom:18px}canvas{image-rendering:pixelated;image-rendering:crisp-edges;width:100%;display:block}.preview canvas{max-width:330px}.primary{width:100%;padding:19px 17px;background:var(--purple);box-shadow:0 5px 0 #49339a,inset 0 2px 0 #a18bff;letter-spacing:1px;display:flex;justify-content:space-between;align-items:center}.primary:hover{background:#8d71ff}.footnote{font-size:11px;color:var(--muted);line-height:1.7;text-align:center;margin-top:20px}.edition{font-size:10px;color:#626b89;margin-top:24px;letter-spacing:2px}footer{display:flex;justify-content:center;gap:16px;color:#626b89;font-size:9px;letter-spacing:1px;margin-top:28px}footer span{color:var(--purple)}label,.answer-label{font-size:11px;letter-spacing:2px;color:var(--muted)}.input-wrap{position:relative;margin-top:12px}input{width:100%;background:var(--panel);border:2px solid #414968;color:white;font:24px Consolas,monospace;padding:18px 65px 18px 16px;user-select:text;border-radius:0}#counter{position:absolute;right:15px;top:24px;color:var(--muted);font-size:12px}#error{min-height:40px;color:var(--red);font-size:12px;line-height:1.6}.handoff{text-align:center}.transfer{font-size:100px;color:var(--gold);margin-bottom:30px;animation:float 2s steps(8) infinite}.handoff .primary{margin-top:25px}.game-heading{display:flex;justify-content:space-between;align-items:center}.game-heading h2{font-size:19px;margin:10px 0}.game-heading .eyebrow{font-size:8px;letter-spacing:1px}.lives{text-align:center}.lives strong{display:block;font-size:27px;color:var(--gold)}.lives span{font-size:8px;color:var(--muted)}.hearts{font-size:19px;letter-spacing:5px;color:var(--red);margin-top:12px}.hearts .empty{color:#353c55}.play{justify-content:flex-start}.stage{position:relative;margin:8px 0 18px;background:linear-gradient(180deg,#15192a00,#1b203388);border-bottom:2px solid #353c55;flex:1;min-height:150px;max-height:300px;display:flex;align-items:center;justify-content:center}.stage canvas{max-height:100%;object-fit:contain}.stage-label{position:absolute;bottom:8px;left:10px;font-size:7px;letter-spacing:1px;color:#626b89}#scene-title{position:absolute;font-weight:900;font-size:35px;text-shadow:3px 3px #10121f;color:var(--gold);text-align:center}.slots{display:flex;gap:4px;justify-content:center}.slot{flex:1;max-width:40px;min-width:0;height:43px;background:var(--panel);border-bottom:3px solid #5c4b99;display:flex;align-items:center;justify-content:center;font-weight:900;font-size:clamp(15px,4vw,23px)}.slot.revealed{color:var(--green);border-color:var(--green);animation:reveal .3s steps(4)}.slots.won .slot{background:#52e08a22;box-shadow:0 0 12px #52e08a33}.feedback{text-align:center;font-size:11px;color:var(--muted);min-height:27px;line-height:1.5;margin:14px 0 8px}.keyboard{display:grid;grid-template-columns:repeat(7,1fr);gap:6px}.key{height:44px;background:#252b42;box-shadow:0 3px #090c17,inset 0 1px #424b69;font-size:17px}.key:last-child{grid-column:4}.key.correct{background:#24543f;color:var(--green)}.key.wrong{background:#562d3c;color:var(--red)}.key:disabled{cursor:default}.overlay{position:fixed;inset:0;background:#090b16d9;backdrop-filter:blur(5px);display:flex;align-items:center;justify-content:center;padding:24px;z-index:5}.result-card{width:100%;max-width:400px;padding:30px 24px;background:var(--panel);border:2px solid #514276;box-shadow:8px 8px #070915;text-align:center;animation:enter .3s steps(5)}#result-icon{font-size:45px;color:var(--gold)}.result-card h2{font-size:24px}.result-card p{color:var(--muted);font-size:12px;line-height:1.7}#answer{display:block;color:var(--gold);font-size:clamp(18px,5vw,28px);margin:12px 0;overflow-wrap:anywhere}.secondary{margin-top:14px;padding:15px;width:100%;background:transparent;border:1px solid #454d69}.shake{animation:shake .25s steps(5)}.losing .stage{filter:brightness(.75)}@keyframes enter{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}@keyframes reveal{from{transform:scale(.5)}to{transform:scale(1)}}@keyframes float{50%{transform:translateY(-8px)}}@keyframes stars{to{background-position:0 83px}}@keyframes shake{25%,75%{transform:translateX(-4px)}50%{transform:translateX(4px)}}@media(max-height:740px){.arcade{padding-top:14px}header{margin-bottom:18px}.preview{height:145px}h1{margin:12px 0}.subtitle{margin-bottom:16px}.stage{max-height:210px;margin-bottom:12px}.key{height:37px}.feedback{margin:10px 0 6px}footer{margin-top:18px}}@media(max-width:360px){.arcade{padding-left:16px;padding-right:16px}.keyboard{gap:5px}.slot{height:35px}.game-heading h2{font-size:16px}}@media(prefers-reduced-motion:reduce){*,*:before{animation:none!important;transition:none!important}}
