:root{--bg:#060a18;--panel:#0e152cdb;--panel-2:#1a264ae6;--line:#3a4d86;--text:#eef2fb;--muted:#a3b0cf;--accent:#5aa2ff;--good:#3ecf6e;--bad:#ff6b5e;--warn:#ffcf5c;--focus:#ffe066;--right:clamp(150px, 15vw, 260px);--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html,body,#root{min-height:100%;margin:0}html{overflow-x:hidden}body{background-color:var(--bg);color:var(--text);background-image:radial-gradient(1px 1px at 12px 22px,#fff,#0000 60%),radial-gradient(1.5px 1.5px at 96px 71px,#d6e6ff,#0000 60%),radial-gradient(1px 1px at 151px 133px,#fff,#0000 60%),radial-gradient(1px 1px at 47px 160px,#cfe0ff,#0000 60%),radial-gradient(1.4px 1.4px at 233px 41px,#fff,#0000 60%),radial-gradient(1px 1px at 190px 210px,#ffe9c9,#0000 60%),radial-gradient(1px 1px at 120px 250px,#fff,#0000 60%),radial-gradient(at 18% 8%,#5640be61,#0000 55%),radial-gradient(at 88% 85%,#1478a04d,#0000 55%),radial-gradient(at 50% 120%,#96286e2e,#0000 60%);background-size:180px 180px,180px 180px,180px 180px,180px 180px,263px 263px,263px 263px,263px 263px,auto,auto,auto;background-attachment:fixed;font:clamp(13px,.35vw + 11px,16px)/1.35 system-ui,-apple-system,Segoe UI,Roboto,sans-serif}:focus-visible{outline:3px solid var(--focus);outline-offset:2px}.sr-only{clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.muted{color:var(--muted)}.app{max-width:100vw;min-height:100dvh;position:relative}.btn{border:1px solid var(--line);min-width:44px;min-height:44px;color:var(--text);font:inherit;cursor:pointer;background:linear-gradient(#2a3b6c,#17224a);border-radius:10px;padding:.5em 1.1em;font-weight:700;transition:filter .12s,transform .12s}.btn:hover:not(:disabled){filter:brightness(1.2)}.btn:active:not(:disabled){transform:translateY(1px)}.btn:disabled{opacity:.4;cursor:not-allowed}.btn--primary{background:linear-gradient(#3f8cff,#1e55c4);border-color:#9cc4ff}.btn--danger{background:linear-gradient(#e0463a,#8f1d16);border-color:#ffb0a8}.btn--quiet{background:0 0}.btn--small{padding:.3em .8em}.pill{border:1px solid var(--line);background:var(--panel);white-space:nowrap;border-radius:999px;padding:.15em .7em;font-size:.85em;display:inline-block}.pill--you{border-color:var(--good);color:#aef3c6;font-weight:700}.pill--them{color:var(--muted)}.pill--mock{z-index:40;border-color:var(--warn);color:var(--warn);opacity:.9;pointer-events:none;font-size:.7em;position:fixed;bottom:6px;left:6px}.banner{border:1px solid var(--line);background:var(--panel-2);text-align:right;border-radius:10px;flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:8px;padding:8px 10px;font-size:.9em;display:flex}.banner--win{border-color:var(--good)}.banner--lose{border-color:var(--bad)}.banner--warn{border-color:var(--warn)}.connection-banner{z-index:90;text-align:center;background:#7a5200;padding:6px 12px;font-weight:700;position:fixed;inset:0 0 auto}.toasts{z-index:80;flex-direction:column;gap:6px;width:min(92vw,460px);margin:0;padding:0;list-style:none;display:flex;position:fixed;top:44px;left:50%;transform:translate(-50%)}.toast{border:1px solid var(--bad);background:#3a1411;border-radius:10px;align-items:center;gap:8px;padding:8px 8px 8px 14px;display:flex}.toast__text{flex:1}.toast__close{width:44px;height:44px;color:var(--text);cursor:pointer;background:0 0;border:0;border-radius:8px;font-size:1.6em}.screen{min-height:100dvh;padding:clamp(16px,4vw,48px) 16px}.screen--center{flex-direction:column;justify-content:center;align-items:center;gap:clamp(16px,3vh,32px);display:flex}.title{text-align:center;letter-spacing:.04em;background:linear-gradient(#fff,#8fb6ff 70%,#5c7fd6);color:#0000;filter:drop-shadow(0 2px 14px #5a8cff80);-webkit-background-clip:text;background-clip:text;margin:0;font-size:clamp(2rem,6vw,3.6rem)}.lead{text-align:center;font-size:1.2em}.home-grid{grid-template-columns:minmax(0,460px) minmax(0,340px);justify-content:center;gap:clamp(12px,2vw,24px);width:100%;display:grid}.panel{border:1px solid var(--line);background:var(--panel);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);border-radius:16px;flex-direction:column;gap:14px;padding:clamp(14px,2.2vw,24px);display:flex;box-shadow:0 10px 40px #00000073,inset 0 0 0 1px #ffffff0d}.panel h2{margin:0;font-size:1.25em}.panel--wide{text-align:center;align-items:center;width:min(100%,460px)}.fieldset{border:1px solid var(--line);border-radius:10px;margin:0;padding:10px 12px}.check{align-items:center;gap:8px;min-height:32px;display:flex}.field{flex-direction:column;gap:6px;display:flex}.input{border:1px solid var(--line);min-height:44px;color:var(--text);font:inherit;background:#0a1128;border-radius:10px;padding:.4em .8em}.input--code{text-transform:uppercase;letter-spacing:.3em;text-align:center;font-size:1.3em}.room-code{letter-spacing:.3em;color:#cfe0ff;margin:0;padding-left:.3em;font-size:clamp(2.2rem,9vw,3.4rem);font-weight:800}.table{--card-w:clamp(64px, min(calc(20dvh - 14px), calc((100vw - var(--right) - 90px) / 6.1)), 270px);--gap:clamp(6px, .9vw, 14px);--w-row:var(--card-w);--w-hand:var(--card-w);--w-played:calc(var(--card-w) * .62);--w-base:calc(var(--card-w) * min(.9, 3.1 / var(--nb,1)));--w-opp:calc(var(--card-w) * .66);--pile-w:clamp(38px, calc(var(--card-w) * .4), 80px);max-width:100vw;min-height:100dvh;padding:var(--gap);gap:var(--gap);grid-template-columns:var(--card-w) minmax(0, 1fr) var(--right);grid-template-rows:auto minmax(calc(var(--card-w) * .8), 1fr) auto auto auto;grid-template-areas:"menu opp turn""bases oboard me""bases mkt me""bases played me""bases hand me";display:grid}.t-menu{z-index:30;flex-direction:column;grid-area:menu;align-items:flex-start;gap:6px;min-width:0;display:flex;position:relative}.t-turn{flex-wrap:wrap;grid-area:turn;place-content:flex-start flex-end;gap:6px;min-width:0;display:flex}.t-banners{flex-direction:column;flex:100%;align-items:flex-end;gap:6px;display:flex}.t-banners:empty{display:none}.t-opp{justify-content:center;align-items:flex-start;gap:calc(var(--gap) * 2);grid-area:opp;min-width:0;display:flex}.t-oboard{grid-area:oboard;justify-content:center;align-items:center;min-width:0;min-height:0;display:flex}.t-mkt{z-index:25;grid-area:mkt;justify-content:center;min-width:0;display:flex;position:relative}.t-explorer{min-width:0}.t-row{min-width:0;position:relative}.t-bases{gap:calc(var(--gap) * .6);contain:size;scrollbar-width:thin;flex-direction:column;grid-area:bases;align-items:flex-start;padding:2px;display:flex;overflow:hidden auto}.t-played{grid-area:played;align-items:center;min-width:0;display:flex}.t-hand{grid-area:hand;min-width:0}.t-me{--avatar:clamp(56px, calc(var(--right) * .5), 110px);--icon:clamp(50px, calc((var(--right) - 3 * var(--gap)) / 2), 104px);--pile-w:clamp(46px, calc(var(--right) * .36), 88px);justify-content:space-between;align-items:center;gap:var(--gap);padding:var(--gap);background:linear-gradient(#0e152cb3,#080c1cc7);border:1px solid #5a78c859;border-radius:16px;flex-direction:column;grid-area:me;min-width:0;display:flex}.strip{min-width:0;display:flex;container-type:inline-size}.strip--row{justify-content:center;align-items:center;gap:var(--gap);min-height:calc(var(--w-row) * 1.39)}.strip--hand{--w:var(--w-hand);justify-content:center;align-items:flex-end;padding-top:10px}.strip--played{--w:var(--w-played);justify-content:center;align-items:flex-end;width:100%;padding-top:3.4em}.strip--row .slot{--w:var(--w-row)}.strip--hand .slot,.strip--played .slot{--w:inherit}.strip--hand .slot{--w:var(--w-hand)}.strip--played .slot{--w:var(--w-played)}.strip--hand .slot+.slot{margin-inline-start:min(var(--gap), calc((100cqw - var(--n) * var(--w-hand)) / (var(--n) - 1)))}.strip--played .slot+.slot{margin-inline-start:min(var(--gap), calc((100cqw - var(--n) * var(--w-played)) / (var(--n) - 1)))}.slot{width:var(--w,var(--card-w));flex:none;display:block;position:relative}.slot:hover,.slot:focus-within{z-index:6}.slot--base{--w:var(--w-base)}.t-explorer .slot{--w:var(--card-w)}.slot--opp{--w:var(--w-opp)}.slot--opp.slot--land{--w:calc(var(--w-opp) * 1.25)}.slot--discard{--w:100%}.chip{color:var(--muted);background:#080c1cbf;border-radius:999px;padding:0 8px;font-size:.75em;position:absolute;bottom:-2px;right:0}.card{width:100%;color:inherit;font:inherit;text-align:left;cursor:default;-webkit-tap-highlight-color:transparent;background:0 0;border:0;border-radius:7%/5%;margin:0;padding:0;display:block}button.card{cursor:pointer}.card.is-disabled{cursor:default}.face{aspect-ratio:475/661;--fc:#a3b0cf;border-radius:5.5%/4%;width:100%;transition:transform .14s,box-shadow .14s,filter .14s;display:block;position:relative;overflow:hidden;box-shadow:0 3px 10px #0009;container-type:inline-size}.face--land{aspect-ratio:700/499;border-radius:4%/5.5%}.face--art{background:#0b1226}.face img{object-fit:cover;-webkit-user-select:none;user-select:none;width:100%;height:100%;display:block}.card--action:not(.is-disabled):hover .face,.card--action:not(.is-disabled):focus-visible .face{transform:translateY(-5px)}.card.is-disabled .face{filter:saturate(.75)brightness(.88)}.card.is-buyable .face{box-shadow:0 0 0 3px var(--good), 0 0 16px 3px #3ecf6eb3}.faction-blob{--fc:#3ecf6e}.faction-trade_federation{--fc:#4aa3ff}.faction-machine_cult{--fc:#ff6b5e}.faction-star_empire{--fc:#ffcf5c}.faction-text{color:var(--fc)}.face--text{background:linear-gradient(160deg, color-mix(in srgb, var(--fc) 38%, #0b1226), #0b1226 75%);border:2px solid var(--fc)}.face__body{flex-direction:column;gap:3cqw;height:100%;padding:6cqw;font-size:8cqw;display:flex;overflow:hidden}.face__header{justify-content:space-between;align-items:flex-start;gap:3cqw;display:flex}.face__name{overflow-wrap:anywhere;-webkit-hyphens:auto;hyphens:auto;font-size:1.1em;font-weight:800;line-height:1.1}.face__cost{color:#3a2800;background:#ffd23f;border-radius:50%;flex:none;place-items:center;width:2em;height:2em;font-weight:800;display:grid}.face__meta{color:color-mix(in srgb, var(--fc) 60%, #fff);overflow-wrap:anywhere;font-size:.78em}.face__text{font-size:.78em;line-height:1.25;overflow:hidden}.face--land .face__text{font-size:.7em}@container (width<=109px){.face__text:not(.face__text--always){display:none}}.floats{z-index:20;pointer-events:none;white-space:nowrap;flex-direction:column-reverse;align-items:center;gap:2px;display:flex;position:absolute;bottom:calc(100% - 2px);left:50%;transform:translate(-50%)}.float{text-shadow:0 1px 3px #000;background:#040814b8;border-radius:999px;padding:0 .55em;font-size:clamp(11px,.45vw + 7px,17px);font-weight:800;animation:1.5s ease-out both float-up}.float--combat{color:#ff7a6e;border:1px solid #ff7a6e}.float--trade{color:#ffd84a;border:1px solid #ffd84a}.float--authority{color:#6df09b;border:1px solid #6df09b}.slot--played:nth-child(2n) .floats{bottom:calc(100% + 1.45em)}.zoom__art .face__body{font-size:5.6cqw}.table[data-mock] .float{animation:none}@keyframes float-up{0%{opacity:0;transform:translateY(8px)}14%{opacity:1;transform:translateY(0)}72%{opacity:1}to{opacity:0;transform:translateY(-14px)}}@media (prefers-reduced-motion:reduce){.float{animation:none}.face,.btn{transition:none}}.player{--avatar:clamp(44px, 9.5dvh, 96px);flex-direction:column;align-items:center;gap:3px;display:flex}.player__name{max-width:calc(var(--avatar) * 1.6);text-overflow:ellipsis;white-space:nowrap;text-shadow:0 1px 3px #000;font-size:.9em;font-weight:700;overflow:hidden}.player__portrait{width:var(--avatar);margin-bottom:calc(var(--avatar) * .26);display:block;position:relative}.avatar{aspect-ratio:1;border:2px solid #7f9bd8;border-radius:12%;width:100%;display:block;box-shadow:0 3px 10px #0009}.player__portrait .badge--shield{width:calc(var(--avatar) * .68);position:absolute;bottom:0;left:50%;transform:translate(-50%,46%)}.badge{display:block;position:relative;container-type:inline-size}.badge svg{filter:drop-shadow(0 2px 4px #0009);width:100%;height:100%;display:block}.badge--shield{aspect-ratio:100/112}.badge--coin,.badge--target{width:var(--icon,64px);aspect-ratio:1}.badge__num{color:#fff;text-shadow:0 2px 4px #000000bf,0 0 2px #000;font-variant-numeric:tabular-nums;place-items:center;font-size:46cqw;font-weight:900;line-height:1;display:grid;position:absolute;inset:0}.badge--shield .badge__num{padding-bottom:6%}.badge--coin .badge__num{color:#3a2800;text-shadow:0 1px #ffffff8c}.badge[data-digits="3"] .badge__num{font-size:35cqw}.badge[data-digits="4"] .badge__num{font-size:28cqw}.badge[data-digits="5"] .badge__num,.badge[data-digits="6"] .badge__num{font-size:22cqw}.pools{justify-content:center;gap:var(--gap);display:flex}.pool{flex-direction:column;align-items:center;gap:2px;display:flex}.pool__label{color:var(--muted);font-size:.75em}.piles{align-items:flex-start;gap:calc(var(--gap) * .8);display:flex}.pile{width:var(--pile-w);display:block;position:relative}.pile--hand{width:calc(var(--pile-w) * 1.15);margin-inline:calc(var(--pile-w) * .45) calc(var(--pile-w) * .3)}.cardback{aspect-ratio:72/100;filter:drop-shadow(0 3px 5px #0009);width:100%;display:block;position:relative;container-type:inline-size}.cardback svg{width:100%;height:100%;display:block}.cardback--dim svg{opacity:.6}.cardback__count{text-shadow:0 2px 4px #000,0 0 3px #000;place-items:center;font-size:40cqw;font-weight:900;display:grid;position:absolute;inset:0}.pile__badge{text-align:center;font-variant-numeric:tabular-nums;background:#080e22eb;border:2px solid #9db6f0;border-radius:999px;min-width:1.7em;padding:0 .4em;font-size:.95em;font-weight:800;display:inline-block}.pile__badge--corner{z-index:3;pointer-events:none;position:absolute;bottom:-6px;right:-4px}.pile__empty{aspect-ratio:475/661;border:2px dashed #9db6f080;border-radius:8%;width:100%;display:block}.pile--hand .pile__badge{position:absolute;bottom:-6px;left:50%;transform:translate(-50%)}.fan{aspect-ratio:72/100;width:100%;display:block;position:relative}.fan__card{transform-origin:50% 110%;width:70%;height:100%;transform:translateX(calc(var(--i) * 22%)) rotate(calc(var(--i) * 10deg));background:linear-gradient(135deg,#2c3f73,#101a38);border:2px solid #8fb0ffd9;border-radius:12%;position:absolute;top:0;left:15%;box-shadow:0 2px 4px #0009}.actions{flex-direction:column;gap:8px;width:100%;display:flex}.actions .btn{width:100%;padding-inline:.4em}.opp-board{align-content:flex-start;align-items:flex-start;gap:calc(var(--gap) * .5);flex-wrap:wrap;flex:1 1 0;min-width:0;display:flex}.menu{position:relative}.menu__button{color:#e6eaf6;min-height:44px;font:inherit;letter-spacing:.12em;text-transform:uppercase;cursor:pointer;background:linear-gradient(#3a3f52,#171a26);border:2px solid #6b7391;border-radius:8px;align-items:center;gap:8px;padding:0 16px 0 12px;font-weight:800;display:inline-flex;box-shadow:inset 0 0 0 1px #0a0c14,0 3px 8px #0009}.menu__button:hover{filter:brightness(1.2)}.menu__bars{background:currentColor;width:18px;height:2px;box-shadow:0 -6px,0 6px}.menu__panel{z-index:70;border:1px solid var(--line);background:#0d1430;border-radius:12px;flex-direction:column;gap:10px;width:min(260px,86vw);padding:12px;display:flex;position:absolute;top:calc(100% + 6px);left:0;box-shadow:0 12px 30px #000000b3}.menu__code{flex-direction:column;gap:4px;display:flex}.menu__code-row{justify-content:space-between;align-items:center;gap:8px;display:flex}.menu__code strong{letter-spacing:.25em;font-size:1.5em}.zoom{--art-h:calc(100dvh - 60px);border:1px solid var(--line);background:#070b1af7;border-radius:16px;gap:16px;padding:14px;display:flex;box-shadow:0 16px 48px #000c}.zoom--hover{z-index:50;pointer-events:none;max-width:calc(100vw - 24px);position:fixed;top:50%;transform:translateY(-50%)}.zoom--left{left:12px}.zoom--right{right:12px}.zoom__art{width:min(475px, 36vw, calc(var(--art-h) * .7186));flex:none}.zoom__art--land{width:min(640px,46vw)}.zoom__panel{width:clamp(210px,20vw,300px);min-width:0;overflow:auto}.zoom__name{overflow-wrap:anywhere;margin:0 0 8px;font-size:1.5em;line-height:1.15}.zoom__facts{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px 12px;margin:0 0 12px;display:grid}.zoom__facts div{min-width:0}.zoom__facts dt{text-transform:uppercase;letter-spacing:.08em;color:var(--muted);font-size:.75em}.zoom__facts dd{overflow-wrap:anywhere;margin:0;font-weight:700}.zoom__ability{border-left:4px solid var(--accent);background:#ffffff0d;border-radius:6px;margin-bottom:10px;padding:8px 10px}.zoom__ability--ally{border-color:var(--good)}.zoom__ability--scrap{border-color:var(--bad)}.zoom__ability h3{text-transform:uppercase;letter-spacing:.1em;color:var(--muted);margin:0 0 2px;font-size:.8em}.zoom__ability p{margin:0}.zoom__none{color:var(--muted)}.zoom-backdrop{z-index:60;background:#000004bd;place-items:center;padding:12px;display:grid;position:fixed;inset:0}.zoom--modal{flex-wrap:wrap;max-width:100%;max-height:100%;position:relative;overflow:auto}.zoom__actions{flex-wrap:wrap;flex:100%;justify-content:flex-end;gap:10px;display:flex}@media (width<=700px),(width<=900px) and (orientation:portrait){.table{--gap:6px;--w-row:clamp(92px, 27vw, 150px);--w-hand:clamp(84px, 24vw, 130px);--w-played:clamp(54px, 14vw, 86px);--w-base:clamp(72px, 20vw, 120px);--w-opp:clamp(52px, 16vw, 96px);--pile-w:clamp(30px, 8.5vw, 48px);grid-template:"menu turn""opp opp""oboard oboard"minmax(min-content,1fr)"bases bases""played played""mkt mkt""me me""hand hand"/auto minmax(0,1fr)}.t-menu{flex-direction:row;align-items:center}.t-turn{align-items:center}.t-opp{flex-wrap:wrap;justify-content:flex-start;align-items:center;gap:6px 14px}.t-opp .player{--avatar:44px;flex-direction:row;gap:6px}.t-opp .player__name{order:3;max-width:90px}.t-opp .player__portrait{margin-bottom:0;margin-right:22px}.t-opp .player__portrait .badge--shield{width:34px;bottom:-2px;left:auto;right:0;transform:translate(60%)}.t-opp .piles{align-items:center}.opp-board{flex:100%;max-width:none;padding-bottom:2px}.t-explorer .slot{--w:var(--w-row)}.strip--row{scroll-snap-type:x proximity;scrollbar-width:none;justify-content:flex-start;min-height:0;padding:6px 2px;overflow-x:auto}.strip--row .slot{scroll-snap-align:start}.t-bases{contain:none;flex-flow:row;align-items:center;overflow:auto hidden}.t-bases.is-empty{display:none}.slot--base{--w:var(--w-base)}.t-played{align-items:flex-end}.t-me{--icon:48px;--pile-w:34px;flex-flow:wrap;justify-content:space-between;align-items:center;padding:6px 8px}.pool__label{display:none}.t-me .player{flex-direction:row}.t-me .player__name,.t-me .avatar{display:none}.t-me .player__portrait{width:44px;margin:0}.t-me .player__portrait .badge--shield{width:44px;position:static;transform:none}.t-me .piles{align-items:center}.actions{flex-direction:row;flex:100%}.actions .btn{flex:1}.strip--hand{scroll-snap-type:x proximity;scrollbar-width:none;justify-content:flex-start;padding:8px 2px 4px;overflow-x:auto}.strip--hand .slot{scroll-snap-align:start}.strip--hand .slot+.slot,.strip--played .slot+.slot{margin-inline-start:var(--gap)}.strip--played{justify-content:flex-start;overflow:auto visible}.slot--played:first-child .floats{align-items:flex-start;left:0;transform:none}.zoom__art{width:min(84vw,71.86dvh - 237.138px,420px)}.zoom__art--land{width:min(84vw,560px)}.zoom__panel{width:100%;overflow:visible}.zoom--modal{justify-content:center}}@media (width>=701px) and (width<=900px) and (orientation:portrait){.table{--gap:8px;--w-row:14.4vw;--w-hand:17vw;--w-played:10.5vw;--w-base:17vw;--w-opp:7vw}.t-me{--icon:60px;--pile-w:44px}.t-me .player__portrait,.t-me .player__portrait .badge--shield{width:58px}}@media (width>=701px){.zoom--modal .zoom__art{width:min(475px,38vw,71.86dvh - 86.232px)}.zoom--modal .zoom__art--land{width:min(560px,48vw)}}.table{--w-opp-base:calc(var(--card-w) * .95)}.slot--opp-base{--w:var(--w-opp-base)}.opp-board{place-content:center;align-items:center}.defense{z-index:3;width:clamp(22px, calc(var(--w,80px) * .27), 38px);aspect-ratio:100/112;pointer-events:none;display:block;position:absolute;bottom:-4px;right:-3px}.defense svg{filter:drop-shadow(0 1px 3px #000c);width:100%;height:100%;display:block}.defense__num{font-weight:900;font-size:clamp(12px, calc(var(--w,80px) * .15), 21px);font-variant-numeric:tabular-nums;place-items:center;padding-bottom:8%;line-height:1;display:grid;position:absolute;inset:0}.defense--outpost .defense__num{color:#fff;text-shadow:0 1px 2px #000}.defense--base .defense__num{color:#101830}.card.is-ready .face{box-shadow:0 0 0 3px #4fe3ff,0 0 16px 3px #4fe3ffb3}.slot--base.is-used .face{filter:grayscale(.75)brightness(.5)}.base-tag{z-index:3;font-size:clamp(10px, calc(var(--w,80px) * .1), 14px);white-space:nowrap;pointer-events:none;border-radius:999px;padding:1px .6em;font-weight:800;position:absolute;top:4px;left:50%;transform:translate(-50%);box-shadow:0 1px 4px #000000b3}.base-tag--ready{color:#04202a;background:#4fe3ff}.base-tag--used{color:#c6cde0;background:#141826e6;border:1px solid #6b7391}.slot--base .floats,.slot--ghost .floats{top:50%;bottom:auto;transform:translate(-50%,-50%)}.card.is-target .face{box-shadow:0 0 0 3px #ff4d3d,0 0 18px 4px #ff4d3dcc}.slot--opp-base.is-attackable:not(.is-affordable) .face{box-shadow:0 0 0 2px #ff4d3da6}.card.is-protected .face{filter:brightness(.45)saturate(.5)}.slot--opp-base.is-protected .card{cursor:not-allowed}.lock{z-index:3;width:clamp(22px, calc(var(--w,80px) * .32), 40px);aspect-ratio:1;pointer-events:none;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.lock svg{width:100%;height:100%;display:block}.slot--ghost .ghost__face{aspect-ratio:700/499;border:2px dashed #ff7a6ecc;border-radius:6%;width:100%;animation:1.5s ease-in both ghost-out;display:block;position:relative}.float--destroyed{color:#fff;white-space:normal;text-align:center;background:#961810eb;border:1px solid #ff7a6e;line-height:1.15}@keyframes ghost-out{0%,70%{opacity:1}to{opacity:0}}.player__portrait--btn{color:inherit;font:inherit;cursor:pointer;background:0 0;border:0;border-radius:12%;padding:0}.player__portrait--btn.is-target .avatar{border-color:#ff4d3d;box-shadow:0 0 0 2px #ff4d3d,0 0 16px 3px #ff4d3dcc}.player__portrait--btn.is-protected{cursor:not-allowed}.player__portrait.is-protected .avatar{filter:brightness(.55)}.lock--portrait{width:46%;top:40%}.actions__hint{color:#ffcf9a;text-align:center;font-size:.78em;line-height:1.2}.zoom__note{color:#ffcf9a;flex:100%;margin:0;font-weight:700}@media (prefers-reduced-motion:reduce){.slot--ghost .ghost__face{animation:none}}@media (width<=700px),(width<=900px) and (orientation:portrait){.table{--w-opp-base:clamp(84px, 27vw, 150px)}.opp-board{max-width:none}.actions{flex-wrap:wrap}.actions__hint{flex:100%;order:3}}.t-bases{--bgap:calc(var(--gap) * .6);gap:var(--bgap);container-type:size}.t-bases .slot--base{--w:clamp(84px, min(var(--w-base), calc(100cqw - 4px), calc((100cqh - 4px - (var(--nb) - 1) * var(--bgap)) / var(--nb) * 1.403)), var(--w-base))}.t-bases .slot--base+.slot--base{margin-top:min(0px, calc((100cqh - 4px - var(--nb) * var(--w) * .713) / (var(--nb) - 1) - var(--bgap)))}.t-bases .defense{top:2px;bottom:auto;right:2px}.t-bases .base-tag{top:3px;left:4px;transform:none}@media (width<=700px),(width<=900px) and (orientation:portrait){.t-bases{container-type:normal}.t-bases .slot--base{--w:var(--w-base)}.t-bases .slot--base+.slot--base{margin-top:0}}.t-bases .slot:hover,.t-bases .slot:focus-within{z-index:auto}.table.is-inert{filter:brightness(.55)saturate(.7);pointer-events:none;-webkit-user-select:none;user-select:none}.decision-backdrop{z-index:70;background:#0000068c;place-items:center;padding:12px;display:grid;position:fixed;inset:0;overflow-y:auto}.decision{border:2px solid var(--focus);background:linear-gradient(#1e2c56fa,#0c1228fa);border-radius:16px;flex-direction:column;gap:16px;width:min(620px,100%);max-height:calc(100dvh - 24px);padding:18px 20px 20px;display:flex;overflow-y:auto;box-shadow:0 10px 40px #000000bf,0 0 0 1px #ffe06640}.decision__head{align-items:center;gap:16px;display:flex}.decision__art{flex:none;width:104px}.decision__art--land{width:150px}.decision__art .face{border-radius:6px}.decision__titles{min-width:0}.decision__title{overflow-wrap:anywhere;margin:0 0 6px;font-size:1.3em;line-height:1.2}.decision__hint{color:var(--muted);margin:0;font-size:.92em}.decision__options{flex-wrap:wrap;gap:12px;display:flex}.decision__option{border:2px solid var(--line);min-height:92px;color:var(--text);font:inherit;cursor:pointer;background:linear-gradient(#2a3b6c,#17224a);border-radius:14px;flex-direction:column;flex:200px;justify-content:center;align-items:center;gap:8px;padding:12px 14px;font-size:1.12em;font-weight:800;transition:filter .12s,border-color .12s;display:flex}.decision__option:hover{filter:brightness(1.2);border-color:#9cc4ff}.decision__option:focus-visible{outline:3px solid var(--focus);outline-offset:2px}.decision__option--primary{background:linear-gradient(#3f8cff,#1e55c4);border-color:#9cc4ff}.decision__part{align-items:center;gap:10px;display:flex}.decision__icon{flex:none;width:46px}.decision__icon:empty{display:none}.decision__icon .badge{width:46px}.decision__icon .badge--shield{aspect-ratio:100/112}.decision__icon .badge--coin,.decision__icon .badge--target,.decision__icon .badge--draw{aspect-ratio:1}.decision__part--trade .decision__text{color:#ffd84a}.decision__part--combat .decision__text{color:#ff8a7a}.decision__part--authority .decision__text{color:#6df09b}.badge--draw .badge__num{color:#14204a;text-shadow:none;padding:0 14% 8% 0}@media (width<=700px),(width<=900px) and (orientation:portrait){.decision{gap:12px;padding:14px}.decision__art{width:76px}.decision__art--land{width:110px}.decision__title{font-size:1.12em}.decision__option{flex-flow:wrap;flex-basis:100%;min-height:64px}}.banner--wait{border-color:var(--focus);color:#fff3b8;font-weight:700}.banner__spinner{border:2px solid #ffe06659;border-top-color:var(--focus);border-radius:50%;width:14px;height:14px;animation:.9s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.scrap-btn{z-index:4;color:#ffe1dc;cursor:pointer;background:#781610eb;border:1px solid #ffb0a8;border-radius:50%;place-items:center;width:30px;height:30px;padding:5px;display:grid;position:absolute;top:3px;left:3px;box-shadow:0 1px 4px #000000b3}.scrap-btn--bases{top:auto;bottom:3px}.scrap-btn:hover,.scrap-btn.is-open{background:#d6231a}.scrap-btn:focus-visible{outline:3px solid var(--focus);outline-offset:1px}.trash{width:100%;height:100%;display:block}.scrap-confirm{z-index:65;background:#180e16f7;border:1px solid #ffb0a8;border-radius:12px;flex-direction:column;gap:6px;width:220px;padding:10px 12px;display:flex;position:fixed;box-shadow:0 6px 24px #000c}.scrap-confirm__title{font-size:.98em}.scrap-confirm__hint{color:var(--muted);font-size:.82em}.scrap-confirm__buttons{gap:8px;display:flex}.scrap-confirm__buttons .btn{flex:1;min-height:36px}.scrap-heap{color:#ffd2cc;font-variant-numeric:tabular-nums;background:#281012d9;border:1px solid #c98b84;border-radius:999px;align-items:center;gap:6px;padding:2px 10px 2px 6px;font-weight:800;display:inline-flex}.scrap-heap .trash{width:20px;height:20px}.scrap-heap.is-empty{opacity:.55}.pools{position:relative}@media (prefers-reduced-motion:reduce){.banner__spinner{animation:none}}.decision-backdrop~.zoom,.decision-backdrop~.zoom-backdrop{z-index:85}.decision--pick{gap:12px;width:min(900px,100%);padding-bottom:14px;overflow:hidden}.pick__head{flex:none}.pick__head .decision__hint+.decision__hint{margin-top:4px}.pick__body{overscroll-behavior:contain;flex-direction:column;flex:auto;gap:12px;min-height:0;margin:0 -4px;padding:4px 4px 6px;display:flex;overflow-y:auto}.pick__zone{color:var(--muted);letter-spacing:.06em;text-transform:uppercase;margin:0 0 6px;font-size:.82em;font-weight:800}.pick__grid{flex-wrap:wrap;gap:12px;display:flex}.pick__slot{--w:112px;flex:none;width:112px;position:relative}.pick__slot--land{--w:168px;width:168px}.pick__card{width:100%;color:inherit;cursor:pointer;background:0 0;border:0;border-radius:7px;padding:0;transition:transform .12s;display:block;position:relative}.pick__card .face{transition:box-shadow .12s,filter .12s}.pick__card:hover .face{box-shadow:0 0 0 2px #9cc4ff}.pick__card:focus-visible{outline-offset:3px;outline:3px dashed #9cc4ff}.pick__card[aria-disabled=true]{cursor:not-allowed}.pick__card[aria-disabled=true] .face{filter:brightness(.55)saturate(.6)}.pick__slot.is-selected .pick__card{transform:translateY(-3px)}.pick__slot.is-selected .pick__card .face{box-shadow:0 0 0 3px var(--focus), 0 0 16px 4px #ffe066b3}.pick__check{z-index:2;background:var(--focus);color:#14204a;border:2px solid #14204a;border-radius:50%;place-items:center;width:28px;height:28px;font-size:18px;font-weight:900;line-height:1;display:none;position:absolute;top:-6px;right:-6px}.pick__slot.is-selected .pick__check{display:grid}.pick__zoom{z-index:2;color:#dfe9ff;cursor:pointer;background:#080e22e0;border:1px solid #9cc4ff;border-radius:50%;place-items:center;width:32px;height:32px;padding:6px;display:grid;position:absolute;bottom:4px;left:4px}.pick__zoom:hover{background:#1e55c4}.pick__zoom:focus-visible{outline:3px solid var(--focus);outline-offset:1px}.pick__zoom-icon{width:100%;height:100%;display:block}.pick__slot .defense{z-index:2;width:34px;position:absolute;bottom:4px;right:4px}.pick__footer{border-top:1px solid var(--line);flex-wrap:wrap;flex:none;justify-content:space-between;align-items:center;gap:10px 16px;padding-top:12px;display:flex}.pick__counter{color:#fff3b8;font-variant-numeric:tabular-nums;font-weight:800}.pick__buttons{gap:10px;margin-left:auto;display:flex}.pick__buttons .btn{min-width:120px;min-height:44px}@media (width<=700px),(width<=900px) and (orientation:portrait){.pick__grid{gap:10px}.pick__slot{--w:94px;width:94px}.pick__slot--land{--w:140px;width:140px}.pick__buttons{flex:100%}.pick__buttons .btn{flex:1;min-width:0}}@media (prefers-reduced-motion:reduce){.pick__card,.pick__card .face{transition:none}}.scrap-heap{position:relative}.float--scrapped{color:#ffd2cc;border:1px solid #c98b84}.float--discarded{color:#dfe9ff;border:1px solid #9db6f0}.pile--hand .floats{top:calc(100% + 12px);bottom:auto}.t-turn{position:relative}.t-turn>.banner--wait{z-index:30;white-space:nowrap;flex-wrap:nowrap;max-width:min(92vw,420px);padding:5px 12px;position:absolute;top:calc(100% + 6px);right:0;box-shadow:0 4px 16px #0009}.t-turn>.banner--wait .banner__text{text-overflow:ellipsis;min-width:0;overflow:hidden}.t-turn>.banner--wait .banner__spinner{flex:none}.pick__head-row{align-items:center;gap:14px;display:flex}.pick__head-row .decision__art{width:72px}.pick__head-row .decision__art--land{width:104px}.pick__source{color:var(--focus);margin:0 0 4px;font-size:.95em;font-weight:800}@media (width<=700px),(width<=900px) and (orientation:portrait){.pick__head-row .decision__art{width:52px}.pick__head-row .decision__art--land{width:76px}}.gameover-backdrop{z-index:88;background-color:#02040ed1;background-image:radial-gradient(1px 1px at 12px 22px,#fff,#0000 60%),radial-gradient(1.5px 1.5px at 96px 71px,#d6e6ff,#0000 60%),radial-gradient(1px 1px at 151px 133px,#fff,#0000 60%),radial-gradient(1.4px 1.4px at 233px 41px,#fff,#0000 60%),radial-gradient(at 50% 30%,#5640be40,#0000 60%);background-size:180px 180px,180px 180px,180px 180px,263px 263px,auto;place-items:center;padding:12px;display:grid;position:fixed;inset:0;overflow-y:auto}.gameover{--frame:var(--focus);border:3px solid var(--frame);text-align:center;width:min(520px,100%);max-height:calc(100dvh - 24px);box-shadow:0 12px 48px #000c, 0 0 36px color-mix(in srgb, var(--frame) 35%, transparent);background:linear-gradient(#1e2c56fa,#0a0f22fa);border-radius:18px;flex-direction:column;align-items:center;gap:14px;padding:26px 24px 24px;display:flex;overflow-y:auto}.gameover--win{--frame:#f2c94c;background:linear-gradient(#224234fa,#0a1818fa)}.gameover--lose{--frame:#b5584f;background:linear-gradient(#34242efa,#120c16fa);box-shadow:0 12px 48px #000c}.gameover--left{--frame:var(--warn)}.gameover__title{letter-spacing:.02em;overflow-wrap:anywhere;color:var(--frame);margin:0;font-size:clamp(2em,8vw,3.2em);line-height:1.1}.gameover--win .gameover__title{text-shadow:0 0 18px #f2c94c8c}.gameover--lose .gameover__title{color:#ff9a8f}.gameover--left .gameover__title{font-size:clamp(1.5em,6vw,2.1em)}.gameover__subtitle{color:var(--text);overflow-wrap:anywhere;margin:0;font-size:1.1em}.gameover__scores{justify-content:center;gap:clamp(24px,8vw,56px);display:flex}.gameover__score{flex-direction:column;align-items:center;gap:6px;display:flex}.gameover__score .badge{width:76px;height:85px}.gameover__who{color:var(--muted);font-weight:700}.gameover__turn,.gameover__note{color:var(--muted);margin:0}.gameover__note{color:var(--warn);font-weight:700}.gameover__buttons{flex-wrap:wrap;justify-content:center;gap:10px;width:100%;display:flex}.gameover__buttons .btn{flex:180px;min-height:48px}.gameover .btn:focus-visible,.gameover-pill .btn:focus-visible{outline:3px solid var(--focus);outline-offset:2px}.gameover-pill{left:50%;bottom:max(10px, env(safe-area-inset-bottom));z-index:60;border:2px solid var(--good);background:#0e152cf5;border-radius:14px;flex-wrap:wrap;justify-content:center;align-items:center;gap:8px 10px;width:max-content;max-width:calc(100vw - 16px);padding:6px 8px 6px 16px;font-weight:700;display:flex;position:fixed;transform:translate(-50%);box-shadow:0 6px 24px #000000b3}.gameover-pill[hidden],.pill[hidden]{display:none}.gameover-pill[data-result=lose]{border-color:#b5584f}.table[data-over=yes] .actions,.table[data-over=yes] .t-mkt,.table[data-over=yes] .t-hand,.table[data-over=yes] .t-bases{opacity:.55}.mkt-toggle{color:#e6eaf6;min-height:40px;font:inherit;cursor:pointer;background:linear-gradient(#24346a,#121b3c);border:2px solid #5f7fd0;border-radius:999px;align-items:center;gap:8px;padding:0 14px 0 18px;font-weight:800;display:inline-flex;box-shadow:0 3px 10px #0000008c}.mkt-toggle:hover{filter:brightness(1.18)}.mkt-toggle:focus-visible,.panel-toggle:focus-visible,.mkt-drawer__close:focus-visible{outline-offset:2px;outline:3px solid #9fc2ff}.mkt-toggle.has-buyable{border-color:var(--good);box-shadow:0 0 0 1px var(--good), 0 0 14px 2px #3ecf6e8c}.mkt-toggle__count{color:#3a2800;font-variant-numeric:tabular-nums;background:#ffd23f;border-radius:999px;place-items:center;min-width:1.7em;height:1.7em;padding:0 .35em;display:grid}.mkt-toggle__chev,.panel-toggle__chev{border-top:2px solid;border-left:2px solid;width:.55em;height:.55em;transition:transform .15s;transform:translateY(20%)rotate(45deg)}.mkt-toggle[aria-expanded=true] .mkt-toggle__chev{transform:translateY(-20%)rotate(225deg)}.mkt-drawer{width:max-content;max-width:calc(100vw - 2 * var(--gap));padding:8px calc(var(--gap) + 4px) 14px;background:#0a1024f5;border:1px solid #6e8cdc99;border-radius:16px;animation:.16s ease-out both drawer-in;position:absolute;bottom:calc(100% + 6px);left:50%;transform:translate(-50%);box-shadow:0 10px 40px #000000bf}.mkt-drawer__head{align-items:center;gap:10px;margin-bottom:6px;display:flex}.mkt-drawer__head .chip{margin-left:auto;position:static}.mkt-drawer__close{color:#e6eaf6;width:34px;height:34px;font:inherit;cursor:pointer;background:#171a26;border:1px solid #6b7391;border-radius:50%;place-items:center;font-weight:800;display:grid}.mkt-drawer__cards{align-items:center;gap:calc(var(--gap) * 1.6);display:flex}@keyframes drawer-in{0%{opacity:0;translate:0 12px}}.t-me{position:relative}.panel-toggle{z-index:4;color:#e6eaf6;cursor:pointer;background:#171a26;border:1px solid #6b7391;border-radius:50%;place-items:center;width:30px;height:30px;padding:0;display:grid;position:absolute;top:50%;left:-15px;translate:0 -50%}.panel-toggle__chev{transform:translate(-15%)rotate(135deg)}.t-me--compact .panel-toggle__chev{transform:translate(15%)rotate(-45deg)}.table[data-panel=compact]{--compact-w:clamp(220px, 21vw, 280px);grid-template-columns:var(--card-w) minmax(0, 1fr) var(--compact-w);grid-template-areas:"menu opp turn""bases oboard oboard""bases mkt mkt""bases played played""bases hand me"}.t-me--compact{--icon:46px;flex-flow:wrap;justify-content:center;align-self:end;align-items:center;width:auto;padding:8px 8px 8px 18px}.t-me--compact .pool__label,.t-me--compact .player__name,.t-me--compact .avatar,.t-me--compact .piles,.t-me--compact .scrap-heap{display:none}.t-me--compact .player__portrait{width:46px;margin:0}.t-me--compact .player__portrait .badge--shield{width:46px;position:static;transform:none}.t-me--compact .actions{flex:100%}@media (prefers-reduced-motion:reduce){.mkt-drawer{animation:none}.mkt-toggle__chev,.panel-toggle__chev{transition:none}}@media (width<=700px),(width<=900px) and (orientation:portrait){.mkt-drawer{width:auto;max-width:none;padding-bottom:calc(12px + env(safe-area-inset-bottom));border-radius:16px 16px 0 0;position:fixed;bottom:0;left:0;right:0;transform:none}.mkt-drawer__cards{gap:var(--gap);scroll-snap-type:x proximity;scrollbar-width:none;overflow-x:auto}.mkt-drawer__cards .t-explorer{scroll-snap-align:start;flex:none}.mkt-drawer .strip--row{overflow:visible}.panel-toggle{order:-1;position:static;translate:none}.table[data-panel=compact]{grid-template-columns:auto minmax(0,1fr);grid-template-areas:"menu turn""opp opp""oboard oboard""bases bases""played played""mkt mkt""me me""hand hand"}.t-me--compact{--icon:48px;justify-content:space-between;align-self:stretch;width:auto;padding:6px 8px}}.mkt-drawer .strip--row{container-type:normal}@media not ((width<=700px) or ((width<=900px) and (orientation:portrait))){.t-oboard{scrollbar-width:thin;overflow-y:auto;container-type:size}.t-oboard .opp-board{gap:var(--gap);--oh:calc((100cqh - 12px - (var(--orows) - 1) * var(--gap)) / var(--orows));flex-wrap:wrap}.t-oboard .slot--opp-base,.t-oboard .slot--opp.slot--land{--w:clamp(calc(var(--card-w) * .6), min(var(--oh) * 1.4, (100cqw - (var(--on) - 1) * var(--gap)) / var(--on)), calc(var(--card-w) * 1.5))}.t-oboard .slot--opp:not(.slot--land){--w:clamp(calc(var(--card-w) * .45), min(var(--oh) * .718, (100cqw - (var(--on) - 1) * var(--gap)) / var(--on)), calc(var(--card-w) * 1.05))}}.mkt-toggle:not(.has-buyable) .mkt-toggle__count{color:#c6cde0;background:#3a4366}.expansions{overscroll-behavior:contain;scrollbar-width:thin;flex-direction:column;gap:10px;max-height:min(46dvh,420px);padding-top:0;display:flex;overflow-y:auto}.expansions__group{flex-direction:column;display:flex}.expansions__title{z-index:1;color:#9fb4e8;letter-spacing:.08em;text-transform:uppercase;background:#101830;margin:0 0 2px;padding:4px 0;font-size:.72em;font-weight:800;position:sticky;top:0}.expansions__item{min-width:0}.expansions__name{overflow-wrap:anywhere;flex:auto;min-width:0}.expansions__meta{color:var(--muted);white-space:nowrap;flex:none;font-size:.78em}.expansions__item.is-soon{opacity:.55}.expansions__item.is-soon input{cursor:not-allowed}@media (width<=700px){.home-grid{grid-template-columns:minmax(0,1fr);max-width:460px}.expansions{max-height:40dvh}}
