[hidden]{display:none!important}:root{--ink:#e8e2d6;--ember:#ff9a3c;--blade:#a8c4ff;--danger:#d9483f;--chrome-pad:clamp(.75rem, 2.5vw, 1.5rem)}*{box-sizing:border-box}html,body{height:100%;overflow:hidden}body{color:var(--ink);-webkit-font-smoothing:antialiased;background:#05060a;margin:0;font-family:Iowan Old Style,Palatino,Georgia,serif}#view{touch-action:none;width:100%;height:100%;display:block;position:fixed;inset:0}.chrome{padding:var(--chrome-pad);pointer-events:none;justify-content:space-between;align-items:baseline;gap:1rem;display:flex;position:fixed;top:0;left:0;right:0}.chrome h1{letter-spacing:.34em;text-transform:uppercase;opacity:.5;margin:0;font-size:clamp(.95rem,2.6vw,1.25rem);font-weight:400}.chrome nav a{pointer-events:auto;color:var(--ink);opacity:.32;font-size:1.1rem;text-decoration:none}.chrome nav a:hover,.chrome nav a:focus-visible{opacity:.75}.sprite{width:0;height:0;position:absolute;overflow:hidden}.hud{padding:var(--chrome-pad);pointer-events:none;grid-template:".blade."1.5rem"lives gauge score"/auto minmax(0,1fr) auto;align-items:center;column-gap:clamp(.7rem,3vw,1.5rem);display:grid;position:fixed;bottom:0;left:0;right:0}.gauge{grid-area:gauge;align-items:center;gap:.5rem;max-width:34rem;display:flex}.gauge__glyph{width:1.5rem;height:1.5rem;fill:var(--ember);filter:drop-shadow(0 0 5px #ff9a3c80);flex:none}.gauge__track{background:#00000080;border:1px solid #e8e2d64d;flex:auto;height:1.1rem;overflow:hidden}.gauge__fill{transform-origin:0;background:linear-gradient(90deg, #b8541f, var(--ember));height:100%;display:block}.gauge[data-low=true] .gauge__fill{background:linear-gradient(90deg, #7a1c17, var(--danger));animation:.64s ease-in-out infinite pulse}.gauge[data-low=true] .gauge__glyph{fill:var(--danger);animation:.64s ease-in-out infinite pulse}.blade{opacity:0;grid-area:blade;align-items:center;gap:.4rem;max-width:34rem;transition:opacity .16s linear;display:flex}.blade[data-armed=true]{opacity:1}.blade__glyph{width:1.1rem;height:1.1rem;fill:var(--blade);filter:drop-shadow(0 0 6px #a8c4ffb3);flex:none}.blade__track{background:#00000080;flex:auto;height:.3rem;overflow:hidden}.blade__fill{transform-origin:0;background:linear-gradient(90deg, #4a6bb0, var(--blade));height:100%;display:block}.lives{grid-area:lives;gap:.35rem;display:flex}.lives[data-lost=true]{animation:.42s ease-in-out shake}.pip{width:1.5rem;height:1.5rem;fill:var(--danger);filter:drop-shadow(0 0 5px #d9483f8c)}.tally{grid-area:score;margin:0;position:relative}.score{text-align:right;font-variant-numeric:tabular-nums;letter-spacing:.04em;opacity:.88;justify-content:flex-end;align-items:baseline;gap:.45rem;font-size:clamp(1.6rem,5vw,2.3rem);line-height:1;display:flex}.score__label{letter-spacing:.22em;text-transform:uppercase;opacity:.55;font-size:.44em}#score{min-width:3ch}.gain{font-variant-numeric:tabular-nums;color:var(--ember);opacity:0;white-space:nowrap;font-size:clamp(.9rem,2.6vw,1.2rem);position:absolute;bottom:100%;right:0}.gain[data-show=true]{animation:1.1s ease-out rise}.overlay{text-align:center;letter-spacing:.16em;opacity:0;visibility:hidden;background:#05060ab8;place-content:center;margin:0;padding:2rem;font-size:clamp(1.35rem,5vw,2.4rem);transition:opacity .42s;display:grid;position:fixed;inset:0}.overlay[data-visible=true]{opacity:1;visibility:visible}@keyframes pulse{50%{filter:brightness(1.7)}}@keyframes rise{0%{opacity:0;transform:translateY(.4rem)}18%{opacity:1}to{opacity:0;transform:translateY(-1.8rem)}}@keyframes shake{25%{transform:translate(-.35rem)}60%{transform:translate(.3rem)}}.wound{pointer-events:none;opacity:0;background:radial-gradient(#780a0600 35%,#960c08d9 100%);position:fixed;inset:0}.wound[data-hit=true]{animation:.9s ease-out wound}@keyframes wound{0%{opacity:0}8%{opacity:1}to{opacity:0}}@media (prefers-reduced-motion:reduce){.gauge[data-low=true] .gauge__fill,.gauge[data-low=true] .gauge__glyph,.lives[data-lost=true],.wound[data-hit=true]{animation:none}}.map{top:calc(var(--chrome-pad) + 2rem);right:var(--chrome-pad);aspect-ratio:1;pointer-events:none;opacity:.85;width:clamp(6.5rem,13vw,10rem);position:fixed}@media (width<=30rem){.hud{grid-template:"blade blade"1.2rem"gauge gauge""lives score"/auto minmax(0,1fr);row-gap:.5rem}.gauge,.blade{max-width:none}.map{width:7rem}}
