:root{--sand:#efe3c8;--paper:#f7f0de;--ink:#1d2328;--signal:#d8452b;--sea:#1f7a7a;--brass:#c99a3b;--night:#0f1a24;--ink-soft:#1d2328b3;--ink-faint:#1d232829;--paper-soft:#f7f0debd;--plate:#0f1a24cc;--plate-edge:#efe3c838;--sea-bright:#4fb8a8;--signal-bright:#ff8a70;--brass-bright:#e2b85a;--font-stencil:"Saira Stencil One", "Arial Black", Impact, sans-serif;--font-ui:"Barlow Condensed", "Arial Narrow", "Roboto Condensed", "Helvetica Neue", Arial, sans-serif;--gutter:clamp(.75rem, 3vw, 2rem);--ease-out:cubic-bezier(.2, .8, .2, 1);--hard-shadow:8px 8px 0 #0f1a248c;--grain:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='g'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 0.11 0 0 0 0 0.13 0 0 0 0 0.15 0 0 0 0.11 0'/%3E%3C/filter%3E%3Crect width='180' height='180' filter='url(%23g)'/%3E%3C/svg%3E");--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}*,:before,:after{box-sizing:border-box}html,body{background:var(--night);width:100%;height:100%;margin:0;overflow:hidden}body{font-family:var(--font-ui);color:var(--ink);-webkit-font-smoothing:antialiased;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent;overscroll-behavior:none;font-weight:500}[hidden]{display:none!important}h1,h2,h3,p,dl,dd{margin:0}ol,ul{margin:0;padding:0;list-style:none}#scene{touch-action:none;outline:none;display:block;position:fixed;inset:0}#ui-root{z-index:1;pointer-events:none;-webkit-user-select:none;user-select:none;position:fixed;inset:0;overflow:clip}body[data-ui-mode=hud] #scene{cursor:none}.visually-hidden{clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.menu-layer{z-index:5;position:absolute;inset:0}.menu-layer:empty{display:none}.screen{padding:max(var(--gutter), env(safe-area-inset-top)) max(var(--gutter), env(safe-area-inset-right)) max(var(--gutter), env(safe-area-inset-bottom)) max(var(--gutter), env(safe-area-inset-left));position:absolute;inset:0;overflow:clip}.sheet{pointer-events:auto;background-color:var(--paper);background-image:var(--grain);color:var(--ink);border:2px solid var(--ink);box-shadow:var(--hard-shadow);scrollbar-width:thin;scrollbar-color:var(--ink) transparent;overscroll-behavior:contain;position:relative}.sheet-header{border-bottom:3px double var(--ink);flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:.75rem 1rem;padding-bottom:1rem;display:flex}.sheet-title{gap:.4rem;display:grid}.sheet-tools{flex-wrap:wrap;align-items:center;gap:.6rem;display:flex}.kicker{font:700 .8rem/1.2 var(--font-ui);text-transform:uppercase;letter-spacing:1px;color:var(--ink-soft)}.sheet-heading{font:400 clamp(2rem, 4vw, 2.75rem) / .95 var(--font-stencil);text-transform:uppercase}.sheet-line,.sheet-note{color:var(--ink-soft);font-size:1.1rem;line-height:1.3}.sheet-note{font-size:.95rem}.button{appearance:none;border:2px solid var(--ink);background:var(--paper);min-height:2.75rem;color:var(--ink);font:700 1.1rem/1 var(--font-ui);letter-spacing:1px;text-transform:uppercase;text-align:left;cursor:pointer;box-shadow:3px 3px 0 var(--ink);transition:transform 90ms var(--ease-out), box-shadow 90ms var(--ease-out), background-color .14s, color .14s;border-radius:0;justify-content:center;align-items:center;gap:.5rem;margin:0;padding:.6rem 1.1rem;display:inline-flex}.button:hover{background:var(--sand)}.button:active{box-shadow:0 0 0 var(--ink);transform:translate(3px,3px)}.button:focus-visible{outline:3px solid var(--sea);outline-offset:3px}.button--primary{background:var(--ink);color:var(--paper);box-shadow:3px 3px 0 var(--brass)}.button--primary:hover{background:var(--signal);border-color:var(--ink)}.button--primary:active{box-shadow:0 0 0 var(--brass)}.button--quiet{box-shadow:none;background:0 0;border-color:#0000}.button--quiet:hover{background:var(--ink-faint)}.button--quiet:active{transform:none}.button--wide{width:100%}.button--stacked,.button--hero{flex-direction:column;justify-content:center;align-items:flex-start;gap:.25rem;min-width:0}.button-label,.button-detail{text-overflow:ellipsis;white-space:nowrap;max-width:100%;overflow:hidden}.button-detail{font:500 .95rem/1.15 var(--font-ui);color:var(--ink-soft)}.button--primary .button-detail{color:var(--paper-soft)}.button[aria-disabled=true]{cursor:not-allowed;color:var(--ink-soft);box-shadow:none;background:0 0;border-style:dashed}.button[aria-disabled=true]:active{transform:none}.stamp{color:var(--signal);font:400 1rem/1 var(--font-stencil);text-transform:uppercase;white-space:nowrap;opacity:.9;mix-blend-mode:multiply;border:4px double;justify-self:start;padding:.25rem .6rem;display:inline-block;transform:rotate(-4deg)}.stamp--sea{color:var(--sea)}.stamp--ink{color:var(--ink)}.stars{gap:.15rem;display:inline-flex}.star{background:var(--ink-faint);clip-path:polygon(50% 0%,61% 35%,98% 35%,68% 57%,79% 91%,50% 70%,21% 91%,32% 57%,2% 35%,39% 35%);width:1rem;height:1rem}.star.is-filled{background:var(--brass)}.tag{font:700 .75rem/1 var(--font-ui);text-transform:uppercase;letter-spacing:1px;white-space:nowrap;border:1px solid;padding:.2rem .4rem;display:inline-block}.key{border:1px solid var(--ink);background:var(--sand);min-width:1.5rem;font:700 .8rem/1 var(--font-ui);text-transform:uppercase;text-align:center;white-space:nowrap;border-bottom-width:3px;padding:.2rem .4rem;display:inline-block}.cash-tag{background:var(--ink);color:var(--paper);border-left:4px solid var(--brass);white-space:nowrap;align-items:baseline;gap:.4rem;padding:.5rem .75rem;display:inline-flex}.cash-tag-label{font:700 .75rem/1 var(--font-ui);text-transform:uppercase;letter-spacing:1px;color:var(--brass-bright)}.cash-tag-value{font:400 1.25rem/1 var(--font-stencil);font-variant-numeric:tabular-nums}.legend-block{gap:.5rem;display:grid}.legend-heading{font:700 .8rem/1 var(--font-ui);text-transform:uppercase;letter-spacing:1px;color:var(--ink-soft)}.legend{gap:.4rem;display:grid}.legend-row{grid-template-columns:8rem minmax(0,1fr);align-items:center;gap:.75rem;display:grid}.legend-keys{flex-wrap:wrap;gap:.25rem;display:flex}.legend-action{font-size:1rem;line-height:1.2}.legend-row[data-input=touch]{display:none}@media (pointer:coarse){.legend-row[data-input=pointer]{display:none}.legend-row[data-input=touch]{display:grid}}@keyframes sheet-from-left{0%{opacity:0;transform:translate(-28px)}}@keyframes sheet-from-right{0%{opacity:0;transform:translate(28px)}}@keyframes sheet-from-below{0%{opacity:0;transform:translateY(18px)rotate(-.5deg)}}@keyframes stamp-in{0%{opacity:0;transform:scale(1.9)rotate(-14deg)}60%{opacity:1;transform:scale(.94)rotate(-4deg)}to{opacity:.9;transform:scale(1)rotate(-4deg)}}@keyframes star-in{0%{opacity:0;transform:scale(2.4)rotate(-40deg)}}@keyframes ink-in{0%{opacity:0;transform:translateY(4px)}}@media (prefers-reduced-motion:reduce){.sheet,.sheet>*,.briefing>*,.stamp,.star{animation:none!important}.button{transition:none}}.screen--title{justify-content:flex-start;align-items:center;display:flex}.sheet--title{width:min(31rem,100%);max-height:100%;animation:sheet-from-left .46s var(--ease-out) both;gap:1.25rem;padding:clamp(1.25rem,3vw,2.25rem);display:grid;overflow-y:auto;container-type:inline-size}.masthead{border-bottom:2px solid var(--ink);gap:.75rem;padding-bottom:1.25rem;display:grid;position:relative}.wordmark{font:400 clamp(2.75rem, 6vw, 4.5rem) / .86 var(--font-stencil);text-transform:uppercase;letter-spacing:-1px;font-size:min(4.75rem,16cqi);display:grid}.wordmark-line--sea{color:var(--sea)}.masthead .stamp{animation:stamp-in .42s var(--ease-out) .38s both;font-size:.95rem;position:absolute;top:1.75rem;right:0;transform:rotate(-9deg)}.title-hook{max-width:24ch;font-size:1.25rem;line-height:1.25}.title-commands{gap:.75rem;display:grid}.button--hero{width:100%;padding:.85rem 1.25rem}.button--hero .button-label{font:400 2rem/1 var(--font-stencil)}.title-secondary{grid-template-columns:minmax(0,1fr) auto;gap:.75rem;display:grid}.service-record{border-top:1px dashed var(--ink-soft);font:700 .85rem/1.2 var(--font-ui);text-transform:uppercase;color:var(--ink-soft);padding-top:1rem}.screen--armory{justify-content:center;align-items:center;display:flex}.sheet--armory{width:min(46rem,100%);max-height:100%;animation:sheet-from-below .38s var(--ease-out) both;gap:1rem;padding:clamp(1.25rem,3vw,2rem);display:grid;overflow-y:auto}.upgrade-row{border-bottom:1px dashed var(--ink-soft);grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"name pips""description purchase";align-items:center;gap:.5rem 1.5rem;padding:1rem 0;display:grid}.upgrade-name{flex-wrap:wrap;grid-area:name;align-items:baseline;gap:.25rem .75rem;min-width:0;display:flex}.upgrade-name-text{font:700 1.5rem/1 var(--font-ui);text-transform:uppercase}.upgrade-mark{font:700 .85rem/1 var(--font-ui);text-transform:uppercase;letter-spacing:1px;color:var(--ink-soft)}.pips{grid-area:pips;justify-self:end;gap:.25rem;display:flex}.pip{border:2px solid var(--ink);width:1.25rem;height:.6rem}.pip.is-filled{background:var(--brass)}.pip.is-new{animation:pip-in .56s var(--ease-out) both}.upgrade-row[data-state=maxed] .pip.is-filled{background:var(--ink)}.upgrade-description{color:var(--ink-soft);grid-area:description;font-size:1.05rem;line-height:1.3}.upgrade-purchase{grid-area:purchase;justify-self:end;align-items:center;gap:.75rem;display:flex}.upgrade-price{justify-items:end;gap:.2rem;display:grid}.upgrade-cost{font:400 1.25rem/1 var(--font-stencil);font-variant-numeric:tabular-nums}.upgrade-shortfall{font:700 .75rem/1 var(--font-ui);text-transform:uppercase;letter-spacing:1px;color:var(--signal)}.upgrade-row[data-state=short] .upgrade-cost{color:var(--signal)}.button--buy{min-width:6rem}.upgrade-empty{color:var(--ink-soft);padding:1.5rem 0;font-size:1.1rem}.armory-funds{display:inline-flex}.screen--pause,.screen--result{pointer-events:auto;background:#0f1a2480;justify-content:center;align-items:center;display:flex}.sheet--pause{width:min(26rem,100%);max-height:100%;animation:sheet-from-below .26s var(--ease-out) both;gap:1rem;padding:clamp(1.25rem,3vw,2rem);display:grid;overflow-y:auto}.pause-heading{gap:.4rem;display:grid}.pause-commands{border-bottom:2px solid var(--ink);gap:.6rem;padding:.25rem 0 1rem;display:grid}.pause-commands .mute-toggle{justify-self:start}.sheet--report{width:min(34rem,100%);max-height:100%;animation:sheet-from-below .42s var(--ease-out) both;gap:1.1rem;padding:clamp(1.25rem,3.5vw,2.25rem);display:grid;overflow-y:auto}.sheet--report>.stamp{animation:stamp-in .46s var(--ease-out) .24s both;font-size:clamp(1.25rem,4vw,1.75rem)}.report-heading{gap:.4rem;display:grid}.report-title{overflow-wrap:anywhere}.stars--large{gap:.5rem}.stars--large .star{width:2.75rem;height:2.75rem;animation:star-in .38s var(--ease-out) both}.stars--large .star:first-child{animation-delay:.52s}.stars--large .star:nth-child(2){animation-delay:.7s}.stars--large .star:nth-child(3){animation-delay:.88s}.report-line{font-size:1.15rem;line-height:1.3}.stats{border-top:2px solid var(--ink);display:grid}.stat{border-bottom:1px dotted var(--ink-soft);justify-content:space-between;align-items:baseline;gap:1rem;padding:.6rem 0;display:flex}.stat dt{font:700 .95rem/1 var(--font-ui);text-transform:uppercase;color:var(--ink-soft)}.stat dd{font:400 1.5rem/1 var(--font-stencil);font-variant-numeric:tabular-nums}.stat--highlight dd{padding:0 .25rem;box-shadow:inset 0 -.5em #c99a3b80}.campaign-line{border-left:4px solid var(--brass);background:var(--ink);color:var(--paper);font:700 1.1rem/1.3 var(--font-ui);text-transform:uppercase;padding:.75rem 1rem}.report-actions{flex-wrap:wrap;gap:.75rem;display:flex}.report-actions .button{flex:8rem}.report-actions .button--primary{flex-basis:100%}@keyframes pip-in{0%{background:var(--paper);transform:scaleY(.2)}60%{transform:scaleY(1.6)}}@media (width<=640px){.screen--title{align-items:flex-end;padding-top:16vh}.sheet--title{gap:1rem;width:100%}.title-hook{font-size:1.1rem}.masthead .stamp{font-size:.8rem;top:1.25rem}}@media (width<=560px){.upgrade-row{grid-template-columns:minmax(0,1fr);grid-template-areas:"name""pips""description""purchase"}.pips,.upgrade-purchase{justify-self:start}.upgrade-price{justify-items:start}}@media (prefers-reduced-motion:reduce){.pip.is-new{animation:none}}.screen--levels{gap:var(--gutter);grid-template:"briefing.board"minmax(0,1fr)/minmax(16rem,27rem) minmax(0,1fr) minmax(21rem,38rem);display:grid}.sheet--levels{min-height:0;animation:sheet-from-right .42s var(--ease-out) both;flex-direction:column;grid-area:board;gap:1rem;padding:clamp(1rem,2.5vw,1.75rem);display:flex}.level-table{flex-direction:column;flex:1;min-height:0;display:flex}.level-columns,.level-row{grid-template-columns:3rem minmax(0,1fr) auto;column-gap:.75rem;display:grid}.level-columns{border-bottom:3px double var(--ink);font:700 .75rem/1 var(--font-ui);text-transform:uppercase;letter-spacing:1px;color:var(--ink-soft);padding:0 .75rem .4rem}.level-columns span:last-child{text-align:right}.level-list{scrollbar-width:thin;scrollbar-color:var(--ink) transparent;overscroll-behavior:contain;flex:1;min-height:0;overflow-y:auto}.level-row{appearance:none;width:100%;color:inherit;font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;border-bottom:1px dashed #1d232859;border-radius:0;grid-template-areas:"number name record""number meta record";align-items:center;row-gap:.3rem;margin:0;padding:.6rem .75rem;transition:background-color .12s}.level-row:hover{background:#1d232812}.level-row:focus-visible{outline:3px solid var(--sea);outline-offset:-3px}.level-row.is-selected{background:var(--ink);color:var(--paper)}.level-row.is-selected:focus-visible{outline-color:var(--brass-bright)}.level-number{font:400 1.75rem/1 var(--font-stencil);font-variant-numeric:tabular-nums;grid-area:number;gap:.25rem;display:grid}.level-number:after{content:"";width:calc(var(--tide,0) * 100%);background:var(--sea);height:3px}.level-row.is-selected .level-number{color:var(--brass-bright)}.level-row.is-selected .level-number:after{background:var(--sea-bright)}.level-name{text-overflow:ellipsis;white-space:nowrap;min-width:0;font:700 1.25rem/1.1 var(--font-ui);text-transform:uppercase;grid-area:name;overflow:hidden}.level-meta{min-width:0;font:700 .75rem/1 var(--font-ui);text-transform:uppercase;letter-spacing:1px;color:var(--ink-soft);flex-wrap:wrap;grid-area:meta;align-items:center;gap:.25rem .5rem;display:flex}.level-row.is-selected .level-meta{color:var(--paper-soft)}.level-meta .tag{color:var(--sea);padding:.15rem .3rem;font-size:.7rem}.level-row.is-selected .level-meta .tag{color:var(--sea-bright)}.level-record{grid-area:record;justify-items:end;gap:.3rem;display:grid}.level-best{font:700 .75rem/1 var(--font-ui);text-transform:uppercase;letter-spacing:1px;white-space:nowrap;color:var(--ink-soft)}.level-row.is-selected .level-best{color:var(--paper-soft)}.level-row.is-selected .star{background:#f7f0de38}.level-row.is-selected .star.is-filled{background:var(--brass-bright)}.level-row.is-locked{color:var(--ink-soft)}.level-row.is-locked .level-number{opacity:.55}.level-row.is-locked .stamp{border-width:3px;font-size:.7rem}.level-row.is-selected .stamp{color:var(--paper);mix-blend-mode:normal}.redaction{vertical-align:middle;background:var(--ink);width:9rem;max-width:100%;height:.9rem;display:inline-block;transform:skew(-6deg)}.level-item:nth-child(3n) .redaction{width:6.5rem}.level-item:nth-child(3n+2) .redaction{width:11rem}.level-row.is-selected .redaction{background:var(--paper)}.briefing{max-height:100%;animation:sheet-from-left .42s var(--ease-out) 90ms both;grid-area:briefing;align-self:end;gap:1rem;padding:clamp(1.1rem,2.5vw,1.5rem);display:grid;overflow-y:auto}.briefing>*{animation:ink-in .24s var(--ease-out) both}.briefing-header{gap:.4rem;display:grid}.briefing-title{align-items:baseline;gap:.75rem;min-width:0;display:flex}.briefing-number{font:400 3rem/.9 var(--font-stencil);color:var(--signal)}.briefing-name{min-width:0;font:700 1.75rem/1.05 var(--font-ui);text-transform:uppercase;overflow-wrap:anywhere}.briefing-orders{border-left:3px solid var(--ink);font:italic 500 1.15rem/1.35 var(--font-ui);padding-left:.75rem}.briefing-row{flex-wrap:wrap;align-items:center;gap:.5rem .75rem;display:flex}.briefing-label{min-width:6rem;font:700 .75rem/1 var(--font-ui);text-transform:uppercase;letter-spacing:1px;color:var(--ink-soft)}.tag-list{flex-wrap:wrap;gap:.4rem;display:flex}.briefing .tag{color:var(--signal)}.briefing-none,.briefing-best{font:700 .85rem/1 var(--font-ui);text-transform:uppercase;letter-spacing:1px}.briefing-none{color:var(--ink-soft)}@media (width<=1000px){.screen--levels{grid-template-columns:minmax(15rem,1fr) minmax(20rem,1.3fr);grid-template-areas:"briefing board"}}@media (width<=680px) and (orientation:portrait){.screen--levels{flex-direction:column;gap:.75rem;display:flex}.sheet--levels{flex:1 1 0;gap:.75rem;min-height:14rem}.sheet--levels .sheet-heading{font-size:1.75rem}.briefing{flex:0 auto;align-self:stretch;gap:.75rem;max-height:48%}.briefing-number{font-size:2.25rem}.briefing-name{font-size:1.4rem}.briefing-orders{font-size:1.05rem}}@media (width<=420px){.level-columns,.level-row{grid-template-columns:2.5rem minmax(0,1fr) auto;column-gap:.5rem}.level-row{padding:.5rem}.level-number{font-size:1.5rem}.level-name{font-size:1.1rem}.level-meta .tag,.level-best{display:none}}@media (prefers-reduced-motion:reduce){.level-row{transition:none}}.hud{z-index:1;padding:max(.75rem, env(safe-area-inset-top)) max(.75rem, env(safe-area-inset-right)) max(.75rem, env(safe-area-inset-bottom)) max(.75rem, env(safe-area-inset-left));color:var(--paper);font-variant-numeric:tabular-nums;visibility:hidden;flex-direction:column;justify-content:space-between;gap:.75rem;display:flex;position:absolute;inset:0}body[data-ui-mode=hud] .hud,body[data-ui-mode=pause] .hud{visibility:visible}.plate{border:1px solid var(--plate-edge);border-left:3px solid var(--brass);background:var(--plate);padding:.5rem .75rem}.hud-label{font:700 .7rem/1 var(--font-ui);text-transform:uppercase;letter-spacing:1px;color:var(--brass-bright);white-space:nowrap}.hud-top{grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);grid-template-areas:"level boss cash";align-items:start;gap:.75rem;display:grid}.hud-level{grid-area:level;justify-self:start;align-items:center;gap:.75rem;min-width:0;max-width:100%;display:flex}.hud-level-number{font:400 2.25rem/.9 var(--font-stencil);color:var(--brass-bright)}.hud-level-details{gap:.3rem;min-width:0;display:grid}.hud-level-name{text-overflow:ellipsis;white-space:nowrap;max-width:16rem;font:700 1.1rem/1 var(--font-ui);text-transform:uppercase;overflow:hidden}.hud-level-status{font:700 .85rem/1 var(--font-ui);text-transform:uppercase;letter-spacing:1px;color:var(--paper-soft);white-space:nowrap;flex-wrap:wrap;gap:.25rem .6rem;display:flex}.hud-boss{border-left-color:var(--signal);grid-area:boss;grid-template-columns:auto minmax(0,1fr);grid-template-areas:"label name""bar bar";align-items:baseline;gap:.4rem .75rem;width:min(30rem,40vw);display:grid}.hud-boss .hud-label{color:var(--signal);grid-area:label}.hud-boss-name{text-overflow:ellipsis;white-space:nowrap;max-width:100%;font:400 1.25rem/1 var(--font-stencil);text-transform:uppercase;grid-area:name;justify-self:end;overflow:hidden}.hud-cash-cluster{grid-area:cash;justify-self:end;align-items:flex-start;gap:.5rem;display:flex}.hud-cash{border-left:1px solid var(--plate-edge);border-right:3px solid var(--brass);grid-template-columns:auto auto;align-items:baseline;gap:.3rem .75rem;display:grid}.hud-cash-value{font:400 1.75rem/1 var(--font-stencil);color:var(--brass-bright);transform-origin:100%;justify-self:end;display:inline-block}.hud-bottom{justify-content:space-between;align-items:flex-end;gap:.75rem;display:flex}.bar{background:#f7f0de24;height:.6rem;display:block;position:relative;overflow:hidden}.bar-trail,.bar-fill{transform-origin:0;position:absolute;inset:0;transform:scaleX(0)}.bar-trail{background:#f7f0de99;transition:transform .6s ease-in .25s}.bar-fill{background:var(--paper)}.hud-health{grid-template-columns:auto minmax(0,1fr);grid-template-areas:"label value""bar bar";align-items:baseline;gap:.4rem .75rem;width:min(17rem,44vw);display:grid}.hud-health .hud-label{grid-area:label}.hud-health-value{font:400 2rem/1 var(--font-stencil);grid-area:value;justify-self:end}.bar--health{grid-area:bar;height:.75rem}.bar--health:after{content:"";background:repeating-linear-gradient(90deg, transparent 0 calc(10% - 2px), var(--night) calc(10% - 2px) 10%);position:absolute;inset:0}.bar--health .bar-fill{background:var(--sea-bright)}.hud-health[data-state=low] .bar-fill{background:var(--brass-bright)}.hud-health[data-state=low] .hud-health-value{color:var(--brass-bright)}.hud-health[data-state=critical]{border-left-color:var(--signal);animation:.9s ease-in-out infinite critical-pulse}.hud-health[data-state=critical] .bar-fill{background:var(--signal)}.hud-health[data-state=critical] .hud-health-value,.hud-health[data-state=critical] .hud-label{color:var(--signal-bright)}.hud-weapons{align-items:flex-end;gap:.5rem;display:flex}.hud-cannon{grid-template-columns:auto auto;grid-template-areas:"ring label""ring state";align-items:center;gap:.3rem .6rem;display:grid}.hud-cannon .hud-label{grid-area:label;align-self:end}.hud-cannon-ring{grid-area:ring;width:2.75rem;height:2.75rem}.hud-cannon-state{font:700 .85rem/1 var(--font-ui);text-transform:uppercase;letter-spacing:1px;color:var(--paper-soft);grid-area:state;align-self:start}.hud-cannon[data-state=ready] .hud-cannon-state{color:var(--brass-bright)}.touch-button{appearance:none;border:2px solid var(--plate-edge);background:var(--plate);color:var(--paper);font:inherit;cursor:pointer;pointer-events:none;touch-action:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;border-radius:0;margin:0;padding:0;display:none}.touch-cannon{border-left:3px solid var(--brass);grid-template-areas:"stack";place-items:center;width:5.5rem;height:5.5rem}.touch-cannon-ring{grid-area:stack;width:4.5rem;height:4.5rem}.touch-cannon-label{font:700 .8rem/1 var(--font-ui);text-transform:uppercase;letter-spacing:1px;grid-area:stack}.touch-cannon[data-state=ready]{border-color:var(--brass-bright)}.touch-cannon.is-pressed{background:#d8452bd9;transform:translate(2px,2px)}.touch-pause{place-items:center;width:3rem;height:3rem}.pause-icon{border-left:.35rem solid;border-right:.35rem solid;width:1rem;height:1.1rem}@media (pointer:coarse){.touch-button{display:grid}body[data-ui-mode=hud] .touch-button{pointer-events:auto}.hud-cannon{display:none}}@keyframes critical-pulse{50%{background-color:#8c1c0ee0}}@media (width<=640px),(pointer:coarse) and (width<=900px){.hud-top{grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"level cash""boss boss"}.hud-boss{width:100%}}@media (width<=640px){.hud-level{gap:.5rem}.hud-level-number{font-size:1.75rem}.hud-level-name{display:none}.hud-level-status{flex-direction:column}.hud-cash{grid-template-columns:auto;justify-items:end}.hud-cash .hud-label{display:none}.hud-cash-value{font-size:1.25rem}.hud-health{width:min(11rem,44vw)}.hud-health-value{font-size:1.5rem}.hud-weapons{flex-direction:column;align-items:flex-end}}@media (prefers-reduced-motion:reduce){.bar-trail{transition:none}.hud-health[data-state=critical]{animation:none!important}}.minimap{visibility:hidden;pointer-events:none;gap:.4rem;padding:.4rem .5rem .5rem;display:grid}body[data-ui-mode=hud] .minimap{visibility:visible}.minimap-canvas{aspect-ratio:10/11;outline:1px solid var(--plate-edge);width:clamp(10rem,min(16vw,26vh),13rem);display:block}@media (width<=640px){.minimap-canvas{width:min(9rem,36vw)}}@media (height<=500px){.minimap-canvas{width:7.5rem}}.ring{overflow:visible;transform:rotate(-90deg)}.ring-track,.ring-arc{fill:none;stroke-width:5px}.ring-track{stroke:#f7f0de2e}.ring-arc{stroke:var(--paper)}[data-state=ready]>.ring .ring-arc{stroke:var(--brass-bright)}.crosshair{--cone:0px;--gap:calc(max(var(--cone), 4px) + 5px);z-index:4;visibility:hidden;will-change:transform;width:0;height:0;position:absolute;top:0;left:0}body[data-ui-mode=hud] .crosshair{visibility:visible}.crosshair-reticle{width:48px;height:48px;position:absolute;top:-24px;left:-24px}.crosshair-ring{width:48px;height:48px;position:absolute;inset:0}.crosshair .ring-track{stroke:#0f1a2459;stroke-width:2px}.crosshair .ring-arc{stroke:#f7f0decc;stroke-width:2px}.crosshair[data-state=ready] .ring-arc{stroke:var(--brass-bright)}.crosshair-tick{--angle:0deg;background:var(--paper);width:2px;height:10px;rotate:var(--angle);transform:translateY(calc(-1 * var(--gap)));transition:rotate 80ms ease-out,background-color 80ms;position:absolute;top:19px;left:23px;box-shadow:0 0 0 1px #0f1a24e6}.crosshair-tick:nth-child(3){--angle:90deg}.crosshair-tick:nth-child(4){--angle:180deg}.crosshair-tick:nth-child(5){--angle:270deg}.crosshair-dot{background:var(--paper);width:4px;height:4px;position:absolute;top:22px;left:22px;box-shadow:0 0 0 1px #0f1a24e6}.crosshair.is-on-target .crosshair-tick,.crosshair.is-on-target .crosshair-dot{background:var(--signal)}.announcer{z-index:3;text-align:center;flex-direction:column;align-items:center;gap:.75rem;width:min(92vw,44rem);display:flex;position:absolute;top:22%;left:50%;transform:translate(-50%)}.banner{border-top:2px solid var(--brass);border-bottom:2px solid var(--brass);background:var(--plate);max-width:100%;color:var(--paper);justify-items:center;gap:.3rem;padding:.6rem 1.25rem;animation-name:banner-in-out;animation-timing-function:linear;animation-fill-mode:both;display:grid;position:relative}.banner-text{overflow-wrap:anywhere;max-width:100%;font:400 clamp(1.5rem, 4vw, 2.5rem) / 1 var(--font-stencil);text-transform:uppercase}.banner-kicker{font:700 .85rem/1 var(--font-ui);text-transform:uppercase;letter-spacing:1px;color:var(--brass-bright)}.banner--level{border:2px solid var(--ink);background:var(--paper);background-image:var(--grain);color:var(--ink);padding:.85rem 2rem;box-shadow:6px 6px #0f1a248c}.banner--level .banner-text{font-size:clamp(2rem,6vw,3.75rem)}.banner--level .banner-kicker{color:var(--signal)}.banner--warning{background:var(--signal);border:0;margin:6px 0;padding:.75rem 1.5rem}.banner--warning:before,.banner--warning:after{content:"";background:repeating-linear-gradient(-45deg, var(--ink) 0 8px, var(--brass-bright) 8px 16px);height:6px;position:absolute;left:0;right:0}.banner--warning:before{top:-6px}.banner--warning:after{bottom:-6px}.floating-layer{z-index:2;position:absolute;inset:0}.floating-text{font:400 1.5rem/1 var(--font-stencil);color:var(--brass-bright);white-space:nowrap;text-shadow:1px 1px 0 var(--ink), -1px 1px 0 var(--ink), 1px -1px 0 var(--ink), -1px -1px 0 var(--ink), 2px 3px 0 #0f1a2499;animation:float-up .9s var(--ease-out) both;position:absolute;transform:translate(-50%,-50%)}.floating-text.is-big{color:var(--paper);font-size:2.25rem}.damage-vignette{z-index:0;opacity:0;background:radial-gradient(#d8452b00 52%,#d8452b73 78%,#781408d9 100%);position:absolute;inset:0}@keyframes banner-in-out{0%{opacity:0;transform:scale(1.14)}8%,82%{opacity:1;transform:scale(1)}to{opacity:0;transform:translateY(-10px)}}@keyframes banner-fade{0%,to{opacity:0}6%,85%{opacity:1}}@keyframes float-up{0%{opacity:0;transform:translate(-50%,-30%)scale(.6)}15%{opacity:1;transform:translate(-50%,-80%)scale(1.1)}to{opacity:0;transform:translate(-50%,-260%)scale(1)}}@keyframes float-fade{0%,to{opacity:0}15%,70%{opacity:1}}@media (width<=640px){.banner-text{font-size:1.4rem}.banner--level .banner-text{font-size:1.75rem}}@media (prefers-reduced-motion:reduce){.banner{animation-name:banner-fade}.floating-text{animation-name:float-fade}.crosshair-tick{transition:none}}.fatal-message{width:min(30rem, calc(100% - 2 * var(--gutter)));border:2px solid var(--ink);border-left:6px solid var(--signal);background-color:var(--paper);background-image:var(--grain);box-shadow:var(--hard-shadow);color:var(--ink);font:700 1.25rem/1.3 var(--font-ui);pointer-events:auto;-webkit-user-select:text;user-select:text;padding:1.25rem 1.5rem;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.target-bars{visibility:hidden;position:absolute;inset:0;overflow:clip}body[data-ui-mode=hud] .target-bars,body[data-ui-mode=pause] .target-bars{visibility:visible}.target-bar{border:1px solid var(--plate-edge);border-left:2px solid var(--brass);background:var(--plate);opacity:0;will-change:transform, opacity;width:3.5rem;margin:-.75rem 0 0 -1.75rem;padding:2px;position:absolute;top:0;left:0}.bar--target{height:.25rem}.bar--target:after{content:"";background:repeating-linear-gradient(90deg, transparent 0 calc(25% - 1px), var(--night) calc(25% - 1px) 25%);position:absolute;inset:0}.target-bar[data-state=low] .bar-fill{background:var(--brass-bright)}.target-bar[data-state=critical]{border-left-color:var(--signal)}.target-bar[data-state=critical] .bar-fill{background:var(--signal-bright)}.bar--target .bar-trail.is-reset{transition:none}.scope{--scope-radius:min(44vh, 40vw);opacity:0;visibility:hidden;pointer-events:none;position:absolute;inset:0}body[data-ui-mode=hud].is-scoped .scope,body[data-ui-mode=pause].is-scoped .scope{visibility:visible}.scope-mask{background:radial-gradient(circle at 50% 50%, transparent 0, transparent calc(var(--scope-radius) * .78), #04070961 calc(var(--scope-radius) - 4px), #040709 var(--scope-radius));position:absolute;inset:0}.scope-reticle{width:calc(var(--scope-radius) * 2);height:calc(var(--scope-radius) * 2);filter:drop-shadow(0 0 1px #f7f0de59);position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.scope-reticle rect{fill:#06090beb}.scope-dot{fill:var(--signal-bright)}.scope-readout{top:50%;left:calc(50% + var(--scope-radius) + 1.5rem);justify-items:start;gap:.4rem;display:grid;position:absolute;transform:translateY(-50%)}.scope-zoom{font:400 2rem/1 var(--font-stencil);color:var(--paper)}.scope-range{font:400 1.5rem/1 var(--font-stencil);font-variant-numeric:tabular-nums;color:var(--brass-bright)}body.is-scoped .crosshair-dot{visibility:hidden}.touch-scope{place-items:center;width:3rem;height:3rem}.scope-icon{background:linear-gradient(currentColor,currentColor) 50%/2px 100% no-repeat,linear-gradient(currentColor,currentColor) 50%/100% 2px no-repeat;border:2px solid;border-radius:50%;width:1.25rem;height:1.25rem}body.is-scoped .touch-scope{border-color:var(--brass-bright);color:var(--brass-bright)}@media (aspect-ratio<=1){.scope-readout{top:calc(50% + var(--scope-radius) + 1rem);grid-auto-flow:column;align-items:baseline;gap:.75rem;left:50%;transform:translate(-50%)}}
