:root{--bg:#040109;--soft:#0a0313;--ink:#f5d9ff;--muted:#cda4da;--pink:#ff2bd6;--violet:#8b2bff;--cyan:#52f6ff;--danger:#ff526d;--line:rgba(255,43,214,.38);--line-soft:rgba(139,43,255,.24);--shadow:0 0 18px rgba(255,43,214,.45);font-family:"Segoe UI","Trebuchet MS",sans-serif;color-scheme:dark}
*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;overflow:hidden;background:var(--bg);color:var(--ink)}button,input{font:inherit}.shell{position:relative;width:100%;height:100%;background:radial-gradient(80% 90% at 10% 20%,#ff2bd622,transparent 60%),radial-gradient(70% 70% at 85% 15%,#52f6ff14,transparent 58%),linear-gradient(#05010a,#020106)}
.shell:after{content:"";position:absolute;inset:0;z-index:8;pointer-events:none;background:repeating-linear-gradient(0deg,transparent 0 2px,#fff 2px 4px);opacity:.018}.grid{position:absolute;inset:0;background-image:linear-gradient(var(--line-soft) 1px,transparent 1px),linear-gradient(90deg,var(--line-soft) 1px,transparent 1px);background-size:56px 56px;opacity:.24;mask-image:radial-gradient(circle,#000,transparent 80%)}
#game{position:absolute;left:0;top:50%;width:100%;height:auto;aspect-ratio:16/9;transform:translateY(-50%);display:block;touch-action:none}.screen{position:absolute;inset:0;z-index:10;display:grid;place-items:center;padding:24px;background:#040109c7;backdrop-filter:blur(5px)}.screen[hidden]{display:none}.panel{width:min(760px,94vw);max-height:92vh;overflow:auto;border:1px solid var(--line);border-radius:18px;background:#08020edc;box-shadow:0 0 30px #8b2bff26,inset 0 0 22px #ff2bd614;padding:clamp(20px,4vw,38px);position:relative}.panel:before,.panel:after{content:"";position:absolute;width:18px;height:18px;border:2px solid var(--pink);box-shadow:var(--shadow)}.panel:before{left:10px;top:10px;border-right:0;border-bottom:0}.panel:after{right:10px;bottom:10px;border-left:0;border-top:0}
.terminal{font-family:"Share Tech Mono","Courier New",monospace}.prompt{color:#c75cff}.command{color:#ffd0fb}.boot-log{min-height:11rem;line-height:1.75;color:var(--muted)}.boot-line{display:block}.cursor{display:inline-block;width:9px;height:1.05em;background:#c75cff;animation:blink 1.1s step-end infinite;vertical-align:middle}@keyframes blink{50%{opacity:0}}
.eyebrow{color:var(--cyan);font:700 .7rem monospace;letter-spacing:.2em;text-transform:uppercase}.title{margin:.3rem 0;font-size:clamp(2rem,7vw,4.8rem);line-height:.92;letter-spacing:.04em;color:#ffd0fb;text-shadow:0 0 12px #ff2bd6a6,0 0 30px #8b2bff99}.subtitle{margin:.7rem 0 2rem;color:var(--muted);letter-spacing:.08em}.menu{display:grid;gap:.55rem}.menu button,.action{border:1px solid var(--line-soft);border-radius:8px;padding:.78rem 1rem;text-align:left;background:#ff2bd60b;color:var(--ink);cursor:pointer;letter-spacing:.08em;text-transform:uppercase}.menu button:hover,.menu button:focus-visible,.action:hover,.action:focus-visible{outline:0;border-color:var(--pink);color:#fff;text-shadow:0 0 8px #ff2bd6;box-shadow:inset 0 0 12px #8b2bff2e}.menu button span{float:right;color:var(--cyan)}
.subview h2{margin:.5rem 0 1.4rem;color:#ffd0fb}.subview p,.subview li{color:var(--muted);line-height:1.55}.subview dl{display:grid;grid-template-columns:minmax(8rem,1fr) 2fr;gap:.65rem 1rem}.subview dt{color:var(--cyan);font-family:monospace}.subview dd{margin:0;color:var(--muted)}.setting{display:grid;grid-template-columns:1fr minmax(9rem,1fr);align-items:center;gap:1rem;margin:1rem 0;color:var(--muted)}.setting input{width:100%;accent-color:var(--pink)}.back{margin-top:1.2rem}
.hud{position:absolute;inset:0;z-index:5;pointer-events:none;font:700 clamp(.58rem,1.1vw,.76rem) "Courier New",monospace;letter-spacing:.08em;text-transform:uppercase}.hud[hidden]{display:none}.hud-top{display:grid;grid-template-columns:1fr auto 1fr;gap:20px;padding:14px 20px;background:linear-gradient(#040109dc,transparent)}.hud-right{text-align:right}.label{color:var(--muted)}.value{color:var(--cyan);font-size:1.12em}.meter{display:inline-block;width:min(18vw,170px);height:7px;margin-left:8px;border:1px solid var(--line);vertical-align:middle}.fill{display:block;height:100%;background:linear-gradient(90deg,var(--violet),var(--pink));box-shadow:0 0 8px var(--pink)}.hud-bottom{position:absolute;left:20px;right:20px;bottom:14px;display:flex;justify-content:space-between;color:var(--muted)}.bossbar{position:absolute;top:68px;left:25%;right:25%;text-align:center}.bossbar[hidden]{display:none}.bossbar .meter{display:block;width:100%;height:10px;margin:6px 0}.announcement{position:absolute;inset:42% 0 auto;text-align:center;color:var(--pink);font-size:clamp(1.1rem,3vw,2rem);text-shadow:var(--shadow);opacity:0;transition:opacity .15s}.announcement.show{opacity:1}.pickup{position:absolute;top:18%;left:20px;color:var(--cyan);opacity:0}.pickup.show{animation:pickup 2.3s ease}@keyframes pickup{0%,100%{opacity:0;transform:translateY(5px)}12%,75%{opacity:1;transform:none}}
.pause-button{position:absolute;z-index:7;right:14px;bottom:14px;display:none;width:48px;height:48px;border:1px solid var(--line);border-radius:50%;background:#0a0313cc;color:#fff}.touch{position:absolute;z-index:7;inset:auto 0 12px;display:none;justify-content:space-between;align-items:end;padding:0 18px;pointer-events:none}.stick{width:128px;height:128px;border:1px solid #52f6ff77;border-radius:50%;background:#0a031388;pointer-events:auto;display:grid;place-items:center;touch-action:none}.nub{width:54px;height:54px;border:2px solid var(--cyan);border-radius:50%;background:#52f6ff20}.touch-actions{display:flex;gap:14px;align-items:end}.touch-actions button{width:72px;height:72px;border:2px solid var(--pink);border-radius:50%;background:#ff2bd622;color:#fff;font:bold .72rem monospace;pointer-events:auto;touch-action:none}.touch-actions .special{width:58px;height:58px;border-color:var(--cyan)}
.rotate{display:none;position:absolute;z-index:9;bottom:8px;left:50%;transform:translateX(-50%);font:.6rem monospace;color:var(--muted)}.statusline{font:.65rem monospace;color:var(--muted);margin-top:1rem}.hidden{display:none!important}:focus-visible{outline:2px solid var(--cyan);outline-offset:3px}
@media(min-aspect-ratio:16/9){#game{left:50%;top:0;width:auto;height:100%;transform:translateX(-50%)}}@media(pointer:coarse){.touch,.pause-button{display:flex}.hud-bottom{bottom:150px}.rotate{display:block}.touch{padding-right:max(18px,env(safe-area-inset-right));padding-left:max(18px,env(safe-area-inset-left));padding-bottom:max(0px,env(safe-area-inset-bottom))}}@media(max-width:650px){.hud-top{grid-template-columns:1fr 1fr;padding:10px}.hud-center{display:none}.bossbar{left:12%;right:12%;top:60px}.panel{padding:24px 18px}.setting{grid-template-columns:1fr}.subview dl{grid-template-columns:1fr}.title{font-size:2.5rem}}@media(orientation:portrait) and (pointer:coarse){.rotate{display:block}}@media(prefers-reduced-motion:reduce){.cursor{animation:none}.shell:after{display:none}}
