[hidden]{display:none!important}:root{font-family:Arial,Helvetica,sans-serif;color:#153f4b;background:#0a6371;--cream:#fff1d4;--coral:#c85b45;--teal:#0a6371;color-scheme:light}*{box-sizing:border-box}html,body{height:100%;margin:0;overflow:hidden;overscroll-behavior:none}button,a{-webkit-tap-highlight-color:transparent}button{font:700 12px Arial;border:1px solid #17526033;border-radius:11px;background:#fff1d4;color:#153f4b;min-width:44px;min-height:44px;padding:9px 13px;cursor:pointer;touch-action:none}button:disabled{opacity:.55}button:focus-visible,a:focus-visible,canvas:focus-visible{outline:3px solid #f8be58;outline-offset:3px}a{color:inherit}#app{height:100vh;display:flex;flex-direction:column;padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left)}@supports(height:100dvh){#app{height:100dvh}}header{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:7px 25px;background:var(--cream);min-height:60px}header a{display:flex;align-items:center;gap:9px;text-decoration:none;min-height:44px;font-size:11px;letter-spacing:1.5px;font-weight:900}header>strong{font-size:11px;letter-spacing:2px}header>div{display:flex;gap:7px}#pause{font-size:18px}.hud{position:relative;display:flex;justify-content:space-between;gap:10px;min-height:66px;background:#ebddbc;padding:10px 25px 13px}.hud>div:first-child{display:flex;flex-direction:column;gap:5px;min-width:0}#wave-label{font-size:9px;letter-spacing:1.8px;font-weight:800}#objective{font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.stats{display:flex;align-items:center;gap:17px;font-size:14px;font-variant-numeric:tabular-nums}#health{color:#a74539;font-size:14px;white-space:nowrap}#score::before{content:'SCORE ';font-size:8px;letter-spacing:1px}progress{position:absolute;bottom:0;left:0;width:100%;height:4px;border:0;background:#cec1a0}progress::-webkit-progress-bar{background:#cec1a0}progress::-webkit-progress-value{background:#c55b44}progress::-moz-progress-bar{background:#c55b44}#scene{position:relative;flex:1;min-height:0;overflow:hidden;background:#77b9c1}canvas{display:block;width:100%;height:100%;touch-action:none}#notice{position:absolute;top:13px;left:50%;transform:translateX(-50%);padding:8px 15px;background:#143d4be8;color:#fff3d7;border-radius:30px;font-size:12px;white-space:nowrap;pointer-events:none}#notice:empty{display:none}.scene-caption{position:absolute;bottom:13px;left:16px;font-size:8px;letter-spacing:2px;color:#fff1d4a0;pointer-events:none}.controls{display:flex;align-items:center;justify-content:center;gap:13px;background:var(--cream);padding:10px 15px;min-height:78px}.controls button{min-height:52px;min-width:100px}#bearing{font-size:18px;font-weight:800;min-width:48px;text-align:center}#fire{background:#bd513f;color:#fff3dc;font-size:14px;min-width:130px}#reload{min-width:60px;font-size:9px;letter-spacing:1px;font-weight:900}.overlay{position:fixed;inset:0;display:grid;place-items:center;padding:14px;background:#07364899;backdrop-filter:blur(6px);z-index:3}.overlay[hidden]{display:none}#dialog{background:#fff1d4;border:1px solid #fff8e8;border-radius:23px;box-shadow:0 25px 80px #002b3966;width:min(450px,100%);max-height:calc(100dvh - 28px);padding:25px 30px;overflow:auto;text-align:center}#eyebrow{font-size:10px;font-weight:800;letter-spacing:2.5px;color:#937e56}h1{font-size:52px;letter-spacing:-2px;line-height:.94;margin:14px 0 18px}h1 em{font-family:Georgia,serif;font-weight:400;color:var(--coral)}#cover{height:120px;border-radius:12px;background:#0a6371 url('../artwork/dcbnest-play-banner.svg?v=20261017-shooters-art') center/cover;margin:12px -8px}#copy{font-size:13px;line-height:1.5}#copy p{margin:7px 0}#event-label{font-size:11px;font-weight:800;color:#7b694c;margin:12px 0}#dialog button{display:block;width:100%;margin-top:7px}#dialog a{display:block;padding:13px;min-height:44px;font-size:11px;margin-top:6px}#primary{background:#0a6371;color:#fff1d4;font-size:14px;min-height:50px}#fresh{border:0;background:transparent;color:#965446}#dialog:not(.ready) #cover{display:none}#dialog:not(.ready) h1{font-size:32px;letter-spacing:-.8px}#dialog.help #copy{text-align:left}#dialog.help #copy p{padding-bottom:6px}.stars{font-size:29px;color:#bf7442;letter-spacing:5px}@media(max-width:600px){header{padding:5px 11px;min-height:54px;gap:5px}header a{font-size:9px;letter-spacing:.9px}header>strong{display:none}.hud{padding:9px 12px 12px;min-height:71px}.stats{flex-wrap:wrap;justify-content:flex-end;gap:4px 10px;max-width:114px;font-size:12px}#health{width:100%;text-align:right;font-size:12px}#wave-label{font-size:8px;letter-spacing:1px}#objective{font-size:12px}.controls{padding:8px;gap:5px;min-height:70px}.controls button{min-width:65px;min-height:48px;padding:8px 7px;font-size:10px}#bearing{font-size:14px;min-width:35px}#fire{min-width:77px;font-size:12px}#reload{font-size:8px;min-width:38px;letter-spacing:0}#dialog{padding:20px 24px}h1{font-size:43px}#cover{height:95px}.scene-caption{font-size:7px;letter-spacing:1px;bottom:8px}}@media(max-width:360px){.controls button{min-width:62px}#fire{min-width:70px}#reload{display:none}.controls{gap:9px}.scene-caption{max-width:105px;line-height:1.6}}@media(max-height:480px){header{min-height:48px;padding:2px 15px}.hud{min-height:48px;padding:5px 15px 8px}.hud>div:first-child{gap:2px}#objective{font-size:12px}.stats{flex-wrap:nowrap;max-width:none}#health{width:auto}.controls{min-height:56px;padding:5px 12px}.controls button{min-height:44px}#dialog{padding:15px 24px}#dialog.ready{width:650px;display:grid;grid-template-columns:1fr 1fr;gap:4px 17px;text-align:left}#dialog.ready #eyebrow,#dialog.ready h1,#dialog.ready #copy{grid-column:1}#dialog.ready #cover{grid-column:2;grid-row:1/4;height:175px;margin:0}#dialog.ready h1{font-size:38px;margin:8px 0}#dialog.ready #copy{font-size:11px}#dialog.ready #event-label{grid-column:1;margin:7px 0}#dialog.ready #primary{grid-column:2;grid-row:4}#dialog.ready #help{grid-column:2}#dialog.ready #fresh{grid-column:1}#dialog.ready a{grid-column:1/3;text-align:center;margin:0;padding:10px}#dialog.help #copy p{font-size:12px;padding:0}}
/* Help keeps its actions visible; only the field notes scroll on short screens. */
#dialog.help{display:flex;flex-direction:column;height:min(650px,calc(100dvh - 28px));overflow:hidden}#dialog.help #eyebrow,#dialog.help h1,#dialog.help button,#dialog.help>a{flex-shrink:0}#dialog.help #copy{flex:1;min-height:0;overflow:auto;overscroll-behavior:contain;padding-right:5px}#dialog.help #event-label{display:none}#dialog.help h1{margin:10px 0 12px}#dialog.help>a{margin-top:4px}#dialog.help #primary{margin-top:10px}@media(max-height:480px){#dialog.help h1{font-size:26px;margin:7px 0 9px}#dialog.help #eyebrow{font-size:9px}}
