@font-face{font-family:"GM Pixel";src:url("./assets/gm-pixel.woff2") format("woff2");font-style:normal;font-weight:400;font-display:swap}
#gm-coming-soon{--gm-cyan:#00e5eb;--gm-paper:#e8f2f2;--gm-brand-width:clamp(185px,23vw,310px);--gm-gold:#ffd35b;background:#090d12;color:var(--gm-paper);font:14px/1.5 -apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;min-height:100svh;padding:0 4%;isolation:isolate;overflow:hidden}
#gm-coming-soon *,#gm-coming-soon *::before,#gm-coming-soon *::after{box-sizing:border-box}#gm-coming-soon [hidden]{display:none!important}#gm-coming-soon :is(h1,h2,p){margin:0}#gm-coming-soon button,#gm-coming-soon a{touch-action:manipulation;-webkit-tap-highlight-color:transparent}#gm-coming-soon button{font:inherit;cursor:pointer}#gm-coming-soon button:disabled{opacity:.3;cursor:default}#gm-coming-soon a{color:inherit}#gm-coming-soon :is(button,a,canvas):focus-visible{outline:2px solid var(--gm-cyan);outline-offset:5px}#gm-coming-soon .gm-sr-only{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap}#gm-coming-soon .gm-skip{position:absolute;top:-100px;left:20px;background:var(--gm-cyan);color:#061015;padding:12px;z-index:10}#gm-coming-soon .gm-skip:focus{top:10px}
#gm-coming-soon .gm-header{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:clamp(28px,5vw,96px);max-width:1440px;margin:auto;padding:32px 0 28px}
#gm-coming-soon .gm-logo{position:relative;display:block;width:var(--gm-brand-width);aspect-ratio:750/260;overflow:hidden;mix-blend-mode:screen}
#gm-coming-soon .gm-logo img{position:absolute;width:106.666667%;max-width:none;height:auto;left:-3.466667%;top:-38.076923%}
#gm-coming-soon .gm-status{position:relative;justify-self:stretch;width:100%;margin:0;padding:8px 0 12px;color:#fff0e0;text-align:center;font-family:"GM Pixel",ui-monospace,monospace;font-size:clamp(28px,5.5vw,78px);font-weight:400;line-height:1.15;letter-spacing:0;text-transform:uppercase;text-shadow:0 3px 0 #c76e91,0 6px 0 #59324f}
#gm-coming-soon .gm-status span{display:block;overflow-wrap:break-word}
#gm-coming-soon[data-page-mode="404"] .gm-status{font-size:clamp(28px,5.5vw,78px)}
#gm-coming-soon .gm-status:focus{outline:none}
#gm-coming-soon .gm-arcade{width:100%;max-width:min(1440px,calc((100svh - 220px)*2.4));min-width:0;margin:auto;padding-bottom:18px}#gm-coming-soon .gm-toolbar{position:relative;display:flex;justify-content:flex-end;align-items:center;gap:12px;height:44px;margin-bottom:5px}#gm-coming-soon .gm-score{display:flex;align-items:center;gap:25px;padding-right:5px}#gm-coming-soon output{font:20px/1 ui-monospace,SFMono-Regular,Consolas,monospace;color:#e1eaec;letter-spacing:.06em}#gm-coming-soon .gm-lives{position:absolute;z-index:2;top:10px;left:50%;transform:translateX(-50%);padding:4px 10px 4px 16px;border:1px solid #ffb8c344;border-radius:5px;background:#080f1cf2;box-shadow:0 2px 6px #0005;pointer-events:none;font:32px/1 Arial,sans-serif;color:#ff9fb1;letter-spacing:6px;white-space:nowrap}#gm-coming-soon .gm-icon{background:transparent;color:#adbec5;border:0;min-width:44px;min-height:44px;padding:10px;display:inline-flex;align-items:center;justify-content:center;border-radius:5px;font-size:23px;line-height:1}#gm-coming-soon .gm-icon:hover{color:var(--gm-cyan);background:#13222a}#gm-coming-soon .gm-scene{margin-left:-10px;color:#79959e}#gm-coming-soon .gm-stage{position:relative;aspect-ratio:12/5;border:1px solid #ffffff20;border-radius:6px;background:#111c2a;overflow:hidden}#gm-coming-soon .gm-canvas{display:block;width:100%;height:100%;touch-action:manipulation}#gm-coming-soon .gm-canvas:focus-visible{outline-offset:-3px}#gm-coming-soon .gm-state-overlay{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;padding:20px;background:#07101bb3;text-align:center}#gm-coming-soon .gm-stage:is([data-state=idle],[data-state=ready]) .gm-state-overlay{background:transparent}#gm-coming-soon .gm-stage:is([data-state=idle],[data-state=ready]) :is([data-state-title],[data-state-copy]){display:none}#gm-coming-soon .gm-stage[data-state=running] .gm-state-overlay{display:none}#gm-coming-soon [data-state-title]:empty,#gm-coming-soon [data-state-copy]:empty{display:none}#gm-coming-soon .gm-state-overlay h2{font-size:30px;font-weight:600;letter-spacing:-.03em;line-height:1.2}#gm-coming-soon .gm-state-overlay p{font:16px ui-monospace,monospace;color:#c2d6dc}#gm-coming-soon .gm-state-actions{margin-top:8px}#gm-coming-soon .gm-primary{border:1px solid #71f7fa;background:#07151fe6;color:var(--gm-cyan);width:62px;height:62px;min-height:44px;border-radius:50%;padding:0;display:flex;align-items:center;justify-content:center;font-size:30px;line-height:1;box-shadow:0 2px 15px #0004;transition:background .15s,transform .15s}#gm-coming-soon .gm-primary:hover{background:#0c303b;transform:scale(1.04)}#gm-coming-soon .gm-bonus{position:absolute;top:58px;left:50%;transform:translateX(-50%);padding:4px 10px;border:1px solid #5de5df99;border-radius:16px;background:#07313ad9;color:#d6fffd;font:10px ui-monospace,monospace;pointer-events:none}
#gm-coming-soon .gm-controls{display:flex;align-items:center;justify-content:space-between;gap:12px;padding-top:9px}#gm-coming-soon #gm-game-help{font-size:10px;color:#7f99a3;padding-left:2px}#gm-coming-soon kbd{font:10px ui-monospace,monospace;color:#afc4cb}#gm-coming-soon .gm-desktop-help>span{padding:0 8px;color:#526973}#gm-coming-soon .gm-touch-help{display:none}#gm-coming-soon .gm-control-buttons{display:flex;gap:7px;flex-shrink:0}#gm-coming-soon .gm-shoot{touch-action:none;user-select:none;-webkit-user-select:none}#gm-coming-soon .gm-shoot[data-firing=true]{color:#07151e;background:var(--gm-cyan);box-shadow:0 0 14px #00e5eb44}#gm-coming-soon .gm-shoot,#gm-coming-soon .gm-dash,#gm-coming-soon .gm-jump{color:#baeef0}#gm-coming-soon [data-action=sound][aria-pressed=false] .gm-sound-wave,#gm-coming-soon [data-action=sound][aria-pressed=true] .gm-mute{display:none}#gm-coming-soon [data-action=pause]>span::before{content:'Ⅱ';font-size:20px}#gm-coming-soon [data-action=pause][data-paused=true]>span::before{content:'▶';font-size:17px}#gm-coming-soon .gm-secondary{display:block;width:max-content;max-width:100%;margin:16px auto;min-height:44px;padding:10px;text-underline-offset:4px;font-size:13px}#gm-coming-soon .gm-noscript{margin:35px auto;text-align:center;color:#adbec5}
@media(max-width:700px){
  #gm-coming-soon{--gm-brand-width:clamp(165px,25vw,200px)}
  #gm-coming-soon .gm-header{gap:24px;padding:25px 0 24px}
  #gm-coming-soon .gm-status{font-size:clamp(28px,5.5vw,38px)}
  #gm-coming-soon .gm-arcade{max-width:none}
  #gm-coming-soon .gm-stage{aspect-ratio:1.2}
  #gm-coming-soon .gm-toolbar{height:36px;margin-bottom:3px}
  #gm-coming-soon .gm-score{gap:18px}
  #gm-coming-soon .gm-lives{top:8px;font-size:28px;letter-spacing:5px;padding-left:15px}
  #gm-coming-soon output{font-size:17px}
  #gm-coming-soon .gm-desktop-help{display:none}
  #gm-coming-soon .gm-touch-help{display:inline}
  #gm-coming-soon .gm-primary{width:54px;height:54px}
  #gm-coming-soon .gm-state-overlay h2{font-size:25px}
  #gm-coming-soon .gm-controls{gap:4px}
  #gm-coming-soon #gm-game-help{white-space:nowrap;font-size:9px}
  #gm-coming-soon .gm-control-buttons{gap:0}
  #gm-coming-soon .gm-icon{min-width:44px;padding:10px}
  #gm-coming-soon .gm-shoot,#gm-coming-soon .gm-dash,#gm-coming-soon .gm-jump{background:#12232b;margin-left:0;min-width:44px}
}
@media(max-width:560px){
  #gm-coming-soon{--gm-brand-width:clamp(150px,46vw,220px)}
  #gm-coming-soon .gm-header{grid-template-columns:minmax(0,1fr);justify-items:start;gap:22px;padding:24px 0 20px}
  #gm-coming-soon .gm-status{width:100%;justify-self:stretch;font-size:10.4vw;text-align:center;padding:3px 0 10px;text-shadow:0 2px 0 #c76e91,0 4px 0 #59324f}
  #gm-coming-soon[data-page-mode="404"] .gm-status{font-size:10.4vw}
}
@media(max-width:360px){
  #gm-coming-soon .gm-controls{flex-wrap:wrap;gap:3px}
  #gm-coming-soon .gm-control-buttons{width:100%;justify-content:space-between}
  #gm-coming-soon #gm-game-help{order:2;width:100%;text-align:center;padding:3px 0}
}
@media(max-height:550px) and (min-width:620px){
  #gm-coming-soon{--gm-brand-width:150px}
  #gm-coming-soon .gm-header{padding:12px 0 10px;gap:30px}
  #gm-coming-soon .gm-status{width:100%;font-size:clamp(29px,5vw,50px);padding:3px 0 8px}
  #gm-coming-soon[data-page-mode="404"] .gm-status{font-size:clamp(29px,5vw,50px)}
  #gm-coming-soon .gm-arcade{max-width:min(100%,calc((100svh - 160px)*2.4));padding-bottom:8px}
  #gm-coming-soon .gm-stage{aspect-ratio:2.4}
  #gm-coming-soon .gm-toolbar{height:32px;margin-bottom:2px}
  #gm-coming-soon .gm-lives{font-size:28px}
  #gm-coming-soon .gm-controls{padding-top:4px}
}
#gm-coming-soon[data-page-mode="404"] .gm-secondary{font:800 12px/1.4 ui-monospace,monospace;letter-spacing:.08em;color:var(--gm-gold);margin:7px auto 16px;display:flex;align-items:center;justify-content:center}
@media(prefers-reduced-motion:reduce){#gm-coming-soon *,#gm-coming-soon *::before,#gm-coming-soon *::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}#gm-coming-soon .gm-primary:hover{transform:none}}

#gm-coming-soon .gm-shoot[data-weapon=true]{color:#ff8de7}#gm-coming-soon .gm-shoot[data-weapon=true][data-firing=true]{color:#170e21;background:#ff8de7;box-shadow:0 0 14px #ff8de744}

/* Pixel lettering is inline vector artwork: no font download or animation. */
#gm-coming-soon .gm-gameover-art{display:none}
#gm-coming-soon .gm-stage:is([data-state=idle],[data-state=ready]) .gm-state-overlay h2{display:none}
#gm-coming-soon .gm-stage[data-state=gameover] .gm-state-overlay{gap:clamp(18px,3vw,34px);background:repeating-linear-gradient(0deg,#00000012 0,#00000012 1px,transparent 1px,transparent 4px),linear-gradient(135deg,#070d21ed,#111026e8);padding:24px 18px}
#gm-coming-soon .gm-stage[data-state=gameover] .gm-state-overlay h2{width:100%;line-height:0}
#gm-coming-soon .gm-stage[data-state=gameover] [data-state-title]{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
#gm-coming-soon .gm-stage[data-state=gameover] .gm-gameover-art{display:block;width:min(84%,550px);height:auto;margin:0 auto;color:#ffbf9a;filter:drop-shadow(0 3px 0 #ac4f78) drop-shadow(0 6px 0 #3c2053)}
#gm-coming-soon .gm-stage[data-state=gameover] [data-state-copy]{font:700 clamp(19px,2.6vw,34px)/1.25 ui-monospace,SFMono-Regular,Consolas,monospace;letter-spacing:.12em;color:#f3f9ff;font-variant-numeric:tabular-nums}
#gm-coming-soon .gm-stage[data-state=gameover] .gm-state-actions{margin-top:0}
#gm-coming-soon [data-action=restart]{width:auto;min-width:180px;height:52px;padding:0 22px;border:2px solid #9cffff;border-radius:0;background:#00e5eb;color:#06161e;font:900 17px/1 ui-monospace,SFMono-Regular,Consolas,monospace;letter-spacing:.08em;box-shadow:4px 4px 0 #076d79;transition:background .15s,box-shadow .15s}
#gm-coming-soon [data-action=restart]:hover{transform:none;background:#9cffff;box-shadow:4px 4px 0 #0a8995}
#gm-coming-soon [data-action=restart]:active{box-shadow:2px 2px 0 #076d79}
#gm-coming-soon .gm-stage[data-state=gameover] .gm-bonus{display:none}

/* A two-action arcade guide is shown only before the first input. */
#gm-coming-soon .gm-ready-guide{display:none}
#gm-coming-soon .gm-stage:is([data-state=idle],[data-state=ready]) .gm-ready-guide{display:grid;grid-template-columns:1fr 1fr;gap:26px;width:min(100%,280px);padding:14px 20px;border:1px solid #ffd35b88;background:#080f1cee;box-shadow:3px 3px 0 #0008;color:#f8ecd1;font:700 11px/1.2 ui-monospace,SFMono-Regular,Consolas,monospace;letter-spacing:.08em;pointer-events:none}
#gm-coming-soon .gm-ready-guide>div{display:grid;gap:7px}
#gm-coming-soon .gm-ready-guide strong{font-size:14px;letter-spacing:.12em;color:#ffd35b}
#gm-coming-soon .gm-ready-guide kbd{display:inline-block;padding:3px 6px;border:1px solid #f8ecd199;border-bottom-width:3px;border-radius:2px;color:#f8ecd1;font:inherit}
#gm-coming-soon .gm-guide-touch,#gm-coming-soon .gm-control-label{display:none}
#gm-coming-soon .gm-utility-controls,#gm-coming-soon .gm-play-controls{display:flex;align-items:center;gap:7px}
#gm-coming-soon .gm-jump{touch-action:none;user-select:none;-webkit-user-select:none}
@media(max-width:700px),(pointer:coarse){
  #gm-coming-soon .gm-guide-key{display:none}
  #gm-coming-soon .gm-guide-touch{display:block;padding:4px 0}
  #gm-coming-soon .gm-stage:is([data-state=idle],[data-state=ready]) .gm-ready-guide{gap:18px;width:min(100%,240px);padding:12px 16px}
  #gm-coming-soon .gm-controls{display:block;padding-top:12px}
  #gm-coming-soon #gm-game-help{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
  #gm-coming-soon .gm-control-buttons{display:flex;flex-direction:column;width:100%;gap:8px}
  #gm-coming-soon .gm-play-controls{order:-1;display:grid;grid-template-columns:1fr 1fr;gap:14px;width:100%}
  #gm-coming-soon .gm-utility-controls{justify-content:center;gap:12px}
  #gm-coming-soon .gm-play-controls .gm-icon{min-height:72px;width:100%;padding:14px 12px;gap:12px;border:2px solid #50717d;border-radius:4px;background:#122630;box-shadow:0 4px 0 #07161c;color:#d4fbff}
  #gm-coming-soon .gm-play-controls .gm-jump{border-color:#a48c4d;background:#30291b;box-shadow:0 4px 0 #171308;color:#ffe7a0;font-size:30px}
  #gm-coming-soon .gm-play-controls .gm-shoot svg{width:26px;height:26px}
  #gm-coming-soon .gm-control-label{display:inline;font:800 14px/1 ui-monospace,SFMono-Regular,Consolas,monospace;letter-spacing:.08em}
  #gm-coming-soon .gm-play-controls .gm-icon:active{transform:translateY(3px);box-shadow:0 1px 0 #07161c}
  #gm-coming-soon .gm-play-controls .gm-shoot[data-firing=true]{background:var(--gm-cyan);color:#07151e;border-color:#b6ffff}
  #gm-coming-soon .gm-play-controls .gm-shoot[data-weapon=true]{color:#ff8de7}
  #gm-coming-soon .gm-play-controls .gm-shoot[data-weapon=true][data-firing=true]{color:#170e21;background:#ff8de7;border-color:#ffc2f2}
}
@media(max-height:550px) and (min-width:620px) and (pointer:coarse){
  #gm-coming-soon .gm-arcade{max-width:min(100%,calc((100svh - 205px)*2.4))}
  #gm-coming-soon .gm-controls{padding-top:10px}
  #gm-coming-soon .gm-control-buttons{display:grid;grid-template-columns:1fr auto 1fr;gap:12px}
  #gm-coming-soon .gm-play-controls{display:contents}
  #gm-coming-soon .gm-utility-controls{grid-column:2;grid-row:1;gap:0}
  #gm-coming-soon .gm-play-controls .gm-jump{grid-column:1;grid-row:1}
  #gm-coming-soon .gm-play-controls .gm-shoot{grid-column:3;grid-row:1}
  #gm-coming-soon .gm-play-controls .gm-icon{min-height:64px;padding:10px 8px;gap:6px}
  #gm-coming-soon .gm-stage:is([data-state=idle],[data-state=ready]) .gm-ready-guide{padding:7px 14px}
}

/* Keep the ready guide below the health badge inside the playfield. */
#gm-coming-soon .gm-stage:is([data-state=idle],[data-state=ready]) .gm-state-overlay{padding-top:48px;padding-bottom:12px}
#gm-coming-soon .gm-stage:not([data-state=running]) .gm-bonus{display:none}
@media(max-height:550px) and (min-width:620px){
  #gm-coming-soon .gm-lives{top:8px}
  #gm-coming-soon .gm-stage:is([data-state=idle],[data-state=ready]) .gm-primary{width:48px;height:48px}
  #gm-coming-soon .gm-stage:is([data-state=idle],[data-state=ready]) .gm-ready-guide{padding-top:5px;padding-bottom:5px}
}

#gm-coming-soon .gm-lives:empty{opacity:0}

/* Static page artwork: no game module, Canvas drawing, or extra image request. */
#gm-coming-soon .gm-idle-art{position:absolute;inset:0;background:radial-gradient(circle at 78% 27%,#e2b8c8 0 11%,#c58ca988 11.4%,transparent 11.8%),radial-gradient(ellipse at 65% 0,#52406c 0,transparent 58%),linear-gradient(165deg,#10162c,#272344 60%,#0b1a29);pointer-events:none}
#gm-coming-soon .gm-idle-art::before{content:"";position:absolute;inset:0 0 28%;opacity:.65;background-image:radial-gradient(circle,#d1dcf2 0 1px,transparent 1.5px),radial-gradient(circle,#d1dcf2 0 1px,transparent 1.5px);background-size:113px 83px,173px 127px;background-position:31px 22px,74px 56px}
#gm-coming-soon .gm-idle-art::after{content:"";position:absolute;inset:72% 0 0;border-top:2px solid #8c8eac88;background:repeating-linear-gradient(0deg,transparent 0 27px,#7c91b322 28px 29px),repeating-linear-gradient(110deg,transparent 0 92px,#7c91b326 93px 94px),linear-gradient(#111e30,#09131f)}
#gm-coming-soon .gm-stage:not([data-runtime=true]) .gm-canvas{visibility:hidden}
#gm-coming-soon .gm-stage[data-runtime=true] .gm-idle-art{display:none}
