@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/assets/fonts/Inter-latin-wght.woff2) format("woff2")}@font-face{font-family:Space Grotesk;font-style:normal;font-weight:300 700;font-display:swap;src:url(/assets/fonts/SpaceGrotesk-latin-wght.woff2) format("woff2")}@font-face{font-family:Marcellus;font-style:normal;font-weight:400;font-display:swap;src:url(/assets/fonts/Marcellus-latin.woff2) format("woff2")}:root{font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;--font-display: "Space Grotesk", Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-mythic: "Marcellus", "Space Grotesk", Georgia, serif;color:#19120d;background:#f3f3f3;font-synthesis:none;--bg: oklch(.965 0 0);--surface: oklch(1 0 0);--surface-raised: oklch(.985 .003 60);--ink: oklch(.19 .016 60);--muted: oklch(.47 .018 60);--line: oklch(.84 .008 60);--primary: oklch(.55 .124 60);--primary-deep: oklch(.43 .115 55);--primary-pale: oklch(.9 .07 74);--accent: oklch(.37 .105 245);--accent-pale: oklch(.91 .045 245);--empty: oklch(.91 .006 60);--focus: oklch(.58 .16 245);--ease-out: cubic-bezier(.22, 1, .36, 1)}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh;background:var(--bg)}body:has(.lab-panel.is-open:not(.is-workspace)),body:has(.match-settings-dialog[open]){overflow:hidden}.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap}.bootstrap-status{min-height:100vh;display:grid;place-items:center;padding:24px;text-align:center}.bootstrap-status>div{max-width:520px}.bootstrap-status h1{margin:6px 0 12px;font-family:var(--font-display)}.bootstrap-status p{color:var(--muted)}.bootstrap-status .eyebrow{margin:0;color:var(--accent);font-size:11px;font-weight:800;letter-spacing:.1em;text-transform:uppercase}.bootstrap-status button{margin-top:10px;border:0;border-radius:8px;padding:10px 16px;background:var(--ink);color:var(--surface);font-weight:750;cursor:pointer}button,input,select{font:inherit}button{color:inherit}button:focus-visible,select:focus-visible,input:focus-visible{outline:3px solid color-mix(in oklch,var(--focus),transparent 45%);outline-offset:2px}.app-shell{min-height:100vh}.world-icon{--world-icon-size: 32px;position:relative;width:var(--world-icon-size);height:var(--world-icon-size);flex:0 0 var(--world-icon-size);display:inline-grid;place-items:center;overflow:hidden;border:2px solid color-mix(in oklch,var(--world-icon-accent),white 22%);border-radius:50%;color:color-mix(in oklch,var(--world-icon-accent),white 18%);background:color-mix(in oklch,var(--world-icon-deep),black 18%);font-size:calc(var(--world-icon-size) * .44);font-weight:800;line-height:1}.world-icon img{width:90%;height:90%;display:block;object-fit:contain}.world-icon.is-glyph{background:color-mix(in oklch,var(--world-icon-accent),var(--world-icon-deep) 78%)}.topbar{min-height:72px;display:flex;align-items:center;gap:28px;padding:12px 24px;background:var(--surface);border-bottom:1px solid var(--line)}.brand{display:flex;align-items:center;gap:10px;min-width:190px}.brand-mark{width:42px;height:42px;flex-shrink:0;object-fit:contain}.brand-wordmark{height:32px;margin:0}.brand-wordmark img{height:100%;width:auto;display:block}.brand p{margin:2px 0 0;color:var(--muted);font-size:11px}.connection{display:flex;align-items:center;gap:7px;margin-left:auto;color:var(--muted);font-size:12px}.connection>span{width:7px;height:7px;border-radius:50%;background:#90847a}.connection.is-live>span{background:#399e43}.connection.is-degraded>span{background:#d38f00;background:oklch(.7 .15 75)}.lab-toggle,.lab-close,.lab-backdrop{display:none}.restart-button,.apply-button{border:0;border-radius:8px;background:var(--ink);color:var(--surface);padding:10px 14px;font-size:13px;font-weight:700;cursor:pointer;transition:transform .18s var(--ease-out),background .18s var(--ease-out)}.restart-button:hover,.apply-button:hover{background:#2e241d;transform:translateY(-1px)}.restart-button:active,.apply-button:active{transform:translateY(0)}.play-area{display:grid;grid-template-columns:minmax(0,1fr) 290px;min-height:calc(100vh - 72px)}.play-area.is-city-match{grid-template-columns:minmax(0,1fr);min-height:100dvh}.play-area.is-active-match .game-column{height:calc(100dvh - 72px);min-height:0}.play-area.is-city-match .game-column{height:100dvh}.play-area.is-active-match .game-column{container:match-column / size}.game-column{min-width:0;display:flex;flex-direction:column}.match-shell{--match-chrome: var(--surface);--match-chrome-raised: var(--surface-raised);--match-divider: var(--line);--match-board: oklch(.945 .006 60);--match-cell: var(--empty);--match-cell-stroke: oklch(.74 .012 60);--match-status: var(--ink);--match-status-ink: white;--campaign-table-base: oklch(.2 .045 235);--campaign-table-inclusion: oklch(.48 .075 68);--campaign-table-vein: oklch(.82 .025 210);--campaign-table-focus: var(--primary);--card-control-yours: oklch(.74 .15 250);--card-control-opponent: oklch(.72 .18 38);--card-control-separator: oklch(.12 .018 235 / .9);--campaign-stage-image: none;--ability-target: var(--campaign-world-accent, oklch(.74 .06 215));--ability-target-keyline: var(--campaign-limestone-raised, oklch(.975 .018 82));--card-selection-target: color-mix(in oklch, var(--ability-target), oklch(.86 .16 78) 42%);position:relative;flex:1;min-height:0;display:flex;flex-direction:column;background:var(--match-chrome-raised)}.opponent-zone{min-height:74px;display:grid;grid-template-columns:minmax(150px,1fr) auto minmax(150px,1fr);align-items:center;gap:20px;padding:8px 76px 8px 24px;border-bottom:1px solid var(--match-divider);background:var(--match-chrome-raised)}.opponent-identity{min-width:0;display:flex;align-items:center;gap:10px}.opponent-identity>div{min-width:0;display:grid;gap:2px}.opponent-identity span{color:var(--muted);font-size:11px;font-weight:650;line-height:1.2}.opponent-identity strong{overflow:hidden;font-size:14px;line-height:1.2;text-overflow:ellipsis;white-space:nowrap}.opponent-headshot{width:48px;height:52px;flex:0 0 auto;display:block;object-fit:cover;clip-path:polygon(25% 3%,75% 3%,100% 50%,75% 97%,25% 97%,0 50%);background:var(--surface-raised);filter:drop-shadow(0 2px 2px color-mix(in oklch,var(--ink),transparent 76%))}.opponent-hand-stack{min-width:230px;display:grid;justify-items:center;gap:0}.opponent-hand-presentation{min-width:0;display:grid;justify-items:center}.opponent-hand-count{display:none}.opponent-hand-presentation.has-draw-pile{display:flex;align-items:center;gap:12px}.opponent-hand-presentation.has-draw-pile .opponent-hand{min-width:0}.opponent-hand{min-width:230px;min-height:52px;display:flex;align-items:center;justify-content:center;gap:6px}.opponent-hand-card-host{flex:0 0 auto;display:inline-flex}.opponent-hand-target{position:relative;flex:0 0 auto;display:grid;place-items:center;border:2px solid var(--card-selection-target);border-radius:7px;padding:2px;color:inherit;background:color-mix(in oklch,var(--card-selection-target),transparent 86%);box-shadow:0 0 8px color-mix(in oklch,var(--card-selection-target),transparent 30%);cursor:pointer}.opponent-hand-target:hover,.opponent-hand-target:focus-visible{outline:2px solid var(--ability-target-keyline);outline-offset:1px}.opponent-hand-target.is-selected{box-shadow:0 0 0 2px var(--ability-target-keyline),0 0 0 4px var(--card-selection-target)}.opponent-hand.has-card-selection-targets .opponent-hand-card-host{opacity:.34;filter:saturate(.45)}.opponent-hand.has-card-selection-targets>*{transition:opacity .18s var(--ease-out),filter .18s var(--ease-out)}.opponent-hand__empty{color:var(--muted);font-size:11px}.card-back{width:38px;height:52px;display:block;flex:0 0 auto;filter:drop-shadow(0 2px 2px color-mix(in oklch,var(--ink),transparent 84%))}.card-back svg{width:100%;height:100%;display:block}.card-back__stock{fill:#b9bdbb;stroke:none}.card-back__frame{stroke:#a98643;stroke-width:1}.card-back__field-core{stop-color:#16213a}.card-back__field-edge{stop-color:#04060c}.card-back.is-empty{filter:none;opacity:.7}.card-back.is-empty .card-back__frame{fill:transparent;stroke:var(--match-divider);stroke-dasharray:3 3}.deck-pile{flex:0 0 62px;display:grid;justify-items:center;align-content:center;gap:4px;min-width:0}.deck-pile__count{color:var(--muted);font-size:10px;font-weight:750;font-variant-numeric:tabular-nums;line-height:1.1;text-align:center;white-space:nowrap}.deck-pile__stack{position:relative;width:48px;height:62px;display:block}.deck-pile__stack .card-back{position:absolute;width:38px;height:52px}.deck-pile__stack .card-back+.card-back{margin-left:0}.deck-pile__stack .card-back:nth-child(1){top:0;left:0}.deck-pile__stack .card-back:nth-child(2){top:4px;left:4px}.deck-pile__stack .card-back:nth-child(3){top:8px;left:8px}.opponent-hand-presentation,.player-hand-presentation{position:relative}.drawn-card__motion{position:absolute;z-index:20;visibility:hidden;perspective:700px;transform-origin:center;pointer-events:none}.drawn-card__turn{position:absolute;inset:0;transform-style:preserve-3d}.drawn-card__face{position:absolute;inset:0;display:grid;place-items:center;backface-visibility:hidden}.drawn-card__face>svg,.drawn-card__face>.card-back,.drawn-card__face>.card-back>svg{width:100%;height:100%;overflow:visible}.drawn-card__face--back{transform:rotateY(180deg)}.opponent-hand.is-revealed{gap:3px}.opponent-hand-card{position:relative;width:46px;min-width:0;display:grid;justify-items:center;color:var(--ink)}.opponent-hand-card svg{display:block;width:46px;height:43px;overflow:visible}.opponent-hand-card>span{overflow:hidden;width:100%;margin-top:-3px;font-size:7px;font-weight:750;text-align:center;text-overflow:ellipsis;white-space:nowrap}.opponent-hand-card.is-scanned:after{content:"KNOWN";position:absolute;top:-2px;right:-4px;border:1px solid color-mix(in oklch,var(--primary),white 22%);border-radius:999px;padding:2px 4px;color:#fff;background:var(--primary-deep);box-shadow:0 2px 7px color-mix(in oklch,var(--primary-deep),transparent 68%);font-size:6px;font-weight:900;letter-spacing:.06em;line-height:1}.lab-hand-tools{display:flex;align-items:center;justify-content:center;gap:8px;min-width:0}.lab-hand-tools button{min-height:24px;border:1px solid var(--match-divider);border-radius:6px;padding:3px 7px;color:var(--ink);background:var(--match-chrome);font-size:9px;font-weight:750;cursor:pointer;transition:border-color .16s var(--ease-out),background .16s var(--ease-out)}.lab-hand-tools button:hover{border-color:var(--primary);background:var(--primary-pale)}.lab-hand-tools button[aria-pressed=true]{color:#fff;border-color:var(--primary-deep);background:var(--primary-deep)}.lab-hand-power{display:flex;align-items:baseline;gap:4px;color:var(--muted);font-size:9px;font-variant-numeric:tabular-nums;white-space:nowrap}.lab-hand-power b{color:var(--ink);font-weight:800}.lab-hand-power strong{color:var(--ink);font-size:10px}.lab-hand-power i{color:var(--line);font-style:normal}.turn-indicator{justify-self:end;min-width:128px;display:grid;justify-items:center;gap:2px;padding:6px 14px;border-radius:999px;text-align:center;color:#fff;background:var(--accent);font-size:12px;font-weight:750;line-height:1.2}.turn-indicator--ai{background:var(--primary-deep)}.turn-indicator--board{display:none}.turn-indicator__status.is-thinking{animation:turn-thinking-pulse 1.4s ease-in-out infinite}.turn-indicator__round{font-size:.72em;font-weight:650;opacity:.86;white-space:nowrap}@keyframes turn-thinking-pulse{0%,to{opacity:1}50%{opacity:.55}}.turn-indicator__score{display:flex;align-items:center;gap:5px;font-size:.85em;font-weight:650;color:color-mix(in oklch,white,transparent 12%);font-variant-numeric:tabular-nums;white-space:nowrap}.turn-indicator__score.is-major-swing{animation:score-swing-emphasis .68s var(--ease-out) both}.turn-indicator__swing{padding:2px 5px;border:1px solid color-mix(in oklch,white,transparent 42%);border-radius:999px;color:#fff;font-size:.84em;font-weight:800}@keyframes score-swing-emphasis{0%{transform:scale(.96);opacity:.65}38%{transform:scale(1.08);opacity:1}to{transform:scale(1);opacity:1}}@media(prefers-reduced-motion:reduce){.turn-indicator__score.is-major-swing{animation:none}}.turn-indicator__swatch{width:7px;height:8px;flex:0 0 auto;clip-path:polygon(50% 0,100% 25%,100% 75%,50% 100%,0 75%,0 25%);background:var(--card-control-yours);box-shadow:inset 0 0 0 1px color-mix(in oklch,white,transparent 30%)}.turn-indicator__swatch--ai{background:var(--card-control-opponent)}.opponent-status{min-width:0;display:grid;justify-items:end;gap:4px}.tiebreak-badge{padding:5px 11px;border-radius:999px;font-size:11px;font-weight:650;line-height:1.2;color:var(--ink, #1c2733);background:color-mix(in srgb,var(--accent) 14%,transparent);border:1px solid color-mix(in srgb,var(--accent) 35%,transparent)}.tiebreak-badge--ai{background:color-mix(in srgb,var(--primary-deep) 12%,transparent);border-color:color-mix(in srgb,var(--primary-deep) 35%,transparent)}.match-info{position:relative;min-width:0}.match-info>summary{display:inline-flex;align-items:center;gap:5px;min-height:28px;padding:2px 4px;border-radius:6px;color:var(--muted);font-size:10px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;cursor:pointer;list-style:none;white-space:nowrap}.match-info>summary::-webkit-details-marker{display:none}.match-info>summary:after{content:"";width:5px;height:5px;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:translateY(-2px) rotate(45deg);transition:transform .14s var(--ease-out)}.match-info[open]>summary:after{transform:translateY(1px) rotate(-135deg)}.match-info>summary:hover{color:var(--ink)}.match-info>summary:focus-visible{outline:2px solid var(--focus);outline-offset:2px}.match-info__summary-hint{color:inherit;font-weight:650;letter-spacing:.02em;text-transform:none;opacity:.8}.match-info__panel{position:absolute;z-index:20;top:calc(100% + 6px);right:0;width:min(280px,calc(100vw - 24px));max-height:min(60vh,420px);overflow-y:auto;display:grid;gap:10px;padding:12px;border-radius:10px;color:var(--ink);background:var(--match-chrome-raised);box-shadow:0 10px 28px color-mix(in oklch,var(--ink),transparent 70%);text-align:left}.opponent-status .match-info__panel>:is(.tiebreak-badge,.environment-badge){align-self:start;justify-self:stretch;overflow:visible;max-width:none;padding:0;border:0;border-radius:0;background:none;color:inherit;font-size:11px;line-height:1.35;text-align:left;white-space:normal}.opponent-status .match-info__panel>.environment-badge:before{content:"Field · ";color:var(--muted)}.match-info__panel .lab-hand-tools{justify-content:flex-start;flex-wrap:wrap}.match-info__panel .lab-hand-power,.match-info__panel .lab-hand-power :is(b,strong){color:inherit}.match-info__panel .lab-hand-power{opacity:.85}.match-info__history{display:grid;gap:4px;min-width:0}.match-info__history h3{margin:0;color:var(--muted);font-size:9px;font-weight:800;letter-spacing:.1em;text-transform:uppercase}.match-info__history ol{display:grid;gap:3px;margin:0;padding:0;list-style:none}.match-info__history-entry{padding-left:8px;border-left:2px solid var(--card-control-yours);font-size:10.5px;line-height:1.35}.match-info__history-entry.is-ai{border-left-color:var(--card-control-opponent)}.match-settings-trigger{position:absolute;top:17px;right:18px;z-index:5;width:40px;height:40px;display:grid;place-items:center;border:1px solid var(--line);border-radius:8px;color:var(--ink);background:var(--surface);box-shadow:0 2px 5px color-mix(in oklch,var(--ink),transparent 88%);cursor:pointer;transition:border-color .18s var(--ease-out),background .18s var(--ease-out),transform .18s var(--ease-out)}.match-settings-trigger:hover{border-color:var(--primary);background:var(--surface-raised);transform:translateY(-1px)}.match-settings-trigger:active{transform:translateY(0)}.match-settings-trigger svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.match-settings-dialog{width:100%;max-width:none;height:100%;max-height:none;margin:0;border:0;padding:12px;color:var(--ink);background:transparent}.match-settings-dialog[open]{display:grid;place-items:start end}.match-settings-dialog::backdrop{background:color-mix(in oklch,var(--ink),transparent 42%)}.match-settings-panel{width:min(344px,calc(100vw - 24px));border:1px solid var(--line);border-radius:12px;overflow:hidden;background:var(--surface);box-shadow:0 4px 8px color-mix(in oklch,var(--ink),transparent 74%)}.match-settings-panel>header{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:18px;border-bottom:1px solid var(--line)}.match-settings-panel>header div{min-width:0}.match-settings-panel>header span{display:block;overflow:hidden;color:var(--muted);font-size:11px;font-weight:700;text-overflow:ellipsis;white-space:nowrap}.match-settings-panel h2{margin:3px 0 0;font-size:20px;letter-spacing:-.025em}.match-settings-panel>header button{flex:0 0 auto;width:40px;height:40px;border:0;border-radius:8px;color:var(--muted);background:var(--surface-raised);font-size:24px;line-height:1;cursor:pointer;transition:color .18s var(--ease-out),background .18s var(--ease-out)}.match-settings-panel>header button:hover{color:var(--ink);background:var(--line)}.match-settings-actions{display:grid;padding:8px}.match-settings-actions button{display:grid;gap:3px;min-height:64px;border:0;border-radius:8px;padding:11px 12px;text-align:left;background:transparent;cursor:pointer;transition:background .18s var(--ease-out)}.match-settings-actions button:hover{background:var(--surface-raised)}.match-settings-actions button:disabled{color:var(--muted);cursor:default;opacity:.6}.match-settings-actions button:disabled:hover{background:transparent}.match-settings-actions button+button{border-top:1px solid var(--line);border-radius:0}.match-settings-actions strong{font-size:13px}.match-settings-actions span{color:var(--muted);font-size:11px;line-height:1.4}.match-board-region{position:relative;flex:1;min-height:380px;display:flex;flex-direction:column;align-items:center}.fieldside-stage{width:100%;flex:1;min-height:0;display:flex;align-items:stretch}.fieldside-board-column{position:relative;flex:1;min-width:0;min-height:0;display:flex;flex-direction:column;align-items:center}.fieldside-board-column>.board-wrap{flex:1;min-width:0}.tactic-resolution-status{position:absolute;z-index:4;top:34px;left:50%;max-width:calc(100% - 24px);display:flex;align-items:center;gap:5px;padding:6px 10px;border:1px solid color-mix(in oklch,oklch(.78 .17 300),white 20%);border-radius:12px;color:#fff;background:color-mix(in oklch,var(--ink),oklch(.58 .17 300) 30%);font-size:9px;white-space:nowrap;transform:translate(-50%);animation:tactic-status-arrive .18s var(--ease-out) both;pointer-events:none}.tactic-resolution-status--ai{border-color:#fea668;background:color-mix(in oklch,var(--ink),oklch(.58 .14 45) 26%)}.tactic-resolution-status strong{overflow:hidden;max-width:18ch;text-overflow:ellipsis}.tactic-resolution-status span{color:color-mix(in oklch,white,transparent 18%)}.tactic-resolution-status i{color:color-mix(in oklch,white,transparent 44%);font-style:normal}.tactic-resolution-status b{color:#b3f6ab}@keyframes tactic-status-arrive{0%{opacity:0}to{opacity:1}}@media(max-width:520px){.tactic-resolution-status{gap:3px;padding-inline:7px;font-size:8px}.tactic-resolution-status strong{max-width:10ch}}.board-compass{color:var(--match-compass-ink, var(--muted));opacity:.72;pointer-events:none}.board-compass__card{fill:none;stroke:currentColor;stroke-opacity:.55;stroke-width:1;vector-effect:non-scaling-stroke}.board-compass__label{fill:currentColor;font-family:var(--font-display);font-size:17px;font-weight:750;text-anchor:middle;dominant-baseline:central}.board-edge-values{--card-frame-metal: oklch(from var(--card-world-accent) .68 calc(c*.6) h);pointer-events:none;animation:board-edge-values-arrive .14s var(--ease-out) both;filter:drop-shadow(0 2px 4px oklch(0 0 0 / .6))}.board-edge-values .edge-plaque__well{fill:color-mix(in oklch,var(--card-world-accent),black 78%);stroke:color-mix(in oklch,var(--card-frame-metal),white 10%);stroke-width:1.2}.board-edge-values .edge-plaque__hit-target{pointer-events:none}.board-edge-values .edge-plaque.is-tactic-modified .edge-plaque__well{stroke:color-mix(in oklch,var(--tactic-edge-accent),white 22%);stroke-width:2.2}.board:has(.board-edge-values) .board-cell .edge-modifier-tooltip{display:none}.board:has(.board-cell .edge-plaque.is-modified[data-edge-index="0"]:is(:hover,:focus-within)) .board-edge-values__edge:not(.board-edge-values__edge--neighbor) .edge-plaque[data-edge-index="0"] .edge-modifier-tooltip,.board:has(.board-cell .edge-plaque.is-modified[data-edge-index="1"]:is(:hover,:focus-within)) .board-edge-values__edge:not(.board-edge-values__edge--neighbor) .edge-plaque[data-edge-index="1"] .edge-modifier-tooltip,.board:has(.board-cell .edge-plaque.is-modified[data-edge-index="2"]:is(:hover,:focus-within)) .board-edge-values__edge:not(.board-edge-values__edge--neighbor) .edge-plaque[data-edge-index="2"] .edge-modifier-tooltip,.board:has(.board-cell .edge-plaque.is-modified[data-edge-index="3"]:is(:hover,:focus-within)) .board-edge-values__edge:not(.board-edge-values__edge--neighbor) .edge-plaque[data-edge-index="3"] .edge-modifier-tooltip,.board:has(.board-cell .edge-plaque.is-modified[data-edge-index="4"]:is(:hover,:focus-within)) .board-edge-values__edge:not(.board-edge-values__edge--neighbor) .edge-plaque[data-edge-index="4"] .edge-modifier-tooltip,.board:has(.board-cell .edge-plaque.is-modified[data-edge-index="5"]:is(:hover,:focus-within)) .board-edge-values__edge:not(.board-edge-values__edge--neighbor) .edge-plaque[data-edge-index="5"] .edge-modifier-tooltip{opacity:1;visibility:visible}.board-edge-values__edge--neighbor .edge-plaque__well{fill:#020f19;stroke-width:1.6}.board-edge-values__edge--neighbor.is-yours .edge-plaque__well{stroke:var(--card-control-yours)}.board-edge-values__edge--neighbor.is-opponent .edge-plaque__well{stroke:var(--card-control-opponent)}.board-edge-values__edge--neighbor.is-yours .edge-number{--edge-number-fill: color-mix(in oklch, var(--card-control-yours), white 35%)}.board-edge-values__edge--neighbor.is-opponent .edge-number{--edge-number-fill: color-mix(in oklch, var(--card-control-opponent), white 30%)}@keyframes board-edge-values-arrive{0%{opacity:0}to{opacity:1}}@media(prefers-reduced-motion:reduce){.board-edge-values{animation:none}}.fieldside-inspector{display:none}.fieldside-inspector__environment-art{min-height:0;display:grid;place-items:center}.fieldside-inspector__environment-art img{display:block;width:100%;max-height:34vh;object-fit:contain}.fieldside-inspector__environment-art>span{color:var(--campaign-table-focus);font-size:64px}.board-cell.is-inspectable:focus-visible>.cell-base{stroke:var(--focus);stroke-width:3}@media(min-width:960px)and (hover:hover)and (pointer:fine){.fieldside-stage{display:grid;grid-template-columns:minmax(280px,34%) minmax(0,1fr);gap:12px;padding:12px 20px 0}.fieldside-board-column>.board-wrap{padding-inline:0}.fieldside-inspector{position:relative;isolation:isolate;min-height:0;display:grid;grid-template-rows:auto minmax(0,1fr) auto;overflow:hidden;border:1px solid color-mix(in oklch,var(--campaign-table-inclusion),transparent 28%);border-radius:12px;padding:12px;color:#dbf0f3;background:radial-gradient(circle at 82% 18%,color-mix(in oklch,var(--campaign-table-inclusion),transparent 48%) 0 4%,transparent 22%),radial-gradient(circle at 12% 84%,color-mix(in oklch,var(--campaign-table-vein),transparent 78%) 0 3%,transparent 25%),var(--campaign-table-base);box-shadow:inset 0 0 0 5px color-mix(in oklch,black,transparent 82%)}.fieldside-inspector:before{content:"";position:absolute;z-index:-1;inset:0;background-image:var(--campaign-stage-image);background-position:center;background-size:cover;opacity:.16;filter:saturate(.72) contrast(1.08)}.fieldside-inspector header{display:grid;justify-items:center;gap:2px;padding:2px 0 6px}.fieldside-inspector header span{color:var(--campaign-table-focus);font-size:10px;font-weight:800}.fieldside-inspector header strong{overflow:hidden;max-width:100%;font-size:17px;text-overflow:ellipsis;white-space:nowrap}.fieldside-inspector__card{min-height:0;display:grid;place-items:center}.fieldside-inspector__card svg{display:block;width:100%;height:100%;min-height:0;max-height:46vh;overflow:visible}.fieldside-inspector__details{display:grid;justify-items:center;gap:5px;min-width:0;padding-top:6px;text-align:center}.fieldside-inspector__details>span{color:color-mix(in oklch,var(--campaign-table-vein),white 20%);font-size:10px;font-weight:750;text-transform:capitalize}.fieldside-inspector__details p{display:grid;gap:2px;max-width:34ch;margin:0}.fieldside-inspector__details strong{color:#fff;font-size:12px}.fieldside-inspector__details p span{color:#bfd6da;font-size:12px;line-height:1.4;text-wrap:pretty}.fieldside-inspector__details p.fieldside-inspector__card-environment{display:flex;align-items:baseline;gap:6px;max-width:100%;color:#dbf0f3}.fieldside-inspector__details p.fieldside-inspector__card-environment strong{color:var(--campaign-table-focus)}.fieldside-inspector__details p.fieldside-inspector__card-environment span{color:#dbf0f3;font-weight:750}.fieldside-inspector__details p.fieldside-inspector__ability{gap:3px;max-width:36ch;border:1px solid color-mix(in oklch,var(--campaign-table-focus),transparent 55%);border-radius:10px;padding:8px 12px;background:color-mix(in oklch,var(--campaign-table-base),black 35%)}.fieldside-inspector__details p.fieldside-inspector__ability strong{color:var(--campaign-table-focus);font-size:14px}.fieldside-inspector__details p.fieldside-inspector__ability span{color:#d6e9ec;font-size:13px;line-height:1.45}.fieldside-inspector .card-how-it-works__trigger{border-color:color-mix(in oklch,var(--campaign-table-focus),transparent 56%);color:#fff;background:color-mix(in oklch,var(--campaign-table-base),white 7%)}.fieldside-inspector .card-how-it-works__trigger:hover{border-color:var(--campaign-table-focus);background:color-mix(in oklch,var(--campaign-table-base),white 12%)}.fieldside-inspector .card-how-it-works__panel{color:#fff;background:color-mix(in oklch,var(--campaign-table-base),white 9%)}.fieldside-inspector .card-how-it-works__panel strong{color:var(--campaign-table-focus)}.fieldside-inspector .card-how-it-works__panel p{color:#d6e9ec}.fieldside-inspector__log{margin:0;padding:10px 4px 2px;border-top:1px solid color-mix(in oklch,var(--campaign-table-inclusion),transparent 40%);list-style:none;display:grid;gap:5px}.fieldside-inspector__log li{color:color-mix(in oklch,oklch(.86 .025 210),transparent 32%);font-size:10px;line-height:1.4;text-wrap:pretty}.fieldside-inspector__log li:first-child{color:#d3eaee;font-weight:650}.fieldside-inspector__empty{align-self:center;display:grid;justify-items:center;gap:10px;padding:20px;text-align:center}.fieldside-inspector__empty>span{color:var(--campaign-table-focus);font-size:38px;line-height:1}.fieldside-inspector__empty p{max-width:22ch;margin:0;color:#bfd6da;font-size:11px;line-height:1.5;text-wrap:pretty}.fieldside-inspector.has-card{border-color:color-mix(in oklch,var(--campaign-table-focus),transparent 32%)}.fieldside-inspector.is-human-card{box-shadow:inset 0 0 0 1.5px color-mix(in oklch,var(--card-control-yours),transparent 30%)}.fieldside-inspector.is-ai-card{box-shadow:inset 0 0 0 1.5px color-mix(in oklch,var(--card-control-opponent),transparent 30%)}.fieldside-inspector.is-human-card header span{color:color-mix(in oklch,var(--card-control-yours),white 30%)}.fieldside-inspector.is-ai-card header span{color:color-mix(in oklch,var(--card-control-opponent),white 24%)}}@media(min-width:1440px)and (hover:hover)and (pointer:fine){.fieldside-stage{grid-template-columns:minmax(280px,440px) minmax(0,1fr)}}.board-wrap{width:100%;flex:1;min-height:360px;max-height:57vh;padding:10px 20px 0;display:grid;place-items:center;overflow:hidden;background:var(--match-board)}.board-wrap{position:relative}.board-effects{position:absolute;inset:0;pointer-events:none;transform-origin:0 0}.board-momentum-history.is-fading{opacity:0;transition:opacity .4s ease}.board-wrap.has-board-effects .capture-cue--committed :is(.capture-cue__underlay,.capture-cue__line,.capture-cue__arrow,.capture-cue__order,.capture-impact,.capture-momentum,.capture-counter){visibility:hidden}.board{display:block;width:min(100%,720px);height:100%;min-height:350px}.board{overflow:visible}.match-board-region:has(.ability-guide) .board-wrap{min-height:290px}.match-board-region:has(.ability-guide) .board{min-height:280px}.board-cell{cursor:default}.board-cell.is-starting-area .cell-base{stroke-dasharray:5 5}.board-cell.is-starting-area--human .cell-base{fill:color-mix(in oklch,var(--primary-pale),var(--match-cell) 80%)}.board-cell.is-starting-area--ai .cell-base{fill:color-mix(in oklch,var(--primary-deep),var(--match-cell) 90%)}.cell-base{fill:var(--match-cell);stroke:var(--match-cell-stroke);stroke-width:1.5;transition:fill .16s var(--ease-out),stroke .16s var(--ease-out)}.board-tile-surface__start,.board-tile-surface__start-label,.board-tile-surface__environment-fallback{pointer-events:none}.board-tile-surface__environment-fallback rect{fill:color-mix(in oklch,var(--ink),transparent 12%)}.board-tile-surface__environment-fallback text{fill:#fff;font-size:8px;font-weight:850}.board-tile-surface__start{fill:none;stroke-width:3;vector-effect:non-scaling-stroke}.board-tile-surface__start--human{stroke:color-mix(in oklch,var(--card-control-yours),transparent 35%)}.board-tile-surface__start--ai{stroke:color-mix(in oklch,var(--card-control-opponent),transparent 35%);stroke-dasharray:5 3}.board-tile-surface__start-label{fill:#fff;stroke:color-mix(in oklch,var(--ink),transparent 15%);stroke-width:2.5px;paint-order:stroke fill;font-size:7px;font-weight:900;letter-spacing:.05em}.board-play-surface,.board-socket,.board-link-bridges{display:none;pointer-events:none}.placement-dot{fill:#9e9791;transition:r .16s var(--ease-out)}.board-cell.is-available{cursor:pointer}.board-cell.is-available .cell-base{stroke:var(--primary);stroke-width:2}.board-cell.is-available:hover .cell-base{fill:var(--primary-pale)}.board-cell.is-available:hover .placement-dot{fill:var(--primary-deep)}.board-cell.is-available:focus{outline:none}.board-cell.is-available:focus-visible .cell-base{fill:var(--primary-pale);stroke:var(--focus);stroke-width:3}.board-cell.is-available:focus-visible .placement-dot{fill:var(--focus)}.board-cell.is-available .board-tile-surface__start{visibility:hidden}.board-cell.is-inspectable:focus{outline:none}.board-cell.is-inspectable:focus-visible .card-face .card-inset{stroke:var(--focus);stroke-width:3}.tactic-resolution-cue,.board-rule-cues{pointer-events:none}.tactic-resolution-cue{--tactic-cue: oklch(.78 .17 300)}.tactic-resolution-cue--ai{--tactic-cue: oklch(.77 .16 42)}.tactic-resolution-cue__impact{fill:color-mix(in oklch,var(--tactic-cue),transparent 84%);stroke:color-mix(in oklch,var(--tactic-cue),white 28%);stroke-width:2.4;transform-box:fill-box;transform-origin:center;animation:tactic-impact-settle .62s var(--ease-out) calc(var(--tactic-target-delay) + .18s) both}.tactic-resolution-cue__target--source .tactic-resolution-cue__impact{stroke-dasharray:3 3}.tactic-resolution-cue__impact--edge{fill:none}.tactic-resolution-cue__value{fill:#fff;font-size:8px;font-weight:900;paint-order:stroke;stroke:color-mix(in oklch,var(--ink),transparent 8%);stroke-width:2px}.structure-build-cue circle{fill:none;stroke:#6cbd7f;stroke-width:3;stroke-dasharray:4 3;animation:structure-build-settle .68s var(--ease-out) both}.structure-build-cue text,.fortified-block-cue text{fill:#fff;font-size:7px;font-weight:850;paint-order:stroke;stroke:color-mix(in oklch,var(--ink),transparent 6%);stroke-width:2.4px}.fortified-block-cue>line{stroke:#fcd176;stroke-width:4;stroke-dasharray:7 5;animation:fortified-impact .3s var(--ease-out) both}.fortified-block-cue path{fill:color-mix(in oklch,oklch(.78 .12 85),var(--ink) 35%);stroke:#ffe5a8;stroke:oklch(.93 .1 88);stroke-width:2;animation:fortified-shield-hold .72s var(--ease-out) both}@keyframes tactic-impact-settle{0%{opacity:0;transform:scale(.55)}35%{opacity:1;transform:scale(1.18)}to{opacity:1;transform:scale(1)}}@keyframes structure-build-settle{0%{opacity:0;transform:scale(.65)}42%{opacity:1;transform:scale(1.12)}to{opacity:1;transform:scale(1)}}@keyframes fortified-impact{0%{opacity:0;stroke-dashoffset:18}to{opacity:1;stroke-dashoffset:0}}@keyframes fortified-shield-hold{0%{opacity:0;transform:scale(.7)}28%,78%{opacity:1;transform:scale(1)}to{opacity:.72;transform:scale(1)}}.board-cell.is-structure-network-deployment .cell-base{stroke:#5bbd74;stroke-width:4;stroke-dasharray:2 4}.board-cell.is-structure-network-deployment .placement-dot{fill:#2a904b;r:5px}.board-cell.is-ability-trigger .cell-base{fill:color-mix(in oklch,var(--match-cell),oklch(.82 .11 78) 32%);stroke:#9b6400;stroke:oklch(.55 .13 72);stroke-width:3}.board-cell.is-ability-trigger .placement-dot{fill:#815200;fill:oklch(.48 .12 72);r:5px}.board-cell.is-ability-trigger:hover .cell-base,.board-cell.is-ability-trigger:focus-visible .cell-base{fill:color-mix(in oklch,var(--match-cell),oklch(.82 .11 78) 48%)}.board.has-card-selection-targets .board-cell:not(.is-card-selection-target) .card-face{opacity:.34;filter:saturate(.45)}.board.has-card-selection-targets .board-cell .card-face{transition:opacity .18s var(--ease-out),filter .18s var(--ease-out)}.board-cell.is-ability-target,.board-cell.is-tactic-target{cursor:pointer}.board-cell.is-card-selection-target .card-selection-outline{fill:color-mix(in oklch,var(--card-selection-target),transparent 86%);stroke:var(--card-selection-target);stroke-width:4.5;stroke-dasharray:none;filter:drop-shadow(0 0 5px color-mix(in oklch,var(--card-selection-target),transparent 28%))}.board-cell.is-card-selection-target:hover .card-selection-outline,.board-cell.is-card-selection-target:focus-visible .card-selection-outline{fill:color-mix(in oklch,var(--card-selection-target),transparent 74%);stroke:color-mix(in oklch,var(--card-selection-target),white 28%)}.board-cell.is-ability-target:focus{outline:none}.ability-target-outline{fill:none;stroke:var(--ability-target);stroke-width:2.5;stroke-dasharray:4 3;vector-effect:non-scaling-stroke;pointer-events:none}.ability-target-outline--keyline{stroke:var(--ability-target-keyline);stroke-width:6;stroke-dasharray:none}.board-cell.is-ability-target-selected .ability-target-outline:not(.ability-target-outline--keyline){stroke-width:3;stroke-dasharray:none}.board-cell.is-ability-target:hover .ability-target-outline:not(.ability-target-outline--keyline),.board-cell.is-ability-target:focus-visible .ability-target-outline:not(.ability-target-outline--keyline){stroke-width:3.5;stroke-dasharray:none}.card-preview{opacity:0;pointer-events:none;transition:opacity .15s var(--ease-out)}.board-cell.is-available:hover .card-preview{opacity:.32}@media(hover:hover)and (pointer:fine){.board-cell.is-inspectable{cursor:zoom-in}.board-cell.is-inspectable:hover .card-face .card-inset{stroke:var(--campaign-table-focus);stroke-width:2.5}}@media(prefers-reduced-motion:reduce){.cell-base{transition:none}.tactic-resolution-cue__impact,.structure-build-cue circle,.fortified-block-cue>line,.fortified-block-cue path{animation:none;opacity:1;stroke-dashoffset:0;transform:none}.tactic-resolution-status{animation:none;opacity:1}}.card-fill{stroke-width:0}.card-control-halo{pointer-events:none;stroke:none;opacity:.92}.card-control-halo--yours{fill:color-mix(in oklch,var(--card-control-yours),transparent 38%);filter:drop-shadow(0 0 4px var(--card-control-yours))}.card-control-halo--opponent{fill:color-mix(in oklch,var(--card-control-opponent),transparent 38%);filter:drop-shadow(0 0 4px var(--card-control-opponent))}.card-control-outline{fill:none;filter:drop-shadow(0 0 1px var(--card-control-separator));pointer-events:none;stroke-linecap:round;stroke-linejoin:round;stroke-width:2;vector-effect:non-scaling-stroke}.card-control-outline--yours{stroke:var(--card-control-yours)}.card-control-outline--opponent{stroke:var(--card-control-opponent);stroke-dasharray:5 3}.card-artwork,.card-artwork-tint{pointer-events:none}.card-inset{fill:none;stroke:color-mix(in oklch,var(--card-world-deep),black 55%);stroke-width:1.2}.card-face{--card-frame-metal: oklch(from var(--card-world-accent) .36 calc(c*.32) h);--card-frame-steel: oklch(from var(--card-world-accent) .7 calc(c*.12) h);--card-panel-stock: color-mix(in oklch, var(--card-world-deep), transparent 4%)}.card-frame-material{pointer-events:none;opacity:.55}.card-frame-material__light{fill:#ffffff29;stroke:#ffffff29}.card-frame-material__dark{fill:#00000038;stroke:#00000038}.card-frame-material--grain{opacity:.7}.card-frame-material--strata{opacity:.65}.card-frame-lip{fill:none;pointer-events:none;stroke:color-mix(in oklch,var(--card-frame-steel),transparent 70%);stroke-linejoin:round}.card-frame-bevel{fill:none;pointer-events:none;stroke:#fff3;stroke-linejoin:round}.card-family-corner-marks{pointer-events:none}.card-family-corner-marks__ring{fill:color-mix(in oklch,var(--card-frame-metal),black 45%);stroke:color-mix(in oklch,var(--card-frame-steel),transparent 35%)}.card-family-corner-marks__seed{fill:color-mix(in oklch,var(--card-frame-steel),white 10%);opacity:.75}.card-family-corner-marks__engraving{fill:none;stroke:color-mix(in oklch,var(--card-frame-steel),white 10%);opacity:.75}.card-family-corner-marks--tactic polyline{fill:none;stroke:var(--card-drafting-ink, var(--card-world-accent));stroke-linecap:square;opacity:.42}.card-thickness{pointer-events:none}.board-cell .card-thickness{display:none}.card-thickness__stock{fill:#b9bdbb;stroke:none}.card-frame-band{pointer-events:none}.card-frame-edge{fill:none;stroke:none;pointer-events:none}.card-frame-metal__stop--light{stop-color:color-mix(in oklch,var(--card-frame-metal),white 10%)}.card-frame-metal__stop--mid{stop-color:var(--card-frame-metal)}.card-frame-metal__stop--dark{stop-color:color-mix(in oklch,var(--card-frame-metal),black 12%)}.card-frame-well__stop--deep{stop-color:color-mix(in oklch,color-mix(in oklch,var(--card-world-deep),var(--card-frame-metal) 30%),black 62%)}.card-frame-well__stop--floor{stop-color:color-mix(in oklch,color-mix(in oklch,var(--card-world-deep),var(--card-frame-metal) 40%),black 22%)}.edge-plaque>:not(.edge-plaque__hit-target){pointer-events:none}.card-power-plaque__plate,.card-support-plaque__plate{stroke:color-mix(in oklch,var(--card-frame-metal),black 58%);stroke-width:.4}.edge-plaque__well{stroke:color-mix(in oklch,var(--ink),transparent 20%);stroke-width:.45}.edge-plaque__keyline{fill:none;stroke:var(--card-frame-steel);stroke-width:.5;opacity:.3}.edge-plaque__shade{fill:none;stroke:color-mix(in oklch,var(--ink),transparent 18%);stroke-width:1.05;stroke-linejoin:round}.card-face--human .card-fill{fill:var(--accent)}.card-face--ai .card-fill{fill:var(--primary-deep)}.card-fill.card-fill--owner-human{fill:var(--accent)}.card-fill.card-fill--owner-ai{fill:var(--primary-deep)}.card-art-shade{fill:color-mix(in oklch,var(--ink),transparent 93%);pointer-events:none}.card-artwork-field{pointer-events:none}.card-artwork-field__stop--sky{stop-color:color-mix(in oklch,var(--card-world-deep),var(--card-world-accent) 22%)}.card-artwork-field__stop--ground{stop-color:color-mix(in oklch,var(--card-world-deep),black 18%)}.card-artwork-placeholder{pointer-events:none}.card-artwork-placeholder circle{fill:color-mix(in oklch,var(--card-world-deep),transparent 14%);stroke:color-mix(in oklch,var(--card-world-accent),transparent 28%);stroke-width:1}.card-artwork-placeholder text{fill:color-mix(in oklch,var(--card-world-accent),white 10%);font-weight:800}.card-face--structure.is-unpowered .card-ability-panel__text{opacity:.62}.card-face--structure.is-unpowered{--card-panel-stock: color-mix(in oklch, var(--card-world-deep), var(--muted) 28%)}.edge-plaque__hit-target{fill:transparent;stroke:none;pointer-events:all}.edge-plaque.is-selectable{cursor:pointer}.edge-plaque.is-selectable .edge-plaque__well{fill:color-mix(in oklch,var(--ability-target),transparent 58%);stroke:var(--ability-target-keyline);stroke-width:1.35}.edge-plaque.is-selectable .edge-plaque__keyline{stroke:var(--ability-target);stroke-width:1.2;opacity:1}.edge-plaque.is-selectable:hover .edge-plaque__well,.edge-plaque.is-selectable:focus-visible .edge-plaque__well,.edge-plaque.is-selectable.is-selected .edge-plaque__well{fill:color-mix(in oklch,var(--ability-target),transparent 38%);stroke-width:2}.edge-plaque.is-selectable:focus{outline:none}.capture-motion{--capture-delay: 0ms;--capture-duration: .32s;transform-box:fill-box;transform-origin:center;animation:card-capture-flip var(--capture-duration) var(--ease-out) both;animation-delay:var(--capture-delay);will-change:transform,filter}.capture-motion--combo{--capture-duration: .38s;animation-name:card-combo-flip}.capture-motion--counter{animation-name:card-capture-flip}.card-fill--previous,.capture-owner-before{animation:capture-owner-before var(--capture-duration) step-end both;animation-delay:var(--capture-delay);pointer-events:none}.capture-owner-after{opacity:0;animation:capture-owner-after var(--capture-duration) step-end both;animation-delay:var(--capture-delay)}@keyframes card-capture-flip{0%{transform:scaleX(1);filter:brightness(1)}46%{transform:scaleX(.08);filter:brightness(1.35)}to{transform:scaleX(1);filter:brightness(1)}}@keyframes card-combo-flip{0%{transform:scaleX(1) scale(1);filter:brightness(1)}42%{transform:scaleX(.06) scale(1.04);filter:brightness(1.5)}to{transform:scaleX(1) scale(1);filter:brightness(1)}}@keyframes capture-owner-before{0%,49%{opacity:1}50%,to{opacity:0}}@keyframes capture-owner-after{0%,49%{opacity:0}50%,to{opacity:1}}.edge-number{fill:var(--edge-number-fill, white);font-size:var(--card-edge-font-size, 13px);font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-weight:var(--edge-number-weight, 800);letter-spacing:var(--edge-number-spacing, 0);paint-order:stroke;stroke:color-mix(in oklch,var(--ink),transparent 65%);stroke-width:var(--edge-number-stroke-width, var(--card-edge-stroke-width, 1.3px));pointer-events:none;font-variant-numeric:tabular-nums}.edge-number-sprite{pointer-events:none}.edge-number-sprite--plaque{width:calc(var(--card-edge-font-size, 13px) * 1.04);height:calc(var(--card-edge-font-size, 13px) * 1.04);x:calc(var(--card-edge-font-size, 13px) * -.52);y:calc(var(--card-edge-font-size, 13px) * -.52)}.edge-number-sprite--plaque.is-multi-digit{width:calc(var(--card-edge-font-size, 13px) * .72);height:calc(var(--card-edge-font-size, 13px) * .72);y:calc(var(--card-edge-font-size, 13px) * -.36)}.edge-number-sprite--plaque.is-multi-digit.is-digit-1{x:calc(var(--card-edge-font-size, 13px) * -.64)}.edge-number-sprite--plaque.is-multi-digit.is-digit-2{x:calc(var(--card-edge-font-size, 13px) * -.08)}.edge-number--plaque{--edge-number-fill: color-mix(in oklch, white, var(--card-frame-metal) 15%);font-size:calc(var(--card-edge-font-size, 13px) * .86);stroke-width:calc(var(--card-edge-stroke-width, 1.3px) * .45)}.edge-number--cryogenic{--edge-number-weight: 900;--edge-number-spacing: -.035em;--edge-number-fill: color-mix(in oklch, white, var(--card-world-accent) 8%)}.edge-number--igneous{--edge-number-weight: 850;--edge-number-stroke-width: calc(var(--card-edge-stroke-width) + .18px)}.edge-number--glacial{--edge-number-weight: 760;--edge-number-spacing: .025em;--edge-number-fill: color-mix(in oklch, white, var(--card-world-accent) 12%)}.edge-number--pelagic{--edge-number-weight: 810;--edge-number-spacing: .01em}.edge-number--alchemical{--edge-number-weight: 900;--edge-number-stroke-width: calc(var(--card-edge-stroke-width) + .12px)}.edge-number--abyssal{--edge-number-weight: 740;--edge-number-spacing: .035em}.edge-number--alloy{--edge-number-weight: 880;--edge-number-spacing: -.02em;--edge-number-stroke-width: calc(var(--card-edge-stroke-width) + .08px)}.edge-number--prismatic{--edge-number-weight: 720;--edge-number-spacing: .04em;--edge-number-fill: color-mix(in oklch, white, var(--card-world-accent) 10%)}.edge-number--saline{--edge-number-weight: 830;--edge-number-spacing: .015em}.edge-number--aerial{--edge-number-weight: 700;--edge-number-spacing: .05em;--edge-number-fill: color-mix(in oklch, white, var(--card-world-accent) 8%)}.edge-number--electric{--edge-number-weight: 900;--edge-number-spacing: -.025em;--edge-number-stroke-width: calc(var(--card-edge-stroke-width) + .2px)}.edge-number--polar{--edge-number-weight: 820;--edge-number-spacing: .02em}.edge-number--atomic{--edge-number-weight: 880;--edge-number-stroke-width: calc(var(--card-edge-stroke-width) + .14px)}.edge-number--temporal{--edge-number-weight: 750;--edge-number-spacing: .04em}.edge-number--synthetic{--edge-number-weight: 860;--edge-number-spacing: -.015em}.edge-number--encoded{--edge-number-weight: 790;--edge-number-spacing: .045em}.edge-number--fieldlight{--edge-number-weight: 850;--edge-number-spacing: .015em;--edge-number-fill: color-mix(in oklch, white, var(--card-world-accent) 14%)}.edge-number--neutral{--edge-number-weight: 780;--edge-number-spacing: .025em}.edge-number.is-capture-source,.edge-number-sprites.is-capture-source{animation:edge-cause-number .62s var(--ease-out) both;transform-box:fill-box;transform-origin:center}.edge-number.is-capture-defender,.edge-number-sprites.is-capture-defender{animation-name:edge-defender-number}.edge-plaque.is-modified{filter:drop-shadow(0 0 2px color-mix(in oklch,var(--card-world-accent),white 18%))}.edge-modifier-surface{fill:color-mix(in oklch,var(--card-world-accent),var(--card-world-deep) 12%);stroke:color-mix(in oklch,var(--card-world-accent),white 38%);stroke-width:1.1;vector-effect:non-scaling-stroke}.edge-plaque.is-tactic-modified{--tactic-edge-accent: oklch(.78 .17 300);filter:drop-shadow(0 0 2.5px color-mix(in oklch,var(--tactic-edge-accent),transparent 20%))}.edge-plaque.is-tactic-modified .edge-modifier-surface{fill:color-mix(in oklch,var(--tactic-edge-accent),var(--card-world-deep) 55%);stroke:color-mix(in oklch,var(--tactic-edge-accent),white 22%);stroke-width:2}.edge-plaque.is-tactic-modified .edge-modifier-tooltip__surface{stroke:color-mix(in oklch,var(--tactic-edge-accent),white 22%)}.edge-plaque.is-tactic-modified .edge-modifier-tooltip__result{fill:color-mix(in oklch,var(--tactic-edge-accent),white 40%)}.edge-conditional-marker__shape{fill:color-mix(in oklch,var(--card-world-deep),black 28%);stroke:color-mix(in oklch,var(--card-world-accent),white 40%);stroke-width:1.4;stroke-linejoin:round;vector-effect:non-scaling-stroke}.edge-conditional-marker__amount{fill:color-mix(in oklch,white,var(--card-world-accent) 10%);font-weight:850;pointer-events:none}.edge-number.is-modified{fill:color-mix(in oklch,var(--card-world-deep),black 22%);stroke:color-mix(in oklch,var(--card-world-accent),white 55%);stroke-width:calc(var(--card-edge-stroke-width, 1.3px) * .4)}.edge-modifier-tooltip{opacity:0;pointer-events:none;visibility:hidden;transition:opacity .14s var(--ease-out)}.edge-plaque:hover .edge-modifier-tooltip,.edge-plaque:focus-within .edge-modifier-tooltip{opacity:1;visibility:visible}.edge-plaque:focus-within .edge-plaque__well{stroke:var(--focus);stroke-width:2}.edge-modifier-tooltip__surface{fill:color-mix(in oklch,var(--card-world-deep),black 22%);stroke:color-mix(in oklch,var(--card-world-accent),white 24%);stroke-width:.8;vector-effect:non-scaling-stroke}.edge-modifier-tooltip__text{fill:color-mix(in oklch,white,var(--card-world-accent) 8%);font-weight:720;letter-spacing:.01em;paint-order:stroke;stroke:color-mix(in oklch,var(--card-world-deep),black 42%);stroke-width:.18}.edge-modifier-tooltip__result{fill:color-mix(in oklch,var(--card-world-accent),white 28%);font-weight:850}@media(prefers-reduced-motion:reduce){.edge-modifier-tooltip{transition:none}}.capture-cue{--capture-energy: var(--board-capture-direct, oklch(.88 .15 184));--capture-impact: var(--board-capture-impact, oklch(.94 .17 92));opacity:0;animation:capture-cue-show .62s var(--ease-out) both;pointer-events:none}.board.is-previewing .capture-cue{animation-name:capture-cue-hold}.board.is-previewing .edge-number.is-capture-source,.board.is-previewing .edge-number-sprites.is-capture-source{animation-name:edge-cause-number-hold}.board.is-previewing .edge-number.is-capture-defender,.board.is-previewing .edge-number-sprites.is-capture-defender{animation-name:edge-defender-number-hold}@keyframes capture-cue-hold{0%{opacity:0}8%,to{opacity:1}}@keyframes edge-cause-number-hold{0%{transform:scale(1)}10%,to{transform:scale(1.46);filter:drop-shadow(0 0 2px var(--primary))}}@keyframes edge-defender-number-hold{0%{transform:scale(1)}10%,to{transform:scale(1.26);filter:drop-shadow(0 0 3px var(--accent))}}.preview-flip-outline{fill:none;stroke:color-mix(in oklch,white,transparent 8%);stroke-width:2.6;stroke-dasharray:7 5;pointer-events:none;filter:drop-shadow(0 0 3px color-mix(in oklch,var(--ink),transparent 30%));animation:preview-flip-outline-in .26s var(--ease-out) both}.preview-momentum-block-outline{fill:color-mix(in oklch,var(--ability-target),transparent 90%);stroke:color-mix(in oklch,var(--ability-target),white 24%);stroke-width:3;stroke-dasharray:3 4;pointer-events:none;filter:drop-shadow(0 0 4px color-mix(in oklch,var(--ability-target),transparent 28%))}@keyframes preview-flip-outline-in{0%{opacity:0}to{opacity:1}}.capture-cue__underlay{stroke:color-mix(in oklch,var(--ink),transparent 18%);stroke-width:6;stroke-linecap:round}.capture-cue__line{stroke:var(--capture-energy);stroke-width:2.8;stroke-linecap:round;stroke-dasharray:1;stroke-dashoffset:1;filter:drop-shadow(0 0 2px color-mix(in oklch,var(--capture-energy),transparent 18%));animation:capture-energy-travel .18s var(--ease-out) both;animation-delay:inherit}.capture-cue__arrow{fill:var(--capture-energy);stroke:color-mix(in oklch,var(--ink),transparent 18%);stroke-width:1.5;stroke-linejoin:round}.capture-cue__order{opacity:0}.capture-cue__order circle{fill:color-mix(in oklch,var(--ink),black 8%);stroke:var(--capture-energy);stroke-width:1.5;vector-effect:non-scaling-stroke}.capture-cue__order text{fill:#fff;font-size:10px;font-weight:850;paint-order:stroke;stroke:color-mix(in oklch,var(--ink),black 30%);stroke-width:1.2}.capture-cue--combo{--capture-energy: var(--board-capture-combo, oklch(.84 .17 153))}.capture-cue--combo .capture-cue__line{stroke-dasharray:.14 .08;animation-name:capture-momentum-travel;animation-duration:.26s}.capture-cue--counter{--capture-energy: var(--board-capture-counter, oklch(.76 .18 28))}.capture-cue--counter .capture-cue__underlay{stroke-width:7.5}.capture-cue--counter .capture-cue__line{stroke-width:3.4;stroke-dasharray:.25 .1;animation-name:capture-counter-return;animation-duration:.24s}.capture-cue--counter .capture-cue__arrow{transform:scale(1.18);transform-box:fill-box;transform-origin:center}.capture-impact{animation-delay:inherit}.capture-impact__ring{fill:color-mix(in oklch,var(--capture-impact),transparent 86%);stroke:var(--capture-impact);stroke-width:2.4;vector-effect:non-scaling-stroke;transform-box:fill-box;transform-origin:center;animation:capture-impact-ring .36s var(--ease-out) both;animation-delay:inherit}.capture-impact__core{fill:#fff;stroke:var(--capture-impact);stroke-width:1.4;vector-effect:non-scaling-stroke;animation:capture-impact-core .3s var(--ease-out) both;animation-delay:inherit}.capture-impact__rays{fill:none;stroke:var(--capture-impact);stroke-width:2;stroke-linecap:round;vector-effect:non-scaling-stroke;transform-box:fill-box;transform-origin:center;animation:capture-impact-rays .36s var(--ease-out) both;animation-delay:inherit}.capture-momentum,.capture-counter,.capture-momentum__order,.capture-momentum__remaining{animation-delay:inherit}.capture-momentum__arrival{fill:color-mix(in oklch,var(--capture-energy),transparent 84%);stroke:var(--capture-energy);stroke-width:2.2;vector-effect:non-scaling-stroke;transform-box:fill-box;transform-origin:center;animation:capture-momentum-arrival .36s var(--ease-out) both;animation-delay:inherit}.capture-momentum__badge-motion{transform-box:fill-box;transform-origin:center;animation:capture-momentum-order .44s var(--ease-out) both;animation-delay:inherit}.capture-momentum__order circle{fill:var(--capture-energy);stroke:color-mix(in oklch,var(--ink),transparent 14%);stroke-width:1.5;vector-effect:non-scaling-stroke}.capture-momentum__order text{fill:var(--ink);font-size:11px;font-weight:900}.capture-momentum__remaining rect{fill:color-mix(in oklch,var(--ink),black 6%);stroke:var(--capture-energy);stroke-width:1.5;vector-effect:non-scaling-stroke}.capture-momentum__remaining text{fill:#fff;font-size:8px;font-weight:800;letter-spacing:.02em}.capture-counter__recoil,.capture-counter__mark{fill:none;stroke:var(--capture-energy);stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke;transform-box:fill-box;transform-origin:center;animation:capture-counter-impact .42s var(--ease-out) both;animation-delay:inherit}.capture-counter__recoil{stroke-width:3.2}.capture-counter__mark{fill:color-mix(in oklch,var(--capture-energy),transparent 72%);stroke-width:2.1}@keyframes capture-energy-travel{0%{stroke-dashoffset:1;opacity:.25}70%,to{stroke-dashoffset:0;opacity:1}}@keyframes capture-momentum-travel{0%{stroke-dashoffset:1;opacity:.2}65%,to{stroke-dashoffset:0;opacity:1}}@keyframes capture-counter-return{0%{stroke-dashoffset:-1;opacity:.2}70%,to{stroke-dashoffset:0;opacity:1}}@keyframes capture-momentum-arrival{0%,24%{opacity:0;transform:scale(.35)}48%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(1.42)}}@keyframes capture-momentum-order{0%,22%{opacity:0;transform:scale(.55)}46%,78%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.86)}}@keyframes capture-counter-impact{0%,20%{opacity:0;transform:scale(.45)}42%,68%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.78)}}@keyframes capture-impact-ring{0%,22%{opacity:0;transform:scale(.34)}42%{opacity:1;transform:scale(.72)}to{opacity:0;transform:scale(1.45)}}@keyframes capture-impact-core{0%,20%{opacity:0;transform:scale(.4)}38%,62%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.65)}}@keyframes capture-impact-rays{0%,26%{opacity:0;transform:scale(.45)}45%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(1.25)}}.hover-flip-preview{--hover-flip-capture: oklch(.8 .19 150);--hover-flip-counter: var(--card-control-opponent);pointer-events:none;animation:hover-flip-preview-in .14s var(--ease-out) both}@keyframes hover-flip-preview-in{0%{opacity:0}to{opacity:1}}.hover-flip-target{fill:color-mix(in oklch,var(--hover-flip-capture),transparent 90%);stroke:var(--hover-flip-capture);stroke-width:2.4}.hover-flip-target--counter{fill:color-mix(in oklch,var(--hover-flip-counter),transparent 86%);stroke:var(--hover-flip-counter)}.hover-flip-target--blocked{fill:none;stroke:color-mix(in oklch,var(--ability-target),white 24%);stroke-dasharray:3 4}.hover-flip-arrow__underlay{stroke:color-mix(in oklch,var(--ink),transparent 22%);stroke-width:5.5;stroke-linecap:round}.hover-flip-arrow__line{stroke:var(--hover-flip-capture);stroke-width:2.6;stroke-linecap:round}.hover-flip-arrow__head{fill:var(--hover-flip-capture);stroke:color-mix(in oklch,var(--ink),transparent 22%);stroke-width:1.3;stroke-linejoin:round}.hover-flip-arrow__order circle{fill:var(--hover-flip-capture);stroke:color-mix(in oklch,var(--ink),transparent 18%);stroke-width:1.3}.hover-flip-arrow__order text{fill:var(--ink);font-weight:850}.hover-flip-arrow__counter-badge circle{fill:var(--hover-flip-counter);stroke:color-mix(in oklch,var(--ink),transparent 18%);stroke-width:1.3}.hover-flip-arrow__counter-badge path{fill:none;stroke:var(--ink);stroke-width:1.8;stroke-linecap:round}.hover-flip-arrow__counter-badge polygon{fill:var(--ink)}@media(prefers-reduced-motion:reduce){.hover-flip-preview{animation:none}}@keyframes edge-cause-number{0%,to{transform:scale(1)}10%,68%{transform:scale(1.46);filter:drop-shadow(0 0 2px var(--primary))}}@keyframes edge-defender-number{0%,to{transform:scale(1)}12%{transform:scale(1.3);filter:drop-shadow(0 0 3px var(--accent))}28%,68%{transform:scale(1.16);filter:drop-shadow(0 0 2px var(--accent))}}@keyframes capture-cue-show{0%,to{opacity:0}8%,72%{opacity:1}}@media(prefers-reduced-motion:reduce){.capture-motion,.capture-cue,.capture-cue__line,.capture-impact__ring,.capture-impact__core,.capture-impact__rays,.capture-momentum__arrival,.capture-momentum__badge-motion,.capture-counter__recoil,.capture-counter__mark,.edge-number.is-capture-source,.edge-number-sprites.is-capture-source{animation:none}.card-fill--previous,.capture-owner-before{animation:none;opacity:0}.capture-owner-after{animation:none;opacity:1}.capture-cue,.capture-cue__order{opacity:1}.capture-cue__line{stroke-dashoffset:0}.capture-impact__ring{opacity:1;transform:scale(.82)}.capture-impact__core{opacity:1}.capture-impact__rays{opacity:.72;transform:scale(.86)}.capture-momentum__arrival{opacity:1;transform:scale(.84)}.capture-momentum__badge-motion{opacity:1;transform:scale(1)}.capture-counter__recoil,.capture-counter__mark{opacity:1;transform:scale(.9)}.edge-number.is-capture-attacker,.edge-number-sprites.is-capture-attacker{transform:scale(1.34)}.edge-number.is-capture-defender,.edge-number-sprites.is-capture-defender{transform:scale(1.2)}}.card-ability-panel{pointer-events:none}.card-ability-panel.is-tactic-suppressed{pointer-events:auto}.card-ability-panel.is-tactic-suppressed .card-ability-panel__surface{fill:color-mix(in oklch,oklch(.6 .2 300),var(--card-world-deep) 45%);stroke:color-mix(in oklch,oklch(.78 .17 300),white 22%);stroke-width:2.5;vector-effect:non-scaling-stroke}.card-ability-panel.is-tactic-suppressed .card-ability-panel__divider{stroke:#c4a3ff;stroke:oklch(.78 .17 300)}.card-ability-panel.is-tactic-suppressed .card-ability-panel__text{opacity:.6}.card-panel-scrim__stop--clear{stop-color:color-mix(in oklch,var(--card-panel-stock),transparent 100%)}.card-panel-scrim__stop--soft{stop-color:color-mix(in oklch,var(--card-panel-stock),transparent 88%)}.card-panel-scrim__stop--mid{stop-color:color-mix(in oklch,var(--card-panel-stock),transparent 58%)}.card-panel-scrim__stop--deep{stop-color:color-mix(in oklch,var(--card-panel-stock),transparent 20%)}.card-panel-scrim__stop--solid{stop-color:var(--card-panel-stock)}.card-identity__name{fill:#f9f5ec;font-family:var(--font-mythic);font-weight:400;paint-order:stroke;stroke:color-mix(in oklch,var(--card-world-deep),black 40%);stroke-width:.7}.card-world-mark{pointer-events:none}.card-world-mark__plate{fill:color-mix(in oklch,var(--card-world-deep),black 35%);stroke:color-mix(in oklch,var(--card-frame-steel),transparent 25%)}.card-world-mark text{fill:color-mix(in oklch,var(--card-world-accent),white 12%);font-weight:850}.card-world-mark__image,.card-power-plaque,.card-support-plaque{pointer-events:none}.card-power-plaque__number,.card-support-plaque__number{font-variant-numeric:tabular-nums}.card-power-plaque__glyph line{stroke:#b4a997;stroke-linecap:round}.card-power-plaque__number{fill:#c7bcaa;font-family:Inter,ui-sans-serif,system-ui,sans-serif;font-weight:650;letter-spacing:.02em}.card-ability-panel__name,.card-ability-panel__text{fill:#faedd5;pointer-events:none}.card-ability-panel__name{font-weight:800;font-size:1.14em}.card-ability-panel__text{font-weight:600}.card-environment-cue{cursor:help;outline:none}.card-environment-cue__hit-area{fill:transparent;pointer-events:all}.card-environment-icon__image{fill:var(--card-world-accent);pointer-events:none}.card-environment-tooltip{opacity:0;pointer-events:none;transition:opacity .16s var(--ease-out)}.card-environment-cue:hover .card-environment-tooltip,.card-environment-cue:focus .card-environment-tooltip{opacity:1}.card-environment-cue:focus-visible .card-environment-cue__hit-area{stroke:#fff;stroke-width:.8}.card-environment-tooltip__surface{fill:color-mix(in oklch,var(--card-world-deep),black 24%);stroke:color-mix(in oklch,var(--card-world-accent),white 34%);stroke-width:.6}.card-environment-tooltip__text{fill:#fff;font-weight:750;letter-spacing:.01em}@media(prefers-reduced-motion:reduce){.card-environment-tooltip{transition:none}}.board-cell.is-environment .cell-base{stroke:#0000006b;stroke-width:1.2;fill:color-mix(in oklch,var(--match-cell),oklch(.72 .13 72) 22%)}.board-cell.is-environment.is-ability-trigger .cell-base{fill:color-mix(in oklch,var(--match-cell),oklch(.82 .11 78) 44%);stroke:#9b6400;stroke:oklch(.55 .13 72);stroke-width:3.5}.board-cell.is-environment.is-ability-trigger:hover .cell-base,.board-cell.is-environment.is-ability-trigger:focus-visible .cell-base{fill:color-mix(in oklch,var(--match-cell),oklch(.82 .11 78) 58%)}.environment-tile-art{pointer-events:none}.board-cell.is-environment .environment-tile-outline,.board-cell.is-environment.is-ability-trigger .environment-tile-outline,.board-cell.is-environment.is-ability-trigger:hover .environment-tile-outline,.board-cell.is-environment.is-ability-trigger:focus-visible .environment-tile-outline{fill:none;pointer-events:none}.board-cell.is-environment.has-environment-collar .board-tile-surface__base,.board-cell.is-environment.has-environment-collar .environment-tile-outline{stroke:none;stroke-width:0}.environment-tile-mark{fill:#edb154;pointer-events:none}.board-cell.is-environment-neutralized .cell-base{fill:color-mix(in oklch,var(--match-cell),var(--muted) 20%);stroke:color-mix(in oklch,var(--muted),var(--match-cell-stroke) 35%);stroke-dasharray:4 3}.environment-neutralized-mark{fill:var(--ability-target-keyline);stroke:color-mix(in oklch,var(--ink),transparent 18%);stroke-width:.8px;paint-order:stroke;font-size:18px;font-weight:900;pointer-events:none}.board-cell.is-hazard .cell-base{fill:color-mix(in oklch,var(--match-cell),oklch(.72 .18 42) 22%);stroke:#d24100;stroke-width:3;stroke-dasharray:5 3}.hazard-space-mark{fill:#e44a08;stroke:color-mix(in oklch,var(--paper),transparent 12%);stroke-width:1.2px;paint-order:stroke;font-size:22px;font-weight:900;pointer-events:none}.cardinal-boost-mark{fill:#fff4bf;paint-order:stroke;pointer-events:none;stroke:#382900;stroke-width:2px;font-family:var(--font-display);font-size:9px;font-weight:800;letter-spacing:.02em}.cardinal-boost-mark--card{font-size:8px}.board-cell.is-resonance-field .cell-base{stroke:#00b6af;stroke:oklch(.7 .15 190);stroke-width:3;stroke-dasharray:3 3}.resonance-field-mark{pointer-events:none}.resonance-field-mark circle{fill:color-mix(in oklch,oklch(.72 .14 190),var(--match-cell) 26%);stroke:color-mix(in oklch,white,oklch(.55 .15 190) 48%);stroke-width:2}.resonance-field-mark text{fill:var(--ink);font-size:10px;font-weight:900}.board-cell.is-coordinate-locked .cell-base{stroke:#7fc3f5;stroke-width:3;stroke-dasharray:7 3}.coordinate-lock-mark{pointer-events:none}.coordinate-lock-mark circle{fill:color-mix(in oklch,oklch(.8 .09 242),var(--match-cell) 30%);stroke:color-mix(in oklch,white,oklch(.48 .13 242) 58%);stroke-width:2}.coordinate-lock-mark text{fill:var(--ink);font-size:10px;font-weight:900}.ward-card-mark{cursor:help}.ward-card-mark__shield{fill:#73edfa;stroke:color-mix(in oklch,var(--ink),transparent 12%);stroke-width:1.4px;stroke-linejoin:round;paint-order:stroke;pointer-events:all}.ward-card-mark__crest{fill:color-mix(in oklch,oklch(.88 .11 205),var(--ink) 55%);pointer-events:none}.ward-card-mark__tooltip{pointer-events:none}.ward-card-mark__tooltip-surface{fill:color-mix(in oklch,var(--ink),black 24%);stroke:color-mix(in oklch,oklch(.88 .11 205),white 34%);stroke-width:.6}.ward-card-mark__tooltip-text{fill:#fff;font-weight:600;letter-spacing:.01em}.ward-card-mark__tooltip-title{fill:#87f2fe;font-weight:800}.environment-badge{align-self:center;padding:3px 10px;border-radius:999px;border:1px solid oklch(.62 .1 82 / .55);background:#40301280;color:#ffd890;font-size:11px;font-weight:600;white-space:nowrap}.ability-guide{position:relative;z-index:2;width:min(680px,calc(100% - 32px));min-height:48px;display:flex;align-items:center;gap:10px;margin:0 auto 7px;padding:7px 10px;border:1px solid color-mix(in oklch,oklch(.55 .13 72),transparent 38%);border-radius:10px;color:var(--ink);background:#f8f2ebf5}.ability-guide__environment{flex:0 0 auto;min-width:82px;padding:5px 8px;border-radius:999px;color:#fff;background:#69440a;font-size:11px;font-weight:800;text-align:center;white-space:nowrap}.ability-guide__copy{min-width:0;flex:1}.ability-guide__copy>span{display:flex;align-items:baseline;gap:8px}.ability-guide__copy strong{font-size:13px}.ability-guide__copy b{color:#6e4600;color:oklch(.43 .1 72);font-size:11px;font-weight:800}.ability-guide.is-inactive .ability-guide__copy b{color:var(--muted)}.ability-guide__copy p{margin:2px 0 0;color:color-mix(in oklch,var(--ink),transparent 18%);font-size:11px;font-weight:560;line-height:1.35;text-wrap:pretty}.ability-guide__target-choices{display:flex;flex-wrap:wrap;gap:5px;margin-top:5px}.ability-guide__target-choices button{min-height:32px;border:1px solid var(--ability-target);border-radius:6px;padding:3px 7px;color:color-mix(in oklch,var(--ink),var(--ability-target) 28%);background:color-mix(in oklch,var(--ability-target),transparent 90%);font-size:10px;font-weight:800;cursor:pointer}.ability-guide__target-choices button:hover,.ability-guide__target-choices button:focus-visible,.ability-guide__target-choices button.is-selected{outline:none;color:var(--ink);border-color:var(--ability-target-keyline);background:color-mix(in oklch,var(--ability-target),transparent 76%)}.ability-guide__skip{min-height:34px;flex:0 0 auto;border:1px solid var(--campaign-line, var(--line));border-radius:7px;padding:6px 10px;color:var(--ink);background:transparent;font-size:10px;font-weight:800;cursor:pointer;transition:border-color .16s var(--ease-out),background .16s var(--ease-out)}.ability-guide__skip:hover,.ability-guide__skip:focus-visible{border-color:var(--ability-target);background:color-mix(in oklch,var(--ability-target),transparent 88%)}.ability-guide__skip.is-selected{color:var(--match-status-ink);border-color:var(--match-status);background:var(--match-status)}.victory-celebration{--victory-confetti-0: oklch(.78 .14 78);--victory-confetti-1: oklch(.62 .15 245);--victory-confetti-2: oklch(.68 .16 150);--victory-confetti-3: oklch(.69 .17 28);position:absolute;inset:0 0 38px;z-index:4;display:grid;place-items:center;padding:20px;pointer-events:none;overflow:hidden}.victory-confetti{position:absolute;inset:0;overflow:hidden}.victory-confetti i{position:absolute;bottom:-18px;left:var(--confetti-x);width:7px;height:13px;border-radius:2px;background:var(--confetti-color);opacity:0;animation:victory-confetti-toss var(--confetti-duration) linear var(--confetti-delay) both;will-change:transform,opacity}.victory-confetti i:nth-child(3n){width:11px;height:6px}.victory-confetti i:nth-child(2n){border-radius:50%}.victory-plaque{position:relative;display:flex;align-items:center;gap:12px;min-width:min(440px,100%);max-width:min(680px,100%);flex-wrap:wrap;border:2px solid oklch(.78 .14 78);border-radius:14px;padding:12px 14px;color:#fff;background:#00182bf2;background:oklch(.2 .052 245 / .95);box-shadow:0 6px 8px #00061057;box-shadow:0 6px 8px oklch(.12 .035 245 / .34);pointer-events:auto;animation:victory-plaque-in .52s var(--ease-out) .28s both}.victory-mark{flex:0 0 auto;width:40px;height:40px;display:grid;place-items:center;border-radius:50%;color:#321c04;background:#f1bf5b;font-size:21px;box-shadow:inset 0 0 0 2px #ffe9b9b8;box-shadow:inset 0 0 0 2px oklch(.94 .08 86 / .72)}.victory-copy{min-width:0;display:grid;gap:2px;margin-right:auto}.victory-copy:has(.victory-dialogue){flex:1 1 220px}.victory-dialogue{margin:6px 0 0;font-size:14px;line-height:1.45;font-weight:450}.victory-copy strong{font-size:20px;letter-spacing:-.025em;line-height:1.1}.victory-copy span{color:#d2e0ec;font-size:11px;font-weight:650}.victory-plaque button{flex:0 0 auto;min-height:38px;display:inline-flex;align-items:center;gap:8px;border:0;border-radius:8px;padding:8px 12px;color:#291503;background:#f1bf5b;font-size:11px;font-weight:800;cursor:pointer;transition:background .18s var(--ease-out),transform .18s var(--ease-out)}.victory-plaque button:hover{background:#fad280;transform:translateY(-1px)}.victory-plaque button:active{transform:translateY(0)}.victory-plaque button span{font-size:15px;line-height:1}.victory-preview-exit{position:absolute;top:17px;right:18px;z-index:5;min-height:40px;display:inline-flex;align-items:center;border:1px solid var(--line);border-radius:8px;padding:8px 12px;color:var(--ink);background:var(--surface);font-size:11px;font-weight:750;text-decoration:none;box-shadow:0 2px 5px color-mix(in oklch,var(--ink),transparent 88%)}.victory-preview-exit:hover{background:var(--surface-raised)}.reward-reveal{--reward-accent: var(--reward-world-accent, var(--campaign-world-accent, oklch(.78 .14 78)));--reward-deep: var(--reward-world-deep, var(--campaign-world-deep, oklch(.2 .052 245)));--reward-card-size: clamp(280px, 45vh, 430px);position:fixed;inset:0;z-index:40;display:grid;place-items:center;padding:24px;color:#fff;background:color-mix(in oklch,color-mix(in oklch,var(--reward-deep),black 26%),transparent 14%);-webkit-backdrop-filter:blur(14px) saturate(.75);backdrop-filter:blur(14px) saturate(.75);isolation:isolate}.reward-reveal:before{content:"";position:fixed;inset:0;z-index:-1;background:radial-gradient(ellipse 60% 48% at 50% 56%,color-mix(in oklch,var(--reward-accent),transparent 76%),transparent 70%),radial-gradient(ellipse 120% 90% at 50% 50%,transparent 52%,color-mix(in oklch,black,transparent 38%) 100%);pointer-events:none}.reward-reveal__confetti{--victory-confetti-0: oklch(.78 .14 78);--victory-confetti-1: oklch(.72 .13 210);--victory-confetti-2: oklch(.74 .15 155);--victory-confetti-3: oklch(.72 .16 28);--confetti-rise: max(0px, calc(100vh - 328px) );z-index:-1;pointer-events:none}.reward-reveal__stage{position:relative;width:min(100%,560px);display:grid;justify-items:center;text-align:center}.reward-reveal__eyebrow{margin:0 0 6px;color:color-mix(in oklch,white,var(--reward-accent) 40%);font-size:11px;font-weight:800;letter-spacing:.12em;text-transform:uppercase}.reward-reveal h2{margin:0;font-size:clamp(38px,5.4vh,46px);font-weight:850;line-height:1;letter-spacing:-.035em;text-transform:uppercase;text-wrap:balance}.reward-reveal__score{display:grid;justify-items:center;gap:3px;margin-top:10px}.reward-reveal__scoreline{display:flex;align-items:center;gap:12px;margin:0;font-variant-numeric:tabular-nums}.reward-reveal__scoreline b{font-size:34px;font-weight:800;line-height:1}.reward-reveal__score-dash{color:color-mix(in oklch,white,transparent 55%);font-size:22px;line-height:1}.reward-reveal__opponent{display:inline-flex;align-items:center;gap:6px;margin-left:6px;border-left:1px solid color-mix(in oklch,white,transparent 72%);padding-left:14px;color:color-mix(in oklch,white,var(--reward-accent) 45%);font-size:12px;font-weight:800;letter-spacing:.1em;text-transform:uppercase}.reward-reveal__opponent img{width:22px;height:22px;object-fit:contain}.reward-reveal__opponent-glyph{font-size:15px}.reward-reveal__caption{margin:0;color:color-mix(in oklch,white,transparent 38%);font-size:11.5px;font-weight:600}.reward-reveal__stage>p.reward-reveal__dialogue{max-width:50ch;margin:10px auto 0;color:color-mix(in oklch,white,transparent 14%);font-size:13.5px;font-style:italic;line-height:1.45;font-weight:450}.reward-reveal__reward{position:relative;display:grid;justify-items:center;margin-top:8px}.reward-reveal__halo{position:absolute;top:50%;left:50%;width:calc(var(--reward-card-size) * 1.5);height:calc(var(--reward-card-size) * 1.3);translate:-50% -58%;border-radius:50%;background:radial-gradient(closest-side,color-mix(in oklch,white,var(--reward-accent) 55%) 0%,color-mix(in oklch,var(--reward-accent),transparent 62%) 38%,transparent 100%);opacity:.5;filter:blur(6px);pointer-events:none;animation:reward-halo-in 1s var(--ease-out) 1.1s both}.reward-reveal__halo i{position:absolute;left:var(--particle-x);top:var(--particle-y);width:var(--particle-size);height:var(--particle-size);background:color-mix(in oklch,white,var(--reward-accent) 35%);clip-path:polygon(50% 0,100% 50%,50% 100%,0 50%);opacity:0;animation:reward-fragment var(--particle-duration) ease-in-out var(--particle-delay) infinite}.reward-reveal__card{position:relative;width:var(--reward-card-size);height:calc(var(--reward-card-size) * .94);perspective:1200px}.reward-reveal__card:after{content:"";position:absolute;left:18%;right:18%;bottom:2%;height:7%;border-radius:50%;background:#000;opacity:.55;filter:blur(12px);z-index:-1}.reward-reveal__card-inner{position:relative;width:100%;height:100%;transform-style:preserve-3d;animation:reward-card-flip 2s linear .1s both}.reward-reveal__card-face{position:absolute;inset:0;display:grid;place-items:center;backface-visibility:hidden;-webkit-backface-visibility:hidden}.reward-reveal__card-face--front svg{width:var(--reward-card-size);height:calc(var(--reward-card-size) * .924);overflow:visible;filter:drop-shadow(0 18px 18px color-mix(in oklch,black,transparent 45%)) drop-shadow(0 0 22px color-mix(in oklch,var(--reward-accent),transparent 72%))}.reward-reveal__card-face--back{transform:rotateY(180deg)}.reward-reveal__card-face--back .card-back{width:calc(var(--reward-card-size) * .647);height:calc(var(--reward-card-size) * .9);filter:drop-shadow(0 14px 14px color-mix(in oklch,black,transparent 50%))}.reward-reveal__copy{display:grid;justify-items:center;gap:3px;margin:2px 0 18px;animation:reward-copy-in .6s var(--ease-out) 1.5s both}.reward-reveal__acquired{color:var(--reward-accent);font-size:10.5px;font-weight:850;letter-spacing:.16em;text-transform:uppercase}.reward-reveal__copy strong{font-size:22px;font-weight:800;letter-spacing:-.02em;line-height:1.1}.reward-reveal__card-meta{color:color-mix(in oklch,white,transparent 36%);font-size:11.5px;font-weight:650}.reward-reveal__stage>p:not(.reward-reveal__eyebrow,.reward-reveal__dialogue,.visually-hidden){margin:12px 0 18px;color:color-mix(in oklch,white,var(--campaign-world-light, oklch(.9 .035 215)) 35%);font-size:12px;font-weight:650}.reward-reveal__result-mark{width:104px;height:104px;display:grid;place-items:center;margin:18px 0 20px;border:1px solid color-mix(in oklch,white,transparent 72%);border-radius:50%;color:var(--reward-accent);background:color-mix(in oklch,var(--reward-deep),black 18%);font-size:44px;font-weight:750;box-shadow:0 14px 24px color-mix(in oklch,black,transparent 55%)}.reward-reveal[data-outcome=loss] .reward-reveal__result-mark{color:color-mix(in oklch,white,oklch(.62 .16 25) 62%)}.reward-reveal__atmosphere{position:fixed;inset:0;z-index:-1;overflow:hidden;pointer-events:none}.reward-reveal__atmosphere i{position:absolute;left:var(--particle-x);top:var(--particle-y);width:var(--particle-size);height:var(--particle-size);background:color-mix(in oklch,white,var(--reward-accent) 40%);opacity:.5;animation:reward-drift var(--particle-duration) ease-in-out var(--particle-delay) infinite alternate}.reward-reveal[data-motif=shard] .reward-reveal__atmosphere i{width:calc(var(--particle-size) * .7);height:calc(var(--particle-size) * 2.2);clip-path:polygon(50% 0,100% 45%,50% 100%,0 55%);opacity:.42}.reward-reveal[data-motif=ember] .reward-reveal__atmosphere i{border-radius:50%;background:color-mix(in oklch,var(--reward-accent),oklch(.85 .15 70) 40%);box-shadow:0 0 8px var(--reward-accent);animation-name:reward-rise}.reward-reveal[data-motif=mote] .reward-reveal__atmosphere i{border-radius:50%;filter:blur(1.5px);opacity:.38}.reward-reveal[data-motif=fragment] .reward-reveal__atmosphere i{clip-path:polygon(25% 5%,75% 5%,100% 50%,75% 95%,25% 95%,0 50%);opacity:.36}.reward-reveal__world-glyph{position:absolute;right:4%;bottom:3%;color:color-mix(in oklch,var(--reward-accent),transparent 84%);font-size:min(22vh,180px);line-height:1}.reward-reveal__actions{display:flex;flex-wrap:wrap;justify-content:center;gap:8px}.reward-reveal__result-mark+.reward-reveal__actions{margin-top:0}.reward-reveal button{min-height:44px;display:inline-flex;align-items:center;gap:8px;border:0;border-radius:8px;padding:10px 15px;color:#291503;background:var(--campaign-world-accent, oklch(.83 .13 82));font-size:12px;font-weight:800;cursor:pointer;transition:transform .18s var(--ease-out),background .18s var(--ease-out)}.reward-reveal button:hover{background:color-mix(in oklch,var(--campaign-world-accent, oklch(.83 .13 82)),white 16%);transform:translateY(-1px)}.reward-reveal button:active{transform:translateY(0)}.reward-reveal .reward-reveal__secondary{border:1px solid color-mix(in oklch,white,transparent 62%);color:#fff;background:transparent}.reward-reveal .reward-reveal__secondary:hover{background:color-mix(in oklch,white,transparent 88%)}@keyframes reward-copy-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}@keyframes reward-halo-in{0%{opacity:0;scale:.7}to{opacity:.5;scale:1}}@keyframes reward-fragment{0%,to{opacity:0;transform:translateY(6px) rotate(0)}40%,60%{opacity:.7}50%{transform:translateY(-10px) rotate(45deg)}}@keyframes reward-drift{0%{transform:translate(0) rotate(0)}to{transform:translate(14px,-26px) rotate(30deg)}}@keyframes reward-rise{0%{transform:translateY(12px);opacity:0}30%{opacity:.6}to{transform:translate(8px,-60px);opacity:0}}@media(prefers-reduced-motion:reduce){.reward-reveal__halo,.reward-reveal__halo i,.reward-reveal__atmosphere i{animation:none}.reward-reveal__halo i{opacity:.5}}@keyframes reward-card-flip{0%{transform:rotateY(180deg) scale(.9);animation-timing-function:cubic-bezier(.2,.7,.3,1)}32%{transform:rotateY(180deg) scale(.97);animation-timing-function:cubic-bezier(.55,0,.2,1)}to{transform:rotateY(360deg) scale(1)}}@keyframes victory-plaque-in{0%{opacity:0;transform:translateY(12px) scale(.97);filter:blur(4px)}to{opacity:1;transform:translateY(0) scale(1);filter:blur(0)}}@keyframes victory-confetti-toss{0%{opacity:0;transform:translate3d(0,18px,0) rotate(0);animation-timing-function:cubic-bezier(.2,.72,.3,1)}9%{opacity:1;transform:translate3d(0,-24px,0) rotate(18deg);animation-timing-function:cubic-bezier(.16,.84,.32,1)}52%{opacity:1;transform:translate3d(var(--confetti-drift),calc(-1 * (var(--confetti-lift) + var(--confetti-rise, 0px))),0) rotate(var(--confetti-spin));animation-timing-function:cubic-bezier(.52,.08,.78,.38)}to{opacity:0;transform:translate3d(var(--confetti-land),24px,0) rotate(var(--confetti-spin-end))}}.reward-reveal{overflow-y:auto;align-items:safe center}.match-survey{width:min(100%,540px);margin:20px auto 0;padding:16px;border:1px solid currentColor;border-radius:8px;text-align:left}.match-survey h4,.match-survey h3{margin:8px 0}.match-survey p{font-size:14px;line-height:1.5}.match-survey label{display:grid;gap:6px;margin-block:10px}.match-survey fieldset{display:flex;flex-wrap:wrap;gap:14px}.match-survey fieldset label{display:flex;align-items:center}.match-survey textarea,.match-survey input[type=number]{box-sizing:border-box;width:100%;padding:8px;border-radius:4px;font:inherit;color:#171717;background:#fff}.match-survey button{margin:4px 6px 4px 0}.match-survey button:disabled{opacity:.55;cursor:default;transform:none}.match-survey .queue-observation-note{white-space:pre-wrap;overflow-wrap:anywhere}.match-survey{box-sizing:border-box}.match-survey__intro{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.match-survey__intro p{flex:1 1 180px}.match-survey .queue-progress,.match-survey .queue-footnote{color:inherit}.match-status{position:absolute;right:16px;bottom:10px;left:16px;z-index:16;width:max-content;max-width:min(560px,calc(100% - 32px));min-height:32px;display:flex;align-items:center;justify-content:center;margin:0 auto;border-radius:999px;padding:6px 14px;border:1px solid color-mix(in oklch,var(--match-status-ink),transparent 84%);color:var(--match-status-ink);background:var(--match-status);font-size:11px;font-weight:650;line-height:1.35;text-align:center;box-shadow:0 4px 8px color-mix(in oklch,var(--ink),transparent 72%);pointer-events:none}.match-status.has-action{gap:10px;padding:4px 5px 4px 14px}.match-status__message{min-width:0}.match-status__message strong{font-weight:800}.match-status__effects{display:inline-flex;align-items:center;gap:4px;margin-left:7px}.match-status__effect{border-radius:999px;padding:2px 7px;color:var(--ink);background:#fff;font-size:9px;font-weight:750;white-space:nowrap}.match-status__effect.is-modifier{color:#523300;color:oklch(.35 .1 72);background:#ffdc9c}.match-status__effect.is-modifier b{font-size:10px}.match-status__effect.is-momentum{color:#002334;color:oklch(.24 .07 235);background:#99e6f9}.match-status__actions{display:flex;gap:4px}.match-status button{min-height:26px;border:0;border-radius:999px;padding:4px 11px;color:var(--ink);background:#fff;font-size:10px;font-weight:800;cursor:pointer;pointer-events:auto}.match-status button:hover{background:var(--primary-pale)}.match-status button:focus-visible{outline:3px solid var(--focus);outline-offset:1px}.match-status .match-status__change{border:1px solid color-mix(in oklch,white,transparent 58%);color:#fff;background:transparent}.match-status .match-status__change:hover{background:color-mix(in oklch,white,transparent 88%)}.match-status .match-status__confirm{background:#fff}.match-status .match-status__confirm:disabled{color:var(--muted);background:var(--match-chrome);cursor:not-allowed;opacity:.58}.hand-zone{position:relative;background:var(--match-chrome);border-top:1px solid var(--match-divider);padding:8px 22px 10px}.hand-zone__count{position:absolute;top:10px;left:50%;transform:translate(-50%)}.hand-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:4px}.hand-heading h2{margin:0;font-size:14px}.hand-heading p{margin:2px 0 0;color:var(--muted);font-size:11px}.layout-toggle{display:none;align-items:center;min-height:32px;border:1px solid var(--line);border-radius:8px;padding:6px 10px;color:var(--ink);background:var(--surface);font-size:11px;font-weight:700;white-space:nowrap;cursor:pointer;transition:border-color .18s var(--ease-out),background .18s var(--ease-out)}.layout-toggle:hover{border-color:var(--primary);background:var(--primary-pale)}.hand-tray-toolbar{display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:32px;margin-bottom:4px}.hand-tray-toolbar:has(.scout-ahead-choice){flex-wrap:wrap}.hand-tray-toolbar>strong{font-size:12px;font-variant-numeric:tabular-nums}.hand-tray-controls{display:inline-flex;gap:4px}.hand-tray-controls button{width:34px;height:30px;border:1px solid var(--match-divider);border-radius:7px;color:var(--ink);background:var(--match-chrome-raised);font-size:22px;line-height:1;cursor:pointer}.hand-tray-controls button:hover:not(:disabled){border-color:var(--primary);background:var(--primary-pale)}.hand-tray-controls button:focus-visible{outline:3px solid var(--focus);outline-offset:1px}.hand-tray-controls button:disabled{opacity:.4;cursor:default}.expanded-hand__trigger,.selected-tactic-action,.draw-arrival-reveal{min-height:30px;margin-left:auto;border:1px solid var(--match-divider);border-radius:7px;padding:5px 10px;color:var(--ink);background:var(--match-chrome-raised);font-size:10px;font-weight:800;cursor:pointer}.expanded-hand__trigger:hover:not(:disabled),.selected-tactic-action:hover:not(:disabled),.draw-arrival-reveal:hover:not(:disabled){border-color:var(--primary);background:var(--primary-pale)}.expanded-hand__trigger:focus-visible,.selected-tactic-action:focus-visible,.draw-arrival-reveal:focus-visible{outline:3px solid var(--focus);outline-offset:1px}.expanded-hand__trigger:disabled,.selected-tactic-action:disabled{opacity:.45;cursor:default}.selected-tactic-action{color:#fff;border-color:var(--primary);background:var(--primary)}.draw-arrival-reveal{color:var(--primary-deep);border-color:var(--primary);background:var(--primary-pale)}.scout-ahead-choice{flex:1 1 100%;display:flex;align-items:center;gap:6px;padding:7px;border:1px solid var(--match-divider);border-radius:8px;background:var(--match-chrome-raised);font-size:11px}.scout-ahead-choice>span{flex:1 1 auto;min-width:0}.scout-ahead-choice button{min-height:30px;border:1px solid var(--match-divider);border-radius:7px;padding:5px 9px;color:var(--ink);background:var(--match-chrome);font-size:10px;font-weight:800;cursor:pointer}.scout-ahead-choice button:hover{border-color:var(--primary);background:var(--primary-pale)}.scout-ahead-choice button:focus-visible{outline:3px solid var(--focus);outline-offset:1px}.hand-list{display:flex;gap:10px;overflow-x:auto;overflow-anchor:none;padding:3px 14px 6px 2px;min-height:175px;scroll-padding-inline:2px 14px}.player-hand-presentation{min-width:0;display:flex;align-items:stretch;gap:8px}.player-hand-presentation .hand-list{flex:1 1 auto}.pile-chrome{flex:0 0 70px;display:flex;flex-direction:column;align-items:stretch;gap:5px;padding:3px 0}.pile-chrome .deck-pile{flex:0 0 auto;min-height:0;display:block;padding:0}.pile-chrome .deck-pile__count{display:block;font-size:9px}.pile-chrome .deck-pile__stack{width:38px;height:48px;margin:2px auto 0}.pile-chrome .deck-pile__stack .card-back{width:30px;height:40px}.hand-list[data-count="1"],.hand-list[data-count="2"]{justify-content:center}.hand-card-slot{position:relative;flex:0 0 154px;height:174px}.draw-arrival-mark{position:absolute;z-index:4;top:3px;right:3px;border:1px solid color-mix(in oklch,var(--primary),white 28%);border-radius:999px;padding:3px 6px;color:#fff;background:var(--primary-deep);box-shadow:0 2px 7px color-mix(in oklch,var(--primary-deep),transparent 62%);font-size:8px;font-weight:900;letter-spacing:.06em;line-height:1;text-transform:uppercase;pointer-events:none}.hand-card-slot.is-draw-in-flight,.opponent-hand-card-host.is-draw-in-flight,.opponent-hand-target.is-draw-in-flight{visibility:hidden}.card-browser__card.is-recent-draw{position:relative}.opponent-hand-card-host.is-recent-draw,.opponent-hand-target.is-recent-draw{border-radius:8px;outline:2px solid var(--accent);outline-offset:2px}.player-hand-presentation.has-card-selection-targets .hand-card-slot:not(.is-card-selection-target) .hand-card{opacity:.34;filter:saturate(.45)}.player-hand-presentation.has-card-selection-targets .hand-card{transition:transform .18s var(--ease-out),opacity .18s var(--ease-out),filter .18s var(--ease-out)}.tactic-hand-mark{position:absolute;z-index:3;right:5px;bottom:5px;border-radius:999px;padding:3px 6px;color:#fff;background:var(--primary-deep);font-size:8px;font-weight:850;line-height:1;pointer-events:none}.tactic-hand-target-cue{position:absolute;z-index:5;display:grid;place-items:center;min-width:28px;min-height:28px;border:2px solid color-mix(in oklch,oklch(.78 .17 300),white 30%);border-radius:999px;color:#fff;background:transparent;box-shadow:0 0 0 4px color-mix(in oklch,oklch(.78 .17 300),transparent 76%);line-height:1;pointer-events:none;animation:tactic-hand-target-arrive .62s var(--ease-out) both}.tactic-hand-target-cue[data-direction=east]{top:42%;right:-5px}.tactic-hand-target-cue[data-direction=southeast]{right:10%;bottom:10%}.tactic-hand-target-cue[data-direction=southwest]{bottom:10%;left:10%}.tactic-hand-target-cue[data-direction=west]{top:42%;left:-5px}.tactic-hand-target-cue[data-direction=northwest]{top:10%;left:10%}.tactic-hand-target-cue[data-direction=northeast]{top:10%;right:10%}@keyframes tactic-hand-target-arrive{0%{opacity:0;transform:scale(.55)}42%{opacity:1;transform:scale(1.16)}to{opacity:1;transform:scale(1)}}.hand-card-item{position:relative;width:100%;height:100%}.hand-card{--hand-card-selection: var(--primary-pale);position:relative;width:100%;height:100%;padding:0;border:0;border-radius:8px;background:transparent;cursor:grab;transition:transform .18s var(--ease-out)}.hand-card svg{display:block;width:134px;height:124px;margin:0 auto;overflow:visible}.hand-card.is-scanned-by-opponent:after{content:"REVEALED TO OPPONENT";position:absolute;z-index:2;top:4px;right:4px;border-radius:999px;padding:3px 6px;color:#fff;background:var(--primary-deep);box-shadow:0 2px 8px color-mix(in oklch,var(--primary-deep),transparent 65%);font-size:7px;font-weight:900;letter-spacing:.04em}.hand-card .card-fill{transition:stroke .18s var(--ease-out),stroke-width .18s var(--ease-out),filter .18s var(--ease-out)}.hand-card__name{display:-webkit-box;max-width:100%;min-height:15px;margin-top:-3px;overflow:hidden;font-size:13px;font-weight:720;line-height:1.15;text-overflow:ellipsis;-webkit-box-orient:vertical;-webkit-line-clamp:2}.hand-card__meta{display:block;margin-top:3px;color:var(--muted);font-size:10px;font-weight:650;line-height:1.15}.hand-card__rarity{text-transform:capitalize}.hand-card:hover:not(:disabled):not([aria-disabled=true]){transform:translateY(-2px)}.hand-card.is-selected{transform:translateY(-2px)}.hand-card.is-selected .card-fill{stroke:var(--hand-card-selection);stroke-width:3px}.hand-card.is-card-selection-target .card-fill{stroke:var(--card-selection-target);stroke-width:4.5px;filter:drop-shadow(0 0 4px color-mix(in oklch,var(--card-selection-target),transparent 28%))}.hand-card.is-card-selection-target:hover .card-fill,.hand-card.is-card-selection-target:focus-visible .card-fill{stroke:color-mix(in oklch,var(--card-selection-target),white 28%)}.hand-card:focus{outline:none}.hand-card:focus-visible .card-fill{stroke:var(--focus);stroke-width:3px}.hand-card:focus-visible .hand-card__name{color:var(--focus);text-decoration:underline;text-underline-offset:2px}.hand-card:active:not(:disabled):not([aria-disabled=true]){transform:translateY(-1px)}.hand-card:disabled,.hand-card[aria-disabled=true]{cursor:default;opacity:.88}.hand-card__view{display:none}.empty-hand{margin:auto;color:var(--muted);font-size:12px}.fieldside-mobile-sheet{display:none}.expanded-hand{width:min(1120px,calc(100% - 32px));max-width:none;height:min(820px,calc(100dvh - 32px));max-height:none;border:0;border-radius:16px;padding:0;color:var(--ink);background:transparent}.expanded-hand::backdrop{background:color-mix(in oklch,var(--ink),transparent 24%)}.expanded-hand__panel{height:100%;display:grid;grid-template-rows:auto minmax(0,1fr);overflow:hidden;border-radius:inherit;background:var(--surface)}.expanded-hand__panel>header{display:flex;align-items:start;justify-content:space-between;gap:20px;padding:18px 20px 14px;border-bottom:1px solid var(--line)}.expanded-hand__panel>header span{color:var(--primary-deep);font-size:10px;font-weight:800}.expanded-hand__panel>header h2{margin:2px 0 0;font-size:24px}.expanded-hand__panel>header p{margin:4px 0 0;color:var(--muted);font-size:11px}.expanded-hand__actions{flex:0 0 auto;display:flex;align-items:center;gap:8px}.expanded-hand__actions>button:last-child{flex:0 0 auto;width:42px;height:42px;border:1px solid var(--line);border-radius:8px;color:var(--ink);background:var(--surface);font-size:26px;cursor:pointer}.expanded-hand__actions button:focus-visible{outline:3px solid var(--focus);outline-offset:1px}.expanded-hand__body{min-height:0;overflow-y:auto;overscroll-behavior:contain;padding:16px 20px 22px}.expanded-hand__body .card-browser__grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr))}.expanded-hand__body .card-browser__select{min-height:172px}.expanded-hand__body .card-browser__select svg{width:124px;height:116px}body:has(.expanded-hand[open]){overflow:hidden}@media(prefers-reduced-motion:reduce){.drawn-card__motion{display:none}.tactic-hand-target-cue{animation:none;opacity:1;transform:none}}@media(max-width:959px),(hover:none),(pointer:coarse),(pointer:none){.fieldside-mobile-sheet.is-human-card{box-shadow:inset 0 3px var(--primary)}.fieldside-mobile-sheet.is-ai-card{box-shadow:inset 0 3px var(--accent)}.hand-card__view{position:absolute;z-index:2;right:4px;bottom:1px;min-width:46px;height:28px;display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--match-divider);border-radius:7px;padding:3px 8px;color:var(--ink);background:var(--match-chrome-raised);font-size:9px;font-weight:800;cursor:zoom-in}.hand-card__view:before{content:"";position:absolute;inset:-8px 0}.hand-card__view:active{background:var(--primary-pale)}}.fieldside-mobile-sheet{position:fixed;isolation:isolate;inset:auto 0 0;z-index:50;height:min(72dvh,680px);min-height:min(430px,90dvh);display:none;grid-template-rows:auto auto minmax(0,1fr) auto;overflow:hidden;border-top:1px solid color-mix(in oklch,var(--campaign-table-inclusion),transparent 28%);border-radius:14px 14px 0 0;padding:8px 14px max(12px,env(safe-area-inset-bottom));color:#dbf0f3;background:radial-gradient(circle at 78% 16%,color-mix(in oklch,var(--campaign-table-inclusion),transparent 52%) 0 5%,transparent 25%),radial-gradient(circle at 12% 76%,color-mix(in oklch,var(--campaign-table-vein),transparent 78%) 0 3%,transparent 24%),var(--campaign-table-base);box-shadow:0 -6px 8px color-mix(in oklch,black,transparent 62%);animation:fieldside-sheet-in .22s var(--ease-out) both}.fieldside-mobile-sheet:before{content:"";position:absolute;z-index:-1;inset:0;background-image:var(--campaign-stage-image);background-position:center;background-size:cover;opacity:.14;filter:saturate(.72) contrast(1.08)}.fieldside-mobile-sheet__handle{width:38px;height:4px;margin:0 auto 6px;border-radius:999px;background:color-mix(in oklch,var(--campaign-table-vein),transparent 18%)}.fieldside-mobile-sheet>header{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:0 0 6px}.fieldside-mobile-sheet>header div{min-width:0}.fieldside-mobile-sheet>header span{color:var(--campaign-table-focus);font-size:9px;font-weight:800}.fieldside-mobile-sheet h2{overflow:hidden;margin:2px 0 0;color:#fff;font-size:18px;letter-spacing:-.02em;text-overflow:ellipsis;white-space:nowrap}.fieldside-mobile-sheet>header button{flex:0 0 auto;width:44px;height:44px;border:1px solid color-mix(in oklch,var(--campaign-table-vein),transparent 46%);border-radius:8px;color:#fff;background:color-mix(in oklch,var(--campaign-table-base),black 18%);font-size:25px;line-height:1;cursor:pointer}.fieldside-mobile-sheet__body{min-height:0;overflow-y:auto;overscroll-behavior:contain}.fieldside-mobile-sheet .fieldside-inspector__card{min-height:0;display:grid;place-items:center}.fieldside-mobile-sheet .fieldside-inspector__card svg{display:block;width:min(100%,330px);height:min(46dvh,420px);overflow:visible}.fieldside-mobile-sheet .fieldside-inspector__details{display:grid;justify-items:center;gap:4px;padding-bottom:8px;text-align:center}.fieldside-mobile-sheet .fieldside-inspector__details>span{color:color-mix(in oklch,var(--campaign-table-vein),white 20%);font-size:10px;font-weight:750;text-transform:capitalize}.fieldside-mobile-sheet .fieldside-inspector__details p{display:grid;gap:2px;max-width:38ch;margin:0}.fieldside-mobile-sheet .fieldside-inspector__details strong{color:#fff;font-size:12px}.fieldside-mobile-sheet .fieldside-inspector__details p span{color:#bfd6da;font-size:12px;line-height:1.4}.fieldside-mobile-sheet .fieldside-inspector__details p.fieldside-inspector__card-environment{display:flex;align-items:baseline;gap:6px;max-width:100%}.fieldside-mobile-sheet .fieldside-inspector__details p.fieldside-inspector__card-environment strong{color:var(--campaign-table-focus)}.fieldside-mobile-sheet .fieldside-inspector__details p.fieldside-inspector__card-environment span{color:#dbf0f3;font-weight:750}.fieldside-mobile-sheet .fieldside-inspector__details p.fieldside-inspector__ability{gap:3px;border:1px solid color-mix(in oklch,var(--campaign-table-focus),transparent 55%);border-radius:10px;padding:8px 12px;background:color-mix(in oklch,var(--campaign-table-base),black 35%)}.fieldside-mobile-sheet .fieldside-inspector__details p.fieldside-inspector__ability strong{color:var(--campaign-table-focus);font-size:15px}.fieldside-mobile-sheet .fieldside-inspector__details p.fieldside-inspector__ability span{color:#d6e9ec;font-size:14px;line-height:1.45}.fieldside-mobile-sheet .card-how-it-works{width:min(100%,38ch);margin-top:4px}.fieldside-mobile-sheet .card-how-it-works__trigger{min-height:44px;font-size:12px}.fieldside-mobile-sheet>footer{display:grid;grid-template-columns:1fr 1.2fr;gap:8px;padding-top:8px;border-top:1px solid color-mix(in oklch,var(--campaign-table-vein),transparent 72%)}.fieldside-mobile-sheet>footer button{min-height:44px;border-radius:8px;padding:8px 10px;font-size:11px;font-weight:800;cursor:pointer}.fieldside-mobile-sheet__close{border:1px solid color-mix(in oklch,var(--campaign-table-vein),transparent 48%);color:#fff;background:transparent}.fieldside-mobile-sheet__use{border:0;color:#00141d;color:oklch(.18 .04 226);background:var(--campaign-table-focus)}.fieldside-mobile-sheet__use:disabled{color:#9aa7aa;background:color-mix(in oklch,var(--campaign-table-base),white 12%);cursor:default}.fieldside-mobile-sheet--view-only>footer{grid-template-columns:1fr}@media(max-width:959px),(hover:none),(pointer:coarse),(pointer:none){.fieldside-mobile-sheet{display:grid}}@media(min-width:621px)and (max-width:959px)and (hover:hover)and (pointer:fine){.hand-card__view{opacity:0;pointer-events:none;transform:translateY(2px);transition:opacity .16s var(--ease-out),transform .16s var(--ease-out)}.hand-card-item:hover .hand-card__view,.hand-card-item:focus-within .hand-card__view{opacity:1;pointer-events:auto;transform:translateY(0)}}@keyframes fieldside-sheet-in{0%{transform:translateY(100%)}to{transform:translateY(0)}}.rarity-label{display:inline-flex;align-items:center;width:fit-content;max-width:100%;margin-inline:auto;border-radius:999px;padding:2px 5px;background:#dfdad6;color:#413933;font-size:8px;font-weight:800;line-height:1;text-transform:capitalize;white-space:nowrap}.rarity-label--uncommon{background:#cdead2;color:#05441d}.rarity-label--rare{background:#c9e5fe;color:#003b61;color:oklch(.34 .105 245)}.rarity-label--legendary{background:#fad8ab;color:#673200;color:oklch(.38 .105 55)}.rarity-label--mythic{background:#e8dafa;color:#472a64}.hand-card--tactic{cursor:pointer}.hand-card--tactic:disabled,.hand-card--tactic[aria-disabled=true]{cursor:default;opacity:.82}.hand-card__tactic-reason{display:block;margin-top:2px;padding:0 6px;color:var(--muted);font-size:9px;font-weight:650;line-height:1.2}.hand-heading__tactic-note{margin:2px 0 0;color:var(--primary-deep);font-size:11px;font-weight:750}.tactic-guide{border-color:color-mix(in oklch,var(--ability-target),oklch(.78 .13 75) 35%)}.discard-pile__trigger{width:100%;border:0;border-radius:7px;padding:3px;color:var(--ink);background:transparent;cursor:pointer}.discard-pile__trigger:hover{background:var(--primary-pale)}.discard-pile__trigger:focus-visible{outline:3px solid var(--focus);outline-offset:1px}.discard-pile__top{display:block;height:24px;overflow:hidden}.discard-pile__top svg{width:32px;height:36px;overflow:visible}.discard-pile__action{display:block;margin-top:2px;font-size:8px;font-weight:750}.discard-history{width:min(760px,calc(100% - 24px));max-height:min(760px,calc(100dvh - 24px));border:0;border-radius:14px;padding:0;color:var(--ink);background:transparent}.discard-history::backdrop{background:color-mix(in oklch,var(--ink),transparent 28%)}.discard-history__panel{max-height:inherit;display:flex;flex-direction:column;overflow:hidden;border-radius:inherit;background:var(--surface)}.discard-history__panel>header{display:flex;align-items:start;justify-content:space-between;gap:20px;padding:18px 20px 14px;border-bottom:1px solid var(--line)}.discard-history__panel>header span{color:var(--muted);font-size:11px;font-weight:750}.discard-history__panel>header h2{margin:2px 0 0;font-size:22px}.discard-history__panel>header p{margin:3px 0 0;color:var(--muted);font-size:12px}.discard-history__panel>header button{width:38px;height:38px;border:1px solid var(--line);border-radius:8px;color:var(--ink);background:var(--surface);font-size:24px;cursor:pointer}.discard-history__panel>header button:focus-visible{outline:3px solid var(--focus);outline-offset:1px}.discard-history__list{margin:0;padding:14px 20px 20px 48px;overflow-y:auto}.discard-history__list li{display:grid;grid-template-columns:126px minmax(0,1fr);align-items:center;gap:16px;padding:14px 0}.discard-history__list li+li{border-top:1px solid var(--line)}.discard-history__list svg{width:126px;height:136px;overflow:visible}.discard-history__list strong{display:block;font-size:16px}.discard-history__list dl,.discard-history__list dd{margin:0}.discard-history__list dl{display:grid;gap:8px;margin-top:10px}.discard-history__list dl div{display:grid;grid-template-columns:48px minmax(0,1fr);gap:8px}.discard-history__list dt{font-size:11px;font-weight:800}.discard-history__list dd{font-size:13px;line-height:1.4}@media(max-width:620px){.hand-tray-toolbar{margin-bottom:2px}.pile-chrome{flex-basis:58px}.discard-history{width:100%;max-height:86dvh;margin:auto 0 0;border-radius:14px 14px 0 0}.discard-history__list{padding:8px 14px 18px 34px}.discard-history__list li{grid-template-columns:94px minmax(0,1fr);gap:12px}.discard-history__list svg{width:94px;height:104px}.expanded-hand{width:100%;height:min(92dvh,760px);margin:auto 0 0;border-radius:16px 16px 0 0}.expanded-hand__panel>header{padding:14px}.expanded-hand__panel>header h2{font-size:20px}.expanded-hand__panel>header p{max-width:32ch}.expanded-hand__body{padding:12px 10px max(18px,env(safe-area-inset-bottom))}.expanded-hand__body .card-browser__grid{grid-template-columns:repeat(auto-fill,minmax(132px,1fr));gap:10px 7px}}.match-event-log{--match-log-void: rgb(7 16 19 / 94%);--match-log-panel: rgb(11 21 23 / 97%);--match-log-panel-soft: rgb(15 29 31 / 86%);--match-log-ink: var(--campaign-limestone-raised, #f2f0e6);--match-log-muted: #9aa7a5;--match-log-gold: var(--campaign-bronze, #a98643);--match-log-teal: var(--campaign-world-accent, #63c2bd);--match-log-opponent: var(--card-control-opponent, #d47d58);position:absolute;z-index:24;inset:0;pointer-events:none}.match-event-log.is-above-lab{z-index:54}.match-event-log__trigger{position:absolute;top:70px;right:18px;min-height:36px;border:1px solid color-mix(in oklch,var(--match-log-gold),transparent 28%);border-radius:999px;padding:7px 12px;color:var(--match-log-ink);background:var(--match-log-void);box-shadow:inset 0 0 0 1px #ffffff08;font-family:var(--font-mythic);font-size:10px;font-weight:400;letter-spacing:.09em;text-transform:uppercase;cursor:pointer;pointer-events:auto;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);transition:border-color .18s var(--ease-out),background .18s var(--ease-out),transform .18s var(--ease-out)}.match-event-log__trigger:hover{border-color:var(--match-log-gold);background:#0b1517fa;transform:translateY(-1px)}.match-event-log__trigger:active{transform:translateY(0)}.match-event-log__trigger:focus-visible{outline-color:var(--match-log-teal)}.match-event-log__backdrop{position:absolute;z-index:0;inset:0;border:0;padding:0;background:#0107098a;cursor:default;pointer-events:auto}.match-event-log__drawer{position:absolute;z-index:1;inset:0 0 0 auto;width:min(380px,100%);display:flex;flex-direction:column;border-left:1px solid color-mix(in oklch,var(--match-log-gold),transparent 20%);color:var(--match-log-ink);background:linear-gradient(145deg,var(--match-log-panel) 0%,var(--match-log-void) 70%,rgb(7 16 19 / 88%) 100%);box-shadow:-8px 0 12px #00000047;clip-path:polygon(10px 0,100% 0,100% 100%,10px 100%,0 calc(100% - 10px),0 10px);overflow:hidden;pointer-events:auto;isolation:isolate}.match-event-log__drawer:before{content:"";position:absolute;z-index:-1;inset:0;background-image:radial-gradient(ellipse 90% 55% at 10% 8%,color-mix(in oklch,var(--match-log-teal),transparent 86%),transparent 62%),radial-gradient(ellipse 85% 50% at 95% 92%,color-mix(in oklch,var(--match-log-gold),transparent 91%),transparent 68%),var(--campaign-stage-image, none);background-position:center,center,center;background-size:100% 100%,100% 100%,cover;background-repeat:no-repeat;filter:saturate(.45) contrast(1.08);opacity:.075;pointer-events:none}.match-event-log__drawer:after{content:"";position:absolute;z-index:2;top:12px;bottom:12px;left:0;width:1px;background:linear-gradient(transparent,var(--match-log-gold) 12%,var(--match-log-gold) 88%,transparent);box-shadow:0 0 10px color-mix(in oklch,var(--match-log-gold),transparent 58%);pointer-events:none}.match-event-log__header{position:relative;z-index:1;flex:0 0 auto;min-height:74px;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 14px 13px 22px;border-bottom:1px solid color-mix(in oklch,var(--match-log-gold),transparent 65%);background:#050d0f57}.match-event-log__header h2{margin:0;color:color-mix(in oklch,var(--match-log-gold),white 18%);font-family:var(--font-mythic);font-size:17px;font-weight:400;letter-spacing:.12em;line-height:1.2;text-transform:uppercase;text-shadow:0 0 12px color-mix(in oklch,var(--match-log-gold),transparent 72%)}.match-event-log__header p{margin:5px 0 0;color:var(--match-log-muted);font-size:9px;font-weight:750;letter-spacing:.09em;text-transform:uppercase}.match-event-log__header>button{position:relative;width:40px;height:40px;flex:0 0 40px;border:0;padding:0 0 2px;clip-path:polygon(25% 4%,75% 4%,100% 50%,75% 96%,25% 96%,0 50%);color:color-mix(in oklch,var(--match-log-gold),white 22%);background:#0b1517;box-shadow:inset 0 0 0 1px var(--match-log-gold);font-family:Inter,ui-sans-serif,system-ui,sans-serif;font-size:23px;line-height:1;cursor:pointer}.match-event-log__header>button:hover{color:#fff;background:var(--match-log-gold)}.match-event-log__header>button:focus-visible{outline-color:var(--match-log-teal);outline-offset:3px}.match-event-log__guidance,.match-event-log__empty{position:relative;z-index:1;margin:16px 20px;color:var(--match-log-muted);font-size:12px;line-height:1.5}.match-event-log__guidance{border:1px solid color-mix(in oklch,var(--match-log-teal),transparent 70%);border-radius:8px;padding:10px 12px;color:var(--match-log-ink);background:color-mix(in oklch,var(--match-log-teal),transparent 91%)}.match-event-log__back-to-live{position:relative;z-index:1;align-self:flex-start;min-height:34px;margin:12px 20px 0;border:1px solid color-mix(in oklch,var(--match-log-teal),transparent 18%);border-radius:7px;padding:6px 10px;color:#071013;background:var(--match-log-teal);font-size:10px;font-weight:850;letter-spacing:.05em;text-transform:uppercase;cursor:pointer}.match-event-log__back-to-live:focus-visible{outline:3px solid var(--match-log-gold);outline-offset:2px}.match-event-log__groups{position:relative;z-index:1;min-height:0;flex:1 1 auto;overflow-y:auto;overscroll-behavior:contain;padding:5px 16px 28px 18px;scrollbar-color:color-mix(in oklch,var(--match-log-gold),transparent 42%) transparent;scrollbar-gutter:stable}.match-event-log__group h3{position:sticky;z-index:2;top:0;display:flex;align-items:center;gap:10px;margin:0;padding:15px 4px 9px;color:color-mix(in oklch,var(--match-log-gold),white 10%);background:linear-gradient(180deg,#071013 70%,transparent);font-size:9px;font-weight:850;letter-spacing:.12em;text-transform:uppercase}.match-event-log__group h3:after{content:"";height:1px;flex:1;background:linear-gradient(90deg,color-mix(in oklch,var(--match-log-gold),transparent 52%),transparent)}.match-event-log__group ol{display:grid;gap:0;margin:0;padding:0;list-style:none}.match-event-log__group li{--event-color: var(--match-log-muted);position:relative;padding:0 0 8px 25px}.match-event-log__group li.is-human{--event-color: var(--match-log-teal)}.match-event-log__group li.is-opponent{--event-color: var(--match-log-opponent)}.match-event-log__group li.is-gold{--event-color: var(--match-log-gold)}.match-event-log__group li.is-major{--event-color: color-mix(in oklch, var(--match-log-gold), white 24%)}.match-event-log__group li:not(:last-child):after{content:"";position:absolute;top:24px;bottom:-3px;left:8px;width:1px;background:linear-gradient(var(--event-color),color-mix(in oklch,var(--match-log-gold),transparent 76%));opacity:.48}.match-event-log__marker{position:absolute;z-index:1;top:13px;left:0;width:17px;height:15px;display:grid;place-items:center;clip-path:polygon(25% 0,75% 0,100% 50%,75% 100%,25% 100%,0 50%);color:#071013;background:var(--event-color);font-size:8px;font-weight:900;line-height:1}.match-event-log__group li>button{position:relative;width:100%;display:grid;gap:5px;overflow:hidden;border:1px solid rgb(255 255 255 / 6%);border-radius:7px;padding:10px 11px 10px 13px;text-align:left;color:var(--match-log-ink);background:var(--match-log-panel-soft);cursor:pointer;transition:border-color .18s var(--ease-out),background .18s var(--ease-out),transform .18s var(--ease-out)}.match-event-log__group li>button:before{content:"";position:absolute;top:10px;bottom:10px;left:0;width:2px;background:var(--event-color);opacity:.82}.match-event-log__group li>button:hover{border-color:color-mix(in oklch,var(--event-color),transparent 48%);background:color-mix(in oklch,var(--event-color),var(--match-log-panel-soft) 90%);transform:translate(2px)}.match-event-log__group li>button[aria-pressed=true]{border-color:color-mix(in oklch,var(--event-color),white 8%);background:linear-gradient(90deg,color-mix(in oklch,var(--event-color),transparent 84%),transparent 42%),var(--match-log-panel-soft)}.match-event-log__group li>button:focus-visible{outline-color:var(--event-color);outline-offset:1px}.match-event-log__group li>button:disabled{color:color-mix(in oklch,var(--match-log-muted),transparent 18%);background:#0e191ba3;cursor:not-allowed;transform:none}.match-event-log__group li>button:disabled:before{opacity:.28}.match-event-log__event-heading{display:flex;align-items:baseline;justify-content:space-between;gap:12px;min-width:0}.match-event-log__event-heading>span{min-width:0;display:flex;align-items:baseline;gap:7px}.match-event-log__event-heading b{overflow:hidden;color:var(--event-color);font-size:9px;font-weight:900;letter-spacing:.09em;text-overflow:ellipsis;text-transform:uppercase;white-space:nowrap}.match-event-log__event-heading em{color:var(--match-log-muted);font-size:8px;font-style:normal;font-weight:750;letter-spacing:.07em;text-transform:uppercase}.match-event-log__event-heading time{flex:0 0 auto;color:color-mix(in oklch,var(--match-log-muted),transparent 18%);font-size:9px;font-variant-numeric:tabular-nums;letter-spacing:.04em}.match-event-log__summary{overflow:hidden;color:var(--match-log-ink);font-size:12px;font-weight:750;line-height:1.3;text-overflow:ellipsis;white-space:nowrap}.match-event-log__text{color:var(--match-log-muted);font-size:11px;line-height:1.4}.match-event-log__facts{display:flex;flex-wrap:wrap;gap:0;color:color-mix(in oklch,var(--event-color),white 12%);font-size:9px;font-style:italic;line-height:1.35}.match-event-log__facts i{font-style:inherit}.match-event-log__facts i:not(:last-child):after{content:" · ";color:var(--match-log-muted)}.match-event-log__moment-bar{--match-log-ink: var(--campaign-limestone-raised, #f2f0e6);--match-log-muted: #9aa7a5;--match-log-gold: var(--campaign-bronze, #a98643);--match-log-teal: var(--campaign-world-accent, #63c2bd);position:fixed;z-index:58;right:max(8px,env(safe-area-inset-right));bottom:max(8px,env(safe-area-inset-bottom));left:max(8px,env(safe-area-inset-left));min-height:68px;display:grid;grid-template-columns:30px minmax(0,1fr) auto;align-items:center;gap:9px;border-top:1px solid color-mix(in oklch,var(--match-log-gold),transparent 24%);padding:9px 10px;color:var(--match-log-ink);background:#071013f5;box-shadow:0 -6px 12px #0000003d;clip-path:polygon(8px 0,calc(100% - 8px) 0,100% 8px,100% 100%,0 100%,0 8px);pointer-events:auto}.match-event-log__moment-marker{width:26px;height:23px;display:grid;place-items:center;clip-path:polygon(25% 0,75% 0,100% 50%,75% 100%,25% 100%,0 50%);color:#071013;background:var(--match-log-teal);font-size:11px;font-weight:900}.match-event-log__moment-bar p{min-width:0;margin:0}.match-event-log__moment-bar p span,.match-event-log__moment-bar p strong{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.match-event-log__moment-bar p span{color:var(--match-log-muted);font-size:9px;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.match-event-log__moment-bar p strong{margin-top:3px;font-size:12px;line-height:1.25}.match-event-log__moment-bar>div{display:flex;gap:6px}.match-event-log__moment-bar button{min-width:54px;min-height:44px;border:1px solid color-mix(in oklch,var(--match-log-gold),transparent 42%);border-radius:6px;padding:5px 8px;color:var(--match-log-ink);background:#0b1517;font-size:9px;font-weight:850;letter-spacing:.04em;text-transform:uppercase;cursor:pointer}.match-event-log__moment-bar button:last-child{border-color:color-mix(in oklch,var(--match-log-teal),transparent 26%);color:#071013;background:var(--match-log-teal)}.match-event-log__moment-bar button:focus-visible{outline:3px solid var(--match-log-gold);outline-offset:2px}.hand-zone.is-viewing-moment{opacity:.48;filter:saturate(.58);transition:opacity .14s var(--ease-out),filter .14s var(--ease-out)}@container match-column (max-width: 959px){.match-event-log__trigger{top:8px;right:64px;min-height:34px;padding:6px 10px}.match-event-log__backdrop{background:linear-gradient(180deg,#01070957,#0107099e)}.match-event-log__drawer{inset:auto 0 0;width:100%;height:min(58dvh,480px);border-top:1px solid color-mix(in oklch,var(--match-log-gold),transparent 20%);border-left:0;box-shadow:none;clip-path:polygon(10px 0,calc(100% - 10px) 0,100% 10px,100% 100%,0 100%,0 10px)}.match-event-log__drawer:after{inset:0 12px auto;width:auto;height:1px;background:linear-gradient(90deg,transparent,var(--match-log-gold) 12%,var(--match-log-gold) 88%,transparent);box-shadow:0 0 10px color-mix(in oklch,var(--match-log-gold),transparent 58%)}.match-event-log__header{min-height:64px;padding:10px 12px 9px 18px}.match-event-log__header>button{width:44px;height:44px;flex-basis:44px}.match-event-log__groups{padding-bottom:max(20px,env(safe-area-inset-bottom))}.match-event-log__group li>button{min-height:56px}.match-event-log.is-compact-moment .match-event-log__trigger,.match-event-log.is-compact-moment .match-event-log__backdrop,.match-event-log.is-compact-moment .match-event-log__drawer,.match-shell.is-viewing-moment .opponent-zone,.match-shell.is-viewing-moment .hand-zone{display:none}.match-shell.is-viewing-moment .match-board-region{min-height:0;padding-bottom:calc(76px + env(safe-area-inset-bottom))}.match-shell.is-viewing-moment .turn-indicator--board{position:relative;z-index:2;min-width:0;display:grid;align-self:center;margin:8px 12px 0}.match-shell.is-viewing-moment .fieldside-stage,.match-shell.is-viewing-moment .fieldside-board-column,.match-shell.is-viewing-moment .board-wrap{min-height:0;max-height:none}.match-shell.is-viewing-moment .board{min-height:0;max-height:100%}.match-shell.is-viewing-moment .fieldside-inspector{display:none}}@media(prefers-reduced-motion:reduce){.match-event-log__trigger,.match-event-log__group li>button,.match-event-log__moment-bar,.hand-zone.is-viewing-moment{transition:none}}.revealed-hand-card{display:grid;justify-items:center;gap:3px;padding:4px;border:1px solid var(--match-divider, #657d82);border-radius:6px;background:transparent;color:inherit;cursor:pointer}.revealed-hand-card:hover,.revealed-hand-card:focus-visible{outline:2px solid var(--campaign-world-accent, #e0c47b);outline-offset:2px}.revealed-hand-card__label{font-size:11px;color:var(--campaign-world-accent, #e0c47b);white-space:nowrap}.fieldside-mobile-sheet.fieldside-mobile-sheet--revealed{display:grid}@media(min-width:960px)and (hover:hover)and (pointer:fine){.fieldside-mobile-sheet--revealed{inset:110px auto auto 20px;width:min(360px,32vw);height:min(680px,calc(100dvh - 130px));min-height:0;border:1px solid var(--accent);border-radius:14px}}.roster-setup{flex:1;min-width:0;padding:28px 32px 24px;background:#eeeae7}.roster-intro{display:flex;align-items:flex-start;justify-content:space-between;gap:24px;max-width:940px;margin:0 auto 18px}.roster-intro h2{margin:0;font-size:22px;letter-spacing:-.025em;text-wrap:balance}.roster-intro p{max-width:62ch;margin:6px 0 0;color:var(--muted);font-size:12px;line-height:1.5;text-wrap:pretty}.roster-count{flex:0 0 auto;display:flex;align-items:baseline;gap:5px;padding-top:2px}.roster-count strong{color:var(--accent);font-size:25px;line-height:1;font-variant-numeric:tabular-nums}.roster-count span{color:var(--muted);font-size:11px}.deck-builder__eyebrow{display:block;margin-bottom:5px;color:var(--accent);font-size:9px;font-weight:850;letter-spacing:.1em;text-transform:uppercase}.deck-summary{display:flex;align-items:center;gap:7px;max-width:940px;margin:0 auto 12px;overflow-x:auto}.deck-summary span{flex:0 0 auto;border:1px solid var(--line);border-radius:999px;padding:5px 9px;color:var(--muted);background:var(--surface);font-size:9px;font-variant-numeric:tabular-nums}.deck-summary b{color:var(--ink);font-size:10px}.ability-experiment-launcher{display:grid;grid-template-columns:minmax(220px,1fr) minmax(170px,210px) auto;align-items:end;gap:12px;max-width:940px;margin:0 auto 18px;border:1px solid var(--line);border-radius:10px;padding:11px 12px;background:var(--surface);transition:border-color .16s var(--ease-out),background .16s var(--ease-out)}.ability-experiment-launcher.has-pending-change{border-color:var(--accent);background:var(--accent-pale)}.ability-experiment-launcher>div{align-self:center;min-width:0}.ability-experiment-launcher>div strong,.ability-experiment-launcher>div span{display:block}.ability-experiment-launcher>div strong{font-size:12px}.ability-experiment-launcher>div span{margin-top:3px;color:var(--muted);font-size:9px;line-height:1.35}.ability-experiment-launcher>button{min-height:40px;border-radius:7px;font:inherit}.ability-experiment-launcher>button:last-child{border:0;padding:8px 13px;color:#fff;background:var(--accent);font-size:11px;font-weight:800;white-space:nowrap;cursor:pointer;transition:background .16s var(--ease-out),transform .16s var(--ease-out)}.ability-experiment-launcher>button:last-child:hover{background:#035;background:oklch(.31 .11 245);transform:translateY(-1px)}.ability-experiment-launcher>button:last-child:active{transform:translateY(0)}.ability-experiment-launcher button:focus-visible{outline:3px solid var(--accent);outline-offset:2px}.ability-experiment-picker-trigger{min-width:0;display:grid;grid-template-columns:1fr auto;align-content:center;border:1px solid var(--line);padding:6px 9px;color:var(--ink);background:var(--surface);text-align:left;cursor:pointer;transition:border-color .16s var(--ease-out),background .16s var(--ease-out)}.ability-experiment-picker-trigger:hover{border-color:var(--accent);background:color-mix(in oklch,var(--accent-pale),white 46%)}.ability-experiment-picker-trigger>span{grid-column:1;color:var(--muted);font-size:8px;font-weight:750}.ability-experiment-picker-trigger>strong{grid-column:1;overflow:hidden;margin-top:2px;font-size:10px;text-overflow:ellipsis;white-space:nowrap}.ability-experiment-picker-trigger>b{grid-column:2;grid-row:1 / 3;align-self:center;padding-left:10px;color:var(--accent);font-size:19px;font-weight:500;line-height:1}.ability-picker-dialog{position:fixed;inset:0;z-index:70;width:100%;max-width:none;height:100dvh;max-height:none;margin:0;border:0;padding:24px;place-items:center;background:transparent}.ability-picker-dialog:not([open]){display:none}.ability-picker-dialog[open]{display:grid}.ability-picker-dialog::backdrop{background:color-mix(in oklch,var(--ink),transparent 38%)}.ability-picker-panel{width:min(640px,100%);max-height:min(760px,calc(100dvh - 48px));display:grid;grid-template-rows:auto auto minmax(0,1fr) auto;overflow:hidden;border-radius:12px;color:var(--ink);background:var(--surface);box-shadow:0 8px 8px color-mix(in oklch,var(--ink),transparent 72%)}.ability-picker-panel>header{display:flex;align-items:flex-start;justify-content:space-between;gap:24px;padding:22px 22px 17px;border-bottom:1px solid var(--line)}.ability-picker-panel h2{margin:0;font-size:20px;letter-spacing:-.025em}.ability-picker-panel header p{max-width:58ch;margin:5px 0 0;color:var(--muted);font-size:11px;line-height:1.45}.ability-picker-close{flex:0 0 auto;width:36px;height:36px;border:0;border-radius:7px;color:var(--muted);background:var(--surface-raised);font-size:23px;line-height:1;cursor:pointer}.ability-picker-close:hover{color:var(--ink);background:var(--accent-pale)}.ability-picker-summary{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px 22px;border-bottom:1px solid var(--line)}.ability-picker-summary strong{color:var(--accent);font-size:11px}.ability-picker-summary button{border:0;padding:5px 0;color:var(--accent);background:transparent;font-size:10px;font-weight:750;cursor:pointer}.ability-picker-summary button:disabled{color:var(--muted);cursor:default;opacity:.55}.ability-picker-options{overflow-y:auto;padding:7px 10px;overscroll-behavior:contain}.ability-picker-option{position:relative;display:grid;grid-template-columns:22px 1fr;gap:10px;border-radius:8px;padding:10px 12px;cursor:pointer;transition:background .15s var(--ease-out)}.ability-picker-option:hover{background:var(--surface-raised)}.ability-picker-option.is-selected{background:var(--accent-pale)}.ability-picker-option.is-disabled{cursor:not-allowed;opacity:.48}.ability-picker-option input{position:absolute;width:1px;height:1px;overflow:hidden;opacity:0}.ability-picker-check{width:20px;height:20px;display:grid;place-items:center;border:1px solid var(--line);border-radius:5px;color:transparent;background:#fff;font-size:12px;font-weight:900}.ability-picker-option.is-selected .ability-picker-check{border-color:var(--accent);color:#fff;background:var(--accent)}.ability-picker-option:has(input:focus-visible){outline:3px solid var(--accent);outline-offset:-1px}.ability-picker-option>span:last-child{min-width:0}.ability-picker-option strong,.ability-picker-option small{display:block}.ability-picker-option strong{font-size:11px}.ability-picker-option small{margin-top:3px;color:var(--muted);font-size:9px;line-height:1.4}.ability-picker-panel>footer{display:flex;justify-content:flex-end;gap:8px;padding:14px 22px;border-top:1px solid var(--line)}.ability-picker-panel>footer button{min-height:38px;border-radius:7px;padding:8px 13px;font-size:11px;font-weight:800;cursor:pointer}.ability-picker-cancel{border:1px solid var(--line);color:var(--ink);background:var(--surface)}.ability-picker-apply{border:0;color:#fff;background:var(--accent)}.ability-picker-panel button:focus-visible{outline:3px solid var(--accent);outline-offset:2px}body:has(.ability-picker-dialog[open]){overflow:hidden}.roster-tray{display:flex;gap:7px;max-width:940px;margin:0 auto 24px;overflow-x:auto;padding:2px}.roster-slot{min-width:112px;min-height:46px;display:grid;grid-template-columns:22px 1fr;align-items:center;gap:7px;border:1px dashed oklch(.7 .012 60);border-radius:8px;padding:7px 9px;background:transparent;color:var(--muted);text-align:left}.roster-slot>span{display:grid;width:22px;height:22px;place-items:center;border-radius:50%;background:#d8d3cf;font-size:10px;font-weight:800;font-variant-numeric:tabular-nums}.roster-slot b{overflow:hidden;font-size:10px;text-overflow:ellipsis;white-space:nowrap}.roster-slot.is-filled{border-style:solid;border-color:var(--accent);background:var(--accent-pale);color:var(--accent);cursor:pointer;transition:background .16s var(--ease-out),transform .16s var(--ease-out)}.roster-slot.is-filled:hover{background:color-mix(in oklch,var(--accent-pale),var(--accent) 7%);transform:translateY(-1px)}.roster-slot.is-filled>span{background:var(--accent);color:#fff}.collection-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;max-width:940px;margin:0 auto 10px}.collection-heading h3{margin:0;font-size:14px}.collection-heading p{margin:3px 0 0;color:var(--muted);font-size:10px}.collection-actions{display:flex;gap:6px}.collection-actions button{border:1px solid var(--line);border-radius:7px;padding:6px 9px;background:var(--surface);font-size:10px;font-weight:700;cursor:pointer;transition:border-color .16s var(--ease-out),background .16s var(--ease-out)}.collection-actions button:hover:not(:disabled){border-color:var(--accent);background:var(--accent-pale)}.collection-actions button:disabled{color:#8e8883;cursor:default}.collection-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(112px,1fr));gap:8px;max-width:940px;margin:0 auto}.collection-card{position:relative;min-width:0;height:148px;border:1px solid var(--line);border-radius:10px;background:var(--surface);transition:border-color .18s var(--ease-out),background .18s var(--ease-out),transform .18s var(--ease-out);overflow:hidden}.collection-card:hover{border-color:var(--accent);transform:translateY(-2px)}.collection-card.is-selected{border:2px solid var(--accent);background:var(--accent-pale)}.collection-card__select{width:100%;height:100%;border:0;padding:5px 5px 9px;background:transparent;cursor:pointer}.collection-card__select:disabled{cursor:default;opacity:.42}.collection-card svg{display:block;width:88px;height:83px;margin:0 auto -2px;overflow:visible}.collection-card__pick{position:absolute;top:7px;right:7px;z-index:1;display:grid;width:21px;height:21px;place-items:center;border-radius:50%;background:#e0d9d4;color:var(--muted);font-size:11px;font-weight:800}.collection-card.is-selected .collection-card__pick{background:var(--accent);color:#fff}.collection-card__preview{position:absolute;top:7px;left:7px;z-index:2;width:25px;height:25px;display:grid;place-items:center;border:0;border-radius:6px;color:var(--ink);background:color-mix(in oklch,white,transparent 12%);box-shadow:0 1px 4px color-mix(in oklch,var(--ink),transparent 78%);font-size:14px;line-height:1;cursor:zoom-in}.collection-card__preview:hover{color:#fff;background:var(--accent)}.collection-card__name,.collection-card__profile{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.collection-card__name{font-size:11px;font-weight:800}.collection-card__details{display:block;margin-top:3px;min-width:0}.collection-card__profile{margin-top:3px;color:var(--muted);font-size:8px}.card-preview-layer{position:fixed;inset:0;z-index:60;width:100%;max-width:none;height:100dvh;max-height:none;margin:0;border:0;padding:24px;place-items:center;background:color-mix(in oklch,var(--ink),transparent 8%);cursor:zoom-out}.card-preview-layer:not([open]){display:none}.card-preview-layer[open]{display:grid}.card-preview-layer::backdrop{background:transparent}.card-preview-panel{position:relative;width:min(920px,100%);height:min(860px,calc(100dvh - 48px));display:grid;grid-template-rows:auto 1fr auto;color:#fff;cursor:default}.card-preview-panel>header{display:flex;align-items:center;justify-content:space-between;gap:24px;padding-bottom:12px}.card-preview-panel h2{margin:0;color:#fff;font-size:24px;letter-spacing:-.025em}.card-preview-panel p{margin:4px 0 0;color:#b7c6d4;font-size:12px;text-transform:capitalize}.card-preview-close{width:44px;height:44px;border:1px solid color-mix(in oklch,white,transparent 72%);border-radius:8px;color:#fff;background:transparent;font-size:28px;line-height:1;cursor:pointer}.card-preview-close:hover{background:color-mix(in oklch,white,transparent 88%)}.card-preview-hero{min-height:0;display:grid;place-items:center}.card-preview-hero svg{display:block;width:min(78vw,720px);height:min(78vh,720px);overflow:visible}.card-preview-hero .card-face--human .card-artwork-tint{opacity:.16}.card-preview-hero .card-core{opacity:0}body:has(.card-preview-layer[open]){overflow:hidden}.roster-footer{display:flex;align-items:center;justify-content:flex-end;gap:14px;max-width:940px;margin:18px auto 0}.roster-footer p{margin:0;max-width:54ch;color:var(--muted);font-size:11px;line-height:1.4}.start-match-button{min-width:128px;border:0;border-radius:8px;padding:11px 16px;background:var(--accent);color:#fff;font-size:12px;font-weight:800;cursor:pointer;transition:background .18s var(--ease-out),transform .18s var(--ease-out)}.start-match-button:hover:not(:disabled){background:#035;background:oklch(.31 .11 245);transform:translateY(-1px)}.start-match-button:active:not(:disabled){transform:translateY(0)}.start-match-button:disabled{background:#b1a9a3;cursor:not-allowed}.campaign-atlas:has(.universe-explorer){padding:0;background:#05080d;container-type:size;position:relative;overflow:hidden}.campaign-atlas:has(.universe-explorer)>header{position:absolute;top:18px;left:132px;z-index:2;padding:0;margin:0;pointer-events:none}.app-shell--campaign .campaign-atlas:has(.universe-explorer)>header{top:auto;bottom:48px;left:18px}.app-shell--campaign .universe-brand{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.campaign-atlas:has(.universe-explorer)>header h2{font-size:32px;letter-spacing:-.03em}.universe-brand{display:flex;align-items:center;gap:14px}.universe-brand-mark{width:60px;height:60px;object-fit:contain;mix-blend-mode:screen}.universe-brand-wordmark{width:220px;max-width:calc(100% - 74px);height:auto}.universe-explorer{height:100%}.universe-instructions{position:absolute;bottom:12px;left:18px;z-index:2;max-width:calc(100% - 36px);margin:0;padding:7px 10px;border-radius:5px;background:#05080dcc;color:#e3ebf5;font-size:12px;pointer-events:none}.universe-scroll{height:100%;overflow:auto}.universe-map{--universe-ratio: calc(1672 / 941);position:relative;width:max(100cqw,calc(100cqh * var(--universe-ratio)),900px);aspect-ratio:var(--universe-ratio)}.universe-systems>li{--system-x: var(--standard-x);--system-y: var(--standard-y)}@media(min-aspect-ratio:2/1){.universe-map{--universe-ratio: calc(1942 / 809)}.universe-systems>li{--system-x: var(--wide-x);--system-y: var(--wide-y)}}.universe-backdrop{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}.universe-systems{list-style:none;padding:0;margin:0}.universe-marker{position:absolute;left:var(--system-x);top:var(--system-y);transform:translate(-50%,-50%);display:grid;place-items:center;gap:4px;min-width:64px;min-height:48px;padding:7px;border:0;border-radius:6px;background:transparent;color:#fff;cursor:pointer}.universe-marker-dot{width:9px;height:9px;border-radius:50%;background:#fff4d7;box-shadow:0 0 0 4px #0a101bcc,0 0 0 5px var(--system-color),0 0 18px var(--system-color);transition:transform .18s ease-out}.universe-marker-name{padding:3px 6px;border-radius:3px;background:#070d187a;color:#fff;text-shadow:0 1px 3px #000,0 0 5px #000;font-size:11px;font-weight:700}.universe-marker:hover .universe-marker-dot,.universe-marker[aria-expanded=true] .universe-marker-dot{transform:scale(1.35)}.universe-marker:focus-visible,.universe-preview button:focus-visible{outline:3px solid #d8edff;outline-offset:4px}.universe-preview{position:absolute;z-index:5;left:clamp(12px,calc(var(--system-x) + 40px),calc(100% - 268px));top:clamp(12px,calc(var(--system-y) - 130px),max(12px,calc(100% - 310px)));width:248px;padding:12px 18px 18px;color:#fff;text-align:center;animation:universe-reveal .18s ease-out;pointer-events:none}.universe-preview>*{pointer-events:auto}.universe-preview h3{width:fit-content;margin:0 auto 16px;font-size:23px;text-shadow:0 1px 3px #000,0 0 8px #000}.universe-enter{width:100%;min-height:44px;border:0;border-radius:6px;padding:10px;background:#d8eaff;color:#0a1728;font:inherit;font-size:13px;font-weight:750;cursor:pointer}.universe-enter:hover{background:#fff}.universe-globe{position:relative;width:180px;height:180px;margin:-5px auto;display:grid;place-items:center}.universe-globe canvas{width:100%;height:100%}.universe-preview>.universe-globe{pointer-events:none}.universe-globe:before{content:"";position:absolute;inset:10%;border-radius:50%;pointer-events:auto}.universe-globe:not(.is-ready) canvas{visibility:hidden}.universe-globe .world-icon{position:absolute;--world-icon-size: 130px}.universe-globe small{position:absolute;bottom:0;color:#ccd6e2;text-shadow:0 1px 3px #000}.lab-universe-atlas{height:100dvh;min-height:520px}.lab-universe-atlas:fullscreen{width:100vw;height:100dvh;min-height:0;background:#05080d}.lab-universe-atlas .campaign-atlas{height:100%}.lab-universe-atlas .campaign-atlas>header{inset:auto 18px 28px auto;max-width:min(520px,calc(100% - 36px));color:#fff;text-align:right;pointer-events:auto}.lab-universe-atlas .campaign-atlas>header>p{margin:0;color:#ccd6e2;font-size:12px;line-height:1.45}.lab-universe-atlas .campaign-atlas>header>p:first-child{color:#d8eaff;font-size:10px;font-weight:800;letter-spacing:.07em;text-transform:uppercase}.lab-universe-atlas .campaign-atlas>header h1{margin:4px 0 7px;font-size:clamp(24px,3vw,32px);letter-spacing:-.03em}.lab-universe-atlas__fullscreen{min-height:36px;margin-top:12px;border:1px solid #d8eaff;border-radius:6px;padding:7px 11px;background:#d8eaff;color:#0a1728;font:inherit;font-size:12px;font-weight:750;cursor:pointer}.lab-universe-atlas__fullscreen:hover{background:#fff}.lab-universe-atlas__fullscreen:focus-visible{outline:3px solid #d8eaff;outline-offset:3px}.lab-universe-atlas .universe-map{width:max(100cqw,900px)}@keyframes universe-reveal{0%{opacity:0;transform:translateY(6px) scale(.97)}to{opacity:1;transform:none}}@media(max-width:700px){.campaign-atlas:has(.universe-explorer)>header{left:112px}.universe-brand{gap:6px}.universe-brand-mark{width:36px;height:36px}.universe-brand-wordmark{width:150px;max-width:calc(100% - 42px)}.lab-universe-atlas{min-height:440px}.lab-universe-atlas .campaign-atlas>header{right:14px;bottom:44px;left:auto;max-width:calc(100% - 28px)}.lab-universe-atlas__fullscreen{min-height:44px}.universe-instructions{bottom:8px;font-size:11px}.universe-preview{position:fixed;top:auto;bottom:14px;left:14px;width:calc(100% - 28px);max-height:48dvh;overflow:auto}.universe-globe{width:140px;height:140px}}@media(prefers-reduced-motion:reduce){.universe-preview{animation:none}.universe-marker-dot{transition:none}}.campaign-map-preview{--campaign-aegean: oklch(.31 .079 238);--campaign-aegean-deep: oklch(.22 .058 238);--campaign-aegean-ink: oklch(.16 .042 238);--campaign-limestone-raised: oklch(.975 .018 82);--campaign-limestone-muted: oklch(.87 .035 79);--campaign-limestone: oklch(.94 .026 82);--campaign-bronze: oklch(.59 .104 73);--campaign-ink: oklch(.24 .028 60);--campaign-muted: oklch(.43 .03 61);--campaign-olive: oklch(.42 .071 112);--campaign-world-deep: oklch(.22 .075 225);--campaign-world-mid: oklch(.48 .105 205);--campaign-world-accent: oklch(.76 .12 176);color:var(--campaign-limestone-raised)}.campaign-journey{position:absolute;inset:0;z-index:1;overflow:hidden;color:var(--campaign-limestone-raised);background:var(--campaign-world-deep)}.campaign-journey>.world-map{position:absolute;inset:0;margin:0;overflow:hidden;padding:0;background:radial-gradient(circle at 50% 45%,color-mix(in oklch,var(--campaign-world-mid),transparent 28%),transparent 68%),var(--campaign-world-deep)}.campaign-journey>.world-map>header{display:none}.campaign-journey-nav{position:absolute;top:96px;left:28px;z-index:8;max-width:calc(100% - 56px);min-height:44px;display:flex;align-items:center;gap:8px;border-radius:9px;padding:7px 10px;color:var(--campaign-limestone-muted);background:#000d17f0;background:oklch(.15 .043 235 / .94);box-shadow:0 4px 8px #0004084d;box-shadow:0 4px 8px oklch(.1 .03 235 / .3);font-size:11px}.campaign-journey-nav button{min-height:30px;border:0;border-radius:5px;padding:5px 7px;color:var(--campaign-world-accent);background:transparent;font:inherit;font-weight:800;cursor:pointer}.campaign-journey-nav button:hover{background:color-mix(in oklch,var(--campaign-world-accent),transparent 84%)}.campaign-journey-nav button:focus-visible{outline:3px solid var(--focus);outline-offset:2px}.campaign-journey-nav strong{overflow:hidden;color:var(--campaign-limestone-raised);text-overflow:ellipsis;white-space:nowrap}.campaign-journey-nav small{margin-left:5px;color:var(--campaign-world-accent);font-size:9px;font-weight:800;text-transform:uppercase;letter-spacing:.05em}.campaign-atlas{height:100%;overflow:auto;padding:104px 28px 36px;background:radial-gradient(circle at 82% 14%,color-mix(in oklch,var(--campaign-world-mid),transparent 72%),transparent 34%),linear-gradient(145deg,color-mix(in oklch,var(--campaign-world-deep),black 4%),#00050b);background:radial-gradient(circle at 82% 14%,color-mix(in oklch,var(--campaign-world-mid),transparent 72%),transparent 34%),linear-gradient(145deg,color-mix(in oklch,var(--campaign-world-deep),black 4%),oklch(.11 .035 235))}.campaign-atlas>header{max-width:1180px;margin:0 auto 22px}.campaign-atlas>header span{color:var(--campaign-world-accent);font-size:10px;font-weight:850;text-transform:uppercase;letter-spacing:.07em}.campaign-atlas>header h2{margin:5px 0 7px;font-size:clamp(28px,4vw,48px);line-height:1;letter-spacing:-.045em}.campaign-atlas>header p{max-width:68ch;margin:0;color:var(--campaign-limestone-muted);font-size:13px;line-height:1.5}.campaign-atlas>header .campaign-atlas-reward{margin-top:9px;color:var(--campaign-world-accent);font-weight:800}.campaign-atlas-worlds{position:relative;max-width:1180px;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:0 auto;padding:0;list-style:none}.campaign-atlas-worlds:before{content:"";position:absolute;inset:50% 4%;z-index:0;border-top:2px dotted color-mix(in oklch,var(--campaign-world-accent),transparent 58%);pointer-events:none}.campaign-atlas-worlds li{position:relative;z-index:1;min-width:0}.campaign-atlas-worlds button{width:100%;min-height:88px;display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:10px;border:1px solid color-mix(in oklch,var(--campaign-world-accent),transparent 68%);border-radius:10px;padding:10px;color:var(--campaign-limestone-raised);background:#000d17f0;background:oklch(.15 .043 235 / .94);box-shadow:0 3px 7px #00020447;box-shadow:0 3px 7px oklch(.08 .025 235 / .28);font:inherit;text-align:left;cursor:pointer;transition:border-color .18s var(--ease-out),background .18s var(--ease-out),transform .18s var(--ease-out)}.campaign-atlas-worlds button:hover{border-color:var(--campaign-world-accent);background:color-mix(in oklch,var(--campaign-world-mid),black 34%);transform:translateY(-2px)}.campaign-atlas-worlds button:focus-visible{outline:3px solid var(--focus);outline-offset:3px}.campaign-atlas-worlds button.is-current{border-color:var(--campaign-world-accent)}.campaign-atlas-worlds button>span{min-width:0;display:grid;gap:2px}.campaign-atlas-worlds small{color:var(--campaign-world-accent);font-size:8px;font-weight:800;text-transform:uppercase;letter-spacing:.04em}.campaign-atlas-worlds strong{overflow:hidden;font-size:14px;text-overflow:ellipsis;white-space:nowrap}.campaign-atlas-worlds strong .world-name-wordmark{width:112px}.campaign-atlas-worlds em{overflow:hidden;color:var(--campaign-limestone-muted);font-size:9px;font-style:normal;text-overflow:ellipsis;white-space:nowrap}.campaign-atlas-worlds b{color:var(--campaign-world-accent);font-size:16px}.world-icon--atlas{--world-icon-size: 48px}.map-preview-campaign-link{position:fixed;top:18px;left:18px;z-index:20;min-height:40px;display:flex;align-items:center;border-radius:7px;padding:8px 11px;color:var(--campaign-limestone-raised);background:#000d17f0;background:oklch(.15 .043 235 / .94);box-shadow:0 3px 7px #00020447;box-shadow:0 3px 7px oklch(.08 .025 235 / .28);font-size:11px;font-weight:800;text-decoration:none}.campaign-map-preview .campaign-journey-nav{top:18px;left:120px}.campaign-map-preview .campaign-city,.campaign-map-preview .campaign-city.has-backdrop{position:absolute;inset:0;width:auto;max-width:none;height:100%;margin:0;overflow:hidden;padding:0}.app-shell--campaign .campaign-journey.is-city .campaign-city>header{top:154px}.campaign-map-preview .campaign-journey.is-city .campaign-city>header{top:78px}.campaign-city-expedition-piece{position:absolute;z-index:3;left:var(--city-pawn-x);top:var(--city-pawn-y);width:clamp(34px,4vw,46px);aspect-ratio:2 / 3;transform:translate(-50%,-105%);filter:brightness(1.2) saturate(1.08) drop-shadow(0 3px 3px oklch(.08 .03 235 / .82));pointer-events:none;transition:left .9s linear,top .9s linear}.campaign-city-expedition-piece .campaign-globe-pawn-clip{display:block;width:100%;height:100%}.campaign-city-expedition-piece .campaign-globe-pawn-sprite{display:block;width:800%;height:100%;background-position:0 0}.campaign-city-expedition-piece.is-walking .campaign-globe-pawn-sprite{animation:campaign-pawn-walk .8s steps(8,end) infinite}.campaign-city-map.is-travelling .campaign-city-location button{cursor:wait}@media(max-width:760px){.campaign-atlas{padding:78px 12px 24px}.campaign-atlas>header{margin-bottom:16px}.campaign-atlas>header h2{font-size:29px}.campaign-atlas>header p{font-size:11px}.campaign-atlas-worlds{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.campaign-atlas-worlds:before{display:none}.campaign-atlas-worlds button{min-height:76px;gap:8px;padding:8px}.campaign-atlas-worlds button>b{display:none}.world-icon--atlas{--world-icon-size: 40px}.campaign-journey-nav{top:112px;left:12px;max-width:calc(100% - 24px)}.campaign-journey-nav{gap:4px;font-size:10px}.campaign-journey-nav small{display:none}.campaign-map-preview .campaign-journey-nav{top:12px;left:104px;max-width:calc(100% - 116px)}.map-preview-campaign-link{top:12px;left:12px;min-height:44px}.app-shell--campaign .campaign-journey.is-city .campaign-city>header{top:170px}.campaign-map-preview .campaign-journey.is-city .campaign-city>header{top:72px}.campaign-journey.is-city .campaign-city>header button{min-width:108px;white-space:nowrap}.campaign-journey .campaign-city-location:nth-child(n+4){transform:translate(-100%,-50%)}.campaign-journey .campaign-city-location.is-opponent .campaign-city-location-copy{display:none}.campaign-journey .campaign-city-location.is-opponent button[aria-pressed=true] .campaign-city-location-copy,.campaign-journey .campaign-city-location.is-opponent button:hover .campaign-city-location-copy,.campaign-journey .campaign-city-location.is-opponent button:focus-visible .campaign-city-location-copy{display:grid}.campaign-journey .campaign-city-location:nth-child(n+4) .campaign-city-location-copy{left:auto;right:0;transform:none}.campaign-journey .campaign-city-location-detail small{display:none}}@media(max-width:480px){.campaign-atlas-worlds{grid-template-columns:1fr}.campaign-atlas-worlds button{min-height:68px}.campaign-journey-nav small{display:none}}@media(prefers-reduced-motion:reduce){.campaign-atlas-worlds button{transition:none}.campaign-atlas-worlds button:hover{transform:none}.campaign-city-expedition-piece{transition:none}}.map-preview-header{position:absolute;inset:22px 22px auto;z-index:7;display:flex;align-items:center;justify-content:space-between;gap:18px;pointer-events:none}.map-preview-header>div{margin-right:auto}.map-preview-header a,.map-preview-header button,.map-preview-guide button{min-height:42px;border:0;border-radius:8px;padding:10px 13px;color:var(--campaign-limestone-raised);background:#000d17f0;background:oklch(.15 .043 235 / .94);font-size:11px;font-weight:800;pointer-events:auto;text-decoration:none;cursor:pointer}.map-preview-header>div,.map-preview-guide{border-radius:10px;padding:12px 15px;background:#000d17e6;background:oklch(.15 .043 235 / .9);box-shadow:0 4px 8px #0004084d;box-shadow:0 4px 8px oklch(.1 .03 235 / .3)}.map-preview-kicker,.map-preview-guide>span{color:var(--campaign-world-accent);font-size:10px;font-weight:800}.map-preview-header h1{display:flex;align-items:center;gap:8px;margin:3px 0 0;font-size:19px;letter-spacing:-.02em}.map-preview-header .world-name-wordmark{width:150px}.map-preview-title-suffix{color:var(--campaign-limestone-raised);font-size:12px;font-weight:750;white-space:nowrap}.map-preview-guide{position:absolute;bottom:22px;left:22px;z-index:7;width:min(430px,calc(100% - 44px))}.map-preview-guide h2{margin:5px 0;font-size:22px;letter-spacing:-.025em}.map-preview-guide p{max-width:52ch;margin:0;color:var(--campaign-limestone-muted);font-size:12px;line-height:1.45}.map-preview-guide button{margin-top:12px;color:var(--campaign-aegean-ink);background:var(--campaign-world-accent)}.map-preview-worlds{position:absolute;top:104px;left:22px;z-index:7;display:flex;flex-wrap:wrap;gap:6px}.map-preview-worlds button{min-height:32px;display:flex;align-items:center;gap:5px;border:1px solid color-mix(in oklch,var(--campaign-world-accent),transparent 48%);border-radius:999px;padding:4px 9px 4px 5px;color:var(--campaign-limestone);background:#000d17e6;background:oklch(.15 .043 235 / .9);font-size:10px;font-weight:800;cursor:pointer}.map-preview-worlds button[aria-current=page]{color:var(--campaign-aegean-ink);background:var(--campaign-world-accent)}.world-icon--preview{--world-icon-size: 36px}.world-icon--selector{--world-icon-size: 22px;border-width:1px}.map-preview-worlds button[aria-current=page] .world-icon{border-color:color-mix(in oklch,var(--campaign-aegean-ink),transparent 42%)}.map-preview-discoveries{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;margin-top:10px}.map-preview-discoveries button{min-height:46px;margin:0;border:1px solid color-mix(in oklch,var(--campaign-world-accent),transparent 45%);border-radius:7px;padding:7px 8px;color:var(--campaign-limestone);background:#00050bc2;background:oklch(.11 .032 235 / .76);text-align:left}.map-preview-discoveries button[aria-pressed=true]{color:var(--campaign-aegean-ink);background:var(--campaign-world-accent)}.map-preview-discoveries strong,.map-preview-discoveries span{display:block}.map-preview-discoveries span{margin-top:2px;font-size:9px;font-weight:600;opacity:.8}body:has(.campaign-rules-layer){overflow:hidden}.campaign-opening{position:relative;min-height:calc(100dvh - 72px);display:grid;align-items:end;overflow:hidden;padding:40px;color:var(--campaign-limestone-raised);background:var(--campaign-world-deep)}.campaign-opening__scene{position:absolute;inset:0;background-position:center;background-size:cover}.campaign-opening__scene:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,oklch(.1 .035 235 / .9),oklch(.1 .035 235 / .34) 62%,transparent),linear-gradient(0deg,oklch(.1 .035 235 / .7),transparent 60%)}.campaign-opening__panel{position:relative;z-index:1;width:min(590px,100%);border-radius:12px;padding:26px;background:#000d17f0;background:oklch(.15 .043 235 / .94);box-shadow:0 6px 8px #00020473;box-shadow:0 6px 8px oklch(.08 .025 235 / .45)}.campaign-opening__panel>span{color:var(--campaign-world-accent);font-size:10px;font-weight:800}.campaign-opening__panel h2{margin:5px 0 10px;font-size:30px;letter-spacing:-.03em;text-wrap:balance}.campaign-opening__panel p{max-width:68ch;margin:7px 0;color:var(--campaign-limestone-muted);font-size:13px;line-height:1.55;text-wrap:pretty}.campaign-opening__panel blockquote{margin:18px 0 12px;padding:0}.campaign-opening__panel blockquote p{margin:0;color:var(--campaign-limestone-raised);font-size:21px;font-weight:800;line-height:1.3}.campaign-opening__panel blockquote footer{margin-top:5px;color:var(--campaign-world-accent);font-size:10px;font-weight:750}.campaign-opening__reply{display:block;margin:8px 0 20px;font-size:14px}.campaign-opening__panel .challenge-button{background:var(--campaign-world-accent);color:var(--campaign-aegean-ink)}.tutorial-coach{position:absolute;top:84px;left:18px;z-index:18;width:min(232px,calc(100% - 36px));border:1px solid color-mix(in oklch,var(--campaign-world-accent),transparent 72%);border-radius:10px;padding:9px 30px 10px 12px;color:var(--campaign-limestone-raised);background:#000d17b8;background:oklch(.15 .043 235 / .72);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);box-shadow:0 4px 10px #00020459;box-shadow:0 4px 10px oklch(.08 .025 235 / .35)}.tutorial-coach:before{content:"";position:absolute;top:-6px;left:26px;width:10px;height:10px;border:inherit;border-right:0;border-bottom:0;background:inherit;transform:rotate(45deg);clip-path:polygon(0 0,100% 0,0 100%)}.tutorial-coach>span,.tutorial-coach strong{display:block}.tutorial-coach>span{color:var(--campaign-world-accent);font-size:9px;font-weight:800}.tutorial-coach strong{margin-top:2px;font-size:12px}.tutorial-coach p{margin:3px 0 0;color:var(--campaign-limestone-muted);font-size:10px;line-height:1.4}.tutorial-coach button{border:0;cursor:pointer;font-weight:800}.tutorial-coach__action{min-height:30px;margin-top:7px;border-radius:7px;padding:5px 10px;color:var(--campaign-aegean-ink);background:var(--campaign-world-accent);font-size:10px}.tutorial-coach__hide{position:absolute;top:2px;right:2px;width:28px;height:28px;border-radius:7px;color:var(--campaign-limestone-muted);background:transparent;font-size:15px;line-height:1}.tutorial-coach__hide:hover{color:var(--campaign-limestone-raised);background:color-mix(in oklch,white,transparent 90%)}.tutorial-coach.is-collapsed{width:auto;border:0;padding:0;background:none;-webkit-backdrop-filter:none;backdrop-filter:none;box-shadow:none}.tutorial-coach.is-collapsed:before{display:none}.tutorial-coach .tutorial-coach__toggle{display:inline-flex;align-items:center;gap:6px;min-height:30px;border:1px solid color-mix(in oklch,var(--campaign-world-accent),transparent 62%);border-radius:999px;padding:4px 11px 4px 5px;color:var(--campaign-limestone-raised);background:#000d17b8;background:oklch(.15 .043 235 / .72);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);font-size:10px}.tutorial-coach__toggle b{width:18px;height:18px;display:grid;place-items:center;border-radius:50%;color:var(--campaign-aegean-ink);background:var(--campaign-world-accent);font-size:11px}.tutorial-coach__toggle:hover{background:#001926db;background:oklch(.2 .05 235 / .86)}.tutorial-coach button:focus-visible{outline:2px solid var(--focus);outline-offset:2px}.mode-switch{display:flex;align-items:center;gap:2px;padding:3px;border:1px solid var(--line);border-radius:9px;background:var(--surface-raised)}.mode-switch button{min-width:92px;min-height:34px;border:0;border-radius:6px;background:transparent;color:var(--muted);font-size:12px;font-weight:750;cursor:pointer}.mode-switch button:hover{color:var(--ink);background:var(--surface)}.mode-switch button.is-active{color:#fff;background:var(--accent)}.rules-button{min-height:38px;padding:8px 12px;border:1px solid var(--line);border-radius:8px;background:var(--surface);font-size:12px;font-weight:750;cursor:pointer}.rules-button:hover{border-color:var(--muted);background:var(--surface-raised)}.campaign-hub{min-height:calc(100vh - 72px);padding:30px 32px 42px;background:var(--bg)}.campaign-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:24px;margin-bottom:28px}.campaign-heading h2{margin:0 0 4px;font-size:28px;line-height:1.1;letter-spacing:-.03em}.world-name-wordmark{display:block;width:220px;max-width:100%;height:auto}.world-heading{display:flex;align-items:center;gap:10px}.world-icon--heading{--world-icon-size: 44px}.world-map{margin-bottom:20px;padding:18px;color:var(--campaign-limestone-raised);background:color-mix(in oklch,var(--campaign-world-deep),black 18%)}.world-map>header{display:flex;align-items:end;justify-content:space-between;gap:20px;padding:0 2px 16px}.world-map>header div{display:grid;gap:3px}.world-map>header strong{font-size:15px}.world-map>header span,.world-map>header b{color:var(--campaign-limestone-muted);font-size:11px}.world-map-scroll{overflow-x:auto;overscroll-behavior-inline:contain;scrollbar-color:var(--campaign-bronze) transparent}.world-map-canvas{position:relative;min-width:760px;aspect-ratio:1672 / 941;overflow:hidden;border-radius:10px;background-color:var(--campaign-world-mid);background-position:center;background-size:cover;box-shadow:inset 0 0 0 2px #00151d85;box-shadow:inset 0 0 0 2px oklch(.18 .04 225 / .52)}.world-map-canvas:after{content:"";position:absolute;inset:0;z-index:1;pointer-events:none;background:linear-gradient(90deg,oklch(.13 .04 230 / .28),transparent 20% 78%,oklch(.13 .04 230 / .22))}.world-map-routes{position:absolute;inset:0;z-index:2;width:100%;height:100%;overflow:visible;pointer-events:none}.world-map-routes line{vector-effect:non-scaling-stroke;stroke-width:3;stroke-linecap:round}.world-map-routes .is-locked{stroke:#0c252e7a;stroke-dasharray:3 7}.world-map-routes .is-cleared{stroke:var(--campaign-bronze)}.world-map-routes .is-active{stroke:var(--campaign-world-accent);stroke-dasharray:8 8;animation:map-route-flow .85s linear infinite}.world-map ol{position:absolute;inset:0;z-index:3;margin:0;padding:0;list-style:none}.map-location{position:absolute;left:var(--map-x);top:var(--map-y);color:var(--campaign-limestone-muted);transform:translate(-20px,-50%)}.map-location>div,.map-location>button{display:flex;align-items:center;gap:8px;min-width:0;border:0;padding:0;color:inherit;background:transparent;font:inherit;text-align:left}.map-location>button{cursor:pointer}.map-node{position:relative;flex:0 0 auto;width:40px;height:40px;display:grid;place-items:center;border:3px solid var(--campaign-bronze);border-radius:50%;color:var(--campaign-limestone-raised);background:var(--campaign-aegean-deep);font-size:13px;font-weight:850;box-shadow:0 2px #00070db3;box-shadow:0 2px oklch(.12 .03 230 / .7)}.map-location-card{width:max-content;max-width:138px;display:grid;gap:4px;border-radius:7px;padding:6px 8px;background:#001721e6;background:oklch(.19 .048 230 / .9)}.map-city-icon{position:relative;flex:0 0 auto;width:84px;display:flex;align-items:flex-end;justify-content:center}.map-city-icon img{width:100%;max-height:96px;object-fit:contain;object-position:bottom;filter:drop-shadow(0 5px 7px oklch(.08 .025 235 / .65))}.map-city-icon-status{position:absolute;right:8px;bottom:0;display:grid;place-items:center;width:20px;height:20px;border:2px solid var(--campaign-bronze);border-radius:50%;color:var(--campaign-limestone-raised);background:var(--campaign-aegean-deep);font-size:10px;font-style:normal;font-weight:850}.map-location:has(.map-city-icon){transform:translate(-42px,-58%)}.map-destination:nth-child(n+5){transform:translate(calc(-100% + 20px),-50%)}.map-destination:nth-child(n+5):has(.map-city-icon){transform:translate(calc(-100% + 42px),-58%)}.map-destination:nth-child(n+5)>div,.map-destination:nth-child(n+5)>button{flex-direction:row-reverse;text-align:right}.map-destination:nth-child(n+5) .match-pips{justify-content:flex-end}.map-location strong{font-size:11px;line-height:1.2}.map-location small{color:var(--campaign-limestone-muted);font-size:9px;line-height:1.25}.map-location .map-location-action{color:var(--campaign-world-accent);font-weight:800}.map-location.is-current,.map-location.is-available{z-index:4;color:var(--campaign-limestone-raised)}.map-location.is-current .map-node{border-color:var(--campaign-world-accent);color:var(--campaign-aegean-ink);background:var(--campaign-world-accent);animation:map-arrive .52s var(--ease-out) both,map-node-pulse 2s .6s ease-in-out infinite}.map-location.is-available .map-node{border-color:var(--campaign-world-accent);color:var(--campaign-aegean-ink);background:var(--campaign-limestone-raised);animation:map-node-pulse 2s ease-in-out infinite}.map-location.is-available button:hover .map-node{background:var(--campaign-world-accent);transform:translateY(-2px)}.map-location.is-available button:focus-visible{outline:3px solid var(--focus);outline-offset:5px;border-radius:8px}.map-location.is-cleared{color:#e6e4be}.map-location.is-cleared .map-node{border-color:#c4b06d;background:var(--campaign-olive)}.map-location.is-bypassed,.map-location.is-locked{z-index:2;opacity:.62}.map-location.is-bypassed .map-node,.map-location.is-locked .map-node{border-color:#697b83;background:#092531}.map-location.is-current .map-city-icon img,.map-location.is-available .map-city-icon img{animation:map-icon-pulse 2s ease-in-out infinite}.map-location.is-available button:hover .map-city-icon img{transform:translateY(-2px)}.map-location.is-cleared .map-city-icon-status{border-color:#c4b06d;background:var(--campaign-olive)}.map-location.is-bypassed .map-city-icon img,.map-location.is-locked .map-city-icon img{filter:grayscale(.6) drop-shadow(0 5px 7px oklch(.08 .025 235 / .65))}.match-pips{display:flex;min-width:0;flex-wrap:wrap;gap:3px}.match-pips i{width:13px;height:3px;border-radius:2px;background:#b5ada057}.match-pips i.is-won{background:var(--campaign-world-accent)}.match-pips b{font-size:9px;line-height:1}@keyframes map-route-flow{to{stroke-dashoffset:-16}}@keyframes map-arrive{0%{opacity:0;transform:scale(.65)}to{opacity:1;transform:scale(1)}}@keyframes map-node-pulse{50%{box-shadow:0 0 0 7px #50d0b43d}}@keyframes map-icon-pulse{50%{filter:drop-shadow(0 5px 7px oklch(.08 .025 235 / .65)) drop-shadow(0 0 9px oklch(.78 .12 176 / .55))}}.trading-town{display:grid;grid-template-columns:minmax(240px,.75fr) minmax(420px,1.25fr);gap:28px;margin-bottom:20px;border:1px solid var(--campaign-line);border-radius:14px;padding:28px;color:var(--campaign-ink);background:var(--campaign-limestone)}.town-copy>span{color:var(--campaign-bronze-deep);font-size:11px;font-weight:800;text-transform:uppercase}.town-market-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;margin-bottom:10px}.town-market-options button{min-width:0;border:1px solid color-mix(in oklch,var(--campaign-world-accent),var(--line) 72%);border-radius:7px;padding:7px 8px;color:var(--campaign-limestone);background:color-mix(in oklch,var(--campaign-world-deep),transparent 20%);text-align:left;cursor:pointer}.town-market-options button.is-selected{border-color:var(--campaign-world-accent);color:#fff;background:color-mix(in oklch,var(--campaign-world-mid),var(--campaign-world-deep) 42%);box-shadow:inset 0 0 0 1px color-mix(in oklch,var(--campaign-world-accent),transparent 55%)}.town-market-options strong,.town-market-options span{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.town-market-options strong{font-size:11px}.town-market-options span{margin-top:2px;color:var(--campaign-limestone-raised);font-size:9px;text-transform:capitalize}.town-copy h3{margin:8px 0;font-size:26px}.town-copy p,.town-custom p{max-width:50ch;color:var(--campaign-muted);font-size:13px;line-height:1.5}.town-copy>strong{font-size:12px}.town-power-unlock{display:block;max-width:42ch;margin-top:12px;color:var(--campaign-bronze-deep);font-size:11px;font-weight:800;line-height:1.4}.town-market{display:grid;gap:14px;border-left:1px solid var(--campaign-line);padding-left:28px}.town-featured{display:flex;align-items:center;gap:14px}.town-featured svg{width:84px;height:78px}.town-featured div{display:grid;gap:4px}.town-featured small,.town-trades>span{color:var(--campaign-muted);font-size:11px}.town-actions,.town-trades{display:flex;flex-wrap:wrap;gap:7px}.town-actions button,.town-trades button,.town-trade>summary{min-height:36px;border:1px solid var(--campaign-line);border-radius:8px;padding:7px 10px;color:var(--campaign-ink);background:var(--campaign-limestone-raised);font-size:11px;font-weight:750;cursor:pointer}.town-actions button:first-child{color:var(--campaign-limestone-raised);background:var(--campaign-bronze-deep)}.town-actions button:disabled,.town-trades button:disabled{cursor:default;opacity:.42}.town-trades>span{flex-basis:100%}.town-trade{flex:0 1 auto}.town-trade>summary{display:flex;align-items:center;list-style:none}.town-trade>summary::-webkit-details-marker{display:none}.town-trade>summary:after{content:"Review";margin-left:7px;color:var(--campaign-bronze-deep);font-size:9px}.town-trade[open]{flex-basis:100%}.town-trade[open]>summary{width:fit-content;border-color:var(--campaign-bronze-deep)}.town-trade-confirmation{margin-top:7px;border:1px solid var(--campaign-line);border-radius:9px;padding:11px;background:color-mix(in oklch,var(--campaign-limestone-raised),var(--campaign-world-accent) 7%)}.town-trade-confirmation>strong{display:block;font-size:12px}.town-trade-confirmation>p{margin:4px 0 10px;color:var(--campaign-muted);font-size:11px;line-height:1.4}.town-trade-confirmation>div{display:flex;flex-wrap:wrap;gap:7px}.town-trade-confirmation button:last-child{color:var(--campaign-limestone-raised);background:var(--campaign-bronze-deep)}.town-trade-confirmation .town-trade-cancel{background:transparent}.town-market-status{margin:0;border:1px solid color-mix(in oklch,var(--campaign-world-accent),var(--campaign-line) 45%);border-radius:8px;padding:9px 10px;color:var(--campaign-ink);background:color-mix(in oklch,var(--campaign-world-accent),var(--campaign-limestone-raised) 88%);font-size:11px;font-weight:750;line-height:1.4}.campaign-collection{margin-top:24px;padding:20px;color:#fff;background:#002b49;background:oklch(.28 .075 245)}.campaign-collection>header{display:flex;justify-content:space-between;gap:20px;margin-bottom:14px}.campaign-collection h3{margin:0;font-size:16px}.campaign-collection p{margin:4px 0 0;color:#bac9d7;font-size:12px}.campaign-collection-actions{display:flex;align-items:flex-end;flex-direction:column;gap:8px}.campaign-collection-actions>strong{font-size:12px;white-space:nowrap}.campaign-collection-actions>div{display:flex;gap:7px}.campaign-collection-actions a{min-height:44px;display:inline-flex;align-items:center;border:1px solid var(--campaign-line);border-radius:8px;padding:10px 14px;color:var(--campaign-limestone-raised);font-size:12px;font-weight:750;text-decoration:none}.campaign-collection-actions a:hover{border-color:var(--campaign-world-accent);background:color-mix(in oklch,var(--campaign-world-accent),transparent 84%)}.playtest-campaign-button{min-height:44px;padding:10px 14px;border:1px solid var(--line);border-radius:8px;color:var(--ink);background:var(--surface);font-size:12px;font-weight:750;cursor:pointer;transition:border-color .17s var(--ease-out),background .17s var(--ease-out),transform .17s var(--ease-out)}.playtest-campaign-button:hover{border-color:var(--primary);background:var(--primary-pale);transform:translateY(-1px)}.playtest-campaign-button:active{transform:translateY(0)}.challenge-button{min-width:190px;min-height:48px;display:flex;align-items:center;justify-content:center;gap:18px;border:0;clip-path:polygon(8% 0,92% 0,100% 50%,92% 100%,8% 100%,0 50%);color:#fff;background:var(--accent);font-size:14px;font-weight:800;cursor:pointer}.challenge-button:disabled{cursor:default;opacity:.42}.campaign-rules-layer{position:fixed;inset:0;z-index:50;display:grid;place-items:center;padding:24px}.campaign-rules-backdrop{position:absolute;inset:0;width:100%;height:100%;border:0;background:color-mix(in oklch,var(--ink),transparent 34%)}.campaign-rules-panel{position:relative;width:min(620px,100%);max-height:min(760px,calc(100dvh - 48px));overflow-y:auto;border-radius:12px;padding:26px;background:var(--surface);box-shadow:0 8px 8px color-mix(in oklch,var(--ink),transparent 76%)}.campaign-rules-panel>header{display:flex;justify-content:space-between;gap:24px;padding-bottom:18px;border-bottom:1px solid var(--line)}.campaign-rules-panel>header span{color:var(--primary-deep);font-size:11px;font-weight:800}.campaign-rules-panel h2{margin:4px 0 0;font-size:22px;letter-spacing:-.025em}.campaign-rules-panel>header button{width:38px;height:38px;border:0;border-radius:8px;color:var(--muted);background:var(--surface-raised);font-size:24px;cursor:pointer}.campaign-basics{margin:0;padding:4px 0;list-style:none;counter-reset:basics}.campaign-basics li{display:grid;grid-template-columns:32px 140px 1fr;align-items:baseline;gap:10px;padding:15px 0;border-bottom:1px solid var(--line);counter-increment:basics}.campaign-basics li:before{content:counter(basics);width:25px;height:25px;display:grid;place-items:center;clip-path:polygon(25% 7%,75% 7%,100% 50%,75% 93%,25% 93%,0 50%);color:#fff;background:var(--accent);font-size:11px;font-weight:850}.campaign-basics b{font-size:13px}.campaign-basics span{color:var(--muted);font-size:12px;line-height:1.5}.campaign-rule-details{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;padding-top:18px}.campaign-rule-details strong{font-size:12px}.campaign-rule-details p{margin:5px 0 0;color:var(--muted);font-size:11px;line-height:1.5}@media(max-width:900px){.campaign-hub{padding-inline:20px}.trading-town{grid-template-columns:1fr}.town-market{border-top:1px solid var(--campaign-line);border-left:0;padding-top:20px;padding-left:0}}@media(max-width:620px){.campaign-opening{min-height:calc(100dvh - 104px);padding:14px}.campaign-opening__panel{padding:19px 17px}.campaign-opening__panel h2{font-size:24px}.campaign-opening__panel .campaign-opening__setup{font-size:11px}.campaign-opening__panel blockquote p{font-size:17px}.tutorial-coach{top:calc(76px + env(safe-area-inset-top));left:10px;width:min(220px,calc(100% - 20px))}.tutorial-coach__toggle,.tutorial-coach__hide{min-height:40px;min-width:40px}.topbar{flex-wrap:wrap}.mode-switch{order:3;width:100%}.mode-switch button{flex:1;min-width:0}.rules-button{min-height:42px;margin-left:auto;padding-inline:10px;font-size:11px}.campaign-hub{min-height:calc(100dvh - 104px);padding:20px 14px 36px}.campaign-heading{margin-bottom:20px}.campaign-heading h2{font-size:24px}.world-map{margin-inline:-14px;padding-inline:14px}.world-map>header{align-items:start}.world-map>header b{white-space:nowrap}.world-map-canvas{min-width:720px}.map-location-card{max-width:112px;padding:5px 7px}.campaign-collection{margin-inline:-14px;padding:18px 14px}.campaign-collection>header{align-items:flex-start;flex-direction:column}.campaign-collection-actions{align-items:flex-start}.challenge-button{width:100%}.trading-town{margin-inline:0;padding:20px 16px}.campaign-rules-layer{align-items:end;padding:0}.campaign-rules-panel{width:100%;max-height:84dvh;padding:20px 18px max(24px,env(safe-area-inset-bottom));border-radius:14px 14px 0 0}.campaign-basics li{grid-template-columns:30px 1fr;gap:8px 10px}.campaign-basics li:before{grid-row:1 / 3}.campaign-basics span{grid-column:2}.campaign-rule-details{grid-template-columns:1fr;gap:14px}}@media(prefers-reduced-motion:reduce){.world-map-routes .is-active,.map-location.is-current .map-node,.map-location.is-available .map-node,.map-location.is-current .map-city-icon img,.map-location.is-available .map-city-icon img{animation:none}}.app-shell--campaign,.play-area.is-city-match,.visual-qa{--campaign-aegean: oklch(.31 .079 238);--campaign-aegean-deep: oklch(.22 .058 238);--campaign-aegean-ink: oklch(.16 .042 238);--campaign-limestone: oklch(.94 .026 82);--campaign-limestone-raised: oklch(.975 .018 82);--campaign-limestone-muted: oklch(.87 .035 79);--campaign-bronze: oklch(.59 .104 73);--campaign-bronze-deep: oklch(.43 .083 68);--campaign-terracotta: oklch(.52 .116 43);--campaign-ink: oklch(.24 .028 60);--campaign-muted: oklch(.43 .03 61);--campaign-olive: oklch(.42 .071 112);--campaign-line: oklch(.69 .058 73);--campaign-stage-image: none;--campaign-stage-position: center;--campaign-world-deep: oklch(.22 .075 225);--campaign-world-mid: oklch(.48 .105 205);--campaign-world-light: oklch(.83 .075 190);--campaign-world-accent: oklch(.76 .12 176)}.app-shell--campaign{--bg: var(--campaign-aegean-deep);--surface: var(--campaign-limestone-raised);--surface-raised: var(--campaign-limestone);--ink: var(--campaign-ink);--muted: var(--campaign-muted);--line: var(--campaign-line);--primary: var(--campaign-terracotta);--primary-deep: oklch(.38 .096 41);--primary-pale: oklch(.88 .059 70);--accent: var(--campaign-aegean);--accent-pale: oklch(.88 .047 224);--empty: var(--campaign-limestone-muted);--focus: oklch(.7 .136 79);background:var(--campaign-aegean-deep)}.app-shell--campaign .topbar{position:relative;z-index:10;border-color:var(--campaign-bronze-deep);color:var(--campaign-limestone-raised);background:var(--campaign-aegean-ink)}.app-shell--campaign .brand-mark{mix-blend-mode:screen}.app-shell--campaign .brand h1,.app-shell--campaign .campaign-heading h2,.app-shell--campaign .arena-copy h3{font-family:inherit}.app-shell--campaign .brand p{color:var(--campaign-limestone-muted);font-weight:700}.app-shell--campaign .connection{color:var(--campaign-limestone-muted)}.app-shell--campaign .rules-button{border-color:#b8a488;color:var(--campaign-limestone-raised);background:transparent}.app-shell--campaign .rules-button:hover{border-color:var(--campaign-bronze);background:var(--campaign-aegean)}.app-shell--campaign .mode-switch{border-color:#517489;background:#00273c;background:oklch(.26 .063 238)}.app-shell--campaign .mode-switch button{color:var(--campaign-limestone-muted)}.app-shell--campaign .mode-switch button:hover{color:var(--campaign-limestone-raised);background:var(--campaign-aegean)}.app-shell--campaign .mode-switch button.is-active{color:var(--campaign-aegean-ink);background:var(--campaign-bronze)}.app-shell--campaign .campaign-hub{position:relative;isolation:isolate;min-height:calc(100vh - 72px);padding:0 32px 44px;overflow:hidden;background-color:var(--campaign-world-deep)}.app-shell--campaign .campaign-hub:before{content:"";position:absolute;z-index:0;inset:0 0 auto;height:clamp(300px,48vw,620px);background-image:linear-gradient(180deg,color-mix(in oklch,var(--campaign-world-deep),transparent 68%) 0%,color-mix(in oklch,var(--campaign-world-deep),transparent 42%) 58%,var(--campaign-world-deep) 100%),var(--campaign-stage-image);background-position:center,var(--campaign-stage-position);background-size:cover;background-repeat:no-repeat}.app-shell--campaign .campaign-hub>*{position:relative;z-index:1;width:min(100%,1240px);margin-inline:auto}.app-shell--campaign .campaign-hub>.campaign-journey{position:absolute;inset:0;width:100%;max-width:none;margin:0}.app-shell--campaign .campaign-heading{min-height:224px;align-items:flex-end;margin-bottom:0;padding:44px 8px 30px;color:var(--campaign-limestone-raised);text-shadow:0 2px 8px var(--campaign-aegean-ink)}.app-shell--campaign .campaign-heading h2{color:inherit;font-size:38px;letter-spacing:-.035em;text-wrap:balance}.app-shell--campaign .playtest-campaign-button{border-color:var(--campaign-line);background:transparent}.app-shell--campaign .campaign-collection-actions .playtest-campaign-button{color:var(--campaign-limestone-raised)}.app-shell--campaign .playtest-campaign-button:hover{border-color:var(--campaign-aegean);background:var(--accent-pale)}.app-shell--campaign .campaign-collection-actions .playtest-campaign-button:hover{color:var(--campaign-ink)}.app-shell--campaign .challenge-button{min-width:220px;color:var(--campaign-limestone-raised);background:var(--campaign-bronze-deep)}.app-shell--campaign .challenge-button:hover:not(:disabled){background:var(--campaign-bronze);transform:translateY(-1px)}.app-shell--campaign .campaign-collection{margin-top:20px;border:1px solid oklch(.65 .052 238);border-radius:14px;padding:20px;color:var(--campaign-limestone-raised);background:color-mix(in oklch,var(--campaign-world-deep),black 16%);box-shadow:0 12px 26px #00081147;box-shadow:0 12px 26px oklch(.13 .038 238 / .28);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.app-shell--campaign .campaign-collection p{color:var(--campaign-limestone-muted)}.app-shell--campaign .card-browser__select{border-radius:10px;background:var(--campaign-limestone);transition:transform .17s var(--ease-out),border-color .17s var(--ease-out),background .17s var(--ease-out)}.app-shell--campaign .card-browser__card:not(.is-disabled):hover .card-browser__select{border-color:var(--campaign-bronze);background:var(--campaign-limestone-raised)}.app-shell--campaign .card-browser__card.is-selected .card-browser__select{border-color:var(--campaign-bronze);box-shadow:inset 0 0 0 2px var(--campaign-bronze)}.app-shell--campaign .card-browser__badge{color:var(--campaign-limestone-raised);background:var(--campaign-aegean)}.app-shell--campaign .card-browser__card.is-selected .card-browser__badge{color:var(--campaign-aegean-ink);background:var(--campaign-bronze)}.app-shell--campaign .card-browser__inspector{background:var(--campaign-limestone)}.app-shell--campaign .card-browser__inspector.has-card{border-color:var(--campaign-bronze)}.app-shell--campaign .card-browser__inspector header span,.app-shell--campaign .card-browser__details-meta{color:var(--campaign-aegean)}.app-shell--campaign .card-browser-sheet__action{color:var(--campaign-limestone-raised);background:var(--campaign-bronze-deep)}.app-shell--campaign .card-browser-sheet__action:hover:not(:disabled){background:var(--campaign-bronze)}.campaign-power-meter{min-width:148px;display:grid;grid-template-columns:1fr auto;align-content:start;gap:3px 10px;font-variant-numeric:tabular-nums}.campaign-power-meter>span,.campaign-power-meter>small{color:var(--campaign-limestone-muted);font-size:9px;font-weight:750}.campaign-power-meter>strong{color:var(--campaign-world-accent);font-size:12px;text-align:right}.campaign-power-meter>progress{grid-column:1 / -1;width:100%;height:5px;overflow:hidden;border:0;border-radius:3px;background:#96a8b240}.campaign-power-meter>progress::-webkit-progress-bar{background:#96a8b240}.campaign-power-meter>progress::-webkit-progress-value{background:var(--campaign-world-accent)}.campaign-power-meter>progress::-moz-progress-bar{background:var(--campaign-world-accent)}.campaign-power-meter>small{grid-column:1 / -1;text-align:right}.campaign-power-meter.is-over>strong,.campaign-power-meter.is-over>small{color:#ffae84;color:oklch(.82 .12 48)}@media(max-width:620px){.app-shell--campaign .campaign-hub{padding:0 14px 30px}.app-shell--campaign .campaign-heading{min-height:196px;margin:0;padding:30px 10px 22px}.app-shell--campaign .campaign-heading h2{font-size:30px}.app-shell--campaign .campaign-heading p{max-width:31ch;font-size:12px}.app-shell--campaign .campaign-collection{margin-inline:0;padding:18px 14px}}@media(prefers-reduced-motion:reduce){.app-shell--campaign .card-browser__select,.app-shell--campaign .challenge-button{transition:none}.app-shell--campaign .challenge-button:hover{transform:none}}.app-shell--campaign:has(.campaign-hub){height:100dvh;overflow:hidden}.app-shell--campaign:has(.campaign-hub) .topbar{position:absolute;inset:0 0 auto;z-index:20;width:100%;border-bottom-color:#b9a07e80;background:linear-gradient(180deg,#000c10f5,#000c10c7);background:linear-gradient(180deg,color(xyz 0.002 0.003 0.009 / 0.961),color(xyz 0.002 0.003 0.009 / 0.78))}.app-shell--campaign .campaign-hub,.campaign-map-preview{position:relative;isolation:isolate;width:100%;height:100dvh;min-height:620px;overflow:hidden;padding:0;background:var(--campaign-world-deep)}.app-shell--campaign .campaign-hub>.world-map,.campaign-map-preview>.world-map{position:absolute;inset:0;z-index:0;margin:0;width:auto;overflow:hidden;padding:0;background:radial-gradient(circle at 52% 45%,color-mix(in oklch,var(--campaign-world-mid),transparent 18%),transparent 66%),var(--campaign-world-deep)}.app-shell--campaign .campaign-hub>.campaign-heading{width:auto;margin:0}.app-shell--campaign .campaign-hub>.campaign-loadout-drawer{position:absolute;inset:auto 22px 22px auto;z-index:9;width:auto;margin:0}.campaign-encounter-setup{position:absolute;inset:0;z-index:6;overflow:auto;padding:96px 28px 28px;color:var(--campaign-limestone-raised);background:radial-gradient(circle at 18% 40%,color-mix(in oklch,var(--campaign-world-mid),transparent 48%),transparent 46%),var(--campaign-world-deep)}.campaign-encounter-setup>header{max-width:1180px;display:flex;align-items:flex-start;gap:16px;margin:0 auto 18px}.campaign-encounter-setup>header>div{min-width:0}.campaign-encounter-setup>header span{color:var(--campaign-world-accent);font-size:10px;font-weight:800}.campaign-encounter-setup>header h2{margin:3px 0 4px;font-size:24px;letter-spacing:-.025em}.campaign-encounter-setup>header h2:focus{outline:0}.campaign-encounter-setup>header p{margin:0;color:var(--campaign-limestone-muted);font-size:11px;line-height:1.45}.campaign-encounter-back{min-height:42px;flex:0 0 auto;border:1px solid color-mix(in oklch,var(--campaign-world-accent),transparent 45%);border-radius:8px;padding:9px 12px;color:var(--campaign-limestone-raised);background:var(--campaign-aegean-deep);font:inherit;font-size:10px;font-weight:800;cursor:pointer}.campaign-encounter-back:hover{background:var(--campaign-aegean)}.campaign-encounter-back:focus-visible{outline:3px solid var(--focus);outline-offset:2px}.campaign-encounter-layout{max-width:1180px;display:grid;grid-template-columns:minmax(250px,.72fr) minmax(0,1.5fr);gap:16px;margin:0 auto}.matchup-preview-panel,.campaign-encounter-hand{border-radius:12px}.matchup-preview-panel.is-campaign{display:flex;flex-direction:column;min-height:440px;padding:18px;background:#000d17f0;background:oklch(.15 .043 235 / .94);box-shadow:0 5px 8px #00040852;box-shadow:0 5px 8px oklch(.1 .03 235 / .32)}.matchup-preview-panel__opponent{display:flex;align-items:center;gap:10px}.campaign-encounter-dialogue{margin:14px 0;max-width:65ch;color:var(--campaign-limestone);font-size:14px;line-height:1.5;text-wrap:pretty}.matchup-preview-panel__opponent img,.matchup-preview-panel__opponent-mark{width:52px;height:52px;flex:0 0 auto;border:2px solid var(--campaign-world-accent);border-radius:50%;object-fit:cover;object-position:center 28%}.matchup-preview-panel__opponent-mark{display:grid;place-items:center;color:var(--campaign-world-accent);background:color-mix(in oklch,var(--campaign-world-deep, oklch(.15 .043 235)),white 7%);font-size:13px;font-weight:900}.matchup-preview-panel__opponent>div>span,.matchup-preview-panel__opponent strong,.matchup-preview-panel__opponent small{display:block}.matchup-preview-panel__opponent>div>span{color:var(--campaign-world-accent);font-size:9px;font-weight:800}.matchup-preview-panel__opponent strong{margin-top:2px;font-size:16px}.matchup-preview-panel__opponent small{margin-top:2px;color:var(--campaign-limestone-muted);font-size:9px}.matchup-preview-panel__board{flex:1;min-height:230px;display:grid;place-items:center;padding:18px}.matchup-preview-panel.is-campaign .matchup-preview-panel__board svg{width:min(100%,300px);max-height:260px;overflow:visible}.matchup-preview-panel.is-campaign .matchup-preview-panel__board polygon{fill:#002331;fill:oklch(.24 .055 230);stroke:var(--campaign-world-accent);stroke-width:.42}.matchup-preview-panel__facts{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.matchup-preview-panel__facts div{min-width:0;padding-top:9px;border-top:1px solid color-mix(in oklch,var(--campaign-world-accent),transparent 62%)}.matchup-preview-panel__facts span,.matchup-preview-panel__facts strong{display:block}.matchup-preview-panel__facts span{color:var(--campaign-limestone-muted);font-size:8px}.matchup-preview-panel__facts strong{margin-top:3px;overflow:hidden;font-size:11px;text-overflow:ellipsis;white-space:nowrap}.campaign-encounter-hand{min-width:0;display:flex;flex-direction:column;padding:20px;color:var(--campaign-ink);background:var(--campaign-limestone-raised);box-shadow:0 5px 8px #00040847;box-shadow:0 5px 8px oklch(.1 .03 235 / .28)}.campaign-encounter-hand>header{display:flex;align-items:flex-start;justify-content:space-between;gap:18px}.campaign-encounter-hand h3{margin:0;font-size:18px}.campaign-encounter-hand header p{max-width:58ch;margin:4px 0 0;color:var(--campaign-muted);font-size:10px;line-height:1.45}.campaign-encounter-count{flex:0 0 auto;text-align:right}.campaign-encounter-count strong,.campaign-encounter-count span{display:block}.campaign-encounter-count strong{color:var(--campaign-aegean);font-size:17px}.campaign-encounter-count span{margin-top:2px;color:var(--campaign-muted);font-size:9px}.campaign-encounter-hand .card-browser{margin:18px 0}.campaign-encounter-hand>footer{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-top:auto;padding-top:14px;border-top:1px solid var(--campaign-line)}.campaign-encounter-hand>footer p{margin:0;color:var(--campaign-muted);font-size:10px}.campaign-encounter-hand>footer .challenge-button{min-width:150px}.campaign-encounter-hand>footer .challenge-button:disabled{cursor:not-allowed;opacity:.5;transform:none}.app-shell--campaign .campaign-hub>.world-map>header,.campaign-map-preview>.world-map>header{display:none}.app-shell--campaign .campaign-hub .world-map-scroll,.campaign-map-preview .world-map-scroll{position:absolute;inset:0;display:flex;align-items:center;overflow-x:auto;overflow-y:hidden;scrollbar-width:thin}.app-shell--campaign .campaign-hub .world-map-canvas,.campaign-map-preview .world-map-canvas{flex:0 0 auto;width:min(100vw,177.78dvh);min-width:0;max-width:none;height:auto;margin:auto;overflow:visible;border-radius:0;background-size:100% 100%;box-shadow:none}.app-shell--campaign .campaign-hub>.world-map:before,.campaign-map-preview>.world-map:before{content:"";position:absolute;inset:-24px;z-index:0;background-color:var(--campaign-world-deep);background-image:var(--world-map-image);background-position:center;background-size:cover;filter:blur(22px) saturate(.72) brightness(.58);transform:scale(1.04)}.app-shell--campaign .campaign-hub .world-map-canvas:after,.campaign-map-preview .world-map-canvas:after{background:linear-gradient(180deg,oklch(.11 .035 235 / .48),transparent 26% 64%,oklch(.11 .035 235 / .58)),linear-gradient(90deg,oklch(.11 .035 235 / .26),transparent 22% 78%,oklch(.11 .035 235 / .24))}.app-shell--campaign .campaign-heading{position:absolute;inset:96px 28px auto;z-index:7;min-height:0;align-items:flex-start;margin:0;padding:0;pointer-events:none;text-shadow:0 2px 5px var(--campaign-aegean-ink)}.app-shell--campaign .campaign-heading>div{border-radius:10px;padding:10px 12px;background:#000d17e6;background:oklch(.15 .043 235 / .9);box-shadow:0 4px 8px #00040847;box-shadow:0 4px 8px oklch(.1 .03 235 / .28)}.app-shell--campaign .campaign-heading h2{font-size:24px}.app-shell--campaign .trading-town{position:absolute;z-index:7;bottom:22px;left:22px;width:min(760px,calc(100% - 44px));max-height:min(420px,calc(100dvh - 230px));margin:0;overflow:auto;border:0;border-radius:12px;background:#faf3e6f5;box-shadow:0 6px 8px #00040852;box-shadow:0 6px 8px oklch(.1 .03 235 / .32)}.app-shell--campaign .trading-town{width:min(760px,calc(100% - 44px));padding:20px}.app-shell--campaign .campaign-city{position:absolute;inset:0;z-index:0;width:auto;max-width:none;height:100%;margin:0;overflow:hidden;padding:0;color:var(--campaign-limestone-raised);background:var(--campaign-world-deep)}.app-shell--campaign .campaign-city.has-backdrop{isolation:isolate;background-color:var(--campaign-world-deep)}.campaign-city>header{position:absolute;top:96px;left:28px;z-index:4;width:min(720px,calc(100% - 56px));display:flex;align-items:start;justify-content:space-between;gap:18px;border-radius:10px;padding:12px;color:var(--campaign-limestone-raised);background:#000d17f0;background:oklch(.15 .043 235 / .94);box-shadow:0 4px 8px #00040847;box-shadow:0 4px 8px oklch(.1 .03 235 / .28);text-shadow:0 1px 4px var(--campaign-aegean-ink)}.campaign-city>header span{color:var(--campaign-world-accent);font-size:10px;font-weight:800}.campaign-city>header h3{margin:3px 0 5px;font-size:22px;letter-spacing:-.025em;text-wrap:balance}.campaign-city>header p{max-width:60ch;margin:0;color:var(--campaign-limestone-muted);font-size:11px;line-height:1.45;text-wrap:pretty}.campaign-city>header button{min-height:40px;flex:0 0 auto;border:1px solid color-mix(in oklch,var(--campaign-world-accent),transparent 40%);border-radius:8px;padding:8px 11px;color:var(--campaign-limestone-raised);background:var(--campaign-aegean-deep);font-size:10px;font-weight:800;cursor:pointer}.campaign-city>header button:hover{background:var(--campaign-aegean)}.campaign-city>header button:focus-visible{outline:3px solid var(--focus);outline-offset:2px}.campaign-city-map{--city-node-size: clamp(56px, 7vw, 104px);position:absolute;inset:0;z-index:0;height:auto;margin:0;overflow:hidden;background-color:var(--campaign-world-mid);background-image:var(--campaign-city-map-image, none);background-position:center;background-size:cover}.campaign-city-map:after{content:"";position:absolute;inset:0;z-index:0;pointer-events:none;background:linear-gradient(180deg,oklch(.11 .035 235 / .48),transparent 28% 64%,oklch(.11 .035 235 / .58)),linear-gradient(90deg,oklch(.11 .035 235 / .22),transparent 22% 78%,oklch(.11 .035 235 / .2))}.campaign-city-routes{position:absolute;inset:0;z-index:1;width:100%;height:100%;pointer-events:none}.campaign-city-routes line{vector-effect:non-scaling-stroke;stroke:var(--campaign-world-accent);stroke-width:2;stroke-linecap:round}.campaign-city-routes line.is-locked{stroke:var(--campaign-limestone-muted);stroke-dasharray:3 6;opacity:.42}.campaign-city-routes line.is-cleared{stroke:#c4b06d}.campaign-city-map ol{position:absolute;inset:0;z-index:2;margin:0;padding:0;list-style:none}.campaign-city-location{position:absolute;left:var(--city-x);top:var(--city-y);width:min(138px,22%);transform:translate(-50%,-50%)}.campaign-city-location.is-opponent{width:var(--city-node-size)}.campaign-city-location.is-opponent.is-available{--city-node-size: clamp(64px, 8.2vw, 120px)}.campaign-city-location button{width:100%;min-height:44px;display:flex;align-items:center;gap:7px;border:0;border-radius:8px;padding:5px 7px;color:var(--campaign-limestone-raised);background:#000f1aeb;background:oklch(.16 .045 235 / .92);font:inherit;text-align:left;cursor:pointer;transition:background .18s var(--ease-out),transform .18s var(--ease-out)}.campaign-city-location button:hover:not(:disabled){background:var(--campaign-aegean);transform:translateY(-2px)}.campaign-city-location button:focus-visible{outline:3px solid var(--focus);outline-offset:3px}.campaign-city-location button[aria-pressed=true]{color:var(--campaign-aegean-ink);background:var(--campaign-world-accent)}.campaign-city-location button[data-unavailable]{opacity:.76}.campaign-city-node{width:27px;height:27px;flex:0 0 auto;display:grid;place-items:center;border:2px solid var(--campaign-world-accent);border-radius:50%;color:var(--campaign-world-accent);background:var(--campaign-aegean-deep);font-size:9px;font-weight:850}.campaign-city-location.is-opponent button{position:relative;width:var(--city-node-size);min-height:var(--city-node-size);display:grid;place-items:center;border-radius:50%;padding:2px;background:transparent}.campaign-city-location.is-opponent button:hover:not(:disabled){background:transparent;transform:scale(1.05)}.campaign-city-location.is-opponent .campaign-city-node{width:calc(var(--city-node-size) - 8px);height:calc(var(--city-node-size) - 8px);overflow:hidden;border-width:3px;box-shadow:0 0 0 4px #0004086b,0 3px 8px #00020473;box-shadow:0 0 0 4px oklch(.1 .035 235 / .42),0 3px 8px oklch(.08 .03 235 / .45)}.campaign-city-location.is-opponent.is-available .campaign-city-node{box-shadow:0 0 0 4px #00040880,0 0 18px 4px color-mix(in oklch,var(--campaign-world-accent),transparent 40%),0 3px 8px #00020473;box-shadow:0 0 0 4px oklch(.1 .035 235 / .5),0 0 18px 4px color-mix(in oklch,var(--campaign-world-accent),transparent 40%),0 3px 8px oklch(.08 .03 235 / .45)}.campaign-city-location.is-opponent.is-available button:after{content:"";position:absolute;inset:0;z-index:-1;border:2px solid var(--campaign-world-accent);border-radius:50%;pointer-events:none;animation:campaign-city-available-pulse 2.6s var(--ease-out) infinite}@keyframes campaign-city-available-pulse{0%{opacity:.75;transform:scale(.94)}70%,to{opacity:0;transform:scale(1.3)}}@media(prefers-reduced-motion:reduce){.campaign-city-location.is-opponent.is-available button:after{animation:none;opacity:0}}.campaign-city-location.is-opponent .campaign-city-node img{width:100%;height:100%;display:block;object-fit:cover;object-position:center 28%}.campaign-city-location.is-market .campaign-city-node{border-radius:6px}.campaign-city-location.is-cleared .campaign-city-node{border-color:#c4b06d;color:var(--campaign-limestone-raised);background:var(--campaign-olive)}.campaign-city-location.is-locked .campaign-city-node{border-color:var(--campaign-limestone-muted);color:var(--campaign-limestone-muted);background:#092531}.campaign-city-location.is-locked .campaign-city-node img{filter:grayscale(1);opacity:.58}.campaign-city-location.is-cleared .campaign-city-node img{filter:saturate(.62);opacity:.78}.campaign-city-location.is-unavailable .campaign-city-node{border-color:var(--campaign-limestone-muted);color:var(--campaign-limestone-muted)}.campaign-city-location button[aria-pressed=true] .campaign-city-node{border-color:var(--campaign-aegean-ink);color:var(--campaign-aegean-ink);background:transparent}.campaign-city-location.is-locked button[aria-pressed=true],.campaign-city-location.is-unavailable button[aria-pressed=true]{color:var(--campaign-limestone-muted);background:#092531}.campaign-city-location.is-locked button[aria-pressed=true] .campaign-city-node,.campaign-city-location.is-unavailable button[aria-pressed=true] .campaign-city-node{border-color:var(--campaign-limestone-muted);color:var(--campaign-limestone-muted)}.campaign-city-location.is-opponent button[aria-pressed=true],.campaign-city-location.is-opponent.is-locked button[aria-pressed=true],.campaign-city-location.is-opponent.is-unavailable button[aria-pressed=true]{background:transparent}.campaign-city-location-copy{min-width:0;display:grid;gap:2px}.campaign-city-location-copy strong,.campaign-city-location-copy small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.campaign-city-location-copy strong{font-size:10px}.campaign-city-location-copy small{color:var(--campaign-limestone-muted);font-size:8px}.campaign-city-location button[aria-pressed=true] small{color:var(--campaign-aegean-ink)}.campaign-city-location.is-opponent:hover,.campaign-city-location.is-opponent:focus-within{z-index:3}.campaign-city-location.is-opponent .campaign-city-location-copy{position:absolute;top:calc(100% + 4px);left:50%;width:max-content;max-width:172px;display:grid;gap:1px;justify-items:center;border-radius:6px;padding:4px 8px;color:var(--campaign-limestone-raised);background:#000b14e6;background:oklch(.14 .04 235 / .9);box-shadow:0 3px 6px #00020461;box-shadow:0 3px 6px oklch(.08 .03 235 / .38);text-align:center;transform:translate(-50%)}.campaign-city-location.is-opponent .campaign-city-location-copy strong{font-size:10px}.campaign-city-location.is-opponent .campaign-city-location-copy small{display:none;color:var(--campaign-limestone-muted);font-size:8px}.campaign-city-location.is-opponent button:hover .campaign-city-location-copy small,.campaign-city-location.is-opponent button:focus-visible .campaign-city-location-copy small{display:block}.campaign-city-location-detail{position:absolute;bottom:22px;left:22px;z-index:4;width:min(760px,calc(100% - 250px));min-height:88px;display:flex;align-items:center;justify-content:space-between;gap:18px;margin:0;border-radius:9px;padding:12px 14px;color:var(--campaign-ink);background:#faf3e6f7;box-shadow:0 4px 8px #0004084d;box-shadow:0 4px 8px oklch(.1 .03 235 / .3)}.campaign-city-location-detail>div{min-width:0}.campaign-city-location-detail>div>span{color:var(--campaign-aegean);font-size:9px;font-weight:800}.campaign-city-location-detail h4{margin:2px 0 3px;font-size:16px}.campaign-city-location-detail p{max-width:62ch;margin:0;color:var(--campaign-muted);font-size:10px;line-height:1.4}.campaign-city-location-detail small{display:block;margin-top:4px;color:var(--campaign-muted);font-size:9px;line-height:1.35}.campaign-city-location-detail>.challenge-button{min-width:168px}.campaign-city-location-detail.is-locked>.challenge-button,.campaign-city-location-detail.is-cleared>.challenge-button{color:var(--campaign-muted);background:var(--campaign-limestone-muted)}.campaign-city-location-detail>.campaign-city-market{width:100%}.campaign-city-market{display:grid;grid-template-columns:minmax(0,.9fr) minmax(260px,1.1fr);gap:20px}.campaign-city-market>div:first-child>span{color:var(--campaign-aegean);font-size:10px;font-weight:800;text-transform:uppercase}.campaign-city-market h4{margin:4px 0 6px;font-size:17px}.campaign-city-market p{max-width:46ch;margin:0 0 8px;color:var(--muted);font-size:11px;line-height:1.45}.campaign-city-market>.town-market{border-left:0;padding-left:0}.campaign-city-departure{position:absolute;bottom:22px;left:22px;z-index:5;width:min(760px,calc(100% - 250px));min-height:64px;display:flex;align-items:center;justify-content:space-between;gap:18px;margin:0;border-radius:9px;padding:11px 14px;color:var(--campaign-limestone-raised);background:var(--campaign-aegean-deep);box-shadow:0 4px 8px #0004084d;box-shadow:0 4px 8px oklch(.1 .03 235 / .3)}.campaign-city:has(.campaign-city-departure) .campaign-city-location-detail{bottom:96px}.campaign-city-departure strong{display:block;font-size:11px}.campaign-city-departure p{max-width:62ch;margin:3px 0 0;color:var(--campaign-limestone-muted);font-size:9px;line-height:1.4}.campaign-city-departure button{min-width:152px;min-height:44px;flex:0 0 auto;border:0;border-radius:8px;padding:9px 13px;color:var(--campaign-aegean-ink);background:var(--campaign-world-accent);font-size:11px;font-weight:850;cursor:pointer}.campaign-city-departure button:hover{background:var(--campaign-limestone-raised)}.campaign-city-departure button:focus-visible{outline:3px solid var(--focus);outline-offset:2px}.campaign-loadout-drawer{position:absolute;right:22px;bottom:22px;z-index:9;display:flex;align-items:stretch;gap:6px;color:var(--campaign-limestone-raised)}.campaign-loadout-drawer>button,.campaign-loadout-drawer>a{min-height:46px;display:flex;align-items:center;border:1px solid color-mix(in oklch,var(--campaign-world-accent),transparent 58%);border-radius:9px;padding:10px 13px;color:var(--campaign-limestone-raised);background:#000d17f0;background:oklch(.15 .043 235 / .94);box-shadow:0 4px 8px #0004084d;box-shadow:0 4px 8px oklch(.1 .03 235 / .3);font:inherit;font-size:9px;font-weight:800;text-decoration:none;cursor:pointer}.campaign-loadout-drawer>button:hover,.campaign-loadout-drawer>a:hover{background:var(--campaign-aegean)}.campaign-loadout-drawer>button:focus-visible,.campaign-loadout-drawer>a:focus-visible{outline:3px solid var(--focus);outline-offset:2px}.campaign-loadout-drawer>.campaign-deck-launcher{min-width:178px;justify-content:space-between;gap:18px}.campaign-deck-launcher span{font-size:12px}.campaign-deck-launcher strong{color:var(--campaign-world-accent);font-size:10px}.campaign-loadout-drawer>summary{min-width:178px;min-height:46px;display:flex;align-items:center;justify-content:space-between;gap:18px;border-radius:9px;padding:10px 13px;color:var(--campaign-limestone-raised);background:#000d17f0;background:oklch(.15 .043 235 / .94);box-shadow:0 4px 8px #0004084d;box-shadow:0 4px 8px oklch(.1 .03 235 / .3);cursor:pointer;list-style:none}.campaign-loadout-drawer>summary::-webkit-details-marker{display:none}.campaign-loadout-drawer>summary:before{content:"+";font-size:18px;line-height:1}.campaign-loadout-drawer[open]>summary:before{content:"−"}.campaign-loadout-drawer>summary span{font-size:12px;font-weight:800}.campaign-loadout-drawer>summary strong{color:var(--campaign-world-accent);font-size:10px}.app-shell--campaign .campaign-loadout-drawer .campaign-collection{position:absolute;right:0;bottom:calc(100% + 8px);width:min(760px,calc(100vw - 44px));max-height:min(500px,calc(100dvh - 180px));margin:0;overflow:auto;border:0;border-radius:12px;box-shadow:0 6px 8px #00040857;box-shadow:0 6px 8px oklch(.1 .03 235 / .34)}.campaign-encounter-deck-review{flex:1;display:flex;align-items:center;justify-content:center;gap:24px;margin:18px 0;border-radius:10px;padding:28px;background:var(--campaign-limestone)}.campaign-encounter-deck-stack{position:relative;width:92px;height:112px;flex:0 0 auto}.campaign-encounter-deck-stack span{position:absolute;inset:0;display:grid;place-items:center;border:2px solid var(--campaign-aegean);border-radius:9px;color:var(--campaign-aegean-ink);background:var(--campaign-world-accent);font-size:24px;font-weight:900}.campaign-encounter-deck-stack span:nth-child(1){transform:translate(-9px,-7px);opacity:.45}.campaign-encounter-deck-stack span:nth-child(2){transform:translate(-4px,-3px);opacity:.7}.campaign-encounter-deck-review>div:last-child{max-width:42ch}.campaign-encounter-deck-review strong{display:block;font-size:15px}.campaign-encounter-deck-review p{margin:5px 0 12px;color:var(--campaign-muted);font-size:10px;line-height:1.45}.campaign-encounter-deck-review button{min-height:42px;border:0;border-radius:8px;padding:9px 13px;color:var(--campaign-limestone-raised);background:var(--campaign-aegean);font-size:10px;font-weight:800;cursor:pointer}.campaign-encounter-deck-review button:hover{background:var(--campaign-bronze-deep)}.map-location.is-interactive>button{touch-action:manipulation}.map-location.is-interactive>button:hover .map-location-card{background:#000b12f5;background:oklch(.14 .045 230 / .96)}.map-location.is-current.is-interactive>button{cursor:pointer}.map-location.is-current.is-interactive>button:focus-visible{outline:3px solid var(--focus);outline-offset:5px;border-radius:8px}.map-location.is-current.is-interactive .map-node:after{content:"";position:absolute;top:50%;left:50%;width:54px;height:54px;border:2px solid var(--campaign-world-accent);border-radius:50%;animation:map-travel-cue 1.5s var(--ease-out) infinite}@keyframes map-travel-cue{0%{opacity:.85;transform:translate(-50%,-50%) scale(.68)}to{opacity:0;transform:translate(-50%,-50%) scale(1.25)}}@media(max-width:760px){.campaign-encounter-setup{padding:112px 12px 24px}.campaign-encounter-setup>header{align-items:flex-start;gap:10px}.campaign-encounter-setup>header h2{font-size:20px}.campaign-encounter-setup>header p{display:none}.campaign-encounter-layout{grid-template-columns:1fr}.matchup-preview-panel.is-campaign{min-height:0;padding:14px}.matchup-preview-panel.is-campaign .matchup-preview-panel__board{min-height:150px;padding:8px}.matchup-preview-panel.is-campaign .matchup-preview-panel__board svg{max-height:170px}.campaign-encounter-hand{padding:16px 14px}.campaign-encounter-hand>footer{position:sticky;bottom:-24px;margin-inline:-14px;padding:12px 14px;background:var(--campaign-limestone-raised)}.app-shell--campaign .campaign-heading{inset:112px 14px auto}.app-shell--campaign .campaign-heading>div{padding:9px 10px}.app-shell--campaign .campaign-heading h2{font-size:20px}.app-shell--campaign .campaign-heading .world-name-wordmark{width:184px}.world-icon--heading{--world-icon-size: 36px}.app-shell--campaign .campaign-hub .world-map-canvas,.campaign-map-preview .world-map-canvas{width:760px;min-width:760px;margin:auto 0}.app-shell--campaign .trading-town{bottom:74px;left:12px;width:calc(100% - 24px);max-height:42dvh}.app-shell--campaign .trading-town{grid-template-columns:1fr;gap:14px;padding:16px}.app-shell--campaign .town-copy p{display:none}.app-shell--campaign .campaign-city,.app-shell--campaign .campaign-city.has-backdrop{inset:0;width:auto;max-height:none;height:100%;overflow:hidden;padding:0}.campaign-city>header{top:112px;left:12px;width:calc(100% - 24px);gap:10px;padding:10px}.campaign-city>header button{min-height:44px}.campaign-city>header p{display:none}.campaign-city-map{height:auto}.campaign-city-routes{inset:80px 0 100px;height:auto}.campaign-city-map ol{inset:80px 0 100px}.campaign-city-location.is-opponent{width:52px}.campaign-city-location.is-opponent button{width:52px;min-height:52px}.campaign-city-location.is-opponent .campaign-city-node{width:44px;height:44px}.campaign-city-location{width:min(104px,28%)}.campaign-city-location button{min-height:44px;gap:5px;padding:4px 5px}.campaign-city-node{width:23px;height:23px;border-width:1px}.campaign-city-location-copy strong,.campaign-city-location-copy small{font-size:9px}.campaign-city-location-detail{bottom:74px;left:12px;width:calc(100% - 24px);max-height:42dvh;align-items:stretch;flex-direction:column;gap:10px;overflow-y:auto}.campaign-city-location-detail>.challenge-button{width:100%;min-width:0}.campaign-city-departure{bottom:74px;left:12px;width:calc(100% - 24px);min-height:64px;gap:9px}.campaign-city-departure p{display:none}.campaign-city-departure button{min-width:130px}.campaign-city:has(.campaign-city-departure) .campaign-city-location-detail{bottom:148px}.campaign-city-market{grid-template-columns:1fr;gap:12px}.campaign-loadout-drawer{right:12px;bottom:14px}.app-shell--campaign .campaign-hub>.campaign-loadout-drawer{inset:auto 12px 14px auto}.app-shell--campaign .campaign-loadout-drawer .campaign-collection{width:calc(100vw - 24px);max-height:58dvh}.campaign-loadout-drawer>a,.campaign-loadout-drawer>.playtest-campaign-button{display:none}.campaign-encounter-deck-review{align-items:flex-start;gap:16px;padding:18px 14px}.campaign-encounter-deck-stack{width:70px;height:88px}.map-preview-header{inset:12px 12px auto;display:grid;grid-template-columns:auto 1fr auto;gap:8px}.map-preview-header>div{min-width:0;padding:9px 10px}.map-preview-header h1{overflow:hidden;font-size:14px;text-overflow:ellipsis;white-space:nowrap}.map-preview-header .world-name-wordmark{width:112px}.map-preview-title-suffix{display:none}.map-preview-header>div>span{display:none}.map-preview-header a,.map-preview-header button{min-height:38px;padding:8px 10px}.map-preview-worlds{top:66px;left:12px;right:12px}.map-preview-worlds button{min-height:28px;padding:3px 7px 3px 4px;font-size:9px}.world-icon--preview{--world-icon-size: 30px}.world-icon--selector{--world-icon-size: 20px}.map-preview-guide{bottom:12px;left:12px;width:calc(100% - 24px);padding:12px}.map-preview-guide h2{font-size:18px}.map-preview-guide p{font-size:11px}}@media(max-width:480px){.campaign-encounter-back{padding-inline:9px}.matchup-preview-panel__opponent img,.matchup-preview-panel__opponent-mark{width:46px;height:46px}.matchup-preview-panel__facts strong{font-size:10px}.campaign-encounter-hand>header{gap:8px}.campaign-encounter-hand>footer{align-items:stretch;flex-direction:column;gap:8px}.campaign-encounter-hand>footer .challenge-button{width:100%}.app-shell--campaign .campaign-heading{display:grid;gap:6px}.campaign-city>header h3{font-size:20px}.campaign-city-map{height:auto}.campaign-city-location{width:min(88px,25%)}.campaign-city-location-copy small{display:block;font-size:9px}}@media(prefers-reduced-motion:reduce){.map-location.is-current.is-interactive .map-node:after{animation:none;opacity:0}.campaign-city-location button,.campaign-city-location.is-opponent .campaign-city-location-copy{transition:none}.campaign-city-location button:hover:not(:disabled){transform:none}}.world-map.campaign-globe:before{display:none}.campaign-globe-stage{position:absolute;inset:155px 0 110px;display:grid;place-items:center}.campaign-globe-viewport{position:relative;width:min(86vw,calc(100dvh - 245px),850px);aspect-ratio:1;touch-action:none;cursor:grab}.campaign-globe-viewport:active{cursor:grabbing}.campaign-globe-viewport:focus-visible{outline:2px solid var(--campaign-world-accent);outline-offset:3px;border-radius:50%}.campaign-globe-canvas{position:absolute;inset:0;width:100%;height:100%}.campaign-globe-travel-layer{position:absolute;inset:0;width:100%;height:100%;overflow:visible;pointer-events:none}.campaign-globe-travel-route{fill:none;stroke:color-mix(in oklch,var(--campaign-world-accent),white 20%);stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke}.campaign-globe-travel-route.is-guide{opacity:.34;stroke-width:4px;stroke-dasharray:.01 10}.campaign-globe-travel-route.is-progress{opacity:.95;stroke-width:5px;stroke-dasharray:.01 8;filter:drop-shadow(0 0 3px color-mix(in oklch,var(--campaign-world-accent),transparent 18%));animation:campaign-route-march .7s linear infinite}.campaign-globe-pawn{position:absolute;z-index:120;left:var(--globe-x,50%);top:var(--globe-y,50%);width:clamp(48px,6vw,66px);aspect-ratio:2/3;transform:translate(-50%,-90%) scale(var(--globe-scale,1));transform-origin:center 90%;pointer-events:none;filter:brightness(1.22) saturate(1.12) drop-shadow(0 0 2px color-mix(in oklch,var(--campaign-world-accent),white 28%)) drop-shadow(0 3px 3px oklch(.08 .02 230 / .88))}.campaign-globe-pawn-clip{display:block;width:100%;height:100%;overflow:hidden;transform:scaleX(var(--pawn-facing,1))}.campaign-globe-pawn-sprite{display:block;width:800%;height:100%;background:url(/assets/brand/campaign-expedition-pawn-walk.png) 0 0 / 100% 100% no-repeat}.campaign-globe-pawn.is-reduced{opacity:0}.campaign-globe.is-travelling .campaign-globe-pawn.is-primary .campaign-globe-pawn-sprite{animation:campaign-pawn-walk 1s steps(8,end) infinite}.campaign-globe.is-travelling .campaign-globe-viewport{cursor:wait}.campaign-globe.is-travelling .map-location:not(.is-current){opacity:calc(var(--globe-opacity,1) * .62)}.campaign-globe .map-location button:disabled{cursor:wait}.campaign-globe:not(.is-ready) .campaign-globe-canvas{visibility:hidden}.campaign-globe ol{pointer-events:none}.campaign-globe .map-location{left:var(--globe-x,50%);top:var(--globe-y,50%);transform:translate(-50%,-100%);opacity:var(--globe-opacity,1);pointer-events:auto}.campaign-globe .map-location[hidden]{display:none}.campaign-globe .map-location>button,.campaign-globe .map-location>div{flex-direction:column;text-align:center;gap:0;min-width:44px;min-height:44px}.campaign-globe .map-location>button:focus-visible{outline:2px solid var(--campaign-world-accent);outline-offset:5px;border-radius:6px}.campaign-globe .map-city-icon{width:clamp(54px,7vw,88px);height:clamp(56px,7vw,90px);transform:scale(var(--globe-scale,1));transform-origin:center bottom}.campaign-globe .map-city-icon img{max-height:100%;animation:none}.campaign-globe .map-node{width:32px;height:32px;border-width:2px;animation:none}.campaign-globe.is-ready .map-location.is-current .map-city-icon,.campaign-globe.is-ready .map-location.is-current .map-node{visibility:hidden}.campaign-globe .map-location-card{position:absolute;top:calc(100% + 5px);left:50%;transform:translate(calc(-50% + var(--globe-label-offset-x,0px)));padding:5px 7px;max-width:140px;gap:4px;background:#001721f5;background:oklch(.19 .04 230 / .96)}.campaign-globe .map-location strong{font-size:12px}.campaign-globe .map-location .match-pips{justify-content:center}.campaign-globe .map-location-action{display:none}.campaign-globe .map-location:hover .map-location-action,.campaign-globe .map-location:focus-within .map-location-action{display:block}.campaign-globe .globe-label-hidden .map-location-card{visibility:hidden}.campaign-globe .map-location:hover .map-location-card,.campaign-globe .map-location:focus-within .map-location-card{visibility:visible}.campaign-globe-controls{position:absolute;z-index:5;left:50%;bottom:30px;transform:translate(-50%);display:flex;flex-wrap:wrap;justify-content:center;gap:8px;width:max-content;max-width:calc(100% - 32px)}.campaign-globe-controls button{min-height:44px;padding:8px 14px;border:1px solid var(--campaign-limestone-muted);border-radius:6px;background:var(--campaign-aegean-deep);color:var(--campaign-limestone-raised);font:inherit;font-size:12px;cursor:pointer}.campaign-globe-controls button:hover,.campaign-globe-controls button[aria-pressed=true]{background:var(--campaign-world-mid)}.campaign-globe-hint{width:100%;text-align:center;color:var(--campaign-limestone-muted);font-size:11px}.campaign-globe-travel-status{min-height:32px;display:flex;align-items:center;border-radius:999px;padding:6px 12px;color:var(--campaign-aegean-ink);background:var(--campaign-world-accent);font-size:11px;font-weight:850}.campaign-globe.is-loading .map-location{visibility:hidden}.campaign-globe.is-fallback .campaign-globe-viewport{width:min(90vw,700px);height:100%;aspect-ratio:auto;overflow:auto;touch-action:auto}.campaign-globe.is-fallback ol{position:static;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;padding:12px}.campaign-globe.is-fallback .map-location{position:relative;inset:auto;transform:none;opacity:1;visibility:visible}.campaign-globe.is-fallback .map-location-card{position:static;transform:none;visibility:visible}.campaign-map-preview .campaign-globe-stage{inset:150px 0}.campaign-map-preview .campaign-globe-controls{bottom:145px}.lab-globe-study{display:block;width:100%;height:calc(100dvh - 160px);min-height:650px;border:0;background:#101b20}@keyframes campaign-route-march{to{stroke-dashoffset:-16}}@keyframes campaign-pawn-walk{to{transform:translate(-100%)}}@media(max-width:760px){.campaign-globe-stage{inset:155px 0}.campaign-globe-viewport{width:min(100vw,calc(100dvh - 310px))}.campaign-globe-controls{bottom:85px}.campaign-map-preview .campaign-globe-controls{bottom:140px}.campaign-globe .map-location strong{font-size:10px}.campaign-globe .map-location-card{max-width:108px}.campaign-globe .map-city-icon{width:54px;height:58px}.campaign-globe .match-pips i{width:8px}}@media(prefers-reduced-motion:reduce){.campaign-globe-pawn.is-reduced{transition:opacity .22s ease-out!important}.campaign-globe.is-travelling .campaign-globe-pawn-sprite{animation:none}.campaign-globe-travel-route{display:none}}.globe-study-lab-heading{display:flex;align-items:center;gap:24px;padding:16px 24px}.globe-study-lab-heading h1{font-size:20px;margin:0}.card-browser{display:grid;grid-template-columns:minmax(0,1fr) 236px;gap:14px;align-items:start}.card-browser__grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(128px,1fr));gap:8px;margin:0;padding:2px;list-style:none}.card-browser__card{position:relative;min-width:0}.card-browser__select{width:100%;border:1px solid var(--line);border-radius:8px;padding:8px 6px 10px;color:var(--ink);background:var(--surface);cursor:pointer;transition:transform .17s var(--ease-out),border-color .17s var(--ease-out)}.card-browser__card:not(.is-disabled):hover .card-browser__select{transform:translateY(-2px);border-color:var(--accent)}.card-browser__select:focus-visible{outline:3px solid var(--focus);outline-offset:2px}.card-browser__select:disabled{cursor:not-allowed;opacity:.55}.card-browser__select.is-static{cursor:default}.card-browser__card.is-selected .card-browser__select{border-color:var(--accent);box-shadow:inset 0 0 0 2px var(--accent)}.card-browser__select svg{display:block;width:104px;height:96px;margin:0 auto;overflow:visible}.card-browser__select strong,.card-browser__select small,.card-browser__meta{display:block;text-align:center}.card-browser__select strong{font-size:12px}.card-browser__select small{margin-top:3px;color:var(--muted);font-size:9px;text-transform:capitalize}.card-browser__meta{margin-top:3px;color:var(--accent);font-size:9px;font-weight:800}.card-browser__lifecycle{display:block;width:fit-content;margin:4px auto 0;border-radius:999px;padding:1px 7px;color:var(--primary-deep);background:var(--primary-pale);font-size:9px;font-weight:800}.card-browser__runtime-status{display:block;width:fit-content;margin:4px auto 0;border:1px solid oklch(.66 .12 70);border-radius:999px;padding:2px 7px;color:#552c00;color:oklch(.34 .09 60);background:#ffe8c2;background:oklch(.94 .07 80);font-size:9px;font-weight:850;line-height:1.2}.card-browser__badge{position:absolute;top:6px;right:6px;z-index:1;width:22px;height:22px;display:grid;place-items:center;border-radius:50%;color:var(--surface);background:var(--muted);font-size:11px;font-weight:900}.card-browser__card.is-selected .card-browser__badge{background:var(--accent)}.card-browser__view{position:absolute;top:6px;left:6px;z-index:1;min-height:24px;border:1px solid var(--line);border-radius:6px;padding:3px 7px;color:var(--muted);background:var(--surface);font-size:9px;font-weight:800;cursor:pointer}.card-browser__view:hover{border-color:var(--accent);color:var(--ink)}.card-browser__view:focus-visible{outline:3px solid var(--focus);outline-offset:2px}.card-browser__empty{margin:0;padding:20px;color:var(--muted);font-size:11px}.card-browser__inspector{position:sticky;top:12px;display:grid;gap:8px;border:1px solid var(--line);border-radius:10px;padding:12px;background:var(--surface)}.card-browser__inspector.has-card{border-color:color-mix(in oklch,var(--accent),transparent 40%)}.card-browser__inspector header{display:grid;justify-items:center;gap:2px;text-align:center}.card-browser__inspector header span{color:var(--accent);font-size:9px;font-weight:800}.card-browser__inspector header strong{overflow:hidden;max-width:100%;font-size:15px;text-overflow:ellipsis;white-space:nowrap}.card-browser__details-face{display:grid;place-items:center}.card-browser__details-face svg{display:block;width:100%;max-width:220px;height:auto;overflow:visible}.card-browser__details-copy{display:grid;justify-items:center;gap:6px;text-align:center}.card-browser__details-facts{color:var(--muted);font-size:10px;font-weight:750;text-transform:capitalize}.card-browser__details-meta{color:var(--accent);font-size:10px;font-weight:800}.card-browser__details-lifecycle{border-radius:999px;padding:2px 9px;color:var(--primary-deep);background:var(--primary-pale);font-size:10px;font-weight:800}.card-browser__details-copy p{display:grid;gap:2px;max-width:34ch;margin:0}.card-browser__details-copy p strong{font-size:11px}.card-browser__details-copy p span{color:var(--muted);font-size:10px;line-height:1.4;text-wrap:pretty}.card-browser__details-copy .card-browser__details-ability strong{font-size:12px}.card-browser__details-copy .card-browser__details-ability span{font-size:12px;line-height:1.45}.card-browser__details-copy .card-how-it-works{margin-top:2px}.card-browser__details-reason strong{color:#a43c2f}.card-browser__inspector-empty{display:grid;justify-items:center;gap:8px;padding:18px 8px;text-align:center}.card-browser__inspector-empty>span{color:var(--accent);font-size:32px;line-height:1}.card-browser__inspector-empty p{max-width:24ch;margin:0;color:var(--muted);font-size:10px;line-height:1.5;text-wrap:pretty}.card-browser-sheet{position:fixed;inset:0;z-index:60;width:100%;max-width:none;height:100dvh;max-height:none;margin:0;border:0;padding:24px;background:color-mix(in oklch,var(--ink),transparent 22%)}.card-browser-sheet:not([open]){display:none}.card-browser-sheet[open]{display:grid;place-items:center}.card-browser-sheet::backdrop{background:transparent}body:has(.card-browser-sheet[open]){overflow:hidden}.card-browser-sheet__panel{width:min(420px,100%);max-height:calc(100dvh - 48px);display:grid;grid-template-rows:auto minmax(0,1fr) auto;gap:10px;border:1px solid var(--line);border-radius:12px;padding:14px;color:var(--ink);background:var(--surface)}.card-browser-sheet__panel>header{display:flex;align-items:center;justify-content:space-between;gap:16px}.card-browser-sheet__panel>header div{min-width:0}.card-browser-sheet__panel>header span{color:var(--accent);font-size:9px;font-weight:800}.card-browser-sheet__panel h2{overflow:hidden;margin:2px 0 0;font-size:18px;letter-spacing:-.02em;text-overflow:ellipsis;white-space:nowrap}.card-browser-sheet__close{flex:0 0 auto;width:44px;height:44px;border:1px solid var(--line);border-radius:8px;color:var(--ink);background:transparent;font-size:25px;line-height:1;cursor:pointer}.card-browser-sheet__close:hover{border-color:var(--accent)}.card-browser-sheet__body{min-height:0;display:grid;gap:8px;overflow-y:auto;overscroll-behavior:contain}.card-browser-sheet__body .card-browser__details-face svg{width:min(100%,300px)}.card-browser-sheet__action{min-height:44px;border:0;border-radius:8px;padding:11px 16px;color:var(--surface);background:var(--accent);font-size:13px;font-weight:800;cursor:pointer}.card-browser-sheet__action:disabled{cursor:not-allowed;opacity:.55}@media(max-width:760px){.card-browser{grid-template-columns:1fr}.card-browser__inspector{display:none}.card-browser__grid{grid-template-columns:repeat(auto-fill,minmax(118px,1fr))}.card-browser__view{min-height:30px;padding:6px 9px}.card-browser-sheet{padding:0}.card-browser-sheet[open]{place-items:end stretch}.card-browser-sheet__panel{width:100%;max-height:88dvh;border-radius:16px 16px 0 0;padding-bottom:max(14px,env(safe-area-inset-bottom))}}@media(prefers-reduced-motion:reduce){.card-browser__select,.card-browser__action{transition:none}.card-browser__card:not(.is-disabled):hover .card-browser__select,.card-browser__card:not(.is-disabled):hover .card-browser__action{transform:none}}.card-browser.has-shared-inspection{grid-template-columns:minmax(0,1fr)}.card-browser__action{position:absolute;top:6px;left:6px;z-index:1;display:grid;place-items:center;width:30px;height:30px;padding:0;border:1px solid var(--line);border-radius:50%;color:var(--ink);background:var(--surface);box-shadow:0 1px 3px #0000002e;cursor:pointer;transition:transform .17s var(--ease-out),border-color .17s var(--ease-out),color .17s var(--ease-out)}.card-browser__action svg{width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:2.2;stroke-linecap:round}.card-browser__card:not(.is-disabled):hover .card-browser__action{transform:translateY(-2px)}.card-browser__action:hover:not(:disabled),.card-browser__card.is-selected .card-browser__action{border-color:var(--accent);color:var(--accent)}.card-browser__action:disabled{color:var(--muted);border-style:dashed;box-shadow:none;opacity:.75;cursor:not-allowed}.card-browser__action:focus-visible,.deck-building-inspect:focus-visible{outline:3px solid var(--focus);outline-offset:2px}.card-browser__action-reason{position:absolute;width:1px;height:1px;margin:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.card-browser__preview{position:fixed;inset:auto 20px 20px auto;z-index:50;width:280px;max-height:calc(100dvh - 40px);overflow:auto;pointer-events:none}.deck-building-inspect{min-width:0;min-height:44px;border:0;padding:0;background:transparent;color:var(--ink);font:inherit;font-weight:750;text-align:left;cursor:pointer}@media(max-width:760px){.card-browser__preview{display:none}}.campaign-active-deck__list .deck-building-inspect{min-height:44px;padding:0;background:transparent;color:var(--campaign-limestone);font-size:12px;text-wrap:pretty}.card-browser__preview.is-enlarged{width:min(380px,calc(100vw - 40px))}.card-browser__preview.is-enlarged[data-side=left]{left:20px;right:auto}.card-browser__preview.is-enlarged .card-browser__details-face svg{width:min(320px,100%);max-width:none}.card-browser__preview.is-enlarged .card-browser__details-copy{font-size:13px}.card-browser__preview.is-enlarged .card-browser__details-copy p span{font-size:12px}.card-browser-sheet.is-enlarged .card-browser-sheet__panel{width:min(960px,100%);gap:24px;padding:24px}.card-browser-sheet.is-enlarged .card-browser-sheet__body{grid-template-columns:minmax(0,1.2fr) minmax(280px,1fr);gap:24px;align-items:start}.card-browser-sheet.is-enlarged .card-browser__details-face svg{width:min(480px,100%,calc((100dvh - 240px)*.7));max-width:none}.card-browser-sheet.is-enlarged h2{white-space:normal;overflow-wrap:anywhere}.card-browser-sheet.is-enlarged .card-browser__details-copy{min-width:0;padding:16px 0;justify-items:start;gap:16px;text-align:left}.card-browser-sheet.is-enlarged .card-browser__details-copy p{max-width:none;gap:8px}.card-browser-sheet.is-enlarged .card-browser__details-facts{font-size:13px}.card-browser-sheet.is-enlarged .card-browser__details-lifecycle{font-size:11px}.card-browser__details-world{display:flex;align-items:center;gap:12px;font-size:18px}.card-browser__details-world .world-icon{width:40px;height:40px;flex:0 0 40px}.card-browser-sheet.is-enlarged .card-how-it-works{width:100%}.card-browser-sheet.is-enlarged .card-browser-sheet__panel>footer{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px}.card-browser-sheet__editor{display:inline-flex;align-items:center;flex-wrap:wrap;gap:4px;min-height:44px;color:var(--accent);font-size:13px;font-weight:750;text-underline-offset:3px}.card-browser-sheet__editor:hover{text-decoration-thickness:2px}.card-browser-sheet__editor:focus-visible{outline:3px solid var(--focus);outline-offset:3px}.card-browser-sheet__editor-hint{font-size:11px;font-weight:400}.card-browser-sheet.is-enlarged .card-browser__details-copy p span,.card-browser-sheet.is-enlarged .card-browser__details-copy p strong{font-size:14px}@media(max-width:760px){.card-browser-sheet.is-enlarged{padding:0}.card-browser-sheet.is-enlarged .card-browser-sheet__panel{height:100dvh;max-height:100dvh;border-radius:0;padding:16px;gap:16px}.card-browser-sheet.is-enlarged .card-browser-sheet__body{grid-template-columns:minmax(0,1fr)}.card-browser-sheet.is-enlarged .card-browser__details-face svg{width:min(100%,calc((100dvh - 150px)*.7))}.card-browser-sheet.is-enlarged .card-browser__details-copy{padding:0}}.campaign-deck-screen{position:absolute;inset:0;z-index:12;overflow:auto;padding:96px 28px 28px;color:var(--campaign-limestone-raised);background:radial-gradient(circle at 16% 34%,color-mix(in oklch,var(--campaign-world-mid),transparent 50%),transparent 42%),var(--campaign-world-deep)}.app-shell--campaign .campaign-hub>.campaign-deck-screen{position:absolute;width:auto;margin:0}.campaign-deck-header{width:min(1240px,100%);display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:start;gap:16px;margin:0 auto 18px}.campaign-deck-header>div{min-width:0}.campaign-deck-header>div>span{color:var(--campaign-world-accent);font-size:10px;font-weight:800}.campaign-deck-header.has-no-back{grid-template-columns:minmax(0,1fr) auto}.campaign-deck-header h2{margin:2px 0 3px;font-size:30px;letter-spacing:-.03em;overflow-wrap:anywhere}.campaign-deck-header h2:focus{outline:0}.campaign-deck-header p{max-width:62ch;margin:0;color:var(--campaign-limestone-muted);font-size:11px;line-height:1.45}.campaign-deck-back{min-height:44px;border:1px solid color-mix(in oklch,var(--campaign-world-accent),transparent 45%);border-radius:8px;padding:9px 12px;color:var(--campaign-limestone-raised);background:var(--campaign-aegean-deep);font:inherit;font-size:10px;font-weight:800;cursor:pointer}.campaign-deck-back:hover{background:var(--campaign-aegean)}.campaign-deck-back:focus-visible,.campaign-deck-screen button:focus-visible,.campaign-deck-screen input:focus-visible{outline:3px solid var(--focus);outline-offset:2px}.campaign-deck-count{padding-top:2px;text-align:right;font-variant-numeric:tabular-nums}.campaign-deck-count strong,.campaign-deck-count span{display:block}.campaign-deck-count strong{color:var(--campaign-world-accent);font-size:22px}.campaign-deck-count span{margin-top:3px;color:var(--campaign-limestone-muted);font-size:9px}.campaign-deck-tabs{display:none}.campaign-deck-layout{width:min(1240px,100%);min-height:min(690px,calc(100dvh - 172px));display:grid;grid-template-columns:minmax(0,1.35fr) minmax(340px,1fr);gap:14px;margin:0 auto}.campaign-deck-layout.is-collection-only{grid-template-columns:1fr}.campaign-deck-collection,.campaign-active-deck{min-width:0;border-radius:12px}.campaign-deck-collection{padding:18px;color:var(--campaign-ink);background:var(--campaign-limestone-raised)}.campaign-deck-collection>header{display:flex;align-items:end;justify-content:space-between;gap:16px;margin-bottom:14px}.campaign-deck-collection h3,.campaign-active-deck h3{margin:0;font-size:18px}.campaign-deck-collection header p,.campaign-active-deck header p{margin:3px 0 0;color:var(--campaign-muted);font-size:9px}.campaign-deck-collection header .campaign-deck-collection__notice{max-width:62ch;margin-top:7px;line-height:1.45}.campaign-deck-collection__more{display:block;min-height:38px;margin:14px auto 0;border:1px solid currentColor;border-radius:8px;padding:8px 14px;color:var(--campaign-world-mid);background:transparent;font:inherit;font-size:11px;font-weight:800;cursor:pointer}.campaign-deck-collection__more:hover{color:var(--campaign-world-deep)}.campaign-deck-collection__find{width:min(340px,52%);display:flex;align-items:end;gap:8px}.campaign-deck-collection__find>label{min-width:0;flex:1}.campaign-deck-collection label span{display:block;margin-bottom:4px;color:var(--campaign-muted);font-size:9px;font-weight:750}.campaign-deck-collection input{width:100%;min-height:42px;border:1px solid var(--campaign-line);border-radius:8px;padding:8px 10px;color:var(--campaign-ink);background:var(--campaign-limestone);font:inherit;font-size:11px}.campaign-deck-filters{position:relative;flex:0 0 auto}.campaign-deck-filters__trigger{position:relative;width:42px;min-height:42px;display:grid;place-items:center;border:1px solid var(--campaign-line);border-radius:8px;padding:0;color:var(--campaign-ink);background:var(--campaign-limestone);cursor:pointer}.campaign-deck-filters__trigger:hover,.campaign-deck-filters__trigger.is-active{border-color:var(--campaign-world-mid);color:var(--campaign-world-mid)}.campaign-deck-filters__trigger svg{width:19px;fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.8}.campaign-deck-filters__trigger>span{position:absolute;top:-6px;right:-6px;min-width:17px;height:17px;display:grid;place-items:center;border-radius:999px;padding:0 4px;color:#fff;background:var(--campaign-world-mid);font-size:8px;font-weight:850}.campaign-deck-filters__panel{position:absolute;top:calc(100% + 7px);right:0;z-index:20;width:min(320px,calc(100vw - 52px));max-height:min(440px,calc(100dvh - 32px));display:grid;gap:12px;overflow:auto;border:1px solid var(--campaign-line);border-radius:10px;padding:12px;color:var(--campaign-ink);background:var(--campaign-limestone-raised);box-shadow:0 6px 8px #00070e2e;box-shadow:0 6px 8px oklch(.12 .03 235 / .18)}.campaign-deck-filters__panel header{display:flex;align-items:center;justify-content:space-between;gap:12px}.campaign-deck-filters__panel header strong{font-size:12px}.campaign-deck-filters__panel header button{min-height:28px;border:0;padding:4px 2px;color:var(--campaign-world-mid);background:transparent;font:inherit;font-size:9px;font-weight:800;cursor:pointer}.campaign-deck-filters__panel fieldset{min-width:0;margin:0;border:0;padding:0}.campaign-deck-filters__panel legend{margin-bottom:6px;color:var(--campaign-muted);font-size:9px;font-weight:750}.campaign-deck-filters__choices{display:grid;gap:5px}.campaign-deck-filters__choices.is-card-types{grid-template-columns:repeat(2,minmax(0,1fr))}.campaign-deck-filters__choices.is-worlds,.campaign-deck-filters__choices.is-abilities,.campaign-deck-filters__choices.is-environments{grid-template-columns:repeat(3,minmax(0,1fr))}.campaign-deck-filters__choices.is-environments .is-all{grid-column:1 / -1;justify-content:center}.campaign-deck-filters__choices button{min-width:0;min-height:32px;display:flex;align-items:center;gap:6px;border:1px solid var(--campaign-line);border-radius:6px;padding:6px 8px;overflow:hidden;color:var(--campaign-ink);background:var(--campaign-limestone);font:inherit;font-size:9px;font-weight:750;text-align:left;text-overflow:ellipsis;white-space:nowrap;cursor:pointer}.campaign-deck-filters__choices button:hover{border-color:var(--campaign-world-mid)}.campaign-deck-filters__choices button[aria-pressed=true]{border-color:var(--campaign-world-mid);color:#fff;background:var(--campaign-world-mid)}.campaign-deck-filters__choices button>span{width:14px;flex:0 0 14px;text-align:center}.campaign-deck-filters__choices.is-worlds button{gap:4px;padding-inline:6px;font-size:8px}.campaign-deck-filters__choices.is-worlds .is-all{grid-column:1 / -1;justify-content:center}.campaign-active-deck{display:flex;flex-direction:column;padding:16px;background:#000d17f5;background:oklch(.15 .043 235 / .96)}.campaign-active-deck>header{display:flex;align-items:start;justify-content:space-between;gap:14px}.campaign-active-deck header p{color:var(--campaign-limestone-muted)}.campaign-active-deck>header>strong{color:var(--campaign-world-accent);font-size:17px;font-variant-numeric:tabular-nums}.campaign-active-deck__status{margin:12px 0;border-radius:7px;padding:8px 9px;color:var(--campaign-limestone);background:color-mix(in oklch,var(--campaign-world-mid),transparent 32%);font-size:9px;line-height:1.4}.campaign-active-deck__status.is-ready{color:var(--campaign-aegean-ink);background:var(--campaign-world-accent)}.deck-composition{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;margin:0 0 12px}.deck-composition>div{min-width:0;border:1px solid color-mix(in oklch,currentColor,transparent 76%);border-radius:7px;padding:7px 8px}.deck-composition dt{overflow:hidden;color:var(--campaign-limestone-muted);font-size:8px;font-weight:750;text-overflow:ellipsis;white-space:nowrap}.deck-composition dd{margin:2px 0 0;color:var(--campaign-limestone);font-size:14px;font-weight:850;font-variant-numeric:tabular-nums}.campaign-active-deck__list{display:grid;gap:5px;margin:0;padding:0;list-style:none}.campaign-active-deck__list li{min-height:36px;display:grid;grid-template-columns:24px minmax(0,1fr) auto auto;align-items:center;gap:7px;border-radius:7px;padding:5px 6px;background:#001e2dc7;background:oklch(.22 .05 235 / .78)}.campaign-active-deck__list li>span{width:22px;height:22px;display:grid;place-items:center;border-radius:50%;color:var(--campaign-limestone-muted);background:#000b14;background:oklch(.14 .038 235);font-size:8px;font-variant-numeric:tabular-nums}.campaign-active-deck__list b{overflow:hidden;font-size:9px;text-overflow:ellipsis;white-space:nowrap}.campaign-active-deck__list small{color:var(--campaign-limestone-muted);font-size:8px;white-space:nowrap}.campaign-active-deck__list button{min-height:28px;border:0;border-radius:5px;padding:5px 7px;color:var(--campaign-limestone);background:var(--campaign-aegean);font-size:8px;font-weight:800;cursor:pointer}.campaign-active-deck__list button:disabled{cursor:default;opacity:.45}.campaign-active-deck__list .is-empty{grid-template-columns:24px 1fr;color:var(--campaign-limestone-muted);background:transparent;box-shadow:inset 0 0 0 1px color-mix(in oklch,var(--campaign-line),transparent 28%)}@media(max-width:760px){.campaign-deck-screen{padding:112px 12px 20px}.campaign-deck-header{grid-template-columns:auto minmax(0,1fr) auto;gap:10px;margin-bottom:12px}.campaign-deck-header h2{font-size:22px}.campaign-deck-header p{display:none}.campaign-deck-count strong{font-size:17px}.campaign-deck-tabs{width:100%;display:grid;grid-template-columns:1fr 1fr;margin:0 auto 8px;border-radius:8px;padding:3px;background:#000d17f5;background:oklch(.15 .043 235 / .96)}.campaign-deck-tabs button{min-height:42px;border:0;border-radius:6px;color:var(--campaign-limestone-muted);background:transparent;font-size:10px;font-weight:800;cursor:pointer}.campaign-deck-tabs button[aria-selected=true]{color:var(--campaign-aegean-ink);background:var(--campaign-world-accent)}.campaign-deck-tabs span{font-variant-numeric:tabular-nums}.campaign-deck-layout{min-height:0;display:block}.campaign-deck-layout[data-active-view=collection] .campaign-active-deck,.campaign-deck-layout[data-active-view=deck] .campaign-deck-collection{display:none}.campaign-deck-collection{padding:14px}.campaign-deck-collection>header{align-items:stretch;flex-direction:column;gap:10px}.campaign-deck-collection__find{width:100%}.campaign-deck-collection input,.campaign-deck-filters__trigger{min-height:44px}.campaign-deck-filters__trigger{width:44px}.campaign-active-deck{min-height:calc(100dvh - 206px)}.campaign-active-deck__list li{min-height:44px}.campaign-active-deck__list button{min-height:34px}}.deck-membership{display:flex;flex-wrap:wrap;gap:5px;margin-bottom:10px}.deck-membership button,.deck-filter-reset{min-height:44px;border:1px solid var(--line);border-radius:7px;padding:8px 10px;color:var(--ink);background:var(--surface);font:inherit;font-size:11px;font-weight:750;cursor:pointer}.deck-membership button[aria-pressed=true]{border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent)}.deck-membership button:hover,.deck-filter-reset:hover{border-color:var(--accent)}.deck-filter-reset{margin-bottom:10px}.deck-display-controls{display:flex;align-items:end;justify-content:space-between;flex-wrap:wrap;gap:10px;margin-bottom:12px}.deck-display-controls>div{display:flex;gap:4px}.deck-display-controls button,.deck-display-controls select,.deck-selection__row button,.deck-selection__missing button{min-height:44px;max-width:100%;border:1px solid currentColor;border-radius:7px;padding:8px 10px;color:inherit;background:transparent;font:inherit;font-size:11px;cursor:pointer}.deck-display-controls button[aria-pressed=true]{border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent);color:var(--ink);background:var(--surface)}.deck-display-controls label{min-width:0;display:grid;gap:4px;font-size:11px}.deck-display-controls select{color:var(--ink);background:var(--surface)}.deck-selection{display:grid;align-items:start;gap:10px;margin:0;padding:0;list-style:none}.deck-selection.is-cards{grid-template-columns:repeat(auto-fill,minmax(128px,1fr))}.deck-selection>li{min-width:0}.deck-selection .card-browser__grid{grid-template-columns:minmax(0,1fr);padding:0}.deck-selection .card-browser__select strong{overflow-wrap:anywhere}.deck-selection__row{display:grid;grid-template-columns:22px minmax(0,1fr) auto;align-items:center;gap:6px}.deck-selection__row small{grid-column:2;grid-row:2;font-size:11px}.deck-selection__row .deck-building-inspect{color:inherit;text-align:left;border-color:transparent;overflow-wrap:anywhere}.deck-selection__row>button:last-child,.deck-selection__row>.deck-selection__remove{grid-column:3;grid-row:1 / 3}.deck-selection__number{font-size:11px;font-variant-numeric:tabular-nums}.deck-selection__missing{display:grid;gap:8px;border:1px dashed currentColor;border-radius:8px;padding:12px;font-size:12px}.deck-selection__missing code{overflow-wrap:anywhere}.deck-selection__missing p,.deck-selection__empty{margin:0;font-size:12px;line-height:1.5}.deck-selection__empty{margin:10px 0}.deck-building-screen select:focus-visible{outline:3px solid var(--focus);outline-offset:2px}@media(min-width:761px)and (max-width:960px){.campaign-deck-layout{grid-template-columns:minmax(0,1fr) minmax(300px,1fr)}.campaign-deck-collection>header{flex-direction:column;align-items:stretch}.campaign-deck-collection__find{width:100%}}.deck-selection__row>p{grid-column:1 / -1;margin:0;font-size:11px;line-height:1.5}.deck-selection__remove:disabled{opacity:.45;cursor:not-allowed}.deck-building-screen.is-inline .deck-composition dt{color:var(--muted)}.deck-building-screen.is-inline .deck-composition dd{color:var(--ink)}.campaign-market-screen{position:absolute;inset:0;z-index:12;display:flex;flex-direction:column;overflow:auto;padding:96px 28px 28px;color:var(--campaign-limestone-raised);background:radial-gradient(circle at 22% 30%,color-mix(in oklch,var(--campaign-world-mid),transparent 52%),transparent 44%),var(--campaign-world-deep)}.app-shell--campaign .campaign-hub>.campaign-market-screen{position:absolute;width:auto;margin:0}.campaign-market-screen.has-backdrop{isolation:isolate}.campaign-market-backdrop{position:absolute;inset:0;z-index:0;pointer-events:none;background-image:var(--campaign-market-image, none);background-position:center;background-size:cover}.campaign-market-backdrop:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,oklch(.11 .035 235 / .62),transparent 32% 58%,oklch(.11 .035 235 / .66)),linear-gradient(90deg,oklch(.11 .035 235 / .52),transparent 58%)}.campaign-market-header{position:relative;z-index:3;width:min(1240px,100%);display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:start;gap:16px;margin:0 auto 22px}.campaign-market-identity{min-width:0}.campaign-market-identity>span{color:var(--campaign-world-accent);font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.08em}.campaign-market-header h2{margin:2px 0 4px;font-size:30px;letter-spacing:-.03em;text-wrap:balance}.campaign-market-header h2:focus{outline:0}.campaign-market-header h2:focus-visible{outline:3px solid var(--focus);outline-offset:3px}.campaign-market-header p{max-width:62ch;margin:0;color:var(--campaign-limestone-muted);font-size:11px;line-height:1.45;text-wrap:pretty}.campaign-market-credits{margin:0;display:grid;justify-items:center;gap:1px;height:max-content;border:1px solid color-mix(in oklch,var(--campaign-world-accent),transparent 52%);border-radius:9px;padding:7px 14px;background:color-mix(in oklch,var(--campaign-world-deep),transparent 12%)}.campaign-market-credits strong{font-size:22px;line-height:1;letter-spacing:-.02em}.campaign-market-credits span{color:var(--campaign-limestone-muted);font-size:9px;font-weight:800;text-transform:uppercase;letter-spacing:.07em}.campaign-market-leave,.campaign-market-panel-close{min-height:44px;border:1px solid color-mix(in oklch,var(--campaign-world-accent),transparent 45%);border-radius:8px;padding:9px 12px;color:var(--campaign-limestone-raised);background:var(--campaign-aegean-deep);font:inherit;font-size:10px;font-weight:800;cursor:pointer}.campaign-market-leave:hover,.campaign-market-panel-close:hover{background:var(--campaign-aegean)}.campaign-market-leave:focus-visible,.campaign-market-panel-close:focus-visible{outline:3px solid var(--focus);outline-offset:2px}.campaign-market-scene{position:relative;z-index:2;width:min(1240px,100%);flex:1 1 auto;display:grid;align-content:end;gap:18px;margin:0 auto;pointer-events:none}.campaign-market-scene>*{pointer-events:auto}.campaign-market-stations{position:absolute;inset:0;z-index:1;margin:0;padding:0;list-style:none}.campaign-market-station{position:absolute;left:var(--market-x);top:var(--market-y);width:min(300px,30%);transform:translate(-50%,-50%)}.campaign-market-station button{width:100%;display:grid;justify-items:center;gap:6px;border:0;padding:0;color:var(--campaign-limestone-raised);background:none;font:inherit;cursor:pointer}.campaign-market-station button:focus-visible{outline:0}.campaign-market-figure{display:block;width:100%;filter:drop-shadow(0 12px 18px oklch(.11 .035 235 / .55));transition:transform .18s var(--ease-out),filter .18s var(--ease-out)}.campaign-market-figure img{display:block;width:100%;height:auto}.campaign-market-figure.is-placeholder svg{display:block;width:46%;height:auto;margin:0 auto;fill:color-mix(in oklch,var(--campaign-world-accent),transparent 40%)}.campaign-market-station button:hover .campaign-market-figure,.campaign-market-station button:focus-visible .campaign-market-figure{transform:translateY(-4px);filter:drop-shadow(0 14px 20px oklch(.11 .035 235 / .6)) drop-shadow(0 0 12px color-mix(in oklch,var(--campaign-world-accent),transparent 30%))}.campaign-market-station-copy{display:grid;justify-items:center;gap:1px;border:1px solid color-mix(in oklch,var(--campaign-world-accent),transparent 58%);border-radius:9px;padding:6px 12px;background:#000f1aeb;background:oklch(.16 .045 235 / .92);text-align:center}.campaign-market-station-copy strong{font-size:14px;letter-spacing:-.01em}.campaign-market-station-copy em{color:var(--campaign-world-accent);font-size:9px;font-style:normal;font-weight:800;text-transform:uppercase;letter-spacing:.08em}.campaign-market-station button:hover .campaign-market-station-copy,.campaign-market-station button:focus-visible .campaign-market-station-copy{border-color:var(--campaign-world-accent);background:var(--campaign-aegean)}.campaign-market-station button:focus-visible .campaign-market-station-copy{outline:3px solid var(--focus);outline-offset:2px}.campaign-market-station.is-open .campaign-market-station-copy{border-color:var(--campaign-world-accent);background:var(--campaign-aegean);box-shadow:inset 0 0 0 1px color-mix(in oklch,var(--campaign-world-accent),transparent 52%)}.campaign-market-portrait{flex:0 0 auto;width:58px;height:58px;display:grid;place-items:center;overflow:hidden;border:1px solid color-mix(in oklch,var(--campaign-world-accent),transparent 55%);border-radius:50%;background:color-mix(in oklch,var(--campaign-world-deep),transparent 20%)}.campaign-market-portrait img{width:100%;height:100%;object-fit:cover}.campaign-market-portrait.is-placeholder svg{width:62%;height:62%;fill:color-mix(in oklch,var(--campaign-world-accent),transparent 48%)}.campaign-market-lead{margin:0 auto;align-self:end;max-width:34%;border-radius:8px;padding:7px 12px;color:var(--campaign-limestone-raised);background:#000f1ad1;background:oklch(.16 .045 235 / .82);font-size:11px;font-weight:700;text-align:center;text-wrap:balance}.campaign-market-panel{width:min(720px,100%);justify-self:start;display:grid;gap:14px}.campaign-market-scene[data-open-station=exchange] .campaign-market-panel{justify-self:end}.campaign-market-scene[data-open-station=wayside-trader] .campaign-market-panel{justify-self:start}.campaign-market-panel{border:1px solid var(--campaign-line);border-radius:12px;padding:18px;color:var(--campaign-ink);background:var(--campaign-limestone)}.campaign-market-panel>header{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:14px;border-bottom:1px solid var(--campaign-line);padding-bottom:12px}.campaign-market-panel>header>div{min-width:0}.campaign-market-panel>header strong{display:block;font-size:17px;letter-spacing:-.015em}.campaign-market-panel>header span{display:block;margin-top:1px;color:var(--campaign-aegean);font-size:9px;font-weight:800;text-transform:uppercase;letter-spacing:.08em}.campaign-market-panel>header p{margin:4px 0 0;color:var(--campaign-muted);font-size:11px;line-height:1.45}.campaign-market-panel .campaign-market-portrait{width:58px;height:58px;border-color:color-mix(in oklch,var(--campaign-aegean),transparent 55%);background:var(--campaign-limestone-raised)}.campaign-market-panel .campaign-market-portrait.is-placeholder svg{fill:color-mix(in oklch,var(--campaign-aegean),transparent 42%)}.campaign-market-panel .campaign-city-market{border:0;padding:0;background:none}.campaign-market-empty{margin:0;color:var(--campaign-muted);font-size:11px;line-height:1.5}@media(max-width:760px){.campaign-market-screen{padding:112px 12px 20px}.campaign-market-header{grid-template-columns:minmax(0,1fr) auto;gap:10px;margin-bottom:14px}.campaign-market-identity{grid-row:1;grid-column:1 / -1}.campaign-market-header h2{font-size:22px}.campaign-market-header p{font-size:10px}.campaign-market-credits{grid-row:2;grid-column:1;justify-self:start;padding:5px 11px}.campaign-market-credits strong{font-size:18px}.campaign-market-leave{grid-row:2;grid-column:2;justify-self:end}.campaign-market-station{width:min(190px,40%)}.campaign-market-station-copy{padding:5px 9px}.campaign-market-station-copy strong{font-size:12px}.campaign-market-lead{max-width:74%}.campaign-market-portrait{width:52px;height:52px}.campaign-market-scene[data-open-station]{z-index:41}.campaign-market-panel,.campaign-market-scene[data-open-station] .campaign-market-panel{position:fixed;inset:auto 0 0;z-index:40;width:100%;height:min(83dvh,880px);max-height:min(83dvh,880px);overflow-y:auto;justify-self:stretch;align-content:start;border-radius:14px 14px 0 0;padding:0 14px max(18px,env(safe-area-inset-bottom))}.campaign-market-panel>header{position:sticky;top:0;z-index:1;grid-template-columns:auto minmax(0,1fr);gap:12px;padding-top:14px;background:var(--campaign-limestone)}.campaign-market-panel-close{grid-column:1 / -1;justify-self:start}}@media(prefers-reduced-motion:reduce){.campaign-market-station button{transition:none}.campaign-market-station button:hover{transform:none}}.campaign-match-theme .match-shell{--match-chrome: oklch(.96 .022 82 / .96);--match-chrome-raised: oklch(.97 .018 82 / .96);--match-divider: var(--campaign-line);--match-board: transparent;--match-cell: oklch(.27 .064 238 / .9);--match-cell-stroke: var(--campaign-bronze);--match-compass-ink: color-mix(in oklch, var(--campaign-limestone-raised), transparent 18%);--match-status: var(--campaign-aegean-ink);--match-status-ink: var(--campaign-limestone-raised);color:var(--campaign-ink);background-color:var(--campaign-world-deep);background-image:linear-gradient(180deg,color-mix(in oklch,var(--campaign-world-deep),transparent 62%),color-mix(in oklch,var(--campaign-world-deep),transparent 48%) 64%,color-mix(in oklch,var(--campaign-world-deep),transparent 28%)),var(--campaign-stage-image);background-position:center,var(--campaign-stage-position);background-size:100% 100%,cover;background-repeat:no-repeat}.campaign-match-theme .opponent-zone,.campaign-match-theme .hand-zone{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.campaign-match-theme .board-wrap{background:transparent}.campaign-match-theme .board-wrap:before{content:"";position:absolute;inset:0;pointer-events:none;-webkit-backdrop-filter:blur(8px) brightness(.66) saturate(.78);backdrop-filter:blur(8px) brightness(.66) saturate(.78);-webkit-mask-image:radial-gradient(ellipse 64% 72% at 50% 50%,black 48%,transparent 100%);mask-image:radial-gradient(ellipse 64% 72% at 50% 50%,black 48%,transparent 100%)}.campaign-match-theme .board-wrap>.board{position:relative}.campaign-match-theme .board-play-surface,.campaign-match-theme .board-socket,.campaign-match-theme .board-link-bridges{display:inline}.campaign-match-theme .board-plate{stroke:color-mix(in oklch,var(--campaign-bronze),transparent 80%);stroke-width:1;vector-effect:non-scaling-stroke}.campaign-match-theme .board-plate__glow{stop-color:color-mix(in oklch,var(--campaign-world-accent),white 35%);stop-opacity:.12}.campaign-match-theme .board-plate__body{stop-color:color-mix(in oklch,var(--campaign-aegean-ink),black 45%);stop-opacity:.7}.campaign-match-theme .board-plate__rim{stop-color:color-mix(in oklch,var(--campaign-aegean-ink),black 35%);stop-opacity:.12}.campaign-match-theme .board-sigil{fill:none;stroke:var(--campaign-bronze);stroke-width:1.2;opacity:.09}.campaign-match-theme .board-sigil>*{vector-effect:non-scaling-stroke}.campaign-match-theme .board-link{stroke:var(--campaign-bronze);stroke-width:1;opacity:.3;vector-effect:non-scaling-stroke;transition:opacity .16s var(--ease-out),stroke .16s var(--ease-out)}.campaign-match-theme .board-link.is-active{stroke:var(--campaign-world-accent);stroke-width:1.6;opacity:.9}.campaign-match-theme .board-link-bridge{stroke:color-mix(in oklch,var(--campaign-world-accent),white 25%);stroke-width:3;stroke-linecap:round;filter:drop-shadow(0 0 3px var(--campaign-world-accent))}.campaign-match-theme .board-cell.is-empty{--match-cell: oklch(.25 .045 236 / .94);--match-cell-stroke: oklch(.7 .035 225 / .5)}.campaign-match-theme .board-cell.is-empty .cell-base{stroke-width:1}.campaign-match-theme .board-socket__recess{fill:none;stroke:#00000061;stroke-width:2}.campaign-match-theme .board-cell.is-environment .board-socket__recess{display:none}.campaign-match-theme .board-socket__corners{fill:none;stroke:color-mix(in oklch,var(--campaign-bronze),transparent 72%);stroke-width:1.2;stroke-linecap:round;stroke-linejoin:round;transition:stroke .16s var(--ease-out)}.campaign-match-theme .board-cell.is-available .board-socket__corners{stroke:var(--campaign-world-accent);stroke-width:2.4;filter:drop-shadow(0 0 4px var(--campaign-world-accent));animation:board-socket-ready 1.8s ease-in-out infinite}@keyframes board-socket-ready{0%,to{opacity:.5}50%{opacity:1}}.campaign-match-theme .board-cell .card-face{filter:saturate(1) drop-shadow(0 4px 6px oklch(0 0 0 / .75))}.campaign-match-theme .board.has-card-selection-targets .board-cell:not(.is-card-selection-target) .card-face{filter:saturate(.45) drop-shadow(0 4px 6px oklch(0 0 0 / .75))}@media(prefers-reduced-motion:reduce){.campaign-match-theme .board-link{transition:none}.campaign-match-theme .board-cell.is-available .board-socket__corners{animation:none;opacity:1}}.campaign-match-theme .board-cell.is-available .cell-base{stroke:var(--campaign-world-accent)}.campaign-match-theme .board-cell.is-available:hover .cell-base{fill:#00435df0;fill:oklch(.36 .077 232 / .94)}.campaign-match-theme .board-cell.is-available:focus-visible .cell-base{fill:#00435df0;fill:oklch(.36 .077 232 / .94);stroke:var(--focus)}.campaign-match-theme .placement-dot{fill:var(--campaign-bronze);opacity:.4}.campaign-match-theme .board-cell.is-available .placement-dot{opacity:1}.campaign-match-theme .board-cell.is-empty .environment-tile-art{filter:saturate(.9) brightness(.92)}.campaign-match-theme .hand-card{--hand-card-selection: var(--campaign-bronze-deep)}.campaign-match-theme .rarity-label--rare{color:var(--campaign-ink);background:var(--primary-pale)}@media(max-width:620px){.campaign-match-theme .match-shell{background-position:center,center 72px;background-size:100% 100%,100% auto}}.campaign-match-theme.match-theme-arena .match-shell{--campaign-stage-image: inherit;--match-cell: oklch(.24 .06 238 / .85);background-image:radial-gradient(ellipse 115% 100% at 50% 38%,transparent 42%,color-mix(in oklch,black,var(--campaign-world-deep) 45%) 100%),linear-gradient(180deg,color-mix(in oklch,var(--campaign-world-deep),transparent 75%),color-mix(in oklch,var(--campaign-world-deep),transparent 60%) 26%,color-mix(in oklch,black,var(--campaign-world-deep) 55%) 62%,color-mix(in oklch,black,var(--campaign-world-deep) 65%)),var(--campaign-stage-image);background-position:center,center,center top;background-size:100% 100%,100% 100%,cover;background-repeat:no-repeat}.campaign-match-theme.match-theme-arena .opponent-zone{border-bottom:0;background:linear-gradient(180deg,color-mix(in oklch,black,var(--campaign-world-deep) 55%) 0%,transparent 100%);-webkit-backdrop-filter:none;backdrop-filter:none}.campaign-match-theme.match-theme-arena .hand-zone{border-top:0;background:linear-gradient(0deg,color-mix(in oklch,var(--campaign-world-deep),black 30%) 0%,color-mix(in oklch,var(--campaign-world-deep),transparent 45%) 65%,transparent 100%);-webkit-backdrop-filter:none;backdrop-filter:none}.campaign-match-theme.match-theme-arena .hand-heading h2,.campaign-match-theme.match-theme-arena .hand-heading p:not(.hand-heading__tactic-note){display:none}.campaign-match-theme.match-theme-arena .hand-heading__tactic-note{color:color-mix(in oklch,var(--campaign-limestone),transparent 15%)}.campaign-match-theme.match-theme-arena .hand-tray-toolbar>strong{color:var(--campaign-limestone-raised)}.campaign-match-theme.match-theme-arena .hand-tray-controls button,.campaign-match-theme.match-theme-arena .expanded-hand__trigger,.campaign-match-theme.match-theme-arena .selected-tactic-action,.campaign-match-theme.match-theme-arena .draw-arrival-reveal,.campaign-match-theme.match-theme-arena .discard-pile__trigger{border-color:color-mix(in oklch,var(--campaign-limestone),transparent 60%);color:var(--campaign-limestone-raised);background:color-mix(in oklch,var(--campaign-world-deep),transparent 35%)}.campaign-match-theme.match-theme-arena .hand-tray-controls button:hover:not(:disabled),.campaign-match-theme.match-theme-arena .expanded-hand__trigger:hover:not(:disabled),.campaign-match-theme.match-theme-arena .selected-tactic-action:hover:not(:disabled),.campaign-match-theme.match-theme-arena .draw-arrival-reveal:hover:not(:disabled),.campaign-match-theme.match-theme-arena .discard-pile__trigger:hover{border-color:color-mix(in oklch,var(--campaign-limestone),transparent 35%);background:color-mix(in oklch,white,transparent 88%)}.campaign-match-theme.match-theme-arena .layout-toggle{border-color:color-mix(in oklch,var(--campaign-limestone),transparent 60%);color:var(--campaign-limestone-raised);background:transparent}.campaign-match-theme.match-theme-arena .layout-toggle:hover{border-color:color-mix(in oklch,var(--campaign-limestone),transparent 35%);background:color-mix(in oklch,white,transparent 88%)}.campaign-match-theme.match-theme-arena .hand-card__name{color:var(--campaign-limestone-raised);opacity:1}.campaign-match-theme.match-theme-arena .hand-card:disabled .hand-card__name,.campaign-match-theme.match-theme-arena .hand-card[aria-disabled=true] .hand-card__name{opacity:1}@media(prefers-reduced-motion:reduce){.campaign-match-theme.match-theme-arena .hand-card__name{transition:none}}.campaign-match-theme.match-theme-arena .hand-card__meta{display:none}.campaign-match-theme.match-theme-arena .hand-card__tactic-reason,.campaign-match-theme.match-theme-arena .empty-hand{color:color-mix(in oklch,var(--campaign-limestone),transparent 30%)}.campaign-match-theme.match-theme-arena .opponent-identity span{display:none}.campaign-match-theme.match-theme-arena .opponent-identity strong{font-family:var(--font-mythic);font-size:21px;font-weight:400;letter-spacing:.07em;text-transform:uppercase;color:var(--campaign-limestone-raised);text-shadow:0 1px 10px oklch(0 0 0 / .7),0 0 18px color-mix(in oklch,var(--campaign-bronze),transparent 45%)}.campaign-match-theme.match-theme-arena .deck-pile__count,.campaign-match-theme.match-theme-arena .opponent-hand__empty{color:color-mix(in oklch,var(--campaign-limestone),transparent 35%)}.campaign-match-theme.match-theme-arena .match-info>summary{color:color-mix(in oklch,var(--campaign-limestone),transparent 30%)}.campaign-match-theme.match-theme-arena .match-info>summary:hover,.campaign-match-theme.match-theme-arena .match-info[open]>summary{color:var(--campaign-limestone-raised)}.campaign-match-theme.match-theme-arena .match-info__panel{color:var(--campaign-limestone-raised);background:color-mix(in oklch,var(--campaign-world-deep),black 38%);box-shadow:0 10px 28px #00000080}.campaign-match-theme.match-theme-arena .match-info__history h3,.campaign-match-theme.match-theme-arena .opponent-status .match-info__panel>.environment-badge:before{color:color-mix(in oklch,var(--campaign-limestone),transparent 40%)}.campaign-match-theme.match-theme-arena .tiebreak-badge{border:0;padding:5px 0;background:transparent;color:color-mix(in oklch,var(--campaign-limestone),transparent 28%);font-size:9px;font-weight:800;letter-spacing:.12em;text-transform:uppercase}.campaign-match-theme.match-theme-arena .turn-indicator{border:1px solid color-mix(in oklch,var(--campaign-bronze),transparent 18%);background:radial-gradient(ellipse 120% 140% at 50% -20%,color-mix(in oklch,var(--campaign-world-accent),transparent 72%),transparent 60%),linear-gradient(180deg,color-mix(in oklch,var(--accent),white 6%),color-mix(in oklch,var(--accent),black 22%));box-shadow:inset 0 0 0 2.5px color-mix(in oklch,var(--campaign-world-deep),black 20%),inset 0 0 0 3.5px color-mix(in oklch,var(--campaign-bronze),transparent 35%),0 0 18px color-mix(in oklch,var(--campaign-bronze),transparent 55%);font-family:var(--font-mythic);font-size:13px;font-weight:400;letter-spacing:.12em;text-transform:uppercase}.campaign-match-theme.match-theme-arena .turn-indicator--ai{box-shadow:inset 0 0 0 2.5px color-mix(in oklch,var(--campaign-world-deep),black 20%),inset 0 0 0 3.5px color-mix(in oklch,var(--campaign-bronze),transparent 55%)}.campaign-match-theme.match-theme-arena .turn-indicator__score{font-family:Inter,ui-sans-serif,system-ui,sans-serif;letter-spacing:.02em;text-transform:none}.campaign-match-theme.match-theme-arena .match-status{border:1px solid color-mix(in oklch,var(--campaign-bronze),transparent 42%);background:color-mix(in oklch,var(--campaign-world-deep),black 22%);box-shadow:0 6px 18px #00000061;padding-block:6px}.campaign-match-theme.match-theme-arena .match-status button{min-height:34px;padding:6px 24px;color:#241001;background:linear-gradient(180deg,#e1b66c,#ae7a38);box-shadow:inset 0 1px color-mix(in oklch,white,transparent 40%),inset 0 0 0 1px color-mix(in oklch,var(--campaign-bronze-deep),transparent 30%),0 0 22px color-mix(in oklch,var(--campaign-bronze),transparent 40%);font-family:var(--font-mythic);font-size:13px;font-weight:400;letter-spacing:.12em;text-transform:uppercase}.campaign-match-theme.match-theme-arena .match-status button:hover{background:linear-gradient(180deg,#efc379,#bb8645)}.campaign-match-theme.match-theme-arena .match-status .match-status__change{min-height:30px;padding:4px 14px;border:1px solid color-mix(in oklch,var(--campaign-limestone),transparent 60%);color:var(--campaign-limestone-raised);background:transparent;box-shadow:none;font-family:Inter,ui-sans-serif,system-ui,sans-serif;font-size:11px;font-weight:650;letter-spacing:.06em}.campaign-match-theme.match-theme-arena .match-status .match-status__change:hover{background:color-mix(in oklch,white,transparent 88%)}.campaign-match-theme.match-theme-arena .fieldside-inspector{border-color:transparent}.campaign-match-theme.match-theme-arena .match-status:not(.has-action){border-color:transparent;box-shadow:none}.campaign-match-theme.match-theme-arena .cell-base{filter:drop-shadow(0 2px 4px oklch(0 0 0 / .4))}.campaign-match-theme.match-theme-arena .board-cell.is-empty:not(.is-environment) .cell-base{filter:none}.campaign-match-theme.match-theme-arena .hand-list{min-height:150px;align-items:flex-end}.campaign-match-theme.match-theme-arena .hand-card svg{filter:drop-shadow(0 6px 12px oklch(0 0 0 / .5))}.campaign-match-theme.match-theme-arena .fieldside-inspector:has(.fieldside-inspector__empty){border-color:transparent;background:transparent;box-shadow:none}.campaign-match-theme.match-theme-arena .fieldside-inspector:has(.fieldside-inspector__empty):before{display:none}.campaign-match-theme.match-theme-arena .fieldside-inspector:has(.fieldside-inspector__empty) header{display:none}.campaign-match-theme.match-theme-arena .fieldside-inspector__empty p{display:none}.campaign-match-theme.match-theme-arena .fieldside-inspector__empty>span{display:block;width:230px;height:230px;margin:0 auto;overflow:hidden;color:transparent;background-image:url(data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%20200%20200%27%20fill%3D%27none%27%20stroke%3D%27%23b98d4f%27%3E%3Cpolygon%20stroke-width%3D%271.4%27%20points%3D%27100%2C10%20178%2C55%20178%2C145%20100%2C190%2022%2C145%2022%2C55%27%2F%3E%3Cpolygon%20stroke-width%3D%271.1%27%20points%3D%27100%2C36%20155%2C68%20155%2C132%20100%2C164%2045%2C132%2045%2C68%27%2F%3E%3Cpolygon%20stroke-width%3D%270.9%27%20points%3D%27100%2C62%20133%2C81%20133%2C119%20100%2C138%2067%2C119%2067%2C81%27%2F%3E%3Ccircle%20cx%3D%27100%27%20cy%3D%27100%27%20r%3D%2712%27%20stroke-width%3D%270.9%27%2F%3E%3C%2Fsvg%3E);background-size:contain;background-repeat:no-repeat;opacity:.1}.lab-panel{position:sticky;top:72px;align-self:start;height:calc(100dvh - 72px);padding:20px 18px;background:var(--surface);border-left:1px solid var(--line);overflow-y:auto;overscroll-behavior:contain;scrollbar-gutter:stable;touch-action:pan-y}.lab-heading{position:sticky;top:-20px;z-index:2;display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:44px;padding-block:8px;background:var(--surface)}.lab-heading h2{margin:0;font-size:16px}.lab-share{border:0;border-radius:7px;padding:7px 9px;color:var(--primary-deep);background:var(--primary-pale);font-size:9px;font-weight:800;cursor:pointer}.lab-share:hover{color:#fff;background:var(--primary-deep)}.lab-heading span,.setting-group h3 span{border-radius:999px;padding:3px 7px;color:var(--primary-deep);background:var(--primary-pale);font-size:9px;font-weight:800}.lab-panel>p{color:var(--muted);font-size:11px;line-height:1.45;margin:6px 0 20px}.lab-test-type-selector{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:5px;margin:-4px 0 14px}.lab-test-type-selector button{min-width:0;min-height:40px;border:1px solid var(--line);border-radius:8px;padding:7px 6px;color:var(--muted);background:var(--surface);font-size:9px;font-weight:800;cursor:pointer;transition:border-color .16s var(--ease-out),color .16s var(--ease-out),background .16s var(--ease-out)}.lab-test-type-selector button:hover{border-color:var(--primary);color:var(--primary-deep);background:var(--primary-pale)}.lab-test-type-selector button.is-active{border-color:var(--accent);color:var(--accent);background:var(--accent-pale)}.lab-test-type-selector button:focus-visible{outline:3px solid var(--focus);outline-offset:1px}.setting-group{padding:16px 0;border-top:1px solid var(--line)}.setting-group h3{display:flex;align-items:center;justify-content:space-between;margin:0 0 12px;font-size:12px}.setting-group small{display:block;margin:-6px 0 10px;max-width:31ch;color:var(--muted);font-size:9px;line-height:1.35}.shape-picker{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;margin-bottom:16px}.shape-picker button{min-width:0;border:1px solid var(--line);border-radius:8px;padding:7px 4px 6px;background:var(--surface);cursor:pointer;transition:border-color .16s var(--ease-out),background .16s var(--ease-out),transform .16s var(--ease-out)}.shape-picker button:hover{border-color:var(--primary);background:var(--primary-pale);transform:translateY(-1px)}.shape-picker button:active{transform:translateY(0)}.shape-picker button.is-selected{border-color:var(--accent);background:var(--accent-pale)}.shape-picker button:disabled{opacity:.45;cursor:not-allowed;transform:none}.shape-picker svg{display:block;width:100%;height:34px;margin-bottom:3px}.shape-picker polygon{fill:var(--empty);stroke:var(--muted);stroke-width:.8}.shape-picker button.is-selected polygon{fill:color-mix(in oklch,var(--accent-pale),white 25%);stroke:var(--accent)}.shape-picker strong,.shape-picker span{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.shape-picker strong{font-size:9px}.shape-picker span{margin-top:2px;color:var(--muted);font-size:8px;font-variant-numeric:tabular-nums}.select-row,.range-row,.toggle-row{color:var(--ink);font-size:11px}.select-row{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px}.select-row select{min-width:116px;border:1px solid var(--line);border-radius:6px;background:var(--surface);padding:6px;font-size:10px}.world-select-row{display:grid;gap:7px;color:var(--ink);font-size:11px}.world-select-row select{box-sizing:border-box;width:100%;min-height:36px;border:1px solid var(--line);border-radius:7px;padding:7px 9px;color:var(--ink);background:var(--surface);font:inherit;cursor:pointer}.world-select-row select:hover,.world-select-row select:focus-visible{border-color:var(--primary)}.world-select-row input[type=number]{box-sizing:border-box;width:100%;min-height:38px;border:1px solid var(--line);border-radius:7px;padding:8px 10px;color:var(--ink);background:var(--surface);font:inherit}.content-manifest-control .world-select-row{margin-bottom:12px}.content-manifest-control .world-select-row input{box-sizing:border-box;width:100%;min-height:38px;border:1px solid var(--line);border-radius:7px;padding:8px 10px;color:var(--ink);background:var(--surface);font:inherit}.content-manifest-control .world-select-row input:focus-visible{outline:2px solid var(--focus-ring);outline-offset:1px}.manifest-actions{display:grid;gap:6px;margin-bottom:12px}.manifest-notice{margin:10px 0 0;color:var(--primary-deep);font-size:9px;line-height:1.4}.environment-tag-picker{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;margin:12px 0;border:0;padding:0}.environment-tag-picker legend{grid-column:1 / -1;margin-bottom:2px;color:var(--muted);font-size:9px;font-weight:800}.environment-tag-picker label{display:flex;min-width:0;align-items:center;gap:6px;font-size:10px}.environment-tag-picker label>span{display:grid;gap:1px}.environment-tag-picker label small{color:var(--muted);font-size:8px;line-height:1.2}.environment-tag-picker input{margin:0;accent-color:var(--primary-deep)}.format-select-row{margin-bottom:10px}.draw-deck-summary{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:10px;border-radius:8px;padding:9px 10px;color:var(--primary-deep);background:var(--primary-pale)}.draw-deck-summary strong{font-size:11px}.draw-deck-summary span{color:var(--muted);font-size:9px;text-align:right}.draw-deck-facts{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:0 0 12px}.draw-deck-facts div{border-radius:7px;padding:8px 9px;background:var(--surface-raised)}.draw-deck-facts dt{color:var(--muted);font-size:8px}.draw-deck-facts dd{margin:2px 0 0;color:var(--ink);font-size:12px;font-weight:800;font-variant-numeric:tabular-nums}.published-board-select{display:grid;gap:9px;margin:12px 0 14px;border:1px solid var(--line);border-radius:8px;padding:11px;background:var(--surface-raised)}.published-board-select>small{color:var(--muted);font-size:9px;line-height:1.45}.published-board-select .published-board-preview{border:1px solid var(--line);padding:10px}.published-board-select .published-board-preview svg{max-height:180px;margin:10px auto}.published-board-facts{grid-template-columns:1fr;gap:5px;margin:0}.published-board-facts div{display:grid;grid-template-columns:78px minmax(0,1fr);align-items:baseline;gap:8px;border:0;border-top:1px solid var(--line);border-radius:0;padding:6px 0 0;background:transparent}.published-board-facts div:first-child{border-top:0;padding-top:0}.published-board-facts dd{font-size:9px;line-height:1.35}.published-board-select__create{width:fit-content;color:var(--primary-deep);font-size:9px;font-weight:800;text-underline-offset:2px}.published-board-select__create:focus-visible{border-radius:3px;outline:2px solid var(--focus-ring);outline-offset:2px}.shape-picker-heading{margin:12px 0 8px;color:var(--muted);font-size:9px;letter-spacing:.04em;text-transform:uppercase}.opening-select-row{margin-bottom:14px}.opening-select-row small{margin:0;max-width:none}.world-selection-summary{display:flex;align-items:center;gap:9px;margin:10px 0 12px;padding:9px;border-radius:8px;background:var(--surface-raised)}.world-selection-summary>.world-icon{--world-icon-size: 32px}.world-selection-summary strong,.world-selection-summary small{display:block}.world-selection-summary strong{font-size:11px}.world-selection-summary small{margin:2px 0 0;max-width:none;font-size:9px}.lab-section-action{width:100%;min-height:38px;display:flex;align-items:center;justify-content:space-between;gap:10px;border:1px solid var(--primary-deep);border-radius:8px;padding:8px 10px;color:var(--primary-deep);background:var(--surface);font-size:10px;font-weight:800;text-align:left;cursor:pointer;transition:color .16s var(--ease-out),background .16s var(--ease-out),transform .16s var(--ease-out)}.lab-section-action:hover{color:#fff;background:var(--primary-deep);transform:translateY(-1px)}.lab-section-action:active{transform:translateY(0)}.lab-section-action.is-primary{border-color:var(--accent);color:#fff;background:var(--accent)}.lab-section-action.is-primary:hover{background:#035;background:oklch(.31 .105 245)}.lab-section-action:disabled,.lab-section-action:disabled:hover{border-color:var(--line);color:var(--muted);background:var(--surface-raised);cursor:not-allowed;transform:none}.lab-launch-guidance{display:grid;gap:3px;margin:0 0 10px;border:1px solid oklch(.76 .09 70);border-radius:8px;padding:9px 10px;color:#562b05;background:#f9e8d2;font-size:9px;line-height:1.4}.lab-launch-guidance strong{font-size:10px}.momentum-threshold{margin:2px 0 10px;padding:8px 0 0;border-top:1px dashed var(--line)}.momentum-threshold select:disabled{opacity:.5;cursor:not-allowed}.range-row{display:block;margin-bottom:13px}.range-row>span{display:flex;align-items:center;justify-content:space-between;margin-bottom:6px}.range-row b{font-weight:500}.range-row output{font-variant-numeric:tabular-nums;color:var(--muted)}.range-row input{width:100%;accent-color:var(--primary-deep)}.momentum-range{margin:2px 0 10px;padding-top:4px}.momentum-range input:disabled{opacity:.42;cursor:not-allowed}.momentum-ticks{display:flex;justify-content:space-between;margin-top:-2px;color:var(--muted)}.momentum-ticks i{width:18px;font-size:8px;font-style:normal;text-align:center}.toggle-row{position:relative;display:grid;grid-template-columns:1fr auto;align-items:center;min-height:28px;cursor:pointer}.toggle-row input{position:absolute;opacity:0;pointer-events:none}.toggle-ui{width:32px;height:18px;border-radius:999px;background:#bcb6b1;transition:background .16s var(--ease-out)}.toggle-ui:after{content:"";display:block;width:14px;height:14px;margin:2px;border-radius:50%;background:#fff;transition:transform .16s var(--ease-out)}.toggle-row input:checked+.toggle-ui{background:var(--accent)}.toggle-row input:checked+.toggle-ui:after{transform:translate(14px)}.quick-rules{margin-top:14px;padding:12px;border-radius:8px;background:var(--surface-raised)}.quick-rules strong{font-size:10px}.quick-rules p{margin:4px 0 0;color:var(--muted);font-size:9px;line-height:1.45}.structure-fixture-setting>p{margin:0;color:var(--muted);font-size:10px;line-height:1.5}.deck-library-setting>p{margin:0 0 12px;color:var(--muted);font-size:10px;line-height:1.5}.deck-library-setting .world-select-row+small{margin-top:4px}.deck-library-setting small.deck-library-setting__status{margin:10px 0 0;color:var(--primary-deep)}.deck-library-setting [aria-label="Lab match history"]{display:grid;gap:6px;margin-top:16px;padding-top:12px;border-top:1px solid var(--line)}.deck-library-setting [aria-label="Lab match history"] h4{margin:0;font-size:10px}.deck-library-setting__history{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:center;color:var(--muted);font-size:9px;line-height:1.35}.deck-library-setting__history button{min-height:26px;padding:4px 8px;border:1px solid var(--line);border-radius:6px;background:var(--surface-raised);color:var(--primary-deep);font:inherit;font-weight:800;cursor:pointer}.deck-library-setting__history button:focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px}.deck-library-setting__history button:active:not(:disabled){background:var(--surface-sunken)}.deck-library-setting__history button:disabled{opacity:.45;cursor:not-allowed}@media(hover:hover){.deck-library-setting__history button:hover:not(:disabled){border-color:var(--primary-deep)}}.structure-fixture-setting dl{display:grid;gap:8px;margin:12px 0 0}.structure-fixture-setting dl div{display:grid;grid-template-columns:58px 1fr;gap:10px;align-items:baseline}.structure-fixture-setting dt{color:var(--primary-deep);font-size:10px;font-weight:800}.structure-fixture-setting dd{margin:0;color:var(--muted);font-size:9px;line-height:1.4}.lab-backdrop:is(.is-campaign-config,.is-match-overlay){display:block;position:fixed;inset:0;z-index:30;border:0;background:color-mix(in oklch,var(--ink),transparent 45%)}.lab-panel:is(.is-campaign-config,.is-match-overlay){position:fixed;inset:0 0 0 auto;z-index:40;width:min(360px,100%);height:100dvh;max-height:100dvh;border-left:1px solid var(--line);box-shadow:-6px 0 8px color-mix(in oklch,var(--ink),transparent 88%)}.lab-panel:is(.is-campaign-config,.is-match-overlay) .lab-close{display:grid;place-items:center;width:38px;height:38px;margin-left:2px;border:0;border-radius:8px;background:var(--surface-raised);font-size:24px;line-height:1;cursor:pointer}.lab-navigation{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:0 16px;border-bottom:1px solid var(--line);padding:5px 24px;background:var(--surface)}.lab-navigation__primary,.lab-navigation__areas,.lab-navigation__secondary{display:flex;align-items:center}.lab-navigation__primary{display:contents;gap:16px;min-height:38px}.lab-navigation__areas{grid-column:1;grid-row:1;gap:4px}.lab-navigation__secondary{grid-column:1 / -1;grid-row:2;flex-wrap:wrap;gap:2px;min-width:0;min-height:34px;margin-top:5px;border-top:1px solid var(--line);padding-top:5px}.lab-navigation__link{display:inline-flex;align-items:center;justify-content:center;min-height:34px;border-radius:7px;padding:7px 12px;color:var(--muted);font-size:12px;font-weight:750;line-height:1;text-decoration:none;white-space:nowrap;transition:color .16s var(--ease-out),background .16s var(--ease-out)}.lab-navigation__link:hover{color:var(--ink);background:var(--surface-raised)}.lab-navigation__link:focus-visible{outline:3px solid color-mix(in oklch,var(--focus),transparent 45%);outline-offset:1px}.lab-navigation__primary-link.is-active{color:var(--ink);background:var(--surface-raised)}.lab-navigation__primary-link{position:relative}.lab-navigation__primary-link.is-active:before{width:5px;height:5px;border-radius:50%;background:var(--accent);content:"";margin-right:7px}.lab-navigation__secondary-link{min-height:30px;padding-inline:11px;font-size:11px}.lab-navigation__secondary-link.is-active,.lab-navigation__utility.is-active,.lab-navigation__secondary-link.is-active:hover,.lab-navigation__utility.is-active:hover{color:#fff;background:var(--accent)}.lab-navigation__utility{grid-column:2;grid-row:1;margin-left:auto;border:1px solid var(--line)}.lab-navigation__review-label--short{display:none}.ability-lab{min-height:calc(100vh - 123px);padding:30px 32px 52px;background:var(--bg)}.ability-lab__header{display:flex;align-items:flex-start;justify-content:space-between;gap:28px;max-width:1440px;margin:0 auto 24px}.ability-lab__kicker{color:var(--primary-deep);font-size:10px;font-weight:850;letter-spacing:.08em;text-transform:uppercase}.ability-lab__header h1{margin:5px 0;font-size:28px;line-height:1.1;letter-spacing:-.03em;text-wrap:balance}.ability-lab__header p{max-width:70ch;margin:0;color:var(--muted);font-size:13px;line-height:1.5;text-wrap:pretty}.ability-lab__storage{display:flex;flex:0 0 auto;align-items:center;gap:8px;min-height:36px;border:1px solid var(--line);border-radius:8px;padding:8px 11px;color:var(--muted);background:var(--surface);font-size:10px;font-weight:750}.ability-lab__storage i{width:7px;height:7px;border-radius:50%;background:var(--line)}.ability-lab__storage.is-ready i{background:#418e47}.ability-lab__storage.is-error{color:#721d17}.ability-lab__storage.is-error i{background:#bb584d}.ability-lab__storage.is-loading i{animation:ability-storage-pulse 1.1s ease-in-out infinite alternate}.ability-inventory{max-width:1440px;margin:0 auto 28px;overflow:hidden;border:1px solid var(--line);border-radius:10px;background:var(--surface)}.ability-inventory__summary{display:flex;align-items:flex-start;justify-content:space-between;gap:28px;padding:18px 20px;border-bottom:1px solid var(--line)}.ability-inventory__summary h2{margin:0;font-size:16px;line-height:1.2}.ability-inventory__summary p{max-width:72ch;margin:5px 0 0;color:var(--muted);font-size:10px;line-height:1.45}.ability-inventory__summary dl{display:flex;flex:0 1 auto;flex-wrap:wrap;justify-content:flex-end;gap:12px 20px;margin:0}.ability-inventory__summary dl div{min-width:58px}.ability-inventory__summary dt{color:var(--muted);font-size:8px;font-weight:750}.ability-inventory__summary dd{margin:2px 0 0;font-size:18px;font-weight:850;font-variant-numeric:tabular-nums}.ability-ownership-policy{display:grid;grid-template-columns:minmax(150px,.25fr) minmax(0,1fr);align-items:baseline;gap:16px;padding:11px 20px;border-bottom:1px solid var(--line);color:var(--primary-deep);background:var(--primary-pale)}.ability-ownership-policy strong{font-size:10px;font-weight:850}.ability-ownership-policy p{max-width:90ch;margin:0;color:var(--ink);font-size:10px;line-height:1.45}.ability-inventory__filters{display:grid;grid-template-columns:minmax(220px,1fr) repeat(3,minmax(140px,.42fr)) auto;align-items:end;gap:8px;padding:10px 12px;border-bottom:1px solid var(--line);background:var(--surface-raised)}.ability-inventory__filters label{display:grid;gap:4px;min-width:0;color:var(--muted);font-size:8px;font-weight:800}.ability-inventory__filters input,.ability-inventory__filters select{width:100%;min-height:36px;border:1px solid var(--line);border-radius:7px;padding:7px 9px;color:var(--ink);background:var(--surface);font:inherit;font-size:10px;font-weight:700}.ability-inventory__filters input::placeholder{color:color-mix(in oklch,var(--ink),transparent 38%);font-weight:600}.ability-inventory__filters input:hover,.ability-inventory__filters select:hover{border-color:color-mix(in oklch,var(--accent),var(--line) 45%)}.ability-inventory__filters input:focus-visible,.ability-inventory__filters select:focus-visible{outline:3px solid var(--accent);outline-offset:1px}.ability-inventory__filters>strong{min-width:64px;padding:10px 4px;color:var(--muted);font-size:9px;text-align:right;white-space:nowrap}.ability-inventory__table-wrap{position:relative;max-height:620px;overflow:auto}.ability-inventory table{width:100%;min-width:1320px;border-collapse:collapse;font-size:9px}.ability-inventory th,.ability-inventory td{border-top:1px solid var(--line);padding:9px 11px;text-align:left;white-space:nowrap}.ability-inventory thead th{position:sticky;top:0;z-index:2;border-top:0;color:var(--muted);background:var(--surface-raised);font-size:8px;font-weight:850}.ability-inventory thead th:first-child{left:0;z-index:3}.ability-column-help{position:relative;display:inline-flex;align-items:center;gap:4px;cursor:help;outline:none}.ability-column-help>span{display:inline-grid;width:14px;height:14px;place-items:center;border:1px solid var(--line);border-radius:50%;color:var(--muted);font-size:7px}.ability-column-help:after{position:absolute;top:calc(100% + 8px);right:-10px;z-index:5;width:250px;border:1px solid var(--line);border-radius:7px;padding:9px 10px;color:var(--ink);background:var(--surface);box-shadow:0 8px 24px color-mix(in oklch,var(--ink),transparent 84%);content:attr(data-tooltip);font-size:9px;font-weight:650;line-height:1.45;white-space:normal;opacity:0;pointer-events:none;transform:translateY(-3px);transition:opacity .12s ease,transform .12s ease}.ability-column-help:hover:after,.ability-column-help:focus-visible:after{opacity:1;transform:translateY(0)}.ability-column-help:focus-visible{border-radius:3px;box-shadow:0 0 0 3px var(--accent)}.ability-inventory tbody tr:hover{background:color-mix(in oklch,var(--primary-pale),transparent 55%)}.ability-inventory tbody th{position:sticky;left:0;z-index:1;width:190px;background:var(--surface)}.ability-inventory tbody tr:hover th{background:color-mix(in oklch,var(--primary-pale),var(--surface) 55%)}.ability-inventory tbody th strong,.ability-inventory tbody th a{color:var(--ink);font-size:10px;font-weight:850}.ability-inventory tbody th>small{display:block;max-width:220px;margin-top:3px;color:var(--muted);font-size:8px;font-weight:650;line-height:1.3;white-space:normal}.ability-inventory tbody th a{display:grid;gap:2px;width:fit-content;text-align:left;text-decoration-color:color-mix(in oklch,var(--accent),transparent 55%);text-underline-offset:2px}.ability-inventory tbody th a:hover{color:var(--accent)}.ability-inventory tbody th a:focus-visible{border-radius:3px;outline:3px solid var(--accent);outline-offset:2px}.ability-inventory tbody th a span{color:var(--muted);font-size:7px;font-weight:700;text-decoration:none}.ability-stage{display:inline-flex;min-height:21px;align-items:center;border-radius:999px;padding:4px 7px;color:var(--muted);background:var(--surface-raised);font-size:8px;font-weight:800}.ability-stage--implemented,.ability-stage--ready-for-manual-playtest{color:#084511;background:#cbeccb}.ability-stage--harness-tested,.ability-stage--replay-tested{color:var(--accent);background:var(--accent-pale)}.ability-stage--specced{color:var(--primary-deep);background:var(--primary-pale)}.ability-stage--deferred{color:#603c07;background:#f5e1c8}.ability-stage--needs-rework{color:#643900;color:oklch(.39 .09 65);background:#fbe0bd}.ability-stage--retired{color:#444e58;background:#dce2e8}.ability-check{display:inline-grid;min-width:24px;min-height:21px;place-items:center;color:var(--muted);font-size:8px;font-weight:850}.ability-check.is-complete{border-radius:999px;padding-inline:7px;color:#084511;background:#cbeccb}.ability-environment{display:inline-flex;align-items:center;gap:7px}.ability-environment img,.ability-environment__generic{width:24px;height:24px;flex:0 0 24px;border-radius:50%}.ability-environment img{object-fit:contain;border-radius:0}.ability-environment__generic{display:grid;place-items:center;color:var(--muted);background:var(--surface-raised);font-size:14px}.ability-environment-benefit{display:inline-grid;min-width:34px;min-height:22px;place-items:center;border-radius:999px;padding-inline:8px;color:var(--muted);background:var(--surface-raised);font-size:8px;font-weight:850}.ability-environment-benefit.is-benefit{color:#084511;background:#cbeccb}.ability-environment-benefit.is-interaction{color:var(--primary-deep);background:var(--primary-pale)}.ability-environment-benefit.is-none{background:transparent}.ability-card-count{display:inline-grid;min-width:28px;min-height:24px;place-items:center;border-radius:6px;color:var(--ink);background:var(--surface-raised);font-size:9px;font-weight:850;font-variant-numeric:tabular-nums}.ability-inventory__empty{display:flex;align-items:center;justify-content:center;gap:12px;min-height:110px;color:var(--muted);font-size:11px}.ability-inventory__empty button{min-height:34px;border:1px solid var(--line);border-radius:7px;padding:7px 10px;color:var(--ink);background:var(--surface);font-size:10px;font-weight:800;cursor:pointer}.ability-inventory__empty button:hover{background:var(--surface-raised)}.ability-inventory__empty button:focus-visible{outline:3px solid var(--accent);outline-offset:2px}.ability-review-badge{display:inline-flex;width:fit-content;align-items:center;min-height:22px;border-radius:999px;padding:3px 8px;color:var(--muted);background:var(--surface-raised);font-size:8px;font-weight:850;line-height:1.2;white-space:nowrap}.ability-review-badge.is-approved{color:#084511;background:#c9edc9}.ability-review-badge.is-awaiting-review{color:#613b00;color:oklch(.39 .1 70);background:#f9e6bf}.ability-review-badge.is-rejected{color:#942124;background:#ffdedb;background:oklch(.93 .045 25)}.ability-review-badge.is-unavailable{color:#6e4108;background:#fae5c3}.ability-review-worklist{max-width:1320px;margin:0 auto 18px;border:1px solid var(--line);border-radius:10px;background:var(--surface)}.ability-review-worklist>header{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;padding:14px 18px;background:var(--surface-raised)}.ability-review-worklist h2{margin:0;font-size:14px}.ability-review-worklist header p{max-width:72ch;margin:4px 0 0;color:var(--muted);font-size:9px;line-height:1.45}.ability-review-worklist header>strong{min-width:28px;border-radius:999px;padding:5px 8px;color:#613b00;color:oklch(.39 .1 70);background:#f9e6bf;font-size:10px;text-align:center}.ability-review-worklist ol{margin:0;padding:0;list-style:none}.ability-review-worklist__empty{margin:0;border-top:1px solid var(--line);padding:14px 18px;color:var(--muted);font-size:10px}.ability-review-worklist li{display:flex;align-items:center;justify-content:space-between;gap:16px;border-top:1px solid var(--line);padding:10px 18px}.ability-review-worklist li>div:first-child{display:grid;gap:2px}.ability-review-worklist li>div:first-child strong{font-size:11px}.ability-review-worklist li>div:first-child span{color:var(--muted);font-size:8px}.ability-review-worklist li>div:last-child{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:7px}.ability-review-worklist button,.ability-review-controls button{min-height:34px;border:0;border-radius:7px;padding:7px 11px;color:#fff;background:var(--accent);font-size:9px;font-weight:800;cursor:pointer}.ability-review-worklist button.is-secondary,.ability-review-controls button.is-secondary{border:1px solid var(--line);color:var(--ink);background:var(--surface)}.ability-review-worklist button.is-danger,.ability-review-controls button.is-danger{color:#fff;background:#a12f2f}.ability-review-worklist button:hover:not(:disabled),.ability-review-controls button:hover:not(:disabled){filter:brightness(1.08)}.ability-review-worklist button:focus-visible,.ability-review-controls button:focus-visible{outline:3px solid var(--accent);outline-offset:2px}.ability-review-worklist button:disabled,.ability-review-controls button:disabled{opacity:.48;cursor:not-allowed}.asset-review{min-height:calc(100vh - 123px);padding:34px 32px 64px;background:var(--bg)}.asset-review__header,.asset-review__list,.asset-review__filters,.asset-review__message,.asset-review__empty,.asset-review__loading{width:min(1480px,100%);margin-inline:auto}.asset-review__header{display:flex;align-items:end;justify-content:space-between;gap:36px;margin-bottom:26px}.asset-review__kicker{margin:0 0 6px;color:var(--primary-deep);font-size:10px;font-weight:850;letter-spacing:.08em;text-transform:uppercase}.asset-review__header h1{margin:0 0 8px;font-family:var(--font-display);font-size:clamp(28px,4vw,46px);line-height:1;letter-spacing:-.035em;text-wrap:balance}.asset-review__header p:not(.asset-review__kicker){max-width:70ch;margin:0;color:var(--muted);font-size:13px;line-height:1.55}.asset-review__summary{display:flex;flex:0 0 auto;gap:24px;margin:0}.asset-review__summary div{min-width:100px;padding-top:9px;border-top:2px solid var(--accent)}.asset-review__summary dt{color:var(--muted);font-size:10px;font-weight:750}.asset-review__summary dd{margin:3px 0 0;color:var(--ink);font-family:var(--font-display);font-size:24px;font-weight:700}.asset-review__filters{display:flex;gap:5px;overflow-x:auto;padding:0 0 14px;border-bottom:1px solid var(--line)}.asset-review__filters button{display:inline-flex;align-items:center;gap:7px;min-height:34px;border:1px solid transparent;border-radius:7px;padding:7px 11px;color:var(--muted);background:transparent;font-size:11px;font-weight:750;white-space:nowrap;cursor:pointer}.asset-review__filters button:hover{color:var(--ink);background:var(--surface-raised)}.asset-review__filters button.is-active{border-color:var(--accent);color:#fff;background:var(--accent)}.asset-review__filters span{min-width:18px;border-radius:9px;padding:2px 5px;color:currentColor;background:color-mix(in oklch,currentColor,transparent 82%);font-size:10px;text-align:center}.asset-review__message{margin-top:16px;color:var(--primary-deep);font-size:12px;font-weight:700}.asset-review__list{display:grid;gap:18px;margin-top:22px}.asset-review__item{display:grid;grid-template-columns:minmax(280px,1.1fr) minmax(340px,.9fr);overflow:hidden;border:1px solid var(--line);border-radius:12px;background:var(--surface)}.asset-review__item.is-approved{border-color:color-mix(in oklch,oklch(.58 .13 145),var(--line) 45%)}.asset-review__image-pane{display:flex;min-height:340px;flex-direction:column;padding:14px;background:#221810}.asset-review__label{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px;color:#dacfc6;font-size:10px;font-weight:800;letter-spacing:.07em;text-transform:uppercase}.asset-review__label code{overflow:hidden;color:#b89f8c;font-size:10px;font-weight:600;letter-spacing:0;text-overflow:ellipsis;text-transform:none;white-space:nowrap}.asset-review__image-pane img{width:100%;min-height:260px;flex:1;object-fit:contain;background:#100a05}.asset-review__image-pane small{margin-top:10px;color:#ada29a;font-size:10px}.asset-review__prompt-pane{display:flex;min-width:0;flex-direction:column;padding:22px 24px 20px}.asset-review__asset-heading{display:flex;align-items:start;justify-content:space-between;gap:16px}.asset-review__asset-heading>div>span{color:var(--muted);font-size:10px;font-weight:750}.asset-review__asset-heading h2{margin:3px 0 0;font-family:var(--font-display);font-size:25px;line-height:1.05;letter-spacing:-.025em}.asset-review__asset-heading strong{flex:0 0 auto;border-radius:999px;padding:6px 9px;color:var(--primary-deep);background:var(--primary-pale);font-size:10px;white-space:nowrap}.asset-review__asset-heading strong.is-approved{color:#004e10;color:oklch(.37 .12 145);background:#cbeccb}.asset-review__prompt-label{margin:22px 0 7px;color:var(--muted);font-size:10px;font-weight:850;letter-spacing:.08em;text-transform:uppercase}.asset-review__prompt-pane pre{overflow:auto;min-height:170px;max-height:270px;margin:0;padding:12px;border:1px solid var(--line);border-radius:7px;color:var(--ink);background:var(--surface-raised);font:11px/1.55 Inter,sans-serif;white-space:pre-wrap}.asset-review__actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:auto;padding-top:18px}.asset-review__actions button{min-height:37px;border:1px solid var(--line);border-radius:7px;padding:8px 12px;color:var(--ink);background:var(--surface);font-size:11px;font-weight:800;cursor:pointer}.asset-review__actions button:hover{background:var(--surface-raised)}.asset-review__actions button.is-approve{border-color:var(--accent);color:#fff;background:var(--accent)}.asset-review__actions button.is-approve:hover{background:#035;background:oklch(.31 .105 245)}.asset-review__actions button:disabled{cursor:wait;opacity:.55}.asset-review__empty,.asset-review__loading{padding:48px 24px;text-align:center}.asset-review__empty{border:1px dashed var(--line);background:var(--surface)}.asset-review__empty h1,.asset-review__empty h2{margin:0 0 8px;font-family:var(--font-display)}.asset-review__empty p,.asset-review__loading{color:var(--muted);font-size:13px}.asset-review__empty button{border:0;border-radius:7px;padding:10px 14px;color:#fff;background:var(--accent);font-weight:750;cursor:pointer}@media(max-width:760px){.asset-review{padding:24px 14px 48px}.asset-review__header{display:block}.asset-review__summary{margin-top:22px}.asset-review__summary div{min-width:90px}.asset-review__item{grid-template-columns:1fr}.asset-review__image-pane{min-height:0}.asset-review__image-pane img{min-height:210px;max-height:52vh}.asset-review__prompt-pane{padding:18px}.asset-review__prompt-pane pre{max-height:220px}}@media(prefers-reduced-motion:reduce){.asset-review *{scroll-behavior:auto!important;transition:none!important}}.ability-tests,.ability-runs{border:1px solid var(--line);border-radius:10px;background:var(--surface)}.ability-tests>header,.ability-runs>header{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;padding:16px 18px;border-bottom:1px solid var(--line)}.ability-tests h2,.ability-runs h2{margin:0;font-size:14px}.ability-tests header p,.ability-runs header p{margin:4px 0 0;color:var(--muted);font-size:9px;line-height:1.4}.ability-tests header code,.ability-runs__message code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.ability-tests header>strong,.ability-runs header>span{flex:0 0 auto;border-radius:999px;padding:5px 8px;color:var(--primary-deep);background:var(--primary-pale);font-size:8px;font-weight:850}.ability-tests ol{margin:0;padding:0;list-style:none}.ability-tests li{display:grid;grid-template-columns:24px minmax(0,1fr) auto;align-items:center;gap:10px;min-height:62px;border-top:1px solid var(--line);padding:10px 18px}.ability-tests li:first-child{border-top:0}.ability-tests li>span{display:grid;width:22px;height:22px;place-items:center;border-radius:50%;color:#084511;background:#c9edc9;font-size:11px;font-weight:900}.ability-tests li strong{display:block;font-size:11px}.ability-tests li p{margin:3px 0 0;color:var(--muted);font-size:9px;line-height:1.4}.ability-tests li code{max-width:220px;overflow:hidden;border-radius:5px;padding:4px 6px;color:var(--muted);background:var(--surface-raised);font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:8px;text-overflow:ellipsis;white-space:nowrap}.ability-runs__group+.ability-runs__group{border-top:1px solid var(--line)}.ability-runs__variant{display:flex;align-items:baseline;justify-content:space-between;gap:12px;padding:12px 18px 10px}.ability-runs__variant span{color:var(--muted);font-size:8px;font-weight:750}.ability-runs__variant h3{margin:0;color:var(--primary-deep);font-size:11px;font-weight:850}.ability-runs__summary{margin:0;padding:10px 18px;color:var(--ink);background:var(--accent-pale);font-size:10px;font-weight:750;line-height:1.45}.ability-runs__message{display:grid;justify-items:center;gap:5px;padding:34px 20px;color:var(--muted);font-size:10px;text-align:center}.ability-runs__message strong{color:var(--ink);font-size:12px}.ability-runs__message.is-error strong{color:#721d17}.ability-runs__table-wrap{width:100%;overflow-x:auto}.ability-runs table{width:100%;border-collapse:collapse;font-size:9px;font-variant-numeric:tabular-nums}.ability-runs th,.ability-runs td{border-top:1px solid var(--line);padding:10px 12px;text-align:right;white-space:nowrap}.ability-runs thead th{border-top:0;color:var(--muted);background:var(--surface-raised);font-size:8px;font-weight:800}.ability-runs th:first-child,.ability-runs td:first-child{text-align:left}.ability-runs tbody th{min-width:210px}.ability-runs tbody td:nth-child(2){min-width:140px;text-align:left}.ability-runs tbody strong,.ability-runs tbody small{display:block}.ability-runs tbody strong{color:var(--ink);font-size:9px}.ability-runs tbody small{max-width:250px;margin-top:2px;overflow:hidden;color:var(--muted);font-size:8px;text-overflow:ellipsis}.ability-runs tfoot th,.ability-runs tfoot td{border-top:2px solid var(--line);color:var(--ink);background:var(--surface-raised);font-weight:850}.ability-runs tfoot td:nth-child(2){color:var(--muted);text-align:left}.ability-runs tfoot strong,.ability-runs tfoot small{display:block}.ability-runs tfoot strong{color:var(--ink);font-size:9px}.ability-runs tfoot small{margin-top:2px;color:var(--muted);font-size:8px;font-weight:750}.ability-card-assignments{border:1px solid var(--line);border-radius:10px;background:var(--surface)}.ability-card-assignments>header{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;padding:16px 18px;border-bottom:1px solid var(--line)}.ability-card-assignments h2{margin:0;font-size:14px}.ability-card-assignments header p{max-width:72ch;margin:4px 0 0;color:var(--muted);font-size:9px;line-height:1.4}.ability-card-assignments header>span{flex:0 0 auto;border-radius:999px;padding:5px 8px;font-size:8px;font-weight:850}.ability-card-assignments header>span.is-ready{color:#084511;background:#c9edc9}.ability-card-assignments header>span.is-unavailable{color:#6e4108;background:#fae5c3}.ability-card-assignments__list{margin:0;padding:0;list-style:none}.ability-card-assignments__list li{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:10px;border-top:1px solid var(--line);padding:10px 18px}.ability-card-assignments__list li:first-child{border-top:0}.ability-card-assignments__list strong{display:block;font-size:11px}.ability-card-assignments__list small{display:block;margin-top:2px;color:var(--muted);font-size:9px}.ability-card-assignments__list code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.ability-card-assignments__list button{min-height:32px;border:1px solid var(--line);border-radius:7px;padding:6px 11px;color:var(--ink);background:var(--surface);font-size:10px;font-weight:750;cursor:pointer}.ability-card-assignments__list button:hover:not(:disabled){border-color:var(--accent);color:var(--accent)}.ability-card-assignments__list button:focus-visible{outline:3px solid var(--accent);outline-offset:2px}.ability-card-assignments__list button:disabled{opacity:.45;cursor:not-allowed}.ability-card-assignments__actions{display:flex;align-items:center;gap:6px}.ability-card-assignments__picker{display:flex;flex-wrap:wrap;align-items:end;gap:9px;border-top:1px solid var(--line);padding:14px 18px}.ability-card-assignments__picker label{display:grid;flex:1 1 200px;gap:5px;min-width:0}.ability-card-assignments__picker label>span{color:var(--muted);font-size:9px;font-weight:750}.ability-card-assignments__picker select,.ability-card-assignments__picker input{width:100%;min-height:38px;border:1px solid var(--line);border-radius:7px;padding:8px 10px;color:var(--ink);background:#fff;font:inherit;font-size:11px}.ability-card-assignments__picker select:hover:not(:disabled),.ability-card-assignments__picker input:hover:not(:disabled){border-color:var(--accent)}.ability-card-assignments__picker :is(select,input,button):focus-visible{outline:3px solid var(--accent);outline-offset:2px}.ability-card-assignments__picker button{flex:0 0 auto;min-height:38px;border:0;border-radius:8px;padding:8px 14px;color:#fff;background:var(--accent);font-size:11px;font-weight:800;cursor:pointer}.ability-card-assignments__picker button:hover:not(:disabled){background:color-mix(in oklch,var(--accent),white 12%)}.ability-card-assignments__picker :is(select,input,button):disabled{opacity:.48;cursor:not-allowed}.ability-card-assignments__empty{margin:0;border-top:1px solid var(--line);padding:14px 18px;color:var(--muted);font-size:10px;line-height:1.45}.ability-card-assignments__empty:first-of-type{border-top:0}.ability-card-assignments__notice,.ability-card-assignments__error{margin:0;border-top:1px solid var(--line);padding:12px 18px;font-size:10px;font-weight:750;line-height:1.45}.ability-card-assignments__notice{color:#104a17}.ability-card-assignments__error{color:#a12f2f}.ability-card-assignments__suppressed{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin-top:6px;color:#942124;font-size:9px;font-weight:750}.ability-review-controls{border:1px solid var(--line);border-radius:10px;margin-bottom:18px;padding:16px 18px;background:var(--surface)}.ability-review-controls>header{display:flex;align-items:flex-start;justify-content:space-between;gap:18px}.ability-review-controls h2{margin:0;font-size:14px}.ability-review-controls header p,.ability-review-controls>p{max-width:72ch;margin:4px 0 0;color:var(--muted);font-size:9px;line-height:1.45}.ability-review-controls dl{display:flex;flex-wrap:wrap;gap:12px 24px;margin:14px 0 0}.ability-review-controls dt{color:var(--muted);font-size:8px;font-weight:750}.ability-review-controls dd{margin:2px 0 0;font-size:9px;font-weight:800}.ability-review-controls code,.ability-review-confirmation code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.9em}.ability-review-controls__actions{display:flex;gap:8px;margin-top:14px}.ability-review-confirmation{margin-top:14px;border:1px solid oklch(.72 .1 25);border-radius:8px;padding:14px;background:#fff1f0;background:oklch(.97 .02 25)}.ability-review-confirmation h3{margin:0;color:#831a1d;font-size:12px}.ability-review-confirmation p{max-width:72ch;margin:6px 0 0;color:#603431;font-size:9px;line-height:1.5}.ability-review-confirmation ul{margin:10px 0;padding-left:20px;color:#603431;font-size:9px;line-height:1.6}.ability-review-confirmation>div{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}.ability-review-controls__error{margin:12px 0 0;color:#a12f2f;font-size:10px;font-weight:750}.ability-detail{min-height:calc(100vh - 123px);padding:22px 32px 56px;background:var(--bg)}.ability-breadcrumbs{display:flex;align-items:center;gap:8px;max-width:1320px;margin:0 auto 24px;color:var(--muted);font-size:11px}.ability-breadcrumbs a,.ability-detail__back,.ability-detail__missing-copy a{color:var(--accent);font-weight:750;text-underline-offset:3px}.ability-breadcrumbs a:focus-visible,.ability-detail__back:focus-visible,.ability-detail__missing-copy a:focus-visible{border-radius:3px;outline:3px solid var(--accent);outline-offset:2px}.ability-detail__hero{display:grid;grid-template-columns:52px minmax(0,1fr);gap:18px;max-width:1320px;margin:0 auto;padding:0 0 28px;border-bottom:1px solid var(--line)}.ability-detail__mark{display:block;width:46px;aspect-ratio:1;margin-top:2px;background:var(--primary);clip-path:polygon(25% 6.7%,75% 6.7%,100% 50%,75% 93.3%,25% 93.3%,0 50%)}.ability-detail__mark:after{display:block;width:calc(100% - 4px);aspect-ratio:1;margin:2px;background:var(--bg);clip-path:inherit;content:""}.ability-detail__title-line{display:flex;flex-wrap:wrap;align-items:center;gap:12px}.ability-detail__title-line h1{margin:0;font-family:var(--font-display);font-size:38px;line-height:1;letter-spacing:-.035em;text-wrap:balance}.ability-detail__hero>div>p{max-width:72ch;margin:12px 0 20px;color:var(--muted);font-size:14px;line-height:1.62;text-wrap:pretty}.ability-detail__summary{display:flex;flex-wrap:wrap;gap:24px;margin:0}.ability-detail__summary div{min-width:120px}.ability-detail__summary dt,.ability-detail__metadata dt,.ability-rulebook dt{color:var(--muted);font-size:9px;font-weight:750}.ability-detail__summary dd,.ability-detail__metadata dd,.ability-rulebook dd{margin:3px 0 0;color:var(--ink);font-size:11px;font-weight:800;text-transform:capitalize}.ability-detail__layout{display:grid;grid-template-columns:minmax(0,1fr) 260px;align-items:start;gap:32px;max-width:1320px;margin:0 auto}.ability-detail__content{min-width:0}.ability-rulebook{background:var(--surface)}.ability-rulebook>section{padding:28px 24px;border-bottom:1px solid var(--line)}.ability-rulebook h2{margin:0 0 14px;font-family:var(--font-display);font-size:19px;letter-spacing:-.015em}.ability-rulebook dl{display:flex;flex-wrap:wrap;gap:16px 28px;margin:0 0 16px}.ability-rulebook dl div{min-width:130px}.ability-rulebook ul{display:grid;gap:10px;margin:0;padding:0;list-style:none}.ability-rulebook li{display:grid;grid-template-columns:minmax(150px,.38fr) minmax(0,1fr);gap:16px;align-items:baseline}.ability-rulebook li strong{font-size:11px;text-transform:capitalize}.ability-rulebook li span,.ability-rulebook>section>p{max-width:72ch;color:var(--muted);font-size:12px;line-height:1.55}.ability-rulebook>section>p{margin:12px 0 0}.ability-rulebook__windows{display:flex;gap:12px;padding-top:14px;border-top:1px solid var(--line)}.ability-rulebook__windows strong{flex:0 0 auto;color:var(--ink)}.ability-rulebook--undefined{padding:32px 24px;border-bottom:1px solid var(--line)}.ability-rulebook--undefined h2{margin-bottom:8px}.ability-rulebook--undefined p{max-width:66ch;margin:0;color:var(--muted);font-size:13px;line-height:1.6}.ability-detail__content>.ability-tests,.ability-detail__content>.ability-runs{margin-top:18px}.ability-detail__metadata{position:sticky;top:12px;padding:24px 0 0}.ability-detail__metadata dl{margin:0}.ability-detail__metadata dl div{padding:0 0 16px;border-bottom:1px solid var(--line);margin-bottom:16px}.ability-detail__metadata dd{overflow-wrap:anywhere;text-transform:none}.ability-detail__metadata code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:9px}.ability-detail__metadata button{width:100%;min-height:42px;border:0;border-radius:7px;padding:9px 12px;color:#fff;background:var(--accent);font-size:11px;font-weight:800;cursor:pointer;transition:background .16s var(--ease-out),transform .16s var(--ease-out)}.ability-detail__metadata button:hover:not(:disabled){background:#035;background:oklch(.31 .105 245);transform:translateY(-1px)}.ability-detail__metadata button:active:not(:disabled){transform:translateY(0)}.ability-detail__metadata button:disabled{opacity:.48;cursor:not-allowed}.ability-detail__metadata>p{margin:0;color:var(--muted);font-size:10px;line-height:1.5}.ability-detail__back{display:inline-flex;min-height:44px;align-items:center;margin-top:18px;font-size:11px}.ability-detail--missing{min-height:calc(100vh - 123px)}.ability-detail__missing-copy{display:grid;justify-items:start;max-width:1320px;margin:90px auto}.ability-detail__missing-copy h1{margin:18px 0 6px;font-family:var(--font-display);font-size:30px}.ability-detail__missing-copy p{margin:0 0 20px;color:var(--muted);font-size:13px}@media(max-width:900px){.ability-inventory__filters{grid-template-columns:minmax(220px,1fr) repeat(2,minmax(140px,.5fr))}.ability-inventory__filters label:nth-of-type(4){grid-column:1 / 2}.ability-detail__layout{grid-template-columns:1fr;gap:0}.ability-detail__metadata{position:static;grid-row:1;display:grid;grid-template-columns:minmax(0,1fr) 220px;gap:20px;padding:18px 0;border-bottom:1px solid var(--line)}.ability-detail__metadata dl{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.ability-detail__metadata dl div{min-width:0;margin:0;padding:0;border:0}.ability-detail__metadata button,.ability-detail__metadata>p{align-self:start}}@media(max-width:640px){.ability-lab,.ability-detail{min-height:calc(100vh - 116px);padding:22px 14px 42px}.ability-card-assignments>header{display:grid;gap:8px}.ability-card-assignments header>span{width:fit-content}.ability-card-assignments__list li{grid-template-columns:minmax(0,1fr) auto}.ability-card-assignments__actions{grid-column:2;justify-content:end}.ability-card-assignments__picker{display:grid;grid-template-columns:1fr}.ability-card-assignments__picker button{width:100%}.ability-lab__header{display:block;margin-bottom:18px}.ability-lab__storage{width:fit-content;margin-top:14px}.ability-inventory{border-radius:8px}.ability-inventory__summary{display:block;padding:16px}.ability-inventory__summary dl{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-top:16px}.ability-inventory__summary dl div{min-width:0}.ability-inventory__filters{grid-template-columns:1fr 1fr;padding:10px}.ability-inventory__filters .ability-inventory__search{grid-column:1 / -1}.ability-inventory__filters label:nth-of-type(4){grid-column:auto}.ability-inventory__filters>strong{grid-column:1 / -1;min-height:30px;padding:7px 2px 0;text-align:left}.ability-inventory__table-wrap{max-height:none}.ability-inventory table{min-width:920px}.ability-review-worklist li{align-items:flex-start}.ability-inventory th,.ability-inventory td{padding-block:11px}.ability-breadcrumbs{margin-bottom:20px;overflow:hidden}.ability-breadcrumbs span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ability-detail__hero{grid-template-columns:34px minmax(0,1fr);gap:12px;padding-bottom:22px}.ability-detail__mark{width:34px}.ability-detail__title-line{display:grid;justify-items:start;gap:8px}.ability-detail__title-line h1{font-size:30px}.ability-detail__hero>div>p{margin:10px 0 16px;font-size:13px}.ability-detail__summary{display:grid;grid-template-columns:1fr 1fr;gap:12px}.ability-detail__metadata{display:block}.ability-detail__metadata dl{grid-template-columns:1fr 1fr;gap:14px}.ability-detail__metadata button,.ability-detail__metadata>p{margin-top:18px}.ability-review-worklist li{display:grid}.ability-review-worklist li>div:last-child{justify-content:flex-start}.ability-rulebook>section,.ability-rulebook--undefined{padding:22px 16px}.ability-rulebook li{grid-template-columns:1fr;gap:3px}.ability-rulebook__windows{display:grid;gap:4px}.ability-tests>header,.ability-runs>header{display:block}.ability-tests header>strong,.ability-runs header>span{display:inline-block;margin-top:10px}.ability-tests li{grid-template-columns:24px minmax(0,1fr)}.ability-tests li code{grid-column:2;max-width:100%}}@keyframes ability-storage-pulse{to{background:var(--primary);transform:scale(1.2)}}@media(max-width:860px){.ability-lab{padding-inline:14px}.ability-lab__header,.ability-inventory__summary{display:grid}.ability-inventory__summary dl{justify-content:flex-start}.ability-ownership-policy{grid-template-columns:1fr;gap:4px}}@media(prefers-reduced-motion:reduce){.ability-lab__storage.is-loading i{animation:none}.ability-detail__metadata button{transition:none}}.app-shell--lab:has(.play-area.is-city-match):not(:has(.match-results-lab)){height:100dvh;min-height:0;overflow:hidden}.card-catalog{min-height:calc(100vh - 123px);padding:30px 32px 48px;background:var(--bg)}.card-catalog__header{display:flex;align-items:flex-start;justify-content:space-between;gap:28px;max-width:1440px;margin:0 auto 24px}.card-catalog__kicker{color:var(--primary-deep);font-size:10px;font-weight:850;letter-spacing:.08em;text-transform:uppercase}.card-catalog__header h1{margin:5px 0;font-size:28px;line-height:1.1;letter-spacing:-.03em}.card-catalog__header p{max-width:66ch;margin:0;color:var(--muted);font-size:13px;line-height:1.5}.catalog-surfaces{display:flex;gap:3px;max-width:1440px;margin:0 auto 14px;padding:3px;width:fit-content;border:1px solid var(--line);border-radius:9px;background:var(--surface-raised)}.catalog-surfaces a{min-height:34px;border-radius:6px;padding:9px 13px 7px;color:var(--muted);background:transparent;font-size:11px;font-weight:800;text-decoration:none}.catalog-surfaces a.is-active{color:var(--ink);background:var(--surface);box-shadow:0 1px 4px color-mix(in oklch,var(--ink),transparent 90%)}.catalog-surfaces a:focus-visible{outline:3px solid var(--accent);outline-offset:2px}.species-artwork{display:grid;grid-template-columns:220px minmax(0,1fr);gap:16px;max-width:1440px;margin:0 auto}.species-artwork__loading{max-width:1440px;margin:50px auto;color:var(--muted);text-align:center}.species-artwork__list{display:grid;align-content:start;gap:2px}.species-artwork__list a{display:grid;gap:2px;min-height:52px;border-radius:7px;padding:9px 11px;color:var(--ink);background:transparent;text-align:left;text-decoration:none}.species-artwork__list a:hover,.species-artwork__list a.is-active{background:var(--surface)}.species-artwork__list a.is-active{box-shadow:inset 0 0 0 1px var(--line)}.species-artwork__list a:focus-visible{outline:3px solid var(--accent);outline-offset:2px}.species-artwork__list span{font-size:12px;font-weight:800}.species-artwork__list small{color:var(--muted);font-size:9px}.species-artwork__detail{min-width:0;border:1px solid var(--line);border-radius:10px;background:var(--surface)}.species-artwork__detail>header{display:flex;justify-content:space-between;gap:16px;padding:18px 20px;border-bottom:1px solid var(--line)}.species-artwork__detail h2{margin:0;font-size:20px}.species-artwork__detail header p{margin:3px 0 0;color:var(--muted);font-size:11px}.species-artwork__notice{margin:0;padding:10px 20px;color:#503405;background:#f9e5c7;font-size:10px;font-weight:700;line-height:1.45}.species-artwork__detail button{min-height:34px;border:1px solid var(--line);border-radius:7px;padding:7px 10px;color:var(--ink);background:var(--surface);font-size:10px;font-weight:800;cursor:pointer}.species-artwork__detail button:hover:not(:disabled){border-color:var(--accent)}.species-artwork__detail button:focus-visible{outline:3px solid var(--accent);outline-offset:2px}.species-artwork__identity{padding:18px 20px;border-bottom:1px solid var(--line);background:var(--surface-raised)}.species-artwork__identity>div{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(280px,.8fr);gap:24px}.species-artwork__identity.has-image{display:grid;grid-template-columns:minmax(220px,34%) minmax(0,1fr);gap:20px}.species-artwork__identity.has-image>div{display:block}.species-artwork__identity figure{margin:0}.species-artwork__identity figure img{display:block;width:100%;max-height:360px;aspect-ratio:1;border-radius:8px;object-fit:cover}.species-artwork__identity figcaption{margin-top:6px;color:var(--muted);font-size:9px}.species-artwork__identity p{max-width:66ch;margin:0 0 14px;font-size:13px;font-weight:700;line-height:1.5}.species-artwork__identity dl{display:grid;gap:10px;margin:0}.species-artwork__identity dl div{display:grid;gap:2px}.species-artwork__identity dt{color:var(--muted);font-size:9px;font-weight:750}.species-artwork__identity dd{margin:0;font-size:10px;line-height:1.4}.species-artwork__card-family{padding:18px 20px;border-bottom:1px solid var(--line)}.species-artwork__card-family>header{display:flex;align-items:end;justify-content:space-between;gap:16px;margin-bottom:10px}.species-artwork__card-family h3{margin:0;font-size:13px}.species-artwork__card-family header p{margin:2px 0 0;color:var(--muted);font-size:9px}.species-artwork__card-family header>span{color:var(--muted);font-size:9px;font-weight:800}.species-card-strip{display:grid;grid-auto-columns:minmax(190px,220px);grid-auto-flow:column;gap:8px;overflow-x:auto;padding:2px 2px 8px;scroll-snap-type:x proximity}.species-card-strip>a{display:grid;grid-template-columns:72px minmax(0,1fr);align-items:center;min-height:94px;overflow:hidden;border:1px solid var(--line);border-radius:8px;color:var(--ink);background:var(--surface);text-decoration:none;scroll-snap-align:start}.species-card-strip>a:hover{border-color:var(--accent);background:var(--accent-pale)}.species-card-strip>a:focus-visible{outline:3px solid var(--accent);outline-offset:2px}.species-card-strip svg{width:72px;height:76px;overflow:visible}.species-card-strip>a>span{display:grid;gap:5px;min-width:0;padding:10px 9px 10px 3px}.species-card-strip strong{overflow:hidden;font-size:10px;text-overflow:ellipsis;white-space:nowrap}.species-card-strip small{color:var(--muted);font-size:8px;line-height:1.4}.species-canon-editor{padding:18px 20px;border-bottom:1px solid var(--line)}.species-canon-editor>header{display:flex;align-items:end;justify-content:space-between;gap:16px;margin-bottom:10px}.species-canon-editor h3{margin:0;font-size:13px}.species-canon-editor header p{margin:2px 0 0;color:var(--muted);font-size:9px}.species-canon-editor header small{color:var(--muted);font-size:9px;font-weight:750}.species-canon-editor__fields{display:grid;gap:12px}.species-canon-editor__fields label{display:grid;gap:3px}.species-canon-editor__fields label>span{font-size:10px;font-weight:750}.species-canon-editor__fields label>small{color:var(--muted);font-size:9px}.species-canon-editor textarea{box-sizing:border-box;width:100%;resize:vertical;border:1px solid var(--line);border-radius:8px;padding:10px;color:var(--ink);background:var(--surface);font:10px/1.55 ui-monospace,monospace}.species-canon-editor textarea:focus{outline:3px solid var(--accent);outline-offset:2px}.species-canon-editor textarea:disabled{color:var(--muted);background:color-mix(in oklch,var(--surface) 88%,var(--line))}.species-canon-editor__actions{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-top:11px}.species-canon-editor__actions small{color:var(--muted);font-size:9px}.species-canon-editor__actions button:not(:disabled){color:#fff;border-color:var(--accent);background:var(--accent)}.species-canon-editor__loading{min-height:120px;display:grid;place-items:center;color:var(--muted);font-size:10px}.species-canon-editor__error,.species-canon-editor__notice{margin:9px 0 0;font-size:9px;font-weight:750}.species-canon-editor__error{color:#a12f2f}.species-canon-editor__notice{color:#15561d}.species-prompt-editor{padding:18px 20px;border-bottom:1px solid var(--line)}.species-prompt-editor>header{display:flex;align-items:end;justify-content:space-between;gap:16px;margin-bottom:10px}.species-prompt-editor h3{margin:0;font-size:13px}.species-prompt-editor header p{margin:2px 0 0;color:var(--muted);font-size:9px}.species-prompt-editor header>span{color:var(--muted);font-size:9px;font-weight:750}.species-prompt-editor textarea{box-sizing:border-box;width:100%;resize:vertical;border:1px solid var(--line);border-radius:8px;padding:12px;color:var(--ink);background:var(--surface);font:10px/1.55 ui-monospace,monospace}.species-prompt-editor textarea:focus{outline:3px solid var(--accent);outline-offset:2px}.species-prompt-editor__actions{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-top:9px}.species-prompt-editor__actions small{color:var(--muted);font-size:9px}.species-prompt-editor__actions>div{display:flex;gap:7px}.species-prompt-editor__actions button.is-primary,.species-prompt-editor__empty button{color:#fff;border-color:var(--accent);background:var(--accent)}.species-prompt-editor__loading{min-height:120px;display:grid;place-items:center;color:var(--muted);font-size:10px}.species-prompt-editor__empty{display:grid;justify-items:start;gap:6px;min-height:120px;align-content:center;border:1px dashed var(--line);border-radius:8px;padding:16px}.species-prompt-editor__empty strong{font-size:12px}.species-prompt-editor__empty p{max-width:70ch;margin:0 0 5px;color:var(--muted);font-size:10px}.species-prompt-editor__error,.species-prompt-editor__notice{margin:9px 0 0;font-size:9px;font-weight:750}.species-prompt-editor__error{color:#a12f2f}.species-prompt-editor__notice{color:#15561d}.species-artwork__workspace{display:grid;grid-template-columns:minmax(0,1fr) 270px;min-height:430px}.species-artwork__references,.species-artwork__assign{padding:18px 20px}.species-artwork__assign{border-left:1px solid var(--line);background:var(--surface-raised)}.species-artwork__workspace h3{margin:0;font-size:12px}.species-artwork__assign>h3{margin-bottom:10px}.species-artwork__assign>p{margin:-5px 0 12px;color:var(--muted);font-size:9px}.species-artwork__references-header{display:flex;align-items:start;justify-content:space-between;gap:12px;margin-bottom:10px}.species-artwork__references-header p{margin:3px 0 0;color:var(--muted);font-size:9px;line-height:1.4}.species-artwork__gallery{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px}.species-artwork__gallery button{position:relative;overflow:hidden;padding:0;aspect-ratio:1}.species-artwork__gallery button.is-selected{border-color:var(--accent);outline:2px solid var(--accent);outline-offset:2px}.species-artwork__gallery img{width:100%;height:100%;object-fit:cover}.species-artwork__gallery span{position:absolute;right:7px;bottom:7px;border-radius:999px;padding:4px 7px;color:#fff;background:color-mix(in oklch,var(--ink),transparent 15%);font-size:8px}.species-artwork__empty{display:grid;place-items:center;align-content:center;min-height:320px;border:1px dashed var(--line);border-radius:8px;padding:24px;color:var(--muted);text-align:center}.species-artwork__empty strong{color:var(--ink);font-size:13px}.species-artwork__empty p{max-width:48ch;margin:5px 0 12px;font-size:10px;line-height:1.45}.species-artwork__empty code{font-size:9px}.species-artwork__empty small{margin-top:12px;font-size:8px}.species-artwork__detail button.species-artwork__generate{min-width:180px;color:#fff;border-color:var(--accent);background:var(--accent)}.species-artwork__detail button.species-artwork__generate:disabled{color:var(--muted);border-color:var(--line);background:var(--surface-raised);cursor:not-allowed}.species-artwork__generation-status{margin:10px 0 0;font-size:9px;font-weight:750}.species-artwork__generation-status.is-error{color:#a12f2f}.species-artwork__generation-status.is-success{color:#15561d}.species-artwork__cards{display:grid;gap:4px;max-height:280px;overflow:auto}.species-artwork__cards label{display:flex;align-items:center;gap:7px;min-height:34px;font-size:9px}.species-artwork__cards label>span{display:grid;gap:1px}.species-artwork__cards label code{color:var(--muted);font-size:8px}.species-artwork__apply{width:100%;margin-top:14px;color:#fff!important;border-color:var(--accent)!important;background:var(--accent)!important}.species-artwork__apply:disabled{opacity:.45;cursor:not-allowed}.species-artwork__assign .is-error{color:#a12f2f}.species-artwork__assign .is-success{color:#15561d}.species-artwork__assign [role=status]{margin:10px 0 0;font-size:9px;font-weight:750;line-height:1.5}.species-artwork__assigned{margin:0 0 10px!important;border-radius:7px;padding:9px;color:var(--ink)!important;background:var(--primary-pale);line-height:1.45}.environment-artwork{display:grid;grid-template-columns:240px minmax(0,1fr);gap:16px;max-width:1440px;margin:0 auto}.environment-artwork__loading{max-width:1440px;margin:50px auto;color:var(--muted);text-align:center}.environment-artwork__rail{min-width:0}.environment-coverage{display:grid;gap:2px;margin-bottom:9px;padding:11px 12px;border-radius:8px;color:#fff;background:var(--primary-deep)}.environment-coverage strong{font-size:13px}.environment-coverage span{color:#b4cfdd;font-size:9px}.environment-artwork__rail nav{display:grid;gap:2px}.environment-artwork__rail nav a{display:flex;min-height:48px;align-items:center;justify-content:space-between;gap:10px;border-radius:7px;padding:8px 10px;color:var(--ink);text-decoration:none}.environment-artwork__rail nav a:hover,.environment-artwork__rail nav a.is-active{background:var(--surface)}.environment-artwork__rail nav a.is-active{box-shadow:inset 0 0 0 1px var(--line)}.environment-artwork__rail nav a:focus-visible{outline:3px solid var(--accent);outline-offset:2px}.environment-artwork__rail nav span{display:grid;gap:2px;font-size:11px;font-weight:800}.environment-artwork__rail nav small{color:var(--muted);font-size:8px;font-weight:650}.environment-artwork__rail nav b{display:grid;width:24px;height:24px;flex:0 0 auto;place-items:center;border-radius:999px;color:var(--primary-deep);background:var(--primary-pale);font-size:8px}.environment-domain-counts{display:grid;gap:5px;margin:14px 10px 0;padding-top:12px;border-top:1px solid var(--line)}.environment-domain-counts div{display:flex;justify-content:space-between;gap:8px}.environment-domain-counts dt,.environment-domain-counts dd{margin:0;color:var(--muted);font-size:8px}.environment-domain-counts dd{color:var(--ink);font-weight:850}.environment-artwork__detail{min-width:0;overflow:hidden;border:1px solid var(--line);border-radius:10px;background:var(--surface)}.environment-artwork__detail>header{display:flex;align-items:start;justify-content:space-between;gap:20px;padding:20px;border-bottom:1px solid var(--line)}.environment-artwork__detail>header p{margin:0 0 3px;color:var(--primary-deep);font-size:9px;font-weight:800}.environment-artwork__detail>header h2{margin:0;font-size:22px;letter-spacing:-.02em}.environment-artwork__detail>header span{display:block;max-width:70ch;margin-top:5px;color:var(--muted);font-size:11px;line-height:1.45}.environment-artwork__detail>header>strong{border-radius:999px;padding:6px 9px;color:var(--primary-deep);background:var(--primary-pale);font-size:9px;white-space:nowrap}.environment-artwork__notice{margin:0;padding:10px 20px;color:#503405;background:#f9e5c7;font-size:10px;font-weight:700;line-height:1.45}.environment-artwork__canon{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(280px,.75fr);gap:20px;padding:20px;border-bottom:1px solid var(--line);background:var(--surface-raised)}.environment-artwork__canon figure{margin:0}.environment-artwork__canon img{display:block;width:100%;max-height:430px;aspect-ratio:16 / 10;border-radius:8px;object-fit:cover}.environment-artwork__canon figcaption{margin-top:5px;color:var(--muted);font-size:8px}.environment-artwork__canon dl{display:grid;gap:11px;margin:0}.environment-artwork__canon dl div{display:grid;gap:2px}.environment-artwork__canon dt{color:var(--muted);font-size:8px;font-weight:800}.environment-artwork__canon dd{margin:0;font-size:10px;line-height:1.4}.environment-artwork__canon:not(:has(figure)){grid-template-columns:1fr}.environment-artwork__canon:not(:has(figure)) dl{grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}.environment-prompt-editor,.environment-artwork__references,.environment-artwork__relationships{padding:20px;border-bottom:1px solid var(--line)}.environment-prompt-editor>header,.environment-artwork__references>header{display:flex;align-items:start;justify-content:space-between;gap:16px;margin-bottom:10px}.environment-prompt-editor h3,.environment-artwork__references h3,.environment-artwork__relationships h3{margin:0;font-size:13px}.environment-prompt-editor header p,.environment-artwork__references header p{margin:2px 0 0;color:var(--muted);font-size:9px}.environment-prompt-editor header>span{color:var(--muted);font-size:8px;font-variant-numeric:tabular-nums;white-space:nowrap}.environment-prompt-tabs{display:flex;width:fit-content;margin-bottom:10px;border:1px solid var(--line);border-radius:8px;padding:3px;background:var(--surface-raised)}.environment-prompt-tabs button{min-height:30px;border:0;padding:6px 10px;color:var(--muted);background:transparent}.environment-prompt-tabs button:hover:not(:disabled){color:var(--ink);border-color:transparent}.environment-prompt-tabs button.is-active{color:#fff;background:var(--accent)}.environment-prompt-card{display:grid;grid-template-columns:auto minmax(150px,260px);align-items:center;gap:10px;width:fit-content;margin-bottom:10px;color:var(--muted);font-size:9px;font-weight:800}.environment-prompt-card select{min-height:34px;border:1px solid var(--line);border-radius:7px;padding:6px 30px 6px 9px;color:var(--ink);background:var(--surface);font:10px ui-monospace,SFMono-Regular,Menlo,monospace}.environment-prompt-editor textarea{box-sizing:border-box;width:100%;resize:vertical;border:1px solid var(--line);border-radius:8px;padding:12px;color:var(--ink);background:var(--surface-raised);font:10px/1.55 ui-monospace,SFMono-Regular,Menlo,monospace}.environment-prompt-editor textarea:focus-visible{outline:3px solid var(--accent);outline-offset:2px}.environment-prompt-editor textarea[readonly]{color:color-mix(in oklch,var(--ink),var(--muted) 14%);background:color-mix(in oklch,var(--surface-raised),var(--surface) 34%)}.environment-prompt-editor__actions{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-top:9px}.environment-prompt-editor__actions small{color:var(--muted);font-size:9px}.environment-prompt-editor__actions>div,.environment-artwork__references>header>div:last-child{display:flex;align-items:start;gap:7px}.environment-artwork__detail button{min-height:34px;border:1px solid var(--line);border-radius:7px;padding:7px 10px;color:var(--ink);background:var(--surface);font-size:9px;font-weight:800;cursor:pointer}.environment-artwork__detail button:hover:not(:disabled){border-color:var(--accent);color:var(--accent)}.environment-artwork__detail button:focus-visible{outline:3px solid var(--accent);outline-offset:2px}.environment-artwork__detail button:disabled{opacity:.45;cursor:not-allowed}.environment-artwork__detail button.is-primary{color:#fff;border-color:var(--accent);background:var(--accent)}.environment-reference-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px}.environment-reference-grid article{overflow:hidden;border:1px solid var(--line);border-radius:9px;background:var(--surface-raised)}.environment-reference-grid article.is-selected{border-color:var(--accent);box-shadow:0 0 0 2px color-mix(in oklch,var(--accent),transparent 72%)}.environment-reference-grid article.is-rejected{opacity:.62}.environment-reference-grid img{display:block;width:100%;aspect-ratio:16 / 10;object-fit:cover}.environment-reference-grid article>div{display:grid;grid-template-columns:1fr auto;align-items:center;gap:2px 10px;padding:9px}.environment-reference-grid strong{font-size:10px}.environment-reference-grid span{color:var(--muted);font-size:8px}.environment-reference-grid article>div>div{grid-column:2;grid-row:1 / 3;display:flex;gap:5px}.environment-artwork__empty{display:grid;min-height:170px;place-items:center;align-content:center;border:1px dashed var(--line);border-radius:8px;padding:22px;text-align:center}.environment-artwork__empty strong{font-size:12px}.environment-artwork__empty p{max-width:54ch;margin:5px 0 0;color:var(--muted);font-size:10px;line-height:1.45}.environment-artwork__relationships{display:grid;grid-template-columns:minmax(240px,.7fr) minmax(0,1.3fr);gap:24px;border-bottom:0}.environment-artwork__relationships ul{display:grid;gap:4px;margin:10px 0 0;padding:0;list-style:none}.environment-artwork__relationships li{display:flex;min-height:28px;align-items:center;justify-content:space-between;gap:8px;border-bottom:1px solid var(--line);font-size:9px}.environment-artwork__relationships li b{color:var(--primary-deep)}.environment-artwork__relationships>div:last-child>div{display:flex;flex-wrap:wrap;gap:5px;margin-top:10px}.environment-artwork__relationships a{border-radius:5px;padding:5px 7px;color:var(--primary-deep);background:var(--primary-pale);font:8px ui-monospace,SFMono-Regular,Menlo,monospace;text-decoration:none}.environment-artwork__relationships a:hover{color:#fff;background:var(--accent)}.environment-artwork__relationships a:focus-visible{outline:3px solid var(--accent);outline-offset:2px}.environment-artwork__status,.environment-artwork__error{margin:0;padding:10px 20px;font-size:9px;font-weight:750}.environment-artwork__status:empty{display:none}.environment-artwork__status{color:#104a17;background:#ddf2dd}.environment-artwork__error{color:#972e2d;background:#ffe3df;background:oklch(.94 .04 25)}@media(max-width:820px){.card-catalog{padding-inline:14px}.card-catalog__header{display:block}.catalog-summary{margin-top:14px}.environment-artwork,.species-artwork{grid-template-columns:1fr}.environment-artwork__rail nav,.species-artwork__list{display:flex;overflow-x:auto;padding:2px 0 7px}.environment-artwork__rail nav a,.species-artwork__list a{min-width:170px}.environment-domain-counts{display:none}.environment-artwork__canon,.environment-artwork__relationships{grid-template-columns:1fr}.environment-artwork__canon figure{max-width:none}.species-artwork__workspace{grid-template-columns:1fr}.species-artwork__assign{border-top:1px solid var(--line);border-left:0}}@media(max-width:560px){.catalog-surfaces{width:100%}.catalog-surfaces a{flex:1;text-align:center}.environment-artwork__detail>header,.environment-prompt-editor>header,.environment-artwork__references>header,.environment-prompt-editor__actions{display:grid}.environment-prompt-tabs{display:grid;grid-template-columns:repeat(3,1fr);width:100%}.environment-prompt-tabs button{padding-inline:5px}.environment-prompt-card{grid-template-columns:1fr;width:100%}.environment-prompt-card select{width:100%}.environment-artwork__detail>header>strong{width:fit-content}.environment-artwork__references>header>div:last-child{flex-wrap:wrap}.environment-reference-grid{grid-template-columns:1fr}.environment-prompt-editor__actions>div{justify-content:flex-end}}.catalog-summary{display:flex;flex:0 0 auto;margin:0;border:1px solid var(--line);border-radius:9px;background:var(--surface)}.catalog-summary div{min-width:92px;padding:10px 12px;border-left:1px solid var(--line)}.catalog-summary div:first-child{border-left:0}.catalog-summary dt{color:var(--muted);font-size:9px;font-weight:750}.catalog-summary dd{margin:2px 0 0;font-size:19px;font-weight:850;font-variant-numeric:tabular-nums}.catalog-toolbar{position:sticky;top:0;z-index:10;display:grid;grid-template-columns:minmax(210px,1fr) 170px 140px 190px auto auto auto;align-items:end;gap:10px;max-width:1440px;margin:0 auto 18px;padding:12px;border:1px solid var(--line);border-radius:10px;background:color-mix(in oklch,var(--surface),transparent 4%)}.catalog-toolbar label{display:grid;gap:5px;min-width:0}.catalog-toolbar label>span{color:var(--muted);font-size:9px;font-weight:750}.catalog-toolbar input,.catalog-toolbar select{width:100%;min-height:38px;border:1px solid var(--line);border-radius:7px;padding:8px 10px;color:var(--ink);background:var(--surface);font-size:12px}.catalog-toolbar input:hover,.catalog-toolbar select:hover{border-color:var(--muted)}.catalog-toolbar__clear{min-height:38px;border:1px solid var(--line);border-radius:7px;padding:8px 10px;color:var(--ink);background:var(--surface);font-size:11px;font-weight:750;white-space:nowrap;cursor:pointer}.catalog-toolbar__clear:hover{border-color:var(--accent);background:var(--accent-pale)}.catalog-toolbar__clear:focus-visible{outline:3px solid var(--accent);outline-offset:2px}.catalog-toolbar>strong{min-width:68px;padding:11px 2px;color:var(--muted);font-size:11px;text-align:right;white-space:nowrap}.catalog-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:12px;max-width:1440px;margin:0 auto}.catalog-card{display:grid;grid-template-columns:124px minmax(0,1fr);min-height:244px;overflow:hidden;border:1px solid var(--line);border-radius:10px;background:var(--surface)}.catalog-card{position:relative;transition:border-color .16s var(--ease-out),background .16s var(--ease-out)}.catalog-card:hover{border-color:var(--accent);background:color-mix(in oklch,var(--surface),var(--accent-pale) 18%)}.catalog-card.is-candidate{--candidate-color: oklch(.5 .04 245)}.catalog-card__open{position:absolute;inset:0;z-index:2;border:0;padding:0;background:transparent;cursor:zoom-in}.catalog-card__open:focus-visible{outline:3px solid var(--accent);outline-offset:-3px}.catalog-card__visual{display:grid;align-content:center;justify-items:center;gap:8px;min-width:0;padding:14px 8px;border-right:1px solid var(--line);background:var(--surface-raised)}.catalog-card__visual svg{display:block;width:112px;height:106px;overflow:visible}.catalog-status{min-height:21px;border-radius:999px;padding:4px 7px;font-size:8px;font-weight:850;white-space:nowrap}.catalog-status--pending{color:var(--primary-deep);background:var(--primary-pale)}.catalog-status--candidate{color:color-mix(in oklch,var(--candidate-color),var(--ink) 34%);background:color-mix(in oklch,var(--candidate-color),white 86%)}.catalog-status--ready{color:#084511;background:#c9edc9}.catalog-status--approved{color:#fff;background:color-mix(in oklch,var(--accent),var(--ink) 12%)}.catalog-status--rejected{color:#ffedea;color:oklch(.96 .025 25);background:#9a3936}.catalog-status--stale{color:#593300;color:oklch(.36 .1 65);background:#fed7a3}.catalog-status--unsupported{color:#552c00;color:oklch(.34 .09 60);background:#ffe8c2;background:oklch(.94 .07 80);border:1px solid oklch(.66 .12 70)}.catalog-status--lifecycle{top:auto;bottom:10px}.catalog-status--sample{color:#6e4108;background:#fcedcd;border:1px dashed oklch(.6 .1 65)}.catalog-card-detail{min-height:calc(100vh - 123px);padding:24px 32px 52px;background:var(--surface-raised)}.catalog-card-detail__nav{max-width:1180px;margin:0 auto 12px}.catalog-card-detail__nav button{min-height:38px;border:1px solid var(--line);border-radius:7px;padding:8px 12px;color:var(--ink);background:var(--surface);font-size:11px;font-weight:800;cursor:pointer}.catalog-card-detail__nav button span{margin-right:4px}.catalog-card-detail__nav button:hover{border-color:var(--accent);color:var(--accent)}.catalog-card-detail__nav button:focus-visible{outline:3px solid var(--accent);outline-offset:2px}.catalog-card-detail--missing>section{max-width:720px;margin:48px auto;border-radius:12px;padding:28px;color:var(--ink);background:var(--surface)}.catalog-card-detail--missing h1{margin:0 0 8px;font-size:24px}.catalog-card-detail--missing p{margin:0;color:var(--muted)}.card-preview-panel--catalog{width:min(1180px,100%);height:auto;margin:0 auto;grid-template-rows:auto auto auto auto;overflow:visible;border-radius:12px;padding:20px;background:var(--ink)}.card-preview-panel--catalog .card-preview-hero{position:relative}.card-preview-panel--catalog .card-preview-hero svg{width:min(70vw,620px);height:min(62vh,620px)}.card-preview-hero__sample-note{position:absolute;bottom:12px;left:50%;transform:translate(-50%);border:1px dashed oklch(.72 .1 75);border-radius:999px;padding:6px 12px;color:#ead5ab;background:color-mix(in oklch,black,transparent 40%);font-size:10px;font-weight:850;white-space:nowrap}.card-preview-panel--catalog header code{color:#b7c6d4;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.9em}.card-preview-panel--catalog header p a{color:#80dbeb;font-weight:800;text-underline-offset:2px}.card-preview-panel--catalog :is(.artwork-review,.artwork-framing,.card-prompt-editor,.card-ability-assignment) p{text-transform:none}.catalog-profile-preview>header{display:flex;align-items:start;justify-content:space-between;gap:12px}.catalog-profile-preview__content{display:grid;grid-template-columns:minmax(0,1fr) minmax(260px,360px);align-items:center;gap:22px}.catalog-profile-preview__details{border-radius:10px;padding:16px;color:var(--ink);background:var(--surface)}.catalog-profile-preview__details>p{margin:0 0 16px;color:var(--muted);font-size:12px;line-height:1.5;text-transform:none}.catalog-profile-preview__details .catalog-card__facts{grid-template-columns:1fr;margin:0}.catalog-profile-preview__details .catalog-card__facts div{grid-template-columns:105px minmax(0,1fr)}.catalog-artwork-workspace{min-height:0;display:grid;grid-template-columns:minmax(0,1fr) minmax(290px,340px);gap:22px}.catalog-artwork-carousel{min-width:0;align-self:start;display:grid;justify-items:center}.artwork-carousel{position:absolute;inset:0;pointer-events:none}.artwork-carousel__arrow{position:absolute;top:50%;display:grid;place-items:center;width:44px;height:54px;transform:translateY(-50%);border:0;border-radius:9px;color:#fff;background:color-mix(in oklch,var(--ink),transparent 30%);box-shadow:0 2px 10px color-mix(in oklch,black,transparent 65%);font-size:32px;font-weight:500;line-height:1;cursor:pointer;pointer-events:auto}.artwork-carousel__arrow.is-previous{left:10px}.artwork-carousel__arrow.is-next{right:10px}.artwork-carousel__arrow:hover{background:var(--ink)}.artwork-carousel__arrow:focus-visible{outline:3px solid white;outline-offset:2px}.artwork-carousel p{position:absolute;bottom:12px;left:50%;display:flex;align-items:center;gap:7px;margin:0;transform:translate(-50%);border-radius:999px;padding:5px 9px;color:#fff;background:color-mix(in oklch,var(--ink),transparent 22%);box-shadow:0 2px 8px color-mix(in oklch,black,transparent 70%);white-space:nowrap;pointer-events:auto;text-transform:none}.artwork-carousel strong{font-size:9px;font-variant-numeric:tabular-nums}.artwork-carousel__state{font-size:8px;font-weight:800}.catalog-artwork-sidebar{min-height:0;height:100%;max-height:100%;align-self:stretch;display:flex;flex-direction:column;gap:10px;overflow-y:auto;padding:2px}.catalog-artwork-sidebar>*{flex:0 0 auto}.artwork-review{min-height:0;align-self:center;display:grid;gap:10px;border-radius:10px;padding:12px;color:var(--ink);background:var(--surface)}.artwork-review>header{display:flex;align-items:start;justify-content:space-between;gap:8px;padding:0}.artwork-review__header-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:6px}.artwork-review h3{margin:0;font-size:13px}.artwork-review header p,.artwork-review__empty{margin:2px 0 0;color:var(--muted);font-size:9px;text-transform:none}.artwork-review button{min-height:32px;border:1px solid var(--line);border-radius:7px;padding:6px 8px;color:var(--ink);background:var(--surface);font-size:9px;font-weight:800;cursor:pointer}.artwork-review button:hover:not(:disabled){border-color:var(--accent);color:var(--accent)}.artwork-review button:focus-visible{outline:3px solid var(--accent);outline-offset:2px}.artwork-review button:disabled{opacity:.48;cursor:not-allowed}.artwork-review__current{display:grid;gap:9px}.artwork-review__current>p{margin:0;color:var(--muted);font-size:9px;line-height:1.4;text-transform:none}.artwork-review__current>.artwork-review__warning{color:#6f4000;color:oklch(.42 .1 65);font-weight:750}.artwork-review__actions{display:grid;grid-template-columns:1fr 1fr;gap:6px}.artwork-review__primary{color:#fff!important;border-color:var(--accent)!important;background:var(--accent)!important}.artwork-review__secondary{color:var(--muted)!important}.artwork-review__empty{align-self:center;padding:18px 8px;text-align:center}.artwork-review__error{margin:0;color:#a12f2f;font-size:9px;font-weight:750;text-transform:none}.artwork-framing-preview.is-pannable{cursor:grab;touch-action:none}.artwork-framing-preview.is-pannable:active{cursor:grabbing}.artwork-framing{display:grid;gap:10px;border-radius:10px;padding:12px;color:var(--ink);background:var(--surface)}.artwork-framing>header{display:flex;align-items:start;justify-content:space-between;gap:12px}.artwork-framing h3{margin:0;font-size:13px}.artwork-framing .artwork-framing__scope{margin:0;color:var(--ink);font-size:10px;line-height:1.5}.artwork-framing header p,.artwork-framing__hint{margin:2px 0 0;color:var(--muted);font-size:9px;line-height:1.4}.artwork-framing header strong{color:var(--accent);font-size:12px;font-variant-numeric:tabular-nums}.artwork-framing label{display:grid;grid-template-columns:64px minmax(0,1fr);align-items:center;gap:8px;color:var(--muted);font-size:9px;font-weight:750}.artwork-framing input[type=range]{width:100%;accent-color:var(--accent);cursor:pointer}.artwork-framing__position{display:grid;gap:7px}.artwork-framing .artwork-framing__ability-preview{display:flex;grid-template-columns:none;gap:7px;color:var(--ink)}.artwork-framing__ability-preview input{margin:0;accent-color:var(--accent)}.artwork-framing__actions{display:flex;align-items:center;gap:6px}.artwork-framing__actions button{min-height:32px;border:1px solid var(--line);border-radius:7px;padding:6px 9px;color:var(--ink);background:var(--surface);font-size:9px;font-weight:800;cursor:pointer}.artwork-framing__actions .artwork-framing__save{color:#fff;border-color:var(--accent);background:var(--accent)}.artwork-framing__actions button:hover:not(:disabled){border-color:var(--accent)}.artwork-framing__actions button:focus-visible,.artwork-framing input:focus-visible{outline:3px solid var(--accent);outline-offset:2px}.artwork-framing__actions button:disabled{opacity:.48;cursor:not-allowed}.artwork-framing__actions span{margin-left:auto;color:var(--muted);font-size:8px}.image-upload-control{display:grid;justify-items:end;gap:4px}.image-upload-control__input{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap}.image-upload-control__button{display:inline-grid;min-height:34px;place-items:center;border:1px solid var(--accent);border-radius:7px;padding:7px 10px;color:var(--accent);background:var(--surface);font-size:9px;font-weight:850;cursor:pointer;white-space:nowrap}.image-upload-control__button:hover{color:#fff;background:var(--accent)}.image-upload-control__input:focus-visible+.image-upload-control__button{outline:3px solid var(--accent);outline-offset:2px}.image-upload-control__button[aria-disabled=true]{opacity:.48;cursor:wait}.image-upload-control__message{max-width:30ch;margin:0;color:#104a17;font-size:8px;font-weight:750;line-height:1.35;text-align:right}.image-upload-control__message.is-error{color:#a12f2f}.image-upload-control__local-only{max-width:28ch;margin:0;color:var(--muted);font-size:8px;font-weight:750;line-height:1.4;text-align:right}.card-prompt-editor{display:grid;min-width:0;gap:9px;border-radius:10px;padding:12px;color:var(--ink);background:var(--surface)}.card-prompt-editor>header{display:flex;align-items:start;justify-content:space-between;gap:8px;padding:0}.card-prompt-editor h3{margin:0;font-size:13px}.card-prompt-editor header p{margin:2px 0 0;color:var(--muted);font-size:9px}.card-prompt-editor header>span{color:var(--muted);font-size:8px;font-variant-numeric:tabular-nums;white-space:nowrap}.card-prompt-editor textarea{width:100%;min-height:150px;resize:vertical;border:1px solid var(--line);border-radius:7px;padding:9px 10px;color:var(--ink);background:var(--surface-raised);font:10px/1.5 ui-monospace,SFMono-Regular,Menlo,monospace}.card-prompt-editor textarea:focus-visible{outline:3px solid var(--accent);outline-offset:2px}.card-prompt-editor textarea:disabled{opacity:.64}.card-prompt-editor__loading{min-height:150px;display:grid;place-items:center;color:var(--muted);background:var(--surface-raised);font-size:10px}.card-prompt-editor__actions{display:grid;gap:8px}.card-prompt-editor__actions small{color:var(--muted);font-size:9px;line-height:1.4}.card-prompt-editor__actions button{min-height:38px;border:0;border-radius:8px;padding:8px 12px;color:#fff;background:var(--accent);font-size:11px;font-weight:800;cursor:pointer}.card-prompt-editor__actions button:hover:not(:disabled){background:color-mix(in oklch,var(--accent),white 12%)}.card-prompt-editor__actions button:focus-visible{outline:3px solid white;outline-offset:2px}.card-prompt-editor__actions button:disabled{opacity:.46;cursor:not-allowed}.card-prompt-editor .card-prompt-editor__error,.card-prompt-editor .card-prompt-editor__notice{margin:0;font-size:11px;font-weight:750;line-height:1.4;overflow-wrap:anywhere}.card-prompt-editor .card-prompt-editor__error{color:#a12f2f}.card-prompt-editor .card-prompt-editor__notice{color:#104a17}.card-ability-assignment{display:grid;gap:11px;border:1px solid color-mix(in oklch,white,transparent 78%);border-radius:10px;padding:14px;color:#fff;background:color-mix(in oklch,var(--ink),transparent 18%)}.card-ability-assignment>header{display:flex;align-items:start;justify-content:space-between;gap:14px;padding:0}.card-ability-assignment h3{margin:0;font-size:13px}.card-ability-assignment header p{max-width:68ch;margin:3px 0 0;color:#b7c6d4;font-size:10px;line-height:1.4;text-transform:none}.card-ability-assignment header>span{flex:0 0 auto;border-radius:999px;padding:5px 8px;font-size:8px;font-weight:850}.card-ability-assignment header>span.is-ready{color:#b3e8b3;background:color-mix(in oklch,oklch(.43 .11 145),transparent 28%)}.card-ability-assignment header>span.is-unavailable{color:#fad8ab;background:color-mix(in oklch,oklch(.48 .1 65),transparent 34%)}.card-ability-assignment__controls{display:flex;flex-wrap:wrap;align-items:end;gap:9px}.card-ability-assignment__controls label{display:grid;flex:1 1 180px;gap:5px;min-width:0}.card-ability-assignment__controls label>span{color:#b7c6d4;font-size:9px;font-weight:750}.card-ability-assignment__controls select,.card-ability-assignment__controls input{width:100%;min-height:38px;border:1px solid color-mix(in oklch,white,transparent 68%);border-radius:7px;padding:8px 10px;color:var(--ink);background:#fff;font:inherit;font-size:11px}.card-ability-assignment__controls select:hover:not(:disabled),.card-ability-assignment__controls input:hover:not(:disabled){border-color:var(--accent)}.card-ability-assignment__controls :is(select,input,button):focus-visible{outline:3px solid var(--accent);outline-offset:2px}.card-ability-assignment__controls input::placeholder{color:color-mix(in oklch,var(--ink),transparent 38%)}.card-ability-assignment__controls button{flex:0 0 auto;min-height:38px;border:0;border-radius:8px;padding:8px 14px;color:#fff;background:var(--accent);font-size:11px;font-weight:800;cursor:pointer}.card-ability-assignment__controls button:hover:not(:disabled){background:color-mix(in oklch,var(--accent),white 12%)}.card-ability-assignment__controls :is(select,input,button):disabled{opacity:.48;cursor:not-allowed}.card-ability-assignment__rule,.card-ability-assignment__notice,.card-ability-assignment__error{margin:0;font-size:10px;line-height:1.45;text-transform:none}.card-ability-assignment__rule{color:#becdda}.card-ability-assignment__rule strong{color:#fff}.card-ability-assignment__notice{color:#b3e8b3;font-weight:750}.card-ability-assignment__error{color:#ffbeb8;color:oklch(.86 .1 25);font-weight:750}.card-approval{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px;padding-top:14px;border-top:1px solid color-mix(in oklch,white,transparent 78%)}.planned-artwork-status{display:grid;gap:3px;min-width:0}.planned-artwork-status span{color:#a5bacd;font-size:10px;font-weight:750}.planned-artwork-status strong{color:#fff;font-size:13px}.planned-artwork-status small{color:#b7c6d4;font-size:10px}.card-approval__pair{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:12px;width:100%}.card-approval__pair>div{display:grid;gap:3px;min-width:0}.card-approval__pair span{color:#a5bacd;font-size:10px;font-weight:750}.card-approval__pair strong{overflow:hidden;color:#fff;font-size:13px;text-overflow:ellipsis;white-space:nowrap}.card-approval__pair small{color:#b7c6d4;font-size:10px}.card-approval__pair .card-approval__link{display:grid;width:26px;height:26px;place-items:center;border-radius:999px;color:#fff;background:color-mix(in oklch,white,transparent 88%);font-size:15px}.card-approval__gates{display:flex;flex-wrap:wrap;gap:8px}.card-approval__gate{border:1px solid color-mix(in oklch,white,transparent 72%);border-radius:999px;padding:5px 11px;color:#b7c6d4;font-size:11px;font-weight:750;white-space:nowrap}.card-approval__gate.is-met{border-color:color-mix(in oklch,oklch(.7 .12 145),transparent 35%);color:#b3e8b3}.card-approval__action{display:flex;flex-wrap:wrap;align-items:center;gap:10px}.card-approval__action button{min-height:38px;border:1px solid color-mix(in oklch,white,transparent 68%);border-radius:8px;padding:8px 14px;color:#fff;background:transparent;font-size:12px;font-weight:800;cursor:pointer}.card-approval__action button:hover:not(:disabled){background:color-mix(in oklch,white,transparent 88%)}.card-approval__reproduce{display:inline-flex;min-height:38px;align-items:center;border:1px solid color-mix(in oklch,white,transparent 68%);border-radius:8px;padding:8px 14px;color:#fff;font-size:12px;font-weight:800;text-decoration:none}.card-approval__reproduce:hover{background:color-mix(in oklch,white,transparent 88%)}.card-approval__reproduce:focus-visible{outline:3px solid var(--accent);outline-offset:2px}.card-approval__action button:disabled{opacity:.45;cursor:not-allowed}.card-approval__approve:not(:disabled){border-color:transparent;background:var(--accent)}.card-approval__approve:hover:not(:disabled){background:color-mix(in oklch,var(--accent),white 12%)}.card-approval__stamp{color:#b3e8b3;font-size:12px;font-weight:800}.card-approval__hint{color:#b7c6d4;font-size:11px}.card-approval__stale{width:100%;margin:0;color:#f0ca96;font-size:11px;font-weight:700}.card-approval__error{width:100%;margin:0;color:#ffb5ae;color:oklch(.84 .11 25);font-size:11px;font-weight:700;text-transform:none}.catalog-card__body{display:flex;min-width:0;flex-direction:column;padding:16px 14px 14px}.catalog-card__eyebrow{display:flex;justify-content:space-between;gap:8px;color:var(--muted);font-size:8px;font-weight:800;letter-spacing:.045em;text-transform:uppercase}.catalog-card__eyebrow>span:last-child{color:var(--primary-deep)}.catalog-card__origin{min-width:0;display:flex;align-items:center;gap:5px}.world-icon--catalog-origin{--world-icon-size: 20px;border-width:1px}.catalog-card h2{margin:7px 0 5px;font-size:16px;line-height:1.15;letter-spacing:-.015em}.catalog-card h2 code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.94em}.catalog-card__body>p{margin:0 0 13px;color:var(--muted);font-size:10px;line-height:1.45}.catalog-card__species-link{position:relative;z-index:3;width:fit-content;margin:-5px 0 10px;color:var(--accent);font-size:9px;font-weight:800;text-decoration:none}.catalog-card__species-link:hover{text-decoration:underline}.catalog-card__species-link:focus-visible{outline:3px solid var(--accent);outline-offset:2px}.catalog-card__facts{display:grid;gap:5px;margin:auto 0 0;padding-top:11px;border-top:1px solid var(--line)}.catalog-card__facts div{display:flex;justify-content:space-between;gap:8px}.catalog-card__facts dt{color:var(--muted);font-size:9px}.catalog-card__facts dd{overflow:hidden;margin:0;font-size:9px;font-weight:800;text-align:right;text-overflow:ellipsis;text-transform:capitalize;white-space:nowrap}.rarity-text--common{color:#334759}.rarity-text--uncommon{color:#005813;color:oklch(.4 .13 145)}.rarity-text--rare{color:#00468c;color:oklch(.4 .14 255)}.rarity-text--legendary{color:#6f3600;color:oklch(.4 .14 55)}.rarity-text--mythic{color:#65247d}.catalog-pagination{display:flex;align-items:center;justify-content:center;gap:14px;max-width:1440px;margin:20px auto 0}.catalog-pagination button{min-height:38px;border:1px solid var(--line);border-radius:7px;padding:8px 13px;color:var(--ink);background:var(--surface);font-size:11px;font-weight:800;cursor:pointer}.catalog-pagination button:hover:not(:disabled){border-color:var(--accent);color:var(--accent)}.catalog-pagination button:focus-visible{outline:3px solid var(--accent);outline-offset:2px}.catalog-pagination button:disabled{opacity:.45;cursor:not-allowed}.catalog-pagination span{color:var(--muted);font-size:11px;font-variant-numeric:tabular-nums;text-align:center}.catalog-pagination strong{color:var(--ink)}.catalog-empty{max-width:560px;margin:70px auto;padding:28px;border:1px dashed var(--line);border-radius:10px;text-align:center;background:var(--surface)}.catalog-empty strong{font-size:15px}.catalog-empty p{margin:5px 0 16px;color:var(--muted);font-size:12px}.catalog-empty button{min-height:38px;border:1px solid var(--line);border-radius:7px;padding:8px 12px;background:var(--surface);font-size:11px;font-weight:750;cursor:pointer}@media(max-width:820px){.catalog-artwork-workspace{grid-template-columns:1fr}.catalog-artwork-sidebar{max-height:none}.card-preview-panel--catalog .card-preview-hero svg{width:min(92vw,540px);height:min(52vh,540px)}.card-ability-assignment>header{display:grid}.card-ability-assignment header>span{width:fit-content}}@media(max-width:560px){.card-ability-assignment__controls{display:grid;grid-template-columns:1fr}.card-ability-assignment__controls button{width:100%}.card-approval__pair{grid-template-columns:1fr}.card-approval__pair .card-approval__link{transform:rotate(90deg)}}.opponent-catalog{min-height:calc(100vh - 123px);padding:30px 32px 52px;background:linear-gradient(180deg,color-mix(in oklch,var(--opponent-world),transparent 94%),transparent 230px),var(--bg)}.opponent-catalog__header{display:flex;align-items:flex-start;justify-content:space-between;gap:28px;max-width:1440px;margin:0 auto 22px}.opponent-catalog__kicker{color:var(--primary-deep);font-size:10px;font-weight:850;letter-spacing:.08em;text-transform:uppercase}.opponent-catalog__header h1{margin:5px 0;font-size:28px;line-height:1.1;letter-spacing:-.03em}.opponent-catalog__header p{max-width:70ch;margin:0;color:var(--muted);font-size:13px;line-height:1.5}.opponent-catalog__summary{display:flex;flex:0 0 auto;margin:0;border:1px solid var(--line);border-radius:9px;background:var(--surface)}.opponent-catalog__summary div{min-width:90px;padding:10px 12px;border-left:1px solid var(--line)}.opponent-catalog__summary div:first-child{border-left:0}.opponent-catalog__summary dt{color:var(--muted);font-size:9px;font-weight:750}.opponent-catalog__summary dd{margin:2px 0 0;font-size:19px;font-weight:850;font-variant-numeric:tabular-nums}.opponent-catalog__summary small{color:var(--muted);font-size:10px;font-weight:700}.opponent-review-bar{position:sticky;top:0;z-index:10;display:grid;grid-template-columns:minmax(160px,1fr) minmax(180px,1fr) auto minmax(180px,1.2fr);align-items:end;gap:10px;max-width:1440px;margin:0 auto 16px;padding:12px;border:1px solid var(--line);border-radius:10px;background:color-mix(in oklch,var(--surface),transparent 4%);box-shadow:0 2px 6px color-mix(in oklch,var(--ink),transparent 94%)}.opponent-review-bar label{display:grid;gap:5px;min-width:0}.opponent-review-bar label>span,.opponent-review-bar legend{color:var(--muted);font-size:9px;font-weight:750}.opponent-review-bar select{width:100%;min-height:38px;border:1px solid var(--line);border-radius:7px;padding:8px 10px;color:var(--ink);background:var(--surface);font-size:12px;cursor:pointer}.opponent-review-bar select:hover{border-color:var(--muted)}.opponent-review-bar fieldset{min-width:0;margin:0;border:0;padding:0}.opponent-review-bar legend{margin-bottom:5px;padding:0}.opponent-stage-picker{display:flex;min-height:38px;overflow:hidden;border:1px solid var(--line);border-radius:7px;background:var(--surface)}.opponent-stage-picker button{width:38px;border:0;border-left:1px solid var(--line);color:var(--muted);background:transparent;font-size:11px;font-weight:800;cursor:pointer;transition:color .16s var(--ease-out),background .16s var(--ease-out)}.opponent-stage-picker button:first-child{border-left:0}.opponent-stage-picker button:hover{color:var(--ink);background:var(--surface-raised)}.opponent-stage-picker button.is-active{color:#fff;background:var(--accent)}.opponent-review-bar__current{align-self:stretch;display:grid;align-content:center;gap:2px;min-width:0;border-left:1px solid var(--line);padding-left:14px}.opponent-review-bar__current span,.opponent-review-bar__current strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.opponent-review-bar__current span{color:var(--muted);font-size:9px;font-weight:700}.opponent-review-bar__current strong{font-size:12px}.opponent-catalog__context{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:12px;max-width:1440px;margin:0 auto 14px}.opponent-world-mark{--world-icon-size: 42px}.opponent-catalog__context>div>span{color:var(--muted);font-size:9px;font-weight:750}.opponent-catalog__context h2{margin:2px 0;font-size:16px;letter-spacing:-.015em}.opponent-catalog__context p{margin:0;color:var(--muted);font-size:10px}.opponent-catalog__legend{display:flex;gap:12px}.opponent-catalog__legend span{display:flex;align-items:center;gap:5px;white-space:nowrap}.opponent-catalog__legend i{width:7px;height:7px;border-radius:50%;background:var(--line)}.opponent-catalog__legend i.is-approved{background:#418e47}.opponent-catalog__legend i.is-rejected{background:#bb584d}.opponent-catalog__error{max-width:1440px;margin:0 auto 12px;border-radius:7px;padding:9px 11px;color:#721d17;background:#ffdfd9;background:oklch(.93 .045 28);font-size:11px;font-weight:700}.opponent-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;max-width:1440px;margin:0 auto}.opponent-card{min-width:0;overflow:hidden;border:1px solid var(--line);border-radius:10px;background:var(--surface);transition:border-color .18s var(--ease-out),box-shadow .18s var(--ease-out)}.opponent-card.is-approved{border-color:color-mix(in oklch,oklch(.58 .13 145),var(--line) 24%);box-shadow:0 0 0 2px color-mix(in oklch,oklch(.72 .11 145),transparent 78%)}.opponent-card.is-rejected{opacity:.7}.opponent-card__portrait{position:relative;aspect-ratio:1.45 / 1;overflow:hidden;background:var(--surface-raised)}.opponent-card__portrait:after{content:"";position:absolute;inset:auto 0 0;height:32%;background:linear-gradient(transparent,color-mix(in oklch,var(--ink),transparent 55%));pointer-events:none}.opponent-card__portrait img{width:100%;height:100%;display:block;object-fit:cover;object-position:center 28%;transition:transform .22s var(--ease-out)}.opponent-card:hover .opponent-card__portrait img{transform:scale(1.025)}.opponent-card__status,.opponent-card__recommended{position:absolute;z-index:1;top:10px;border-radius:999px;padding:5px 8px;font-size:8px;font-weight:850}.opponent-card__status{left:10px;color:var(--ink);background:color-mix(in oklch,white,transparent 8%)}.opponent-card__status--approved{color:#fff;background:#1f5f26}.opponent-card__status--rejected{color:#fff;background:#813a32}.opponent-card__recommended{right:10px;color:var(--primary-deep);background:var(--primary-pale)}.opponent-card__body{display:flex;min-height:314px;flex-direction:column;padding:15px}.opponent-card__heading{display:flex;align-items:center;justify-content:space-between;gap:10px}.opponent-card__heading span{color:var(--muted);font-size:8px;font-weight:800;letter-spacing:.05em;text-transform:uppercase}.opponent-card__heading h3{margin:3px 0 0;font-size:19px;line-height:1;letter-spacing:-.025em}.opponent-card__strategy-mark{display:grid;place-items:center;width:34px;height:34px;flex:0 0 auto;border-radius:8px;color:color-mix(in oklch,var(--opponent-world),var(--ink) 34%)!important;background:color-mix(in oklch,var(--opponent-world),white 84%);font-size:17px!important}.opponent-card__body>p{min-height:44px;margin:10px 0 12px;color:var(--muted);font-size:10px;line-height:1.45}.opponent-card__strategy{margin-bottom:14px;border-top:1px solid var(--line);padding-top:12px}.opponent-card__strategy>span{display:block;color:var(--muted);font-size:8px;font-weight:800;letter-spacing:.045em;text-transform:uppercase}.opponent-card__strategy strong{display:block;margin-top:3px;font-size:12px}.opponent-card__strategy p{margin:4px 0;color:var(--muted);font-size:9px;line-height:1.4}.opponent-card__strategy small{color:var(--primary-deep);font-size:8px;font-weight:750}.opponent-card__actions{display:grid;grid-template-columns:.8fr 1.2fr;gap:7px;margin-top:auto}.opponent-card__actions button{min-height:38px;border:1px solid var(--line);border-radius:7px;padding:8px;background:var(--surface);font-size:10px;font-weight:800;cursor:pointer;transition:border-color .16s var(--ease-out),color .16s var(--ease-out),background .16s var(--ease-out),transform .16s var(--ease-out)}.opponent-card__actions button:hover{transform:translateY(-1px)}.opponent-card__actions button:active{transform:translateY(0)}.opponent-card__reject:hover,.opponent-card__reject[aria-pressed=true]{border-color:#bb584d;color:#822c25;background:#ffe3de;background:oklch(.94 .04 28)}.opponent-card__approve{border-color:var(--accent)!important;color:#fff;background:var(--accent)!important}.opponent-card__approve:hover{background:#035!important;background:oklch(.31 .105 245)!important}.opponent-card__approve[aria-pressed=true]{border-color:#286f2f!important;background:#1f5f26!important}.world-atlas-lab{min-height:calc(100dvh - 123px);padding:28px 32px 56px;color:var(--ink);background:var(--bg)}.world-atlas-lab__header,.world-atlas-lab__workspace,.environment-catalog{width:min(1440px,100%);margin-inline:auto}.world-atlas-lab__header{display:flex;align-items:flex-end;justify-content:space-between;gap:32px;margin-bottom:20px}.world-atlas-lab__header>div{max-width:700px}.world-atlas-lab__kicker{margin:0 0 5px;color:var(--primary);font-size:11px;font-weight:850;letter-spacing:.08em;text-transform:uppercase}.world-atlas-lab h1{margin:0;font-size:32px;line-height:1.08;letter-spacing:-.035em;text-wrap:balance}.world-atlas-lab__header>div>p:last-child,.world-atlas-panel header p,.environment-qa header p,.environment-catalog>header p{margin:7px 0 0;color:var(--muted);font-size:12px;line-height:1.5;text-wrap:pretty}.world-atlas-lab__header dl{display:grid;grid-template-columns:repeat(4,minmax(82px,1fr));margin:0;border:1px solid var(--line);border-radius:10px;overflow:hidden;background:var(--surface)}.world-atlas-lab__header dl div{display:grid;gap:2px;min-width:92px;padding:11px 13px;border-left:1px solid var(--line)}.world-atlas-lab__header dl div:first-child{border-left:0}.world-atlas-lab__header dt{color:var(--muted);font-size:9px;font-weight:800;letter-spacing:.05em;text-transform:uppercase}.world-atlas-lab__header dd{margin:0;font-size:18px;font-weight:850}.world-atlas-lab__workspace{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(300px,.65fr);gap:16px;align-items:stretch}.world-atlas-panel,.environment-qa{border:1px solid var(--line);border-radius:12px;background:var(--surface);overflow:hidden}.world-atlas-panel>header,.environment-qa>header,.environment-catalog>header{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;padding:16px 18px;border-bottom:1px solid var(--line)}.world-atlas-panel h2,.environment-qa h2,.environment-catalog h2{margin:0;font-size:17px;line-height:1.2;letter-spacing:-.015em}.world-atlas-panel header a,.environment-qa__test-link{display:inline-flex;flex:0 0 auto;align-items:center;gap:7px;min-height:36px;padding:7px 11px;border:1px solid var(--line);border-radius:7px;color:var(--ink);background:var(--surface-raised);font-size:11px;font-weight:800;text-decoration:none}.world-atlas-panel header a:hover,.environment-qa__test-link:hover{border-color:var(--primary)}.world-atlas-panel header a:focus-visible,.environment-qa__test-link:focus-visible{outline:3px solid color-mix(in oklch,var(--focus),transparent 45%);outline-offset:2px}.world-atlas-panel iframe{display:block;width:100%;height:660px;border:0;background:#fff}.environment-qa{display:flex;min-width:0;flex-direction:column}.environment-qa>header{display:block}.environment-qa__controls{display:grid;grid-template-columns:1fr 1fr;gap:10px;padding:16px 18px 12px}.environment-qa__controls label{display:grid;gap:5px;min-width:0}.environment-qa__controls label:first-child{grid-column:1 / -1}.environment-qa__controls label span{color:var(--muted);font-size:10px;font-weight:800}.environment-qa__controls select,.environment-qa__controls input{width:100%;min-height:38px;border:1px solid var(--line);border-radius:7px;padding:7px 9px;color:var(--ink);background:var(--surface);font:inherit;font-size:12px}.environment-qa__controls select:focus-visible,.environment-qa__controls input:focus-visible{outline:3px solid color-mix(in oklch,var(--focus),transparent 45%);outline-offset:1px}.environment-qa__mechanic{display:grid;gap:2px;margin:0 18px;padding:10px 12px;border-left:3px solid var(--line-strong);background:var(--surface-raised);font-size:11px}.environment-qa__mechanic.is-playable{border-left-color:var(--primary)}.environment-qa__mechanic span{color:var(--muted);line-height:1.4}.environment-qa__backdrop{position:relative;margin:12px 18px 0;overflow:hidden;border:1px solid var(--line);border-radius:9px;background:var(--surface-raised)}.environment-qa__backdrop img{display:block;width:100%;aspect-ratio:3 / 2;object-fit:cover}.environment-qa__backdrop:after{content:"";position:absolute;inset:0;background:linear-gradient(to top,rgb(8 13 18 / .62),transparent 44%);pointer-events:none}.environment-qa__backdrop figcaption{position:absolute;z-index:1;right:10px;bottom:8px;left:10px;color:#fff;font-size:10px;font-weight:800;text-shadow:0 1px 4px rgb(0 0 0 / .75)}.environment-qa-board{display:grid;gap:7px;min-height:0;margin:auto 0 0;padding:12px 18px}.environment-qa-board svg{display:block;width:100%;height:255px}.environment-qa-board polygon{fill:var(--surface-raised);stroke:var(--line-strong);stroke-width:.7}.environment-qa-board polygon.is-tagged{fill:color-mix(in oklch,var(--primary),var(--surface) 60%);stroke:var(--primary);stroke-width:1.6}.environment-qa-board figcaption{display:grid;gap:2px}.environment-qa-board figcaption strong{font-size:12px}.environment-qa-board figcaption span{overflow-wrap:anywhere;color:var(--muted);font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:9px;line-height:1.45}.environment-qa__test-link{align-self:stretch;justify-content:space-between;margin:0 18px 18px}.environment-catalog{margin-top:18px;border:1px solid var(--line);border-radius:12px;background:var(--surface);overflow:hidden}.environment-catalog>header{align-items:center}.environment-catalog>header>div{max-width:720px}.environment-catalog>header>span{flex:0 0 auto;color:var(--muted);font-size:11px;font-weight:800}.environment-catalog__table{--environment-columns: minmax(230px, 1.4fr) minmax(170px, 1fr) minmax(105px, .55fr) minmax(150px, .75fr) minmax(110px, .55fr)}.environment-catalog__head,.environment-catalog__table article{display:grid;grid-template-columns:var(--environment-columns);gap:18px;align-items:center}.environment-catalog__head{padding:9px 18px;border-bottom:1px solid var(--line);color:var(--muted);background:var(--surface-raised);font-size:9px;font-weight:850;letter-spacing:.055em;text-transform:uppercase}.environment-catalog__table article{min-height:94px;padding:13px 18px;border-bottom:1px solid var(--line);font-size:11px}.environment-catalog__table article:last-child{border-bottom:0}.environment-catalog__table article:hover{background:color-mix(in oklch,var(--primary-pale),transparent 58%)}.environment-catalog__identity{display:grid;grid-template-columns:auto 1fr;gap:3px 8px;align-items:baseline}.environment-catalog__identity strong{font-size:13px}.environment-catalog__identity code{justify-self:start;color:var(--muted);font-size:9px}.environment-catalog__identity p{grid-column:1 / -1;margin:0;color:var(--muted);font-size:10px;line-height:1.4}.environment-catalog__worlds{display:flex;flex-wrap:wrap;gap:5px}.environment-catalog__worlds span{padding:4px 6px;border-radius:5px;color:var(--ink);background:var(--surface-raised);font-size:9px;font-weight:750}.environment-status{display:inline-flex;padding:5px 7px;border-radius:999px;color:var(--muted);background:var(--surface-raised);font-size:9px;font-weight:850;white-space:nowrap}.environment-status--lab-playable{color:var(--primary-strong);background:var(--primary-pale)}.environment-catalog__mechanic{font-weight:750}.environment-catalog__mechanic.is-empty{color:var(--muted);font-weight:600}.environment-catalog__artwork{display:flex;align-items:center;gap:7px;color:var(--muted);white-space:nowrap}.environment-catalog__artwork span{width:8px;height:8px;border:1px solid var(--line-strong);border-radius:50%;background:var(--surface-raised)}.environment-catalog__artwork span.is-ready{border-color:var(--primary);background:var(--primary)}@media(max-width:980px){.world-atlas-lab__header{align-items:flex-start;flex-direction:column}.world-atlas-lab__workspace{grid-template-columns:1fr}.world-atlas-panel iframe{height:620px}.environment-qa-board svg{height:300px}.environment-catalog__table{overflow-x:auto}.environment-catalog__head,.environment-catalog__table article{min-width:920px}}@media(max-width:620px){.world-atlas-lab{padding:20px 14px 40px}.world-atlas-lab__header dl{grid-template-columns:repeat(2,1fr);width:100%}.world-atlas-lab__header dl div:nth-child(3){border-top:1px solid var(--line);border-left:0}.world-atlas-lab__header dl div:nth-child(4){border-top:1px solid var(--line)}.world-atlas-panel>header{align-items:stretch;flex-direction:column}.world-atlas-panel header a{justify-content:space-between;min-height:44px}.world-atlas-panel iframe{height:510px}.environment-qa__controls{grid-template-columns:1fr}.environment-qa__controls label:first-child{grid-column:auto}.environment-qa__controls select,.environment-qa__controls input{min-height:44px}.environment-qa-board svg{height:230px}.environment-qa__test-link{min-height:44px}.environment-catalog>header{align-items:flex-start;flex-direction:column}.environment-catalog__head{display:none}.environment-catalog__table{overflow:visible}.environment-catalog__table article{grid-template-columns:1fr 1fr;gap:12px;min-width:0;padding:16px}.environment-catalog__identity,.environment-catalog__worlds{grid-column:1 / -1}.environment-catalog__table article [role=cell]:before{display:block;margin-bottom:5px;color:var(--muted);font-size:8px;font-weight:850;letter-spacing:.05em;text-transform:uppercase}.environment-catalog__identity:before{content:"Environment"}.environment-catalog__worlds:before{content:"World coverage";flex-basis:100%}.environment-catalog__table article [role=cell]:nth-child(3):before{content:"Lifecycle"}.environment-catalog__mechanic:before{content:"Reference mechanic"}.environment-catalog__artwork:before{content:"Artwork"}.environment-catalog__artwork{display:block}.environment-catalog__artwork span{display:inline-block;margin-right:7px}}.world-content-readiness{width:min(1440px,100%);margin:18px auto 0;border:1px solid var(--line);border-radius:12px;background:var(--surface);overflow:hidden}.world-content-readiness>header{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:16px 18px;border-bottom:1px solid var(--line)}.world-content-readiness>header>div{max-width:720px}.world-content-readiness h2{margin:0;font-size:17px;line-height:1.2;letter-spacing:-.015em}.world-content-readiness>header p{margin:7px 0 0;color:var(--muted);font-size:12px;line-height:1.5;text-wrap:pretty}.world-content-readiness>header code{flex:0 0 auto;padding:6px 9px;border:1px solid var(--line);border-radius:7px;background:var(--surface-raised);font-size:10px}.world-content-readiness__status{margin:0;padding:16px 18px;color:var(--muted);font-size:12px}.world-content-readiness__status.is-error{color:var(--danger, #b3261e)}.world-content-world{border-bottom:1px solid var(--line)}.world-content-world:last-child{border-bottom:0}.world-content-world>summary{display:grid;grid-template-columns:minmax(150px,.8fr) repeat(4,minmax(130px,1fr)) minmax(220px,1.6fr);gap:16px;align-items:start;padding:13px 18px;cursor:pointer;font-size:11px;list-style:none}.world-content-world>summary::-webkit-details-marker{display:none}.world-content-world>summary:hover{background:color-mix(in oklch,var(--primary-pale),transparent 58%)}.world-content-world>summary:focus-visible{outline:3px solid color-mix(in oklch,var(--focus),transparent 45%);outline-offset:-3px}.world-content-world__name{display:grid;gap:2px}.world-content-world__name strong{font-size:13px}.world-content-world__name small,.world-content-world__cell small{color:var(--muted);font-size:10px;line-height:1.4}.world-content-world__cell,.world-content-world__next{display:grid;gap:2px;min-width:0;line-height:1.4;overflow-wrap:anywhere}.world-content-world__cell b,.world-content-world__next b{color:var(--muted);font-size:9px;font-weight:850;letter-spacing:.05em;text-transform:uppercase}.world-content-units{display:grid;gap:0;margin:0;padding:0 18px 12px;list-style:none}.world-content-unit{display:grid;grid-template-columns:92px 28px minmax(160px,.9fr) minmax(220px,1.8fr);gap:12px;align-items:baseline;padding:8px 0;border-top:1px solid var(--line);font-size:11px;line-height:1.4}.world-content-unit__verdict{display:inline-flex;justify-self:start;padding:3px 6px;border-radius:999px;color:var(--muted);background:var(--surface-raised);font-size:9px;font-weight:850;white-space:nowrap}.world-content-unit--blocked .world-content-unit__verdict{color:var(--danger, #b3261e);background:color-mix(in oklch,var(--danger, #b3261e),var(--surface) 86%)}.world-content-unit--unbound .world-content-unit__verdict,.world-content-unit--pooled .world-content-unit__verdict{color:var(--primary-strong);background:var(--primary-pale)}.world-content-unit__stage{color:var(--muted);font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:10px}.world-content-unit__identity{display:grid;gap:1px;min-width:0;overflow-wrap:anywhere}.world-content-unit__identity small{color:var(--muted);font-size:10px}.world-content-unit__identity a{color:var(--ink);font-weight:750}.world-content-unit__action{color:var(--ink);overflow-wrap:anywhere}.world-content-cards{margin:0 18px 14px;border:1px solid var(--line);border-radius:8px;background:var(--surface-raised)}.world-content-cards>summary{padding:8px 12px;cursor:pointer;font-size:11px;font-weight:800}.world-content-cards .world-content-units{padding:0 12px 8px}.world-content-readiness>footer{padding:12px 18px 16px;border-top:1px solid var(--line);color:var(--muted);font-size:10px;line-height:1.5}.world-content-readiness>footer p{margin:0 0 4px}.world-content-readiness>footer ul{margin:0;padding-left:16px}@media(max-width:980px){.world-content-world>summary{grid-template-columns:1fr 1fr}.world-content-world__name,.world-content-world__next{grid-column:1 / -1}.world-content-unit{grid-template-columns:92px 28px 1fr}.world-content-unit__action{grid-column:1 / -1}}@media(max-width:620px){.world-content-readiness>header{align-items:flex-start;flex-direction:column}.world-content-world>summary{grid-template-columns:1fr;gap:10px;padding:14px 16px}.world-content-units{padding:0 16px 12px}.world-content-unit{grid-template-columns:auto auto 1fr;gap:8px}.world-content-cards{margin:0 16px 14px}}.animation-lab{min-height:calc(100dvh - 123px);padding:28px 32px 56px;color:var(--ink);background:var(--bg)}.animation-lab-shell__heading{padding:16px 24px 0}.animation-lab__header,.animation-lab__grid,.animation-lab>[role=alert]{width:min(1440px,100%);margin-inline:auto}.animation-lab__header{display:flex;align-items:flex-end;justify-content:space-between;gap:32px;margin-bottom:20px}.animation-lab__header>div:first-child{max-width:700px}.animation-lab__kicker{margin:0 0 5px;color:var(--primary);font-size:11px;font-weight:850;letter-spacing:.08em;text-transform:uppercase}.animation-lab h1{margin:0;font-size:32px;line-height:1.08;letter-spacing:-.035em;text-wrap:balance}.animation-lab__header>div:first-child>p:last-child{margin:7px 0 0;color:var(--muted);font-size:12px;line-height:1.5;text-wrap:pretty}.animation-lab__controls{display:flex;flex:0 0 auto;align-items:center;gap:10px;padding:8px 10px;border:1px solid var(--line);border-radius:10px;background:var(--surface)}.animation-lab__controls label{display:inline-flex;align-items:center;gap:7px;color:var(--muted);font-size:11px;font-weight:800}.animation-lab__controls select{min-height:36px;padding:0 8px;border:1px solid var(--line);border-radius:7px;color:var(--ink);background:var(--surface-raised);font:inherit}.animation-lab__toggle{min-height:36px;padding-inline:4px;cursor:pointer}.animation-lab__controls button,.animation-card footer button{min-height:36px;padding:7px 14px;border:1px solid var(--line);border-radius:7px;color:var(--ink);background:var(--surface-raised);font-size:11px;font-weight:800;cursor:pointer}.animation-lab__controls button:hover:not(:disabled),.animation-card footer button:hover:not(:disabled){border-color:var(--primary)}.animation-lab__controls button:disabled,.animation-card footer button:disabled{opacity:.5;cursor:progress}.animation-lab__controls :focus-visible,.animation-card footer button:focus-visible{outline:3px solid color-mix(in oklch,var(--focus),transparent 45%);outline-offset:2px}.animation-lab__theme{display:flex;flex-wrap:wrap;align-items:center;gap:8px 16px;width:min(1440px,100%);margin:0 auto 16px;padding:8px 12px;border:1px solid var(--line);border-radius:10px;background:var(--surface)}.animation-lab__runtime{width:min(1440px,100%);margin:0 auto 12px;color:var(--muted);font-size:11px;font-weight:700}.animation-lab__runtime.is-failed{padding:8px 12px;border:1px solid oklch(.6 .18 25);border-radius:10px;color:#9b1e22;background:#ffecea;background:oklch(.96 .03 25)}.animation-lab__theme label{display:inline-flex;align-items:center;gap:7px;color:var(--muted);font-size:11px;font-weight:800}.animation-lab__theme select{min-height:36px;padding:0 8px;border:1px solid var(--line);border-radius:7px;color:var(--ink);background:var(--surface-raised);font:inherit}.animation-lab__theme input[type=color]{width:36px;height:36px;padding:2px;border:1px solid var(--line);border-radius:7px;background:var(--surface-raised);cursor:pointer}.animation-lab__theme code{min-width:58px;color:var(--ink);font-size:11px}.animation-lab__theme button{min-height:36px;margin-left:auto;padding:7px 14px;border:1px solid var(--line);border-radius:7px;color:var(--ink);background:var(--surface-raised);font-size:11px;font-weight:800;cursor:pointer}.animation-lab__theme button:hover:not(:disabled){border-color:var(--primary)}.animation-lab__theme button:disabled{opacity:.5;cursor:default}.animation-lab__theme :focus-visible{outline:3px solid color-mix(in oklch,var(--focus),transparent 45%);outline-offset:2px}.animation-lab__section{width:min(1440px,100%);margin:24px auto 10px;font-size:13px;font-weight:850;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}.animation-lab__section-note{width:min(1440px,100%);margin:-4px auto 12px;color:var(--muted);font-size:12px;line-height:1.5;text-wrap:pretty}.animation-lab__grid--grand{grid-template-columns:repeat(auto-fill,minmax(min(560px,100%),1fr))}.animation-lab__grid--scenarios{grid-template-columns:repeat(auto-fill,minmax(min(420px,100%),1fr))}.animation-scenario-stage{--card-control-yours: oklch(.74 .15 250);--card-control-opponent: oklch(.72 .18 38);--card-control-separator: oklch(.12 .018 235 / .9);position:relative;overflow:hidden;background:radial-gradient(circle at 50% 50%,color-mix(in oklch,var(--animation-stage, oklch(.2 .045 235)),white 9%),var(--animation-stage, oklch(.2 .045 235)))}.animation-scenario-stage>svg{display:block;width:100%;height:420px}.animation-card--sequence .animation-scenario-stage>svg{height:560px}.animation-scenario-marker-seat{fill:none;pointer-events:none}.animation-scenario-marker{animation:animation-scenario-marker-in .22s var(--ease-out) both;transform-box:fill-box;transform-origin:center}.animation-scenario-marker rect{fill:#020f19eb;stroke:#ffeaab;stroke:oklch(.94 .17 92);stroke-width:2}.animation-scenario-marker path{fill:none;stroke:#ffeaab;stroke:oklch(.94 .17 92);stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round}.animation-scenario-marker text{fill:#fbf5df;font:900 17px/1 var(--font-display);text-anchor:middle;dominant-baseline:central}.animation-scenario-marker path.is-filled{fill:#ffeaab;fill:oklch(.94 .17 92);stroke-width:1}.animation-scenario-marker.is-spent path.is-filled{fill:#9aa7b0}.animation-scenario-trail__shadow{fill:#00070e99;fill:oklch(.12 .03 238 / .6);stroke:#00070e99;stroke:oklch(.12 .03 238 / .6);stroke-width:5;stroke-linejoin:round}.animation-scenario-trail__line{stroke-width:1.5;stroke-linejoin:round}.animation-scenario-trail__reveal{fill:none;stroke:#fff;stroke-linecap:butt;stroke-linejoin:round;stroke-dasharray:1;animation:animation-scenario-trail-draw var(--trail-duration, .22s) linear both}@keyframes animation-scenario-trail-draw{0%{stroke-dashoffset:var(--trail-from, 1)}to{stroke-dashoffset:0}}@media(prefers-reduced-motion:reduce){.animation-scenario-trail__reveal{animation:none}}.animation-scenario-marker.is-spent rect,.animation-scenario-marker.is-spent path{stroke:#9aa7b0}.animation-scenario-marker.is-spent text{fill:#acbac3}@keyframes animation-scenario-marker-in{0%{opacity:0;scale:.6}to{opacity:1;scale:1}}@media(prefers-reduced-motion:reduce){.animation-scenario-marker{animation:none}}.animation-scenario-stage__effects{position:absolute;inset:0;pointer-events:none}.animation-lab__grid.animation-lab__grid--draws{grid-template-columns:repeat(auto-fill,minmax(min(560px,100%),1fr))}.draw-stage{position:relative;display:flex;align-items:flex-end;gap:clamp(16px,5%,36px);height:300px;padding:0 20px 26px;overflow:hidden;background:radial-gradient(circle at 50% 60%,color-mix(in oklch,var(--animation-stage, oklch(.2 .045 235)),white 9%),var(--animation-stage, oklch(.2 .045 235)))}.draw-stage__deck{flex:0 0 auto;display:grid;justify-items:center;gap:6px}.draw-stage__stack{position:relative;width:62px;height:76px}.draw-stage__stack .card-back{position:absolute;width:54px;height:68px;filter:drop-shadow(0 3px 3px oklch(0 0 0 / .45))}.draw-stage__stack .card-back:nth-child(1){top:0;left:0}.draw-stage__stack .card-back:nth-child(2){top:4px;left:4px}.draw-stage__stack .card-back:nth-child(3){top:8px;left:8px}.draw-stage__count{color:#c5d3dd;font-size:10px;font-weight:800;font-variant-numeric:tabular-nums;white-space:nowrap}.draw-stage__hand{flex:1 1 auto;display:flex;align-items:center;gap:6px;min-width:0;padding:8px;border:1px dashed oklch(.8 .02 238 / .28);border-radius:12px}.draw-stage__slot{flex:0 1 96px;min-width:0;aspect-ratio:108 / 100;display:grid;place-items:center}.draw-stage__slot>svg,.draw-stage__slot>.card-back,.draw-stage__slot>.card-back>svg{width:100%;height:100%;overflow:visible}.draw-stage--ai .draw-stage__slot>.card-back{width:72%}.draw-stage__slot--incoming:not(.is-filled){visibility:hidden}.draw-stage__effects{position:absolute;inset:0;pointer-events:none}.draw-flight{position:absolute;top:0;left:0;z-index:1;visibility:hidden;perspective:600px;transform-origin:center;will-change:transform}.draw-flight__flipper{position:absolute;inset:0;transform-style:preserve-3d}.draw-flight__face{position:absolute;inset:0;display:grid;place-items:center;backface-visibility:hidden}.draw-flight__face>svg,.draw-flight__face>.card-back,.draw-flight__face>.card-back>svg{width:100%;height:100%;overflow:visible}.draw-stage--ai .draw-flight__face>.card-back{width:72%}.draw-flight__face--back{transform:rotateY(180deg)}.draw-flight__face--back>.card-back{width:72%}.animation-lab__subsection{width:min(1440px,100%);margin:4px auto 10px;color:var(--muted);font-size:12px;line-height:1.5}.animation-lab__subsection strong{color:var(--ink)}.animation-lab__grid.animation-lab__grid--structure{grid-template-columns:repeat(auto-fill,minmax(min(380px,100%),1fr));margin-bottom:16px}.animation-lab__grid.animation-lab__grid--structure-breach{grid-template-columns:repeat(auto-fill,minmax(min(600px,100%),1fr))}.structure-cue__stage{--card-control-yours: oklch(.96 .018 95);--card-control-opponent: oklch(.74 .19 35);--card-control-separator: oklch(.12 .018 235 / .9);position:relative;overflow:hidden;background:radial-gradient(circle at 50% 50%,color-mix(in oklch,var(--animation-stage, oklch(.2 .045 235)),white 9%),var(--animation-stage, oklch(.2 .045 235)))}.structure-cue__stage>svg{display:block;width:100%;height:380px}.structure-cue--breach .structure-cue__stage>svg{height:320px}.structure-cue__stage svg.is-settled *{animation:none!important}.structure-cue__stage text{font-family:var(--font-display, inherit)}.structure-cue__socket{fill:#ffffff0a;stroke:#c2d0da59;stroke-width:1.5;stroke-dasharray:5 4}.structure-cue__enter{animation:sc-enter calc(.3s / var(--sc-speed, 1)) var(--ease-out) both}.structure-cue__enter--heavy{transform-origin:0 44px;animation:sc-enter-heavy calc(.46s / var(--sc-speed, 1)) cubic-bezier(.3,.7,.3,1) both}@keyframes sc-enter{0%{opacity:0;transform:scale(.86)}to{opacity:1;transform:none}}@keyframes sc-enter-heavy{0%{opacity:0;transform:translateY(-34px) scale(1.07)}45%{opacity:1;transform:translateY(0) scale(1.03,.92)}68%{transform:scale(.985,1.025)}to{opacity:1;transform:none}}.structure-cue__caption rect{fill:#020f19eb;stroke:#b2c0c980;stroke-width:1.2}.structure-cue__caption text{fill:#f7f5ee;font-size:9.5px;font-weight:850;text-anchor:middle;dominant-baseline:central}.structure-cue__caption--hold rect{stroke:#fcd176}.structure-cue__caption--break rect,.structure-cue__caption--good rect{stroke:#7cdd93}.structure-cue__caption--bad rect{stroke:#fd7562}.structure-cue__caption{animation:sc-pop calc(.26s / var(--sc-speed, 1)) var(--ease-out) both;transform-box:fill-box}@keyframes sc-pop{0%{opacity:0}to{opacity:1}}.structure-cue__ring circle{fill:none;stroke:#6cbd7f;stroke-width:3;stroke-dasharray:4 3;animation:structure-build-settle calc(.68s / var(--sc-speed, 1)) var(--ease-out) both}.structure-cue__ring text{fill:#fff;font-size:8px;font-weight:850;text-anchor:middle;paint-order:stroke;stroke:var(--ink);stroke-width:2.4px}.structure-cue__ground circle{fill:none;stroke:#8ed09c;stroke-width:5;opacity:0;animation:sc-ground calc(.76s / var(--sc-speed, 1)) var(--ease-out) both}.structure-cue__ground circle.is-late{stroke-width:3;animation-delay:calc(.15s / var(--sc-speed, 1))}@keyframes sc-ground{0%{r:8px;opacity:.95}to{r:64px;opacity:0}}.structure-cue__gate{opacity:.7;animation:sc-gate calc(.62s / var(--sc-speed, 1)) var(--ease-out) both;animation-delay:calc(var(--sc-delay, 0ms) / var(--sc-speed, 1))}.structure-cue__gate path{fill:none;stroke:#fcd176;stroke-width:5;stroke-linecap:round;stroke-linejoin:round}.structure-cue__gate circle{fill:#fcd176}.structure-cue__stage svg.is-settled .structure-cue__gate{opacity:.7}.structure-cue__gate-target{cursor:help}.structure-cue__gate-hit{fill:transparent;pointer-events:all}.structure-cue__stage svg .structure-cue__gate.is-hovered{opacity:1}.structure-cue__gate.is-hovered path{stroke:#ffedbe;stroke:oklch(.95 .1 90);stroke-width:6}.structure-cue__hint{pointer-events:none}@keyframes sc-gate{0%{opacity:0;transform:translate(10px) scale(1.4)}40%{opacity:1;transform:none}75%{opacity:1}to{opacity:.7}}.structure-cue__feint line{stroke:#ffeaab;stroke:oklch(.94 .17 92);stroke-width:4;stroke-linecap:round;stroke-dasharray:1;stroke-dashoffset:1;animation:sc-feint calc(.7s / var(--sc-speed, 1)) var(--ease-out) both;animation-delay:calc(var(--sc-delay, 0ms) / var(--sc-speed, 1))}.structure-cue__stage svg.is-settled .structure-cue__feint{display:none}@keyframes sc-feint{0%{stroke-dashoffset:1;opacity:1}45%{stroke-dashoffset:.35;opacity:1}to{stroke-dashoffset:1;opacity:.2}}.structure-cue__teach path{fill:color-mix(in oklch,oklch(.78 .12 85),var(--ink) 35%);stroke:#ffe5a8;stroke:oklch(.93 .1 88);stroke-width:1.4}.structure-cue__strike{stroke:#ffeaab;stroke:oklch(.94 .17 92);stroke-width:5;stroke-linecap:round;stroke-dasharray:1;animation:sc-strike calc(.22s / var(--sc-speed, 1)) var(--ease-out) both}.structure-cue__stage svg.is-settled .structure-cue__strike{display:none}@keyframes sc-strike{0%{stroke-dashoffset:1}to{stroke-dashoffset:0}}.structure-cue__shield path,.structure-cue__crack path:first-child{fill:color-mix(in oklch,oklch(.78 .12 85),var(--ink) 35%);stroke:#ffe5a8;stroke:oklch(.93 .1 88);stroke-width:2}.structure-cue__shield{animation:sc-shield-in calc(.26s / var(--sc-speed, 1)) var(--ease-out) both}.structure-cue__shield.is-holding path{animation:sc-shield-hold calc(.42s / var(--sc-speed, 1)) var(--ease-out) both}@keyframes sc-shield-in{0%{opacity:0;transform:scale(.6)}to{opacity:1;transform:none}}@keyframes sc-shield-hold{0%{transform:scale(1)}35%{transform:scale(1.18)}to{transform:scale(1)}}.structure-cue__crack{animation:sc-crack calc(.52s / var(--sc-speed, 1)) var(--ease-out) both}.structure-cue__crack-line{fill:none;stroke:#0d171e;stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round}.structure-cue__stage svg.is-settled .structure-cue__crack{display:none}@keyframes sc-crack{0%{opacity:1;transform:scale(1)}55%{opacity:1;transform:scale(1.08) rotate(-4deg)}to{opacity:0;transform:scale(1.3) rotate(6deg)}}.structure-cue__tax{fill:#fcd176;font-size:13px;font-weight:900;paint-order:stroke;stroke:var(--ink);stroke-width:2.4px;animation:sc-tax calc(.52s / var(--sc-speed, 1)) var(--ease-out) both}.structure-cue__stage svg.is-settled .structure-cue__tax{display:none}@keyframes sc-tax{0%{opacity:0;transform:translate(0)}30%{opacity:1}to{opacity:0;transform:translate(26px,26px)}}.structure-cue__carry circle{fill:#ffeaab;fill:oklch(.94 .17 92);stroke:#020f19;stroke-width:2;animation:sc-carry calc(.2s / var(--sc-speed, 1)) ease-in both}.structure-cue__stage svg.is-settled .structure-cue__carry{display:none}@keyframes sc-carry{0%{transform:none;opacity:1}to{transform:translate(var(--sc-dx),var(--sc-dy));opacity:.3}}.structure-cue__pip path{fill:#020f19f2;stroke:#fcd176;stroke-width:2}.structure-cue__pip text{fill:#ffe5a8;fill:oklch(.93 .1 88);font-size:11px;font-weight:900;text-anchor:middle;dominant-baseline:central}.structure-cue__pip.is-holding{animation:sc-shield-hold calc(.42s / var(--sc-speed, 1)) var(--ease-out) both}.structure-cue__pip.is-broken{opacity:.55}.structure-cue__meter rect{fill:#020f19e6;stroke:#fcd176;stroke-width:1.8}.structure-cue__meter rect.is-filled{fill:#ffeaab;fill:oklch(.94 .17 92);animation:sc-fill calc(.18s / var(--sc-speed, 1)) var(--ease-out) both;transform-box:fill-box;transform-origin:center}.structure-cue__meter.is-holding{animation:sc-shake calc(.36s / var(--sc-speed, 1)) ease-in-out both}.structure-cue__meter.is-broken rect{opacity:.35;stroke-dasharray:3 2}@keyframes sc-fill{0%{transform:scale(1.5)}to{transform:none}}@keyframes sc-shake{0%,to{transform:translate(0)}25%{transform:translate(-3px)}50%{transform:translate(3px)}75%{transform:translate(-2px)}}.structure-cue__spill{fill:#ffeaab;fill:oklch(.94 .17 92);stroke:#020f19;stroke-width:2;animation:sc-pop calc(.2s / var(--sc-speed, 1)) var(--ease-out) both}.structure-cue__overlay *{transform-box:fill-box;transform-origin:center}.structure-cue__overlay .structure-cue__gate,.structure-cue__overlay .structure-cue__gate *{transform-box:view-box;transform-origin:0 0}.structure-cue__overlay .structure-cue__carry circle{transform-box:view-box;transform-origin:0 0}@media(prefers-reduced-motion:reduce){.structure-cue__stage svg *{animation-duration:1ms!important;animation-delay:0ms!important}}.animation-lab__grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(300px,100%),1fr));gap:16px}.animation-card{display:grid;grid-template-rows:auto 1fr;border:1px solid var(--line);border-radius:12px;background:var(--surface);overflow:hidden}.animation-card--sequence{grid-column:1 / -1}.animation-stage{position:relative;height:220px;overflow:hidden;background:radial-gradient(circle at 50% 50%,color-mix(in oklch,var(--animation-stage, oklch(.2 .045 235)),white 9%),var(--animation-stage, oklch(.2 .045 235)));cursor:crosshair;touch-action:manipulation}.animation-card--sequence .animation-stage{height:280px}.animation-card--grand .animation-stage{height:360px}.animation-stage--travels:before{content:"";position:absolute;left:16%;top:50%;width:10px;height:10px;border:2px solid oklch(.94 .17 92 / .55);border-radius:50%;transform:translate(-50%,-50%);pointer-events:none}.animation-stage>*{pointer-events:none}.animation-card__body{display:grid;gap:8px;align-content:start;padding:14px 16px 16px}.animation-card header{display:flex;align-items:baseline;justify-content:space-between;gap:12px}.animation-card h2{margin:0;font-size:17px;line-height:1.2;letter-spacing:-.015em}.animation-card header span{color:var(--muted);font-size:11px;font-weight:800;font-variant-numeric:tabular-nums}.animation-card p{margin:0;color:var(--muted);font-size:12px;line-height:1.5;text-wrap:pretty}.animation-card__steps{display:flex;flex-wrap:wrap;gap:6px;margin:0;padding:0;list-style:none}.animation-card__steps li{display:inline-flex;align-items:center;gap:6px;padding:3px 9px;border-radius:999px;color:var(--primary-deep);background:var(--primary-pale);font-size:10px;font-weight:800}.animation-card__steps li+li:before{content:"→";margin-left:-2px;opacity:.6}.animation-card__amount{display:flex;flex-wrap:wrap;align-items:center;gap:6px}.animation-card__amount button{min-width:44px;min-height:36px;padding:6px 10px;border:1px solid var(--line);border-radius:7px;color:var(--ink);background:var(--surface-raised);font-size:12px;font-weight:850;font-variant-numeric:tabular-nums;cursor:pointer}.animation-card__amount button[aria-pressed=true]{border-color:var(--primary);color:var(--primary-deep);background:var(--primary-pale)}.animation-card__amount button:disabled{opacity:.5;cursor:progress}.animation-card__amount label{display:inline-flex;align-items:center;gap:6px;margin-left:auto;color:var(--muted);font-size:11px;font-weight:800}.animation-card__amount input{width:64px;min-height:36px;padding:0 8px;border:1px solid var(--line);border-radius:7px;color:var(--ink);background:var(--surface-raised);font:inherit;font-variant-numeric:tabular-nums}.animation-card__amount :focus-visible{outline:3px solid color-mix(in oklch,var(--focus),transparent 45%);outline-offset:2px}.animation-card footer{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:4px}.animation-card code{color:var(--muted);font-size:11px}@media(max-width:720px){.animation-lab{padding:20px 16px 40px}.animation-lab__header{flex-direction:column;align-items:stretch;gap:16px}.animation-lab__controls{justify-content:space-between}.animation-lab__theme button{margin-left:0}.animation-lab h1{font-size:26px}.animation-card--sequence .animation-stage{height:220px}.animation-scenario-stage>svg{height:340px}.draw-stage{height:220px;padding-inline:12px}.structure-cue__stage>svg{height:320px}.structure-cue--breach .structure-cue__stage>svg{height:200px}}.narrative-lab{min-height:calc(100vh - 123px);padding:28px 32px 52px;color:var(--ink);background:var(--bg)}.narrative-lab__header{display:flex;align-items:flex-start;justify-content:space-between;gap:24px;max-width:1440px;margin:0 auto 20px}.narrative-lab__header h1{margin:0;font-size:28px;line-height:1.15;letter-spacing:-.03em;text-wrap:balance}.narrative-lab__header p{max-width:70ch;margin:6px 0 0;color:var(--muted);font-size:12px;line-height:1.5;text-wrap:pretty}.narrative-lab__header>span{flex:0 0 auto;border-radius:999px;padding:6px 9px;color:var(--primary-deep);background:var(--primary-pale);font-size:9px;font-weight:800}.narrative-lab__workspace{display:grid;grid-template-columns:minmax(250px,320px) minmax(0,1fr);gap:16px;max-width:1440px;margin:0 auto}.narrative-catalog{min-width:0;border:1px solid var(--line);border-radius:10px;background:var(--surface)}.narrative-catalog{align-self:start;overflow:hidden}.narrative-catalog>header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 16px;border-bottom:1px solid var(--line)}.narrative-catalog h2{margin:0;font-size:15px}.narrative-catalog>header span{color:var(--muted);font-size:9px;font-weight:750}.narrative-catalog__filters{display:grid;grid-template-columns:1fr 1fr;gap:8px;padding:12px;border-bottom:1px solid var(--line);background:var(--surface-raised)}.narrative-catalog__filters label{display:grid;gap:4px;min-width:0;color:var(--muted);font-size:8px;font-weight:800}.narrative-catalog__filters label:first-child{grid-column:1 / -1}.narrative-catalog__filters input,.narrative-catalog__filters select{width:100%;min-height:36px;border:1px solid var(--line);border-radius:7px;padding:7px 9px;color:var(--ink);background:var(--surface);font:inherit;font-size:10px}.narrative-catalog__filters input::placeholder{color:color-mix(in oklch,var(--ink),transparent 35%)}.narrative-catalog__filters :is(input,select):hover{border-color:var(--primary)}.narrative-catalog__filters :is(input,select):focus-visible{outline:3px solid var(--accent);outline-offset:1px}.narrative-catalog__list{max-height:540px;margin:0;padding:0;overflow-y:auto;list-style:none}.narrative-catalog__list li+li{border-top:1px solid var(--line)}.narrative-catalog__list button{width:100%;min-height:58px;display:flex;align-items:center;justify-content:space-between;gap:12px;border:0;padding:10px 12px;color:var(--ink);background:var(--surface);text-align:left;cursor:pointer}.narrative-catalog__list button:hover{background:var(--surface-raised)}.narrative-catalog__list button.is-selected{box-shadow:inset 0 0 0 1px var(--accent);background:var(--accent-pale)}.narrative-catalog__list button:focus-visible{position:relative;z-index:1;outline:3px solid var(--accent);outline-offset:-3px}.narrative-catalog__list button>span:first-child{min-width:0}.narrative-catalog__list strong,.narrative-catalog__list small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.narrative-catalog__list strong{font-size:11px}.narrative-catalog__list small{margin-top:3px;color:var(--muted);font:8px ui-monospace,SFMono-Regular,Menlo,monospace}.narrative-catalog__list button>span:last-child{flex:0 0 auto;border-radius:999px;padding:4px 6px;color:var(--primary-deep);background:var(--primary-pale);font-size:8px;font-weight:800}.narrative-catalog__list button>span.is-invalid{color:var(--ink);background:var(--surface-raised)}.narrative-catalog__empty{min-height:150px;display:grid;align-content:center;justify-items:start;gap:4px;padding:20px}.narrative-catalog__empty strong{font-size:12px}.narrative-catalog__empty p{margin:0;color:var(--muted);font-size:10px;line-height:1.45}.narrative-catalog__empty button{min-height:36px;margin-top:8px;border:1px solid var(--line);border-radius:7px;padding:7px 10px;color:var(--ink);background:var(--surface);font-size:10px;font-weight:800;cursor:pointer}.narrative-catalog__empty button:hover{border-color:var(--accent);color:var(--accent)}.narrative-catalog__empty button:focus-visible{outline:3px solid var(--accent);outline-offset:1px}.narrative-preview{min-width:0}.narrative-preview__toolbar{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:61px;margin-bottom:10px;border-bottom:1px solid var(--line);padding:4px 0 10px}.narrative-preview__toolbar>div{min-width:0}.narrative-preview__toolbar>div span,.narrative-preview__toolbar>div strong,.narrative-preview__toolbar>div small{display:block}.narrative-preview__toolbar>div span{color:var(--muted);font-size:8px;font-weight:800}.narrative-preview__toolbar>div strong{margin-top:3px;overflow:hidden;font:10px ui-monospace,SFMono-Regular,Menlo,monospace;text-overflow:ellipsis;white-space:nowrap}.narrative-preview__toolbar>div small{margin-top:3px;color:var(--muted);font-size:9px}.narrative-preview__toolbar fieldset{display:flex;flex:0 0 auto;gap:3px;margin:0;border:1px solid var(--line);border-radius:8px;padding:3px;background:var(--surface-raised)}.narrative-preview__toolbar legend{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.narrative-preview__toolbar button{min-height:30px;border:0;border-radius:6px;padding:5px 9px;color:var(--muted);background:transparent;font-size:9px;font-weight:800;cursor:pointer}.narrative-preview__toolbar button:hover{color:var(--ink);background:var(--surface)}.narrative-preview__toolbar button.is-selected{color:#fff;background:var(--accent)}.narrative-preview__toolbar button:focus-visible{outline:3px solid var(--accent);outline-offset:1px}.narrative-preview__frame{padding:20px;border-radius:10px;background:var(--surface-raised);transition:padding .18s var(--ease-out)}.narrative-preview__frame.is-narrow{max-width:390px;margin-inline:auto;padding-inline:12px}.narrative-preview__frame.is-narrow .narrative-scene{min-height:360px}.narrative-preview__frame.is-narrow .narrative-scene__footer{align-items:stretch;flex-direction:column}.narrative-preview__frame.is-narrow .narrative-scene__controls{justify-content:stretch}.narrative-preview__frame.is-narrow .narrative-scene__controls button{flex:1 1 auto;min-height:44px}.narrative-preview__notice{min-height:16px;margin:0;padding:4px 20px 8px;color:var(--muted);background:var(--surface-raised);font-size:9px;text-align:center}.narrative-scene{min-height:390px;display:grid;grid-template-rows:auto minmax(110px,1fr) auto auto;overflow:hidden;border:1px solid var(--line);border-radius:10px;color:var(--ink);background:var(--surface)}.narrative-scene__context{display:flex;align-items:baseline;gap:8px;padding:10px 14px;border-bottom:1px solid var(--line)}.narrative-scene__context span{border-radius:999px;padding:4px 7px;color:color-mix(in oklch,var(--campaign-world-deep, var(--primary-deep)),black 12%);background:color-mix(in oklch,var(--campaign-world-accent, var(--primary-pale)),white 62%);font-size:8px;font-weight:800}.narrative-scene__context strong{font-size:11px}.narrative-scene__field{min-height:150px;background-color:var(--campaign-world-deep, var(--bg));background-image:linear-gradient(180deg,color-mix(in oklch,var(--campaign-world-deep, var(--bg)),transparent 72%),var(--campaign-world-deep, var(--bg))),var(--campaign-stage-image, none);background-position:center,var(--campaign-stage-position, center);background-size:cover}.narrative-scene__beat{width:min(640px,calc(100% - 28px));margin:-18px auto 0;border:1px solid var(--line);border-radius:10px;padding:18px 20px;background:var(--surface)}.narrative-scene__beat.is-left{margin-left:14px}.narrative-scene__beat.is-right{margin-right:14px}.narrative-scene__beat.is-quiet p{color:var(--muted)}.narrative-scene__beat.is-urgent{border-color:var(--accent)}.narrative-scene__speaker{display:block;margin-bottom:6px;color:color-mix(in oklch,var(--campaign-world-deep, var(--primary-deep)),black 8%);font-size:10px}.narrative-scene__beat p{max-width:70ch;margin:0;font-size:15px;line-height:1.55;text-wrap:pretty}.narrative-scene__completion strong{display:block;margin-bottom:6px;font-size:13px}.narrative-scene__completion p{color:var(--muted)}.narrative-scene__footer{display:flex;justify-content:flex-end;gap:12px;padding:12px 14px}.narrative-scene__controls{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:6px}.narrative-scene__controls button{min-height:36px;border:1px solid var(--line);border-radius:7px;padding:7px 10px;color:var(--ink);background:var(--surface);font-size:10px;font-weight:800;cursor:pointer}.narrative-scene__controls button:hover:not(:disabled){border-color:var(--accent);color:var(--accent)}.narrative-scene__controls button:active:not(:disabled){background:var(--surface-raised)}.narrative-scene__controls button:focus-visible{outline:3px solid var(--accent);outline-offset:1px}.narrative-scene__controls button:disabled{color:var(--muted);background:var(--surface-raised);cursor:not-allowed;opacity:.55}.narrative-scene__controls button.is-primary{border-color:var(--campaign-world-accent, var(--accent));color:var(--campaign-aegean-ink, var(--ink));background:var(--campaign-world-accent, var(--accent))}.narrative-scene__controls button.is-primary:hover{color:var(--campaign-aegean-ink, var(--ink));background:color-mix(in oklch,var(--campaign-world-accent, var(--accent)),white 14%)}.narrative-scene--empty{place-items:center;min-height:390px;padding:30px;background:var(--surface-raised);text-align:center}.narrative-scene--empty strong{font-size:13px}.narrative-scene--empty p{max-width:45ch;margin:5px 0 0;color:var(--muted);font-size:10px;line-height:1.5}.narrative-validation{margin:14px 14px 0;border:1px solid var(--line);border-radius:8px;padding:12px 14px;background:var(--surface-raised)}.narrative-validation h2{margin:0;font-size:12px}.narrative-validation ul{display:grid;gap:5px;margin:7px 0 0;padding-left:18px;color:var(--muted);font-size:9px;line-height:1.45}.narrative-validation code{color:var(--ink);font-size:8px}.narrative-inspection{padding:18px 20px 20px;border-top:1px solid var(--line)}.narrative-inspection h2{margin:0 0 12px;font-size:13px}.narrative-inspection dl{display:flex;flex-wrap:wrap;gap:12px 24px;margin:0}.narrative-inspection dl div{min-width:90px}.narrative-inspection dt{color:var(--muted);font-size:8px;font-weight:800}.narrative-inspection dd{margin:3px 0 0;font-size:10px}.narrative-inspection>div{margin-top:14px}.narrative-inspection>div strong{font-size:9px}.narrative-inspection ul{margin:5px 0 0;padding-left:18px;color:var(--muted);font-size:9px;line-height:1.45}@media(max-width:840px){.narrative-lab{padding:20px 16px 40px}.narrative-lab__workspace{grid-template-columns:1fr}.narrative-catalog__list{max-height:280px}}@media(max-width:520px){.narrative-lab__header,.narrative-preview__toolbar{align-items:stretch;flex-direction:column}.narrative-lab__header>span{align-self:flex-start}.narrative-preview__toolbar fieldset{width:fit-content}}@media(pointer:coarse){.narrative-catalog__filters :is(input,select),.narrative-catalog__empty button,.narrative-preview__toolbar button,.narrative-scene__controls button{min-height:44px}}@media(prefers-reduced-motion:reduce){.narrative-preview__frame{transition:none}}.city-authoring{max-width:1480px;margin:auto;padding:28px 32px 64px;color:var(--ink)}.city-authoring h1{margin:0;font-size:28px;letter-spacing:-.03em}.city-authoring h2{margin:0;font-size:22px}.city-authoring h3{margin:16px 0 10px;font-size:16px}.city-authoring p{max-width:72ch;font-size:13px;line-height:1.55}.city-authoring label{display:grid;gap:6px;min-width:0;font-size:12px;font-weight:650}.city-authoring :is(input,textarea,select){width:100%;min-width:0;min-height:38px;padding:8px 10px;border:1px solid var(--line);border-radius:6px;background:var(--surface);color:var(--ink);font:inherit;font-size:13px}.city-authoring textarea{resize:vertical;min-height:76px}.city-authoring button{min-height:38px;padding:8px 12px;border:1px solid var(--line);border-radius:6px;color:var(--ink);background:var(--surface);font:inherit;font-size:12px;font-weight:650;cursor:pointer}.city-authoring button:hover:not(:disabled){border-color:var(--primary);background:var(--surface-raised)}.city-authoring :is(button,input,textarea,select,summary):focus-visible{outline:3px solid var(--accent);outline-offset:2px}.city-authoring :is(button,fieldset):disabled{opacity:.6;cursor:default}.city-authoring [role=alert],.city-authoring__confirm{margin-block:16px;padding:14px;border:1px solid var(--ink);border-radius:6px}.city-authoring__heading{margin-bottom:20px}.city-authoring__back{display:flex;gap:24px;margin-bottom:24px;font-size:13px}.city-authoring__back a{color:var(--ink);text-underline-offset:3px}.city-authoring .sr-only{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.city-authoring__chooser{display:flex;flex-wrap:wrap;align-items:end;gap:12px;margin:22px 0}.city-authoring__chooser label{flex:1 1 220px}.city-authoring__editor>header{display:flex;justify-content:space-between;align-items:start;gap:16px;padding:20px 0;border-top:1px solid var(--line)}.city-authoring__editor code{overflow-wrap:anywhere;font-size:11px}.city-authoring__actions{display:flex;gap:8px;flex-wrap:wrap}.city-authoring__actions button:first-child:not(:disabled){background:var(--primary-deep);color:#fff}.city-authoring__body{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:start;gap:32px;border:0;margin:0;padding:0;min-width:0}.city-authoring__content{display:grid;gap:16px;min-width:0}.city-authoring__coordinates{display:flex;gap:12px}.city-authoring__coordinates label{flex:1}.city-authoring__locations{display:grid;grid-template-columns:1fr auto;align-items:center;gap:8px;border-top:1px solid var(--line);padding-top:12px}.city-authoring__locations label{grid-column:1 / -1}.city-authoring__pool,.city-authoring__prerequisites{display:grid;gap:10px;border:1px solid var(--line);border-radius:6px;padding:12px;min-width:0}.city-authoring legend{font-size:12px;font-weight:650}.city-authoring__prerequisites label,.city-authoring__check{display:flex!important;align-items:center}.city-authoring input[type=checkbox]{width:18px;min-height:18px;margin:0 8px 0 0;accent-color:var(--primary)}.city-authoring__pool-row{display:grid;grid-template-columns:minmax(0,1fr) 76px auto;align-items:end;gap:8px}.city-authoring__preview{min-width:0}.city-authoring__map{position:relative;aspect-ratio:1;max-width:520px;overflow:hidden;background:var(--surface-raised);border:1px solid var(--line);border-radius:8px}.city-authoring__map svg{position:absolute;width:100%;height:100%}.city-authoring__map line{stroke:var(--ink);stroke-width:.35;opacity:.5}.city-authoring__map button{position:absolute;transform:translate(-50%,-50%);min-width:38px;padding:4px}.city-authoring__map button[aria-pressed=true]{outline:2px solid var(--primary-deep);outline-offset:2px}.city-authoring__map button[data-state=cleared]{background:var(--primary-deep);color:#fff}.city-authoring__map button[data-state=locked]{border-style:dashed}.city-authoring__simulation{padding:0;list-style:none}.city-authoring__simulation li{display:flex;align-items:center;justify-content:space-between;gap:8px;border-bottom:1px solid var(--line);padding:8px 0;font-size:12px}.city-authoring__simulation small{display:block;margin-top:3px}.city-authoring__simulation button{flex-shrink:0}.city-authoring__validation{margin-top:24px;border-top:1px solid var(--line)}.city-authoring__validation ul{padding-left:18px;font-size:12px;line-height:1.55}.city-authoring__validation li+li{margin-top:6px}.city-authoring__preview details{border-top:1px solid var(--line);padding-top:16px;margin-top:24px;font-size:13px}.city-authoring__preview pre{max-height:360px;overflow:auto;padding:12px;background:var(--surface-raised);font-size:11px}.city-authoring__loading{padding:32px 0}@media(max-width:800px){.city-authoring{padding:20px 16px 40px}.city-authoring__body{grid-template-columns:minmax(0,1fr)}.city-authoring__editor>header{flex-direction:column}.city-authoring__pool-row{grid-template-columns:minmax(0,1fr) 70px}.city-authoring__pool-row>button{grid-column:1 / -1;justify-self:start}}.card-face.has-stone-frame{--card-frame-metal: oklch(from var(--card-world-accent) .6 calc(c*.22) h)}.card-face.has-stone-frame .card-frame-metal__stop--light{stop-color:color-mix(in oklch,var(--card-frame-metal),white 18%)}.card-face.has-stone-frame .card-frame-metal__stop--dark{stop-color:color-mix(in oklch,var(--card-frame-metal),black 30%)}.card-face.has-stone-frame .card-frame-sheen{opacity:0}.card-face.has-stone-frame .card-frame-edge{stroke:color-mix(in oklch,var(--card-frame-metal),black 62%);stroke-width:calc(var(--card-edge-stroke-width, 1.3px) * 1.35)}.card-structure-corner-joints{stroke:color-mix(in oklch,var(--card-frame-metal),black 70%);stroke-width:calc(var(--card-edge-stroke-width, 1.3px) * .85);pointer-events:none}.card-face.has-stone-frame{--card-panel-stock: color-mix(in oklch, var(--card-world-deep), oklch(.42 .012 80) 18%)}.card-face.has-stone-frame.card-face--world-methane{--card-frame-metal: oklch(.78 .025 210)}.card-face.has-stone-frame.card-face--world-volcano{--card-frame-metal: oklch(.43 .025 45)}.card-face.has-stone-frame.card-face--world-machine,.card-face.has-stone-frame.card-face--world-metal{--card-frame-metal: oklch(.65 .018 235)}.card-face.has-stone-frame.card-face--world-machine .card-frame-metal__stop--light,.card-face.has-stone-frame.card-face--world-metal .card-frame-metal__stop--light{stop-color:color-mix(in oklch,var(--card-frame-metal),white 28%)}.card-face.has-borderless-frame{--card-frame-metal: color-mix(in oklch, var(--card-world-deep), oklch(.3 .01 230) 35%);--card-drafting-ink: color-mix(in oklch, var(--card-world-accent), white 65%)}.card-face.has-borderless-frame.card-face--world-methane{--card-frame-metal: oklch(.24 .025 225);--card-drafting-ink: oklch(.9 .045 85)}.card-face.has-borderless-frame.card-face--world-volcano{--card-frame-metal: oklch(.25 .022 45);--card-drafting-ink: oklch(.9 .045 65)}.card-face.has-borderless-frame{--card-panel-stock: var(--card-frame-metal)}.card-face.has-borderless-frame .card-frame-edge{stroke:var(--card-drafting-ink);stroke-width:.5;opacity:.55}.card-identity__name--caps{letter-spacing:.11em;text-transform:uppercase}.card-type-line{fill:var(--card-frame-steel);font-family:Inter,ui-sans-serif,system-ui,sans-serif;font-weight:600;letter-spacing:.1em;opacity:.72;pointer-events:none;text-transform:uppercase}.card-ability-panel[data-layout=half-panel] .card-ability-panel__text{font-weight:500}.card-ability-panel[data-layout=half-panel] .card-ability-panel__name{font-weight:800}.card-flavor{pointer-events:none}.card-flavor__text{fill:#d8d0c3;font-style:italic;font-weight:400;opacity:.6}.card-family-lab{width:min(1160px,100% - 32px);margin:0 auto;padding:26px 0 60px;display:grid;gap:22px}.card-family-lab__header h2{display:flex;align-items:center;gap:10px;margin:0 0 8px;font-size:20px}.card-family-lab__header h2 span,.card-family-lab__family-heading h3 span{border-radius:999px;padding:3px 8px;color:var(--primary-deep);background:var(--primary-pale);font-size:9px;font-weight:800}.card-family-lab__header p{max-width:78ch;margin:0;color:var(--muted);font-size:12px;line-height:1.5}.card-family-lab__family{border:1px solid var(--line);border-radius:12px;padding:18px 20px 22px;background:var(--surface);display:grid;gap:16px}.card-family-lab__family-heading{display:grid;gap:8px}.card-family-lab__family-heading h3{display:flex;align-items:center;gap:10px;margin:0;font-size:15px}.card-family-lab__family-heading p{max-width:82ch;margin:0;color:var(--muted);font-size:11px;line-height:1.5}.card-family-lab__cards{display:flex;flex-wrap:wrap;gap:22px}.card-family-lab__card{display:grid;gap:3px;align-content:start}.card-family-lab__card>strong{font-size:12px}.card-family-lab__card>small{color:var(--muted);font-size:10px}.card-family-lab__pair{display:flex;align-items:flex-end;gap:12px}.card-family-lab__pair figure{margin:0;display:grid;gap:4px;justify-items:center}.card-family-lab__pair figcaption{color:var(--muted);font-size:9px}.card-family-lab__pair>figure:not(.card-family-lab__pair-hand)>.card-family-lab__card-svg{width:224px}.card-family-lab__pair-hand>.card-family-lab__card-svg{width:76px}.card-family-lab__card-svg{display:block;height:auto}.card-family-lab__pair>figure{cursor:zoom-in}.card-family-lab__pair>figure:hover .card-family-lab__card-svg{filter:brightness(1.06)}.card-family-lab__open{align-self:center;border:1px solid var(--line, oklch(.85 0 0));border-radius:6px;background:transparent;color:var(--muted);font-size:10px;padding:3px 7px;cursor:pointer}.card-family-lab__open:hover,.card-family-lab__open:focus-visible{color:var(--ink, currentColor)}.card-face-viewer{width:100vw;height:100dvh;max-width:none;max-height:none;margin:0;padding:0;border:0;background:#090e12;color:#e5ecf1}.card-face-viewer[open]{display:grid;grid-template-rows:auto minmax(0,1fr)}.card-face-viewer::backdrop{background:#000000b3}.card-face-viewer__header{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px 16px;padding:12px 16px}.card-face-viewer__header h3{margin:0;font-size:16px}.card-face-viewer__header p{margin:2px 0 0;color:#a8afb4;font-size:12px}.card-face-viewer__actions{display:flex;gap:8px}.card-face-viewer__actions button{border:1px solid oklch(.45 .015 240);border-radius:6px;background:#151c21;color:inherit;font:inherit;font-size:13px;padding:6px 12px;cursor:pointer}.card-face-viewer__actions button:hover,.card-face-viewer__actions button:focus-visible{background:#272f35}.card-face-viewer__stage{display:grid;place-items:center;min-height:0;padding:8px 16px 20px}.card-face-viewer__stage .card-family-lab__card-svg{width:min(100%,calc((100dvh - 96px) * 1.52 / 2.12));height:auto}@media(max-width:640px){.card-family-lab__cards{gap:16px}.card-family-lab__pair>figure:not(.card-family-lab__pair-hand)>.card-family-lab__card-svg{width:178px}.card-family-lab__pair-hand>.card-family-lab__card-svg{width:62px}}.card-how-it-works{width:min(100%,38ch);display:grid;gap:6px}.card-how-it-works__trigger{width:100%;min-height:34px;display:flex;align-items:center;justify-content:space-between;gap:12px;border:1px solid color-mix(in oklch,var(--accent),transparent 52%);border-radius:7px;padding:7px 9px;color:var(--ink);background:color-mix(in oklch,var(--accent-pale),var(--surface) 58%);font:inherit;font-size:11px;font-weight:800;text-align:left;cursor:pointer;transition:border-color .16s var(--ease-out),background .16s var(--ease-out)}.card-how-it-works__trigger:hover{border-color:var(--accent);background:var(--accent-pale)}.card-how-it-works__trigger:focus-visible{outline:3px solid var(--focus);outline-offset:2px}.card-how-it-works__trigger>span:last-child{font-size:16px;font-weight:600;line-height:1}.card-how-it-works__label{display:inline-flex;align-items:center;gap:7px}.card-how-it-works__info{width:17px;height:17px;display:inline-grid;flex:0 0 17px;place-items:center;border:1px solid currentColor;border-radius:50%;font-family:ui-serif,Georgia,serif;font-size:11px;font-style:italic;line-height:1}.card-how-it-works__panel{display:grid;gap:8px;border-radius:7px;padding:9px 10px;color:var(--ink);background:color-mix(in oklch,var(--accent-pale),var(--surface) 72%);text-align:left}.card-how-it-works__panel section{display:grid;gap:3px}.card-how-it-works__panel strong{color:var(--ink);font-size:11px}.card-how-it-works__panel p{max-width:65ch;margin:0;color:color-mix(in oklch,var(--ink),transparent 18%);font-size:11px;line-height:1.45;text-wrap:pretty}@media(prefers-reduced-motion:reduce){.card-how-it-works__trigger{transition:none}}.card-family-lab__environment-choice{display:grid;gap:6px;width:fit-content;font-size:12px}.card-family-lab__environment-choice select{padding:8px 10px;border:1px solid var(--line);border-radius:6px;color:var(--ink);background:var(--surface);font:inherit}.deck-lab{display:grid;grid-template-columns:minmax(190px,250px) minmax(0,1fr);gap:18px;min-height:calc(100vh - 112px);padding:24px clamp(14px,2.5vw,36px) 44px;color:var(--ink);background:var(--background)}.deck-lab.is-library-collapsed{grid-template-columns:minmax(0,1fr)}.deck-lab.is-library-collapsed .deck-lab__library{justify-self:start}.deck-lab--unconfigured,.deck-lab__placeholder{display:grid;align-content:center;justify-items:center;gap:8px;text-align:center}.deck-lab--unconfigured{grid-template-columns:minmax(0,1fr)}.deck-lab--unconfigured p,.deck-lab__placeholder p{max-width:56ch;color:var(--muted);font-size:13px;line-height:1.5}.deck-lab__library{align-self:start;border:1px solid var(--line);border-radius:10px;background:var(--surface);overflow:hidden}.deck-lab__library header{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:12px;border-bottom:1px solid var(--line)}.deck-lab__library-title{min-width:0}.deck-lab__library header h2{margin:0;font-size:16px}.deck-lab__library header p{margin:2px 0 0;color:var(--muted);font-size:10px}.deck-lab__library header button{min-height:30px;border:1px solid var(--line);border-radius:7px;padding:5px 9px;color:var(--accent);background:var(--surface);font-size:10px;font-weight:800;cursor:pointer}.deck-lab__library-actions{display:flex;align-items:center;gap:6px}.deck-lab__library .deck-lab__library-toggle{display:inline-flex;align-items:center;gap:4px;color:var(--ink)}.deck-lab__library-toggle span{color:var(--accent);font-size:17px;line-height:1}.deck-lab.is-library-collapsed .deck-lab__library header{border-bottom:0}.deck-lab.is-library-collapsed .deck-lab__library-title{display:none}.deck-lab__library ul{margin:0;padding:0;list-style:none}.deck-lab__library li button{display:grid;width:100%;gap:3px;padding:12px;border:0;border-bottom:1px solid var(--line);color:inherit;background:transparent;text-align:left;cursor:pointer}.deck-lab__library li button:hover,.deck-lab__library li button.is-selected{background:var(--surface-raised)}.deck-lab__library li button.is-selected{color:var(--accent);font-weight:800}.deck-lab__library li button strong{font-size:11px}.deck-lab__library li button small{color:var(--muted);font-size:9px}.deck-lab__empty{padding:16px 12px;color:var(--muted);font-size:11px;line-height:1.5}.deck-building-screen.is-inline{position:static;inset:auto;overflow:visible;min-height:0;padding:16px clamp(12px,2vw,28px) 40px;color:var(--ink);background:none}.deck-building-screen.is-inline .campaign-deck-layout{min-height:0;grid-template-columns:minmax(0,1.85fr) minmax(300px,.95fr);gap:24px}.deck-building-screen.is-inline .campaign-deck-header{position:sticky;top:0;z-index:10;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;margin-bottom:16px;border-bottom:1px solid var(--line);padding:12px 0;background:color-mix(in oklch,var(--background),transparent 4%)}.deck-building-screen.is-inline .campaign-deck-header h2{color:var(--ink);font-size:26px}.deck-building-screen.is-inline .campaign-deck-header>div>span,.deck-building-screen.is-inline .campaign-deck-count strong{color:var(--accent)}.deck-building-screen.is-inline .campaign-deck-header p,.deck-building-screen.is-inline .campaign-deck-count span{color:var(--muted)}.deck-building-screen.is-inline .campaign-deck-header__meta{display:flex;align-items:center;justify-content:end;gap:20px}.deck-building-screen.is-inline .campaign-deck-count{min-width:92px;padding:0}.deck-building-screen.is-inline .campaign-deck-count strong,.deck-building-screen.is-inline .campaign-deck-count span{display:inline}.deck-building-screen.is-inline .campaign-deck-count strong{font-size:16px}.deck-building-screen.is-inline .campaign-deck-count span{margin:0 0 0 7px;font-size:11px}.deck-lab .deck-building-screen.is-inline{padding:0}.deck-building-screen.is-inline .campaign-deck-collection{border:0;padding:0;color:var(--ink);background:transparent}.deck-building-screen.is-inline .campaign-deck-collection input,.deck-building-screen.is-inline .campaign-deck-filters__trigger{border-color:var(--line);color:var(--ink);background:var(--surface-raised)}.deck-building-screen.is-inline .campaign-deck-filters__trigger:hover,.deck-building-screen.is-inline .campaign-deck-filters__trigger.is-active{border-color:var(--accent);color:var(--accent)}.deck-building-screen.is-inline .campaign-deck-filters__trigger>span{background:var(--accent)}.deck-building-screen.is-inline .campaign-deck-filters__panel{border-color:var(--line);color:var(--ink);background:var(--surface)}.deck-building-screen.is-inline .campaign-deck-filters__panel header button{color:var(--accent)}.deck-building-screen.is-inline .campaign-deck-filters__panel legend{color:var(--muted)}.deck-building-screen.is-inline .campaign-deck-filters__choices button{border-color:var(--line);color:var(--ink);background:var(--surface-raised)}.deck-building-screen.is-inline .campaign-deck-filters__choices button:hover{border-color:var(--accent)}.deck-building-screen.is-inline .campaign-deck-filters__choices button[aria-pressed=true]{border-color:var(--accent);color:#fff;background:var(--accent)}.deck-building-screen.is-inline .campaign-deck-collection header p,.deck-building-screen.is-inline .campaign-deck-collection label span{color:var(--muted)}.deck-building-screen.is-inline .campaign-deck-collection__more{border-color:var(--line);color:var(--accent);background:var(--surface-raised)}.deck-building-screen.is-inline .campaign-deck-collection__more:hover{border-color:var(--accent);color:var(--accent)}.deck-building-screen.is-inline .campaign-active-deck{position:sticky;top:92px;max-height:calc(100dvh - 116px);overflow-y:auto;border:1px solid var(--line);color:var(--ink);background:var(--surface)}.deck-building-screen.is-inline .campaign-active-deck header p,.deck-building-screen.is-inline .campaign-active-deck__list small,.deck-building-screen.is-inline .campaign-active-deck__list li>span{color:var(--muted)}.deck-building-screen.is-inline .campaign-active-deck>header>strong{color:var(--accent)}.deck-building-screen.is-inline .campaign-active-deck__status{color:var(--ink);background:var(--surface-raised)}.deck-building-screen.is-inline .campaign-active-deck__status.is-ready{color:#084511;background:#c9edc9}.deck-building-screen.is-inline .campaign-active-deck__list li{background:var(--surface-raised)}.deck-building-screen.is-inline .campaign-active-deck__list li>span{background:var(--surface)}.deck-building-screen.is-inline .campaign-active-deck__list li.is-empty{background:transparent;box-shadow:inset 0 0 0 1px var(--line)}.deck-building-screen.is-inline .campaign-active-deck__list button{color:var(--ink);background:var(--surface);box-shadow:inset 0 0 0 1px var(--line)}.deck-building-screen.is-inline .campaign-deck-tabs{border:1px solid var(--line);background:var(--surface)}.deck-building-screen.is-inline .campaign-deck-tabs button{color:var(--muted)}.deck-building-screen.is-inline .campaign-deck-tabs button[aria-selected=true]{color:#fff;background:var(--accent)}.deck-building-toolbar{width:min(1240px,100%);display:flex;flex-wrap:wrap;gap:8px;margin:0 auto 20px}.fixed-roster-toolbar{display:grid;width:100%;gap:10px}.fixed-roster-toolbar .ability-experiment-launcher{max-width:none;margin:0}.deck-lab__controls,.deck-setup-actions{display:flex;flex-wrap:wrap;align-items:end;gap:8px}.deck-lab__controls label{display:grid;gap:4px}.deck-lab__controls label>span{color:var(--muted);font-size:9px;font-weight:800}.deck-lab__controls label>small{color:var(--muted);font-size:10px;line-height:1.35}.deck-lab__controls input,.deck-lab__controls select,.deck-lab__controls textarea{min-height:32px;width:130px;border:1px solid var(--line);border-radius:7px;padding:6px 8px;color:var(--ink);background:var(--surface);font:inherit;font-size:11px}.deck-lab__controls input[type=number]{width:76px}.deck-lab__controls .deck-lab__description{flex:1 1 260px;min-width:min(100%,260px)}.deck-lab__description textarea{width:100%;min-height:48px;resize:vertical;line-height:1.4}.deck-lab__controls button,.deck-setup-actions button{min-height:32px;border:1px solid var(--line);border-radius:7px;padding:6px 10px;color:var(--ink);background:var(--surface);font-size:10px;font-weight:800;cursor:pointer}.deck-lab__controls button:hover:not(:disabled),.deck-setup-actions button:hover:not(:disabled){border-color:var(--accent);color:var(--accent)}.deck-lab__controls button:disabled,.deck-setup-actions button:disabled{opacity:.45;cursor:not-allowed}.deck-lab__delete:hover:not(:disabled){border-color:#cc2823;color:#bb0a10}.deck-lab__confirm{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px;width:100%;margin-bottom:10px;border:1px solid oklch(.55 .2 28 / .45);border-radius:8px;padding:9px 11px;background:#cc282312}.deck-lab__confirm p{margin:0;font-size:11px;line-height:1.5}.deck-lab__confirm div{display:flex;gap:8px}.deck-lab__confirm button{min-height:30px;border:1px solid var(--line);border-radius:7px;padding:5px 10px;color:var(--ink);background:var(--surface);font-size:10px;font-weight:800;cursor:pointer}.deck-lab__confirm button:hover{border-color:var(--accent);color:var(--accent)}@media(max-width:900px){.deck-lab,.deck-lab.is-library-collapsed{grid-template-columns:minmax(0,1fr)}.deck-lab.is-library-collapsed .deck-lab__library{justify-self:start}}.card-authoring{display:grid;gap:16px;padding:20px clamp(12px,2vw,28px) 36px}.card-authoring>header{display:flex;align-items:end;justify-content:space-between;gap:18px}.card-authoring>header h2{margin:0;font-size:20px}.card-authoring>header p{max-width:70ch;margin:4px 0 0;color:var(--muted);font-size:12px;line-height:1.5}.card-authoring__actions{display:flex;gap:8px}.card-authoring__layout{display:grid;grid-template-columns:minmax(180px,240px) minmax(0,1fr);gap:16px;align-items:start}.card-authoring__list{max-height:65vh;overflow-y:auto;margin:0;padding:0;border:1px solid var(--line);border-radius:10px;background:var(--surface);list-style:none;overflow-x:hidden}.card-authoring__list li button{display:grid;width:100%;gap:3px;padding:11px 12px;border:0;border-bottom:1px solid var(--line);color:inherit;background:transparent;text-align:left;cursor:pointer}.card-authoring__list li button:hover,.card-authoring__list li button.is-selected{background:var(--surface-raised)}.card-authoring__list li button.is-selected{box-shadow:inset 3px 0 var(--accent)}.card-authoring__list li button strong{font-size:11px}.card-authoring__list li button small{color:var(--muted);font-size:9px}.card-authoring__empty{padding:16px 12px;color:var(--muted);font-size:11px;line-height:1.5}.card-authoring__workspace{display:grid;gap:12px;min-width:0}.card-authoring__editor{min-width:0;display:grid;gap:14px;padding:16px;border:1px solid var(--line);border-radius:10px;background:var(--surface)}.card-authoring__identity{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:12px}.card-authoring__rules{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:12px;align-items:start}.card-authoring__rules .is-wide{grid-column:1 / -1}.card-authoring__rules fieldset{min-width:0;grid-column:1 / -1;display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:8px;margin:0;border:1px solid var(--line);border-radius:8px;padding:10px}.card-authoring__rules>p{grid-column:1 / -1;margin:0;color:var(--muted);font-size:10px;line-height:1.5}.card-authoring label{display:grid;gap:5px;min-width:0}.card-authoring label>span,.card-authoring legend{color:var(--muted);font-size:9px;font-weight:800}.card-authoring input,.card-authoring select,.card-authoring textarea{width:100%;min-height:34px;border:1px solid var(--line);border-radius:7px;padding:6px 9px;color:var(--ink);background:var(--surface);font:inherit;font-size:11px}.card-authoring textarea{min-height:64px;resize:vertical;line-height:1.4}.card-authoring button{min-height:32px;border:1px solid var(--line);border-radius:7px;padding:6px 10px;color:var(--ink);background:var(--surface);font-size:10px;font-weight:800;cursor:pointer}.card-authoring button:hover:not(:disabled){border-color:var(--accent);color:var(--accent)}.card-authoring button:disabled{opacity:.45;cursor:not-allowed}.card-authoring__workspace footer{display:flex;align-items:center;justify-content:space-between;gap:14px}.card-authoring__workspace footer p{margin:0;color:var(--muted);font-size:11px}.card-authoring__save-actions{display:flex;flex-wrap:wrap;justify-content:end;gap:8px}@media(max-width:900px){.card-authoring__layout{grid-template-columns:minmax(0,1fr)}}@media(max-width:600px){.card-authoring>header{flex-wrap:wrap}.card-authoring__list{max-height:14rem}.card-authoring__rules fieldset{grid-template-columns:repeat(3,minmax(0,1fr))}.card-authoring__workspace footer{align-items:start;flex-direction:column}.card-authoring__save-actions{justify-content:start}}.deck-lab__workspace-actions{min-width:250px;display:grid;justify-items:end;gap:5px}.deck-lab__workspace-actions>div{display:flex;gap:8px}.deck-lab__workspace-actions button{min-height:40px;border:1px solid var(--line);border-radius:8px;padding:8px 13px;color:var(--ink);background:var(--surface);font:inherit;font-size:12px;font-weight:750;cursor:pointer}.deck-lab__workspace-actions .deck-lab__save{min-width:104px;border-color:var(--accent);color:#fff;background:var(--accent)}.deck-lab__workspace-actions button:hover:not(:disabled){border-color:var(--accent);color:var(--accent);background:var(--surface)}.deck-lab__workspace-actions button:disabled{opacity:.55;cursor:not-allowed}.deck-lab__workspace-actions p{margin:0;color:var(--muted);font-size:11px;line-height:1.35;overflow-wrap:anywhere}.deck-lab__workspace-actions p.is-error{color:#9e1614}.deck-lab__workspace-actions p button{min-height:0;margin-left:7px;border:0;padding:0;color:var(--accent);background:transparent;font-size:inherit}.deck-lab__settings{width:100%;border-block:1px solid var(--line);padding:16px 0}.deck-lab__settings fieldset{min-width:0;display:grid;grid-template-columns:minmax(0,1.8fr) minmax(220px,.7fr);gap:16px 24px;margin:0;padding:0;border:0}.deck-lab__settings legend{grid-column:1 / -1;margin-bottom:-4px;padding:0;color:var(--ink);font-size:14px;font-weight:800}.deck-lab__settings-group{min-width:0;display:grid;gap:12px}.deck-lab__settings-group.is-identity{grid-column:1 / -1;grid-template-columns:minmax(180px,.65fr) minmax(260px,1.35fr)}.deck-lab__settings-group.is-rules{grid-template-columns:repeat(2,minmax(96px,1fr))}.deck-lab__settings label{min-width:0}.deck-lab__settings input{width:100%}.deck-lab__advanced{grid-column:1 / -1;border-top:1px solid var(--line);padding-top:10px}.deck-lab__advanced summary{width:fit-content;color:var(--accent);font-size:12px;font-weight:750;cursor:pointer}.deck-lab__advanced-content{display:grid;gap:16px;padding-top:12px}.deck-lab__advanced .is-rules{max-width:480px}.deck-lab__advanced-admin{display:flex;align-items:end;justify-content:space-between;gap:16px;border-top:1px solid var(--line);padding-top:12px}.deck-lab__advanced-admin label{width:min(360px,100%)}.deck-lab__advanced .deck-lab__delete{color:#a9231e}.deck-lab__launch{border-top:1px solid var(--line);padding-top:12px}.deck-lab__launch p{flex:1 1 100%;margin:0;font-size:12px;line-height:1.5}.deck-lab .deck-lab__controls label>span{font-size:12px;color:var(--ink)}.deck-lab .deck-lab__controls input,.deck-lab .deck-lab__controls select,.deck-lab .deck-lab__controls textarea{min-height:40px;font-size:13px}.deck-lab .deck-lab__controls button,.deck-lab__library header button{min-height:40px;font-size:12px}.deck-lab__library strong,.deck-lab .campaign-deck-header h2{overflow-wrap:anywhere}@media(max-width:960px){.deck-building-screen.is-inline .campaign-deck-layout{grid-template-columns:minmax(0,1.55fr) minmax(280px,.95fr);gap:16px}}@media(max-width:760px){.deck-lab.is-editor{padding-bottom:calc(84px + env(safe-area-inset-bottom))}.deck-building-screen.is-inline .campaign-deck-header{position:static}.deck-building-screen.is-inline .campaign-deck-header{grid-template-columns:auto minmax(0,1fr) auto;align-items:center}.deck-building-screen.is-inline .campaign-deck-header__meta{grid-column:auto}.deck-building-screen.is-inline .campaign-deck-count{min-width:0}.deck-building-screen.is-inline .campaign-deck-count span{display:block;margin:2px 0 0;font-size:9px}.deck-building-screen.is-inline .campaign-deck-header__meta{gap:0}.deck-lab__workspace-actions{position:fixed;right:0;bottom:0;left:0;z-index:30;min-width:0;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:8px;padding:10px max(12px,env(safe-area-inset-right)) max(10px,env(safe-area-inset-bottom)) max(12px,env(safe-area-inset-left));border-top:1px solid var(--line);background:var(--surface)}.deck-lab__workspace-actions>div{grid-column:2;grid-row:1}.deck-building-screen.is-inline .deck-lab__workspace-actions p{grid-column:1;grid-row:1;display:block}.deck-lab__workspace-actions p button{display:block;margin:2px 0 0}.deck-lab__workspace-actions button{min-height:44px}.deck-lab__workspace-actions .deck-lab__save{min-width:96px}.deck-lab__settings{padding:14px 0}.deck-lab .deck-lab__controls input,.deck-lab .deck-lab__controls textarea,.deck-building-screen.is-inline .campaign-deck-collection input{font-size:16px}.deck-lab__settings fieldset{grid-template-columns:minmax(0,1fr)}.deck-lab__settings legend,.deck-lab__advanced{grid-column:1}.deck-lab__settings-group.is-identity,.deck-lab__settings-group.is-rules{grid-template-columns:minmax(0,1fr)}.deck-lab__advanced-admin{align-items:stretch;flex-direction:column}.deck-lab__advanced .deck-lab__delete{width:100%;min-height:44px}}@media(max-width:600px){.deck-lab__library header{flex-wrap:wrap}.deck-lab__launch>label{flex:1 1 100%}.deck-lab__launch select{width:100%}}.deck-lab.is-editor{grid-template-columns:minmax(0,1fr)}.deck-lab__load-error{grid-column:1 / -1}.deck-overview{min-width:0;padding:24px;background:var(--surface);border:1px solid var(--line);border-radius:12px}.deck-overview>header{display:flex;align-items:start;justify-content:space-between;gap:24px}.deck-overview h2{margin:0;font-size:24px;overflow-wrap:anywhere}.deck-overview h3{margin:0;font-size:18px}.deck-overview p{font-size:14px;line-height:1.5;overflow-wrap:anywhere;max-width:70ch}.deck-overview button,.deck-lab__load-error button{min-height:44px;border:1px solid var(--line);border-radius:8px;padding:10px 14px;background:var(--surface);color:var(--ink);font:inherit;cursor:pointer}.deck-overview .deck-overview__edit{flex:0 0 auto;background:var(--accent);color:#fff;border-color:var(--accent);font-weight:750}.deck-overview__back{display:inline-block;margin-bottom:16px}.deck-overview__types{display:flex;flex-wrap:wrap;gap:8px 12px;padding:16px 0;margin:0;border-block:1px solid var(--line);font-size:14px}.deck-overview__types dd{margin:0 16px 0 0;font-weight:750}.deck-overview__breakdowns{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:32px;margin:24px 0}.deck-overview__breakdowns dl>div{display:flex;justify-content:space-between;gap:16px;padding:8px 0;border-bottom:1px solid var(--line);font-size:14px}.deck-overview__breakdowns dt{display:flex;align-items:center;gap:8px;min-width:0;overflow-wrap:anywhere}.deck-overview__icon{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;flex:0 0 24px}.deck-overview__icon img{width:100%;height:100%;object-fit:contain}.deck-overview__icon--environment{object-fit:contain}.deck-overview__breakdowns dd{margin:0;flex-shrink:0;font-weight:650}.deck-overview .deck-overview__help,.deck-overview .deck-overview__format{font-size:12px}.deck-overview button:focus-visible{outline:3px solid var(--focus);outline-offset:3px}.deck-overview button:disabled{cursor:not-allowed;color:var(--muted)}@media(max-width:900px){.deck-lab.has-selection>.deck-lab__library{display:none}.deck-overview{padding:16px}.deck-overview__back{display:inline-block;margin-bottom:16px}.deck-overview>header{flex-direction:column;gap:12px}.deck-overview__breakdowns{grid-template-columns:minmax(0,1fr);gap:24px}}.deck-lab{grid-template-columns:minmax(280px,320px) minmax(0,1fr);align-items:start}.deck-lab__library{position:sticky;top:16px}.deck-lab__library header{padding:16px;gap:12px}.deck-lab__library header h2{font-size:18px}.deck-lab__library header p{font-size:12px}.deck-lab__library header button{flex-shrink:0;min-height:44px}.deck-library__search{display:grid;gap:8px;padding:16px 16px 8px}.deck-library__search label{font-size:13px;font-weight:650}.deck-library__search input{width:100%;min-width:0;min-height:44px;padding:10px 12px;border:1px solid var(--line);border-radius:8px;color:var(--ink);background:var(--surface);font:inherit;font-size:14px}.deck-library__search input::placeholder{color:var(--muted);opacity:1}.deck-library__search button,.deck-library__state button,.deck-library__outside button{justify-self:start;min-height:44px;padding:8px 10px;border:1px solid var(--line);border-radius:7px;color:var(--accent);background:var(--surface);font:inherit;font-size:13px;cursor:pointer}.deck-library__state{display:grid;gap:8px;padding:0 16px 12px}.deck-library__state p{margin:0;color:var(--muted);font-size:13px;line-height:1.5;overflow-wrap:anywhere}.deck-library__state button:disabled{color:var(--muted);cursor:progress}.deck-lab__library ul{max-height:60dvh;overflow-y:auto;overscroll-behavior:contain;border-top:1px solid var(--line)}.deck-lab__library li button{gap:6px;padding:14px 16px;min-height:88px}.deck-lab__library li button strong{color:var(--ink);font-size:14px;line-height:1.4}.deck-lab__library li button .deck-library__metadata{color:var(--muted);font-size:12px;line-height:1.5;overflow-wrap:anywhere}.deck-library__readiness{font-size:12px;font-weight:650;line-height:1.4}.deck-lab__library li button.is-selected{box-shadow:inset 3px 0 var(--accent)}.deck-lab__library button:focus-visible,.deck-library__search input:focus-visible,.deck-library__outside button:focus-visible{outline:3px solid var(--focus);outline-offset:-3px}.deck-library__overview{min-width:0}.deck-library__outside{margin:0 0 12px;font-size:14px;line-height:1.5}.deck-library__outside button{margin-left:8px}.deck-lab__load-error{padding:14px;border:1px solid var(--line);border-radius:8px;background:var(--surface);font-size:14px;overflow-wrap:anywhere}@media(max-width:900px){.deck-lab{grid-template-columns:minmax(0,1fr)}.deck-lab__library{position:static}.deck-lab__library ul{max-height:55dvh}}.deck-lab:not(.is-editor)>.deck-lab__library{grid-column:1;grid-row:1 / span 2}.deck-lab:not(.is-editor)>.deck-library__overview,.deck-lab:not(.is-editor)>.deck-lab__placeholder,.deck-lab:not(.is-editor)>.deck-lab__load-error{grid-column:2}@media(max-width:900px){.deck-lab:not(.is-editor)>.deck-lab__library,.deck-lab:not(.is-editor)>.deck-library__overview,.deck-lab:not(.is-editor)>.deck-lab__placeholder,.deck-lab:not(.is-editor)>.deck-lab__load-error{grid-column:1;grid-row:auto}}.deck-edges{display:flex;flex-wrap:wrap;align-items:center;gap:16px 32px;padding:24px 0;border-bottom:1px solid var(--line)}.deck-edges__copy{flex:1 1 280px}.deck-edges__diagram{position:relative;flex:0 1 320px;width:100%;max-width:320px;margin-inline:auto;aspect-ratio:32 / 21}.deck-edges__diagram svg{display:block;width:100%;height:100%;overflow:visible}.deck-edges__diagram polygon{fill:var(--surface);stroke:var(--line);stroke-width:1.5}.deck-edges__diagram text{fill:var(--muted);font-size:11px;font-weight:700;letter-spacing:1px}.deck-edges__diagram dl{margin:0}.deck-edges__value{position:absolute;transform:translate(-50%,-50%);min-width:46px;padding:4px;text-align:center;background:var(--surface);border-radius:6px}.deck-edges__value dt{font-size:12px}.deck-edges__value abbr{text-decoration:none}.deck-edges__value dd{margin:0;font-size:22px;font-weight:750;font-variant-numeric:tabular-nums}.deck-edges__value.is-strongest{background:var(--accent);color:#fff}.deck-edges__value--east{left:85%;top:50%}.deck-edges__value--southeast{left:68%;top:82%}.deck-edges__value--southwest{left:32%;top:82%}.deck-edges__value--west{left:15%;top:50%}.deck-edges__value--northwest{left:32%;top:18%}.deck-edges__value--northeast{left:68%;top:18%}.deck-edges__partial{font-weight:650}.deck-edges__accessible{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.card-authoring__layout.is-focused{grid-template-columns:minmax(0,1fr)}.game-board-lab{max-width:1480px;margin:0 auto;padding:28px 32px 64px;color:var(--ink)}.game-board-lab__back{display:flex;gap:22px;margin-bottom:20px;font-size:12px}.game-board-lab__back a{color:var(--ink);text-underline-offset:3px}.game-board-lab__heading{display:flex;align-items:flex-end;justify-content:space-between;gap:28px;margin-bottom:18px}.game-board-lab__heading h1{margin:0;font-size:28px;line-height:1.1;letter-spacing:-.03em}.game-board-lab__heading p,.game-board-lab__library header p{max-width:68ch;margin:6px 0 0;color:var(--muted);font-size:13px;line-height:1.5}.game-board-lab__counts{display:flex;flex:0 0 auto;overflow:hidden;border:1px solid var(--line);border-radius:10px;background:var(--surface)}.game-board-lab__counts span{display:grid;gap:2px;min-width:92px;padding:10px 12px;border-left:1px solid var(--line);color:var(--muted);font-size:9px}.game-board-lab__counts span:first-child{border-left:0}.game-board-lab__counts b{color:var(--ink);font-size:17px;font-variant-numeric:tabular-nums}.game-board-lab button,.game-board-lab :is(input,textarea,select){min-height:38px;border:1px solid var(--line);border-radius:7px;color:var(--ink);background:var(--surface);font:inherit;font-size:12px}.game-board-lab button{padding:8px 12px;font-weight:700;cursor:pointer}.game-board-lab button:hover:not(:disabled){border-color:var(--primary);background:var(--surface-raised)}.game-board-lab :is(button,input,textarea,select,summary,[role=button]):focus-visible{outline:3px solid color-mix(in oklch,var(--focus),transparent 35%);outline-offset:2px}.game-board-lab button:disabled{color:var(--muted);cursor:not-allowed;opacity:.62}.game-board-lab__workspace{display:grid;grid-template-columns:minmax(300px,.72fr) minmax(480px,1.28fr);align-items:start;gap:18px}.game-board-lab__form,.game-board-lab__preview{border:1px solid var(--line);border-radius:12px;background:var(--surface)}.game-board-lab__form{overflow:hidden}.game-board-lab__form section{display:grid;gap:10px;padding:18px;border-bottom:1px solid var(--line)}.game-board-lab__form h2,.game-board-lab__preview h2,.game-board-lab__library h2{margin:0;font-size:16px}.game-board-lab__starting-counts{display:grid;gap:8px}.game-board-lab__starting-count{display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:11px;font-weight:700}.game-board-lab__starting-count>div{display:grid;grid-template-columns:38px 38px 38px;align-items:center}.game-board-lab__starting-count button{min-height:34px;padding:4px;font-size:16px}.game-board-lab__starting-count output{color:var(--ink);font-size:12px;font-variant-numeric:tabular-nums;text-align:center}.game-board-lab label{display:grid;gap:6px;min-width:0;font-size:11px;font-weight:700}.game-board-lab :is(input,textarea,select){box-sizing:border-box;width:100%;min-width:0;padding:8px 10px}.game-board-lab textarea{min-height:76px;resize:vertical;line-height:1.45}.game-board-lab__coordinates{min-height:126px!important;font-family:ui-monospace,SFMono-Regular,Menlo,monospace!important}.game-board-lab label small,.game-board-lab__form section>p,.game-board-lab__publication-note{margin:0;color:var(--muted);font-size:10px;font-weight:500;line-height:1.45}.game-board-lab__field-error{color:#8a0509;font-size:10px;line-height:1.35}.game-board-lab [aria-invalid=true]{border-color:#c0453b}.game-board-lab__publish{width:calc(100% - 36px);margin:18px 18px 8px;border-color:var(--accent)!important;color:#fff!important;background:var(--accent)!important}.game-board-lab__publish:hover:not(:disabled){background:#035!important;background:oklch(.31 .105 245)!important}.game-board-lab__publish:disabled{border-color:var(--line)!important;color:var(--muted)!important;background:var(--surface-raised)!important}.game-board-lab__publication-note{padding:0 18px 18px}.game-board-lab__error,.game-board-lab__published{margin:18px 18px 0;border-radius:8px;padding:11px 12px;font-size:11px;line-height:1.45}.game-board-lab__error{border:1px solid oklch(.56 .16 28);color:#760909;background:#ffe9e5}.game-board-lab__published{display:grid;gap:3px;color:#064425;background:#daf3e1}.game-board-lab__published code{overflow-wrap:anywhere}.game-board-lab__preview{position:sticky;top:18px;padding:18px}.game-board-lab__preview>header,.game-board-lab__library>header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.game-board-lab__preview header p{margin:4px 0 0;color:var(--muted);font-size:11px}.game-board-lab__layers{display:flex;flex-wrap:wrap;gap:6px;margin:16px 0 10px}.game-board-lab__layers button[aria-pressed=true]{border-color:var(--primary-deep);color:#fff;background:var(--primary-deep)}.game-board-lab__environment-select{grid-template-columns:auto minmax(150px,240px);align-items:center;justify-content:start;margin-bottom:6px}.game-board-lab__board{--match-board: oklch(.945 .006 60);--match-cell: var(--empty);--match-cell-stroke: oklch(.74 .012 60);display:block;width:100%;min-height:360px;max-height:56vh;margin-top:4px;border-radius:9px;background:var(--match-board)}.game-board-lab__add-target{fill:color-mix(in oklch,var(--primary-pale),transparent 66%);stroke:color-mix(in oklch,var(--primary),transparent 25%);stroke-width:1.8;stroke-dasharray:5 4;pointer-events:none}.game-board-lab__hex-action{fill:transparent;stroke:transparent;stroke-width:6;cursor:pointer}.game-board-lab__hex-action[data-add-available=false]{cursor:help}.game-board-lab__hex-action:hover,.game-board-lab__hex-action:focus-visible{stroke:var(--primary)}.game-board-lab__hex-action[aria-selected=true]{stroke:var(--accent);stroke-width:9;stroke-dasharray:4 3}.visual-board-editor:has(.visual-board-editor__tools button[aria-label="Remove tiles"][aria-pressed=true]) .game-board-lab__hex-action:hover,.visual-board-editor:has(.visual-board-editor__tools button[aria-label="Remove tiles"][aria-pressed=true]) .game-board-lab__hex-action:focus-visible{stroke:#c0453b}.game-board-lab__legend{display:flex;flex-wrap:wrap;gap:12px;margin-top:10px;color:var(--muted);font-size:10px}.game-board-lab__legend span{display:flex;align-items:center;gap:5px}.game-board-lab__legend i{width:12px;height:12px;border-radius:3px;background:var(--surface)}.game-board-lab__legend i[data-kind=human]{border:2px solid var(--primary-deep)}.game-board-lab__legend i[data-kind=ai]{border:2px solid var(--accent)}.game-board-lab__legend i[data-kind=environment]{background:var(--primary-pale)}.game-board-lab__legend i[data-kind=open]{border:1px solid var(--line)}.game-board-lab__empty-preview{display:grid;min-height:360px;place-items:center;margin-top:12px;border-radius:9px;color:var(--muted);background:var(--surface-raised);font-size:12px}.game-board-lab__library{margin-top:18px;border-top:1px solid var(--line);padding-top:20px}.game-board-lab__library>p{color:var(--muted);font-size:12px}.game-board-lab__library ul{margin:16px 0 0;border-top:1px solid var(--line);padding:0;list-style:none}.game-board-lab__library li{min-height:54px;border-bottom:1px solid var(--line)}.game-board-lab__board-link{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:18px;min-height:54px;padding:8px 2px;color:inherit;text-decoration:none}.game-board-lab__board-link:hover{background:var(--surface-raised)}.game-board-lab__library li div{display:flex;align-items:baseline;gap:10px;min-width:0}.game-board-lab__library li strong{font-size:12px}.game-board-lab__library li code,.game-board-lab__library li span{color:var(--muted);font-size:10px}.game-board-lab__library li time{color:var(--muted);font-size:11px}.game-board-lab__library li :is(code,span){overflow-wrap:anywhere}.game-board-lab__create{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;min-height:38px;padding:0 12px;border:1px solid var(--accent);border-radius:7px;color:#fff;background:var(--accent);font-size:12px;font-weight:700;text-decoration:none}.game-board-lab__create:hover{background:var(--primary-deep)}.game-board-lab a:focus-visible{outline:3px solid var(--focus);outline-offset:3px}.game-board-lab__empty-library{padding:24px 0;font-size:13px}.game-board-lab__published a{color:inherit;text-underline-offset:3px}.game-board-lab__badge{display:inline-flex;width:fit-content;border-radius:999px;padding:3px 7px;color:#653400!important;color:oklch(.38 .11 58)!important;background:#fce4c4;font-size:9px!important;font-weight:800}.game-board-lab__title-row{display:flex;align-items:center;flex-wrap:wrap;gap:10px}.game-board-lab__detail-heading{align-items:center}.game-board-lab__detail-actions{display:flex;flex:0 0 auto;flex-wrap:wrap;justify-content:flex-end;gap:8px}.game-board-lab__play,.game-board-lab__play-disabled,.game-board-lab__clone{display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;min-height:38px;border-radius:7px;padding:0 13px;font-size:12px;font-weight:700;text-decoration:none}.game-board-lab__play{color:#fff;background:var(--accent)}.game-board-lab__play:hover{background:var(--primary-deep)}.game-board-lab__clone{border:1px solid var(--line);color:var(--ink);background:var(--surface)}.game-board-lab__clone:hover{border-color:var(--primary);background:var(--surface-raised)}.game-board-lab__play-disabled{color:var(--muted);background:var(--surface-raised);cursor:not-allowed}.game-board-lab__disabled-reason{margin:-8px 0 18px auto;max-width:60ch;color:var(--muted);font-size:11px;text-align:right}.game-board-lab__detail-published{margin:0 0 18px}.game-board-lab__source-note{margin:-6px 0 18px;border-left:3px solid var(--primary);padding:8px 11px;color:var(--muted);background:var(--surface-raised);font-size:11px;line-height:1.45}.game-board-lab__source-note strong{color:var(--ink)}.game-board-lab__source-error{margin:-6px 0 18px}.game-board-lab__detail{display:grid;grid-template-columns:minmax(280px,.72fr) minmax(420px,1.28fr);align-items:start;gap:18px}.game-board-lab__facts,.game-board-lab__detail-preview{min-width:0;border:1px solid var(--line);border-radius:12px;background:var(--surface)}.game-board-lab__facts{overflow:hidden}.game-board-lab__facts h2{margin:0;border-bottom:1px solid var(--line);padding:16px 18px;font-size:16px}.game-board-lab__facts dl{margin:0}.game-board-lab__facts dl>div{display:grid;grid-template-columns:minmax(110px,.7fr) minmax(0,1.3fr);gap:16px;padding:9px 18px;border-bottom:1px solid var(--line)}.game-board-lab__facts dl>div:last-child{border-bottom:0}.game-board-lab__facts dt{color:var(--muted);font-size:10px;font-weight:700}.game-board-lab__facts dd{min-width:0;margin:0;font-size:11px;overflow-wrap:anywhere}.game-board-lab__copy-code{display:flex;align-items:center;gap:7px;min-width:0}.game-board-lab__copy-code code{min-width:0;overflow-wrap:anywhere}.game-board-lab__copy-code button{min-height:26px;padding:3px 7px;font-size:9px}.game-board-lab__detail-preview{padding:10px}.game-board-lab__detail-preview .published-board-preview{background:transparent}.game-board-lab__detail-preview .published-board-preview svg{max-height:520px}.game-board-lab__not-found{max-width:560px;padding:42px 0}.game-board-lab__not-found h1{margin:0;font-size:28px}.game-board-lab__not-found p{margin:10px 0 20px;color:var(--muted);line-height:1.5}.visual-board-editor{position:sticky;top:18px;min-width:0;max-width:100%;overflow:hidden;border:1px solid var(--line);border-radius:12px;background:var(--surface)}.visual-board-editor__heading{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:16px 16px 12px}.visual-board-editor__heading h2{margin:0;font-size:16px}.visual-board-editor__heading p{margin:4px 0 0;color:var(--muted);font-size:11px}.visual-board-editor__heading strong{flex:0 0 auto;padding-right:3px;color:var(--muted);font-size:11px;font-variant-numeric:tabular-nums;white-space:nowrap}.visual-board-editor__tools{display:flex;width:100%;min-width:0;box-sizing:border-box;align-items:center;gap:4px;overflow-x:auto;padding:0 16px 12px;scrollbar-width:thin}.visual-board-editor__tools button{min-height:34px;white-space:nowrap}.visual-board-editor__tools button[aria-pressed=true],.visual-board-editor__brushes button[aria-pressed=true]{border-color:var(--primary-deep);color:#fff;background:var(--primary-deep)}.visual-board-editor__tool-separator{width:1px;height:22px;flex:0 0 auto;margin:0 3px;background:var(--line)}.visual-board-editor__environment-tools{border-block:1px solid var(--line);padding:10px 16px 12px;background:color-mix(in oklch,var(--surface-raised),var(--surface) 35%)}.visual-board-editor__brushes{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:10px}.visual-board-editor__brushes button{min-height:32px;padding-block:6px}.visual-board-editor__palette{display:grid;width:100%;min-width:0;box-sizing:border-box;grid-auto-flow:column;grid-auto-columns:minmax(82px,1fr);gap:6px;overflow-x:auto;padding:2px 2px 7px;scroll-snap-type:x proximity}.game-board-lab .visual-board-editor__swatch{display:grid;justify-items:start;gap:6px;min-height:74px;padding:6px;scroll-snap-align:start;color:var(--muted);font-size:9px;text-align:left}.game-board-lab .visual-board-editor__swatch[aria-selected=true]{border-color:var(--primary-deep);color:var(--ink);background:var(--surface)}.visual-board-editor__swatch-art{display:grid;width:100%;height:36px;place-items:center;border-radius:4px;color:#fff;background-color:var(--primary-deep);background-position:center;background-size:cover;font-size:10px;font-weight:850;text-shadow:0 1px 2px color-mix(in oklch,black,transparent 30%)}.visual-board-editor__viewport-shell{position:relative}.visual-board-editor__view-controls{position:absolute;z-index:2;top:10px;right:10px;display:flex;align-items:center;gap:3px;padding:3px;border-radius:8px;background:color-mix(in oklch,var(--surface),transparent 5%);box-shadow:0 2px 6px color-mix(in oklch,var(--ink),transparent 84%)}.visual-board-editor__view-controls button{min-width:32px;min-height:32px;padding:5px 8px}.visual-board-editor__view-controls output{min-width:42px;color:var(--muted);font-size:10px;font-variant-numeric:tabular-nums;text-align:center}.visual-board-editor__viewport{position:relative;min-height:370px;overflow:hidden;border-block:1px solid var(--line);background:var(--surface-raised);cursor:grab;touch-action:none}.visual-board-editor__viewport[data-panning=true]{cursor:grabbing}.visual-board-editor__canvas{min-height:inherit;transform-origin:center;transition:transform .18s var(--ease-out)}.visual-board-editor__canvas .game-board-lab__board{min-height:370px;max-height:58vh;margin:0;border-radius:0;background:transparent}.visual-board-editor__view-hint{margin:0;padding:6px 12px;color:var(--muted);font-size:9px;text-align:center}.game-board-lab__board g[data-selected=true] .game-board-lab__hex-action{stroke:var(--focus);stroke-width:7}.visual-board-editor__lower{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);border-top:1px solid var(--line)}.visual-board-editor__lower aside{min-width:0;padding:13px 16px 16px}.visual-board-editor__lower aside+aside{border-left:1px solid var(--line)}.visual-board-editor__lower h3{margin:0 0 8px;font-size:12px}.visual-board-editor__lower :is(p,ul){margin:6px 0;color:var(--muted);font-size:10px;line-height:1.45}.visual-board-editor__lower ul{padding-left:16px;color:#8a0509}.visual-board-editor__inspector code{color:var(--ink);font-size:11px}.visual-board-editor__tag-list{display:flex;flex-wrap:wrap;gap:4px;margin:9px 0}.visual-board-editor__tag-list span{border-radius:999px;padding:3px 7px;color:var(--primary-deep);background:var(--primary-pale);font-size:9px;font-weight:750}.visual-board-editor__tag-list em{color:var(--muted);font-size:10px}.visual-board-editor__status .is-ready{color:#034d2a}.visual-board-editor__status .is-warning{color:#6c4700;color:oklch(.43 .1 75)}.visual-board-editor__status .visual-board-editor__publication-state{color:var(--ink);font-weight:700}.visual-board-editor__lower button{min-height:32px;margin-top:5px;padding-block:6px}.visual-board-editor[aria-busy=true]{opacity:.78}@media(max-width:900px){.game-board-lab__heading{align-items:flex-start;flex-direction:column}.game-board-lab__counts{width:100%}.game-board-lab__counts span{flex:1;min-width:0}.game-board-lab__workspace{grid-template-columns:minmax(0,1fr)}.game-board-lab__preview,.visual-board-editor{position:static;grid-row:1}.game-board-lab__detail{grid-template-columns:minmax(0,1fr)}.game-board-lab__detail-preview{grid-row:1}}@media(max-width:560px){.game-board-lab{padding:20px 14px 44px}.game-board-lab__heading h1{font-size:24px}.game-board-lab__counts span{padding-inline:8px}.game-board-lab__preview,.game-board-lab__form section{padding:14px}.game-board-lab__preview>header,.game-board-lab__library>header{align-items:stretch;flex-direction:column}.game-board-lab__environment-select{grid-template-columns:minmax(0,1fr)}.game-board-lab__starting-count{align-items:stretch;flex-direction:column;gap:5px}.game-board-lab__starting-count>div{grid-template-columns:1fr 54px 1fr}.game-board-lab__board{min-height:300px}.game-board-lab__board-link{grid-template-columns:minmax(0,1fr);gap:4px}.visual-board-editor__viewport,.visual-board-editor__canvas,.visual-board-editor__canvas .game-board-lab__board{min-height:320px}.visual-board-editor__lower{grid-template-columns:minmax(0,1fr)}.visual-board-editor__lower aside+aside{border-top:1px solid var(--line);border-left:0}.visual-board-editor__heading,.visual-board-editor__tools,.visual-board-editor__environment-tools{padding-inline:12px}.game-board-lab__library li div{align-items:flex-start;flex-direction:column;gap:2px}.game-board-lab__detail-heading{align-items:stretch;flex-direction:column}.game-board-lab__detail-actions{display:grid;width:100%}.game-board-lab__play,.game-board-lab__play-disabled,.game-board-lab__clone{width:100%;box-sizing:border-box}.game-board-lab__disabled-reason{margin:-8px 0 18px;text-align:left}.game-board-lab__facts dl>div{grid-template-columns:minmax(96px,.7fr) minmax(0,1.3fr);padding-inline:14px}}.game-board-lab__library-heading{align-items:center;flex-direction:row;flex-wrap:wrap;gap:12px}@media(prefers-reduced-motion:reduce){.visual-board-editor__canvas{transition:none}}body:has(.app-settings-dialog[open]){overflow:hidden}.app-settings-trigger{min-height:38px;padding:8px 12px;border:1px solid var(--line);border-radius:8px;color:var(--ink);background:var(--surface);font-size:12px;font-weight:750;cursor:pointer;transition:border-color .17s var(--ease-out),background .17s var(--ease-out)}.app-settings-trigger:hover{border-color:var(--muted);background:var(--surface-raised)}.app-settings-dialog{width:100%;max-width:none;height:100%;max-height:none;margin:0;padding:24px;border:0;color:var(--ink);background:transparent}.app-settings-dialog[open]{display:grid;place-items:center}.app-settings-dialog::backdrop{background:color-mix(in oklch,var(--ink),transparent 34%)}.app-settings-panel{width:min(440px,100%);overflow:hidden;border:1px solid var(--line);border-radius:12px;background:var(--surface);box-shadow:0 6px 8px color-mix(in oklch,var(--ink),transparent 78%)}.app-settings-panel>header{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:20px 22px 18px;border-bottom:1px solid var(--line)}.app-settings-panel>header span{color:var(--muted);font-size:11px;font-weight:750}.app-settings-panel h2{margin:4px 0 0;font-size:22px;letter-spacing:-.025em}.app-settings-panel>header button{width:40px;height:40px;border:0;border-radius:8px;color:var(--muted);background:var(--surface-raised);font-size:24px;line-height:1;cursor:pointer}.app-settings-content{padding:22px}.app-settings-content>section+section{padding-top:18px;margin-top:18px;border-top:1px solid var(--line)}.world-atlas-settings{display:grid;gap:14px}.world-atlas-settings h3{margin:0;font-size:13px}.world-atlas-settings p{max-width:52ch;margin:6px 0 0;color:var(--muted);font-size:12px;line-height:1.55}.world-atlas-settings a{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:42px;padding:9px 13px;border:1px solid var(--line);border-radius:8px;color:var(--ink);background:var(--surface-raised);font-size:12px;font-weight:750;text-decoration:none;transition:border-color .17s var(--ease-out),background .17s var(--ease-out)}.world-atlas-settings a:hover{border-color:var(--primary);background:var(--primary-pale)}.world-atlas-settings a:focus-visible{outline:3px solid color-mix(in oklch,var(--focus),transparent 45%);outline-offset:2px}.saved-data-settings{display:grid;gap:18px}.saved-data-settings h3{margin:0;font-size:13px}.saved-data-settings p{max-width:52ch;margin:6px 0 0;color:var(--muted);font-size:12px;line-height:1.55}.reset-progress-button{justify-self:start;min-height:42px;padding:9px 13px;border:1px solid color-mix(in oklch,var(--primary-deep),var(--line) 45%);border-radius:8px;color:var(--primary-deep);background:transparent;font-size:12px;font-weight:750;cursor:pointer}.reset-progress-button:hover{background:color-mix(in oklch,var(--primary-pale),transparent 35%)}.reset-progress-confirmation{display:grid;gap:16px;padding:16px;border:1px solid color-mix(in oklch,var(--primary-deep),var(--line) 55%);border-radius:10px;background:var(--surface-raised)}.reset-progress-confirmation strong{font-size:13px}.reset-progress-confirmation p{margin-top:5px}.reset-progress-actions{display:flex;justify-content:flex-end;gap:8px}.reset-progress-actions button{min-height:40px;padding:8px 12px;border:1px solid var(--line);border-radius:8px;background:var(--surface);font-size:12px;font-weight:750;cursor:pointer}.reset-progress-actions button:hover{background:var(--surface-raised)}.reset-progress-actions .is-destructive{border-color:var(--primary-deep);color:var(--primary-deep)}.app-shell--campaign .app-settings-trigger{border-color:#b8a488;color:var(--campaign-limestone-raised);background:transparent}.app-shell--campaign .app-settings-trigger:hover{border-color:var(--campaign-bronze);background:var(--campaign-aegean)}.app-shell--campaign .app-settings-panel h2{font-family:ui-serif,Georgia,Cambria,Times New Roman,serif}@media(max-width:620px){.app-settings-trigger{min-height:42px;padding-inline:10px;font-size:11px}.app-settings-dialog{place-items:end stretch;padding:0}.app-settings-dialog[open]{place-items:end stretch}.app-settings-panel{width:100%;max-height:82dvh;overflow-y:auto;border-width:1px 0 0;border-radius:14px 14px 0 0;padding-bottom:max(8px,env(safe-area-inset-bottom));box-shadow:0 -6px 8px color-mix(in oklch,var(--ink),transparent 78%);animation:app-settings-sheet-in .22s var(--ease-out)}.app-settings-panel:before{content:"";display:block;width:36px;height:4px;margin:10px auto 0;border-radius:999px;background:var(--line)}.app-settings-panel>header{padding:10px 14px 12px}.app-settings-panel>header button{width:44px;height:44px}.app-settings-content{padding:20px 14px}.world-atlas-settings a{min-height:46px}.reset-progress-button{width:100%;min-height:46px}.reset-progress-actions{display:grid;grid-template-columns:1fr 1fr}.reset-progress-actions button{min-height:44px}}@keyframes app-settings-sheet-in{0%{transform:translateY(18px);opacity:0}to{transform:translateY(0);opacity:1}}@media(prefers-reduced-motion:reduce){.app-settings-panel{animation:none}}.visual-qa{min-height:100vh;padding:28px;color:var(--ink);background:var(--bg)}.visual-qa--embedded{min-height:0}.visual-qa__header{max-width:1180px;display:flex;align-items:start;justify-content:space-between;gap:20px;margin:0 auto 24px}.visual-qa__header p,.visual-qa__section>header>p{margin:0 0 5px;color:var(--muted);font-size:12px;font-weight:700}.visual-qa__header h1,.visual-qa__section h2{margin:0;font-family:var(--font-display);letter-spacing:-.025em}.visual-qa__header h1{font-size:32px}.visual-qa__header span{display:block;max-width:70ch;margin-top:8px;color:var(--muted);font-size:14px;line-height:1.5}.visual-qa__header>a{flex:0 0 auto;color:var(--accent);font-weight:700}.visual-qa__links{max-width:1180px;display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:10px;margin:0 auto 28px}.visual-qa__links a{min-height:84px;display:grid;align-content:start;gap:5px;border:1px solid var(--line);border-radius:10px;padding:13px;color:var(--ink);background:var(--surface);text-decoration:none}.visual-qa__links a:hover{border-color:var(--accent)}.visual-qa__links a:focus-visible{outline:3px solid color-mix(in oklch,var(--focus),transparent 45%);outline-offset:2px}.visual-qa__links strong{font-size:14px}.visual-qa__links span{color:var(--muted);font-size:12px;line-height:1.35}.visual-qa__section{max-width:1180px;margin:0 auto 28px;border-top:1px solid var(--line);padding-top:22px}.visual-qa__section h2{font-size:22px}.visual-qa__city-fixture{position:relative;overflow:hidden;max-width:1180px;height:clamp(560px,78vh,720px);margin-top:16px;border-radius:10px}.visual-qa__city-fixture .campaign-city{position:absolute;inset:0;overflow:hidden;width:auto;max-width:none;height:100%;margin:0;padding:0;box-shadow:none}.visual-qa__city-fixture .campaign-city>header{top:16px;left:16px;width:min(720px,calc(100% - 32px))}.visual-qa__city-fixture--market{height:clamp(640px,86vh,820px)}.visual-qa__city-fixture .campaign-market-screen{padding-top:24px}.visual-qa__draw-fixture{overflow:hidden;max-width:780px;margin-top:16px;border:1px solid var(--line);border-radius:10px;background:var(--surface)}.visual-qa__draw-fixture>header{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:13px 14px}.visual-qa__draw-fixture h3,.visual-qa__draw-fixture p{margin:0}.visual-qa__draw-fixture h3{font-size:14px}.visual-qa__draw-fixture p{max-width:64ch;margin-top:4px;color:var(--muted);font-size:12px;line-height:1.4}.visual-qa__draw-fixture>header>button{flex:0 0 auto;min-height:36px;border:1px solid var(--primary-deep);border-radius:8px;padding:7px 12px;color:#fff;background:var(--primary-deep);font-size:11px;font-weight:750;cursor:pointer;transition:background .16s var(--ease-out),border-color .16s var(--ease-out)}.visual-qa__draw-fixture>header>button:hover{border-color:var(--ink);background:var(--ink)}.visual-qa__draw-stage{overflow:hidden;border-top:1px solid var(--line);padding:14px;background:var(--surface-raised)}.visual-qa__draw-stage .player-hand-presentation{align-items:center}.visual-qa__draw-stage .deck-pile{flex-basis:66px}.visual-qa__draw-stage .hand-list{flex-flow:row nowrap;min-width:0;scroll-snap-type:x proximity}.visual-qa__draw-stage .hand-list:focus-visible{outline:3px solid color-mix(in oklch,var(--focus),transparent 45%);outline-offset:-2px}.visual-qa__draw-stage .hand-card-slot{flex:0 0 154px;scroll-snap-align:start}.visual-qa__capture-fixture,.visual-qa__momentum-fixture,.visual-qa__mixed-family-fixture{overflow:hidden;margin-top:16px;border:1px solid var(--line);border-radius:10px;background:var(--surface)}.visual-qa__capture-fixture>header,.visual-qa__momentum-fixture>header,.visual-qa__mixed-family-fixture>header{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:13px 14px}.visual-qa__capture-fixture h3,.visual-qa__momentum-fixture h3,.visual-qa__capture-fixture p,.visual-qa__momentum-fixture p,.visual-qa__mixed-family-fixture h3,.visual-qa__mixed-family-fixture p{margin:0}.visual-qa__capture-fixture h3,.visual-qa__momentum-fixture h3,.visual-qa__mixed-family-fixture h3{font-size:14px}.visual-qa__capture-fixture p,.visual-qa__momentum-fixture p,.visual-qa__mixed-family-fixture p{max-width:64ch;margin-top:4px;color:var(--muted);font-size:12px;line-height:1.4}.visual-qa__capture-controls,.visual-qa__capture-controls>div{display:flex;align-items:center;gap:5px}.visual-qa__capture-controls button{min-height:34px;border:1px solid var(--line);border-radius:8px;padding:6px 10px;color:var(--muted);background:var(--surface);font-size:11px;font-weight:750;cursor:pointer}.visual-qa__capture-controls button:hover{color:var(--ink);border-color:var(--primary)}.visual-qa__capture-controls button:focus-visible{outline:3px solid color-mix(in oklch,var(--focus),transparent 45%);outline-offset:2px}.visual-qa__capture-controls button[aria-pressed=true],.visual-qa__capture-controls>button{color:#fff;border-color:var(--primary-deep);background:var(--primary-deep)}.visual-qa__board-theme{display:flex;flex-wrap:wrap;align-items:end;gap:10px 14px;margin-top:16px;border:1px solid var(--line);border-radius:10px;padding:10px 12px;background:var(--surface)}.visual-qa__board-theme label{display:grid;gap:4px;color:var(--muted);font-size:11px;font-weight:700}.visual-qa__board-theme label.is-overridden{color:var(--ink)}.visual-qa__board-theme select{min-height:34px;border:1px solid var(--line);border-radius:8px;padding:5px 8px;color:var(--ink);background:var(--surface);font:inherit}.visual-qa__board-theme input[type=color]{width:56px;height:34px;border:1px solid var(--line);border-radius:8px;padding:2px;background:var(--surface);cursor:pointer}.visual-qa__board-theme-actions{display:flex;gap:6px}.visual-qa__board-theme-actions button{min-height:34px;border:1px solid var(--line);border-radius:8px;padding:6px 10px;color:var(--ink);background:var(--surface);font-size:11px;font-weight:750;cursor:pointer}.visual-qa__board-theme-actions button:hover:not(:disabled){border-color:var(--primary)}.visual-qa__board-theme-actions button:disabled{color:var(--muted);cursor:default;opacity:.6}.visual-qa__board-theme :is(select,input,button):focus-visible{outline:3px solid color-mix(in oklch,var(--focus),transparent 45%);outline-offset:2px}.visual-qa__board-theme-layer{flex-basis:100%;overflow-wrap:anywhere;color:var(--muted);font-size:11px}.visual-qa__capture-stage{position:relative;height:min(56vh,520px);min-height:390px;border-top:1px solid var(--line);background:var(--match-board)}.visual-qa__capture-score{position:absolute;z-index:2;top:12px;left:12px;justify-self:auto}.visual-qa__capture-stage .board-wrap{height:100%;max-height:none}.visual-qa__match-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:20px;margin-top:16px}.visual-qa__match-grid>article{min-width:0;border:1px solid var(--line);border-radius:10px;background:var(--surface)}.visual-qa__match-grid h3{margin:0;border-bottom:1px solid var(--line);padding:10px 12px;font-size:14px}.visual-qa__match-grid .match-shell{min-height:610px}.visual-qa__presentation-toggle{display:inline-flex;gap:4px;margin-top:8px}.visual-qa__presentation-toggle button{border:1px solid var(--line);border-radius:8px;padding:6px 12px;color:var(--muted);background:var(--surface);font-size:11px;font-weight:700;cursor:pointer;transition:color .16s var(--ease-out),border-color .16s var(--ease-out)}.visual-qa__presentation-toggle button:hover{color:var(--ink)}.visual-qa__presentation-toggle button[aria-pressed=true]{color:var(--ink);border-color:var(--primary);background:var(--primary-pale)}.visual-qa__backdrop-picker{display:inline-flex;align-items:center;gap:6px;margin-left:10px;color:var(--muted);font-size:11px;font-weight:700}.visual-qa__backdrop-picker select{border:1px solid var(--line);border-radius:8px;padding:5px 8px;color:var(--ink);background:var(--surface);font:inherit;font-size:11px}@media(max-width:760px){.visual-qa{padding:18px 14px}.visual-qa__header{display:grid}.visual-qa__draw-fixture>header{align-items:start;flex-direction:column}.visual-qa__capture-fixture>header,.visual-qa__momentum-fixture>header,.visual-qa__mixed-family-fixture>header,.visual-qa__capture-controls{align-items:stretch;flex-direction:column}.visual-qa__capture-controls>div{flex-wrap:wrap}.visual-qa__capture-stage{min-height:360px}.visual-qa__match-grid{grid-template-columns:1fr}}.match-results-lab{display:grid;gap:16px;padding:28px;color:var(--ink);background:var(--bg)}.match-results-lab>*{width:100%;max-width:1180px;margin-inline:auto}.match-results-lab__header p{margin:0 0 5px;color:var(--muted);font-size:12px;font-weight:700}.match-results-lab__header h1{margin:0;font-family:var(--font-display);font-size:32px;letter-spacing:-.025em}.match-results-lab__header span{display:block;max-width:70ch;margin-top:8px;color:var(--muted);font-size:14px;line-height:1.5}.match-results-lab__controls{display:flex;flex-wrap:wrap;align-items:center;gap:10px 14px;border:1px solid var(--line);border-radius:10px;padding:10px 12px;background:var(--surface)}.match-results-lab__controls [role=group]{display:flex;flex-wrap:wrap;gap:6px}.match-results-lab__controls label{display:inline-flex;align-items:center;gap:6px;color:var(--ink);font-size:12px;font-weight:700}.match-results-lab__controls label.is-inactive{color:var(--muted)}.match-results-lab__controls select{min-height:34px;border:1px solid var(--line);border-radius:8px;padding:5px 8px;color:var(--ink);background:var(--surface);font:inherit}.match-results-lab__controls button{min-height:34px;border:1px solid var(--line);border-radius:8px;padding:6px 10px;color:var(--muted);background:var(--surface);font-size:11px;font-weight:750;cursor:pointer}.match-results-lab__controls button:hover{color:var(--ink);border-color:var(--primary)}.match-results-lab__controls button[aria-pressed=true],.match-results-lab__controls>button{color:#fff;border-color:var(--primary-deep);background:var(--primary-deep)}.match-results-lab__controls :is(select,input,button):focus-visible{outline:3px solid color-mix(in oklch,var(--focus),transparent 45%);outline-offset:2px}.match-results-lab__stage{position:relative;overflow:hidden;height:clamp(620px,82vh,820px);border-radius:10px;isolation:isolate}.match-results-lab__stage>.play-area{position:relative;z-index:0;height:100%;min-height:0;overflow:hidden}.match-results-lab__overlay{position:absolute;inset:0;z-index:2}.match-results-lab__overlay .reward-reveal{position:absolute}.match-results-lab__effects{position:absolute;inset:0;z-index:3;overflow:hidden;pointer-events:none}.match-results-lab__stage.has-celebration .victory-confetti{display:none}.match-results-lab__celebrations{flex:1 0 100%;display:grid;gap:6px;border-top:1px solid var(--line);padding-top:10px}.match-results-lab__celebrations [role=group]{align-items:center}.match-results-lab__celebrations [role=group]>span{margin-right:4px;font-size:12px;font-weight:700}.match-results-lab__celebrations p{margin:0;color:var(--muted);font-size:12px;line-height:1.45}.match-results-lab__overlay .reward-reveal__confetti{--confetti-rise: max(0px, calc(clamp(620px, 82vh, 820px) - 328px) )}@media(max-width:640px){.match-results-lab{padding:18px 16px}.match-results-lab__header h1{font-size:26px}}:root{--skeleton-fill: oklch(.89 .006 60);--skeleton-sheen: oklch(1 0 0 / .72)}.app-shell--campaign{--skeleton-fill: oklch(.19 .048 230 / .78);--skeleton-sheen: oklch(.74 .06 205 / .22)}.skeleton{display:block;border-radius:6px;background-color:var(--skeleton-fill);background-image:linear-gradient(90deg,transparent 18%,var(--skeleton-sheen) 50%,transparent 82%);background-repeat:no-repeat;background-size:220% 100%;background-position:150% 0;animation:skeleton-sheen 1.5s linear infinite}@keyframes skeleton-sheen{to{background-position:-50% 0}}.boot-status{position:fixed;z-index:30;inset:auto auto 22px 22px;display:flex;align-items:center;gap:8px;margin:0;border-radius:8px;padding:9px 12px;color:var(--muted);background:var(--surface);box-shadow:0 4px 8px #1d140d1f;font-size:11px;font-weight:750}.boot-status__pulse{width:7px;height:7px;flex:0 0 auto;border-radius:50%;background:var(--accent);animation:boot-status-pulse 1.2s ease-in-out infinite}.app-shell--campaign .boot-status{color:var(--campaign-limestone-raised);background:#000d17f0;background:oklch(.15 .043 235 / .94);box-shadow:0 4px 8px #0004084d;box-shadow:0 4px 8px oklch(.1 .03 235 / .3)}.app-shell--campaign .boot-status__pulse{background:var(--campaign-world-accent)}@keyframes boot-status-pulse{0%,to{opacity:.35}50%{opacity:1}}.boot-topbar__switch{width:196px;height:40px;border-radius:9px}.boot-topbar__connection{width:132px;height:12px;margin-left:auto;border-radius:6px}.boot-topbar__button{width:78px;height:38px;border-radius:8px}.boot-topbar__button--rules{width:62px}.boot-topbar__button--settings{width:76px}.boot-topbar__button--roster{width:112px}.boot-topbar__button--setup{display:none}.campaign-hub--skeleton{pointer-events:none}.boot-map__record{width:74px;height:11px}.boot-map__pips{width:62px;height:7px}.boot-map__location{color:var(--campaign-limestone-muted)}.boot-map__location .map-node{border-color:#697b83;background:#092531}.boot-world__name{width:220px;height:26px}.boot-world__summary{width:260px;height:11px;margin-top:9px}.boot-world__record{width:148px;height:10px;margin-top:9px}.boot-dock{pointer-events:none}.boot-dock>.skeleton{height:46px;border-radius:9px}.boot-dock__wide{width:178px}.boot-dock__button{width:108px}.boot-lab__sections{pointer-events:none}.boot-lab__section{width:92px;height:34px;border-radius:7px}.boot-lab__body{display:grid;grid-template-columns:minmax(0,1fr);gap:24px;min-height:calc(100vh - 123px);padding:30px 32px 48px;background:var(--bg)}.boot-lab__body--railed{grid-template-columns:minmax(0,1fr) 290px}.boot-lab__main{min-width:0}.boot-lab__title{width:320px;height:30px}.boot-lab__lede{width:min(520px,100%);height:12px;margin-top:12px}.boot-lab__band{height:64px;margin-top:22px;border-radius:10px}.boot-lab__grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(126px,1fr));gap:12px;margin-top:22px}.boot-lab__card{height:158px;border-radius:10px}.boot-lab__rail{display:grid;align-content:start;gap:12px}.boot-lab__rail-title{height:18px}.boot-lab__rail-block{height:104px;border-radius:10px}.boot-lab__rail-action{height:44px;border-radius:8px}.catalog-skeleton__intro{min-width:0;flex:1 1 auto}.catalog-skeleton__kicker{width:108px;height:10px}.catalog-skeleton__title{width:232px;height:28px;margin-top:8px}.catalog-skeleton__lede{width:min(66ch,100%);height:12px;margin-top:10px}.catalog-skeleton__lede--short{width:min(42ch,100%)}.catalog-skeleton__tile{width:68px;height:34px}.catalog-skeleton__field{height:38px;align-self:end}.catalog-skeleton__card{pointer-events:none}.catalog-skeleton__art{width:112px;height:106px;border-radius:8px}.catalog-skeleton__eyebrow{width:132px;height:8px}.catalog-skeleton__name{width:168px;height:17px;margin:9px 0 8px}.catalog-skeleton__line{height:9px;margin-bottom:7px}.catalog-skeleton__line--short{width:62%}@media(max-width:900px){.boot-lab__body--railed{grid-template-columns:minmax(0,1fr)}.boot-lab__rail{display:none}}@media(max-width:620px){.boot-topbar__switch{order:3;width:100%;height:42px}.boot-topbar__connection{display:none}.boot-topbar__button{height:42px}.boot-topbar__button--lead{margin-left:auto}.boot-topbar__button--setup{display:block;width:58px}.boot-world__name{width:168px}.boot-world__summary{width:180px}.boot-status{inset:auto 12px 80px;justify-content:center}.boot-lab__body{padding:20px 14px 36px}}@media(prefers-reduced-motion:reduce){.skeleton{background-image:none;animation:none}.boot-status__pulse{animation:none;opacity:.8}}@media(max-width:1120px){.catalog-profile-preview__content{grid-template-columns:1fr}}@media(max-width:1080px){.catalog-toolbar{grid-template-columns:1fr 1fr}.catalog-search{grid-column:1 / -1}}@media(max-width:900px){.play-area{grid-template-columns:1fr}.lab-panel{position:static;top:auto;height:auto;max-height:none;display:grid;grid-template-columns:1fr 1fr;gap:0 22px;border-top:1px solid var(--line);border-left:0;overflow:visible;scrollbar-gutter:auto}.lab-heading,.lab-panel>p,.lab-test-type-selector,.quick-rules{grid-column:1 / -1}.board-wrap{max-height:none;height:500px}.roster-setup{padding-inline:22px}.card-catalog__header{display:grid}.catalog-summary{justify-self:stretch}.catalog-summary div{flex:1}.species-artwork{grid-template-columns:1fr}.species-artwork__list{grid-template-columns:repeat(3,1fr)}.species-artwork__identity.has-image,.species-artwork__identity>div{grid-template-columns:1fr}.species-artwork__workspace{grid-template-columns:1fr}.species-artwork__assign{border-top:1px solid var(--line);border-left:0}.opponent-catalog__header{display:grid}.opponent-catalog__summary{justify-self:stretch}.opponent-catalog__summary div{flex:1}.opponent-review-bar{grid-template-columns:1fr 1fr}.opponent-review-bar__current{border-top:1px solid var(--line);border-left:0;padding:10px 0 0}.opponent-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.ability-lab__header{display:grid}.ability-lab__storage{justify-self:start}.ability-inventory__summary{display:grid}.ability-inventory__summary dl{width:100%;justify-content:space-between}.ability-inventory__filters{grid-template-columns:1fr 1fr}.ability-inventory__search{grid-column:1 / -1}.ability-inventory__filters>strong{align-self:center;text-align:left}.ability-tests li{grid-template-columns:24px minmax(0,1fr)}.ability-tests li code{grid-column:2;justify-self:start}}@media(max-width:670px){.opponent-zone{grid-template-columns:minmax(92px,1fr) auto minmax(128px,1fr);gap:12px;padding-left:16px}.opponent-hand-stack,.opponent-hand{min-width:170px}.card-back+.card-back{margin-left:-18px}.opponent-hand-presentation.has-draw-pile{gap:5px}.opponent-hand-presentation.has-draw-pile>.deck-pile{flex-basis:52px}.opponent-hand-presentation.has-draw-pile>.deck-pile .deck-pile__count{font-size:8px}.opponent-hand-presentation.has-draw-pile>.discard-pile .discard-pile__top svg{width:30px;height:34px}.opponent-hand-presentation.has-draw-pile>.discard-pile .discard-pile__name{display:none}}@media(max-width:620px){.app-shell{min-height:100dvh}.topbar{min-height:58px;padding:max(8px,env(safe-area-inset-top)) 12px 8px;gap:8px;position:sticky;top:0;z-index:20}.brand{min-width:0}.brand-mark{width:34px;height:34px}.brand-wordmark{height:26px}.brand p,.connection{display:none}.lab-navigation{width:100%;min-width:0;max-width:100vw;gap:0 6px;padding:5px max(8px,env(safe-area-inset-right)) 5px max(8px,env(safe-area-inset-left))}.lab-navigation__primary{display:contents;position:static;gap:4px;padding:0}.lab-navigation__areas{min-width:0;gap:2px;overflow-x:auto;overflow-y:hidden;overscroll-behavior-x:contain;scrollbar-width:none}.lab-navigation__primary-link{position:relative;flex:0 0 auto;min-height:40px;padding-inline:10px;font-size:10.5px}.lab-navigation__primary-link.is-active:before{position:absolute;bottom:3px;left:50%;margin:0;transform:translate(-50%)}.lab-navigation__utility{flex:0 0 auto;min-height:40px;margin-left:0;padding-inline:8px}.lab-navigation__review-label--full{display:none}.lab-navigation__review-label--short{display:inline}.lab-navigation__secondary{min-height:40px;gap:4px}.lab-navigation__secondary-link{flex:0 0 auto;min-height:40px}.lab-navigation__link:focus-visible{outline-offset:-3px}.boot-lab__section--primary{flex:1 1 0;width:auto;min-width:0;height:40px}.boot-lab__section--utility{flex:0 0 54px;width:54px;height:40px}.boot-lab__section--secondary{flex:0 0 92px;height:40px}.ability-lab{min-height:calc(100dvh - 111px);padding:20px 12px 36px}.ability-lab__header{gap:14px;margin-bottom:18px}.ability-lab__header h1{font-size:23px}.ability-inventory{margin-bottom:24px;border-radius:8px}.ability-inventory__summary{gap:14px;padding:15px 14px}.ability-inventory__summary dl{display:grid;grid-template-columns:1fr 1fr;gap:10px}.ability-inventory__summary dl div{min-width:0;padding:8px 9px;background:var(--surface-raised)}.ability-inventory__summary dd{font-size:16px}.ability-inventory__filters{display:grid;grid-template-columns:1fr;padding:10px}.ability-inventory__search{grid-column:auto}.ability-inventory__filters input,.ability-inventory__filters select{min-height:44px;font-size:12px}.ability-inventory__filters>strong{padding:5px 2px}.ability-inventory__table-wrap{max-height:70dvh}.ability-inventory table{min-width:900px}.ability-inventory th,.ability-inventory td{padding-block:10px}.ability-inventory tbody th{position:sticky;left:0;z-index:1}.ability-inventory thead th:first-child{left:0;z-index:3}.ability-tests>header,.ability-runs>header{display:grid;padding:14px}.ability-tests header>strong,.ability-runs header>span{justify-self:start}.ability-tests li{grid-template-columns:24px minmax(0,1fr);padding:11px 14px}.ability-tests li code{grid-column:2;max-width:100%}.ability-runs__variant{display:grid;gap:3px;padding-inline:14px}.ability-runs__summary{padding-inline:14px}.card-catalog{min-height:calc(100dvh - 111px);padding:20px 12px 36px}.card-catalog__header{gap:18px;margin-bottom:18px}.card-catalog__header h1{font-size:23px}.catalog-summary{width:100%}.catalog-summary div{min-width:0;padding:9px}.catalog-summary dd{font-size:17px}.catalog-toolbar{position:static;grid-template-columns:1fr 1fr;padding:9px}.catalog-surfaces{width:100%}.catalog-surfaces a{flex:1;text-align:center}.species-artwork__list{display:flex;overflow-x:auto}.species-artwork__list a{min-width:160px}.species-artwork__detail>header{padding:14px}.species-artwork__identity,.species-artwork__card-family,.species-prompt-editor{padding:14px}.species-artwork__identity.has-image{grid-template-columns:1fr}.species-prompt-editor__actions{align-items:stretch;flex-direction:column}.species-prompt-editor__actions>div{display:grid;grid-template-columns:1fr 1fr}.species-artwork__workspace{min-height:0}.species-artwork__references,.species-artwork__assign{padding:14px}.species-artwork__references-header{align-items:stretch;flex-direction:column}.species-artwork__references-header .image-upload-control{justify-items:stretch}.species-artwork__references-header .image-upload-control__message{max-width:none;text-align:left}.catalog-toolbar>strong{padding:4px 2px 0;text-align:left}.catalog-grid{grid-template-columns:1fr}.catalog-card{grid-template-columns:112px minmax(0,1fr);min-height:228px}.catalog-card__visual svg{width:100px;height:96px}.catalog-card__body{padding:14px 12px 12px}.catalog-pagination{justify-content:space-between;gap:8px}.catalog-pagination button{min-height:42px}.opponent-catalog{min-height:calc(100dvh - 111px);padding:20px 12px 36px}.opponent-catalog__header{gap:18px;margin-bottom:18px}.opponent-catalog__header h1{font-size:23px}.opponent-catalog__summary{width:100%}.opponent-catalog__summary div{min-width:0;padding:9px}.opponent-catalog__summary dd{font-size:17px}.opponent-review-bar{position:static;grid-template-columns:1fr;padding:9px}.opponent-stage-picker button{flex:1;min-height:42px}.opponent-review-bar__current{min-height:50px}.opponent-catalog__context{grid-template-columns:auto minmax(0,1fr)}.opponent-catalog__legend{grid-column:1 / -1}.opponent-grid{grid-template-columns:1fr}.opponent-card{display:grid;grid-template-columns:124px minmax(0,1fr)}.opponent-card__portrait{min-height:100%;aspect-ratio:auto}.opponent-card__body{min-height:300px;padding:13px}.opponent-card__body>p{min-height:0}.card-approval__pair{grid-template-columns:1fr;gap:7px}.card-approval__pair .card-approval__link{width:22px;height:22px;transform:rotate(45deg)}.card-preview-panel--catalog{grid-template-rows:auto auto auto auto;overflow-y:auto}.catalog-card-detail{padding:16px 12px 36px}.card-preview-panel--catalog{padding:14px}.catalog-profile-preview__content{grid-template-columns:1fr}.catalog-profile-preview>header{display:grid;gap:8px}.catalog-profile-preview>header .catalog-status{justify-self:start}.catalog-profile-preview__details .catalog-card__facts div{grid-template-columns:1fr;gap:2px}.catalog-artwork-workspace{min-height:auto;display:block}.catalog-artwork-sidebar{max-height:none;overflow:visible}.card-preview-panel--catalog .card-preview-hero svg{width:min(100%,92vw);height:min(54vh,440px)}.artwork-review{max-height:none;margin-bottom:14px}.restart-button{min-height:42px;padding:8px 10px;font-size:11px}.lab-toggle{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:5px;min-width:58px;min-height:42px;margin-left:auto;border:1px solid var(--line);border-radius:8px;background:var(--surface);color:var(--ink);font-size:11px;font-weight:750}.lab-toggle i{position:absolute;top:5px;right:5px;width:6px;height:6px;border-radius:50%;background:var(--primary)}.play-area{min-height:calc(100dvh - 58px)}.play-area.is-active-match{min-height:calc(100dvh - 109px)}.play-area.is-city-match{min-height:100dvh}.game-column{min-height:calc(100dvh - 58px)}.play-area.is-active-match .game-column{height:calc(100dvh - 109px);min-height:0}.play-area.is-city-match .game-column{height:100dvh}.play-area.is-active-match .match-shell{height:100%;overflow:hidden}.opponent-zone{min-height:calc(74px + env(safe-area-inset-top));grid-template-columns:minmax(60px,1fr) auto minmax(82px,1fr);gap:8px;padding:max(8px,env(safe-area-inset-top)) max(10px,env(safe-area-inset-right)) 8px max(10px,env(safe-area-inset-left))}.opponent-identity span{font-size:9px}.opponent-identity strong{font-size:11px}.opponent-identity{gap:6px}.opponent-headshot{width:40px;height:44px}.opponent-hand-stack,.opponent-hand{min-width:0}.opponent-hand{min-height:48px;gap:0}.opponent-hand.is-revealed{max-width:128px;justify-content:flex-start;gap:1px;overflow-x:auto;padding-inline:2px}.opponent-hand-card{flex:0 0 38px;width:38px}.opponent-hand-card svg{width:38px;height:36px}.opponent-hand-card>span{font-size:6px}.lab-hand-tools{gap:4px}.lab-hand-tools button{min-height:22px;padding:2px 5px;font-size:8px}.lab-hand-power{gap:3px;font-size:8px}.lab-hand-power b,.lab-hand-power i{display:none}.lab-hand-power strong{font-size:9px}.card-back{width:34px;height:46px}.card-back+.card-back{margin-left:-21px}.opponent-hand-card-host+.opponent-hand-card-host>.card-back{margin-left:-21px}.turn-indicator{min-width:82px;padding-inline:8px;font-size:9px}.turn-indicator__score.is-major-swing{flex-wrap:wrap;justify-content:center;row-gap:2px;white-space:normal}.turn-indicator__score.is-major-swing .turn-indicator__swing{flex:0 0 100%;padding:1px 3px;font-size:.72em;line-height:1;text-align:center}.opponent-status{overflow:hidden}.opponent-status .tiebreak-badge,.opponent-status .environment-badge{overflow:hidden;max-width:100%;padding:4px 6px;font-size:8.5px;text-overflow:ellipsis;white-space:nowrap}.match-settings-trigger{top:calc(82px + env(safe-area-inset-top));right:max(8px,env(safe-area-inset-right));width:44px;height:44px}.match-info>summary{min-height:20px;padding:0 2px;font-size:8.5px}.match-info__summary-hint{display:none}.opponent-status:has(.match-info[open]){overflow:visible}.play-area.is-active-match:has(.match-info) .match-settings-trigger{top:calc(104px + env(safe-area-inset-top))}.victory-preview-exit{top:calc(82px + env(safe-area-inset-top));right:max(8px,env(safe-area-inset-right));min-height:44px;padding-inline:10px}.match-settings-dialog{padding:0}.match-settings-dialog[open]{place-items:end stretch}.match-settings-panel{width:100%;max-height:min(62dvh,360px);border:0;border-top:1px solid var(--line);border-radius:14px 14px 0 0;overflow-y:auto;overscroll-behavior:contain;box-shadow:0 -6px 8px color-mix(in oklch,var(--ink),transparent 78%);animation:match-settings-sheet-in .22s var(--ease-out)}.match-settings-panel:before{content:"";display:block;width:36px;height:4px;margin:10px auto 0;border-radius:999px;background:var(--line)}.match-settings-panel>header{padding:10px 14px 12px}.match-settings-panel>header button{width:44px;height:44px}.match-settings-actions{padding:4px 8px max(8px,env(safe-area-inset-bottom))}.match-settings-actions button{min-height:56px;padding:8px 10px}.match-board-region{min-height:0;overflow:hidden}.board-wrap{height:auto;min-height:0;max-height:none;padding:4px 0 0}.board{min-height:0;max-height:100%;touch-action:manipulation}.board-cell.is-available .cell-base{fill:color-mix(in oklch,var(--primary-pale),var(--empty) 55%);stroke-width:2.5}.board-cell.is-available .placement-dot{r:4px;fill:var(--primary-deep)}.board-cell.is-available:active .cell-base{fill:var(--primary-pale)}.board-cell.is-ability-trigger .cell-base{stroke-width:3.5}.ability-guide{width:calc(100% - 20px);min-height:44px;gap:7px;margin-bottom:5px;padding:6px 7px;border-radius:8px}.ability-guide__environment{min-width:68px;padding-inline:6px;font-size:9px}.ability-guide__copy>span{gap:5px}.ability-guide__copy strong{font-size:10.5px}.ability-guide__copy b{font-size:9px}.ability-guide__copy p{margin-top:1px;font-size:9px;line-height:1.25}.ability-guide__target-choices button{min-height:40px}.ability-guide__skip{min-height:44px;padding-inline:8px;font-size:9px}.match-status{right:10px;bottom:7px;left:10px;max-width:calc(100% - 20px);min-height:30px;padding:5px 10px;font-size:10px}.match-status.has-action{width:calc(100% - 20px);flex-wrap:wrap;padding:7px}.match-status.has-action .match-status__message{flex:1 0 100%;white-space:normal}.match-status__effects{display:flex;justify-content:center;flex-wrap:wrap;margin:5px 0 0}.match-status__actions{width:100%}.match-status__actions button{flex:1;min-height:44px;padding-inline:12px}.victory-celebration{bottom:36px;padding:12px}.victory-plaque{min-width:0;width:min(100%,360px);gap:9px;padding:10px}.victory-mark{width:34px;height:34px;font-size:18px}.victory-copy strong{font-size:17px}.victory-copy span{font-size:10px}.victory-plaque button{min-height:42px;padding-inline:10px}.reward-reveal{--reward-card-size: min(300px, 76vw, 38vh);padding:18px}.reward-reveal h2{font-size:34px}.reward-reveal__scoreline b{font-size:28px}.reward-reveal__world-glyph{font-size:96px}.hand-zone{position:relative;flex:0 0 auto;z-index:15;padding:8px max(10px,env(safe-area-inset-right)) max(10px,env(safe-area-inset-bottom)) max(10px,env(safe-area-inset-left));box-shadow:0 -4px 8px color-mix(in oklch,var(--ink),transparent 92%)}.hand-heading{align-items:flex-start;margin-bottom:5px}.hand-heading p{display:none}.hand-heading p.hand-heading__tactic-note{display:block}.scout-ahead-choice{display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}.scout-ahead-choice>span{grid-column:1 / -1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.scout-ahead-choice button{width:100%;min-width:0;padding-inline:4px;white-space:nowrap}.hand-list{width:100%;gap:6px;min-height:174px;overflow-y:hidden;padding:0 14px 4px 1px;scroll-padding-inline:1px 14px;scroll-snap-type:x proximity;overscroll-behavior-x:contain}.hand-list[data-count="1"],.hand-list[data-count="2"]{justify-content:center}.hand-list[data-count="3"],.hand-list[data-count="4"]{justify-content:flex-start}.hand-card-slot{flex-basis:92px;height:170px;scroll-snap-align:center}.hand-card-item{height:100%;touch-action:manipulation}.hand-card{height:calc(100% - 29px)}.hand-card svg{width:92px;height:100px}.hand-card__name{margin-top:-2px;font-size:11.5px}.hand-card__meta{margin-top:2px;font-size:9.5px}.hand-card:hover:not(:disabled):not([aria-disabled=true]){transform:none}.hand-card.is-selected{transform:none}.roster-setup{padding:20px 12px}.roster-intro{gap:12px}.roster-intro h2{font-size:19px}.roster-intro p{font-size:11px}.roster-count{display:block;min-width:54px;text-align:right}.roster-count strong,.roster-count span{display:block}.ability-experiment-launcher{grid-template-columns:minmax(0,1fr) auto;gap:9px}.ability-experiment-launcher>div{grid-column:1 / -1}.ability-experiment-launcher>button{min-height:44px}.ability-picker-dialog{align-items:end;padding:0}.ability-picker-panel{width:100%;max-height:88dvh;border-radius:12px 12px 0 0}.ability-picker-panel>header{padding:18px 16px 14px}.ability-picker-panel h2{font-size:18px}.ability-picker-summary{padding:10px 16px}.ability-picker-options{padding-inline:6px}.ability-picker-option{padding:10px}.ability-picker-panel>footer{padding:12px 16px max(14px,env(safe-area-inset-bottom))}.ability-picker-panel>footer button{min-height:44px}.roster-tray{margin-bottom:20px}.roster-slot{min-width:104px}.collection-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}.collection-card{height:141px}.collection-card svg{width:80px;height:78px}.card-preview-layer{padding:14px}.card-preview-panel{height:calc(100dvh - 28px)}.catalog-card-detail .card-preview-panel--catalog{height:auto;overflow:visible}.card-preview-panel h2{font-size:20px}.card-preview-hero svg{width:min(100%,94vw);height:min(74vh,560px)}.roster-footer{position:sticky;bottom:0;z-index:15;margin-inline:-12px;padding:10px 12px max(10px,env(safe-area-inset-bottom));background:var(--surface);border-top:1px solid var(--line)}.roster-footer p{margin-right:auto}.lab-backdrop{display:block;position:fixed;inset:0;z-index:30;border:0;background:color-mix(in oklch,var(--ink),transparent 45%);opacity:0;pointer-events:none;transition:opacity .2s var(--ease-out)}.lab-backdrop.is-open{opacity:1;pointer-events:auto}.lab-panel{display:block;position:fixed;inset:auto 0 0;z-index:40;height:min(82dvh,720px);max-height:min(82dvh,720px);padding:10px 18px max(20px,env(safe-area-inset-bottom));border-top:1px solid var(--line);border-left:0;border-radius:14px 14px 0 0;overflow-y:auto;overscroll-behavior:contain;scrollbar-gutter:stable;touch-action:pan-y;transform:translateY(102%);visibility:hidden;transition:transform .22s var(--ease-out),visibility 0s linear .22s}.lab-panel.is-open{transform:translateY(0);visibility:visible;transition-delay:0s}.lab-panel:is(.is-campaign-config,.is-match-overlay){inset:auto 0 0;width:100%;height:min(82dvh,720px);max-height:min(82dvh,720px);border-left:0;box-shadow:none}.lab-panel:before{content:"";display:block;width:36px;height:4px;margin:0 auto 10px;border-radius:999px;background:var(--line)}.lab-heading{top:-10px}.lab-heading span{margin-left:auto}.lab-close{display:grid;place-items:center;width:44px;height:44px;margin-left:2px;border:0;border-radius:8px;background:var(--surface-raised);font-size:26px;line-height:1}.lab-panel>p{margin-bottom:12px;font-size:12px}.lab-test-type-selector{margin-bottom:8px}.lab-test-type-selector button{min-height:44px;font-size:10px}.setting-group{padding-block:14px}.setting-group h3{font-size:13px}.setting-group small{max-width:42ch;font-size:10px}.shape-picker button{min-height:74px}.select-row,.range-row,.toggle-row{font-size:13px}.range-row{margin-bottom:18px}.range-row input{min-height:32px}.toggle-row{min-height:44px}.toggle-ui{width:40px;height:24px}.toggle-ui:after{width:20px;height:20px}.toggle-row input:checked+.toggle-ui:after{transform:translate(16px)}.lab-section-action{min-height:48px;font-size:12px}}@keyframes match-settings-sheet-in{0%{transform:translateY(18px);opacity:0}to{transform:translateY(0);opacity:1}}@container match-column (max-width: 620px) and (max-height: 680px){.play-area.is-active-match .opponent-zone{min-height:64px}.play-area.is-active-match .match-board-region{min-height:0;overflow:hidden}.play-area.is-active-match .board-wrap{height:auto;min-height:0;max-height:none}.play-area.is-active-match .board{min-height:0;max-height:100%}.play-area.is-active-match .hand-zone{position:relative;flex:0 0 auto;padding-block:6px max(8px,env(safe-area-inset-bottom))}.play-area.is-active-match .hand-heading{display:none}.play-area.is-active-match .hand-list{min-height:100px;gap:6px;padding:0 1px 2px}.play-area.is-active-match .hand-list[data-count="1"],.play-area.is-active-match .hand-list[data-count="2"],.play-area.is-active-match .hand-list[data-count="3"],.play-area.is-active-match .hand-list[data-count="4"]{justify-content:center}.play-area.is-active-match .hand-card-slot,.play-area.is-active-match .hand-list[data-count="3"] .hand-card-slot{flex:0 0 72px;width:72px;height:98px}.play-area.is-active-match .hand-card-item{height:100%}.play-area.is-active-match .hand-card{--card-edge-font-size-override: 10px;--card-edge-stroke-width-override: .9px;height:calc(100% - 25px)}.play-area.is-active-match .hand-card svg{width:68px;height:64px}.play-area.is-active-match .hand-card__name{min-height:12px;margin-top:-3px;font-size:10.5px}.play-area.is-active-match .hand-card__meta{display:none}}@media(min-width:621px)and (max-height:680px){.app-shell:has(.play-area.is-active-match):not(:has(.match-results-lab)) .topbar{height:56px;min-height:56px;gap:14px;padding:8px 16px}.app-shell:has(.play-area.is-active-match):not(:has(.match-results-lab)) .brand{min-width:150px}.app-shell:has(.play-area.is-active-match):not(:has(.match-results-lab)) .brand p,.app-shell:has(.play-area.is-active-match):not(:has(.match-results-lab)) .connection{display:none}.app-shell:has(.play-area.is-active-match):not(:has(.match-results-lab)) .restart-button{padding:8px 10px;font-size:11px}.play-area.is-active-match{min-height:calc(100dvh - 56px)}.play-area.is-active-match .game-column{height:calc(100dvh - 56px);min-height:0}.play-area.is-city-match .game-column{height:100dvh}}@container match-column (min-width: 621px) and (max-height: 680px){.play-area.is-active-match .match-shell{height:100%;overflow:hidden}.play-area.is-active-match .opponent-zone{min-height:60px;grid-template-columns:minmax(110px,1fr) auto minmax(110px,1fr);gap:12px;padding:4px 66px 4px 18px}.play-area.is-active-match .opponent-hand-stack,.play-area.is-active-match .opponent-hand{min-width:180px}.play-area.is-active-match .opponent-hand{min-height:44px}.play-area.is-active-match .card-back{width:30px;height:42px}.play-area.is-active-match .turn-indicator{min-width:110px;padding:6px 10px;font-size:10px}.play-area.is-active-match .opponent-status{gap:3px}.play-area.is-active-match .tiebreak-badge{padding:3px 8px;font-size:9px;white-space:nowrap}.play-area.is-active-match .opponent-hand-presentation.has-draw-pile>.deck-pile{flex-basis:50px;gap:2px}.play-area.is-active-match .opponent-hand-presentation.has-draw-pile>.deck-pile .deck-pile__count{font-size:8px}.play-area.is-active-match .opponent-hand-presentation.has-draw-pile>.deck-pile .deck-pile__stack{width:38px;height:50px}.play-area.is-active-match .opponent-hand-presentation.has-draw-pile>.deck-pile .card-back{width:32px;height:44px}.play-area.is-active-match .opponent-hand-presentation.has-draw-pile>.deck-pile .card-back:nth-child(2){top:3px;left:3px}.play-area.is-active-match .opponent-hand-presentation.has-draw-pile>.deck-pile .card-back:nth-child(3){top:6px;left:6px}.play-area.is-active-match .match-settings-trigger{top:7px}.play-area.is-active-match .match-board-region{min-height:0;overflow:hidden}.play-area.is-active-match .board-wrap{height:auto;min-height:0;max-height:none;padding:2px 12px 0}.play-area.is-active-match .board{min-height:0;max-height:100%}.play-area.is-active-match .match-status{bottom:4px;min-height:26px;padding:4px 12px;font-size:10px}.play-area.is-active-match .hand-zone{position:relative;flex:0 0 auto;padding:5px 16px 3px}.play-area.is-active-match .hand-heading{display:none}.play-area.is-active-match .hand-tray-toolbar{min-height:24px;margin-bottom:1px}.play-area.is-active-match .scout-ahead-choice{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));padding:4px}.play-area.is-active-match .scout-ahead-choice>span{grid-column:1 / -1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.play-area.is-active-match .scout-ahead-choice button{width:100%;min-width:0;padding-inline:4px;white-space:nowrap}.play-area.is-active-match .hand-tray-controls button{width:30px;height:24px;font-size:18px}.play-area.is-active-match .hand-list{min-height:100px;padding:0 2px 3px}.play-area.is-active-match .hand-card-slot{flex-basis:96px;height:98px}.play-area.is-active-match .hand-card-item,.play-area.is-active-match .hand-card{height:100%}.play-area.is-active-match .hand-card svg{width:80px;height:72px}.play-area.is-active-match .hand-card__name{font-size:10.5px}.play-area.is-active-match .hand-card__meta{display:none}.play-area.is-active-match .player-hand-presentation>.deck-pile{padding-top:4px}.play-area.is-active-match .pile-chrome{gap:3px}.play-area.is-active-match .pile-chrome .deck-pile__stack{width:30px;height:36px}.play-area.is-active-match .pile-chrome .deck-pile__stack .card-back{width:24px;height:32px}.play-area.is-active-match .pile-chrome .deck-pile__stack .card-back:nth-child(2){top:2px;left:2px}.play-area.is-active-match .pile-chrome .deck-pile__stack .card-back:nth-child(3){top:4px;left:4px}}@media(max-width:390px){.collection-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@container match-column (min-width: 1280px) and (min-height: 681px){.play-area .match-shell .board-wrap{max-height:64vh}.play-area .match-shell .board{width:min(100%,1080px)}.play-area .match-shell .hand-list{min-height:200px}.play-area .match-shell .hand-card-slot{flex:0 0 184px;height:198px}.play-area .match-shell .hand-card svg{width:160px;height:148px}.play-area .match-shell--board-priority:not(.match-shell--duel) .ability-guide{position:absolute;top:96px;right:16px;width:264px;max-height:calc(100% - 128px);flex-direction:column;align-items:stretch;gap:8px;margin:0;overflow-y:auto;padding:10px}.play-area .match-shell--board-priority:not(.match-shell--duel) .ability-guide__environment{align-self:flex-start}.play-area .match-shell--board-priority:not(.match-shell--duel) .ability-guide__copy>span{flex-wrap:wrap;gap:3px 8px}.play-area .match-shell--board-priority:not(.match-shell--duel) .ability-guide__skip{width:100%}}@container match-column (max-width: 959px) and (min-height: 681px){.play-area .match-shell:not(.match-shell--duel) .ability-guide{position:absolute;top:8px;right:10px;left:10px;width:auto;margin:0}.play-area .match-shell:not(.match-shell--duel) .ability-guide__copy>span{flex-wrap:wrap;gap:2px 6px}}@container match-column (min-width: 1440px) and (min-height: 681px){.layout-toggle{display:inline-flex}.play-area.is-active-match .hand-heading{display:flex}.play-area .match-shell--duel{display:grid;grid-template-columns:minmax(280px,344px) minmax(0,1fr) minmax(216px,264px);grid-template-rows:minmax(0,1fr);grid-template-areas:"hand board opponent"}.play-area .match-shell--duel .opponent-zone{grid-area:opponent;display:flex;flex-direction:column;align-items:stretch;gap:16px;min-height:0;padding:64px 18px 20px;border-bottom:0;border-left:1px solid var(--match-divider)}.play-area .match-shell--duel>.tutorial-coach{top:96px;right:276px;left:auto}.play-area .match-shell--duel>.tutorial-coach:before{top:22px;right:-6px;left:auto;transform:rotate(135deg)}.play-area .match-shell--duel .opponent-identity{flex-direction:column;gap:12px}.play-area .match-shell--duel .opponent-identity>div{justify-items:center}.play-area .match-shell--duel .opponent-identity span{display:none}.play-area .match-shell--duel .opponent-identity strong{font-size:18px;white-space:normal;text-align:center}.play-area .match-shell--duel .opponent-headshot{width:132px;height:145px}.play-area .match-shell--duel .opponent-hand{min-width:0;flex:1 1 auto;min-height:0;flex-direction:column;justify-content:center;gap:12px}.play-area .match-shell--duel .opponent-hand-stack{min-width:0;flex:1 1 auto;min-height:0;display:flex;flex-direction:column}.play-area .match-shell--duel .opponent-status{align-items:stretch;justify-items:stretch;gap:8px}.play-area .match-shell--duel .match-info>summary{width:100%;justify-content:center}.play-area .match-shell--duel .match-info__panel{position:static;width:auto;max-height:none;margin-top:6px;box-shadow:none}.play-area .match-shell--duel .opponent-hand.is-revealed{gap:6px;overflow-y:auto}.play-area .match-shell--duel .opponent-hand-card{flex:1 1 0;width:min(100%,116px);max-height:116px}.play-area .match-shell--duel .opponent-hand-card svg{flex:1 1 auto;width:100%;height:auto;min-height:0}.play-area .match-shell--duel .opponent-hand-card>span{flex:0 0 auto;font-size:9px}.play-area .match-shell--duel .lab-hand-tools{flex:0 0 auto;flex-wrap:wrap}.play-area .match-shell--duel .card-back{flex:1 1 0;min-height:0;max-height:200px;width:auto;aspect-ratio:44 / 58;max-width:100%;align-self:center}.play-area .match-shell--duel .opponent-hand-presentation:has(.opponent-hand:not(.is-revealed))>.opponent-hand-count{display:block;color:var(--muted);font-size:10px;font-weight:750;line-height:1.1;text-align:center}.play-area .match-shell--duel .opponent-hand-presentation.has-draw-pile{flex-wrap:wrap;justify-content:center;gap:8px;max-width:100%}.play-area .match-shell--duel .opponent-hand-presentation.has-draw-pile>.opponent-hand-count{flex:0 0 100%}.play-area .match-shell--duel .opponent-hand-presentation.has-draw-pile>.deck-pile{flex-basis:auto}.play-area .match-shell--duel .opponent-hand-presentation.has-draw-pile>.opponent-hand:not(.is-revealed):not(:has(.opponent-hand-target)):has(.opponent-hand-card-host){--hand-pile-card-width: 38px;--hand-pile-card-height: 52px;--hand-pile-step: 4px}.play-area .match-shell--duel .opponent-hand:not(.is-revealed):not(:has(.opponent-hand-target)):has(.opponent-hand-card-host){--hand-pile-card-width: 66px;--hand-pile-card-height: 90px;--hand-pile-step: 6px;position:relative;flex:0 0 auto;display:block;width:calc(var(--hand-pile-card-width) + var(--hand-pile-step) * 2);height:calc(var(--hand-pile-card-height) + var(--hand-pile-step) * 2);min-height:0;margin-inline:auto}.play-area .match-shell--duel .opponent-hand:not(.is-revealed):not(:has(.opponent-hand-target))>.opponent-hand-card-host{position:absolute;top:0;left:0}.play-area .match-shell--duel .opponent-hand:not(.is-revealed):not(:has(.opponent-hand-target))>.opponent-hand-card-host:nth-child(2){top:var(--hand-pile-step);left:var(--hand-pile-step)}.play-area .match-shell--duel .opponent-hand:not(.is-revealed):not(:has(.opponent-hand-target))>.opponent-hand-card-host:nth-child(n+3){top:calc(var(--hand-pile-step) * 2);left:calc(var(--hand-pile-step) * 2)}.play-area .match-shell--duel .opponent-hand:not(.is-revealed):not(:has(.opponent-hand-target))>.opponent-hand-card-host>.card-back{flex:0 0 auto;width:var(--hand-pile-card-width);height:var(--hand-pile-card-height);max-height:none;aspect-ratio:auto}.play-area .match-shell--duel .opponent-zone .turn-indicator{display:none}.play-area .match-shell--duel .turn-indicator--board{display:grid;position:absolute;top:14px;left:50%;transform:translate(-50%);z-index:3;padding:9px 18px;font-size:13px;box-shadow:0 2px 6px color-mix(in oklch,var(--ink),transparent 70%)}.play-area .match-shell--duel .match-board-region{grid-area:board;min-height:0}.play-area .match-shell--duel .fieldside-stage{grid-template-columns:minmax(280px,min(32%,356px)) minmax(0,1fr)}.play-area .match-shell--duel .board-wrap{height:auto;min-height:0;max-height:none;padding:14px 24px 0}.play-area .match-shell--duel .board{width:min(100%,1120px);min-height:0;max-height:100%}.play-area .match-shell--duel .hand-zone{grid-area:hand;display:flex;flex-direction:column;min-height:0;border-top:0;border-right:1px solid var(--match-divider);padding:14px 16px 12px}.play-area .match-shell--duel .hand-heading{flex:0 0 auto;flex-wrap:wrap;margin-bottom:8px}.play-area .match-shell--duel .hand-list{flex:1 1 auto;flex-direction:column;align-items:center;justify-content:flex-start;gap:8px;min-height:0;overflow-y:auto;overflow-x:hidden;padding:2px 4px 4px}.play-area .match-shell--duel .player-hand-presentation{flex:1 1 auto;min-height:0}.play-area .match-shell--duel .hand-card-slot{flex:0 0 174px;width:100%;max-width:236px;height:auto;min-height:122px;max-height:224px}.play-area .match-shell--duel .hand-card{width:100%;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center}.play-area .match-shell--duel .hand-card svg{flex:1 1 auto;width:100%;height:auto;min-height:0;margin:0}.play-area .match-shell--duel .hand-card__name{flex:0 0 auto;margin-top:0}.play-area .match-shell--duel .hand-card__meta{flex:0 0 auto}.play-area .match-shell--duel.match-shell--board-priority{grid-template-columns:minmax(260px,296px) minmax(0,1fr);grid-template-areas:"hand board"}.play-area .match-shell--duel.match-shell--board-priority .fieldside-stage{grid-template-columns:minmax(264px,min(30%,320px)) minmax(0,1fr)}.play-area .match-shell--duel.match-shell--board-priority .board{transform:translate(-24px)}.play-area .match-shell--duel.match-shell--board-priority .hand-zone{padding-inline:12px}.play-area .match-shell--duel.match-shell--board-priority .player-hand-presentation.has-draw-pile{display:flex;flex-direction:column;align-items:stretch;gap:4px 8px}.play-area .match-shell--duel.match-shell--board-priority .player-hand-presentation.has-draw-pile>.pile-chrome{flex:0 0 auto;width:100%;flex-direction:row;justify-content:center;gap:14px}.play-area .match-shell--duel.match-shell--board-priority .player-hand-presentation.has-draw-pile>.deck-pile{width:72px;justify-self:center;padding:2px 0 6px}.play-area .match-shell--duel.match-shell--board-priority .player-hand-presentation.has-draw-pile>.deck-pile:not(.discard-pile){grid-column:1 / -1}.play-area .match-shell--duel.match-shell--board-priority .player-hand-presentation.has-draw-pile:has(.discard-pile)>.deck-pile:not(.discard-pile){grid-column:1}.play-area .match-shell--duel.match-shell--board-priority .player-hand-presentation.has-draw-pile>.discard-pile{grid-column:2}.play-area .match-shell--duel.match-shell--board-priority .player-hand-presentation.has-draw-pile>.hand-list{width:100%}.play-area.match-theme-arena .match-shell--duel .hand-zone{border-right:0}.play-area.match-theme-arena .match-shell--duel .opponent-zone{border-left:0}.play-area .match-shell--duel.match-shell--board-priority .opponent-zone{position:absolute;z-index:4;top:0;right:0;width:184px;max-height:min(520px,calc(100% - 16px));gap:10px;padding:52px 10px 14px;overflow-y:auto;border-bottom:1px solid var(--match-divider);background:var(--match-chrome-raised)}.play-area.match-theme-arena .match-shell--duel.match-shell--board-priority .opponent-zone{border-left:0;border-bottom:0;color:var(--campaign-limestone-raised);background:linear-gradient(225deg,color-mix(in oklch,var(--campaign-world-deep),black 22%) 0%,color-mix(in oklch,var(--campaign-world-deep),transparent 18%) 58%,transparent 100%)}.play-area.match-theme-arena .match-shell--duel.match-shell--board-priority .opponent-hand-count,.play-area.match-theme-arena .match-shell--duel.match-shell--board-priority .lab-hand-power{color:color-mix(in oklch,var(--campaign-limestone),transparent 28%)}.play-area.match-theme-arena .match-shell--duel.match-shell--board-priority .lab-hand-power b,.play-area.match-theme-arena .match-shell--duel.match-shell--board-priority .lab-hand-power strong{color:var(--campaign-limestone-raised)}.play-area.match-theme-arena .match-shell--duel.match-shell--board-priority .lab-hand-tools button{border-color:color-mix(in oklch,var(--campaign-limestone),transparent 58%);color:var(--campaign-limestone-raised);background:color-mix(in oklch,var(--campaign-world-deep),black 12%)}.play-area .match-shell--duel.match-shell--board-priority .opponent-identity{flex-direction:row;gap:8px}.play-area .match-shell--duel.match-shell--board-priority .opponent-identity>div{justify-items:start}.play-area .match-shell--duel.match-shell--board-priority .opponent-identity strong{font-size:14px;text-align:left}.play-area .match-shell--duel.match-shell--board-priority .opponent-headshot{width:64px;height:70px}.play-area .match-shell--duel.match-shell--board-priority .opponent-hand-presentation.has-draw-pile{width:100%;flex:0 0 auto;min-height:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:auto auto;align-items:center;gap:8px}.play-area .match-shell--duel.match-shell--board-priority .opponent-hand-stack{flex:0 0 auto}.play-area .match-shell--duel.match-shell--board-priority .opponent-hand-presentation.has-draw-pile>.opponent-hand{grid-column:1}.play-area .match-shell--duel.match-shell--board-priority .opponent-hand-presentation:has(.opponent-hand:not(.is-revealed))>.opponent-hand-count{grid-column:1}.play-area .match-shell--duel.match-shell--board-priority .opponent-hand:not(.is-revealed):not(:has(.opponent-hand-target)):has(.opponent-hand-card-host){--hand-pile-card-width: 38px;--hand-pile-card-height: 52px;--hand-pile-step: 4px}.play-area .match-shell--duel.match-shell--board-priority .opponent-hand-card{width:min(100%,60px);max-height:66px}.play-area .match-shell--duel.match-shell--board-priority .opponent-hand.is-revealed{grid-column:1 / -1;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));justify-items:center;gap:4px;overflow:visible}.play-area .match-shell--duel.match-shell--board-priority .lab-hand-tools{width:100%;display:grid;justify-items:center;gap:4px}.play-area .match-shell--duel.match-shell--board-priority .lab-hand-tools button{width:100%}.play-area .match-shell--duel.match-shell--board-priority .lab-hand-power{justify-content:center}.play-area .match-shell--duel.match-shell--board-priority .opponent-hand-presentation.has-draw-pile>.deck-pile{justify-self:center}.play-area .match-shell--duel.match-shell--board-priority .opponent-hand-presentation.has-draw-pile>.deck-pile:not(.discard-pile){grid-column:2}.play-area .match-shell--duel.match-shell--board-priority .opponent-hand-presentation.has-draw-pile:has(.discard-pile)>.deck-pile:not(.discard-pile){grid-column:1}.play-area .match-shell--duel.match-shell--board-priority .opponent-hand-presentation.has-draw-pile>.discard-pile{grid-column:2}}@media(min-width:960px)and (hover:hover)and (pointer:fine){.play-area .match-shell--board-priority:not(.match-shell--duel) .fieldside-stage{position:relative;display:block;padding:10px 18px 0}.play-area .match-shell--board-priority:not(.match-shell--duel) .fieldside-inspector{position:absolute;z-index:4;top:12px;left:20px;width:min(304px,30vw);max-height:calc(100% - 24px);opacity:0;pointer-events:none;transform:translate(-8px);transition:opacity .18s var(--ease-out),transform .18s var(--ease-out)}.play-area .match-shell--board-priority:not(.match-shell--duel) .fieldside-inspector.has-card{opacity:1;pointer-events:auto;transform:translate(0)}.play-area .match-shell--board-priority:not(.match-shell--duel) .fieldside-board-column,.play-area .match-shell--board-priority:not(.match-shell--duel) .fieldside-board-column>.board-wrap{height:100%}}@container match-column (min-width: 960px) and (min-height: 681px){.play-area .match-shell--board-priority:not(.match-shell--duel) .board-wrap{min-height:0;max-height:none;padding:6px 16px 0}.play-area .match-shell--board-priority:not(.match-shell--duel) .board{width:min(100%,1280px);min-height:0;max-height:100%}.play-area .match-shell--board-priority:not(.match-shell--duel) .hand-zone{padding:6px 20px 8px}.play-area .match-shell--board-priority:not(.match-shell--duel) .hand-heading{margin-bottom:2px}.play-area .match-shell--board-priority:not(.match-shell--duel) .hand-heading p{display:none}.play-area .match-shell--board-priority:not(.match-shell--duel) .hand-list{min-height:150px;padding-block:1px 3px}.play-area .match-shell--board-priority:not(.match-shell--duel) .hand-card-slot{flex:0 0 136px;height:148px}.play-area .match-shell--board-priority:not(.match-shell--duel) .hand-card svg{width:116px;height:108px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-delay:0ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}.saved-deck-select{min-width:0}.saved-deck-select select{width:100%;min-width:0}.saved-deck-select .saved-deck-select__summary{display:grid;gap:4px;margin:8px 0 16px;max-width:none;line-height:1.5;overflow-wrap:anywhere}.saved-deck-select__summary strong{color:var(--ink);font-size:12px}.saved-deck-select__summary span{color:var(--muted);font-size:11px}.app-shell:has(.is-saved-workspace) .lab-toggle{display:none}.play-area.is-saved-workspace{grid-template-columns:minmax(0,1fr)}.play-area .lab-panel.is-workspace{display:block;z-index:auto;transition:none;position:static;width:100%;max-width:1100px;height:auto;max-height:none;margin:0 auto;padding:24px;border:0;border-radius:0;transform:none;visibility:visible;opacity:1;overflow:visible;pointer-events:auto}.lab-panel.is-workspace:before{display:none}.lab-panel.is-workspace .lab-heading{position:static;padding:0}.lab-panel.is-workspace .lab-heading h2{font-size:22px}.lab-panel.is-workspace .lab-test-type-selector{max-width:520px;margin-top:20px}.lab-panel.is-workspace .lab-test-type-selector button{font-size:13px}.lab-panel.is-workspace .setting-group>h3{font-size:18px}.lab-panel.is-workspace .setting-group>p{font-size:13px;max-width:70ch}.lab-panel.is-workspace .world-select-row{gap:7px;margin-bottom:16px}.lab-panel.is-workspace .world-select-row>span{font-size:13px}.lab-panel.is-workspace .world-select-row select,.lab-panel.is-workspace .world-select-row input{min-height:44px;font-size:14px}.lab-panel.is-workspace .saved-match__layout{display:grid;grid-template-columns:minmax(320px,.95fr) minmax(280px,1.05fr);gap:24px;align-items:start}.matchup-preview-panel.is-lab{min-width:0;display:flex;flex-direction:column;border-radius:12px;padding:18px;color:var(--ink);background:var(--surface-sunken)}.matchup-preview-panel.is-lab .matchup-preview-panel__opponent img,.matchup-preview-panel.is-lab .matchup-preview-panel__opponent-mark{border-color:var(--accent)}.matchup-preview-panel.is-lab .matchup-preview-panel__opponent-mark{color:var(--accent);background:var(--surface)}.matchup-preview-panel.is-lab .matchup-preview-panel__opponent>div{min-width:0;display:grid;gap:3px}.matchup-preview-panel.is-lab .matchup-preview-panel__opponent>div>span{color:var(--accent)}.matchup-preview-panel.is-lab .matchup-preview-panel__opponent strong{margin:0;font-size:18px;line-height:1.2;text-wrap:balance}.matchup-preview-panel.is-lab .matchup-preview-panel__opponent small{margin:0;color:var(--muted);font-size:11px;line-height:1.35}.matchup-preview-panel.is-lab .matchup-preview-panel__board{min-height:300px;padding:14px 0 10px}.matchup-preview-panel.is-lab .published-board-preview{width:100%;padding:12px;background:var(--surface)}.matchup-preview-panel.is-lab .published-board-preview figcaption{display:none}.matchup-preview-panel.is-lab .published-board-preview svg{max-height:280px;margin:0 auto}.matchup-preview-panel.is-lab .matchup-preview-panel__board>p{margin:auto;color:var(--muted);font-size:12px;text-align:center}.matchup-preview-panel.is-lab .matchup-preview-panel__facts div{border-color:var(--line)}.matchup-preview-panel.is-lab .matchup-preview-panel__facts span{color:var(--muted)}.matchup-preview-panel.is-lab .matchup-preview-panel__facts strong{color:var(--ink)}.saved-match__deck-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:4px}.saved-match__deck-actions a{min-height:40px;display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--line);border-radius:8px;padding:8px 12px;color:var(--ink);background:var(--surface);font-size:12px;font-weight:750;text-decoration:none}.saved-match__deck-actions a:hover{border-color:var(--accent);color:var(--accent)}.saved-match__deck-actions a:focus-visible{outline:3px solid var(--focus);outline-offset:2px}.saved-match__deck-actions a[aria-disabled=true]{opacity:.55;cursor:not-allowed;pointer-events:none}.published-board-preview{--match-board: oklch(.945 .006 60);--match-cell: var(--empty);--match-cell-stroke: oklch(.74 .012 60);margin:0;padding:18px;border-radius:12px;background:var(--surface-raised)}.published-board-preview figcaption{display:grid;gap:6px;line-height:1.4}.published-board-preview figcaption strong{font-size:16px}.published-board-preview figcaption span{font-size:12px;color:var(--muted)}.published-board-preview svg{display:block;width:100%;max-height:340px;margin:18px auto;border-radius:9px;background:var(--match-board)}.published-board-preview .board-cell:focus{outline:none}.published-board-preview .board-cell:focus-visible .board-tile-surface__base{stroke:var(--focus);stroke-width:3}.published-board-preview__tile-detail{min-height:1.5em;margin:-6px 0 8px;color:var(--ink);font-size:12px;line-height:1.5}.published-board-preview__legend{font-size:12px;line-height:1.5}.published-board-preview__legend p,.published-board-preview__legend ul{display:flex;gap:8px 18px;flex-wrap:wrap;margin:8px 0 0;padding:0;list-style:none}.published-board-preview__legend li{display:inline-flex;align-items:center;gap:6px}.saved-match__cards-toggle{display:inline-flex;align-items:center;gap:8px;margin:-8px 0 18px;min-height:36px;border:1px solid var(--line);border-radius:8px;padding:6px 12px;color:var(--ink);background:var(--surface);font-size:12px;font-weight:700;cursor:pointer}.saved-match__cards-toggle:hover:not(:disabled){border-color:var(--accent)}.saved-match__cards-toggle:disabled{cursor:not-allowed;opacity:.55}.saved-match__cards-toggle:focus-visible{outline:3px solid var(--focus);outline-offset:2px}.saved-deck-drawer{position:fixed;inset:0 0 0 auto;z-index:55;width:min(860px,100vw);max-width:none;height:100dvh;max-height:none;margin:0;border:0;border-left:1px solid var(--line);padding:0;color:var(--ink);background:var(--surface);box-shadow:-18px 0 40px color-mix(in oklch,var(--ink),transparent 82%)}.saved-deck-drawer:not([open]){display:none}.saved-deck-drawer[open]{display:block;animation:saved-deck-drawer-in .24s var(--ease-out)}.saved-deck-drawer::backdrop{background:color-mix(in oklch,var(--ink),transparent 60%)}body:has(.saved-deck-drawer[open]){overflow:hidden}@keyframes saved-deck-drawer-in{0%{transform:translate(32px);opacity:0}to{transform:none;opacity:1}}.saved-deck-preview{display:grid;grid-template-rows:auto minmax(0,1fr);height:100%}.saved-deck-preview__header{display:flex;align-items:start;justify-content:space-between;gap:16px;padding:18px 20px 14px;border-bottom:1px solid var(--line)}.saved-deck-preview__header>div{display:grid;gap:4px;min-width:0}.saved-deck-preview__header span{color:var(--muted);font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.04em}.saved-deck-preview__header h4{margin:0;font-size:18px}.saved-deck-preview__header p{margin:0;max-width:70ch;color:var(--muted);font-size:12px;line-height:1.5}.saved-deck-preview__close{flex:0 0 auto;width:44px;height:44px;border:1px solid var(--line);border-radius:8px;color:var(--ink);background:transparent;font-size:25px;line-height:1;cursor:pointer}.saved-deck-preview__close:hover{border-color:var(--accent)}.saved-deck-preview__close:focus-visible{outline:3px solid var(--focus);outline-offset:2px}.saved-deck-preview__body{min-height:0;overflow-y:auto;overscroll-behavior:contain;padding:16px 20px max(16px,env(safe-area-inset-bottom))}.saved-deck-preview__body .card-browser__inspector{position:sticky;top:0}.saved-deck-preview__status{margin:0 0 12px;font-size:12px;line-height:1.5;color:var(--muted)}@media(max-width:700px){.saved-deck-drawer{width:100vw;border-left:0}.saved-deck-preview__header{padding:14px 14px 12px}.saved-deck-preview__body{padding:12px 14px max(12px,env(safe-area-inset-bottom))}}@media(prefers-reduced-motion:reduce){.saved-deck-drawer[open]{animation:none}}.saved-match__advanced,.saved-match__history{border-top:1px solid var(--line);margin-top:20px;padding-top:14px}.saved-match__advanced summary,.saved-match__history summary{cursor:pointer;font-size:13px;font-weight:700;padding-block:8px}.saved-match__advanced-fields{padding-top:12px}.lab-panel.is-workspace .saved-match__advanced-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 24px}.lab-panel.is-workspace .saved-match__advanced-fields>small{grid-column:1 / -1;max-width:none}.setting-group small.saved-match__readiness{max-width:none;font-size:13px;line-height:1.5;margin:20px 0 12px}.lab-panel.is-workspace .lab-section-action{max-width:400px;min-height:46px;font-size:14px}@media(max-width:700px){.play-area .lab-panel.is-workspace{padding:18px 14px}.lab-panel.is-workspace .saved-match__layout{grid-template-columns:minmax(0,1fr);gap:12px}.lab-panel.is-workspace .saved-match__advanced-fields{grid-template-columns:minmax(0,1fr)}.matchup-preview-panel.is-lab .matchup-preview-panel__board{min-height:220px}}.deck-lab__controls{align-items:start}.deck-lab__controls>button{margin-top:18px}.deck-lab__controls .saved-deck-select{flex:1 1 260px;max-width:400px}.deck-lab__controls .saved-deck-select select{width:100%}.world-foundations{max-width:1200px;margin:24px auto;color:var(--ink)}.world-foundations>header{margin-bottom:24px}.world-foundations h2{font-size:22px;margin:0 0 8px}.world-foundations h3{font-size:17px;margin:20px 0 12px}.world-foundations p{max-width:72ch;line-height:1.6;font-size:14px}.world-foundations__layout{display:grid;grid-template-columns:250px minmax(0,1fr);gap:32px}.world-foundations aside{min-width:0}.world-foundations label{display:grid;gap:8px;margin-bottom:18px;font-size:14px;font-weight:600}.world-foundations :is(input,textarea,select){width:100%;min-width:0;box-sizing:border-box;padding:10px 12px;border:1px solid var(--line);border-radius:6px;color:var(--ink);background:var(--surface);font:inherit;font-size:14px;line-height:1.6}.world-foundations textarea{resize:vertical;font-weight:400}.world-foundations button,.narrative-lab__views button{min-height:40px;padding:8px 12px;border:1px solid var(--line);border-radius:6px;color:var(--ink);background:var(--surface);font:inherit;font-size:13px;cursor:pointer}.world-foundations button:hover:not(:disabled),.narrative-lab__views button:hover:not(:disabled){border-color:var(--primary)}.world-foundations [aria-pressed=true],.narrative-lab__views [aria-pressed=true]{background:var(--primary-pale);color:var(--primary-deep);border-color:var(--primary)}.world-foundations :is(button,input,select,textarea,summary):focus-visible,.narrative-lab__views button:focus-visible{outline:3px solid var(--accent);outline-offset:2px}.world-foundations button:disabled,.narrative-lab__views button:disabled{opacity:.6;cursor:default}.world-foundations aside ul{padding:0;list-style:none}.world-foundations aside li{margin-bottom:8px}.world-foundations aside button{width:100%;text-align:left;overflow-wrap:anywhere}.world-foundations small{display:block;margin-top:6px}.world-foundations fieldset{padding:0;border:0;min-width:0}.world-foundations details{border-top:1px solid var(--line);padding:14px 0}.world-foundations summary{cursor:pointer;font-size:14px;font-weight:600;padding:4px 0}.world-foundations details label{margin-top:16px}.world-foundations__actions{display:flex;flex-wrap:wrap;gap:8px}.world-foundations__actions button[type=submit]{background:var(--primary);color:var(--on-primary, white)}.world-foundations__prose{white-space:pre-wrap;overflow-wrap:anywhere}.world-foundations [role=alert]{padding:12px;border:1px solid var(--line);background:var(--surface-raised)}.narrative-lab__views{display:flex;flex-wrap:wrap;gap:8px;max-width:1440px;margin:0 auto 24px}@media(max-width:720px){.world-foundations__layout{grid-template-columns:minmax(0,1fr);gap:16px}.world-foundations aside{border-bottom:1px solid var(--line);padding-bottom:16px}}.world-foundations-page{padding:24px}.world-foundations-page>nav{display:flex;flex-wrap:wrap;gap:20px;max-width:1200px;margin:auto;font-size:14px}.world-foundations__editor{min-width:0}.world-foundations__document{max-width:72ch;overflow-wrap:anywhere;font-size:14px;line-height:1.7}.world-foundations__document h4{font-size:16px;margin:24px 0 10px}.world-foundations__document p{white-space:pre-line}.world-foundations__document :is(ul,ol){padding-left:24px}.world-foundations__document li{margin:6px 0}.world-foundations__document blockquote{margin:16px 0;padding-left:16px;border-left:2px solid var(--line)}.world-foundations__document hr{border:0;border-top:1px solid var(--line);margin:24px 0}@media(max-width:720px){.world-foundations-page{padding:16px}}.play-area .match-shell .hand-list{display:flex;flex-flow:row wrap;align-content:center;align-items:center;justify-content:center;gap:6px;height:220px;min-height:0;overflow:hidden;padding:4px}.play-area .match-shell .hand-list .hand-card-slot{flex:0 0 var(--fitted-card-width, 72px);width:var(--fitted-card-width, 72px);height:calc(var(--fitted-card-width, 72px) * 1.3);min-height:0;max-height:none;max-width:none}.play-area .match-shell .hand-card-item,.play-area .match-shell .hand-card{width:100%;height:100%;min-height:0}.play-area .match-shell .hand-card{display:flex;flex-direction:column;padding:2px}.play-area .match-shell .hand-card svg{flex:1 1 0;min-height:0;width:100%;height:0;margin:0}.play-area .match-shell .hand-card__name{flex:0 0 auto;width:100%;font-size:10px}.play-area .match-shell .hand-card__meta,.play-area .match-shell .hand-card__tactic-reason{display:none}@media(min-width:960px){.play-area .match-shell--duel .hand-list{height:100%}.fieldside-mobile-sheet--revealed{inset:76px auto auto 16px;width:340px;height:min(760px,calc(100dvh - 92px));min-height:0;border-radius:12px;animation:none}}@media(max-width:959px){.play-area .match-shell .hand-list{height:180px}}@media(max-height:500px){.play-area .match-shell .hand-list{height:100px}}.match-settings-layout{display:grid;gap:8px;padding:11px 12px}.match-settings-layout select{width:100%;min-height:44px;padding:8px;border:1px solid var(--line);border-radius:8px;color:var(--ink);background:var(--surface);font:inherit}@container match-column (width < 1440px) or (height < 681px){.play-area .match-shell--duel{display:grid;grid-template-columns:clamp(78px,22cqw,240px) minmax(0,1fr);grid-template-rows:auto minmax(0,1fr);grid-template-areas:"hand opponent" "hand board"}.play-area .match-shell--duel .opponent-zone{grid-area:opponent;min-width:0;padding:12px 48px 8px 8px}.play-area .match-shell--duel .hand-zone{grid-area:hand;display:flex;flex-direction:column;min-height:0;min-width:0;padding:12px 4px 4px;border-top:0}.play-area .match-shell--duel .hand-heading{display:none}.play-area .match-shell--duel .hand-tray-toolbar{flex:0 0 auto}.play-area .match-shell--duel .player-hand-presentation{flex:1 1 0;min-height:0;display:flex;flex-direction:column}.play-area .match-shell--duel .pile-chrome{flex:0 0 auto;flex-direction:row;justify-content:center;flex-wrap:wrap}.play-area .match-shell--duel .hand-list{flex:1 1 0;width:100%;height:100%}.play-area .match-shell--duel .match-board-region{grid-area:board;min-width:0;min-height:0}.play-area .match-shell--duel .fieldside-stage{display:flex;min-height:0}.play-area .match-shell--duel .fieldside-inspector{position:absolute;z-index:5;left:0;top:0;width:min(320px,90%);max-height:100%;overflow-y:auto;visibility:hidden}.play-area .match-shell--duel .fieldside-inspector.has-card{visibility:visible}.play-area .match-shell--duel .fieldside-board-column{width:100%;min-width:0;min-height:0}.play-area .match-shell--duel .board-wrap{min-height:0;max-height:none;padding:4px}.play-area .match-shell--duel .board{width:100%;min-height:0;max-height:100%;transform:none}}.ability-authoring{margin-block:1.5rem;padding-block:1.25rem;border-top:1px solid var(--line, #d9dee5)}.ability-authoring label{display:grid;gap:.35rem;margin-block:.75rem}.ability-authoring input,.ability-authoring select,.ability-authoring textarea{width:100%;min-width:0;padding:.55rem;font:inherit}.ability-authoring input[type=checkbox]{width:auto;justify-self:start}.ability-authoring__fields{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0 1rem}.ability-authoring__actions{display:flex;flex-wrap:wrap;gap:.5rem;margin-block:1rem}.ability-authoring fieldset{margin-block:1rem;min-width:0}@media(max-width:640px){.ability-authoring__fields{grid-template-columns:1fr}}.ability-inventory__header-actions{display:flex;flex-wrap:wrap;align-items:center;gap:12px}.ability-add{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:40px;padding:8px 13px;border:1px solid var(--line);border-radius:7px;background:var(--surface);color:var(--ink);font-size:13px;font-weight:650;text-decoration:none;white-space:nowrap}.ability-add span{font-size:20px;font-weight:400;line-height:1}.ability-add:hover{border-color:var(--accent);background:var(--accent-pale)}.ability-add:focus-visible{outline:3px solid var(--focus);outline-offset:3px}.ability-add:active{background:var(--empty)}.ability-create{max-width:820px;margin-inline:auto;padding:32px 32px 64px}.ability-create__header h1{margin:0 0 10px;font-size:28px;letter-spacing:-.03em}.ability-create__header p{margin:0;color:var(--muted);font-size:14px;line-height:1.6}.ability-authoring--create{margin-top:28px;padding:0;border:0}.ability-authoring--create>details{margin-top:24px;color:var(--muted);font-size:12px}.ability-authoring--create summary{cursor:pointer;width:fit-content}.ability-authoring--create fieldset{margin:0 0 28px;padding:0;border:0}.ability-authoring--create legend{width:100%;margin-bottom:6px;padding:0 0 10px;border-bottom:1px solid var(--line);font-size:15px;font-weight:700}.ability-create__fields{display:grid;grid-template-columns:1fr 1fr;gap:0 24px;align-items:start}.ability-authoring--create label{gap:8px;margin-block:12px 0;font-size:13px;font-weight:600}.ability-authoring--create input,.ability-authoring--create select,.ability-authoring--create textarea{min-height:42px;border:1px solid var(--line);border-radius:6px;padding:10px 12px;background:var(--surface);color:var(--ink);font-size:14px;font-weight:400}.ability-authoring--create textarea{resize:vertical;line-height:1.5}.ability-authoring--create textarea::placeholder{color:var(--muted)}.ability-authoring--create :is(input,select,textarea):hover{border-color:var(--muted)}.ability-authoring--create :is(input,select,textarea,summary):focus-visible{outline:2px solid var(--focus);outline-offset:3px}.ability-authoring--create small{color:var(--muted);font-size:11px;font-weight:400;line-height:1.5}.ability-create__footer{border-top:1px solid var(--line);padding-top:20px;display:flex;align-items:center;justify-content:space-between;gap:24px}.ability-create__footer p{max-width:35ch;margin:0;color:var(--muted);font-size:12px;line-height:1.6}.ability-create__footer .ability-authoring__actions{flex-wrap:nowrap;margin:0}.ability-create__footer button{min-height:42px;border:0;border-radius:6px;padding:10px 16px;font-size:13px;font-weight:650;cursor:pointer;white-space:nowrap}.ability-create__cancel{color:var(--ink);background:transparent}.ability-create__cancel:hover{background:var(--empty)}.ability-create__submit{color:var(--surface);background:var(--accent)}.ability-create__submit:hover{background:var(--ink)}.ability-create__footer button:disabled{opacity:.55;cursor:wait}.ability-authoring--create [role=status],.ability-authoring--create [role=alert]{font-size:14px;line-height:1.5;overflow-wrap:anywhere}@media(max-width:640px){.ability-create{padding:24px 20px 40px}.ability-create__fields{grid-template-columns:1fr;gap:4px}.ability-create__footer{align-items:stretch;flex-direction:column;gap:16px}.ability-create__footer .ability-authoring__actions{justify-content:flex-end}}
