
:root{color-scheme:dark;--gold:#f7c862;--amber:#ff8a2b;--cyan:#54f6ed;--violet:#9c69ff;--magenta:#ff4ca3;--night:#03040d}
*{box-sizing:border-box}
html,body{margin:0;min-height:100%;background:var(--night);color:#f5edff;font-family:Inter,Segoe UI,system-ui,sans-serif}
body{overflow:hidden}
.shell{height:100dvh;display:grid;grid-template-columns:minmax(0,1fr) 340px;background:#03040d}
.stage{position:relative;min-width:0;overflow:hidden;display:flex;align-items:center;justify-content:center;border-right:1px solid rgba(247,200,98,.22);background:#02030b url("/static/arcade/game_art/20260801/the_melting_hour_hero.png") center/cover}
.stage::before{content:"";position:absolute;inset:0;pointer-events:none;z-index:2;background:linear-gradient(90deg,rgba(2,3,11,.05),transparent 55%,rgba(2,3,11,.35)),radial-gradient(circle at 50% 45%,transparent 35%,rgba(2,3,11,.46) 100%);box-shadow:inset 0 0 120px rgba(2,3,11,.8)}
.stage::after{content:"LOOMWHEEL COVENANT // PRIVATE PLAYTEST";position:absolute;z-index:4;top:12px;left:16px;letter-spacing:3px;font:800 9px/1 Consolas,monospace;color:rgba(247,200,98,.7);text-shadow:0 1px 8px #000;pointer-events:none}
canvas{position:relative;z-index:1;display:block;width:min(100%,calc(100dvh * 16 / 9));height:auto;max-height:100%;aspect-ratio:16/9;outline:0;touch-action:none;box-shadow:0 0 80px rgba(0,0,0,.72)}
.panel{height:100dvh;overflow:auto;padding:18px 18px 22px;background:linear-gradient(155deg,rgba(14,8,34,.98),rgba(2,17,27,.98) 58%,rgba(27,8,20,.98));box-shadow:-20px 0 50px rgba(0,0,0,.42)}
.kicker{font-size:10px;letter-spacing:4px;text-transform:uppercase;color:var(--gold);font-weight:900}
h1{margin:7px 0 1px;font:italic 32px/1 Georgia,serif;background:linear-gradient(90deg,var(--gold),var(--magenta),var(--cyan));-webkit-background-clip:text;background-clip:text;color:transparent}
.subtitle{font:800 10px/1.4 Consolas,monospace;letter-spacing:2px;color:rgba(84,246,237,.8);text-transform:uppercase;margin-bottom:10px}
.copy{color:rgba(239,229,255,.69);line-height:1.48;font-size:12px;margin:8px 0}
.objective{border:1px solid rgba(247,200,98,.2);border-radius:12px;padding:9px 10px;background:linear-gradient(135deg,rgba(247,200,98,.09),rgba(84,246,237,.04));font-size:11px;line-height:1.45;color:#f6e8c6}
.objective b{color:var(--gold);letter-spacing:1px}
.controls{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin:10px 0}
.btn{border:1px solid rgba(247,200,98,.26);border-radius:10px;color:#f9f2ff;min-height:42px;padding:7px;background:linear-gradient(145deg,rgba(83,44,120,.8),rgba(21,24,54,.95));font:900 9px/1.2 Consolas,monospace;text-transform:uppercase;letter-spacing:1px;cursor:pointer;box-shadow:0 8px 22px rgba(0,0,0,.25),inset 0 1px rgba(255,255,255,.1);transition:transform .12s,border-color .12s,filter .12s}
.btn:hover,.btn:focus-visible{border-color:var(--gold);filter:brightness(1.15);outline:0}.btn:active{transform:scale(.96)}
.btn.primary{grid-column:1/-1;background:linear-gradient(90deg,#6d3512,#754424 40%,#243957);border-color:rgba(247,200,98,.6);color:#fff4d2}
.btn.bloom{background:linear-gradient(135deg,#0f5c57,#203e73)}.btn.invert{background:linear-gradient(135deg,#5b246b,#283477)}.btn.dissolve{background:linear-gradient(135deg,#8a3b22,#67254f)}
.btn.back{display:flex;align-items:center;justify-content:center;text-decoration:none;background:rgba(255,255,255,.04)}
.stat-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin:10px 0}
.stat{border:1px solid rgba(255,255,255,.08);border-radius:9px;padding:7px 5px;background:rgba(0,0,0,.28);font:700 8px/1.2 Consolas,monospace;text-transform:uppercase;letter-spacing:1px;color:rgba(239,229,255,.5)}
.stat b{display:block;margin-top:4px;color:#fff;font-size:12px;letter-spacing:0;text-transform:none}
.cast{display:grid;gap:5px;margin:8px 0}.cast div{font:9px/1.35 Consolas,monospace;color:rgba(239,229,255,.66)}.cast b{color:var(--gold)}
.receipt{white-space:pre-wrap;overflow:auto;max-height:116px;border:1px solid rgba(255,255,255,.08);border-radius:9px;padding:7px;background:rgba(0,0,0,.34);color:#bdb2d4;font:9px/1.35 Consolas,monospace;margin-top:7px}
.touch{position:absolute;z-index:5;left:14px;right:14px;bottom:max(14px,env(safe-area-inset-bottom));display:none;justify-content:space-between;pointer-events:none}
.dpad,.actions{display:grid;gap:5px;pointer-events:auto}.dpad{grid-template:repeat(3,42px)/repeat(3,42px)}.dpad button:nth-child(1){grid-area:1/2}.dpad button:nth-child(2){grid-area:2/1}.dpad button:nth-child(3){grid-area:2/2}.dpad button:nth-child(4){grid-area:2/3}
.touch button{border:1px solid rgba(247,200,98,.55);border-radius:50%;background:rgba(7,8,21,.75);color:#fff;width:42px;height:42px;font-weight:900;backdrop-filter:blur(7px);box-shadow:0 5px 20px #000}
.actions{grid-template-columns:repeat(3,46px);align-content:end}.actions button{width:46px;height:46px;font-size:8px;color:var(--gold)}
body #northstar-playtest-kit{font-size:10px!important}
@media(max-width:920px){body{overflow:auto}.shell{height:auto;min-height:100dvh;grid-template-columns:1fr;grid-template-rows:minmax(58dvh,66dvh) auto}.stage{height:auto;min-height:58dvh;border-right:0;border-bottom:1px solid rgba(247,200,98,.22)}.panel{height:auto;min-height:34dvh;padding:12px 14px 18px}.panel h1{font-size:23px}.panel .copy,.cast,.receipt{display:none}.objective{margin:6px 0;padding:7px}.controls{grid-template-columns:repeat(4,1fr);margin:7px 0}.btn{min-height:37px;padding:5px;font-size:8px}.btn.primary{grid-column:span 2}.stat-grid{margin:7px 0}.touch{display:flex}}
@media(max-width:560px){.shell{grid-template-rows:60dvh auto}.stage::after{top:7px;left:9px;font-size:7px}.controls{grid-template-columns:repeat(3,1fr)}.btn.primary{grid-column:span 2}.btn.back{display:none}.subtitle{margin-bottom:5px}.stat{padding:5px 3px}.touch{left:8px;right:8px;bottom:8px}}
@media(prefers-reduced-motion:reduce){.btn{transition:none}}

/* NSP IDG return chrome */
.nsp-return{position:fixed;z-index:10050;top:10px;left:10px;display:flex;gap:8px;flex-wrap:wrap;pointer-events:none}
.nsp-return a{pointer-events:auto;min-height:40px;padding:0 12px;display:inline-grid;place-items:center;border-radius:5px;text-decoration:none;font:800 10px/1 Inter,Segoe UI,system-ui,sans-serif;letter-spacing:.1em;text-transform:uppercase;border:1px solid rgba(102,247,237,.45);background:linear-gradient(145deg,rgba(3,7,16,.92),rgba(10,8,24,.8));color:#66f7ed;backdrop-filter:blur(10px);box-shadow:0 8px 24px rgba(0,0,0,.35)}
.nsp-return a:hover{border-color:#f7ce66;color:#f7ce66}
.nsp-return a.secondary{border-color:rgba(148,163,184,.35);color:#94a3b8;font-weight:700}
.nsp-return a.secondary:hover{border-color:#66f7ed;color:#66f7ed}
