:root{--bg:#0f1214;--panel:#171c1f;--panel-2:#1f262a;--line:#2c363b;--text:#e6e8e3;--muted:#8d9894;--accent:#3fa36b;--bone:#e8dcc0;--gold:#e3b04b;--good:#57c784;--bad:#e5675a;--warn:#e5b45a;--ink:#e6e8e3;font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,sans-serif;color-scheme:dark}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text)}button,input,select{font:inherit;color:inherit}input,select{padding:6px 8px}button,input,select{background:var(--panel-2);border:1px solid var(--line);border-radius:6px}button{cursor:pointer;padding:4px 10px}button:disabled{opacity:.35;cursor:default}h1,h2,h3{margin:0}details summary{cursor:pointer;color:var(--muted);padding:6px 0}.empty,.loading{padding:40px}.app{display:grid;grid-template-columns:260px minmax(0,1fr) 340px;grid-template-rows:auto 1fr;height:100vh}.topbar{grid-column:1/-1;display:flex;gap:10px;align-items:center;flex-wrap:wrap;padding:10px 16px;border-bottom:1px solid var(--line);background:var(--panel)}.topbar h1{font-size:20px;color:var(--accent);margin-right:8px;letter-spacing:.04em}.army-name{width:160px}.total{margin-left:auto;font-weight:700;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.total.over{color:var(--bad)}.analysis,.army,.browser{overflow-y:auto;padding:12px 16px}.browser{border-right:1px solid var(--line);background:var(--panel)}.browser input{width:100%;margin-bottom:8px}.browser h3{font-size:12px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin:14px 0 4px}.add{display:flex;justify-content:space-between;width:100%;text-align:left;border:0;background:none;padding:5px 6px;border-radius:4px}.add:hover{background:var(--panel-2)}.add .pts{color:var(--muted);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.analysis{border-left:1px solid var(--line);background:var(--panel)}.hint,.muted{color:var(--muted)}.error{color:var(--bad)}.detachment{background:var(--panel);border:1px solid var(--line);border-radius:8px;padding:4px 12px;margin-bottom:12px}.rule{margin:8px 0}.rule p{margin:2px 0 0;color:var(--muted);white-space:pre-line;font-size:13px}.unit{background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:12px;margin-bottom:12px}.unit header{display:flex;align-items:flex-start;gap:10px}.unit header>div:first-child{flex:1 1}.unit h2{font-size:17px;display:inline;margin-right:8px}.badge{display:inline-block;font-size:11px;padding:1px 6px;border-radius:10px;border:1px solid var(--line);color:var(--muted);margin-right:4px}.unit-pts{font-weight:700;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.remove{border:0;background:none;font-size:20px;line-height:1}.remove,.size{color:var(--muted)}.size{display:flex;align-items:center;gap:8px;margin:8px 0}.size b{color:var(--text);min-width:2ch;text-align:center}.models{display:flex;flex-wrap:wrap;gap:12px;margin-top:8px}.model{display:flex;gap:8px;background:var(--panel-2);border-radius:8px;padding:8px;min-width:260px;flex:1 1 260px}.model.unused{opacity:.5}.model-opts{display:flex;flex-direction:column;gap:6px;flex:1 1;min-width:0;font-size:13px}.model-opts label{display:flex;flex-direction:column;gap:2px;color:var(--muted)}.model-opts select{width:100%}.fixed{margin:0;color:var(--bone)}.shift{gap:4px}.enh,.shift{display:flex}.enh{gap:8px;align-items:center;margin-top:8px;font-size:13px;color:var(--muted)}.stats{width:100%;border-collapse:collapse;font-size:12px;margin:6px 0;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.stats td,.stats th{text-align:left;padding:3px 6px;border-bottom:1px solid var(--line)}.stats small{color:var(--muted)}.panel h2{font-size:18px}.panel h3{font-size:13px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin:16px 0 6px}.headline{font-size:16px;color:var(--bone)}.panel ul{padding-left:18px;margin:0;font-size:14px}.panel li{margin-bottom:6px}.matchups{display:grid;grid-template-columns:1fr 1fr;gap:10px;font-size:13px}.matchups p{margin:4px 0}h3.good{color:var(--good)}h3.bad{color:var(--bad)}.flag{border-left:3px solid var(--line);padding:2px 8px;margin:6px 0;font-size:13px}.flag p{margin:2px 0 0;color:var(--muted)}.flag.good{border-color:var(--good)}.flag.critical{border-color:var(--bad)}.flag.major{border-color:var(--warn)}.glossary{margin-top:20px}.radar{width:100%;max-width:300px;display:block;margin:8px auto;overflow:visible}.radar .ring{fill:none;stroke:var(--line)}.radar .shape{fill:color-mix(in srgb,var(--accent) 35%,transparent);stroke:var(--accent);stroke-width:2}.radar text{fill:var(--muted);font-size:9px}.trooper{position:relative;margin:0;flex:none;text-align:center}.trooper figcaption{font-size:11px;color:var(--muted)}.trooper svg{overflow:visible;filter:drop-shadow(0 3px 4px rgba(0,0,0,.45))}.art circle,.art ellipse,.art path,.art rect{stroke:#111416;stroke-width:2.4;stroke-linejoin:round;stroke-linecap:round}.art .ns{stroke:none}.art .ln{fill:none;stroke-width:1.5}.art .ln.lt{stroke:#6f7a80}.art .shadow{fill:#000;opacity:.35}.art .a{fill:var(--armour)}.art .ad{fill:var(--armour-d)}.art .al{fill:var(--armour-l)}.art .t{fill:var(--trim)}.art .r{fill:var(--robe)}.art .rd{fill:var(--robe-d)}.art .cape{fill:var(--cape)}.art .m{fill:#a3acb1}.art .md{fill:#3d4549}.art .mk{fill:#22282b}.art .k{fill:#6b4a2f}.art .b{fill:#ece2c8}.art .mark{fill:#b3261e}.art .seal{fill:#a3201b}.art .glass{fill:#8fd3ff}.art .lamp{fill:#ffe9a3;filter:drop-shadow(0 0 4px #ffd25a)}.art .e{fill:#ff3b2f;filter:drop-shadow(0 0 3px #ff2a1a);animation:eyes 2.6s ease-in-out infinite}.art .g{fill:#8ae8ff;stroke:#1f7fb8;filter:drop-shadow(0 0 4px #39c6ff);animation:pulse 1.1s ease-in-out infinite}.art .blade{fill:#cfd8de}.art .power{fill:none;stroke:#7fe3ff;stroke-width:2.4;filter:drop-shadow(0 0 4px #39c6ff);animation:pulse .9s ease-in-out infinite}.art .crackle{fill:none;stroke:#9cf0ff;stroke-width:2;filter:drop-shadow(0 0 3px #39c6ff);animation:crackle .5s steps(2) infinite}.art .teeth{fill:none;stroke:#c9d3da;stroke-width:2;stroke-dasharray:4 2;animation:run .25s linear infinite}.art .flame{fill:#ff9a3c;stroke:#c4401c;animation:flicker .22s steps(2) infinite}.art .flame,.art .flame-in{transform-box:fill-box;transform-origin:left center}.art .flame-in{fill:#ffe27a;animation:flicker .18s steps(2) infinite reverse}.art .heat{fill:none;stroke:#ff8a4a;stroke-width:2;animation:shimmer .6s ease-in-out infinite alternate}.art .rocket{fill:#c9302a}.art .beam{fill:none;stroke:#ff3b3b;stroke-width:3;filter:drop-shadow(0 0 4px #ff2a1a);animation:pulse .8s ease-in-out infinite}.art .flash{fill:#ffd25a;stroke:#e07a1a;stroke-width:1.4;animation:muzzle 1.4s steps(1) infinite}.art .spin{stroke-dasharray:3 2;animation:run .15s linear infinite}.art .smoke{fill:#9aa3a8;opacity:.5;animation:smoke 2.4s ease-out infinite;transform-box:fill-box;transform-origin:center}.art .tread{fill:none;stroke:#59636a;stroke-width:3;stroke-dasharray:5 4;animation:run .4s linear infinite}.art .halo circle,.art .halo path{fill:none;stroke:#f5d06a;stroke-width:2.5;filter:drop-shadow(0 0 5px #f5c542)}.art .halo{animation:pulse 2.4s ease-in-out infinite}.art .equip{animation:equip .45s cubic-bezier(.3,1.6,.5,1);transform-box:fill-box;transform-origin:center}.art .body{transform-origin:100px 228px}.anim-battleline,.anim-infantry,.anim-leader,.anim-other{animation:bob 1.8s ease-in-out infinite}.anim-character{animation:sway 3s ease-in-out infinite}.anim-character .cape-g,.anim-epic-hero .cape-g,.anim-monster .cape-g{animation:cape 1.8s ease-in-out infinite;transform-origin:100px 82px}.anim-epic-hero,.anim-monster{animation:heroic 2.6s ease-in-out infinite}.anim-mounted{animation:lean .8s ease-in-out infinite alternate}.anim-mounted .wheel,.anim-vehicle .wheel{stroke-dasharray:6 4;animation:spin .6s linear infinite;transform-box:fill-box;transform-origin:center}.anim-vehicle{animation:rumble .25s linear infinite}.anim-walker{animation:stomp 1.4s ease-in-out infinite}.anim-walker .leg-l{animation:step 1.4s ease-in-out infinite;transform-origin:80px 160px}.anim-aircraft{animation:fly 2.2s ease-in-out infinite}.quip{position:absolute;top:-6px;left:50%;transform:translateX(-50%);background:var(--bone);color:#1b1b1b;font-size:11px;font-weight:600;padding:3px 8px;border-radius:10px;white-space:nowrap;z-index:2;animation:quip 1.8s ease-out forwards}@keyframes eyes{0%,to{opacity:1}50%{opacity:.75}}@keyframes crackle{0%{opacity:1;transform:translate(0)}50%{opacity:.3;transform:translate(1px,-1px)}}@keyframes run{to{stroke-dashoffset:-12}}@keyframes muzzle{0%,88%{opacity:0}90%,96%{opacity:1}}@keyframes smoke{0%{transform:translateY(0) scale(.7);opacity:.55}to{transform:translateY(-14px) scale(1.3);opacity:0}}@keyframes bob{50%{transform:translateY(-3px)}}@keyframes sway{0%,to{transform:rotate(-2deg)}50%{transform:rotate(2deg)}}@keyframes heroic{0%,to{transform:scale(1)}50%{transform:scale(1.04) translateY(-4px)}}@keyframes cape{50%{transform:skewX(-6deg)}}@keyframes salute{0%,60%,to{transform:rotate(0)}70%,90%{transform:rotate(60deg)}}@keyframes lean{0%{transform:rotate(-2deg) translateX(-2px)}to{transform:rotate(1deg) translateX(2px)}}@keyframes spin{to{transform:rotate(1turn)}}@keyframes rumble{0%,to{transform:translate(0)}25%{transform:translate(.6px,-.6px)}75%{transform:translate(-.6px,.4px)}}@keyframes stomp{0%,to{transform:translateY(0)}45%{transform:translateY(-4px)}55%{transform:translateY(1px)}}@keyframes step{50%{transform:rotate(10deg)}}@keyframes fly{0%,to{transform:translateY(0) rotate(-2deg)}50%{transform:translateY(-8px) rotate(2deg)}}@keyframes pulse{50%{opacity:.45}}@keyframes flicker{50%{transform:scaleX(1.25) scaleY(.85);opacity:.8}}@keyframes shimmer{to{transform:translateY(-2px);opacity:.4}}@keyframes equip{0%{transform:scale(0) rotate(-200deg);opacity:0}to{transform:scale(1) rotate(0);opacity:1}}@keyframes quip{0%{opacity:0;transform:translate(-50%,6px)}15%,80%{opacity:1;transform:translate(-50%)}to{opacity:0}}@media (prefers-reduced-motion:reduce){.trooper *,.trooper .body{animation:none!important}}@media (max-width:1000px){.app{grid-template-columns:1fr;grid-template-rows:auto;height:auto}.browser{max-height:40vh;border-right:0;border-bottom:1px solid var(--line)}.analysis{border-left:0;border-top:1px solid var(--line)}.model{min-width:0}}.add-row{display:flex;align-items:center;gap:2px}.add-row .add{flex:1 1}.add .pts em{font-style:normal;color:var(--warn);margin-right:4px;font-size:11px}.info{border:0;background:none;color:var(--muted);font:italic 700 12px Georgia,serif;width:22px;height:22px;border-radius:50%;padding:0}.info:hover{background:var(--panel-2);color:var(--text)}.unit-card{display:flex;gap:10px;background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:8px 10px;margin-bottom:10px}.unit-card.led{border-color:color-mix(in srgb,var(--gold) 55%,var(--line));box-shadow:inset 3px 0 0 var(--gold)}.preview{flex:none;width:150px;cursor:pointer;border-radius:8px;background:radial-gradient(ellipse at 50% 85%,#23302a 0,transparent 70%);display:flex;align-items:flex-end;overflow:hidden}.rows{flex:1 1;min-width:0;display:flex;flex-direction:column}.unit-row{padding:6px 0}.unit-row+.unit-row{border-top:1px dashed var(--line)}.unit-row.leader-row{position:relative}.row-head{display:flex;align-items:flex-start;gap:10px}.row-title{flex:1 1;min-width:0;cursor:pointer}.row-title h2{display:inline;font-size:16px;margin-right:6px}.row-title h2.char{color:var(--gold)}.row-title .sub{font-size:12px;color:var(--muted);margin-top:2px}.badge.lead{color:var(--gold);border-color:color-mix(in srgb,var(--gold) 60%,transparent)}.badge.enh{color:#b48cff;border-color:#6b4fa8}.badge.over{color:var(--bad);border-color:var(--bad)}.badge.ok{color:var(--good);border-color:var(--good)}.row-pts{font-weight:700;font-size:17px;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;white-space:nowrap}.row-pts small{color:var(--muted);font-weight:400;font-size:11px}.chips{display:flex;flex-wrap:wrap;gap:5px;margin-top:6px}.chip{font-size:12px;padding:2px 9px;border-radius:999px;border:1px solid;white-space:nowrap}.chip i{font-style:normal;margin-right:4px;opacity:.85}.chip.ranged{color:#5cc8ff;border-color:#1f5f80;background:#0f2633}.chip.melee{color:#ff7d73;border-color:#7a2c27;background:#2a1312}.chip.wargear{color:#4fd6c4;border-color:#1c6359;background:#0e2623}.menu-wrap{position:relative}.kebab{border:0;background:none;color:var(--muted);font-size:18px;line-height:1;padding:2px 8px}.kebab:hover{color:var(--text);background:var(--panel-2)}.menu{position:absolute;right:0;top:28px;z-index:30;width:250px;max-height:70vh;overflow-y:auto;background:#12171a;border:1px solid var(--line);border-radius:10px;padding:6px;box-shadow:0 12px 30px rgba(0,0,0,.5)}.menu small{display:block;font-size:10px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);padding:6px 8px 2px}.menu button{display:block;width:100%;text-align:left;border:0;background:none;padding:7px 8px;border-radius:6px}.menu button:hover:not(:disabled){background:var(--panel-2)}.menu .danger{color:var(--bad)}.menu hr{border:0;border-top:1px solid var(--line);margin:4px 0}.menu p{margin:2px 8px 6px}.small{font-size:12px}.modal-back{position:fixed;inset:0;z-index:50;background:rgba(4,6,8,.7);display:flex;align-items:center;justify-content:center;padding:16px}.modal{width:min(720px,100%);max-height:92vh;display:flex;flex-direction:column;background:#12171a;border:1px solid var(--line);border-radius:14px;box-shadow:0 20px 60px rgba(0,0,0,.6)}.modal-head{display:flex;gap:12px;align-items:flex-start;padding:16px 18px 10px;border-bottom:1px solid var(--line)}.modal-head>div{flex:1 1}.modal-head small{text-transform:uppercase;letter-spacing:.1em;font-size:11px;color:#5cc8ff}.modal-head h2{font-size:21px}.modal-head p{margin:4px 0 0}.modal-body{overflow-y:auto;padding:12px 18px 18px}.modal-body section{margin-top:16px}.modal-body h3{font-size:13px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin-bottom:8px}.modal-foot{display:flex;align-items:center;gap:8px;padding:12px 18px;border-top:1px solid var(--line)}.total-pts{margin-right:auto;color:var(--muted)}.total-pts b{color:var(--gold);font-size:20px}button.primary{background:var(--gold);border-color:var(--gold);color:#1a1406;font-weight:700}button.primary:disabled{background:var(--panel-2);color:var(--muted);border-color:var(--line)}.link{padding:0;font-size:12px}.ds-link,.link{border:0;background:none;color:#5cc8ff}.ds-link{padding:0 8px 0 0;font-size:13px;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}.size-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:8px}.size-card{display:flex;flex-direction:column;align-items:center;gap:4px;padding:12px;border-radius:10px}.size-card span{font-size:12px;color:var(--muted);border:1px solid var(--line);border-radius:999px;padding:1px 8px}.size-card.on{background:color-mix(in srgb,var(--gold) 14%,var(--panel-2))}.size-card.on,.size-card.on span{border-color:var(--gold);color:var(--gold)}.acc{border:1px solid var(--line);border-radius:10px;margin-bottom:8px;overflow:hidden}.acc.leader{box-shadow:inset 3px 0 0 var(--gold)}.acc.unused{opacity:.6}.acc-head{display:flex;align-items:center;gap:8px;padding:10px 12px;cursor:pointer}.acc-title{flex:1 1;min-width:0}.acc .count{min-width:26px;height:26px;display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--line);border-radius:50%;font-size:13px}.acc .step{padding:0 8px}.chev{color:var(--muted)}.acc-body{padding:4px 12px 12px;border-top:1px solid var(--line)}.acc-body small{display:block;color:var(--muted);margin-top:8px}.opts-head{display:flex;justify-content:space-between;align-items:baseline;margin-top:8px}.per-model{display:flex;flex-wrap:wrap;gap:8px;align-items:flex-end;padding:6px 0;border-bottom:1px dashed var(--line)}.per-model:last-child{border-bottom:0}.per-model>.muted{width:100%}.group-select{display:flex;flex-direction:column;gap:2px;font-size:12px;color:var(--muted);min-width:200px}.stage{border-radius:12px;padding:18px 10px 8px;background:radial-gradient(ellipse at 50% 100%,#1f3a2c 0,#0d1513 60%,#0a0f0e 100%);border:1px solid var(--line)}.squad{display:flex;flex-wrap:wrap;justify-content:center;align-items:flex-end;gap:0 2px}.squad.compact{flex-wrap:nowrap;justify-content:flex-start}.squad.compact .squad-fig{margin-right:-22px}.squad .more{align-self:center;margin-left:26px;font-size:12px;color:var(--muted)}.squad-fig{position:relative;display:flex;flex-direction:column;align-items:center}.squad-fig.attached,.squad-fig.leader{order:-1;z-index:2}.squad-fig.attached{order:-2}.squad-fig.attached:after,.squad-fig.leader:after{content:"";position:absolute;bottom:4px;left:15%;right:15%;height:12px;border-radius:50%;border:2px solid var(--gold);box-shadow:0 0 10px var(--gold);z-index:-1}.ribbon{position:absolute;top:-6px;z-index:3;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:#1a1406;background:var(--gold);padding:1px 7px;border-radius:4px}.squad-fig .beam{position:absolute;left:50%;bottom:0;width:70%;height:110%;transform:translateX(-50%);pointer-events:none;opacity:0;border-radius:40%;background:linear-gradient(0deg,rgba(140,230,255,0),rgba(170,240,255,.85) 40%,rgba(255,255,255,.9) 60%,rgba(140,230,255,0));filter:blur(2px)}.squad-fig.warp-in .trooper{animation:warp-in .7s cubic-bezier(.2,.9,.3,1) both}.squad-fig.warp-in .beam{animation:beam .7s ease-out both}.squad-fig.warp-out{pointer-events:none}.squad-fig.warp-out .trooper{animation:warp-out .7s ease-in both}.squad-fig.warp-out .beam{animation:beam .7s ease-in both}@keyframes warp-in{0%{clip-path:inset(0 48% 0 48%);filter:brightness(5) saturate(0);opacity:0;transform:translateY(-20px)}45%{clip-path:inset(0 0 0 0);filter:brightness(2.5) saturate(.4);opacity:1;transform:translateY(0)}to{clip-path:inset(0 0 0 0);filter:none;opacity:1}}@keyframes warp-out{0%{clip-path:inset(0 0 0 0);filter:none;opacity:1}55%{clip-path:inset(0 0 0 0);filter:brightness(3) saturate(0);opacity:1}to{clip-path:inset(0 48% 0 48%);filter:brightness(5);opacity:0;transform:translateY(-24px)}}@keyframes beam{0%{opacity:0;transform:translateX(-50%) scaleX(.2)}30%{opacity:1;transform:translateX(-50%) scaleX(1)}to{opacity:0;transform:translateX(-50%) scaleX(.3)}}.coach{margin-bottom:18px}.coach h2{font-size:18px;margin-bottom:8px}.coach-item{border-left:3px solid var(--line);background:var(--panel-2);border-radius:0 8px 8px 0;padding:7px 10px;margin-bottom:8px;font-size:13px}.coach-item p{margin:3px 0 0;color:var(--muted)}.coach-item.error{border-color:var(--bad)}.coach-item.error strong{color:var(--bad)}.coach-item.warning{border-color:var(--warn)}.coach-item.tip{border-color:#5cc8ff}.fixes{display:flex;flex-wrap:wrap;gap:5px;align-items:center;margin-top:6px}.fixes small{color:var(--muted);font-size:11px;margin-right:2px}.fix{font-size:12px;padding:2px 9px;border-radius:999px;border-color:#1f5f80;color:#5cc8ff;background:#0f2633}.fix span{color:var(--muted);margin-left:4px}.fix:hover{background:#163a4d}.art .helm{fill:var(--helm,var(--armour))}.art .helm-leader{fill:var(--helm,#a3241c)}.art .sash{fill:#a3241c}.art .scar{fill:none;stroke:#7a2b22;stroke-width:1.6}.art .cloth{fill:#4a4f3a}.art .camo{fill:#4b5a40}.art .camo-d{fill:#2f3a28}.art .lib-cowl{fill:#1f3a66}.art .grav{fill:#7fe3ff;opacity:.55;filter:blur(2px) drop-shadow(0 0 6px #39c6ff);animation:pulse 1.2s ease-in-out infinite}.art .beacon{fill:#ff5a2a;filter:drop-shadow(0 0 5px #ff3b1a);animation:blink 1s steps(1) infinite}.art .scorch{fill:#000;opacity:.45}.art .tripod{fill:none;stroke:#3d4549;stroke-width:7}.anim-hover{animation:hover 2.4s ease-in-out infinite}.anim-pod{animation:settle 3s ease-in-out infinite}.anim-turret .scan{animation:scan 3.2s ease-in-out infinite;transform-origin:100px 150px}.anim-mounted .wheel{stroke-dasharray:6 4;animation:spin .6s linear infinite;transform-box:fill-box;transform-origin:center}@keyframes hover{0%,to{transform:translateY(0)}50%{transform:translateY(-6px)}}@keyframes settle{0%,80%,to{transform:translateY(0)}85%{transform:translateY(2px)}90%{transform:translateY(-1px)}}@keyframes scan{0%,to{transform:rotate(-4deg)}50%{transform:rotate(5deg)}}@keyframes blink{0%,49%{opacity:1}50%,to{opacity:.25}}.seg{display:inline-flex;border:1px solid var(--line);border-radius:8px;overflow:hidden;margin-top:4px}.seg button{border:0;border-radius:0;background:none;padding:5px 12px;font-size:13px}.seg button+button{border-left:1px solid var(--line)}.seg button.on{background:color-mix(in srgb,var(--gold) 18%,var(--panel-2));color:var(--gold)}.art .hood{fill:var(--hood,var(--robe))}.art .plume{fill:#b3261e}.art .laurel{fill:none;stroke:#c9a14a;stroke-width:3}.art .leaf{fill:#8fae4a;stroke-width:1.2}.art .banner{fill:#2f6146}.art .flag{animation:wave 2.6s ease-in-out infinite;transform-origin:40px 19px}.art .iron-halo circle,.art .iron-halo path{fill:none;stroke:#c9a14a;stroke-width:4}.art .iron-halo .gem{fill:#c9302a;stroke:#111416;stroke-width:2}.art .sand{fill:#e3c27a}.art .fur{fill:#8a7356;stroke-width:1.6}.art .watcher-robe{fill:#1f3d2c}.art .watcher-eye{fill:#9cf06a;stroke:none;filter:drop-shadow(0 0 3px #7fe34a);animation:eyes 2.6s ease-in-out infinite}.art .watcher{animation:bob 2.2s ease-in-out infinite}.art .servo-skull{animation:hover 2s ease-in-out infinite}@keyframes wave{0%,to{transform:skewY(0deg)}50%{transform:skewY(-4deg) scaleX(.97)}}.art .emblem{fill:var(--emblem,#ece2c8)}.art .mark{fill:var(--mark,#b3261e)}.art .banner{fill:var(--banner,#2f6146)}.art .fur{fill:#8d9399}.art .fur-d{fill:#5c6167}.art .fur-l{fill:#c6cbd0}.art .wolf-eye{fill:#ffd23a;stroke-width:1.2;filter:drop-shadow(0 0 3px #ffb21a);animation:eyes 2.6s ease-in-out infinite}.anim-beast{animation:prowl 1.6s ease-in-out infinite}.anim-beast .wleg-f{animation:step .8s ease-in-out infinite}.anim-beast .wleg-b,.anim-beast .wleg-f{transform-box:fill-box;transform-origin:top center}.anim-beast .wleg-b{animation:step .8s ease-in-out infinite reverse}.anim-beast .tail{animation:wag 1.2s ease-in-out infinite;transform-box:fill-box;transform-origin:right center}.art .storm{animation:crackle .6s steps(2) infinite}@keyframes prowl{0%,to{transform:translateY(0)}50%{transform:translateY(-3px)}}@keyframes wag{0%,to{transform:rotate(-6deg)}50%{transform:rotate(8deg)}}.gallery .topbar a,.gallery .topbar button{color:var(--muted);text-decoration:none;padding:4px 8px;border-radius:6px;border:0;background:none}.gallery .topbar .on{color:var(--gold);background:var(--panel-2)}.gallery-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:10px;padding:14px 16px}.gallery-cell{overflow:hidden;margin:0;background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:8px;display:flex;flex-direction:column;align-items:center}.gallery-cell .squad.compact{justify-content:center}.gallery-cell .squad.compact .squad-fig{margin-right:-46px}.gallery-cell figcaption{font-size:12px;color:var(--muted);margin-top:4px;text-align:center}.art .dome{fill:#8ae8ff;opacity:.35;stroke:#39c6ff}.art .statue{fill:#cfc6b0}.art .glow{fill:#8ae8ff;stroke:#1f7fb8;animation:pulse 1.1s ease-in-out infinite}.art .glow,.art .rune{filter:drop-shadow(0 0 4px #39c6ff)}.art .rune{fill:none;stroke:#8ae8ff;stroke-width:2.5;animation:pulse 1.6s ease-in-out infinite}.art .blood{fill:none;stroke:#7a1410;stroke-width:3}.art .fur-cape{fill:#6b5a48}.l{min-height:100vh;background:radial-gradient(1200px 600px at 20% -10%,rgba(63,163,107,.18),transparent 60%),radial-gradient(1000px 600px at 90% 10%,rgba(120,160,210,.16),transparent 60%),var(--bg)}.l-nav{display:flex;justify-content:space-between;align-items:center;padding:18px clamp(16px,5vw,64px)}.l-logo{font-weight:800;letter-spacing:.22em;color:var(--bone)}.l-btn{display:inline-block;background:var(--accent);color:#07110b;border:0;border-radius:999px;padding:12px 22px;font-weight:700;text-decoration:none;transition:transform .15s,box-shadow .15s}.l-btn:hover{transform:translateY(-1px);box-shadow:0 6px 24px rgba(63,163,107,.35)}.l-btn.small{padding:8px 16px;font-size:14px}.l-hero{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:32px;align-items:center;padding:40px clamp(16px,5vw,64px) 72px;max-width:1200px;margin:0 auto}.l-kicker{text-transform:uppercase;letter-spacing:.14em;font-size:12px;color:var(--gold);margin:0 0 12px}.l-hero h1{font-size:clamp(36px,5.5vw,64px);line-height:1.04;letter-spacing:-.02em}.l-hero h1 span{color:var(--accent)}.l-lede{font-size:18px;line-height:1.55;color:#c5ccc8;max-width:34em;margin:20px 0 28px}.l-faceoff{display:flex;align-items:center;justify-content:center;gap:8px}.l-side{border-radius:24px;padding:12px}.l-side.da{background:linear-gradient(160deg,rgba(63,163,107,.25),transparent)}.l-side.sw{background:linear-gradient(200deg,rgba(120,160,210,.25),transparent)}.l-vs{font-weight:900;font-size:28px;color:var(--gold);text-shadow:0 0 18px rgba(227,176,75,.5)}.l-section{max-width:1000px;margin:0 auto;padding:56px clamp(16px,5vw,64px)}.l-section h2{font-size:clamp(26px,3.4vw,38px);letter-spacing:-.01em}.l-sub{color:var(--muted);font-size:17px;line-height:1.5;margin:10px 0 24px}.l-chips{display:flex;flex-wrap:wrap;gap:10px}.l-chip{border-radius:999px;padding:10px 18px;background:var(--panel-2);border:1px solid var(--line);font-weight:600;transition:all .15s}.l-chip.on,.l-chip:hover{border-color:var(--accent)}.l-chip.on{background:var(--accent);color:#07110b}.l-answer{margin-top:20px;min-height:60px;font-size:17px;line-height:1.5}.l-answer p{margin:0 0 10px;padding-left:14px;border-left:3px solid var(--accent)}.l-answer p.muted{border:0;padding:0}.l-compare{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-top:24px}.l-card{border-radius:18px;padding:22px 24px;border:1px solid var(--line);background:var(--panel)}.l-card h3{font-size:18px;margin-bottom:12px}.l-card ul{margin:0;padding-left:18px;line-height:1.9}.l-card.old{color:var(--muted)}.l-card.old li::marker{color:var(--bad)}.l-card.new{border-color:rgba(63,163,107,.6);box-shadow:0 0 40px rgba(63,163,107,.12)}.l-card.new li::marker{color:var(--good)}.l-features{display:grid;grid-template-columns:repeat(3,1fr);gap:28px}.l-features h3{color:var(--bone);margin-bottom:8px}.l-features p{color:#c5ccc8;line-height:1.55;margin:0}.l-join{text-align:center}.l-form{display:flex;flex-wrap:wrap;gap:10px;justify-content:center}.l-form input,.l-form select{padding:12px 14px;border-radius:12px;font-size:16px}.l-form input{min-width:260px}.l-spot{background:var(--panel);border:1px solid rgba(227,176,75,.5);border-radius:24px;padding:32px;max-width:560px;margin:0 auto}.l-pos{font-size:72px;font-weight:900;color:var(--gold);margin:0;line-height:1}.l-share{display:flex;gap:8px;margin-top:16px}.l-share input{flex:1 1;min-width:0}.l-foot{max-width:1000px;margin:0 auto;padding:32px clamp(16px,5vw,64px) 48px;color:var(--muted);font-size:13px;line-height:1.5;border-top:1px solid var(--line)}@media (max-width:800px){.l-compare,.l-features,.l-hero{grid-template-columns:1fr}.l-faceoff{order:-1}}.l-foot,.l-section{position:relative}.l-cameo{position:absolute;top:40px;pointer-events:none;opacity:.95;animation:l-bob 4s ease-in-out infinite;filter:drop-shadow(0 10px 18px rgba(0,0,0,.45))}.l-cameo.left{left:-170px}.l-cameo.right{right:-170px;animation-delay:-2s}.l-cameo.low{top:auto;bottom:20px}.l-cameo.flip>*{transform:scaleX(-1)}.l-foot .l-cameo{top:-40px;right:-60px}@keyframes l-bob{50%{translate:0 -6px}}@media (max-width:1360px){.l-cameo{display:none}}@media (prefers-reduced-motion:reduce){.l-cameo{animation:none}}.l-count{display:flex;gap:14px;margin:0 0 24px}.l-count span{display:flex;flex-direction:column;align-items:center;font-size:11px;text-transform:uppercase;letter-spacing:.1em;color:var(--muted);background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:8px 12px;min-width:64px}.l-count b{font-size:28px;color:var(--bone);font-feature-settings:"tnum";font-variant-numeric:tabular-nums;letter-spacing:0}.l-features .l-cameo.left{left:-230px}