@font-face{font-family:Oxanium;font-style:normal;font-display:swap;font-weight:300;src:url(/assets/oxanium-latin-300-normal-CNxMgW97.woff2)format("woff2"),url(/assets/oxanium-latin-300-normal-BdR1Ie96.woff)format("woff")}@font-face{font-family:Oxanium;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/oxanium-latin-400-normal-DcSlRu53.woff2)format("woff2"),url(/assets/oxanium-latin-400-normal-BnNz-3Mf.woff)format("woff")}@font-face{font-family:Oxanium;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/oxanium-latin-600-normal-DW9ldEDP.woff2)format("woff2"),url(/assets/oxanium-latin-600-normal-DNQhW0y0.woff)format("woff")}:root{--bg:#060b16;--fg:#e4ecff;--muted:#8fa0c4;--card:#0a1224db;--line:#78aaff38;--font:Oxanium, system-ui, -apple-system, "Segoe UI", sans-serif;--accent:#ffb347;--err:#ff6b6b;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html,body{background:var(--bg);height:100%;color:var(--fg);font-family:var(--font);-webkit-user-select:none;user-select:none;touch-action:none;margin:0;overflow:hidden}canvas#game{display:block;position:fixed;inset:0}#ui{pointer-events:none;position:fixed;inset:0}#ui button,#ui select,#ui input,#ui .card{pointer-events:auto}[hidden]{display:none!important}button,select,input{font:inherit;color:var(--fg);border:1px solid var(--line);background:#16264899;border-radius:4px;padding:8px 14px}button{cursor:pointer;transition:background .15s,border-color .15s}button:hover:not(:disabled){background:#244078b3;border-color:#aacdff80}button:disabled{opacity:.35;cursor:default}button.primary{color:#ffd9a3;background:#ffb34733;border-color:#ffb34799}button.primary:hover:not(:disabled){background:#ffb34759}button.on{border-color:var(--accent);color:#ffd9a3;background:#ffb3472e}button.big{padding:12px 18px;font-size:1.1rem}button.off{opacity:.45;text-decoration:line-through}input{-webkit-user-select:text;user-select:text}.screen{pointer-events:auto;background:radial-gradient(#060b1659,#060b16bf);place-items:center;padding:16px;display:grid;position:absolute;inset:0}.card{background:var(--card);border:1px solid var(--line);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border-radius:6px;flex-direction:column;gap:12px;width:min(440px,100%);max-height:calc(100vh - 32px);padding:24px;display:flex;overflow-y:auto;box-shadow:0 20px 60px #00000080}.card h2{letter-spacing:.12em;text-transform:uppercase;margin:0 0 4px;font-size:1.15rem;font-weight:600}.logo{text-align:center;letter-spacing:.45em;color:#fff3e0;text-shadow:0 0 18px #ffb347b3,0 0 40px #3fe0d059;margin:0;padding-left:.45em;font-size:clamp(2.6rem,9vw,4rem);font-weight:300}.sub{text-align:center;color:var(--muted);letter-spacing:.08em;margin:-6px 0 8px;font-size:.9rem}.col{flex-direction:column;gap:10px;display:flex}.row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;display:flex}.row>input{flex:1;min-width:0}label{color:var(--muted);justify-content:space-between;align-items:center;gap:12px;display:flex}label input{flex:1;max-width:220px}.note{color:var(--muted);min-height:1em;margin:0;font-size:.85rem}.note.err{color:var(--err)}.or{text-align:center;color:var(--muted);font-size:.85rem}.code-in{text-transform:uppercase;letter-spacing:.3em;text-align:center}.code{letter-spacing:.4em;text-align:center;color:#fff3e0;text-shadow:0 0 14px #ffb34799;-webkit-user-select:text;user-select:text;padding-left:.4em;font-size:2.6rem;font-weight:300}.players{flex-direction:column;gap:4px;margin:0;padding:0;font-weight:600;list-style:none;display:flex}.grid{grid-template-columns:repeat(2,1fr);gap:8px;display:grid}.grid button{text-align:left;align-items:center;gap:10px;display:flex}.grid b{color:var(--accent);width:1.2em}.chapter{letter-spacing:.12em;text-transform:uppercase;color:#b8b4e6;margin:4px 0 -2px;font-size:.78rem;font-weight:600}input.bad{border-color:#ff6b6b}.mapcode{align-items:center;gap:8px;display:flex}.mapcode button{letter-spacing:.04em;padding:3px 8px;font-size:.8rem}.how{color:#d6d3f5;flex-direction:column;gap:8px;margin:0;padding-left:18px;font-size:.92rem;line-height:1.4;display:flex}.back{align-self:flex-start}.hud{position:absolute;inset:0}.hud-top-right{gap:6px;display:flex;position:absolute;top:8px;right:8px}.hud-top-right button{min-width:38px;padding:6px 10px}.hud-objective{border:1px solid var(--line);background:var(--card);max-width:min(46vw,320px);color:var(--fg);pointer-events:none;border-radius:4px;padding:6px 10px;font-size:.82rem;line-height:1.35;position:absolute;top:8px;left:8px}.hud-objective b{color:var(--accent);font-weight:600}.hud-objective .warn{color:var(--err)}.alert-meter{vertical-align:middle;border:1px solid var(--line);background:#9b6bff14;border-radius:3px;width:64px;height:6px;margin-right:6px;display:inline-block;overflow:hidden}.alert-meter i{background:#9b6bff;height:100%;transition:width .4s;display:block}.alert-meter.s1 i{background:#d9a3ff}.alert-meter.s2 i{background:#ff9f5a}.alert-meter.s3 i{background:var(--err);animation:.8s ease-in-out infinite alternate alert-pulse}@keyframes alert-pulse{0%{opacity:.6}to{opacity:1}}.hud-objective b.alert-s0{color:#b9a3ff}.hud-objective b.alert-s1{color:#d9a3ff}.hud-objective b.alert-s2{color:#ff9f5a}.hud-objective b.alert-s3{color:var(--err)}.hud-bottom{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:8px;display:flex;position:absolute;bottom:8px;left:8px;right:8px}.fractions{gap:4px;display:flex}.fractions button{padding:6px 10px}.panel{flex-wrap:wrap;justify-content:center;gap:6px;display:flex}.panel button{align-items:center;gap:6px;padding:6px 10px;display:flex}.panel small{color:var(--muted)}.panel .tag{color:var(--muted);padding:6px;font-size:.85rem}.ring{pointer-events:none;position:absolute;inset:0}.ring>*{position:absolute;transform:translate(-50%,-50%)}.ring button{white-space:nowrap;background:#0a1224e0;border-radius:4px;flex-direction:column;align-items:center;gap:1px;padding:4px 9px;font-size:.8rem;line-height:1.15;animation:.12s ease-out ring-in;display:flex}.ring button.on{background:#3c2814e6}.ring .ic{font-size:1.1rem}.ring small{color:var(--muted);font-size:.72rem}.ring .ship-stats{flex-direction:column;align-items:flex-start;gap:2px;margin:3px 0 2px;font-size:.66rem;line-height:1;display:flex}.ring .stat{align-items:center;gap:2px;display:flex}.ring .stat i{display:block}.ring .stat .icon{width:9px;height:9px;display:block}.ring .stat i.off{opacity:.18}.ring .s-dmg{color:#ff9a7a}.ring .s-hp{color:#7fe0b0}.ring .s-spd{color:#8ccaff}.ring .s-prod{color:#ffd9a3}.ring .x2{margin-left:3px;font-weight:600}.ring .beats{color:var(--muted);margin-top:1px}.ring .delta .stat{font-variant-numeric:tabular-nums;gap:3px}.ring .tag{color:var(--muted);white-space:nowrap;border:1px solid var(--line);background:#0a1224bf;border-radius:4px;padding:3px 8px;font-size:.8rem}.ring .mods{pointer-events:none;gap:4px;display:flex}.ring .mods button{flex-direction:row;gap:5px;padding:3px 8px;font-size:.74rem}.ring .mods .ic{font-size:.95rem}.ring .mods small{margin-left:2px}.ring .mods button.fitted{opacity:1;border-color:var(--accent,#ffb347);color:var(--fg);cursor:default}.ring .mods button.fitted .v{color:#7fe0b0}@keyframes ring-in{0%{opacity:0;transform:translate(-50%,-50%)scale(.7)}}@media (pointer:coarse){.ring button{min-width:52px;padding:7px 12px}}kbd{font:600 .7rem var(--font);border:1px solid var(--line);color:var(--muted);border-radius:4px;padding:1px 5px}.hud-top-right kbd,.fractions kbd{vertical-align:1px;margin-left:6px;padding:0 4px;font-size:.62rem;line-height:1.4;display:inline-block}button.on kbd{color:inherit;opacity:.8;border-color:currentColor}@media (hover:none) and (pointer:coarse){.hud kbd{display:none}}.legend{color:var(--muted);opacity:.8;padding:6px;font-size:.8rem}.toast{background:var(--card);border:1px solid var(--line);text-align:center;pointer-events:none;border-radius:10px;width:max-content;max-width:calc(100% - 32px);padding:10px 16px;font-size:.92rem;position:absolute;top:44px;left:50%;transform:translate(-50%)}@media (width<=640px){.legend{display:none}.hud-bottom{justify-content:center}}.screen.over{background:radial-gradient(#060b160d,#060b1673)}.card.over{gap:14px;width:min(620px,100%);animation:.55s cubic-bezier(.2,1.25,.4,1) both card-in}.card.over.victory{box-shadow:0 20px 60px #00000080,0 0 80px #ffdca014}.card.over.defeat{background:#080c18e6}.over-title{text-align:center;text-transform:uppercase;letter-spacing:.18em;color:var(--c);white-space:nowrap;text-overflow:ellipsis;margin:0;padding-left:.18em;font-size:clamp(1.7rem,6.5vw,3rem);font-weight:300;overflow:hidden}.over-title span{animation:.6s cubic-bezier(.2,1.3,.4,1) both letter-in,2.8s ease-in-out infinite title-glow;animation-delay:calc(.1s + var(--i) * 45ms), calc(.9s + var(--i) * 60ms);text-shadow:0 0 18px var(--c);display:inline-block}.victory .over-title span{text-shadow:0 0 18px var(--c), 0 0 42px var(--c)}.over-sub{text-align:center;color:var(--muted);letter-spacing:.06em;margin:-6px 0 2px;font-size:.9rem;animation:.5s .4s both fade-in}.stats{border-collapse:collapse;font-variant-numeric:tabular-nums;width:100%;font-size:.9rem}.stats th,.stats td{text-align:right;padding:6px}.stats thead th{color:var(--muted);text-transform:uppercase;letter-spacing:.04em;vertical-align:bottom;font-size:.72rem;font-weight:500;line-height:1.2}.stats tbody th{text-align:left;white-space:nowrap;text-overflow:ellipsis;max-width:11em;font-weight:600;overflow:hidden}.stats tbody tr{border-top:1px solid var(--line);animation:.45s both row-in;animation-delay:calc(.35s + var(--r) * 80ms)}.stats tbody tr.win{background:linear-gradient(90deg,#ffffff12,#ffffff05)}.stats tbody tr.me th{text-decoration:underline;-webkit-text-decoration-color:var(--line);text-decoration-color:var(--line);text-underline-offset:3px}.stats .star{color:var(--accent)}.chip{vertical-align:-1px;border-radius:3px;width:10px;height:10px;margin-right:8px;display:inline-block}.chart-wrap{animation:.5s .3s both fade-in;position:relative}.chart-head{color:var(--muted);text-transform:uppercase;letter-spacing:.04em;margin-bottom:4px;font-size:.72rem}.chart{touch-action:none;width:100%;height:120px;display:block}.chart-tip{border:1px solid var(--line);pointer-events:none;font-variant-numeric:tabular-nums;background:#060b16f0;border-radius:8px;min-width:120px;padding:6px 10px;font-size:.8rem;line-height:1.5;position:absolute;top:18px}.chart-tip .tip-t{color:var(--muted)}.chart-tip b{float:right;margin-left:12px;font-weight:600}.over-actions{justify-content:flex-end}.over-actions #o-quit{margin-right:auto}@keyframes card-in{0%{opacity:0;transform:translateY(18px)scale(.94)}to{opacity:1;transform:none}}@keyframes letter-in{0%{opacity:0;filter:blur(6px);transform:translateY(.4em)scale(1.4)}to{opacity:1;filter:none;transform:none}}@keyframes title-glow{0%,to{opacity:1}50%{opacity:.78}}@keyframes row-in{0%{opacity:0;transform:translate(-10px)}to{opacity:1;transform:none}}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@media (width<=640px){.stats .opt{display:none}.stats{font-size:.82rem}}@media (prefers-reduced-motion:reduce){.card.over,.over-title span,.over-sub,.stats tbody tr,.chart-wrap{animation:none}}.screen.menu{background:radial-gradient(at 30% 40%,#060b1626,#060b16b3)}.card.menu{width:min(1180px,100%);box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none;scrollbar-width:thin;scrollbar-color:#78aaff4d transparent;background:0 0;border:0;gap:clamp(18px,4vh,40px);padding:8px}.menu-top{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;display:flex}.brand{align-items:center;gap:16px;display:flex}.brand-mark .icon{width:clamp(40px,5vw,56px);height:clamp(40px,5vw,56px);color:var(--accent);filter:drop-shadow(0 0 10px #ffb347a6);animation:60s linear infinite menu-spin;display:block}.card.menu .logo{text-align:left;letter-spacing:.4em;padding-left:0;font-size:clamp(2rem,5vw,3.2rem);line-height:1}.card.menu .sub{text-align:left;margin:8px 0 0}.menu-watch{width:44px;height:44px;color:var(--muted);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);opacity:.7;background:#0a1224a6;border-radius:50%;place-items:center;padding:0;transition:opacity .2s,color .2s;display:grid;position:fixed;bottom:18px;right:18px}.menu-watch .icon{width:20px;height:20px}.card.menu .menu-watch:hover,.menu-watch:focus-visible{opacity:1;color:var(--fg)}.screen.watch{cursor:pointer;background:0 0;place-items:end center;padding-bottom:24px}.card.watch{width:auto;box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none;background:0 0;border:0;align-items:center;gap:8px;padding:0;animation:.4s 3s both watch-dim;overflow:visible}.card.watch:hover{animation:none}.watch-pill{border:1px solid var(--line);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#0a1224bf;border-radius:999px;gap:6px;padding:5px;display:flex}.watch-pill button{background:0 0;border:0;border-radius:999px;align-items:center;gap:8px;min-height:40px;padding:8px 16px;display:inline-flex}.watch-pill button:hover{background:#2440788c}.watch-pill .icon{width:18px;height:18px}.watch-hint{color:var(--muted);letter-spacing:.06em;text-shadow:0 1px 4px #000;font-size:.75rem}@keyframes watch-dim{to{opacity:.3}}@media (prefers-reduced-motion:reduce){.card.watch{animation:none}}.menu-util{gap:10px;display:flex}.menu-chip{min-height:44px;color:var(--muted);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#0a1224a6;border-radius:4px;align-items:center;gap:8px;padding:10px 18px;display:inline-flex}.menu-chip .icon{width:18px;height:18px;transition:transform .4s}.card.menu .menu-chip:hover{color:var(--fg);background:#162648d9}.card.menu .menu-chip:hover .icon{transform:rotate(45deg)}.menu-grid{grid-template-columns:repeat(4,minmax(0,1fr));grid-template-areas:"hero hero camp skirm""def res online online";gap:clamp(10px,1.6vw,18px);display:grid}.menu-grid.beaten{grid-template-areas:"skirm skirm camp camp""def res online online"}.t-hero{grid-area:hero}.t-camp{grid-area:camp}.t-skirm{grid-area:skirm}.t-def{grid-area:def}.t-res{grid-area:res}.t-online{grid-area:online}.tile{--tint:140, 180, 255;text-align:left;border:1px solid var(--line);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);min-height:clamp(160px,26vh,240px);transform:perspective(900px) rotateX(var(--rx,0deg)) rotateY(var(--ry,0deg)) translateY(var(--lift,0px));animation:.6s cubic-bezier(.2,.8,.2,1) backwards tile-in;animation-delay:calc(var(--i,0) * 70ms + 80ms);background:linear-gradient(160deg,#142242b8,#080e1ecc);border-radius:4px;flex-direction:column;align-items:flex-start;gap:12px;padding:clamp(16px,2vw,26px);transition:transform .25s ease-out,border-color .2s,box-shadow .3s,background .2s;display:flex;position:relative;overflow:hidden;box-shadow:0 12px 36px #00000059}.tile.coop{--tint:63, 224, 208}.tile.online{--tint:186, 156, 255}.tile.hero{--tint:255, 179, 71}.tile:before{content:"";background:radial-gradient(320px circle at var(--mx,50%) var(--my,0%), rgba(var(--tint), .2), transparent 65%);opacity:0;pointer-events:none;transition:opacity .3s;position:absolute;inset:0}.tile>*{position:relative}.card .tile:hover:not(:disabled){--lift:-4px;border-color:rgba(var(--tint), .6);box-shadow:0 20px 50px #00000073, 0 0 40px rgba(var(--tint), .14);background:linear-gradient(160deg,#1a2c54cc,#0a1226d9)}.tile:hover:before{opacity:1}.card .tile:active:not(:disabled){--lift:-1px;transition-duration:80ms}.card .tile:focus-visible,.card.menu .menu-chip:focus-visible{outline:2px solid rgb(var(--tint,255, 179, 71));outline-offset:3px}.tile-eyebrow{letter-spacing:.24em;text-transform:uppercase;color:rgba(var(--tint), .85);font-size:.68rem}.tile-icon{width:58px;height:58px;color:rgb(var(--tint));background:radial-gradient(circle, rgba(var(--tint), .2), rgba(var(--tint), .04) 70%);border:1px solid rgba(var(--tint), .28);border-radius:50%;place-items:center;transition:transform .3s,box-shadow .3s;display:grid}.tile-icon .icon{width:30px;height:30px}.tile:hover .tile-icon{box-shadow:0 0 26px rgba(var(--tint), .4);transform:scale(1.08)}.tile-text{margin-top:auto;padding-right:28px}.tile-text b{letter-spacing:.05em;color:var(--fg);font-size:clamp(1.1rem,1.6vw,1.4rem);font-weight:600;display:block}.tile-text small{color:var(--muted);margin-top:4px;font-size:.85rem;line-height:1.35;display:block}.tile>.tile-go{color:rgb(var(--tint));opacity:.45;transition:transform .25s,opacity .25s;position:absolute;bottom:20px;right:18px}.tile-go .icon{width:20px;height:20px;display:block}.tile:hover .tile-go{opacity:1;transform:translate(4px)}.tile>.tile-art{aspect-ratio:1;width:55%;max-width:220px;color:rgb(var(--tint));opacity:.06;pointer-events:none;transition:transform .6s ease-out,opacity .4s;position:absolute;bottom:-22%;right:-8%}.tile-art .icon{width:100%;height:100%;display:block}.tile:hover .tile-art{opacity:.11;transform:translate(-8px,-8px)rotate(-8deg)}.tile.hero{background:linear-gradient(135deg,#ffb34738,#301e0a8c 50%,#0a1020c7);border-color:#ffb34773;min-height:clamp(200px,34vh,320px)}.card.menu .tile.hero:hover:not(:disabled){background:linear-gradient(135deg,#ffb3474d,#38240c99 50%,#0c1224d1)}.tile.hero .tile-icon{width:84px;height:84px;animation:3.2s ease-in-out infinite hero-pulse}.tile.hero .tile-icon .icon{width:46px;height:46px}.tile.hero .tile-text b{letter-spacing:.1em;text-transform:uppercase;color:#fff3e0;font-size:clamp(1.5rem,2.6vw,2.2rem)}.tile.hero .tile-text small{color:#ffd9a3;font-size:.95rem}.tile.hero>.tile-art{opacity:.09;width:60%;max-width:300px;bottom:-30%;right:-6%}.tile.hero .tile-go .icon{width:26px;height:26px}@keyframes tile-in{0%{opacity:0;transform:scale(.94)}to{opacity:1;transform:none}}@keyframes hero-pulse{0%,to{box-shadow:0 0 #ffb34759}50%{box-shadow:0 0 0 10px #ffb34700,0 0 30px #ffb3474d}}@keyframes menu-spin{to{transform:rotate(360deg)}}@media (width<=900px){.menu-grid{grid-template-columns:repeat(2,minmax(0,1fr));grid-template-areas:"hero hero""camp skirm""def res""online online"}.menu-grid.beaten{grid-template-areas:"skirm skirm""camp camp""def res""online online"}.tile{min-height:150px}.tile.hero{min-height:190px}}@media (width<=600px){.card.menu{gap:16px;padding:4px}.menu-top{flex-direction:column;align-items:flex-start}.menu-chip{padding:8px 14px}.tile{gap:8px;min-height:128px;padding:14px}.tile.hero{min-height:160px}.tile-icon{width:44px;height:44px}.tile-icon .icon{width:24px;height:24px}.tile.hero .tile-icon{width:60px;height:60px}.tile.hero .tile-icon .icon{width:34px;height:34px}.tile-text{padding-right:18px}.tile-text small{font-size:.78rem}.tile>.tile-go{bottom:14px;right:12px}}@media (prefers-reduced-motion:reduce){.tile,.tile-icon,.tile-art,.tile-go,.brand-mark .icon,.menu-chip .icon{transition:none;animation:none!important}.tile,.card .tile:hover:not(:disabled){transform:none}}.screen.open{background:radial-gradient(at 50% 35%,#060b1640,#060b16c7)}.card.open{width:min(1040px,100%);box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none;scrollbar-width:thin;scrollbar-color:#78aaff4d transparent;background:0 0;border:0;gap:18px;padding:8px}.card.online-scr{width:min(940px,100%)}.scr-head{align-items:center;gap:18px;display:flex}.scr-back{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);min-height:44px;color:var(--muted);background:#0a1224a6;align-items:center;gap:6px;padding:8px 16px 8px 10px;display:inline-flex}.scr-back .icon{width:18px;height:18px;transition:transform .2s}.card .scr-back:hover:not(:disabled){color:var(--fg)}.scr-back:hover .icon{transform:translate(-3px)}.scr-title{flex-direction:column;gap:2px;min-width:0;display:flex}.scr-eyebrow{letter-spacing:.24em;text-transform:uppercase;color:#ba9cff;font-size:.68rem}.card .scr-title h2{letter-spacing:.16em;margin:0;font-size:clamp(1.4rem,3vw,2rem);line-height:1.1}.panel-label{letter-spacing:.2em;text-transform:uppercase;color:var(--muted);font-size:.68rem}.card label.callsign{border:1px solid var(--line);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);letter-spacing:.14em;text-transform:uppercase;background:#0a1224b3;border-radius:4px;justify-content:flex-start;gap:10px;width:min(440px,100%);padding:6px 6px 6px 14px;font-size:.8rem}.callsign-ic{color:#ba9cff;display:grid}.callsign-ic .icon{width:18px;height:18px}.callsign input{text-transform:none;letter-spacing:.04em;flex:1;min-width:0;max-width:none;min-height:36px;font-size:1rem}.online-grid{grid-template-columns:minmax(0,1fr) minmax(0,1.3fr);align-items:stretch;gap:18px;display:grid}.tile.online-host{min-height:clamp(240px,42vh,380px)}.tile.online-join{cursor:default;gap:14px}.card .tile.online-join:hover{--lift:0px}.join-row{align-items:center;gap:12px;width:100%;display:flex}.join-row .tile-icon{flex:none}.join-row .code-in{flex:1;min-width:0;min-height:52px;padding:8px 10px 8px calc(10px + .3em);font-size:1.5rem}.join-row button{letter-spacing:.1em;text-transform:uppercase;min-height:52px;padding:0 26px;font-weight:600}.list-head{border-top:1px solid var(--line);justify-content:space-between;align-items:center;width:100%;padding-top:12px;display:flex}.lobby-list{scrollbar-width:thin;flex-direction:column;gap:6px;width:100%;min-height:110px;max-height:280px;display:flex;overflow-y:auto}.lobby-list>.note{border:1px dashed var(--line);text-align:center;border-radius:4px;padding:18px 14px;line-height:1.4}.lobby-row{--tint:140, 180, 255;border:1px solid var(--line);background:#080e1e80;border-radius:4px;align-items:center;gap:12px;padding:8px 8px 8px 10px;animation:.4s cubic-bezier(.2,.8,.2,1) backwards tile-in;display:flex}.lobby-row.coop{--tint:63, 224, 208}.lobby-row:hover{border-color:rgba(var(--tint), .5)}.lr-ic{width:36px;height:36px;color:rgb(var(--tint));background:rgba(var(--tint), .1);border:1px solid rgba(var(--tint), .28);border-radius:50%;flex:none;place-items:center;display:grid}.lr-ic .icon{width:18px;height:18px}.lr-text{flex-direction:column;flex:1;min-width:0;display:flex}.lr-text b{white-space:nowrap;text-overflow:ellipsis;font-weight:600;overflow:hidden}.lr-text small{color:var(--muted);letter-spacing:.04em;font-size:.76rem}.lr-text em{color:var(--accent);font-style:normal}.lr-count{color:var(--muted);font-variant-numeric:tabular-nums;align-items:center;gap:4px;font-size:.85rem;display:inline-flex}.lr-count .icon{width:14px;height:14px}.lr-join{flex:none;min-height:40px;padding:6px 16px}.list-toggle{text-align:left;background:#080e1e73;align-items:center;gap:12px;margin-top:6px;padding:10px 12px;display:flex}.card .list-toggle.on{color:var(--fg);background:#3fe0d014;border-color:#3fe0d080}.list-toggle:disabled{opacity:1;cursor:default}.lt-ic{color:var(--muted);flex:none;display:grid}.list-toggle.on .lt-ic{color:#3fe0d0}.lt-ic .icon{width:20px;height:20px}.lt-text{flex-direction:column;flex:1;min-width:0;display:flex}.lt-text b{font-size:.92rem;font-weight:600}.lt-text small{color:var(--muted);font-size:.76rem}.lt-sw{border:1px solid var(--line);background:#78aaff2e;border-radius:10px;flex:none;width:36px;height:20px;transition:background .2s;position:relative}.lt-sw:after{content:"";background:var(--muted);border-radius:50%;width:14px;height:14px;transition:transform .2s,background .2s;position:absolute;top:2px;left:2px}.list-toggle.on .lt-sw{background:#3fe0d04d;border-color:#3fe0d099}.list-toggle.on .lt-sw:after{background:#3fe0d0;transform:translate(16px)}.list-toggle:disabled .lt-sw{display:none}.card.connecting{width:auto}.connecting{flex-direction:column;align-items:center;gap:10px;padding:40px;display:flex}.conn-mark .icon{width:64px;height:64px;color:var(--accent);filter:drop-shadow(0 0 12px #ffb34799);animation:2.4s linear infinite menu-spin;display:block}.connecting h2{letter-spacing:.2em;margin:6px 0 0}.lobby-grid{grid-template-columns:minmax(0,1fr) minmax(0,1.25fr);align-items:start;gap:18px;display:grid}.lobby-col{border:1px solid var(--line);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:linear-gradient(160deg,#142242b8,#080e1ed1);border-radius:4px;flex-direction:column;gap:10px;padding:18px;display:flex;box-shadow:0 12px 36px #00000059}.room-code{border-bottom:1px solid var(--line);flex-direction:column;gap:6px;margin-bottom:4px;padding-bottom:14px;display:flex}.code-row{justify-content:space-between;align-items:center;gap:12px;display:flex}.code-row .code{text-align:left;padding-left:0;font-size:clamp(2.2rem,5vw,3rem);line-height:1.1}.icon-btn{flex:none;place-items:center;width:44px;height:44px;padding:0;display:grid}.icon-btn .icon{width:20px;height:20px}.icon-btn.done{color:#7fe0b0;border-color:#7fe0b099}.seats{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.seat{border:1px solid color-mix(in srgb, var(--seat) 45%, transparent);background:linear-gradient(135deg, color-mix(in srgb, var(--seat) 16%, transparent), #080e1e99 70%);border-radius:4px;align-items:center;gap:12px;min-height:64px;padding:10px 12px;animation:.5s cubic-bezier(.2,.8,.2,1) backwards tile-in;display:flex}.seat:nth-child(2){animation-delay:60ms}.seat:nth-child(3){animation-delay:.12s}.seat:nth-child(4){animation-delay:.18s}.seat-ic{width:38px;height:38px;color:var(--seat);border:1px solid color-mix(in srgb, var(--seat) 40%, transparent);background:color-mix(in srgb, var(--seat) 12%, transparent);border-radius:50%;flex:none;place-items:center;display:grid}.seat-ic .icon{width:20px;height:20px}.seat-text{flex-direction:column;min-width:0;display:flex}.seat-text b{white-space:nowrap;text-overflow:ellipsis;font-weight:600;overflow:hidden}.seat-text small{color:var(--muted);letter-spacing:.16em;text-transform:uppercase;white-space:nowrap;text-overflow:ellipsis;font-size:.7rem;overflow:hidden}.seat.ai{border-style:dashed}.seat.open{border:1px dashed var(--line);background:#080e1e59}.seat.open .seat-ic{color:var(--muted);background:0 0;border-color:#0000}.seat.open b{color:var(--muted);font-weight:400}.modes{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.tile.mode-tile{min-height:0;box-shadow:none;flex-direction:row;align-items:center;gap:12px;padding:12px}.mode-tile .tile-icon{flex:none;width:42px;height:42px}.mode-tile .tile-icon .icon{width:22px;height:22px}.mode-tile .tile-text{min-width:0;margin-top:0;padding-right:0}.card .mode-tile .tile-text b{font-size:1rem}.mode-tile .tile-text small{margin-top:2px;font-size:.76rem}.card .tile.mode-tile.on{border-color:rgba(var(--tint), .85);background:linear-gradient(160deg, rgba(var(--tint), .22), #080e1ed1);box-shadow:inset 0 0 0 1px rgba(var(--tint), .35), 0 0 24px rgba(var(--tint), .16);color:var(--fg)}.mode-tile:disabled{opacity:.5}.mode-tile.on:disabled{opacity:1}.lobby-settings{border-top:1px solid var(--line);flex-direction:column;gap:10px;margin-top:4px;padding-top:14px;display:flex}.lobby-settings select{min-width:170px}.lobby-foot{justify-content:flex-end;align-items:center;gap:12px;display:flex}.start-btn{letter-spacing:.14em;text-transform:uppercase;align-items:center;gap:10px;min-height:52px;padding:12px 30px;font-weight:600;display:inline-flex;box-shadow:0 0 30px #ffb34738}.start-btn .icon{width:24px;height:24px}.lobby-foot .waiting{color:var(--muted);align-items:center;gap:10px;padding:14px;display:inline-flex}.lobby-foot .waiting i{background:var(--accent);border-radius:50%;width:8px;height:8px;animation:1.4s ease-in-out infinite wait-pulse}@keyframes wait-pulse{0%,to{opacity:.3;transform:scale(.8)}50%{opacity:1;transform:scale(1.2)}}.card.still .tile,.card.still .seat{animation:none}.card.pause{gap:14px;width:min(380px,100%);padding:22px}.pause-head{flex-direction:column;gap:2px;display:flex}.pause-head .scr-eyebrow{color:var(--accent)}.card .pause-head h2{letter-spacing:.16em;margin:0;font-size:1.5rem}.pause-head .note{margin-top:4px}.mapcode-row{border:1px solid var(--line);background:#080e1e66;border-radius:4px;justify-content:space-between;align-items:center;gap:10px;padding:8px 8px 8px 12px;display:flex}.code-chip{letter-spacing:.08em;align-items:center;gap:8px;padding:6px 12px;font-size:.85rem;display:inline-flex}.code-chip .icon{width:16px;height:16px}.pause-list{flex-direction:column;gap:8px;display:flex}.pause-btn{text-align:left;letter-spacing:.06em;align-items:center;gap:14px;min-height:52px;padding:8px 14px 8px 10px;font-size:1rem;display:flex}.pb-ic{color:#8ccaff;background:#8cb4ff1a;border:1px solid #8cb4ff40;border-radius:4px;flex:none;place-items:center;width:34px;height:34px;transition:transform .2s;display:grid}.pb-ic .icon{width:18px;height:18px}.pause-btn:hover .pb-ic{transform:scale(1.08)}.pause-btn.primary .pb-ic{color:var(--accent);background:#ffb34726;border-color:#ffb34766}.pause-btn.quit{color:#ffc2c2}.pause-btn.quit .pb-ic{color:var(--err);background:#ff6b6b1a;border-color:#ff6b6b4d}.pause-btn.quit:hover:not(:disabled){background:#50141c8c;border-color:#ff6b6b80}.over-actions button{align-items:center;gap:8px;display:inline-flex}.over-actions .icon{flex:none;width:18px;height:18px}@media (width<=760px){.online-grid,.lobby-grid{grid-template-columns:minmax(0,1fr)}.tile.online-host{min-height:160px}}@media (width<=600px){.card.open{gap:14px;padding:4px}.scr-head{gap:12px}.lobby-col{padding:14px}.lobby-settings select{min-width:0}.lobby-foot .start-btn{justify-content:center;width:100%}.join-row button{padding:0 18px}}@media (width<=480px){.modes{grid-template-columns:minmax(0,1fr)}}@media (prefers-reduced-motion:reduce){.seat,.conn-mark .icon,.lobby-foot .waiting i{animation:none}.scr-back .icon,.pb-ic{transition:none}}.card.setup{width:min(1040px,100%)}.card.open.campaign{width:min(1180px,100%)}.card.settings{width:min(680px,100%)}.card.open.controls{width:min(1040px,100%);max-width:none}.card.howto{width:min(1100px,100%)}.setup-panel,.chapter-band,.lvl-detail,.ctl-panel,.how-sec{border:1px solid var(--line);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:linear-gradient(160deg,#142242b8,#080e1ed1);border-radius:4px;flex-direction:column;gap:14px;padding:18px;display:flex;box-shadow:0 12px 36px #00000059}.setup-grid{grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);align-items:stretch;gap:18px;display:grid}.tile.setup-mode{cursor:default;min-height:360px}.card .tile.setup-mode:hover{--lift:0px}.setup-mode .tile-text small{margin-top:8px;font-size:.92rem;line-height:1.55}.set-row{grid-template-columns:minmax(130px,.75fr) minmax(0,1.5fr);align-items:center;gap:12px;display:grid}.set-row[hidden]{display:none}.set-row.stack{grid-template-columns:minmax(0,1fr);gap:8px}.set-map{border-top:1px solid var(--line);flex-direction:column;gap:10px;padding-top:12px;display:flex}.setup-panel label input{max-width:none}.setup-panel select{min-width:170px}.setup-panel .modes{grid-template-columns:repeat(2,minmax(0,1fr))}.resume-btn{align-items:center;gap:10px;min-height:52px;padding:12px 22px;display:inline-flex}.resume-btn .icon{width:20px;height:20px}.seg{border:1px solid var(--line);background:#060b1680;border-radius:4px;gap:3px;padding:3px;display:flex}.seg.wrap{flex-wrap:wrap}.seg button{min-height:40px;color:var(--muted);background:0 0;border:0;flex:auto;justify-content:center;align-items:center;gap:8px;padding:6px 12px;font-size:.9rem;display:inline-flex}.seg button:hover:not(:disabled):not(.on){color:var(--fg);background:#24407880}.seg button.on{color:#ffd9a3;background:#ffb3472e;box-shadow:inset 0 0 0 1px #ffb3478c}.seg .icon{width:16px;height:16px}.pips{align-items:flex-end;gap:2px;display:inline-flex}.pips i{opacity:.25;background:currentColor;border-radius:1px;width:4px}.pips i:first-child{height:6px}.pips i:nth-child(2){height:9px}.pips i:nth-child(3){height:12px}.pips i.on{opacity:1}.campaign-grid{grid-template-columns:minmax(0,1fr) 300px;align-items:start;gap:18px;display:grid}.campaign-map{flex-direction:column;gap:18px;min-width:0;display:flex}.chapter-band{padding:18px 22px 22px}.chapter-head{align-items:baseline;gap:12px;display:flex}.chapter-head h3{letter-spacing:.12em;text-transform:uppercase;margin:0;font-size:1.05rem;font-weight:600}.route{position:relative}.route-svg{pointer-events:none;width:100%;height:100%;position:absolute;inset:0;overflow:visible}.route-svg path{fill:none;stroke-width:2.5px;stroke-linecap:round}.route-svg .done{stroke:#ffb347b3}.route-svg .todo{stroke:#78aaff52;stroke-dasharray:6 7}.route-grid{--cols:4;grid-template-columns:repeat(var(--cols), minmax(0, 1fr));gap:26px 12px;padding:4px 24px;display:grid;position:relative}.lvl{color:#ffb347;background:0 0;border:0;flex-direction:column;align-items:center;gap:8px;min-width:0;padding:4px;animation:.5s cubic-bezier(.2,.8,.2,1) backwards tile-in;display:flex}.card .lvl:hover:not(:disabled){background:0 0}.lvl:disabled{opacity:1;cursor:default;color:#78aaff66}.lvl:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:4px}.lvl-hex{place-items:center;width:64px;height:64px;transition:transform .2s;display:grid;position:relative}.lvl-hex>.icon{width:100%;height:100%;position:absolute;inset:0}.lvl-hex>.icon polygon{fill:#0a1224eb}.lvl.beaten .lvl-hex>.icon polygon{fill:#38240ceb}.lvl:hover:not(:disabled) .lvl-hex{transform:scale(1.08)}.lvl-hex b{color:#fff3e0;font-size:1.15rem;font-weight:600;position:relative}.lvl:disabled .lvl-hex b{color:var(--muted);font-weight:400}.lvl.next .lvl-hex{animation:2.4s ease-in-out infinite lvl-glow}.lvl.sel .lvl-hex:after{content:"";border:1px dashed #fff3e0bf;border-radius:50%;animation:14s linear infinite menu-spin;position:absolute;inset:-8px}.lvl-badge{background:#0a1224;border:1px solid;border-radius:50%;place-items:center;width:22px;height:22px;display:grid;position:absolute;bottom:0;right:-4px}.lvl-badge .icon{width:13px;height:13px}.lvl.beaten .lvl-badge{color:#7fe0b0}.lvl-name{max-width:100%;color:var(--muted);letter-spacing:.04em;text-align:center;text-overflow:ellipsis;white-space:nowrap;font-size:.82rem;overflow:hidden}.lvl.sel .lvl-name,.lvl:hover:not(:disabled) .lvl-name{color:var(--fg)}@keyframes lvl-glow{0%,to{filter:drop-shadow(0 0 2px #ffb3474d)}50%{filter:drop-shadow(0 0 12px #ffb347cc)}}.lvl-detail{gap:12px;padding:20px;position:sticky;top:0}.lvl-detail h3{letter-spacing:.08em;margin:0;font-size:1.5rem;font-weight:600}.lvl-detail .scr-eyebrow{color:var(--accent)}.lvl-facts{flex-wrap:wrap;gap:8px;display:flex}.lvl-facts>span{border:1px solid var(--line);color:var(--muted);text-transform:capitalize;border-radius:4px;align-items:center;gap:6px;padding:4px 10px;font-size:.8rem;display:inline-flex}.lvl-diff .pips{color:var(--accent)}.lvl-status.done{color:#7fe0b0;border-color:#7fe0b066}.lvl-status .icon{width:14px;height:14px}.lvl-hint{color:#d6d3f5;margin:0;font-size:.92rem;line-height:1.5}.lvl-detail .start-btn{justify-content:center;margin-top:4px}.tile.settings-link{flex-direction:row;align-items:center;gap:14px;min-height:0;padding:16px 18px}.settings-link .tile-icon{width:46px;height:46px}.settings-link .tile-icon .icon{width:24px;height:24px}.settings-link .tile-text{margin-top:0}.tile.settings-link>.tile-go{margin-left:auto;position:static}.ctl-groups{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;gap:14px;display:grid}.ctl-panel{gap:3px;padding:14px}.ctl-panel .ctl-head{margin:0 0 6px}.ctl-foot{justify-content:space-between}.ctl-foot .note{flex:1}.how-grid{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;gap:14px;display:grid}.how-sec{--tint:140, 180, 255;gap:12px;padding:16px 18px}.how-sec.wide{grid-column:1/-1}.how-sec header{align-items:center;gap:12px;display:flex}.how-sec .tile-icon{width:40px;height:40px}.how-sec .tile-icon .icon{width:22px;height:22px}.how-sec h3{letter-spacing:.1em;text-transform:uppercase;margin:0;font-size:.95rem;font-weight:600}.how-sec .how b{color:#fff3e0;font-weight:600}.how-rps{width:min(240px,100%);color:var(--muted);align-self:center}.rps-links path{fill:none;stroke:currentColor;stroke-width:1.6px}.rps-l{fill:#ff9a7a}.rps-b{fill:#7fe0b0}.rps-c{fill:#8ccaff}.how-rps text{fill:var(--muted);letter-spacing:.06em;text-anchor:middle;font-size:11px}@media (width<=860px){.setup-grid,.campaign-grid,.ctl-groups,.how-grid{grid-template-columns:minmax(0,1fr)}.tile.setup-mode{min-height:0}.lvl-detail{position:sticky;top:auto;bottom:0;box-shadow:0 -12px 30px #0000008c}}@media (width<=600px){.set-row{grid-template-columns:minmax(0,1fr);gap:6px}.setup-panel .modes{grid-template-columns:minmax(0,1fr)}.route-grid{--cols:2;padding:4px 30px}.chapter-band,.setup-panel,.lvl-detail,.how-sec{padding:14px}.lobby-foot .resume-btn{justify-content:center;width:100%}}@media (prefers-reduced-motion:reduce){.lvl,.lvl.next .lvl-hex,.lvl.sel .lvl-hex:after{animation:none}.lvl-hex{transition:none}}.card.over{border-top:2px solid #ffb3478c;gap:16px;width:min(680px,100%);padding-top:30px}.card.over.defeat{border-top-color:#ff547080}.over-medal{--tint:255, 179, 71;width:64px;height:64px;color:rgb(var(--tint));background:radial-gradient(circle, rgba(var(--tint), .22), rgba(var(--tint), .04) 70%);border:1px solid rgba(var(--tint), .35);box-shadow:0 0 34px rgba(var(--tint), .25);border-radius:50%;align-self:center;place-items:center;animation:.5s .1s both fade-in;display:grid}.defeat .over-medal{--tint:255, 84, 112;box-shadow:none}.over-medal .icon{width:32px;height:32px}.card .over-title{letter-spacing:.18em;margin:-4px 0 0;font-size:clamp(1.8rem,6vw,2.8rem)}.card.over .stats thead th{letter-spacing:.14em;font-size:.62rem}.card.over .chart-wrap{border:1px solid var(--line);background:#060b1666;border-radius:4px;padding:12px 14px 8px}.card.over .chart-head{letter-spacing:.2em;margin-bottom:8px;font-size:.66rem}.card.over .over-actions{gap:10px;margin-top:4px}.card.over .over-actions button{min-height:48px;padding:10px 20px}@media (width<=600px){.card.over .over-actions{flex-wrap:wrap}.card.over .over-actions button{flex:40%;justify-content:center;margin:0}.card.over .over-actions .primary{flex-basis:100%;order:-1}}@media (prefers-reduced-motion:reduce){.over-medal{animation:none}}.card.sector{width:min(1180px,100%)}.card.run{width:min(920px,100%)}.card.sector h3,.card.run h3{letter-spacing:.06em;margin:0;font-size:1.1rem;font-weight:600}.card.sector small,.card.run h3 small{color:var(--muted);letter-spacing:.04em;text-transform:none;font-weight:400}.sector-wrap,.sector-panel,.boon-panel,.run-panel,.run-stat{border:1px solid var(--line);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:linear-gradient(160deg,#142242b8,#080e1ed1);border-radius:4px;box-shadow:0 12px 36px #00000059}.card.sector>*,.card.run>*{flex-shrink:0}.run-head{flex-wrap:wrap}.card .run-lead{margin:-6px 0 0}.run-turns{flex-direction:column;align-items:flex-end;gap:6px;margin-left:auto;display:flex}.card .run-turns small{color:var(--muted);letter-spacing:.06em;font-size:.78rem}.rt-pips{align-items:center;gap:5px;display:flex}.rt-pips i{background:#78aaff2e;border-radius:2px;width:18px;height:6px}.rt-pips i.done{background:#ffb34780}.rt-pips i.now{background:var(--accent);box-shadow:0 0 10px #ffb34799}.rt-pips b{color:#b58cff;place-items:center;margin-left:4px;display:grid}.rt-pips b .icon{width:22px;height:22px}.rt-pips b.now{color:var(--err);filter:drop-shadow(0 0 6px #ff547099)}.sector-body{grid-template-columns:minmax(0,1fr) 300px;align-items:start;gap:18px;display:grid}.sector-wrap{background:radial-gradient(#3fe0d012,#0000 70%),linear-gradient(160deg,#142242b8,#080e1ed1);overflow:hidden}.sector-map{-webkit-user-select:none;user-select:none;width:100%;height:auto;display:block}.sector-map .links line{stroke:#78aaff47;stroke-width:3px}.sector-map .links line.hot{stroke:#9b6bff8c;stroke-dasharray:10 8}.sector-map .sys{cursor:pointer}.sector-map .halo{fill:#0000;stroke:#0000;stroke-width:3px}.sector-map .core{stroke-width:3px}.sector-map .held .core{fill:#3fe0d02e;stroke:#3fe0d0}.sector-map .threat .core{fill:#ffb34733;stroke:var(--accent)}.sector-map .fallen .core{fill:#9b6bff47;stroke:#9b6bff}.sector-map .home .core{stroke-width:5px}.sector-map .live .halo{stroke:#ffb34759}.sector-map .threat.live .halo{animation:1.2s ease-in-out infinite alternate sector-pulse}.sector-map .sel .halo{stroke:#fff3e0;stroke-dasharray:6 5;animation:none}.sector-map .glyph{color:var(--fg);pointer-events:none}.sector-map .name{fill:var(--muted);letter-spacing:.06em;text-anchor:middle;pointer-events:none;font-size:19px}.sector-map .sel .name,.sector-map .live .name{fill:var(--fg)}.sector-map .badge{fill:var(--err);stroke:#060b16e6;stroke-width:2px}.sector-map .pip{stroke:#060b16e6;stroke-width:2px;pointer-events:none}.sector-map .badge-t{fill:#fff;text-anchor:middle;pointer-events:none;font-size:15px;font-weight:700}@keyframes sector-pulse{0%{stroke-opacity:.25}to{stroke-opacity:1}}.sector-legend{border-top:1px solid var(--line);color:var(--muted);flex-wrap:wrap;gap:6px 16px;padding:10px 14px;font-size:.78rem;display:flex}.sector-legend span{text-transform:capitalize;align-items:center;gap:6px;display:inline-flex}.sector-legend .lg{border:2px solid;border-radius:50%;width:10px;height:10px;display:inline-block}.lg.held{border-color:#3fe0d0}.lg.threat{border-color:var(--accent)}.lg.fallen{border-color:#9b6bff}.cat-stat{--ct:#8fd3ff}.cat-relic{--ct:#ffb347}.cat-asset{--ct:#3fe0d0}.cat-team{--ct:#c9a8ff}.cat-ic{width:20px;height:20px;color:var(--ct);flex:none;place-items:center;display:inline-grid}.cat-ic .icon{width:16px;height:16px}.sector-panel{flex-direction:column;gap:10px;padding:18px;display:flex;position:sticky;top:0}.card.sector .sector-panel h3{letter-spacing:.08em;font-size:1.5rem}.sector-panel .note{margin:0}.sector-panel .start-btn{letter-spacing:.08em;justify-content:center;width:100%;margin-top:6px;padding-inline:16px}.start-btn .icon{flex:none}.sector-facts{border-top:1px solid var(--line);grid-template-columns:auto 1fr;gap:8px 12px;margin:0;padding:12px 0;font-size:.88rem;display:grid}.sector-facts dt{color:var(--muted);letter-spacing:.18em;text-transform:uppercase;padding-top:3px;font-size:.66rem}.sector-facts dd{margin:0}.sector-facts .sf-cat{align-items:center;gap:6px;display:flex}.card.sector .warn{color:var(--accent)}.card.sector .void{color:#b58cff}.card.sector .lost{color:var(--muted);text-decoration:line-through}.sector-perks,.run-votes{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.sector-perks .panel-label{margin:0 4px 0 10px}.sector-perks .panel-label:first-child{margin-left:0}.run-votes .note{flex:100%;margin:0}.run-chip{border:1px solid var(--line);background:#0a1224b3;border-radius:999px;align-items:center;gap:5px;padding:4px 11px;font-size:.8rem;display:inline-flex}.run-chip small{color:var(--muted)}.run-chip.team{color:#d9c4ff;border-color:#c9a8ff73}.vote-chip{border-color:color-mix(in srgb, var(--pc) 55%, transparent)}.vote-chip b{color:var(--pc);font-weight:600}.boon-panels{flex-direction:column;gap:16px;display:flex}.boon-panel{border-top:2px solid var(--pc,var(--line));flex-direction:column;gap:12px;padding:16px;display:flex}.boon-panel header{align-items:center;gap:10px;display:flex}.card .boon-panel header small{color:var(--muted);font-size:.8rem}.card .boon-panel header .bp-done{color:#3fe0d0;align-items:center;gap:4px;font-size:.8rem;display:inline-flex}.card .boon-panel header .bp-done .icon{width:14px;height:14px}.card .bp-owned{align-items:baseline;gap:8px;margin:0;display:flex}.boons{grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:10px;display:grid}.boon-btn{text-align:left;padding:0;transition:transform .15s,box-shadow .15s,border-color .15s;display:flex}.boon-btn:hover:not(:disabled){border-color:#78aaff8c;transform:translateY(-2px);box-shadow:0 10px 26px #0006}.boon-btn:disabled:not(.on){opacity:.4}.boon-btn.on{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent), 0 0 24px #ffb34738}.boon{box-sizing:border-box;border:1px solid var(--line);background:linear-gradient(160deg, color-mix(in srgb, var(--ct) 9%, #0e1830e6), #080e1ee6);border-radius:4px;align-items:flex-start;gap:12px;width:100%;padding:14px;display:flex;position:relative}.boon-btn .boon{border:0}.boon>.cat-ic{border:1px solid color-mix(in srgb, var(--ct) 45%, transparent);background:color-mix(in srgb, var(--ct) 12%, transparent);border-radius:50%;width:40px;height:40px}.boon>.cat-ic .icon{width:20px;height:20px}.boon-body{flex-direction:column;gap:3px;min-width:0;display:flex}.boon-body small{letter-spacing:.2em;text-transform:uppercase;color:var(--ct);font-size:.62rem}.boon b{color:var(--fg);font-size:1rem;font-weight:600}.boon-text{color:var(--muted);font-size:.84rem;line-height:1.4}.boon-check{background:var(--accent);color:#1a1206;border-radius:50%;place-items:center;width:22px;height:22px;display:none;position:absolute;top:8px;right:8px}.boon-check .icon{width:14px;height:14px}.boon-btn.on .boon-check{display:grid}.boon .votes{flex-wrap:wrap;gap:6px;margin-top:8px;display:flex}.vote{border-color:var(--pc);color:var(--pc);border-radius:999px;padding:4px 12px;font-size:.8rem}.vote.on{background:color-mix(in srgb, var(--pc) 25%, transparent)}.vote:disabled:not(.on){opacity:.35}.run-over{flex-direction:column;gap:18px;display:flex}.card .run-over.won .scr-title h2{color:#ffd9a3;text-shadow:0 0 24px #ffb34766}.card .run-over.lost .scr-title h2{color:#d9c4ff;text-shadow:0 0 24px #9b6bff66}.run-stats{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;display:grid}.run-stat{--tint:255, 179, 71;text-align:center;flex-direction:column;align-items:center;gap:4px;padding:18px 12px;display:flex}.run-stat.held{--tint:63, 224, 208}.run-stat.fallen{--tint:181, 140, 255}.run-stat .tile-icon{width:46px;height:46px;margin-bottom:4px}.run-stat .tile-icon .icon{width:24px;height:24px}.run-stat b{color:rgb(var(--tint));font-size:2.4rem;font-weight:300;line-height:1.1}.run-stat>span:last-child{color:var(--muted);letter-spacing:.18em;text-transform:uppercase;font-size:.7rem}.run-cols{grid-template-columns:minmax(0,1fr) minmax(0,1.2fr);align-items:start;gap:16px;display:grid}.run-panel{flex-direction:column;gap:12px;padding:16px;display:flex}.card .run-panel h3.panel-label{letter-spacing:.2em;font-size:.68rem;font-weight:400}.run-boons{flex-direction:column;gap:10px;margin:0;padding:0;list-style:none;display:flex}.run-boons li{border-left:2px solid var(--pc,#c9a8ff);color:var(--muted);flex-direction:column;gap:2px;padding-left:10px;font-size:.86rem;display:flex}.run-boons b{color:var(--pc,#d9c4ff);align-items:center;gap:6px;font-weight:600;display:inline-flex}.run-boons b .icon{width:14px;height:14px}.run-log{max-height:260px;color:var(--muted);scrollbar-width:thin;flex-direction:column;gap:4px;margin:0;padding-left:24px;font-size:.84rem;display:flex;overflow:auto}.run-log li::marker{color:#78aaff80}.run-foot{justify-content:space-between}@media (width<=860px){.sector-body,.run-cols{grid-template-columns:minmax(0,1fr)}.sector-panel{position:static}}@media (width<=600px){.run-turns{align-items:flex-start;width:100%;margin-left:0}.rt-pips i{width:12px}.sector-panel,.boon-panel,.run-panel{padding:14px}.run-stats{gap:8px}.run-stat{padding:12px 6px}.run-stat .tile-icon{display:none}.run-stat b{font-size:1.8rem}.run-foot button{flex:1;justify-content:center}}@media (prefers-reduced-motion:reduce){.sector-map .threat.live .halo{stroke-opacity:1;animation:none}.boon-btn{transition:none}}.hud-stack{flex-direction:column;align-items:flex-start;gap:6px;max-width:calc(100vw - 16px);display:flex;position:absolute;bottom:calc(100% + 6px);left:0}.hud-groups{flex-wrap:wrap;gap:4px;display:flex}.hud-groups[hidden],.sel-readout[hidden]{display:none}.grp-chip{background:#0a1224cc;align-items:baseline;gap:5px;padding:3px 8px;font-size:.78rem;display:flex}.grp-chip b{color:var(--accent);font-weight:600}.grp-chip span{color:var(--muted);font-variant-numeric:tabular-nums}.grp-save{color:var(--muted);padding:3px 10px}.fractions>kbd{align-self:center}@media (pointer:coarse){.grp-chip{padding:7px 12px}}.sel-readout{border:1px solid var(--line);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);font-variant-numeric:tabular-nums;white-space:nowrap;pointer-events:none;background:linear-gradient(160deg,#142242b8,#080e1ed1);border-radius:4px;align-items:center;gap:10px;padding:5px 10px;font-size:.8rem;animation:.12s ease-out sel-in;display:flex;box-shadow:0 6px 18px #0000004d}.sel-label{letter-spacing:.2em;text-transform:uppercase;color:var(--muted);font-size:.62rem}.sel-total{color:var(--fg);font-weight:600}.sel-grp{color:var(--accent);border:1px solid;border-radius:3px;padding:0 5px;font-size:.72rem;font-weight:600}.sel-types{gap:8px;display:flex}.sel-type{color:var(--fg);align-items:baseline;gap:3px;display:flex}.sel-type i{color:var(--muted);font-size:1.1em;font-style:normal;line-height:1}.sel-stat{color:var(--muted)}.sel-sends b{color:var(--accent);font-weight:600}@keyframes sel-in{0%{opacity:0;transform:translateY(3px)}}@media (prefers-reduced-motion:reduce){.sel-readout{animation:none}}.card.controls{max-width:520px}.ctl-list{flex-direction:column;gap:3px;max-height:60vh;padding-right:4px;display:flex;overflow-y:auto}.ctl-head{letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin:10px 0 2px;font-size:.78rem;font-weight:600}.ctl-head:first-child{margin-top:0}.ctl-row{text-align:left;justify-content:space-between;align-items:center;gap:12px;padding:5px 10px;font-size:.88rem;display:flex}.ctl-row kbd{text-align:center;white-space:nowrap;min-width:2.2em}.ctl-fixed{color:var(--muted);border:1px dashed var(--line);border-radius:4px}.ctl-row.waiting{border-color:var(--accent)}.ctl-row.waiting kbd{color:var(--accent);border-color:var(--accent)}
