:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;--rail-w:clamp(140px, 12.5vw, 220px);--bottom-h:clamp(120px, 16.5vh, 200px);--topbar-h:clamp(40px, 6vh, 56px);--hud-gap:8px;--z-canvas:0;--z-hud:10;--z-hud-pop:40;--card-w-inplay:72px;--card-w-draw-discard:68px;--hand-card-w:84px;--hand-max-fan-w:8vw;--hand-shift-left:28px;--chrome-bg:#0b0e14;--chrome-bg-alt:#12151d;--panel-accent:#3ad0b0;--faction-accent:var(--panel-accent);--radius-sm:2px;--radius-md:6px;--space-1:4px;--space-2:8px;--modal-inset:16px;--modal-w:25vw;--modal-h:80vh;--resource-crystal-accent:#35c7e6;--resource-gas-accent:#3fbf5a;--worker-count-accent:#f0902a;--worker-icon-size:52px;--worker-icon-size-detail:60px;--console-panel-w:min(480px, 34vw);--console-panel-h:min(70vh, 620px);--console-font:ui-monospace, SFMono-Regular, Menlo, Consolas, "Liberation Mono", monospace;--console-tabbar-h:26px}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial}}html,body,#root{width:100%;height:100%;margin:0}#app-root{width:100vw;height:100vh;position:relative;overflow:hidden}canvas{display:block}.map-viewport{z-index:var(--z-canvas);position:fixed;inset:0}.hud-overlay{z-index:var(--z-hud);pointer-events:none;position:fixed;inset:0}.hud-topbar{width:100vw;height:var(--topbar-h);pointer-events:none;box-sizing:border-box;padding:0 var(--space-2);justify-content:center;align-items:center;display:flex;position:fixed;top:0;left:0}.hud-topbar__phase-strip{pointer-events:auto;border-radius:var(--radius-md);background:#0b0e14b3;border:1px solid #3ad0b04d;gap:2px;padding:3px;display:flex}.hud-topbar__phase{letter-spacing:.06em;color:#7b8394;border-radius:var(--radius-sm);-webkit-user-select:none;user-select:none;padding:4px 10px;font-size:11px;font-weight:700}.hud-topbar__phase--active{color:#0b0e14;background:var(--faction-accent)}.hud-topbar__menu{pointer-events:auto;top:calc((var(--topbar-h) - 30px) / 2);right:var(--space-2);position:fixed}.hud-topbar__menu-button{border-radius:var(--radius-sm);cursor:pointer;background:#0b0e14b3;border:1px solid #3ad0b04d;flex-direction:column;justify-content:center;align-items:center;gap:4px;width:34px;height:30px;display:flex}.hud-topbar__menu-button span{background:#cfd6e4;width:16px;height:2px}.hud-topbar__menu-popover{top:calc(100% + var(--space-1));min-width:160px;padding:var(--space-2);background:var(--chrome-bg-alt);border-radius:var(--radius-md);border:1px solid #3ad0b04d;flex-direction:column;gap:2px;display:flex;position:absolute;right:0;box-shadow:0 4px 16px #0006}.hud-topbar__menu-popover-title{letter-spacing:.04em;color:#cfd6e4;font-size:12px;font-weight:700}.hud-topbar__menu-popover-note{color:#7b8394;font-size:11px}.hud-faction-badge{letter-spacing:.03em;color:#f5f5f5;text-shadow:0 1px 2px #0009;-webkit-user-select:none;user-select:none;border:2px solid;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-weight:700;display:flex;overflow:hidden}.hud-faction-badge--image{background:var(--chrome-bg-alt)}.hud-faction-badge__img{object-fit:contain;width:100%;height:100%}.hud-token-chip{border-radius:var(--radius-md);font-variant-numeric:tabular-nums;border:1.5px solid;justify-content:center;align-items:center;font-weight:700;line-height:1;display:inline-flex}.hud-token-chip--sm{min-width:18px;height:18px;padding:0 4px;font-size:10px}.hud-token-chip--md{min-width:24px;height:24px;padding:0 6px;font-size:13px}.hud-token-chip--lg{min-width:34px;height:34px;padding:0 8px;font-size:20px}.hud-player-card{gap:var(--space-1);padding:var(--space-2);border-radius:var(--radius-md);background:var(--chrome-bg-alt);border:1px solid #ffffff0f;flex-direction:column;transition:background .12s;display:flex;position:relative}.hud-player-card:hover{background:#1a2030}.hud-player-card__active-indicator{background:var(--faction-accent);width:9px;height:9px;box-shadow:0 0 6px 1px var(--faction-accent);position:absolute;top:6px;right:6px}.hud-player-card__top{align-items:center;gap:var(--space-2);display:flex}.hud-player-card__names{min-width:0}.hud-player-card__name{color:#f0f0f0;white-space:nowrap;text-overflow:ellipsis;font-size:12px;font-weight:600;overflow:hidden}.hud-player-card__leader{color:#9aa3b5;white-space:nowrap;text-overflow:ellipsis;font-size:10px;overflow:hidden}.hud-player-card__mid{align-items:baseline;gap:var(--space-2);display:flex}.hud-player-card__conquest{color:#f5f5f5;font-size:22px;font-weight:800;line-height:1}.hud-player-card__unit-strip{gap:3px;display:flex}.hud-player-card__unit-swatch{border-radius:1px;flex:1;height:8px}.hud-left-rail{left:0;top:var(--topbar-h);width:var(--rail-w);height:calc(100vh - var(--topbar-h) - var(--bottom-h));pointer-events:auto;gap:var(--space-2);padding:var(--space-2);box-sizing:border-box;background:linear-gradient(180deg, var(--chrome-bg) 0%, #0b0e14d9 100%);border-right:1px solid #3ad0b040;flex-direction:column;display:flex;position:fixed;overflow-y:auto}.hud-faction-panel{padding:0 var(--space-2);flex-direction:column;flex-shrink:0;align-items:center;gap:4px;display:flex}.hud-faction-panel__name{color:#cfd6e4;white-space:nowrap;text-overflow:ellipsis;text-align:center;border-top:1px solid var(--faction-accent);max-width:76px;padding-top:3px;font-size:10px;font-weight:600;overflow:hidden}.hud-modal{top:var(--modal-inset);left:var(--modal-inset);width:var(--modal-w);height:var(--modal-h);z-index:var(--z-hud-pop);pointer-events:auto;box-sizing:border-box;padding:var(--space-2);border-radius:var(--radius-md);background:#0b0e14f0;border:1px solid #3ad0b059;outline:none;flex-direction:column;transition:opacity .12s;display:flex;position:fixed;box-shadow:0 8px 32px #0009}.hud-modal--placement-drag{opacity:.18;pointer-events:none;transition:opacity .12s}.hud-modal{--hud-modal-close-size:24px;--hud-modal-close-inset:6px}.hud-modal__close{top:var(--hud-modal-close-inset);right:var(--hud-modal-close-inset);width:var(--hud-modal-close-size);height:var(--hud-modal-close-size);color:#d6e2e0;border-radius:var(--radius-sm);cursor:pointer;background:#ffffff0f;border:1px solid #ffffff26;justify-content:center;align-items:center;padding:0;font-size:18px;line-height:1;display:flex;position:absolute}.hud-modal__close:hover{background:#ffffff24}.hud-modal__content{flex:auto;min-height:0;overflow:auto}.build-modal,.parking-modal{color:#d6e2e0;flex-direction:column;height:100%;min-height:0;font-size:12px;display:flex}.build-modal__title,.parking-modal__title{margin:0 0 var(--space-2);letter-spacing:.04em;color:#eaf3f1;font-size:15px;font-weight:600}.build-modal__subtitle{margin:0 0 var(--space-1);text-transform:uppercase;letter-spacing:.08em;color:#9aa3b5;font-size:11px;font-weight:600}.build-modal__divider{height:1px;margin:var(--space-2) 0;background:#ffffff1a;flex-shrink:0}.build-modal__flat{gap:var(--space-2);flex-shrink:0;grid-template-columns:1fr 1fr;display:grid}.build-modal__units{flex-direction:column;flex:auto;min-height:0;display:flex}.build-modal__unit-grid{gap:var(--space-2);padding-top:var(--space-1);flex:auto;grid-template-columns:repeat(auto-fill,minmax(78px,1fr));align-content:start;min-height:0;display:grid;overflow-y:auto}.build-modal__empty{color:#9aa3b5;grid-column:1/-1;font-style:italic}.build-modal__next-step{margin-top:var(--space-2);padding-top:var(--space-2);border-top:1px solid #ffffff1a;flex-direction:column;flex-shrink:0;align-items:stretch;gap:4px;display:flex}.build-modal__next-step-hint{color:#9aa3b5;margin:0;font-size:10px;font-style:italic}.build-modal__next-step-button{color:#eaf3f1;border-radius:var(--radius-sm);cursor:pointer;background:#3ad0b029;border:1px solid #3ad0b08c;padding:7px 12px;font-size:13px;font-weight:600}.build-modal__next-step-button:hover:not(:disabled){background:#3ad0b047}.build-modal__next-step-button:disabled{opacity:.4;cursor:default}.build-track-tabs{justify-content:center;align-items:flex-end;gap:var(--space-2);margin-bottom:var(--space-2);min-height:116px;display:flex}.build-track-tab{color:#9aa3b5;cursor:pointer;opacity:.5;background:0 0;border:none;flex-direction:column;align-items:center;gap:4px;padding:4px;transition:opacity .15s,transform .15s;display:flex;transform:scale(.8)}.build-track-tab--empty{visibility:hidden;width:60px}.build-track-tab--selected{opacity:1;color:#eaf3f1;cursor:default;transform:scale(1)}.build-track-tab__icon{object-fit:contain;border-radius:var(--radius-sm);background:#ffffff0a;width:148px;height:68px;box-shadow:inset 0 0 0 1px #ffffff14}.build-track-tab--selected .build-track-tab__icon{box-shadow:inset 0 0 0 1px #3ad0b099,0 0 10px 1px #3ad0b059}.build-track-tab__icon--placeholder{background:repeating-linear-gradient(45deg,#ffffff0d,#ffffff0d 6px,#ffffff05 6px 12px);display:inline-block}.build-track-tab__name{text-align:center;white-space:nowrap;text-overflow:ellipsis;max-width:78px;font-size:10px;overflow:hidden}.build-model-tile{border-radius:var(--radius-sm);cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none;background:#ffffff08;border:1px solid #ffffff14;flex-direction:column;align-items:center;gap:2px;min-width:0;padding:4px;transition:border-color .15s,background .15s;display:flex}.build-model-tile:hover{background:#3ad0b014;border-color:#3ad0b08c}.build-model-tile:active{cursor:grabbing}.build-model-tile__canvas{width:100%;height:64px}.build-model-tile__image{object-fit:contain;width:100%;height:100%}.build-model-tile__label{color:#c3ccdb;text-align:center;white-space:nowrap;text-overflow:ellipsis;max-width:100%;font-size:10px;overflow:hidden}.build-purchase-tile{flex-direction:column;align-items:center;gap:2px;display:flex}.build-purchase-tile__cost{color:#9aa3b5;font-size:10px}.parking-modal__header{justify-content:space-between;align-items:center;gap:var(--space-2);padding-right:calc(var(--hud-modal-close-inset) + var(--hud-modal-close-size) + var(--space-2));flex-shrink:0;display:flex}.parking-modal__clear{color:#d6e2e0;border-radius:var(--radius-sm);cursor:pointer;background:#ffffff0f;border:1px solid #ffffff26;padding:3px 10px;font-size:11px}.parking-modal__clear:hover:not(:disabled){background:#ffffff24}.parking-modal__clear:disabled{opacity:.4;cursor:default}.parking-modal__drop{min-height:0;margin:var(--space-2) 0;border-radius:var(--radius-sm);background:radial-gradient(at 50% 35%,#3ad0b014,#0b0e1433);border:1px dashed #3ad0b066;flex:auto;position:relative;overflow:hidden}.parking-modal__placement-hint{padding-top:var(--space-1);color:#9aa3b5;flex-shrink:0;margin:0;font-size:11px;font-style:italic}.parking-modal__hint{color:#7c869a;pointer-events:none;justify-content:center;align-items:center;margin:0;font-style:italic;display:flex;position:absolute;inset:0}.build-drag-ghost{z-index:calc(var(--z-hud-pop,40) + 5);border-radius:var(--radius-sm);color:#eaf3f1;pointer-events:none;-webkit-user-select:none;user-select:none;background:#0b0e14eb;border:1px solid #3ad0b099;align-items:center;gap:6px;padding:4px 10px;font-size:12px;display:flex;position:fixed;top:0;left:0}.build-drag-ghost__swatch{border-radius:3px;width:14px;height:14px;box-shadow:inset 0 0 0 1px #fff3}.parking-modal__resources{gap:var(--space-2);padding-top:var(--space-1);flex-shrink:0;display:flex}.parking-modal__resource-area{border-radius:var(--radius-sm);background:#ffffff08;border:1px solid #ffffff14;flex-direction:column;flex:1 1 0;gap:4px;padding:6px 10px;display:flex}.parking-modal__resource-area-label{letter-spacing:.08em;text-transform:uppercase;color:#9aa3b5;font-size:10px;font-weight:700}.parking-modal__resource-values{gap:var(--space-3);display:flex}.parking-modal__resource-item{color:#c3ccdb;align-items:center;gap:4px;font-size:13px;display:flex}.parking-modal__resource-item strong{font-size:16px;font-weight:700}.parking-modal__resource-icon{object-fit:contain;width:18px;height:18px}.parking-modal__resource-item--crystal strong{color:#6fb7ff}.parking-modal__resource-item--gas strong{color:#6fe0a0}.parking-modal__resource-item--shortfall strong{color:#ff7a7a}.parking-modal__item-cost-chip{top:var(--space-1);right:var(--space-1);border-radius:var(--radius-sm);color:#eaf3f1;background:#0b0e14d9;border:1px solid #3ad0b080;gap:10px;padding:3px 9px;font-size:12px;font-weight:700;display:flex;position:absolute}.parking-modal__item-cost-chip-value--crystal{color:#6fb7ff}.parking-modal__item-cost-chip-value--gas{color:#6fe0a0}.hud-buildable-units{align-items:center;gap:var(--space-2);padding:0 var(--space-2);flex-shrink:0;display:flex}.hud-buildable-units__grid{grid-template-columns:repeat(4,1fr);gap:3px;display:grid}.hud-buildable-units__open-build{letter-spacing:.04em;color:#eaf3f1;border-radius:var(--radius-sm);cursor:pointer;white-space:nowrap;background:#3ad0b024;border:1px solid #3ad0b080;flex-shrink:0;padding:6px 10px;font-size:11px;font-weight:600}.hud-buildable-units__open-build:hover{background:#3ad0b03d}.hud-buildable-units__tile{flex-direction:column;align-items:center;gap:2px;width:40px;display:flex}.hud-buildable-units__swatch{border-radius:var(--radius-sm);width:22px;height:22px;box-shadow:inset 0 0 0 1px #ffffff26}.hud-buildable-units__label{color:#9aa3b5;text-align:center;white-space:nowrap;text-overflow:ellipsis;max-width:40px;font-size:8px;line-height:1.1;overflow:hidden}.hud-buildable-units__tile--draggable{cursor:grab}.hud-buildable-units__tile--draggable .hud-buildable-units__swatch{box-shadow:inset 0 0 0 1px #ffffff26,0 0 4px 1px #3ad0b099}.hud-buildable-units__tile--inert{opacity:.45}.hud-buildable-units__floating{z-index:var(--z-hud-pop,40);pointer-events:none;position:fixed;top:0;left:0}.hud-slot-box{border-radius:var(--radius-sm);box-sizing:border-box;background:#b23b3b14;border:1.5px solid #b23b3b}.hud-slot-box--filled{background:#b23b3b;border-color:#e07a7a}.hud-module-slots{padding:0 var(--space-2);flex-shrink:0;grid-template-columns:repeat(3,1fr);gap:4px;display:grid}.hud-card{border-radius:var(--radius-sm);background:var(--chrome-bg-alt);cursor:pointer;outline:none;position:relative;overflow:hidden;box-shadow:0 0 0 1px #ffffff14}.hud-card:focus-visible{box-shadow:0 0 0 2px var(--panel-accent)}.hud-card__img{object-fit:cover;opacity:0;width:100%;height:100%;transition:opacity .16s;display:block}.hud-card__img--loaded{opacity:1}.hud-card__placeholder{background:linear-gradient(135deg,#1a1e29 25%,#232a3a 50%,#1a1e29 75%) 0 0/200% 200%;transition:opacity .16s;animation:1.4s ease-in-out infinite hud-card-shimmer;position:absolute;inset:0}.hud-card__placeholder--hidden{opacity:0}@keyframes hud-card-shimmer{0%{background-position:0%}to{background-position:100%}}.hud-card__face-placeholder{box-sizing:border-box;border-radius:inherit;text-align:center;color:#ffffffd1;background:linear-gradient(160deg,#232a3a 0%,#1a1e29 100%);border:1px dashed #ffffff2e;flex-direction:column;justify-content:space-between;align-items:center;gap:4%;padding:8% 6%;display:flex;position:absolute;inset:0;container-type:inline-size}.hud-card__face-name{overflow-wrap:anywhere;font-size:clamp(8px,13cqw,22px);font-weight:600;line-height:1.15}.hud-card__face-stats{justify-content:center;gap:12%;width:100%;display:flex}.hud-card__face-stat{border-radius:var(--radius-sm);font-variant-numeric:tabular-nums;min-width:1.6em;padding:.1em .35em;font-size:clamp(9px,16cqw,26px);font-weight:700}.hud-card__face-stat--attack{color:#ffd7d2;background:#d2463c52}.hud-card__face-stat--defense{color:#d2e2ff;background:#4678d252}.hud-card-enlarged{pointer-events:auto;border-radius:var(--radius-md);box-shadow:0 8px 28px #0009, 0 0 0 2px var(--panel-accent);animation:.12s ease-out hud-card-enlarge-in;position:fixed;overflow:hidden}.hud-card-enlarged img{object-fit:cover;width:100%;height:100%;display:block}@keyframes hud-card-enlarge-in{0%{opacity:0;transform:scale(.92)}to{opacity:1;transform:scale(1)}}.hud-event-cards{justify-content:center;align-items:center;gap:var(--space-2);flex:auto;min-width:0;display:flex}.resource-modal{gap:var(--space-2);color:#e6efee;flex-direction:column;font:500 13px/1.3 system-ui,sans-serif;display:flex}.resource-modal__title{letter-spacing:.04em;text-transform:uppercase;color:#cfe9e2;margin:0;font-size:15px;font-weight:700}.resource-modal__pool{align-items:center;gap:var(--space-2);padding:var(--space-2);border-radius:var(--radius-md);background:#ffffff0a;border:1px dashed #3ad0b059;display:flex}.resource-modal__pool--active{border-color:var(--panel-accent);background:#3ad0b024}.resource-modal__pool-label{letter-spacing:.03em;font-weight:700}.resource-modal__live-hint{color:#9aa3b5;margin:0;font-size:11px;font-style:italic}.resource-modal__grid{gap:var(--space-2);flex-direction:column;display:flex}.resource-modal__header-row{gap:var(--space-2);display:flex}.resource-modal__header{border-radius:var(--radius-sm);outline:2px solid #0000;flex-shrink:0;transition:outline-color 80ms;position:relative}.resource-modal__header--active{outline-color:var(--panel-accent)}.resource-modal__column-header{border-radius:var(--radius-sm);-webkit-user-select:none;user-select:none;flex-shrink:0;display:block}.resource-modal__row{gap:var(--space-2);display:flex}.resource-modal__column{flex-shrink:0;position:relative}.resource-modal__card{border-radius:var(--radius-sm);outline:2px solid #0000;transition:outline-color 80ms;position:absolute;left:0;overflow:hidden;box-shadow:0 2px 6px #00000080}.resource-modal__card--active{outline-color:var(--panel-accent)}.resource-modal__card-art{object-fit:cover;-webkit-user-select:none;user-select:none;width:100%;height:100%;position:absolute;inset:0}.resource-modal__card-snap-anchor{pointer-events:none;position:absolute;top:0;left:0}.resource-modal__card-workers{position:absolute;top:50%;left:6%;transform:translateY(-50%)}.resource-modal__card-workers--staged{left:50%;transform:translate(-50%,-50%)}.resource-modal__card-workers--staged .resource-modal__worker-count{color:var(--panel-accent)}.resource-modal__worker{background:0 0;border:none;align-items:center;gap:2px;padding:2px;display:inline-flex}.resource-modal__worker--source{cursor:grab;touch-action:none}.resource-modal__worker--source:active{cursor:grabbing}.resource-modal__worker--exhausted{opacity:.4}.resource-modal__worker-icon{width:var(--worker-icon-size-detail);height:var(--worker-icon-size-detail);object-fit:contain;pointer-events:none;filter:drop-shadow(0 1px 2px #000c)}.resource-modal__worker-count{color:var(--worker-count-accent);text-shadow:0 1px 2px #000000e6;font-size:15px;font-weight:800}.resource-modal__worker--floating{z-index:calc(var(--z-hud-pop) + 1);pointer-events:none;opacity:.9;position:fixed;top:0;left:0}.resource-summary{pointer-events:auto;align-items:flex-start;gap:var(--space-2);padding:var(--space-2);border-radius:var(--radius-md);cursor:pointer;background:#0b0e148c;border:1px solid #3ad0b040;flex-direction:column;flex-shrink:0;display:flex}.resource-summary:focus-visible{outline:2px solid var(--panel-accent);outline-offset:2px}.resource-summary__resources-row{align-items:center;gap:var(--space-2);display:flex}.resource-summary__workerpool{flex-shrink:0;position:relative}.resource-summary__workerpool-bg{object-fit:fill;-webkit-user-select:none;user-select:none;width:100%;height:100%;position:absolute;inset:0}.resource-summary__pool-number{color:var(--worker-count-accent);opacity:.8;text-shadow:0 0 3px #000000e6,0 1px 2px #000000f2;font:800 22px/1 system-ui,sans-serif;position:absolute;top:50%;transform:translate(-50%,-50%)}.resource-summary__field{flex-shrink:0;position:relative}.resource-summary__field-bg{object-fit:fill;border-radius:var(--radius-sm);-webkit-user-select:none;user-select:none;width:100%;height:100%;position:absolute;inset:0}.resource-summary__worker-cluster{align-items:center;gap:1px;display:flex;position:absolute;top:50%;transform:translate(-50%,-50%)}.resource-summary__worker-icon{width:var(--worker-icon-size);height:var(--worker-icon-size);object-fit:contain;filter:drop-shadow(0 1px 2px #000c);-webkit-user-select:none;user-select:none}.resource-summary__worker-count{color:var(--worker-count-accent);text-shadow:0 1px 2px #000000f2;font:800 15px/1 system-ui,sans-serif}.resource-summary__value{text-shadow:0 0 4px #000000d9,0 1px 2px #000000e6;font:800 28px/1 system-ui,sans-serif;position:absolute;top:50%;transform:translate(-50%,-50%)}.resource-summary__field--crystal .resource-summary__value{color:var(--resource-crystal-accent)}.resource-summary__field--gas .resource-summary__value{color:var(--resource-gas-accent)}.hud-hand{pointer-events:auto;flex-grow:0;flex-shrink:0;justify-content:center;align-items:center;height:100%;display:flex;position:relative;overflow:visible}.hud-hand__fan{position:relative}.hud-hand__card{transform-origin:50%;will-change:transform;cursor:pointer;transition:transform .18s cubic-bezier(.2,.8,.3,1);position:absolute;top:50%;left:50%}.hud-hand__card--selected{filter:drop-shadow(0 0 6px var(--panel-accent))}.hud-cardback{border-radius:var(--radius-sm);background:var(--chrome-bg-alt);position:relative;overflow:hidden;box-shadow:0 0 0 1px #ffffff14}.hud-cardback img{object-fit:cover;width:100%;height:100%;display:block}.hud-cardback__count{text-align:center;border-radius:var(--radius-sm);color:#fff;border:1px solid var(--panel-accent);background:#000000bf;min-width:18px;padding:1px 4px;font-size:11px;font-weight:700;position:absolute;bottom:3px;right:3px}.hud-draw-discard{padding:0 var(--space-2);flex-shrink:0;align-items:flex-end;gap:8px;display:flex}.hud-draw-discard__pile{flex-direction:column;align-items:center;gap:2px;display:flex}.hud-draw-discard__label{color:#7b8394;letter-spacing:.04em;font-size:9px}.hud-draw-discard__empty{border-radius:var(--radius-sm);background:0 0;border:1px dashed #ffffff2e;position:relative}.hud-draw-discard__empty-count{text-align:center;border-radius:var(--radius-sm);color:#fff;border:1px solid var(--panel-accent);background:#000000bf;min-width:18px;padding:1px 4px;font-size:11px;font-weight:700;position:absolute;bottom:3px;right:3px}.hud-bottom-bar{width:100vw;height:var(--bottom-h);pointer-events:auto;box-sizing:border-box;background:linear-gradient(0deg, var(--chrome-bg) 0%, #0b0e14eb 100%);border-top:1px solid #3ad0b040;align-items:center;display:flex;position:fixed;bottom:0;left:0;overflow:hidden}.hud-bottom-bar__left-cluster{flex:0 auto;align-items:center;height:100%;display:flex}.hud-bottom-bar__right-cluster{flex-shrink:0;align-items:flex-end;height:100%;display:flex}.hud-bottom-bar__right-cluster .hud-hand{margin-right:var(--hand-shift-left);flex:none}.hud-bottom-bar__divider{width:1px;margin:var(--space-2) 4px;background:#ffffff14;flex-shrink:0;align-self:stretch}.hud-play-boundary{top:calc(var(--topbar-h) + var(--hud-gap));left:calc(var(--rail-w) + var(--hud-gap));right:var(--hud-gap);bottom:calc(var(--bottom-h) + var(--hud-gap));border:1px solid var(--faction-accent);border-radius:var(--radius-md);pointer-events:none;position:fixed}.hud-pop-layer{z-index:var(--z-hud-pop);pointer-events:none;position:fixed;inset:0}.console-connect{padding:var(--space-2);font-family:var(--console-font);border-bottom:1px solid color-mix(in srgb, var(--faction-accent) 20%, transparent);flex-direction:column;flex:none;gap:4px;font-size:11px;display:flex}.console-connect__row{align-items:center;gap:var(--space-1);display:flex}.console-connect__row input,.console-connect__row select,.console-connect__row button{font-family:var(--console-font);background:var(--chrome-bg-alt);color:#d6e2e0;border:1px solid color-mix(in srgb, var(--faction-accent) 25%, transparent);border-radius:var(--radius-sm);padding:2px 4px;font-size:11px}.console-connect__row button{cursor:pointer}.console-connect__row button:disabled{opacity:.5;cursor:default}.console-connect__url,.console-connect__token{flex:auto;min-width:0}.console-connect__hotseat,.console-connect__maplive{color:#9db3af;white-space:nowrap;align-items:center;gap:3px;display:flex}.console-connect__indicator{white-space:nowrap;margin-left:auto}.console-connect__indicator--live{color:#4caf6b}.console-connect__indicator--reconnecting,.console-connect__indicator--resyncing{color:#e0b53a}.console-connect__indicator--offline{color:#d64545}.console-connect__hint{color:#6f8582;font-size:10px;line-height:1.3}.console-connect__notices{color:#9db3af;flex-direction:column;gap:2px;display:flex}.console-connect__notice{white-space:pre-wrap;overflow-wrap:anywhere}.console-tabs{padding:var(--space-1) var(--space-2);border-bottom:1px solid color-mix(in srgb, var(--faction-accent) 20%, transparent);flex-wrap:wrap;flex:none;gap:2px;display:flex}.console-tabs__tab{font-family:var(--console-font);color:#9db3af;border-radius:var(--radius-sm);cursor:pointer;background:0 0;border:1px solid #0000;padding:2px 6px;font-size:11px}.console-tabs__tab:hover{color:#d6e2e0;border-color:color-mix(in srgb, var(--faction-accent) 25%, transparent)}.console-tabs__tab--active{color:var(--console-accent,var(--faction-accent));border-color:var(--console-accent,var(--faction-accent));background:color-mix(in srgb, var(--console-accent,var(--faction-accent)) 10%, transparent)}.console-screen{flex-direction:column;flex:auto;min-height:0;display:flex}.console-screen__toolbar{align-items:center;gap:var(--space-2);padding:2px var(--space-2);font-family:var(--console-font);color:#9db3af;flex:none;font-size:11px;display:flex}.console-screen__toolbar select{font-family:var(--console-font);background:var(--chrome-bg-alt);color:#d6e2e0;border:1px solid color-mix(in srgb, var(--faction-accent) 25%, transparent);border-radius:var(--radius-sm);font-size:11px}.console-screen__raw-toggle{cursor:pointer;align-items:center;gap:4px;margin-left:auto;display:flex}.console-screen__status{padding:2px var(--space-2);font-family:var(--console-font);color:var(--console-accent,var(--faction-accent));white-space:pre;flex:none;font-size:12px;overflow-x:auto}.console-screen__body-scroll{min-height:0;padding:0 var(--space-2) var(--space-2);flex:auto;overflow:auto}.console-screen__body{font-family:var(--console-font);color:#d6e2e0;white-space:pre;margin:0;font-size:12px;line-height:1.4}.console-events{flex-direction:column;flex:auto;min-height:0;display:flex}.console-events__header{padding:2px var(--space-2);font-family:var(--console-font);letter-spacing:.05em;text-transform:uppercase;color:#6d8481;flex:none;font-size:10px}.console-events__scroll{min-height:0;padding:0 var(--space-2) var(--space-2);flex:auto;overflow:hidden auto}.console-events__empty{font-family:var(--console-font);color:#6d8481;font-size:11px}.console-events__line{gap:var(--space-1);font-family:var(--console-font);font-size:11px;line-height:1.5;display:flex}.console-events__seq{color:#6d8481;white-space:pre;flex:none}.console-events__text{color:#d6e2e0;overflow-wrap:anywhere;flex:auto}.dm-root{color:#cdd6e4;gap:var(--space-1,4px);flex-direction:column;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:12px;line-height:1.5;display:flex}.dm-open-btn{font:inherit;color:var(--faction-accent,#3ad0b0);background:var(--chrome-bg-alt,#12151d);border:1px solid var(--faction-accent,#3ad0b0);border-radius:var(--radius-sm,2px);cursor:pointer;align-self:flex-start;padding:3px 8px}.dm-open-btn:disabled{color:#5a6270;cursor:default;border-color:#2a2f3a}.dm-banner{color:#e6ecf5;white-space:pre-wrap;font-weight:600}.dm-hint{color:#6b7280;font-style:italic}.dm-empty{color:#9aa4b2;white-space:pre-wrap}.dm-list{flex-direction:column;gap:2px;margin:0;padding:0;list-style:none;display:flex}.dm-row{font:inherit;text-align:left;color:#cdd6e4;background:var(--chrome-bg-alt,#12151d);border-radius:var(--radius-sm,2px);cursor:pointer;border:1px solid #232833;width:100%;padding:3px 8px}.dm-row:hover{border-color:var(--faction-accent,#3ad0b0)}.dm-row.dm-group:after{content:" ▸";color:var(--faction-accent,#3ad0b0)}.dm-count{color:#6b7280}.dm-extras{gap:var(--space-1,4px);margin-top:var(--space-1,4px);flex-wrap:wrap;display:flex}.dm-btn{font:inherit;color:#cdd6e4;background:var(--chrome-bg,#0b0e14);border-radius:var(--radius-sm,2px);cursor:pointer;border:1px solid #2a2f3a;padding:3px 8px}.dm-btn:hover{border-color:var(--faction-accent,#3ad0b0)}.dm-btn.dm-primary{color:var(--chrome-bg,#0b0e14);background:var(--faction-accent,#3ad0b0);border-color:var(--faction-accent,#3ad0b0);font-weight:600}.dm-btn:disabled{opacity:.5;cursor:default}.dm-wire{border-radius:var(--radius-sm,2px);color:#b7e7d9;white-space:pre;background:#05070b;border:1px solid #232833;max-width:100%;margin:0;padding:6px 8px;overflow-x:auto}.dm-notice,.dm-rejection{white-space:pre-wrap;color:#f0a5a5;border-radius:var(--radius-sm,2px);background:#1a1012;border-left:2px solid #b04a4a;padding:4px 8px}.dm-notice{color:#e8c98a;background:#191510;border-left-color:#b0894a}.dm-fatal{white-space:pre-wrap;color:#ffd7d7;border-radius:var(--radius-sm,2px);background:#3a0d0d;border:1px solid #b04a4a;padding:8px;font-weight:600}.dm-label{color:#e6ecf5}.dm-editor{flex-direction:column;gap:3px;display:flex}.dm-editor-row{align-items:center;gap:var(--space-1,4px);display:flex}.dm-editor-row>.dm-optline{white-space:pre-wrap;flex:1;min-width:0}.dm-step{font:inherit;color:#cdd6e4;background:var(--chrome-bg,#0b0e14);border-radius:var(--radius-sm,2px);cursor:pointer;border:1px solid #2a2f3a;width:22px}.dm-step:hover{border-color:var(--faction-accent,#3ad0b0)}.dm-num{font:inherit;color:#cdd6e4;border-radius:var(--radius-sm,2px);background:#05070b;border:1px solid #2a2f3a;width:48px;padding:2px 4px}.dm-tally{color:#8aa0b8;white-space:pre-wrap}.dm-check{cursor:pointer;align-items:center;gap:6px;display:flex}.debug-panel{gap:var(--space-2,8px);font-family:var(--console-font);color:#cdd6e4;flex-direction:column;font-size:12px;display:flex}.debug-panel__section{padding-bottom:var(--space-2,8px);border-bottom:1px solid color-mix(in srgb, var(--faction-accent) 20%, transparent);flex-direction:column;gap:4px;display:flex}.debug-panel__section:last-child{border-bottom:none}.debug-panel__title{color:#e6ecf5;font-weight:600}.debug-panel__hint{color:#6b7280;font-style:italic}.debug-panel__row{justify-content:space-between;align-items:center;gap:var(--space-1,4px);display:flex}.debug-panel__row>span:first-child{color:#9db3af;flex:none}.debug-panel__row select{min-width:0;font:inherit;color:#cdd6e4;border-radius:var(--radius-sm,2px);background:#05070b;border:1px solid #2a2f3a;flex:auto;padding:2px 4px}.debug-panel__actions{gap:var(--space-1,4px);margin-top:4px;display:flex}.debug-panel__btn{font:inherit;color:#cdd6e4;background:var(--chrome-bg,#0b0e14);border-radius:var(--radius-sm,2px);cursor:pointer;border:1px solid #2a2f3a;padding:3px 8px}.debug-panel__btn:hover{border-color:var(--faction-accent,#3ad0b0)}.debug-panel__btn:disabled{opacity:.5;cursor:default}.debug-panel__btn--primary{color:var(--chrome-bg,#0b0e14);background:var(--faction-accent,#3ad0b0);border-color:var(--faction-accent,#3ad0b0);font-weight:600}.debug-panel__list{flex-direction:column;gap:2px;margin:0;padding:0;list-style:none;display:flex}.debug-panel__list-item{justify-content:space-between;align-items:center;gap:var(--space-1,4px);background:var(--chrome-bg-alt,#12151d);border-radius:var(--radius-sm,2px);border:1px solid #232833;padding:2px 6px;display:flex}.debug-panel__remove{font:inherit;color:#cdd6e4;cursor:pointer;background:0 0;border:none;padding:0 2px;line-height:1}.debug-panel__remove:hover{color:#f0a5a5}.bugreport-panel{gap:var(--space-2,8px);font-family:var(--console-font);color:#cdd6e4;flex-direction:column;font-size:12px;display:flex}.bugreport-panel__hint{color:#6b7280;font-style:italic}.bugreport-panel__notice{border-radius:var(--radius-sm,2px);border:1px solid #2a2f3a;padding:4px 6px}.bugreport-panel__notice--info{color:#9db3af;background:var(--chrome-bg-alt,#12151d)}.bugreport-panel__notice--success{color:#b8f0d8;background:color-mix(in srgb, var(--faction-accent,#3ad0b0) 12%, transparent);border-color:var(--faction-accent,#3ad0b0)}.bugreport-panel__notice--success a{color:inherit;word-break:break-all;text-decoration:underline}.bugreport-panel__notice--error{color:#f0a5a5;background:#f0646414;border-color:#f0646466}.bugreport-panel__textarea{font:inherit;color:#cdd6e4;border-radius:var(--radius-sm,2px);resize:vertical;background:#05070b;border:1px solid #2a2f3a;min-height:96px;padding:6px}.bugreport-panel__textarea:disabled{opacity:.5;cursor:default}.bugreport-panel__charcount{color:#6b7280;align-self:flex-end;font-size:11px}.bugreport-panel__actions{gap:var(--space-1,4px);display:flex}.bugreport-panel__actions button{font:inherit;color:#cdd6e4;background:var(--chrome-bg,#0b0e14);border-radius:var(--radius-sm,2px);cursor:pointer;border:1px solid #2a2f3a;padding:3px 8px}.bugreport-panel__actions button:hover:not(:disabled){border-color:var(--faction-accent,#3ad0b0)}.bugreport-panel__actions button:disabled{opacity:.5;cursor:default}.console-toggle{right:0;top:calc(var(--topbar-h) + (100vh - var(--topbar-h) - var(--bottom-h)) / 2);width:26px;height:120px;z-index:var(--z-hud);pointer-events:auto;writing-mode:vertical-rl;letter-spacing:.05em;font-family:var(--console-font);color:#9db3af;background:var(--chrome-bg-alt);border:1px solid color-mix(in srgb, var(--faction-accent) 30%, transparent);border-radius:var(--radius-md) 0 0 var(--radius-md);cursor:pointer;border-right:none;justify-content:center;align-items:center;font-size:12px;display:flex;position:fixed;transform:translateY(-50%)}.console-toggle:hover{color:var(--faction-accent);border-color:var(--faction-accent)}.console-toggle:focus-visible{outline:2px solid var(--faction-accent);outline-offset:-2px}.console-panel{top:calc(var(--topbar-h) + var(--hud-gap));right:var(--hud-gap);width:var(--console-panel-w);height:var(--console-panel-h);z-index:var(--z-hud-pop);pointer-events:auto;box-sizing:border-box;font-family:var(--console-font);background:var(--chrome-bg);border:1px solid var(--console-accent,var(--faction-accent));border-radius:var(--radius-md);color:#d6e2e0;flex-direction:column;display:flex;position:fixed;overflow:hidden;box-shadow:0 8px 32px #0009}.console-panel__header{padding:var(--space-1) var(--space-2);background:var(--chrome-bg-alt);border-bottom:1px solid color-mix(in srgb, var(--faction-accent) 25%, transparent);flex:none;justify-content:space-between;align-items:center;display:flex}.console-panel__title{letter-spacing:.05em;color:var(--console-accent,var(--faction-accent));font-size:12px}.console-panel__close{color:#d6e2e0;border-radius:var(--radius-sm);cursor:pointer;background:#ffffff0f;border:1px solid #ffffff26;justify-content:center;align-items:center;width:20px;height:20px;padding:0;font-size:16px;line-height:1;display:flex}.console-panel__close:hover{background:#ffffff24}.console-panel__statusline{padding:2px var(--space-2);color:var(--console-accent,var(--faction-accent));white-space:pre;border-bottom:1px solid color-mix(in srgb, var(--faction-accent) 20%, transparent);flex:none;font-size:12px;overflow-x:auto}.console-tabbar{gap:var(--space-1);padding:var(--space-1) var(--space-2);min-height:var(--console-tabbar-h);box-sizing:border-box;border-bottom:1px solid color-mix(in srgb, var(--faction-accent) 25%, transparent);flex:none;display:flex}.console-tabbar__tab{font-family:var(--console-font);color:#9db3af;border-radius:var(--radius-sm);cursor:pointer;background:0 0;border:1px solid #0000;padding:3px 10px;font-size:12px;font-weight:600}.console-tabbar__tab:hover{color:#d6e2e0;border-color:color-mix(in srgb, var(--faction-accent) 25%, transparent)}.console-tabbar__tab--active{color:var(--console-accent,var(--faction-accent));border-color:var(--console-accent,var(--faction-accent));background:color-mix(in srgb, var(--console-accent,var(--faction-accent)) 10%, transparent)}.console-tabpanes{flex-direction:column;flex:auto;min-height:0;display:flex;overflow:hidden}.console-tabpane{min-height:0;padding:var(--space-2);box-sizing:border-box;flex-direction:column;flex:auto;display:none;overflow:auto}.console-tabpane--active{display:flex}.console-tabpane--overview{padding:0;overflow:hidden}.live-hud-root{pointer-events:none;z-index:60;position:fixed;inset:0}.live-chooser{pointer-events:auto;color:#e8edf2;background:#12161cf7;border:1px solid #788ca066;border-radius:6px;min-width:200px;max-width:320px;padding:4px;font:12px/1.4 system-ui,sans-serif;position:fixed;box-shadow:0 6px 20px #00000080}.live-chooser__row{text-align:left;width:100%;color:inherit;cursor:pointer;background:0 0;border:none;border-radius:4px;padding:6px 8px;display:block}.live-chooser__row:hover{background:#5a82aa59}.live-chooser__sep{background:#788ca04d;height:1px;margin:4px 2px}.live-chooser__row--console{color:#9fd0ff}.live-toasts{pointer-events:none;flex-direction:column;gap:8px;max-width:min(560px,90vw);display:flex;position:fixed;top:12px;left:50%;transform:translate(-50%)}.live-toast{color:#ffe8e8;white-space:pre-wrap;background:#3c1418f5;border:1px solid #c85a5a80;border-radius:6px;padding:8px 12px;font:12px/1.45 ui-monospace,monospace;box-shadow:0 4px 14px #00000073}.live-toast>div:first-child{font-weight:600}.join-failed{padding:var(--space-2);background:var(--chrome-bg);color:#d6e2e0;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.join-failed__card{background:var(--chrome-bg-alt);border:1px solid color-mix(in srgb, var(--panel-accent) 30%, transparent);border-radius:var(--radius-md);max-width:46rem;padding:24px 28px}.join-failed__title{color:var(--panel-accent);margin:0 0 12px;font-size:20px;font-weight:600}.join-failed__body{margin:0 0 20px;font-size:14px;line-height:1.6}.join-failed__link{color:var(--chrome-bg);background:var(--panel-accent);border-radius:var(--radius-sm);padding:6px 14px;font-size:13px;text-decoration:none;display:inline-block}.join-failed__link:hover,.join-failed__link:focus-visible{filter:brightness(1.15)}
