@font-face{font-family:Alegreya Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/alegreya-sans-latin-400-normal-DtLlO8BS.woff2)format("woff2"),url(/assets/alegreya-sans-latin-400-normal-DmA8jeke.woff)format("woff")}@font-face{font-family:Alegreya Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/alegreya-sans-latin-500-normal-DS713u5J.woff2)format("woff2"),url(/assets/alegreya-sans-latin-500-normal-vXxrTKJT.woff)format("woff")}@font-face{font-family:Alegreya Sans;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/alegreya-sans-latin-700-normal-DEbcy2sF.woff2)format("woff2"),url(/assets/alegreya-sans-latin-700-normal-BnzUNlma.woff)format("woff")}@font-face{font-family:Alegreya;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/alegreya-latin-400-normal-BLlBRtDv.woff2)format("woff2"),url(/assets/alegreya-latin-400-normal-BuQWlRPA.woff)format("woff")}@font-face{font-family:Alegreya;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/alegreya-latin-500-normal-C25lLdV_.woff2)format("woff2"),url(/assets/alegreya-latin-500-normal-B7TqNLeg.woff)format("woff")}@font-face{font-family:Alegreya;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/alegreya-latin-700-normal-Vpz_43wJ.woff2)format("woff2"),url(/assets/alegreya-latin-700-normal-BS7r-qZs.woff)format("woff")}@font-face{font-family:Barlow Condensed;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/barlow-condensed-latin-400-normal-Dc2u_eUW.woff2)format("woff2"),url(/assets/barlow-condensed-latin-400-normal-BXL2z6Kg.woff)format("woff")}@font-face{font-family:Barlow Condensed;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/barlow-condensed-latin-500-normal-BgYH2mbd.woff2)format("woff2"),url(/assets/barlow-condensed-latin-500-normal-HIEiP5Ov.woff)format("woff")}@font-face{font-family:Barlow Condensed;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/barlow-condensed-latin-600-normal-DepVgxBB.woff2)format("woff2"),url(/assets/barlow-condensed-latin-600-normal-BFJEwTuo.woff)format("woff")}@font-face{font-family:Barlow Condensed;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/barlow-condensed-latin-700-normal-v1xN8_Wq.woff2)format("woff2"),url(/assets/barlow-condensed-latin-700-normal-Dmwat-ge.woff)format("woff")}:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html,body{color:#e8e6e1;-webkit-user-select:none;user-select:none;background:#0f0f12;height:100%;margin:0;font:13px/1.35 system-ui,-apple-system,Segoe UI,sans-serif;overflow:hidden}#view{outline:none;width:100vw;height:100vh;display:block;position:fixed;inset:0}#hud{pointer-events:none;position:fixed;inset:0}.legion-hud{--font-ui:"Alegreya Sans", system-ui, sans-serif;--font-name:"Alegreya Sans", system-ui, sans-serif;--font-num:"Alegreya Sans", system-ui, sans-serif;--fw-name:500;--fw-strong:500;--fs-xs:12px;--fs-sm:13px;--fs-md:15px;--fs-lg:18px;--fs-xl:24px;--ink:#f4f4f2;--ink-2:#b9bcb6;--ink-3:#7e827c;--surface:#080909a8;--surface-blur:blur(10px);--surface-solid:#0a0b0bf0;--hover:#ffffff0f;--active:#ffffff21;--active-ink:var(--ink);--select:var(--ink);--rule:transparent;--rule-mark:#f4f4f28c;--radius:10px;--radius-sm:6px;--shadow:none;--you:#3d7be0;--foe:#d9442e;--steady:#79c38a;--waver:#e9b949;--track:#ffffff1a;--bar-h:3px;--bal-h:6px;--pad:12px;--gap:10px;--kbd-ink:var(--ink-3);--kbd-bg:transparent;--kbd-rule:transparent;--coach-bg:#080909d1;--coach-ink:var(--ink);--card-bg:transparent;--card-you:transparent;--map-radius:6px;--map-ink:#f4f4f2;--nums:lining-nums proportional-nums}.legion-hud[data-look="2"]{--font-name:"Alegreya", Georgia, serif;--fw-name:500;--fw-strong:700;--ink:#2a2017;--ink-2:#5a4b3a;--ink-3:#8c7b64;--surface:#efe8d8ed;--surface-blur:none;--surface-solid:#efe8d8;--hover:#2a20170f;--active:#2a20171c;--active-ink:#2a2017;--select:#2a2017;--rule:#2a201747;--rule-mark:#2a201799;--radius:3px;--radius-sm:2px;--shadow:0 1px 0 #2a201740, 0 6px 18px #00000047;--you:#2c559e;--foe:#b0392a;--steady:#3f7d4e;--waver:#b07a12;--track:#2a201724;--bar-h:3px;--bal-h:7px;--kbd-ink:#8c7b64;--coach-bg:#efe8d8;--coach-ink:#2a2017;--map-radius:2px;--map-ink:#efe8d8;--nums:oldstyle-nums proportional-nums}.legion-hud[data-look="3"]{--font-ui:"Barlow Condensed", "Arial Narrow", sans-serif;--font-name:"Barlow Condensed", "Arial Narrow", sans-serif;--font-num:"Barlow Condensed", "Arial Narrow", sans-serif;--fw-name:600;--fw-strong:600;--fs-xs:12.5px;--fs-sm:14px;--fs-md:16px;--fs-lg:19px;--fs-xl:26px;--ink:#fff;--ink-2:#c4c7ca;--ink-3:#868a8f;--surface:#060708db;--surface-blur:none;--surface-solid:#0b0c0d;--hover:#ffffff12;--active:#fff;--active-ink:#050607;--select:#fff;--rule:#ffffff29;--rule-mark:#ffffffd9;--radius:0;--radius-sm:0;--you:#4a8bff;--foe:#ff4b3a;--steady:#fff;--waver:#f2b33d;--track:#ffffff24;--bar-h:2px;--bal-h:4px;--pad:10px;--gap:8px;--kbd-ink:#868a8f;--coach-bg:#050607;--coach-ink:#fff;--map-radius:0;--map-ink:#fff;--nums:lining-nums tabular-nums}.legion-hud{pointer-events:none;font-variant-numeric:var(--nums);font-family:var(--font-ui);font-size:var(--fs-sm);color:var(--ink);line-height:1.35;position:absolute;inset:0}.legion-hud svg{flex:none;width:18px;height:18px}.legion-hud kbd{border-radius:var(--radius-sm);border:1px solid var(--kbd-rule);background:var(--kbd-bg);font:500 var(--fs-xs) / 1.2 var(--font-ui);color:var(--kbd-ink);padding:0 3px;display:inline-block}.legion-hud .panel{pointer-events:auto;background:var(--surface);-webkit-backdrop-filter:var(--surface-blur);backdrop-filter:var(--surface-blur);border-radius:var(--radius);padding:8px var(--pad);box-shadow:var(--shadow);border:0}.legion-hud[data-look="3"] .panel{outline:1px solid var(--rule)}.legion-hud .muted{color:var(--ink-3)}.legion-hud select,.legion-hud button{font:inherit;color:var(--ink-2);border-radius:var(--radius-sm);cursor:pointer;background:0 0;border:0;padding:3px 8px}.legion-hud button:hover,.legion-hud select:hover{background:var(--hover);color:var(--ink)}.legion-hud button.active{background:var(--active);color:var(--active-ink)}.legion-hud select{background:var(--hover)}.legion-hud button:focus-visible{outline:2px solid var(--ink-2);outline-offset:1px}.toolbar{pointer-events:auto;gap:4px;display:flex;position:absolute;top:10px;left:10px}.tool-btn,.segmented{-webkit-backdrop-filter:var(--surface-blur);backdrop-filter:var(--surface-blur);box-shadow:var(--shadow);background:var(--surface)!important}.legion-hud .tool-btn{border-radius:var(--radius);align-items:center;gap:6px;padding:6px 10px;display:flex}.legion-hud .tool-btn svg{width:16px;height:16px}.legion-hud .tool-btn.active{background:var(--active)!important}.segmented{border-radius:var(--radius);padding:2px;display:flex}.legion-hud .seg-btn{color:var(--ink-3);padding:4px 10px}.legion-hud .seg-btn.active{background:var(--active);color:var(--active-ink)}.legion-hud[data-look="3"] .toolbar>*{outline:1px solid var(--rule)}.sandbox{width:290px;padding:6px 10px;position:absolute;top:52px;left:10px}.sandbox summary{cursor:pointer;color:var(--ink-3)}.sandbox-body{flex-direction:column;gap:6px;margin-top:6px;display:flex}.row{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.row>label{width:72px;color:var(--ink-3);font-size:var(--fs-xs)}.row select{flex:1;min-width:0}.legion-hud .team-btn{color:#fff;background:var(--you);font-weight:500}.legion-hud .team-btn.red{background:var(--foe)}.brush{flex-wrap:wrap;gap:3px;display:flex}.legion-hud .swatch{border:2px solid #0000;border-radius:3px;width:20px;height:20px;padding:0}.legion-hud .swatch.active{border-color:var(--ink);background-clip:padding-box}.legion-hud .hint{color:var(--ink-3);font-size:var(--fs-xs);padding-left:78px}.legion-hud .stats{white-space:pre;pointer-events:none;margin:0;font:12px/1.45 ui-monospace,Cascadia Mono,Consolas,monospace;position:absolute;top:96px;left:10px}.region-top{width:min(720px,100vw - 720px);min-width:520px;position:absolute;top:8px;left:50%;transform:translate(-50%)}.statusbar{flex-direction:column;gap:6px;display:flex}.legion-hud .statusbar{padding:8px 14px}.sb-row{align-items:center;gap:var(--gap);display:flex}.sb-side{flex-direction:column;flex:none;gap:2px;width:168px;display:flex}.sb-side.right{text-align:right;align-items:flex-end}.sb-name{font:var(--fw-name) var(--fs-sm) / 1.2 var(--font-name)}.sb-men{font:var(--fw-strong) var(--fs-lg) / 1.15 var(--font-num);color:var(--ink)}.sb-loss{color:var(--ink-3);font-size:var(--fs-sm);font-weight:400}.sb-morale{font-size:var(--fs-xs);color:var(--ink-3);align-items:center;gap:6px;width:100%;display:flex}.sb-side.right .sb-morale{flex-direction:row-reverse}.sb-moralebar,.meter{height:var(--bar-h);border-radius:var(--bar-h);background:var(--track);flex:1;overflow:hidden}.legion-hud[data-look="3"] .sb-moralebar,.legion-hud[data-look="3"] .meter{border-radius:0}.sb-moralebar i,.meter i{height:100%;transition:width .4s ease-out;display:block}.sb-side.right .sb-moralebar,.sb-meter.lose .meter{justify-content:flex-end;display:flex}.sb-counts{min-height:16px;font-size:var(--fs-xs);flex-wrap:wrap;gap:0 8px;display:flex}.sb-side.right .sb-counts{justify-content:flex-end}.chip{color:var(--ink-3)}.chip.wavering{color:var(--waver)}.chip.wavering:before{content:"● "}.chip.routing{color:var(--ink)}.chip.routing:before{content:"⚑ "}.legion-hud[data-look="2"] .chip.routing,.legion-hud[data-look="3"] .chip.routing{font-weight:600}.sb-clock.limit{color:var(--waver)}.chip.general{color:#e6c15a;font-weight:600}.chip.general.routing{color:var(--waver)}.chip.general.routing:before{content:none}.chip.general.fallen,.chip.general.leaderless{color:var(--foe)}.sb-center{flex:1;min-width:0}.sb-balance{position:relative}.bal-track{height:var(--bal-h);border-radius:var(--bal-h);background:var(--track);display:flex;position:relative;overflow:hidden}.legion-hud[data-look="3"] .bal-track{border-radius:0}.bal-track i{height:100%;transition:width .6s ease-out;display:block}.bal-mid{background:var(--rule-mark);width:1px;position:absolute;top:-3px;bottom:-3px;left:50%}.bal-trend{text-align:center;font:500 var(--fs-xs) / 1.3 var(--font-num);color:var(--ink-3);margin-top:3px}.bal-trend.up{color:var(--ink)}.bal-trend.down{color:var(--waver)}.sb-meter{font-size:var(--fs-xs);color:var(--ink-3);flex-direction:column;flex:1;gap:3px;display:flex}.sb-meter.lose{text-align:right}.sb-meter.win i{background:var(--steady)}.sb-meter.lose i{background:var(--waver)}.legion-hud[data-look="3"] .sb-meter.win i{background:var(--ink)}.sb-clockbox{flex-direction:column;align-items:center;gap:2px;display:flex}.sb-clock{font:var(--fw-strong) var(--fs-lg) / 1 var(--font-num);font-variant-numeric:tabular-nums;color:var(--ink)}.sb-time{gap:0;display:flex}.legion-hud .sb-time button{font:500 var(--fs-xs) / 1.3 var(--font-num);color:var(--ink-3);align-items:center;padding:1px 6px;display:flex}.legion-hud .sb-time button.active{color:var(--active-ink)}.sb-time svg{width:12px!important;height:12px!important}.sb-sectorrow{gap:6px}.sb-sectors{flex:1;gap:4px;display:flex}.legion-hud .sector{font-size:var(--fs-xs);color:var(--ink-3);text-align:center;flex:1;padding:2px 6px}.sector:before{width:1.1em;display:inline-block}.sector.winning:before{content:"▲";color:var(--steady)}.sector.losing:before{content:"▼";color:var(--waver)}.sector.holding:before{content:"◆"}.sector.threatened:before{content:"△";color:var(--waver)}.sector.quiet:before,.sector.empty:before{content:"·"}.legion-hud .sector.winning,.legion-hud .sector.holding{color:var(--ink-2)}.legion-hud .sector.losing{color:var(--ink);font-weight:500}.legion-hud[data-look="2"] .sb-sectorrow,.legion-hud[data-look="3"] .sb-sectorrow{border-top:1px solid var(--rule);padding-top:5px}.legion-hud .sb-more{font-size:var(--fs-xs);color:var(--ink-3);padding:2px 6px}.sb-drawer{border-top:1px solid var(--rule);flex-direction:column;gap:6px;padding-top:6px;display:flex}.sb-chart{width:100%;height:96px}.sb-h{font-size:var(--fs-xs);color:var(--ink-3)}.legion-hud[data-look="2"] .sb-h{font:italic 500 var(--fs-sm) / 1.3 var(--font-name);color:var(--ink-2)}.sb-cols{gap:16px;display:flex}.sb-tlwrap{flex:1;min-width:0}.sb-table .tr{font:var(--fs-sm) / 1.45 var(--font-num);font-variant-numeric:tabular-nums;grid-template-columns:1fr 70px 70px;display:grid}.sb-table .tr span:not(:first-child){text-align:right}.sb-table .th{color:var(--ink-3)}.sb-timeline{flex-direction:column;gap:1px;max-height:140px;display:flex;overflow-y:auto}.legion-hud .tl-item{text-align:left;font-size:var(--fs-sm);color:var(--ink-2);align-items:center;gap:8px;padding:2px 4px;display:flex}.tl-item.good .tl-icon{color:var(--steady)}.tl-item.bad .tl-icon{color:var(--waver)}.tl-time{color:var(--ink-3);font:var(--fs-xs) var(--font-num);font-variant-numeric:tabular-nums}.tl-icon{text-align:center;width:14px}.region-topright{width:330px;position:absolute;top:10px;right:10px}.alerts{pointer-events:auto;flex-direction:column;gap:3px;display:flex}.alert-head{justify-content:flex-end;display:flex}.alert-head span{display:none}.legion-hud .alert-log-btn{font-size:var(--fs-xs);color:var(--ink-3);background:var(--surface);-webkit-backdrop-filter:var(--surface-blur);backdrop-filter:var(--surface-blur);padding:1px 8px}.alert-list{flex-direction:column;gap:3px;display:flex}.legion-hud .alert{text-align:left;border-radius:var(--radius);background:var(--surface);-webkit-backdrop-filter:var(--surface-blur);backdrop-filter:var(--surface-blur);box-shadow:var(--shadow);color:var(--ink-2);font-size:var(--fs-sm);align-items:baseline;gap:8px;padding:6px 12px;line-height:1.3;transition:opacity .3s,transform .3s;display:flex}.legion-hud[data-look="3"] .alert{outline:1px solid var(--rule)}.alert:before{text-align:center;flex:none;width:1em}.alert.danger:before{content:"▲";color:var(--waver)}.alert.warn:before{content:"●";color:var(--waver)}.alert.info:before{content:"●";color:var(--ink-3)}.alert.good:before{content:"✓";color:var(--steady)}.legion-hud .alert.danger{color:var(--ink);font-weight:500}.alert.enter{animation:.16s ease-out rise}.alert.out{opacity:0;transform:translateY(-6px)}.alert-time{color:var(--ink-3);font:var(--fs-xs) var(--font-num);font-variant-numeric:tabular-nums;flex:none;order:2;margin-left:auto}.alert-text{order:1}.alert-log{flex-direction:column;gap:2px;max-height:50vh;display:flex;overflow-y:auto}.legion-hud .edge{pointer-events:auto;background:var(--surface-solid);width:30px;height:30px;color:var(--ink-2);border:1.5px solid;border-radius:50%;place-items:center;padding:0;display:grid;position:absolute;top:0;left:0}.legion-hud[data-look="3"] .edge{border-radius:0}.legion-hud .edge.routing{color:var(--ink)}.legion-hud .edge.flanked,.legion-hud .edge.engaged{color:var(--waver)}.edge-icon{place-items:center;display:grid}.edge:before{font:600 11px/14px var(--font-ui);text-align:center;background:var(--surface-solid);color:currentColor;border-radius:7px;min-width:14px;position:absolute;top:-7px;right:-7px}.edge.engaged:before{content:"×"}.edge.flanked:before{content:"‹"}.edge.underFire:before{content:"↓"}.edge-icon svg{width:15px!important;height:15px!important}.edge-arrow{pointer-events:none;position:absolute;inset:-8px}.edge-arrow:after{content:"";border:5px solid #0000;border-left:7px solid;margin-top:-5px;position:absolute;top:50%;right:-1px}.region-bottomleft{position:absolute;bottom:10px;left:10px}.region-bottomright{position:absolute;bottom:10px;right:10px}.region-bottomcenter{justify-content:center;display:flex;position:absolute;bottom:10px;left:372px;right:248px}.cards-wrap{pointer-events:auto;align-items:flex-end;gap:6px;max-width:100%;display:flex}.legion-hud .idle-btn{border-radius:var(--radius);background:var(--surface);-webkit-backdrop-filter:var(--surface-blur);backdrop-filter:var(--surface-blur);color:var(--ink);flex:none;align-items:center;gap:4px;padding:6px 10px;display:flex}.idle-btn:before{content:"●";color:var(--waver);font-size:10px}.idle-btn svg{display:none}.cards{border-radius:var(--radius);background:var(--surface);max-width:100%;-webkit-backdrop-filter:var(--surface-blur);backdrop-filter:var(--surface-blur);box-shadow:var(--shadow);scrollbar-width:thin;gap:14px;padding:6px 10px 8px;display:flex;overflow:auto hidden}.legion-hud[data-look="3"] .cards{outline:1px solid var(--rule);gap:0}.cards:empty{display:none}.card-group{flex-direction:column;flex:none;gap:2px;display:flex}.legion-hud[data-look="2"] .card-group+.card-group{border-left:1px solid var(--rule);padding-left:12px}.legion-hud[data-look="3"] .card-group+.card-group{border-left:1px solid var(--rule)}.legion-hud .card-group-head{font-size:var(--fs-xs);color:var(--ink-3);text-align:left;align-items:center;gap:4px;padding:0 4px;display:flex}.legion-hud[data-look="2"] .card-group-head{font-family:var(--font-name);font-style:italic}.card-group-head svg{width:14px!important;height:14px!important}.card-row{gap:2px;display:flex}.legion-hud[data-look="3"] .card-row{gap:0}.card{border-radius:var(--radius-sm);background:var(--card-bg);cursor:pointer;width:82px;color:var(--ink-2);flex-direction:column;gap:2px;padding:4px 6px 5px;display:flex;position:relative}.card:hover{background:var(--hover)}.card.selected{background:var(--active);color:var(--ink);box-shadow:inset 0 -2px 0 var(--select)}.legion-hud[data-look="3"] .card{border-right:1px solid var(--rule)}.legion-hud[data-look="3"] .card.selected{box-shadow:inset 0 2px 0 var(--select);background:#ffffff1f}.card.dead{opacity:.35}.card-top{align-items:center;gap:4px;height:18px;display:flex}.card-icon{background:var(--you);color:#fff;border-radius:2px;place-items:center;width:22px;height:16px;display:grid}.legion-hud[data-look="2"] .card-icon{clip-path:polygon(0 0,100% 0,78% 50%,100% 100%,0 100%);border-radius:0}.legion-hud[data-look="3"] .card-icon{border-radius:0}.card-icon svg{width:13px!important;height:13px!important}.card-group-n{font:600 var(--fs-xs) / 1 var(--font-num);color:var(--ink)}.card-badges{gap:1px;margin-left:auto;display:flex}.bd{color:var(--ink-3);display:grid}.bd svg{width:12px!important;height:12px!important}.bd.routing,.bd.engaged{color:var(--ink)}.bd.flanked,.bd.nofire{color:var(--waver)}.card-name{font:var(--fw-name) var(--fs-xs) / 1.2 var(--font-name);color:var(--ink);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.card-count{font:var(--fs-xs) / 1.2 var(--font-num);color:var(--ink-2);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.card-bars{flex-direction:column;gap:2px;margin-top:1px;display:flex}.cb{background:var(--track);height:2px;display:block;overflow:hidden}.cb b{height:100%;transition:width .3s ease-out;display:block}.cb.hp b{background:var(--ink)}.cb.mor b{background:var(--steady)}.cb.fat b{background:var(--ink-3)}.cb.ammo b{background:var(--waver)}.legion-hud[data-look="3"] .cb.mor b{background:var(--ink-2)}.card-modes{color:var(--ink-3);gap:3px;min-height:13px;display:flex}.card-modes svg{width:12px!important;height:12px!important}.cards.compact .card{width:44px;padding:3px}.cards.compact .card-name,.cards.compact .card-modes,.cards.compact .card-count{display:none}.legion-hud .cmdpanel{width:352px;padding:10px 12px}.cmd-empty-title{font:var(--fw-name) var(--fs-md) / 1.3 var(--font-name)}.cmd-empty-text{color:var(--ink-2);margin:4px 0 8px}.legion-hud .cmd-wide{background:var(--hover);width:100%;color:var(--ink);padding:7px}.cmd-head{align-items:flex-start;gap:6px;margin-bottom:2px;display:flex}.legion-hud[data-look="2"] .cmd-head{border-bottom:1px solid var(--rule);padding-bottom:6px}.cmd-names{flex:1;min-width:0}.cmd-title{font:var(--fw-name) var(--fs-lg) / 1.2 var(--font-name);color:var(--ink)}.cmd-sub{color:var(--ink-3);font-size:var(--fs-xs);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.legion-hud .cmd-x{color:var(--ink-3);padding:2px 4px;display:grid}.cmd-label-row{font-size:var(--fs-xs);color:var(--ink-3);margin:7px 0 2px}.legion-hud[data-look="3"] .cmd-label-row{border-top:1px solid var(--rule);padding-top:4px}.cmd-row{grid-template-columns:repeat(4,1fr);gap:2px;display:grid}.cmd-row.big{grid-template-columns:repeat(3,1fr)}.cmd-row.disabled{opacity:.35}.legion-hud .cmd{min-height:44px;color:var(--ink-2);flex-direction:column;align-items:center;gap:1px;padding:5px 2px 4px;display:flex;position:relative}.legion-hud .cmd.active{background:var(--active);color:var(--active-ink)}.cmd-row.big .cmd{min-height:48px}.cmd svg{width:18px!important;height:18px!important}.cmd-label{font-size:var(--fs-xs);white-space:nowrap}.legion-hud .cmd kbd{padding:0;font-size:11px;line-height:12px;position:absolute;top:3px;right:4px}.legion-hud .cmd.active kbd{color:inherit;opacity:.6}.legion-hud .hintbar{border-radius:var(--radius);background:var(--surface);max-width:calc(100vw - 760px);-webkit-backdrop-filter:var(--surface-blur);backdrop-filter:var(--surface-blur);color:var(--ink-2);font-size:var(--fs-sm);flex-wrap:wrap;justify-content:center;align-items:center;gap:2px 10px;padding:4px 14px;display:flex;position:absolute;bottom:158px;left:50%;transform:translate(-50%)}.hint-part{white-space:nowrap}.hint-part kbd{color:var(--ink)}.hint-part.warn:before,.hint-part.danger:before{content:"● ";color:var(--waver)}.hint-part.danger{color:var(--ink);font-weight:500}.hint-part.good:before{content:"‖ "}.hint-sep{display:none}.legion-hud .drag-label{border-radius:var(--radius-sm);background:var(--surface-solid);font-size:var(--fs-xs);pointer-events:none;white-space:nowrap;box-shadow:var(--shadow);flex-direction:column;padding:4px 9px;display:flex;position:absolute;top:0;left:0}.drag-label b{font:var(--fw-strong) var(--fs-sm) / 1.3 var(--font-num)}.drag-label span{color:var(--ink-3)}.drag-label.bad b:before{content:"● ";color:var(--waver)}.legion-hud .regcard{border-radius:var(--radius);background:var(--surface-solid);pointer-events:none;min-width:200px;max-width:300px;font-size:var(--fs-xs);box-shadow:var(--shadow);padding:7px 11px;position:absolute;top:0;left:0}.legion-hud[data-look="3"] .regcard{outline:1px solid var(--rule)}.rc-title{font:var(--fw-name) var(--fs-md) / 1.2 var(--font-name);margin-bottom:2px}.rc-title.team0{color:var(--you)}.rc-title.team1{color:var(--foe)}.legion-hud[data-look="1"] .rc-title,.legion-hud[data-look="3"] .rc-title{color:var(--ink)}.rc-body{color:var(--ink-2);font-size:var(--fs-sm)}.rc-warn{color:var(--ink);margin-top:3px;font-weight:500}.rc-warn:before{content:"▲ ";color:var(--waver)}.rc-action{color:var(--ink-3);margin-top:3px}.legion-hud .minimap{border-radius:var(--map-radius);padding:4px;line-height:0}.minimap canvas{border-radius:var(--map-radius);cursor:crosshair}.toasts{flex-direction:column;align-items:center;gap:3px;display:flex;position:absolute;top:214px;left:50%;transform:translate(-50%)}.legion-hud .toast{border-radius:var(--radius);background:var(--surface-solid);max-width:560px;box-shadow:var(--shadow);color:var(--ink);font-size:var(--fs-sm);text-align:center;padding:6px 14px;transition:opacity .3s;animation:.16s ease-out rise}.toast.out{opacity:0}.toast:before{content:"● ";color:var(--ink-3)}.toast.invalid:before,.toast.danger:before,.toast.warn:before{content:"▲ ";color:var(--waver)}.toast.ok:before,.toast.good:before{content:"✓ ";color:var(--steady)}.legion-hud .pause-pill{border-radius:var(--radius);background:var(--surface-solid);color:var(--ink);font-size:var(--fs-sm);align-items:center;gap:8px;padding:5px 14px;display:flex;position:absolute;top:172px;left:50%;transform:translate(-50%)}.pause-pill svg{width:14px!important;height:14px!important}.pause-pill span{color:var(--ink-2)}.legion-hud .banner{border-radius:var(--radius);background:var(--surface-solid);max-width:min(900px,100vw - 40px);box-shadow:var(--shadow);font-size:var(--fs-md);pointer-events:auto;padding:10px 18px;position:absolute;top:30%;left:50%;transform:translate(-50%)}.banner.info,.banner.warn,.banner.error{top:180px!important}.banner.warn:before,.banner.error:before{content:"▲ ";color:var(--waver)}.legion-hud .banner.desync,.legion-hud .banner.victory,.legion-hud .banner.defeat{font:var(--fw-name) var(--fs-xl) / 1.2 var(--font-name);text-align:center;padding:22px 40px}.banner.desync:before{content:"▲ ";color:var(--waver)}.banner.victory:before{content:"✓ ";color:var(--steady)}.banner.defeat:before{content:"⚑ "}.legion-hud .tooltip{z-index:50;border-radius:var(--radius);background:var(--surface-solid);pointer-events:none;max-width:300px;box-shadow:var(--shadow);padding:7px 11px;position:fixed;top:0;left:0}.legion-hud[data-look="3"] .tooltip{outline:1px solid var(--rule)}.tt-head{justify-content:space-between;align-items:center;gap:8px;display:flex}.tt-title{font:var(--fw-name) var(--fs-sm) / 1.3 var(--font-name)}.tt-body{color:var(--ink-2);font-size:var(--fs-xs);margin-top:2px}.region-overlay{pointer-events:none;position:absolute;inset:0}.help-overlay{pointer-events:auto;z-index:40;background:#00000080;place-items:center;display:grid;position:absolute;inset:0}.help-card{border-radius:var(--radius);background:var(--surface-solid);width:min(1100px,100vw - 40px);max-height:calc(100vh - 40px);box-shadow:var(--shadow);padding:18px 24px;overflow-y:auto}.legion-hud[data-look="3"] .help-card{outline:1px solid var(--rule)}.help-head{justify-content:space-between;align-items:center;display:flex}.help-head h2{font:var(--fw-name) var(--fs-xl) / 1.2 var(--font-name);margin:0}.legion-hud .help-close{padding:4px;display:grid}.help-cols{grid-template-columns:1.2fr 1fr;gap:24px;display:grid}.help-schemes{grid-template-columns:1fr 1fr;gap:12px;margin:10px 0;display:grid}.help-scheme{border-radius:var(--radius-sm);padding:8px 10px}.help-scheme.current{background:var(--hover)}.help-scheme.current .help-scheme-head h3:after{content:" · current";color:var(--ink-3);font-weight:400}.help-scheme.current .help-pick{visibility:hidden}.help-scheme-head{justify-content:space-between;align-items:center;display:flex}.help-scheme h3,.help-section h3{font:var(--fw-name) var(--fs-md) / 1.3 var(--font-name);margin:4px 0}.legion-hud[data-look="2"] .help-section h3,.legion-hud[data-look="2"] .help-schemes{border-bottom:1px solid var(--rule);padding-bottom:4px}.help-scheme p{font-size:var(--fs-xs);margin:0 0 6px}.legion-hud .help-pick{color:var(--ink);background:var(--hover)}.help-card table{border-collapse:collapse;font-size:var(--fs-sm)}.help-card td{vertical-align:top;color:var(--ink-2);padding:2px 12px 2px 0}.help-card td.key{color:var(--ink);white-space:nowrap;font-weight:500}.legend{flex-direction:column;gap:6px;display:flex}.legend-row{font-size:var(--fs-sm);color:var(--ink-2);grid-template-columns:70px 92px 1fr;align-items:center;gap:8px;display:grid}.legend-row b{color:var(--ink);font-weight:500}.legend-svg svg{background:var(--lg-bg);border-radius:var(--radius-sm);width:70px!important;height:22px!important}.legion-hud{--lg-bg:#4f6a3c;--lg-ink:#f4f4f2;--lg-route:#8fb3f0;--lg-attack:#8fb3f0;--lg-danger:#e9b949;--lg-win:#79c38a;--lg-lose:#e9b949;--lg-team:#3d7be0;--lg-foe:#d9442e;--lg-dot:#00000073}.legion-hud[data-look="2"]{--lg-bg:#7a8c5a;--lg-ink:#2a2017;--lg-route:#2a2017;--lg-attack:#9e2a1e;--lg-danger:#c08a1e;--lg-win:#3f7d4e;--lg-lose:#c08a1e;--lg-team:#2c559e;--lg-foe:#b0392a;--lg-dot:#efe8d8d9}.legion-hud[data-look="3"]{--lg-bg:#33452b;--lg-ink:#fff;--lg-route:#fff;--lg-attack:#ff4b3a;--lg-danger:#f2b33d;--lg-win:#fff;--lg-lose:#f2b33d;--lg-team:#2f74e6;--lg-foe:#e0412c;--lg-dot:#0009}.legend-svg path,.legend-svg rect,.legend-svg circle{fill:none}.legend-svg .k{stroke:var(--lg-ink)}.legend-svg .r{stroke:var(--lg-route)}.legend-svg .a{stroke:var(--lg-attack)}.legend-svg .d{stroke:var(--lg-danger)}.legend-svg .w{stroke:var(--lg-win)}.legend-svg .l{stroke:var(--lg-lose)}.legend-svg .k.f{fill:var(--lg-ink);stroke:none}.legend-svg .r.f{fill:var(--lg-route);stroke:none}.legend-svg .tm{fill:var(--lg-team);fill-opacity:.18}.legend-svg .tmf{fill:var(--lg-foe)}.legend-svg .bg{fill:var(--lg-dot)}.legend-svg .kt{fill:var(--lg-ink);font-family:var(--font-num)}.legend-badges{font-size:var(--fs-sm);color:var(--ink-2);flex-wrap:wrap;gap:6px 12px;margin-top:4px;display:flex}.legend-badge{align-items:center;gap:4px;display:flex}.legend-badge svg{color:var(--ink);width:14px!important;height:14px!important}.help-foot{justify-content:space-between;align-items:center;margin-top:14px;display:flex}.coach{z-index:30;border-radius:var(--radius);background:var(--coach-bg);width:300px;-webkit-backdrop-filter:var(--surface-blur);backdrop-filter:var(--surface-blur);color:var(--coach-ink);pointer-events:none;box-shadow:var(--shadow);--arrow-x:50%;padding:10px 14px;position:absolute;top:0;left:0}.legion-hud[data-look="3"] .coach{outline:1px solid var(--rule-mark)}.coach[data-side]:not([data-side=""]):after{content:"";border:7px solid #0000;position:absolute}.coach[data-side=above]:after{left:var(--arrow-x);border-bottom:none;border-top-color:var(--coach-bg);margin-left:-7px;bottom:-7px}.coach[data-side=below]:after{left:var(--arrow-x);border-top:none;border-bottom-color:var(--coach-bg);margin-left:-7px;top:-7px}.coach[data-side=right]:after{top:var(--arrow-y);border-left:none;border-right-color:var(--coach-bg);margin-top:-7px;left:-7px}.coach[data-side=left]:after{top:var(--arrow-y);border-right:none;border-left-color:var(--coach-bg);margin-top:-7px;right:-7px}.coach-title{font:var(--fw-name) var(--fs-md) / 1.3 var(--font-name)}.coach-body{font-size:var(--fs-sm);opacity:.85;margin-top:3px;line-height:1.4}.coach-foot{align-items:center;gap:4px;margin-top:8px;display:flex}.coach-count{font:var(--fs-xs) var(--font-num);opacity:.6;margin-right:auto}.legion-hud .coach button{pointer-events:auto;color:inherit;opacity:.75;font-size:var(--fs-xs)}.legion-hud .coach .coach-next{opacity:1;background:var(--active);color:var(--active-ink)}.legion-hud .coach .coach-simple{text-underline-offset:2px;padding:2px;text-decoration:underline}.deploy-root{pointer-events:none;position:absolute;inset:0}.deploy-root>*{pointer-events:auto}.fatal{color:#ffb4b4;text-align:center;place-items:center;padding:40px;font-size:18px;display:grid;position:fixed;inset:0}@keyframes rise{0%{opacity:0;transform:translateY(6px)}}@media (prefers-reduced-motion:reduce){.legion-hud *,.legion-hud :before,.legion-hud :after{transition:none!important;animation:none!important}}@media (max-width:1280px){.region-top{width:calc(100vw - 680px);min-width:460px}.sb-side{width:140px}.region-topright{width:280px}}:root{--ui-bg:#121316;--ui-surface:#1b1c20;--ui-surface-raised:#23252a;--ui-scrim:#0a0b0db8;--ui-border:#34363d;--ui-border-strong:#4a4d55;--ui-text:#ececee;--ui-text-muted:#a3a5ad;--ui-text-dim:#74767e;--ui-accent:#d8b25a;--ui-accent-text:#17130a;--ui-focus:#d8b25a;--ui-danger:#e05d5d;--ui-warning:#e3a54a;--ui-success:#74c27a;--ui-team-0:#3d86ff;--ui-team-1:#f0503f;--ui-spotlight-shade:#00000059;--ui-unit-infantry:#7f9ccf;--ui-unit-archer:#8fbf7f;--ui-unit-cavalry:#d2b267;--ui-unit-cannon:#c9826b;--ui-font:system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--ui-font-display:var(--ui-font);--ui-font-mono:ui-monospace, "Cascadia Mono", Consolas, monospace;--ui-text-xs:11px;--ui-text-sm:12.5px;--ui-text-md:14px;--ui-text-lg:17px;--ui-text-xl:22px;--ui-text-2xl:32px;--ui-text-3xl:48px;--ui-weight-normal:400;--ui-weight-medium:550;--ui-weight-bold:700;--ui-leading:1.45;--ui-radius-sm:4px;--ui-radius-md:6px;--ui-radius-lg:10px;--ui-space-1:4px;--ui-space-2:8px;--ui-space-3:12px;--ui-space-4:16px;--ui-space-5:24px;--ui-space-6:32px;--ui-control-h:32px;--ui-control-h-lg:44px;--ui-border-w:1px;--ui-duration:.15s}:root.lg-cb{--ui-team-0:#3d8bff;--ui-team-1:#f29b1d}.btn{justify-content:center;align-items:center;gap:var(--ui-space-2);height:var(--ui-control-h);padding:0 var(--ui-space-3);border:var(--ui-border-w) solid var(--ui-border);border-radius:var(--ui-radius-md);background:var(--ui-surface-raised);color:var(--ui-text);font:var(--ui-weight-medium) var(--ui-text-sm) / 1 var(--ui-font);cursor:pointer;white-space:nowrap;display:inline-flex}.btn:hover{border-color:var(--ui-border-strong)}.btn:focus-visible{outline:2px solid var(--ui-focus);outline-offset:2px}.btn:disabled{opacity:.45;cursor:default}.btn .ico{display:inline-flex}.btn .ico svg{width:16px;height:16px}.btn.primary{background:var(--ui-accent);border-color:var(--ui-accent);color:var(--ui-accent-text)}.btn.danger{color:var(--ui-danger)}.btn.quiet{color:var(--ui-text-muted);background:0 0;border-color:#0000}.btn.quiet:hover{color:var(--ui-text)}.btn.sm{height:calc(var(--ui-control-h) - 6px);padding:0 var(--ui-space-2);font-size:var(--ui-text-xs)}.btn.big{height:var(--ui-control-h-lg);padding:0 var(--ui-space-5);font-size:var(--ui-text-md)}.btn.icon-only{width:var(--ui-control-h);padding:0}kbd{min-width:1.6em;padding:0 var(--ui-space-1);border:var(--ui-border-w) solid var(--ui-border-strong);border-radius:var(--ui-radius-sm);color:var(--ui-text);font:var(--ui-weight-medium) var(--ui-text-xs) / 1.5 var(--ui-font);text-align:center;display:inline-block}.input{width:100%;height:var(--ui-control-h);padding:0 var(--ui-space-2);border:var(--ui-border-w) solid var(--ui-border);border-radius:var(--ui-radius-md);background:var(--ui-bg);color:var(--ui-text);font:var(--ui-text-md) var(--ui-font);-webkit-user-select:text;user-select:text}.input:focus{border-color:var(--ui-focus);outline:none}.input.invalid{border-color:var(--ui-danger)}.toggle{border:var(--ui-border-w) solid var(--ui-border-strong);background:var(--ui-bg);cursor:pointer;border-radius:11px;width:40px;height:22px;position:relative}.toggle:after{content:"";background:var(--ui-text-muted);width:14px;height:14px;transition:transform var(--ui-duration);border-radius:50%;position:absolute;top:3px;left:3px}.toggle.on{border-color:var(--ui-accent)}.toggle.on:after{background:var(--ui-accent);transform:translate(18px)}.toggle:focus-visible{outline:2px solid var(--ui-focus);outline-offset:2px}.segmented{border:var(--ui-border-w) solid var(--ui-border);border-radius:var(--ui-radius-md);display:inline-flex;overflow:hidden}.segmented button{height:var(--ui-control-h);padding:0 var(--ui-space-3);border:0;border-left:var(--ui-border-w) solid var(--ui-border);color:var(--ui-text-muted);font:var(--ui-weight-medium) var(--ui-text-sm) var(--ui-font);cursor:pointer;background:0 0}.segmented button:first-child{border-left:0}.segmented button.on{background:var(--ui-surface-raised);color:var(--ui-text);box-shadow:inset 0 -2px 0 var(--ui-accent)}.segmented button:focus-visible{outline:2px solid var(--ui-focus);outline-offset:-2px}.range{align-items:center;gap:var(--ui-space-3);display:flex}.range input[type=range]{accent-color:var(--ui-accent);flex:1}.range output{text-align:right;font-variant-numeric:tabular-nums;min-width:72px}.hidden{display:none!important}.dp-root{z-index:30;pointer-events:none;font:var(--ui-text-md) / var(--ui-leading) var(--ui-font);color:var(--ui-text);position:fixed;inset:0}.dp-root>*{pointer-events:auto}.dp-panel{background:var(--ui-surface);border:var(--ui-border-w) solid var(--ui-border);border-radius:var(--ui-radius-lg)}.dp-dock-title,.dp-budget-title,.dp-menu-title{margin-bottom:var(--ui-space-2);color:var(--ui-text-muted);font:var(--ui-weight-medium) var(--ui-text-xs) var(--ui-font);letter-spacing:.08em;text-transform:uppercase}.dp-dock{left:var(--ui-space-4);bottom:var(--ui-space-4);padding:var(--ui-space-3);position:absolute}.dp-cards{gap:var(--ui-space-2);display:flex}.dp-card{width:84px;padding:var(--ui-space-2) var(--ui-space-1);border:var(--ui-border-w) solid var(--ui-border);border-radius:var(--ui-radius-md);color:var(--ui-text);font:inherit;cursor:pointer;background:0 0;flex-direction:column;align-items:center;gap:2px;display:flex;position:relative}.dp-card.general{color:var(--ui-accent)}.dp-card.general .dp-card-name{color:var(--ui-text)}.dp-card:hover{border-color:var(--ui-border-strong)}.dp-card.active{border-color:var(--ui-accent);background:var(--ui-surface-raised)}.dp-card:focus-visible{outline:2px solid var(--ui-focus);outline-offset:2px}.dp-card-glyph svg{width:24px;height:24px}.dp-card-name{font-weight:var(--ui-weight-medium);font-size:var(--ui-text-sm)}.dp-card-cost{color:var(--ui-text-muted);font-size:var(--ui-text-xs)}.dp-card-key{top:var(--ui-space-1);left:var(--ui-space-2);color:var(--ui-text-dim);font-size:var(--ui-text-xs);position:absolute}.dp-size{align-items:center;gap:var(--ui-space-2);margin-top:var(--ui-space-3);display:flex}.dp-size.disabled{opacity:.45}.dp-size-label,.dp-size-cost{color:var(--ui-text-muted);font-size:var(--ui-text-sm)}.dp-size-val{text-align:center;min-width:72px;font-weight:var(--ui-weight-bold);font-variant-numeric:tabular-nums}.dp-tip{width:280px;padding:var(--ui-space-3);border:var(--ui-border-w) solid var(--ui-border-strong);border-radius:var(--ui-radius-md);background:var(--ui-surface-raised);position:fixed;pointer-events:none!important}.dp-tip-head{justify-content:space-between;display:flex}.dp-tip-cost{color:var(--ui-text-muted);font-size:var(--ui-text-sm)}.dp-tip p{margin:var(--ui-space-2) 0;color:var(--ui-text-muted);font-size:var(--ui-text-sm)}.dp-tip-stats{gap:var(--ui-space-1) var(--ui-space-2);font-size:var(--ui-text-xs);grid-template-columns:76px 1fr 44px;align-items:center;display:grid}.dp-stat-l{color:var(--ui-text-muted)}.dp-stat-bar{background:var(--ui-border);height:4px}.dp-stat-bar i{background:var(--ui-text-muted);height:100%;display:block}.dp-stat-v{text-align:right;font-variant-numeric:tabular-nums}.dp-budget{top:var(--ui-space-3);width:340px;padding:var(--ui-space-2) var(--ui-space-3);text-align:center;position:absolute;left:50%;transform:translate(-50%)}.dp-budget-num{font:var(--ui-weight-bold) var(--ui-text-xl) var(--ui-font);font-variant-numeric:tabular-nums}.dp-budget-sub{margin-top:var(--ui-space-1);color:var(--ui-text-muted);font-size:var(--ui-text-sm);font-variant-numeric:tabular-nums}.dp-bar{height:6px;margin-top:var(--ui-space-2);background:var(--ui-border);display:flex}.dp-seg{width:0;height:100%}.dp-seg.role-infantry{background:var(--ui-unit-infantry)}.dp-seg.role-archer{background:var(--ui-unit-archer)}.dp-seg.role-cavalry{background:var(--ui-unit-cavalry)}.dp-seg.role-cannon{background:var(--ui-unit-cannon)}.dp-seg.role-general{background:var(--ui-accent)}.dp-seg.pending{background:var(--ui-text-dim)}.dp-budget.low .dp-budget-num{color:var(--ui-warning)}.dp-budget.shake .dp-budget-num{color:var(--ui-danger)}.dp-toolbar{top:var(--ui-space-3);right:var(--ui-space-4);gap:var(--ui-space-2);padding:var(--ui-space-2);display:flex;position:absolute}.dp-popover{width:320px;max-height:calc(100vh - 96px);padding:var(--ui-space-3);position:fixed;overflow:auto}.dp-menu{gap:var(--ui-space-1);flex-direction:column;display:flex}.dp-menu-item{width:100%;padding:var(--ui-space-2);border-radius:var(--ui-radius-md);color:var(--ui-text);font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;flex-direction:column;align-items:flex-start;display:flex}.dp-menu-item:hover,.dp-menu-item:focus-visible{background:var(--ui-surface-raised);outline:none}.dp-menu-item span{color:var(--ui-text-muted);font-size:var(--ui-text-sm)}.dp-menu-foot,.dp-empty{color:var(--ui-text-dim);font-size:var(--ui-text-sm)}.dp-row,.dp-bp-row{align-items:center;gap:var(--ui-space-2);display:flex}.dp-bp-row .dp-menu-item{flex:1}.dp-import{margin-top:var(--ui-space-2);padding-top:var(--ui-space-2);border-top:var(--ui-border-w) solid var(--ui-border)}.dp-inspector{left:var(--ui-space-4);padding:var(--ui-space-2) var(--ui-space-3);position:absolute;bottom:184px}.dp-insp-label{margin-bottom:var(--ui-space-2);font-weight:var(--ui-weight-medium);font-variant-numeric:tabular-nums}.dp-hint{left:50%;bottom:var(--ui-space-5);min-width:240px;max-width:min(760px,100vw - 720px);color:var(--ui-text-muted);font-size:var(--ui-text-sm);text-align:center;position:absolute;transform:translate(-50%);pointer-events:none!important}.dp-hint b{color:var(--ui-text);font-weight:var(--ui-weight-medium)}@media (max-width:1180px){.dp-hint{max-width:calc(100vw - 2 * var(--ui-space-5));top:104px;bottom:auto}}.dp-ready{right:var(--ui-space-4);bottom:var(--ui-space-4);align-items:flex-start;gap:var(--ui-space-1);min-width:220px;height:auto;padding:var(--ui-space-3) var(--ui-space-4);flex-direction:column;position:absolute}.dp-ready-main{font-size:var(--ui-text-lg);font-weight:var(--ui-weight-bold)}.dp-ready-sub{font-size:var(--ui-text-xs);font-weight:var(--ui-weight-normal)}.dp-ready.waiting{opacity:.7}.dp-toasts{align-items:center;gap:var(--ui-space-2);flex-direction:column-reverse;display:flex;position:absolute;bottom:64px;left:50%;transform:translate(-50%);pointer-events:none!important}.dp-toast{padding:var(--ui-space-2) var(--ui-space-3);border:var(--ui-border-w) solid var(--ui-border);border-radius:var(--ui-radius-md);background:var(--ui-surface-raised)}.dp-toast.warn{border-color:var(--ui-warning)}.dp-toast.good{border-color:var(--ui-success)}.dp-toast.out{opacity:0}.dp-cursor,.dp-zone-tag{padding:2px var(--ui-space-2);border-radius:var(--ui-radius-sm);background:var(--ui-scrim);font-size:var(--ui-text-sm);white-space:nowrap;position:fixed;top:0;left:0;pointer-events:none!important}.dp-cursor.bad{color:var(--ui-danger)}.dp-zone-tag{color:var(--ui-team-0);font-size:var(--ui-text-xs);text-transform:uppercase;letter-spacing:.08em}.dp-root.team1 .dp-zone-tag{color:var(--ui-team-1)}.dp-ready.needs-general .dp-ready-sub{color:var(--ui-accent)}.tt-root{z-index:45;font:var(--ui-text-md) / var(--ui-leading) var(--ui-font);color:var(--ui-text);position:fixed;inset:0;pointer-events:none!important}.tt-svg{width:100%;height:100%;position:absolute;inset:0}.tt-shade{fill:var(--ui-spotlight-shade)}.tt-guide{stroke:var(--ui-text);stroke-width:2px;stroke-dasharray:8 6}.tt-guide-end{fill:var(--ui-text)}.tt-guide-end.start{fill:var(--ui-accent)}.tt-ring{border:2px solid var(--ui-accent);border-radius:50%;position:absolute;top:0;left:0}.tt-ring.rect{border-radius:var(--ui-radius-md)}.tt-label{padding:2px var(--ui-space-2);border-radius:var(--ui-radius-sm);background:var(--ui-accent);color:var(--ui-accent-text);font-size:var(--ui-text-sm);white-space:nowrap;position:absolute;top:0;left:0}.tt-card{width:min(440px, calc(100vw - 2 * var(--ui-space-4)));padding:var(--ui-space-3) var(--ui-space-4);border:var(--ui-border-w) solid var(--ui-border);border-radius:var(--ui-radius-lg);background:var(--ui-surface);pointer-events:auto;position:absolute;top:56px;left:50%;transform:translate(-50%)}.tt-root.low .tt-card{top:auto;bottom:var(--ui-space-6)}.tt-root.right .tt-card{top:72px;left:auto;right:var(--ui-space-4);width:min(360px, calc(100vw - 2 * var(--ui-space-4)));transform:none}.tt-card.won{border-color:var(--ui-success)}.tt-top{align-items:center;gap:var(--ui-space-2);color:var(--ui-text-muted);font-size:var(--ui-text-xs);display:flex}.tt-top .grow{flex:1}.tt-chapter{letter-spacing:.08em}.tt-progress{height:2px;margin:var(--ui-space-2) 0 var(--ui-space-3);background:var(--ui-border)}.tt-progress i{background:var(--ui-accent);height:100%;display:block}.tt-title{margin:0 0 var(--ui-space-1);font:var(--ui-weight-bold) var(--ui-text-lg) var(--ui-font-display)}.tt-body b{font-weight:var(--ui-weight-medium)}.tt-hint{margin-top:var(--ui-space-2);color:var(--ui-text-muted);font-size:var(--ui-text-sm)}.tt-praise{margin-top:var(--ui-space-2);color:var(--ui-success);font-weight:var(--ui-weight-medium)}.tt-actions{align-items:center;gap:var(--ui-space-2);margin-top:var(--ui-space-3);display:flex}#lg-shell{z-index:40;pointer-events:none;font:var(--ui-text-md) / var(--ui-leading) var(--ui-font);color:var(--ui-text);position:fixed;inset:0}#lg-shell>*{pointer-events:auto}#lg-shell>.lg-stage,#lg-shell>.tt-root,#lg-shell .passthrough{pointer-events:none}#lg-shell .passthrough>*{pointer-events:auto}.lg-screen,.lg-chrome{position:absolute;inset:0}.lg-chrome{z-index:0}.lg-stage{z-index:20;position:fixed;inset:0}.lg-scrim{background:var(--ui-scrim);position:absolute;inset:0}.lg-menu{width:min(420px,100vw);padding:var(--ui-space-6);background:var(--ui-scrim);border-right:var(--ui-border-w) solid var(--ui-border);flex-direction:column;justify-content:center;display:flex;position:absolute;top:0;bottom:0;left:0}.lg-title{font:var(--ui-weight-bold) var(--ui-text-3xl) / 1 var(--ui-font-display);letter-spacing:.08em;margin:0}.lg-tagline{margin:var(--ui-space-2) 0 var(--ui-space-6);color:var(--ui-text-muted)}.lg-menu-items{flex-direction:column;display:flex}.lg-menu-item{align-items:center;gap:var(--ui-space-1) var(--ui-space-3);padding:var(--ui-space-3) var(--ui-space-3);color:var(--ui-text);font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;border-left:2px solid #0000;grid-template-columns:1fr auto;display:grid}.lg-menu-item:hover,.lg-menu-item:focus-visible{border-left-color:var(--ui-accent);background:var(--ui-surface);outline:none}.lg-menu-item .label{font-size:var(--ui-text-lg);font-weight:var(--ui-weight-medium)}.lg-menu-item.primary .label{color:var(--ui-accent)}.lg-menu-item .blurb{color:var(--ui-text-muted);font-size:var(--ui-text-sm);grid-column:1}.lg-menu-item kbd{grid-area:1/2/span 2}.lg-menu-foot{margin-top:var(--ui-space-5);color:var(--ui-text-dim);font-size:var(--ui-text-sm)}.lg-ticker{right:var(--ui-space-4);bottom:var(--ui-space-4);padding:var(--ui-space-1) var(--ui-space-3);border-radius:var(--ui-radius-md);background:var(--ui-scrim);color:var(--ui-text-muted);font-size:var(--ui-text-sm);font-variant-numeric:tabular-nums;position:absolute}.lg-team-0{color:var(--ui-team-0)}.lg-team-1{color:var(--ui-team-1)}.lg-dialog{width:min(960px, calc(100vw - 2 * var(--ui-space-4)));max-height:calc(100vh - 2 * var(--ui-space-4));background:var(--ui-surface);border:var(--ui-border-w) solid var(--ui-border);border-radius:var(--ui-radius-lg);flex-direction:column;display:flex;position:absolute;top:50%;left:50%;overflow:hidden;transform:translate(-50%,-50%)}.lg-dialog.narrow{width:min(480px, calc(100vw - 2 * var(--ui-space-4)))}.lg-dialog.mid{width:min(720px, calc(100vw - 2 * var(--ui-space-4)))}.lg-dialog-head{align-items:flex-start;gap:var(--ui-space-3);padding:var(--ui-space-4) var(--ui-space-5);border-bottom:var(--ui-border-w) solid var(--ui-border);display:flex}.lg-dialog-head .grow{flex:1}.lg-dialog-head h2{font:var(--ui-weight-bold) var(--ui-text-xl) / 1.2 var(--ui-font-display);margin:0}.lg-dialog-head p{margin:var(--ui-space-1) 0 0;color:var(--ui-text-muted);font-size:var(--ui-text-sm)}.lg-dialog-body{padding:var(--ui-space-4) var(--ui-space-5);overflow:auto}.lg-dialog-foot{align-items:center;gap:var(--ui-space-2);padding:var(--ui-space-3) var(--ui-space-5);border-top:var(--ui-border-w) solid var(--ui-border);display:flex}.lg-dialog-foot .grow{flex:1}.lg-section{margin-bottom:var(--ui-space-5)}.lg-section:last-child{margin-bottom:0}.lg-section h3{margin:0 0 var(--ui-space-2);color:var(--ui-text-muted);font:var(--ui-weight-medium) var(--ui-text-xs) var(--ui-font);letter-spacing:.08em;text-transform:uppercase}.lg-field{align-items:center;gap:var(--ui-space-3);padding:var(--ui-space-2) 0;grid-template-columns:minmax(180px,240px) 1fr;display:grid}.lg-field .hint{color:var(--ui-text-dim);font-size:var(--ui-text-sm);display:block}.lg-desc{margin:var(--ui-space-2) 0 0;color:var(--ui-text-muted);font-size:var(--ui-text-sm)}.lg-note{margin:var(--ui-space-3) 0 0;color:var(--ui-warning);font-size:var(--ui-text-sm)}.lg-swatch{width:10px;height:10px;margin-right:var(--ui-space-2);border-radius:50%;display:inline-block}.lg-swatch.team-0{background:var(--ui-team-0)}.lg-swatch.team-1{background:var(--ui-team-1)}.lg-setup{gap:var(--ui-space-5);grid-template-columns:360px 1fr;display:grid}.lg-map-preview{aspect-ratio:1;border:var(--ui-border-w) solid var(--ui-border);border-radius:var(--ui-radius-md);width:360px;position:relative;overflow:hidden}.lg-map-preview canvas{width:100%;height:100%;display:block}.lg-map-status{background:var(--ui-scrim);color:var(--ui-text-muted);font-size:var(--ui-text-sm);place-items:center;display:grid;position:absolute;inset:0}.lg-map-name{margin:var(--ui-space-3) 0 var(--ui-space-2);font:var(--ui-weight-bold) var(--ui-text-lg) var(--ui-font-display)}.lg-row{align-items:center;gap:var(--ui-space-2);margin-bottom:var(--ui-space-2);display:flex}.lg-row .label{min-width:40px;color:var(--ui-text-muted)}.lg-row .input{width:120px}.lg-choice-list{gap:var(--ui-space-3);grid-template-columns:1fr 1fr;display:grid}.lg-choice{padding:var(--ui-space-3);border:var(--ui-border-w) solid var(--ui-border);border-radius:var(--ui-radius-md);color:var(--ui-text);font:inherit;text-align:left;cursor:pointer;background:0 0}.lg-choice.on{border-color:var(--ui-accent)}.lg-choice:focus-visible{outline:2px solid var(--ui-focus)}.lg-choice .label{font-weight:var(--ui-weight-bold);display:block}.lg-choice ul{margin:var(--ui-space-2) 0 0;padding-left:var(--ui-space-4);color:var(--ui-text-muted);font-size:var(--ui-text-sm)}.lg-results-title{font:var(--ui-weight-bold) var(--ui-text-2xl) / 1.1 var(--ui-font-display);letter-spacing:.06em;margin:0}.lg-results-title.victory{color:var(--ui-accent)}.lg-results-title.defeat{color:var(--ui-danger)}.lg-sides{gap:var(--ui-space-5);grid-template-columns:1fr 1fr;display:grid}.lg-side+.lg-side{padding-left:var(--ui-space-5);border-left:var(--ui-border-w) solid var(--ui-border)}.lg-side h4{margin:0 0 var(--ui-space-2);font-size:var(--ui-text-md)}.lg-side .big{font:var(--ui-weight-bold) var(--ui-text-xl) var(--ui-font);font-variant-numeric:tabular-nums}.lg-stat{color:var(--ui-text-muted);font-size:var(--ui-text-sm);font-variant-numeric:tabular-nums;justify-content:space-between;padding:2px 0;display:flex}.lg-stat b{color:var(--ui-text);font-weight:var(--ui-weight-medium)}.lg-meter{height:4px;margin:var(--ui-space-2) 0;background:var(--ui-border)}.lg-meter i{height:100%;display:block}.lg-meter i.team-0{background:var(--ui-team-0)}.lg-meter i.team-1{background:var(--ui-team-1)}.lg-mvp{margin:var(--ui-space-4) 0 0}.lg-mvp b{color:var(--ui-accent)}.lg-table{width:100%;margin-top:var(--ui-space-4);border-collapse:collapse;font-size:var(--ui-text-sm);font-variant-numeric:tabular-nums}.lg-table th{padding:var(--ui-space-1) var(--ui-space-2);border-bottom:var(--ui-border-w) solid var(--ui-border);color:var(--ui-text-muted);font-weight:var(--ui-weight-medium);text-align:left}.lg-table td{padding:var(--ui-space-1) var(--ui-space-2);border-bottom:var(--ui-border-w) solid var(--ui-border)}.lg-table .num{text-align:right}.lg-tag{color:var(--ui-text-muted);font-size:var(--ui-text-xs);text-transform:uppercase}.lg-tag.mvp{color:var(--ui-accent)}.lg-tag.lost{color:var(--ui-danger)}.lg-tabs{gap:var(--ui-space-1);padding:0 var(--ui-space-5);border-bottom:var(--ui-border-w) solid var(--ui-border);display:flex}.lg-tabs button{padding:var(--ui-space-2) var(--ui-space-3);color:var(--ui-text-muted);font:var(--ui-weight-medium) var(--ui-text-sm) var(--ui-font);cursor:pointer;background:0 0;border:0;border-bottom:2px solid #0000}.lg-tabs button.on{color:var(--ui-text);border-bottom-color:var(--ui-accent)}.lg-tabs button:focus-visible{outline:2px solid var(--ui-focus);outline-offset:-2px}.lg-topics{gap:var(--ui-space-4) var(--ui-space-5);grid-template-columns:1fr 1fr;display:grid}.lg-topic h4{margin:0 0 var(--ui-space-1);font-size:var(--ui-text-md)}.lg-topic p{color:var(--ui-text-muted);font-size:var(--ui-text-sm);margin:0}.lg-keys{border-collapse:collapse;width:100%;font-size:var(--ui-text-sm)}.lg-keys td{padding:var(--ui-space-1) var(--ui-space-2) var(--ui-space-1) 0;border-bottom:var(--ui-border-w) solid var(--ui-border);vertical-align:top}.lg-keys td:last-child{color:var(--ui-text-muted)}.lg-lobby{gap:var(--ui-space-5);grid-template-columns:1fr 1fr;display:grid}.lg-code{margin:0 0 var(--ui-space-3);font:var(--ui-weight-bold) var(--ui-text-2xl) var(--ui-font-mono);letter-spacing:.2em}.lg-players{margin:0;padding:0;list-style:none}.lg-players li{padding:var(--ui-space-2) 0;border-bottom:var(--ui-border-w) solid var(--ui-border);justify-content:space-between;display:flex}.lg-players .state{color:var(--ui-text-muted)}.lg-players .state.ready{color:var(--ui-success)}.lg-status{margin-top:var(--ui-space-3);color:var(--ui-text-muted);font-size:var(--ui-text-sm)}.lg-status.error{color:var(--ui-danger)}.lg-field-block{padding:var(--ui-space-2) 0 var(--ui-space-3)}.lg-rules-label{margin-bottom:var(--ui-space-2)}.lg-rules .lg-rules-presets{flex-wrap:wrap;display:flex}.lg-rules-more{margin-top:var(--ui-space-2);padding-left:0}.lg-rules-adv{margin-top:var(--ui-space-2);padding:var(--ui-space-1) var(--ui-space-3) var(--ui-space-2);border:var(--ui-border-w) solid var(--ui-border);border-radius:var(--ui-radius-md);background:var(--ui-bg)}.lg-rules-group h4{margin:var(--ui-space-3) 0 0;color:var(--ui-text-dim);font:var(--ui-weight-medium) var(--ui-text-xs) var(--ui-font);letter-spacing:.08em;text-transform:uppercase}.lg-rule{padding:var(--ui-space-1) 0;grid-template-columns:minmax(160px,220px) 1fr}.lg-rule .hint{font-size:var(--ui-text-xs)}.lg-rule.lg-rule-off{opacity:.45}.lg-rule-num{width:120px}.lg-rule-units{gap:var(--ui-space-1) var(--ui-space-3);flex-wrap:wrap;display:flex}.lg-rule-unit{align-items:center;gap:var(--ui-space-1);font-size:var(--ui-text-sm);cursor:pointer;display:inline-flex}.lg-rule-unit input{accent-color:var(--ui-accent)}.lg-rules-summary .lg-rules-name{font:var(--ui-weight-bold) var(--ui-text-md) var(--ui-font-display)}.lg-rules-chips{gap:var(--ui-space-1);margin-top:var(--ui-space-2);flex-wrap:wrap;display:flex}.lg-rule-chip{padding:2px var(--ui-space-2);border:var(--ui-border-w) solid var(--ui-border);border-radius:var(--ui-radius-sm);color:var(--ui-text-muted);font-size:var(--ui-text-xs)}.lg-actions{gap:var(--ui-space-2);flex-direction:column;display:flex}.lg-actions .btn{justify-content:flex-start}.lg-session-hud:not(.mode-sandbox)>.panel.stats,.lg-session-hud:not(.mode-sandbox)>.panel.controls{display:none}.lg-menu-button{top:var(--ui-space-3);left:var(--ui-space-3);position:absolute}.lg-menu-button.center{left:50%;transform:translate(-50%)}.lg-menu-button+.lg-menu-button{left:100px}.lg-banner{text-align:center;animation:3s forwards lg-fade-out;position:absolute;top:30%;left:50%;transform:translate(-50%,-50%);pointer-events:none!important}.lg-banner h1{font:var(--ui-weight-bold) var(--ui-text-3xl) / 1.1 var(--ui-font-display);margin:0}.lg-banner p{margin:var(--ui-space-2) 0 0;color:var(--ui-text-muted);font-size:var(--ui-text-lg)}@keyframes lg-fade-out{0%,70%{opacity:1}to{opacity:0}}.lg-loading{background:var(--ui-bg);text-align:center;place-items:center;display:grid;position:absolute;inset:0}.lg-loading h2{margin:0 0 var(--ui-space-2);font:var(--ui-weight-bold) var(--ui-text-xl) var(--ui-font-display)}.lg-loading p{color:var(--ui-text-muted);margin:0}.lg-tip{left:50%;bottom:var(--ui-space-5);align-items:center;gap:var(--ui-space-3);max-width:min(620px, calc(100vw - 2 * var(--ui-space-4)));padding:var(--ui-space-2) var(--ui-space-2) var(--ui-space-2) var(--ui-space-4);border:var(--ui-border-w) solid var(--ui-border);border-radius:var(--ui-radius-md);background:var(--ui-surface);display:flex;position:absolute;transform:translate(-50%)}.lg-tip.done{border-color:var(--ui-success)}.lg-tip.out{display:none}.lg-toasts{align-items:center;gap:var(--ui-space-2);flex-direction:column;display:flex;position:absolute;bottom:96px;left:50%;transform:translate(-50%);pointer-events:none!important}.lg-toast{padding:var(--ui-space-2) var(--ui-space-3);border:var(--ui-border-w) solid var(--ui-border);border-radius:var(--ui-radius-md);background:var(--ui-surface-raised)}.lg-fatal{background:var(--ui-bg);position:absolute;inset:0}@media (max-width:860px){.lg-setup,.lg-lobby,.lg-topics,.lg-choice-list,.lg-sides{grid-template-columns:1fr}.lg-side+.lg-side{border-left:0;padding-left:0}.lg-map-preview{width:100%}}
