:root{color-scheme:dark;--bg: #07040d;--ink: #fff6ea;--orange: #ff7a18;--gold: #ffc14a;--green: #7cff3a;--purple: #2a1240;--panel: #140a22ee;font-family:"Press Start 2P",Courier New,ui-monospace,monospace}*{box-sizing:border-box}html,body{margin:0;min-height:100%;background:radial-gradient(circle at 50% 20%,#3a146044,transparent 42%),var(--bg);color:var(--ink)}body{min-height:100vh;display:grid;place-items:center;overflow:hidden}button,input{font-family:inherit}#stage{position:relative;container-type:inline-size;box-shadow:0 0 0 4px #1a0d24,0 0 0 8px var(--orange),0 0 48px #ff7a1855}canvas{display:block;width:320px;height:180px;image-rendering:pixelated;image-rendering:crisp-edges;background:#10061a}#hud,#banner,#toast,#speech,#bossbar{pointer-events:none}#hud{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;grid-template-columns:1fr auto 1fr;align-content:start;padding:8px 10px;padding:2.2cqi 2.4cqi;text-shadow:2px 2px 0 #14080f;font-size:12px;font-size:2.1cqi;line-height:1.55}#hud-left{justify-self:start}#hud-mid{justify-self:center;color:var(--gold)}#hud-right{justify-self:end;text-align:right}#hearts{display:flex;gap:.7cqi;height:2.4cqi}#hearts i{width:2.1cqi;height:2.1cqi;background:#3a2044;clip-path:polygon(50% 92%,8% 42%,18% 12%,50% 32%,82% 12%,92% 42%)}#hearts i.on{background:var(--orange);filter:drop-shadow(0 0 4px #ff7a18)}#combo{color:var(--green);margin-top:.6cqi}#bossbar{position:absolute;left:50%;bottom:5%;transform:translate(-50%);width:48%;text-align:center;font-size:1.7cqi;color:var(--gold);text-shadow:2px 2px 0 #14080f}#bossbar.enraged{color:#ff5a6a}.track{margin-top:.8cqi;height:1.5cqi;background:#14080f;border:2px solid var(--ink)}#bossfill{height:100%;width:100%;background:linear-gradient(90deg,var(--orange),#e10600)}#banner{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;align-content:center;justify-items:center;text-align:center;padding:8cqi;text-shadow:3px 3px 0 #14080f}#banner-kicker{color:var(--green);font-size:1.8cqi;margin-bottom:1.4cqi}#banner-title{color:var(--gold);font-size:3.3cqi;line-height:1.45}#banner-sub{color:var(--ink);font-size:1.5cqi;margin-top:1.6cqi;line-height:1.6;max-width:28ch}#toast{position:absolute;left:50%;top:18%;transform:translate(-50%);max-width:86%;background:#14081ff2;color:var(--gold);border:3px solid var(--gold);padding:1.4cqi 1.6cqi;font-size:1.55cqi;text-align:center;line-height:1.6;z-index:3}#speech{position:absolute;transform:translate(-50%,-130%);background:var(--ink);color:#1a0d24;border:3px solid #1a0d24;padding:1cqi 1.2cqi;font-size:1.45cqi;max-width:42%;text-align:center;line-height:1.5;z-index:3}#mute{position:fixed;top:14px;right:14px;z-index:8;background:#1a0d24;color:var(--green);border:3px solid var(--green);padding:10px 12px;cursor:pointer;font-size:10px}#touch{display:none;position:fixed;left:0;right:0;bottom:0;z-index:6;justify-content:space-between;padding:12px 16px 18px;pointer-events:none}body.show-touch #touch{display:flex}#touch button{pointer-events:auto;touch-action:none;width:78px;height:78px;border:4px solid #1a0d24;background:#ff7a18cc;color:#1a0d24;font-size:18px;box-shadow:0 4px #7a2e00}#touch .pad{display:flex;gap:10px}#touch button:active{transform:translateY(4px);box-shadow:none}#overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:5;display:grid;place-items:center;padding:18px;overflow:auto;background:#05020a6b}#overlay.hidden{display:none}.panel{width:min(520px,100%);max-height:calc(100vh - 36px);overflow:auto;background:var(--panel);border:4px solid var(--orange);box-shadow:8px 8px #2a1240,0 0 40px #ff7a1840;padding:22px 18px 16px}.hidden{display:none!important}.eyebrow{margin:0 0 10px;color:var(--green);font-size:10px}h1,h2,h3{margin:0 0 12px;line-height:1.45}h1{font-size:26px;color:var(--gold);text-shadow:4px 4px 0 #3a1460}h1 span{color:var(--green)}h2{font-size:16px;color:var(--gold)}h3{font-size:10px;color:var(--orange)}.lede,.fine,li{line-height:1.7}.lede{font-size:11px;margin:0 0 14px;white-space:pre-line}.fine{font-size:9px;color:#d7c6ea}.fine.warn{color:var(--gold)}#wallet-status:empty{display:none}#panel-menu{width:min(360px,100%);padding:32px 24px 22px;text-align:center}#panel-menu h1{margin-bottom:22px;font-size:28px}#panel-menu label.name{margin-bottom:16px}#panel-menu input{text-align:center}#panel-menu .quiet{margin-bottom:4px}#panel-menu .quiet button{background:transparent;border-color:transparent;box-shadow:none;color:#cbb6de;font-size:8px;padding:8px 4px}#panel-menu .quiet button:hover{color:var(--ink)}#panel-menu .quiet button:active{transform:none}#panel-menu #menu-best:empty{display:none}#panel-menu #menu-best{margin:0 0 16px}#wallet-toggle{width:100%;background:transparent;color:var(--gold);border-color:#3a2158;box-shadow:none;font-size:8px;padding:10px}#wallet-toggle.on{color:var(--green);border-color:var(--green)}#wallet-panel{margin-top:10px;text-align:left}label.name{display:grid;gap:8px;font-size:10px;color:var(--gold);margin-bottom:12px}input{background:#07040d;color:var(--ink);border:3px solid var(--purple);padding:12px;font-size:14px;outline:none}input:focus{border-color:var(--green)}button{background:#3a2158;color:var(--ink);border:3px solid #14080f;box-shadow:0 4px #14080f;padding:12px 10px;cursor:pointer;font-size:11px}button:hover{filter:brightness(1.08)}button:active{transform:translateY(4px);box-shadow:none}button.go{width:100%;background:var(--orange);color:#1a0d08;margin-bottom:10px}.row-btns{display:flex;gap:8px;margin-bottom:10px}.row-btns button{flex:1}.wallet-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:10px}.wallet-grid button{font-size:8px;padding:10px 6px}.wallet-grid button.installed{box-shadow:0 4px #14080f,inset 0 0 0 2px var(--green)}ul{margin:0 0 14px;padding-left:18px;font-size:10px}li{margin:0 0 8px}.split{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:12px}.rowline,.trophy,.empty{font-size:9px;line-height:1.6;margin:0 0 8px}.rowline{display:flex;justify-content:space-between;gap:8px}.trophy{border:2px solid #3a2158;padding:8px}.trophy.on{border-color:var(--green);color:var(--green)}.trophy b{display:block;margin-bottom:4px}.parade{font-size:20px;letter-spacing:4px;margin:0 0 8px}@media(max-width:720px){.split{grid-template-columns:1fr}h1{font-size:18px}#panel-menu h1{font-size:22px}}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}}
