@font-face{font-family:Barlow;src:url(../fonts/barlow-medium.ttf) format("truetype");font-weight:500;font-display:swap}@font-face{font-family:Barlow;src:url(../fonts/barlow-semibold.ttf) format("truetype");font-weight:600;font-display:swap}@font-face{font-family:Barlow Condensed;src:url(../fonts/barlow-condensed-black.ttf) format("truetype");font-weight:900;font-display:swap}:root{--panel:#132b23ef;--ink:#081812;--cream:#fff3d2;--muted:#c5d0bc;--gold:#f4c95d;--gold-edge:#8f8058;--leaf:#82b84b;--fuel:#7ed4db;--danger:#e85d43;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-6:24px;--space-8:32px;font-family:Barlow,Avenir Next,ui-sans-serif,sans-serif;color:var(--cream);background:var(--ink)}*{box-sizing:border-box}body{margin:0;overflow:hidden}canvas{width:100vw;height:100vh;display:block}[hidden]{display:none!important}.panel{background:var(--panel);border:2px solid var(--gold-edge);border-radius:6px;box-shadow:0 3px 0 var(--ink),0 12px 28px #00000040}#hud{position:fixed;inset:0;pointer-events:none;text-shadow:0 2px 0 var(--ink)}.vitals{position:absolute;top:clamp(16px,2.3vw,32px);left:clamp(16px,2.3vw,32px);width:min(288px,25vw);display:grid;gap:var(--space-3);padding:var(--space-3)}.meter-row{display:grid;grid-template-columns:22px 1fr;align-items:center;gap:var(--space-2)}.hud-icon,.weapon-icon{width:22px;height:22px;fill:currentColor;color:var(--cream)}.health-row .hud-icon{color:var(--leaf)}.fuel .hud-icon{color:var(--fuel)}.meter-heading,.boss-title{display:flex;justify-content:space-between;align-items:baseline;gap:12px;font-size:clamp(12px,.85vw,14px);font-weight:600;letter-spacing:.08em}.meter-heading span:first-child{color:var(--muted)}.meter-heading span:last-child{color:var(--cream);font-size:.92em}.meter{height:16px;margin-top:4px;padding:2px;background:#081812;border:1px solid #8f8058;border-radius:3px;box-shadow:inset 0 1px #ffffff18}.meter:after{content:"";display:block;height:100%;width:var(--v,100%);border-radius:1px;background:var(--leaf);box-shadow:0 0 10px #82b84b66}.fuel .meter:after{background:var(--fuel);box-shadow:0 0 10px #7ed4db66}.round{position:absolute;top:clamp(18px,2.3vw,34px);left:50%;transform:translate(-50%);width:min(620px,47vw);text-align:center}.round small{display:block;margin-bottom:5px;color:var(--muted);font-size:clamp(12px,.85vw,14px);font-weight:600;letter-spacing:.06em}.round strong{display:block;font-family:Barlow Condensed,sans-serif;color:var(--cream);font-size:clamp(24px,2.7vw,40px);font-weight:900;line-height:.95;letter-spacing:.02em;text-shadow:0 3px 0 var(--ink)}.boss{position:absolute;top:clamp(100px,7.5vw,128px);left:50%;transform:translate(-50%);width:min(500px,44vw);padding:var(--space-2) var(--space-3) var(--space-3);background:var(--panel);border:2px solid var(--gold-edge);border-radius:6px;box-shadow:0 3px 0 var(--ink),0 12px 28px #00000040}.boss-title{color:var(--gold);margin-bottom:5px}.boss-title span:last-child{color:var(--cream);font-size:.9em}.boss .meter{height:12px;margin:0;border-color:#a64d3c}.boss .meter:after{background:var(--danger);box-shadow:0 0 10px #e85d4366}#banner{position:absolute;top:calc(clamp(100px,7.5vw,128px) + 70px);left:0;right:0;width:fit-content;max-width:min(90vw,760px);margin-inline:auto;padding:8px 16px;background:var(--panel);border:2px solid var(--gold);border-radius:6px;box-shadow:0 3px 0 var(--ink);color:var(--cream);font-family:Barlow Condensed,sans-serif;font-size:clamp(24px,3vw,44px);font-weight:900;letter-spacing:.02em;line-height:1;text-align:center;animation:banner-pop .22s ease-out both}@keyframes banner-pop{0%{opacity:0;transform:translateY(-8px)}}#crosshair-anchor{position:absolute;left:0;top:0;width:0;height:0;will-change:transform}#crosshair{position:absolute;left:-14px;top:-14px;width:28px;height:28px;border:2px solid var(--cream);border-radius:50%;box-shadow:0 0 0 2px #132b23b0;transition:transform 80ms ease,border-color 80ms ease,box-shadow 80ms ease}#crosshair:before,#crosshair:after{content:"";position:absolute;background:var(--cream);filter:drop-shadow(0 2px var(--ink))}#crosshair:before{width:3px;height:8px;left:10.5px;top:-6px;box-shadow:0 30px var(--cream)}#crosshair:after{height:3px;width:8px;top:10.5px;left:-6px;box-shadow:30px 0 var(--cream)}#crosshair.hit{border-color:var(--gold);transform:scale(1.15);box-shadow:0 0 0 2px var(--ink),0 0 16px var(--gold)}#crosshair.kill{border-color:var(--danger);transform:scale(1.3);box-shadow:0 0 0 2px var(--ink),0 0 18px var(--danger)}.weapons{display:grid;gap:0;margin-top:var(--space-2);border-top:1px solid #8f805855}.weapon{display:grid;grid-template-columns:24px 1fr auto;gap:var(--space-2);align-items:center;min-height:44px;padding:6px 0}.weapon+.weapon{border-top:1px solid #8f805855}.weapon-icon{width:24px;height:24px;color:var(--muted)}#rocket-card .weapon-icon{color:var(--danger)}.weapon-name{display:block;font-size:clamp(15px,1.1vw,18px);font-weight:600;line-height:1}.weapon-use{display:block;margin-top:3px;color:var(--muted);font-size:14px;font-weight:500}.weapon-state{color:var(--gold);font-size:14px;font-weight:600;white-space:nowrap}.weapon.active{box-shadow:inset 3px 0 var(--gold);padding-left:8px;margin-left:-8px}.weapon.cooldown{opacity:.68}.weapon.cooldown .weapon-state{color:var(--muted)}.weapon.ready-pulse{animation:rocket-ready .4s ease-out}@keyframes rocket-ready{50%{background:#f4c95d22;box-shadow:inset 3px 0 var(--gold),0 0 14px #f4c95d88}}.overlay{position:fixed;inset:0;display:grid;place-items:center;padding:20px;background:#0818128a;overflow:auto}.menu-overlay{place-items:stretch center;padding:0;background:transparent;pointer-events:none}.menu-overlay button{pointer-events:auto}.card{width:min(450px,100%);padding:clamp(28px,4vw,48px);text-align:left;background:var(--panel);color:var(--cream);border:2px solid var(--gold-edge);border-radius:6px;box-shadow:0 3px 0 var(--ink),0 12px 28px #0006;animation:card-in .18s ease-out both}.menu-card{width:min(620px,100%);height:100%;padding:clamp(42px,8vh,96px) 20px clamp(28px,5vh,60px);display:flex;flex-direction:column;align-items:center;text-align:center;background:transparent;border:0;box-shadow:none;text-shadow:0 3px 0 var(--ink),0 0 20px #081812aa}@keyframes card-in{0%{opacity:0;transform:translateY(8px)}}.eyebrow{margin:0 0 var(--space-3);color:var(--gold);font-size:12px;font-weight:600;letter-spacing:.13em}.badge{display:inline-grid;place-items:center;width:42px;height:42px;margin-bottom:var(--space-3);border:1px solid var(--gold-edge);border-radius:6px;background:#132b23;color:var(--gold);font-size:22px}h1,h2{margin:0;font-family:Barlow Condensed,sans-serif;font-weight:900;letter-spacing:.02em}h1{font-size:clamp(72px,9vw,144px);line-height:.78;text-shadow:0 4px 0 var(--ink)}h2{font-size:clamp(38px,4.2vw,56px);line-height:.88}.card p:not(.eyebrow){margin:var(--space-4) 0 var(--space-6);max-width:35ch;color:var(--muted);font-size:17px;font-weight:500;line-height:1.4}.menu-card p:not(.eyebrow){margin-top:auto;margin-bottom:var(--space-4);color:var(--cream)}.menu-card button{width:min(360px,100%)}.card small{display:block;margin-top:var(--space-4);color:var(--muted);font-size:12px;font-weight:500;line-height:1.5}button{min-height:48px;width:100%;padding:12px 16px;border:2px solid #fff0b6;border-bottom:5px solid #b58b2a;border-radius:6px;background:var(--gold);color:var(--ink);cursor:pointer;font:600 18px/1.1 Barlow,sans-serif;letter-spacing:.02em;box-shadow:0 3px 0 var(--ink);transition:transform 80ms ease,filter .12s ease,box-shadow 80ms ease}button:hover{filter:brightness(1.08)}button:active{transform:translateY(2px);box-shadow:0 1px 0 var(--ink)}button:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid var(--cream);outline-offset:4px}button.secondary{margin-top:var(--space-3);padding:8px;border:0;border-bottom:1px solid var(--gold-edge);border-radius:0;background:transparent;color:var(--cream);box-shadow:none;font-size:14px;text-align:left}label{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:20px 0;color:var(--cream);font-size:15px;font-weight:600}label output{display:block;margin-top:2px;color:var(--muted);font-size:13px;font-weight:500}input[type=range]{width:48%;accent-color:var(--gold)}.check{justify-content:flex-start}.check input{accent-color:var(--gold)}select{width:48%;font:inherit;padding:7px 8px;border:1px solid var(--gold-edge);border-radius:3px;background:var(--ink);color:var(--cream)}.pulse{animation:pulse 1.2s infinite alternate}@keyframes pulse{to{opacity:.4;transform:scale(.92)}}body:has(#hud:not([hidden])):not(:has(.overlay:not([hidden]))) #game{cursor:none}@media(max-width:760px){.vitals{width:38vw}.round{left:auto;right:16px;transform:none;width:52vw;text-align:right}.boss{width:70vw;top:116px}.menu-card{padding-top:clamp(32px,7vh,64px)}}@media(max-height:550px){.card{padding:22px 28px}.menu-card{width:min(620px,100%);padding-block:24px}h1{font-size:clamp(52px,11vw,84px)}h2{font-size:36px}.card p:not(.eyebrow){margin:10px 0 16px;font-size:15px}.menu-card p:not(.eyebrow){margin-top:auto}.card small{margin-top:12px}.boss{top:52px;padding:5px 10px 7px}.boss .meter{height:10px}#banner{top:104px;font-size:clamp(20px,5.6vh,28px)}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}}
