:root{--bg:#05040a;--panel:rgba(10,13,24,.88);--ink:#f0f7ff;--dim:#94a0b8;--cyan:#6ff2ff;--green:#7cffb8;--pink:#ff5ba8;--gold:#ffc657;--line:rgba(111,242,255,.32)}
*{box-sizing:border-box}html,body{margin:0;min-height:100%;background:var(--bg);color:var(--ink);font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;overscroll-behavior-y:auto;touch-action:pan-y}body{background:radial-gradient(circle at 25% 10%,rgba(255,91,168,.18),transparent 30%),radial-gradient(circle at 75% 80%,rgba(111,242,255,.14),transparent 28%),linear-gradient(#070713,#030307);padding-bottom:calc(88px + env(safe-area-inset-bottom))}body:after{content:"";position:fixed;inset:0;pointer-events:none;background:repeating-linear-gradient(0deg,rgba(255,255,255,.025) 0 1px,transparent 1px 4px)}
.shell{width:min(1180px,100%);min-height:100svh;margin:auto;padding:12px;display:grid;grid-template-columns:minmax(0,1fr) 250px;grid-template-rows:auto 1fr auto;gap:12px}.mast,.hud,.notes,.panel{border:1px solid var(--line);background:var(--panel);box-shadow:0 0 30px rgba(111,242,255,.09),inset 0 0 0 1px rgba(255,255,255,.035);backdrop-filter:blur(8px)}.mast{grid-column:1/-1;display:flex;align-items:center;justify-content:space-between;gap:14px;padding:12px 14px}.mast h1{margin:0;color:var(--cyan);font-size:clamp(26px,6vw,50px);letter-spacing:.04em;text-shadow:0 0 18px rgba(111,242,255,.65)}.mast p{margin:2px 0 0;color:var(--dim);font-size:13px}.mast a{color:var(--green);text-decoration:none}.stage{position:relative;min-height:0;display:flex;align-items:center;justify-content:center;overflow:hidden;border:1px solid rgba(255,255,255,.08);background:#03040a}canvas{display:block;width:100%;max-height:calc(100svh - 130px);aspect-ratio:900/680;touch-action:none}.hud{padding:14px;display:grid;align-content:start;gap:10px}.hud div{display:flex;justify-content:space-between;gap:10px;padding:10px;background:rgba(0,0,0,.18);border-bottom:1px solid rgba(255,255,255,.08)}.hud span{color:var(--dim);font-size:12px;text-transform:uppercase}.hud strong{color:var(--gold)}button{font:inherit;color:var(--ink);background:#121625;border:1px solid rgba(111,242,255,.55);padding:10px 12px;cursor:pointer;box-shadow:inset 3px 0 var(--cyan)}button:hover,button:focus-visible{outline:none;border-color:var(--green);background:#1a2033}.panel{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:min(620px,92%);max-height:min(76svh,560px);overflow:auto;-webkit-overflow-scrolling:touch;padding:18px;z-index:3}.panel h2{margin:.2rem 0 .75rem;color:var(--gold);font-size:clamp(22px,6vw,38px)}.panel p,.panel li{line-height:1.45;color:#dce7f5}.panel p{margin:.55rem 0}.panel ul{padding-left:1.1rem;margin:.6rem 0}.kicker{color:var(--pink)!important;font-size:12px;letter-spacing:.14em}.hidden{display:none!important}.msg{position:absolute;left:12px;right:12px;bottom:12px;min-height:34px;padding:8px;text-align:center;background:rgba(0,0,0,.45);color:var(--gold);pointer-events:none;text-shadow:0 0 12px #000}.notes{grid-column:1/-1;padding:12px 14px;color:var(--dim);font-size:13px;line-height:1.5}.notes h2{margin:0 0 6px;color:var(--pink);font-size:13px;text-transform:uppercase;letter-spacing:.12em}.notes p{margin:.35rem 0}.notes b{color:var(--gold)}@media(max-width:860px){.shell{grid-template-columns:1fr;grid-template-rows:auto auto auto auto;padding:8px}.mast{align-items:flex-start;flex-wrap:wrap}.stage{min-height:58svh;align-items:stretch}canvas{height:58svh;max-height:58svh;aspect-ratio:auto}.hud{grid-template-columns:repeat(2,1fr);margin-bottom:env(safe-area-inset-bottom)}.hud button{grid-column:1/-1}.notes{font-size:12px}.panel{top:12px;bottom:12px;transform:translateX(-50%);max-height:none;width:calc(100% - 34px);padding:16px}.panel ul{display:none}.panel h2{font-size:24px}.panel p{font-size:15px;line-height:1.38}.kicker{font-size:11px}.msg{font-size:12px}}
@media(max-width:460px){.hud{grid-template-columns:1fr}.mast h1{letter-spacing:0}.mast{gap:10px}.mast button{width:100%}.stage{min-height:54svh}canvas{height:54svh;max-height:54svh}.panel{width:calc(100% - 24px);padding:14px}.panel p{font-size:14px}}
