@font-face{font-family:Pixel;src:url(/assets/pixel-font.ttf) format("truetype");font-display:swap}*{box-sizing:border-box}[hidden]{display:none!important}html,body{margin:0;background:#eeeae2;color:#171717;font-family:Pixel,monospace}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer;border:2px solid #171717;background:#f4f1eb;color:#171717;padding:10px 12px}button:hover{background:#171717;color:#fff}button:disabled{opacity:.35;cursor:default}button:focus-visible,a:focus-visible{outline:3px solid #bf08ef;outline-offset:3px}.game-shell{height:100dvh;min-height:420px;display:grid;grid-template-rows:auto minmax(0,1fr) auto}header{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px 24px;border-bottom:2px solid #171717;background:#fff;z-index:2;font-size:12px}.back{color:inherit;text-decoration:none}.back:hover{color:#c5263c}.game-name{font-size:20px}.game-name small{color:#888;font-size:12px;margin-left:12px}.game-tools{display:flex;gap:8px}.game-tools button{font-size:10px}#arena{position:relative;overflow:hidden;min-height:0}canvas{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;display:block;outline:none;cursor:none;touch-action:none}.hud{position:absolute;inset:18px 24px auto;display:flex;align-items:center;gap:32px;pointer-events:none}.hud>div{display:flex;flex-direction:column;gap:6px}.hud span{font-size:10px;color:#777}.hud b{font-size:24px;font-weight:400}.hud .health{width:180px;margin-right:auto}.health span{display:flex;align-items:center;justify-content:space-between}.health span b{font-size:14px;color:#171717}.health-track{height:8px;border:1px solid #171717;background:#fff}#health-fill{width:100%;height:100%;background:#c5263c}.hud>div:last-child b{color:#888}#overlay{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;background:#eeeae233;z-index:5}.menu{width:min(400px,calc(100% - 40px));padding:28px 32px;background:#171717;color:#fff;box-shadow:8px 8px #bf08ef;border:2px solid #171717}.eyebrow{color:#7df3e4;font-size:12px;margin:0 0 18px}.menu h1{font-size:52px;line-height:1.15;font-weight:400;margin:0 0 20px}.menu>p:not(.eyebrow):not(.warning){font-family:Arial,sans-serif;font-size:18px;line-height:1.5;color:#ccc}.menu button{display:block;width:100%;margin-top:12px;border-color:#fff;background:#c5263c;color:#fff;font-size:16px;padding:14px}.menu button:hover{background:#bf08ef}.menu #restart{background:none;font-size:12px}.warning{font:12px/1.5 Arial,sans-serif;color:#999;margin:20px 0 0}#announcement{position:absolute;left:0;right:0;top:142px;text-align:center;font-size:20px;color:#c5263c;pointer-events:none;margin:0;text-shadow:1px 1px #fff}.touch-controls{display:none;position:absolute;inset:auto 16px 16px;justify-content:space-between;gap:12px;pointer-events:none}.touch-controls>div{display:flex;align-items:flex-end;gap:6px}.touch-controls .direction-controls{display:grid;grid-template-columns:repeat(3,40px);grid-template-rows:repeat(2,40px);gap:4px}.direction-controls button{width:40px;height:40px}.direction-controls [data-action=up]{grid-column:2;grid-row:1}.direction-controls [data-action=left]{grid-column:1;grid-row:2}.direction-controls [data-action=down]{grid-column:2;grid-row:2}.direction-controls [data-action=right]{grid-column:3;grid-row:2}.touch-controls button{pointer-events:auto;touch-action:none;width:44px;height:48px;font-size:22px;background:#fff9;border:2px solid #171717}.touch-controls button[data-action=fire]{width:62px;font-size:14px;background:#c5263c;color:#fff}.touch-controls button.active{background:#171717;color:#fff}footer{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:16px 24px;background:#fff;border-top:2px solid #171717;font-size:10px;line-height:1.8}kbd{font:inherit;background:#eee;padding:3px}.footer-note{color:#c5263c;white-space:nowrap}.touch-help{display:none}.arsenal{position:absolute;left:24px;bottom:16px;display:flex;gap:8px}.arsenal button{font-size:11px;background:#fffc;padding:10px}.arsenal button[aria-pressed=true]{background:#171717;color:#7df3e4}.bullet-time-meter{width:180px;color:#4a6680}.bullet-time-meter>span{display:block;margin-bottom:5px}#bullet-time-track{height:7px;border:1px solid #171717;background:#fff}#bullet-time-fill{display:block;height:100%;width:0;background:#7d8eab}#bullet-time-track.ready #bullet-time-fill{background:#bf08ef}.touch-controls button[data-action=dash][aria-disabled=true]{opacity:.4}.combat-status{position:absolute;left:24px;right:24px;top:76px;display:flex;align-items:flex-start;flex-wrap:wrap;gap:12px 24px;font-size:10px;pointer-events:none;color:#777}#combo{color:#c5263c}#charge-status{color:#bf08ef}#boss-hud{position:absolute;top:102px;left:25%;right:25%;font-size:10px;color:#c5263c;text-align:center;pointer-events:none}#boss-hud>div{height:8px;background:#fff;border:1px solid #171717;margin-top:6px}#boss-fill{display:block;height:100%;background:#c5263c}.touch-controls button[data-action=dash]{font-size:10px}.score-stat b{font-size:20px}.upgrade-menu{width:min(760px,calc(100% - 32px));padding:28px;background:#171717;color:#fff;border:2px solid #171717;box-shadow:6px 6px #bf08ef}.upgrade-menu h2{font-weight:400;font-size:28px;margin:12px 0}.upgrade-menu>p:not(.eyebrow){font:14px/1.5 Arial,sans-serif;color:#aaa}#upgrade-choices{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:20px}#upgrade-choices button{display:flex;flex-direction:column;gap:16px;text-align:left;background:#292929;color:#fff;border:2px solid #777;padding:20px 16px}#upgrade-choices button:hover{border-color:#7df3e4;background:#333}#upgrade-choices strong{font-size:14px;font-weight:400;line-height:1.6;color:#7df3e4}#upgrade-choices span{font:14px/1.5 Arial,sans-serif;color:#ccc}#overlay{overflow:auto}.arsenal button:disabled{opacity:.5}@media(pointer:coarse){.arsenal{left:16px;right:16px;bottom:108px;justify-content:center}.arsenal button{flex:1;min-width:0;max-width:140px;padding:10px 3px;font-size:9px}}@media(max-width:560px){.combat-status{left:16px;right:16px;gap:8px 12px;font-size:9px}.bullet-time-meter{width:150px}.score-stat b{font-size:12px}.hud{gap:12px}.hud .health{width:84px}#boss-hud{left:16px;right:16px}#upgrade-choices{grid-template-columns:1fr;gap:8px;margin-top:12px}#upgrade-choices button{padding:12px;gap:6px}.upgrade-menu{padding:20px}.upgrade-menu h2{font-size:22px}#upgrade-choices strong{font-size:12px}}@media(max-height:550px){.upgrade-menu{padding:16px}.upgrade-menu h2{font-size:20px;margin:8px 0}#upgrade-choices{margin-top:12px}#upgrade-choices button{padding:12px;gap:8px}.combat-status{top:66px}#boss-hud{top:88px}#announcement{top:118px}}@media(max-width:900px){header{padding:12px 16px}.game-name{font-size:14px}.game-name small{display:none}.hud{inset:16px 16px auto;gap:20px}.hud .health{width:120px}.footer-note{display:none}footer{padding:12px 16px}}@media(pointer:coarse){.touch-controls{display:flex}.desktop-help{display:none}.touch-help{display:block}canvas{cursor:default}}@media(max-width:560px){header{gap:8px}.game-name{display:none}.game-tools button{padding:8px;font-size:9px}.hud{gap:16px}.hud .health{width:100px}.hud b{font-size:20px}.menu{padding:24px}.menu h1{font-size:42px}footer{font-size:9px}#announcement{font-size:16px}}@media(max-height:550px){.menu{padding:16px 24px;width:400px}.menu h1{font-size:30px;line-height:1;margin-bottom:10px}.menu h1 br{display:none}.eyebrow{margin-bottom:8px}.menu>p:not(.eyebrow):not(.warning){margin:8px 0;font-size:14px}.menu button{padding:10px}.warning{margin-top:10px}.hud{top:10px}.touch-controls{bottom:10px}}
