@font-face{font-family:EB Garamond;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/eb-garamond-latin-400-normal-BCNrxLz_.woff2)format("woff2"),url(/assets/eb-garamond-latin-400-normal-maQnHeKB.woff)format("woff")}@font-face{font-family:EB Garamond;font-style:italic;font-display:swap;font-weight:400;src:url(/assets/eb-garamond-latin-400-italic-DSEbMgZu.woff2)format("woff2"),url(/assets/eb-garamond-latin-400-italic-CDFyLPXJ.woff)format("woff")}@font-face{font-family:EB Garamond;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/eb-garamond-latin-600-normal-DHwxsLHv.woff2)format("woff2"),url(/assets/eb-garamond-latin-600-normal-xCe6GkOx.woff)format("woff")}@font-face{font-family:MiddleEarth;src:url(/assets/Middleearth-B6UZBpyf.ttf)format("truetype");font-display:swap}:root{--night:#0f0c09;--stone:#1d1914;--parchment:#e8dcc0;--parchment-dim:#b9aa89;--muted:#8f8166;--bronze:#b07a33;--gold:#e3b65c;--gold-deep:#9c6a1f;--ember:#c4471f;--ember-deep:#7d2410;--attacker:#d0602c;--attacker-deep:#7e2a12;--defender:#9fb4c8;--defender-deep:#3e5368;--ok:#8fbf6a;--bad:#e06a4f;--heading:"MiddleEarth", "EB Garamond", Georgia, serif;--body:"EB Garamond", Georgia, "Times New Roman", serif;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;font-family:var(--body);color:var(--parchment);background:var(--night);font-size:17px}html{background:var(--night)}body{background:radial-gradient(ellipse at 50% 0%, #c4471f29, transparent 60%), linear-gradient(#0f0c09d1, #0f0c09f0), url(/assets/backdrop-bJnwa1A0.webp) center top / cover fixed, var(--night);min-height:100vh;margin:0}main{max-width:1280px;margin:0 auto;padding:16px}.masthead{border-bottom:1px solid #b07a3359;flex-wrap:wrap;align-items:center;gap:18px;margin-bottom:16px;padding:10px 0 14px;display:flex}.masthead img.logo{filter:drop-shadow(0 2px 6px #000c);width:auto;max-width:100%;height:64px}.masthead .titles{flex:280px;min-width:0}.music{align-self:flex-start;align-items:center;gap:8px;display:flex}.music button{white-space:nowrap;padding:4px 10px;font-size:.8rem}.music button[aria-pressed=true]{color:var(--gold);border-color:var(--gold)}.music input[type=range]{width:96px;accent-color:var(--gold);background:0 0;border:0;padding:0}h1,h2,h3{font-family:var(--heading);letter-spacing:.02em;color:var(--gold);text-shadow:0 1px #000,0 0 12px #e3b65c2e;font-weight:400}h1{margin:0;font-size:1.9rem;line-height:1.1}h2{margin:0 0 10px;font-size:1.2rem}h3{color:var(--parchment-dim);margin:12px 0 4px;font-size:1rem}.subtitle{color:var(--parchment-dim);margin:4px 0 0;font-style:italic}.facts{color:var(--parchment-dim);flex-wrap:wrap;gap:6px 14px;margin:8px 0 0;padding:0;list-style:none;display:flex}.facts strong{color:var(--parchment);font-weight:600}.live{vertical-align:middle;background:var(--muted);border-radius:50%;width:9px;height:9px;margin-right:6px;display:inline-block}.live.on{background:var(--ok);box-shadow:0 0 8px var(--ok)}.layout{grid-template-columns:minmax(0,3fr) minmax(300px,2fr);align-items:start;gap:18px;display:grid}@media (width<=900px){.layout{grid-template-columns:minmax(0,1fr)}main{padding:10px}.masthead{gap:8px 12px;margin-bottom:10px;padding:4px 0 10px}.facts{gap:2px 10px;font-size:.88rem}.music input[type=range]{width:72px}.battle.pinned{z-index:5;background:#1f1a14;padding:6px;position:sticky;top:0;box-shadow:0 6px 18px #000000bf}.battle.pinned .view-switch{margin:0 0 4px}.battle.pinned .battle-bar button{padding:3px 8px;font-size:.75rem}.battle.pinned svg.scene,.battle.pinned svg.board{width:auto;max-width:100%;max-height:34vh}.battle.pinned .legend{display:none}.orders .actions{z-index:4;background:linear-gradient(#1d1914eb,#1d1914);border-top:1px solid #b07a3359;margin:6px -18px -16px;padding:10px 18px;position:sticky;bottom:0}.orders .actions button{flex:1 1 0;padding:10px 12px}.companies li{margin-bottom:4px}.masthead img.logo{height:48px}h1{font-size:1.5rem}}.frame,.panel{border:1px solid var(--gold-deep);background:linear-gradient(#2f2519eb,#1d1914f0);border-radius:6px;position:relative;box-shadow:inset 0 0 0 3px #0f0c09e6,inset 0 0 0 4px #b07a3359,0 8px 24px #0000008c}.panel{margin-bottom:16px;padding:16px 18px}.panel h2{border-bottom:1px solid #b07a334d;margin-bottom:12px;padding-bottom:8px}.panel h2:before{content:"❖ ";color:var(--bronze)}.frame{padding:10px}.muted{color:var(--muted)}.small{font-size:.88rem}.message{border:1px solid var(--ember-deep);border-left:4px solid var(--ember);color:var(--parchment);background:#7d241059;border-radius:4px;padding:9px 14px}a{color:var(--gold)}a:hover{color:var(--parchment)}select,input,button{font:inherit;border:1px solid var(--gold-deep);color:var(--parchment);background:linear-gradient(#3a2e20,#241d15);border-radius:4px;max-width:100%;padding:7px 12px;font-size:.95rem}select{width:100%}input{box-sizing:border-box;width:100%}input[aria-invalid=true]{border-color:var(--bad)}button{cursor:pointer;font-family:var(--heading);letter-spacing:.03em}button:hover:not(:disabled){border-color:var(--gold);color:#fff}button:focus-visible,select:focus-visible,a:focus-visible{outline:2px solid var(--gold);outline-offset:2px}button.primary{color:#fff6e6;text-shadow:0 1px #0009;background:linear-gradient(#c9562a,#7d2410);border-color:#e07a3f;box-shadow:0 0 14px #c4471f59}button:disabled{opacity:.45;cursor:default}.actions{flex-wrap:wrap;gap:10px;margin-top:6px;display:flex}.companies{margin:0;padding:0;list-style:none}.company-group h3{border-bottom:1px solid #b07a3333;margin:10px 0 6px;padding-bottom:3px}.company-group:first-of-type h3{margin-top:0}.kept{color:var(--gold);font-size:.85rem;font-style:italic}.note{color:var(--parchment-dim);margin:4px 0 0;font-style:italic}.companies li{border-left:3px solid #0000;border-radius:4px;margin:0 -8px 8px;padding:4px 8px}.companies li.lit{border-left-color:var(--gold);background:#e3b65c14}.companies label{gap:4px;display:grid}.company{color:var(--parchment);font-weight:600}.log{margin:0;padding-left:20px}.log li{margin-bottom:3px}.log li::marker{color:var(--bronze)}.steps{font-family:var(--heading);color:var(--parchment-dim);align-items:center;gap:12px;margin:8px 0 14px;display:flex}.ok{color:var(--ok)}.bad{color:var(--bad)}.armies{grid-template-columns:repeat(2,minmax(0,1fr));gap:0 18px;display:grid}@media (width<=900px){.armies{grid-template-columns:minmax(0,1fr)}}.fields{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px 16px;margin-top:10px;display:grid}.fields label{color:var(--parchment-dim);gap:4px;display:grid}.army .fill{flex-wrap:wrap;gap:8px;margin-bottom:10px;display:flex}.army .fill select{flex:140px;width:auto}.lines{gap:6px;margin:0 0 8px;padding:0;list-style:none;display:grid}.lines li{grid-template-columns:minmax(0,1fr) auto auto auto;align-items:center;gap:6px;display:grid}.lines label{color:var(--muted);align-items:center;gap:4px;display:flex}.lines input{width:4.2em;padding:6px}.lines button{padding:6px 9px}.actions .muted{align-self:center}.problems{color:var(--bad);margin:0 0 10px;padding-left:20px}@media (width<=520px){.lines li{grid-template-columns:1fr auto auto auto}.lines select{grid-column:1/-1}}.conditions{margin:0 0 6px;padding-left:20px}.conditions li::marker{content:"◇  ";color:var(--bronze)}.conditions li.met{color:var(--gold)}.conditions li.met::marker{content:"◆  ";color:var(--gold)}.fold-toggle{all:unset;cursor:pointer;font:inherit;color:inherit}.fold-toggle:focus-visible{outline:2px solid var(--gold);outline-offset:2px}.fold-toggle:after{content:" ▾";color:var(--bronze);font-size:.8em}.fold.folded h2{border-bottom:0;margin-bottom:0;padding-bottom:0}.fold.folded .fold-toggle:after{content:" ▸"}.battle-bar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;display:flex}.battle-bar .pin{padding:4px 10px;font-size:.8rem;display:none}.battle{margin-bottom:16px;padding:8px}.view-switch{border:1px solid var(--gold-deep);border-radius:4px;margin:2px 0 8px 2px;display:inline-flex;overflow:hidden}.view-switch button{color:var(--parchment-dim);background:0 0;border:0;border-radius:0;padding:5px 12px;font-size:.85rem}.view-switch button.on{color:var(--gold);background:linear-gradient(#5a3a17,#3a2510)}.scene{background:#1a140e;border-radius:4px;width:100%;height:auto;margin:0 auto;display:block}.scene .clouds ellipse{fill:url(#cloud);opacity:.9}.scene .mountains-far{fill:#2c1712}.scene .mountains-mid{fill:#221410}.scene .mountains-near{fill:#18110d}.scene .speck{fill:#6a5a3e;opacity:.35}.scene .cobble{fill:#4d483f;opacity:.3}.scene .road{fill:none;stroke:#4b3b26;stroke-width:16px;stroke-linecap:round;opacity:.6}.scene .road-ruts{fill:none;stroke:#6b5636;stroke-width:1.6px;stroke-dasharray:5 9;opacity:.6}.scene .stone{fill:url(#stone);stroke:#26221d;stroke-width:1.5px}.scene .stone-courses{fill:url(#courses);stroke:none}.scene .stone-shade{fill:url(#stone-shade);stroke:none}.scene .mortar{stroke:#3d3830;stroke-width:1px;fill:none;opacity:.55}.scene .stone-top{fill:#8a8273;stroke:#26221d;stroke-width:1.2px}.scene .plinth{fill:#2a2520;opacity:.55}.scene .roof-slate{fill:#3a3f4a;stroke:#1b1d22;stroke-width:1.2px}.scene .cracks path{fill:none;stroke:#1a1713;stroke-width:1.7px;stroke-linejoin:round}.scene .rubble-heap{fill:#4e483e}.scene .rubble rect{fill:#7a7365;stroke:#2e2a24}.scene .arch{fill:#0e0b09}.scene .planks{fill:#6a4524;stroke:#2c1a0b;stroke-width:1.2px}.scene .plank-line{stroke:#3b250f;stroke-width:1px}.scene .iron-band{stroke:#2a2a2c;stroke-width:2px}.scene .splinter{fill:none;stroke:#140b05;stroke-width:1.8px}.scene .slit,.scene .window{fill:#0f0c0a}.scene .window.lit{fill:#f0b25a;opacity:.9}.scene .plaster{fill:#a68e69;stroke:#4d3f2b}.scene .far .plaster{fill:#7a6a50}.scene .beam{stroke:#4a3520;stroke-width:1.5px;fill:none}.scene .roof{fill:#6b2f1c;stroke:#3a170c}.scene .far .roof{fill:#4e2416}.scene .chimney{fill:#5a4b3a}.scene .door{fill:#3d2614}.scene .tent{fill:#a68f6a;stroke:#4a3b25}.scene .tent-shade{fill:#7d6a4c}.scene .tent-door{fill:#2b2116}.scene .pennant{fill:var(--attacker)}.scene .stake{fill:#5a3d1e}.scene .pole{stroke:#3c2a17;stroke-width:1.6px}.scene .log-line{stroke:#4a2e15;stroke-width:2.4px}.scene .fire{fill:#e5602a}.scene .fire-core{fill:#ffd27a}.scene .fire-glow,.scene .torch-glow{fill:url(#fire-glow)}.scene .smoke circle{fill:#3e3934;opacity:.4}.scene .tuft{stroke:#5c6b38;stroke-width:1.2px;fill:none}.scene .scorch{fill:#17120d;opacity:.4}.scene .rock{fill:#5d564a}.scene .stakes path{stroke:#5a3d1e;stroke-width:2px;stroke-linecap:round}.scene .dead-tree path{stroke:#2a1d12;stroke-width:2.2px;fill:none;stroke-linecap:round}.scene .flag{stroke:#00000080;stroke-width:.8px;fill:currentColor}.scene .side-attacker{color:var(--attacker)}.scene .side-defender{color:var(--defender)}.scene .side-unknown{color:#9a8f7c}.scene .soldier .tunic{fill:currentColor;stroke:#0009;stroke-width:.6px}.scene .soldier .shield{fill:currentColor;stroke:#1a1510;stroke-width:.9px;filter:brightness(.8)}.scene .skin{fill:#d4ad85}.scene .steel,.scene .steel-head{fill:#b9bcc0}.scene .hood{fill:#3e4a2c}.scene .quiver{fill:#5a3a1e}.scene .dark{fill:#241d16}.scene .blade{stroke:#d8dbdf;stroke-width:1.2px}.scene .haft{stroke:#6b4a26;stroke-width:1.1px}.scene .bow{fill:none;stroke:#7a5328;stroke-width:1.3px}.scene .string{stroke:#cfc4a8;stroke-width:.4px}.scene .horse{fill:#5b3b22;stroke:#2b1b0e;stroke-width:.6px}.scene .tail{fill:none;stroke:#2b1b0e;stroke-width:1.4px}.scene .horse-leg{fill:#4a2f1a}.scene .engine .timber{fill:#7a5430;stroke:#33210f;stroke-width:1px}.scene .engine .hide{fill:#5a4030;stroke:#2b1a0b;stroke-width:1px}.scene .engine .timber-line{stroke:#3b2612;stroke-width:1px;fill:none}.scene .engine .thick{stroke-width:2.6px}.scene .engine .log{fill:#5d3c1d;stroke:#2b1a0b}.scene .engine .wheel{fill:#3b2612;stroke:#1c120a}.scene .engine .boulder{fill:#8d877b}.scene .shadow-ground{fill:#000;opacity:.35}.scene .tag{fill:#0f0c09d9;stroke:currentColor;stroke-width:.8px}.scene .tag-text{fill:var(--parchment);font-family:var(--body);text-anchor:middle;font-size:8.5px}.scene .shadows use,.scene .shadows path,.scene .shadows circle{fill:#0b0908;opacity:.62}.scene .shade-spear{stroke:#0b0908;stroke-width:1px}.scene .band-text{fill:var(--parchment-dim);font-family:var(--body);text-anchor:middle;paint-order:stroke;stroke:#0f0c09;stroke-width:3px;font-size:11px;font-style:italic}.scene .trajectory-glow{fill:none;stroke:#000;stroke-width:5px;stroke-linecap:round;opacity:.35}.scene .trajectory{fill:none;stroke:currentColor;stroke-width:2px;stroke-dasharray:7 6;stroke-linecap:round;opacity:.9}.scene .impact line{stroke:#e8dcc0;stroke-width:1.2px}.scene .arrowhead{fill:currentColor;stroke:#0f0c09;stroke-width:.8px}.scene .flight path{fill:none;stroke:#efe4c8;stroke-width:1.1px;stroke-linecap:round}.scene .action-head{fill:currentColor;stroke:#0f0c09;stroke-width:1px}.scene .march{fill:none;stroke:currentColor;stroke-width:2px;stroke-dasharray:4 5;opacity:.85}.scene .charge-glow{fill:none;stroke:#000;stroke-width:7px;stroke-linecap:round;opacity:.35}.scene .charge{fill:none;stroke:currentColor;stroke-width:3.5px;stroke-linecap:round}.scene .ladder line{stroke:#9a7340;stroke-width:1.6px;stroke-linecap:round}.scene .docked{opacity:.78}.scene .bridge{stroke:#7a5430;stroke-width:4px;stroke-linecap:round}.scene .roll{fill:none;stroke:#7a5430;stroke-width:2px;stroke-dasharray:2 5}.scene .batter{fill:none;stroke:#7a5430;stroke-width:4px;stroke-linecap:round}.scene .impact-star path{fill:#ffcf6e;stroke:#7d2410;stroke-width:1px}.scene .lob{fill:none;stroke:#b9a57e;stroke-width:1.6px;stroke-dasharray:2 6}.scene .dust circle{fill:#8a7b62;opacity:.45}.scene .boulder-flying{fill:#8d877b;stroke:#2e2a24}.scene.focusing .action:not(.lit){opacity:.35}.scene .highlight-ring{fill:#e3b65c26;stroke:var(--gold);stroke-width:2.5px}.scene .highlight-marker{fill:var(--gold);stroke:#0f0c09;stroke-width:1px}.scene .formation.highlighted{filter:drop-shadow(0 0 4px #e3b65cd9)}.scene.focusing .formation:not(.highlighted),.scene.focusing .volley-arc:not(.lit),.scene.focusing .tag-of:not(.tag-lit),.scene.focusing .shadows{opacity:.4}.scene .tag-lit .tag{stroke:var(--gold);stroke-width:1.4px}.scene .plaque.lit .plaque-back{stroke:var(--gold);stroke-width:2px}.scene .plaque-back{fill:#0f0c09db;stroke:var(--gold-deep);stroke-width:1px}.scene .plaque-side{fill:currentColor}.scene .plaque-name{fill:var(--gold);font-family:var(--heading);text-anchor:middle;font-size:12px}.scene .plaque-hp{fill:var(--parchment);font-family:var(--body);font-size:9px}.scene .plaque-hp.crumbling,.scene .plaque-hp.breached{fill:#f08a64}.scene .plaque-bar-back{fill:#3a3128}.scene .plaque-bar{fill:#9dbb6a}.scene .plaque-bar.damaged{fill:#d9a441}.scene .plaque-bar.crumbling,.scene .plaque-bar.breached{fill:#d0532c}.scene .embers circle{fill:#ff9a4a;opacity:0}.scene .rune-band{fill:#c9a24a;opacity:.85}.scene .cairn{fill:#6b6862;stroke:#2e2c29}.scene .spike{stroke:#2a2622;stroke-width:2px;stroke-linecap:round;fill:none}.scene .birch-trunk{stroke:#e4e0d4;stroke-width:2.2px;fill:none}.scene .leaves{fill:#4f7a3a;opacity:.9}.scene .flower{fill:#e8d27a;opacity:.8}.scene .pine-trunk{fill:#3a2a1a}.scene .needles{fill:#1f3328;stroke:#12201a}.scene .boulder-rock{fill:#5d5b56;stroke:#2f2e2b}.scene .snow{fill:#e9edf0;opacity:.85}.scene .fire-crack{stroke:#ff5a1f;stroke-width:1.4px;fill:none;opacity:.8}.scene.town-elves .stone{stroke:#6e6650}.scene.town-elves .stone-top{fill:#f2ecd9;stroke:#7d7458}.scene.town-elves .mortar{stroke:#c9bfa2}.scene.town-elves .roof-slate{fill:#3f6a5a;stroke:#1e3a30}.scene.town-elves .roof{fill:#4d7a5e;stroke:#24412f}.scene.town-elves .plaster{fill:#cfc6ab;stroke:#8a7f63}.scene.town-elves .window.lit{fill:#f6e3a4}.scene.town-elves .door{fill:#5a4a2a}.scene.town-elves .cobble{fill:#8c8a74}.scene.town-elves .speck{fill:#6f8a52}.scene.town-elves .tuft{stroke:#7fa04e}.scene.town-elves .scorch{fill:#1c2a18;opacity:.3}.scene.town-elves .mountains-far{fill:#2c2a48}.scene.town-elves .mountains-mid{fill:#1f2a30}.scene.town-elves .mountains-near{fill:#15201a}.scene.town-dwarves .stone{stroke:#1b1a18}.scene.town-dwarves .stone-top{fill:#5c5a55;stroke:#1b1a18}.scene.town-dwarves .mortar{stroke:#2a2826;stroke-width:1.4px}.scene.town-dwarves .roof,.scene.town-dwarves .roof-slate{fill:#4a4844;stroke:#1b1a18}.scene.town-dwarves .plaster{fill:#6e6b65;stroke:#2a2826}.scene.town-dwarves .door{fill:#2a1d10;stroke:#c9a24a;stroke-width:.8px}.scene.town-dwarves .window.lit{fill:#ffb45a}.scene.town-dwarves .cobble{fill:#5a5955}.scene.town-dwarves .speck{fill:#8a8a84}.scene.town-dwarves .tuft{stroke:#5f6a4a}.scene.town-dwarves .rock{fill:#706e68}.scene.town-dwarves .mountains-far{fill:#3a414a}.scene.town-dwarves .mountains-mid{fill:#2a2f35}.scene.town-dwarves .mountains-near{fill:#1c1f22}.scene.town-evil .stone{stroke:#0b0a09}.scene.town-evil .stone-top{fill:#3a3633;stroke:#0b0a09}.scene.town-evil .mortar{stroke:#151312}.scene.town-evil .roof-slate{fill:#26221f;stroke:#0b0a09}.scene.town-evil .roof{fill:#3b2a20;stroke:#120c08}.scene.town-evil .plaster{fill:#4a3a2c;stroke:#1c140d}.scene.town-evil .window.lit{fill:#ff4a1f}.scene.town-evil .door{fill:#120c08}.scene.town-evil .chimney{fill:#2a2420}.scene.town-evil .cobble{fill:#2e2a26}.scene.town-evil .speck{fill:#5a3a2a}.scene.town-evil .tuft{stroke:#4a4030}.scene.town-evil .scorch{fill:#050404;opacity:.6}.scene.town-evil .mountains-far{fill:#2a0d0a}.scene.town-evil .mountains-mid{fill:#1a0a08}.scene.town-evil .mountains-near{fill:#0e0706}.scene.host-elves .tent{fill:#e8e2cc;stroke:#8a8063}.scene.host-elves .tent-shade{fill:#c4bb9e}.scene.host-dwarves .tent{fill:#7a5a3c;stroke:#3a2818}.scene.host-dwarves .tent-shade{fill:#5a4029}.scene.host-evil .tent{fill:#3a2e26;stroke:#120c08}.scene.host-evil .tent-shade{fill:#261e18}.scene.host-evil .tent-door{fill:#0a0606}.scene.paused,.scene.paused *{animation-play-state:paused!important}@media (prefers-reduced-motion:no-preference){.scene .cloud{animation:60s ease-in-out infinite alternate cloud}.scene .highlight-ring{transform-box:fill-box;transform-origin:50%;animation:1.2s ease-in-out infinite alternate pulse}.scene .highlight-marker{animation:.9s ease-in-out infinite alternate point}.scene .impact-star{transform-box:fill-box;transform-origin:50%;animation:.7s ease-in-out infinite alternate pulse}.scene .action,.scene .formation,.scene .volley-arc{transition:opacity .15s}.scene .flag{transform-box:fill-box;transform-origin:0;animation:2.6s ease-in-out infinite wave}.scene .fire,.scene .fire-core{transform-box:fill-box;transform-origin:bottom;animation:.9s ease-in-out infinite alternate flicker}.scene .fire-glow,.scene .torch-glow{animation:1.7s ease-in-out infinite alternate glow}.scene .embers circle{animation:7s linear infinite rise}.scene .smoke circle{transform-box:fill-box;transform-origin:50%;animation:5s ease-in-out infinite alternate drift}}@keyframes pulse{0%{opacity:.7;transform:scale(.9)}to{opacity:1;transform:scale(1.08)}}@keyframes point{0%{transform:translateY(-3px)}to{transform:translateY(1px)}}@keyframes cloud{0%{transform:translate(-30px)}to{transform:translate(30px)}}@keyframes wave{0%,to{transform:skewY(0)scaleX(1)}50%{transform:skewY(-6deg)scaleX(.92)}}@keyframes flicker{0%{opacity:.85;transform:scale(.85,.9)}to{opacity:1;transform:scale(1.05,1.15)}}@keyframes glow{0%{opacity:.6}to{opacity:1}}@keyframes rise{0%{opacity:0;transform:translateY(0)}15%{opacity:.9}to{opacity:0;transform:translateY(-260px)}}@keyframes drift{0%{transform:translate(0)scale(1)}to{transform:translate(4px,-6px)scale(1.15)}}.go-full{padding:4px 10px;font-size:.8rem}.full-scene{z-index:100;background:#0f0c09;outline:none;flex-direction:column;height:100dvh;display:flex;position:fixed;inset:0}.full-bar{background:linear-gradient(#2a2117,#1a140e);border-bottom:1px solid #b07a3366;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;padding:8px 12px;display:flex}.full-message{color:var(--gold);display:block}.full-title{font-family:var(--heading);color:var(--gold)}.full-actions{gap:8px;display:flex}.full-stage{flex-direction:column;flex:1;justify-content:center;align-items:center;min-height:0;padding:6px;display:flex}.full-stage .legend{display:none}.full-stage svg.scene{width:auto;max-width:100%;height:100%;max-height:100%}.scene .choosable{cursor:pointer}.scene .parapet,.scene .plaques,.scene .tag-of,.scene .scene-actions,.scene .volleys,.scene .embers,.scene .highlight{pointer-events:none}.scene .choosable:focus-visible{outline:2px solid var(--gold);outline-offset:3px}.scene .choosable:hover .shadow-ground{fill:var(--gold);opacity:.35}.order-menu{z-index:110;max-height:60vh;margin:0;position:fixed;overflow:auto;box-shadow:0 10px 30px #000c}.order-menu h2{font-size:1rem}.order-choices{gap:4px;margin:0;padding:0;list-style:none;display:grid}.order-choices button{text-align:left;width:100%;font-family:var(--body);letter-spacing:0;font-size:.95rem}.order-choices button.on{border-color:var(--gold);color:var(--gold);background:linear-gradient(#5a3a17,#3a2510)}@media (width<=600px){.order-menu{border-radius:10px 10px 0 0;max-height:42vh}.order-menu.top-sheet{border-radius:0 0 10px 10px}.full-stage{overscroll-behavior:contain;-webkit-overflow-scrolling:touch;justify-content:flex-start;align-items:flex-start;padding:0;overflow:auto}.full-stage svg.scene{flex:none;width:auto;height:100%;max-height:none;max-width:none!important}.full-title .muted{display:none}}.board-figure{margin:0}.board{background:#1a140e;border-radius:4px;width:100%;height:auto;margin:0 auto;display:block}.edge{stroke:#5a4a33;stroke-width:3px}.sector rect:first-child{fill:#2a2219;stroke-width:2.5px}.sector.held-attacker rect:first-child{stroke:var(--attacker)}.sector.held-defender rect:first-child{stroke:var(--defender)}.sector.lit>rect:first-child{stroke:var(--gold);stroke-width:4px;fill:#3a2e1e}.sector text{fill:var(--parchment);font-size:12px}.sector .name{font-family:var(--heading);fill:var(--gold);font-size:13px}.sector .kind,.sector .small{fill:var(--muted);font-size:11px}.bar-back{fill:#3a3128}.bar{fill:#9dbb6a}.legend{color:var(--muted);margin:6px 4px 2px}.swatch{vertical-align:middle;border:2px solid;border-radius:2px;width:10px;height:10px;display:inline-block}.swatch.held-attacker{border-color:var(--attacker);background:var(--attacker-deep)}.swatch.held-defender{border-color:var(--defender);background:var(--defender-deep)}.colophon{text-align:center;color:var(--muted);margin:24px 0 8px;font-size:.85rem}.colophon img{vertical-align:middle;opacity:.85;height:28px;margin-right:8px}@media (width<=900px){.battle-bar .pin{display:inline-block}html:has(.battle.pinned){scroll-padding-top:40vh;scroll-padding-bottom:90px}}@media (width<=900px) and (height<=500px){.battle.pinned{box-shadow:none;position:static}.battle.pinned svg.scene,.battle.pinned svg.board{width:100%;max-height:none}.battle-bar .pin{display:none}html:has(.battle.pinned){scroll-padding-top:0}}
