:root,:root[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#1b1035;--panel:#2a1a4d;--sunken:#150c2b;--recessed:#140b28;--secondary-bg:#4a3a72;--border:#4a3a72;--text:#f4f2ff;--muted:#a99cd1;--accent:#f5b400;--accent-ink:#f5b400;--on-accent:#1b1035;--positive:#6ee7a6;--negative:#ff9b9b;--danger:#ff8080;--card-hidden:#513b77}:root[data-theme=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg:#f4f1fa;--panel:#fff;--sunken:#e9e4f2;--recessed:#e4def0;--secondary-bg:#e2dcf0;--border:#cfc6e2;--text:#1b1035;--muted:#5c5175;--accent:#f5b400;--accent-ink:#8a5d00;--on-accent:#1b1035;--positive:#0d6e42;--negative:#c02626;--danger:#c02626;--card-hidden:#766791}*{box-sizing:border-box}html,body,#app{min-height:100%}body{background:var(--bg);color:var(--text);-webkit-tap-highlight-color:transparent;margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}button,input{font:inherit}button{cursor:pointer;background:var(--accent);color:var(--on-accent);border:0;border-radius:10px;padding:12px;font-weight:700}button:disabled{cursor:default;opacity:.5}button:focus-visible,summary:focus-visible{outline:3px solid var(--positive);outline-offset:2px}button.secondary{background:var(--secondary-bg);color:var(--text)}button.link{color:var(--muted);background:0 0;padding:8px;font-weight:500}input{border:1px solid var(--border);background:var(--sunken);color:var(--text);border-radius:10px;padding:12px}label{color:var(--muted);flex-direction:column;gap:4px;font-size:.85rem;display:flex}.screen{min-height:100dvh;padding:env(safe-area-inset-top) 12px env(safe-area-inset-bottom);flex-direction:column;gap:12px;display:flex}.screen.center{justify-content:center;align-items:center}.card,.panel{background:var(--panel);border-radius:16px;flex-direction:column;gap:12px;width:100%;max-width:380px;padding:20px;display:flex}.card h1{text-align:center;margin:0}.muted{color:var(--muted)}.center-text{text-align:center}.error{color:var(--danger);margin:0;font-size:.85rem}.topbar{align-items:center;gap:8px;display:flex}.topbar-title{text-align:center;flex:1;margin:0;font-size:.9rem}.action-bar{gap:8px;display:flex}.action-bar button{flex:1}button.theme-toggle{font-size:.75rem}.icon{vertical-align:middle;flex:none}.icon text{font-family:inherit}.visually-hidden{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.card-brown{--card-color:#8a5a2b}.card-grey{--card-color:#8b919a}.card-blue{--card-color:#2d6ed8}.card-green{--card-color:#26944f}.card-yellow{--card-color:#e0aa0f}.card-red{--card-color:#d23c3c}.card-purple{--card-color:#8a55c6}.color-dot{background:var(--card-color);vertical-align:-.1em;border-radius:2px;width:.75em;height:1em;display:inline-block}.effect-icons,.cost-icons,.glyph-choice,.glyph-option,.glyph-trade,.glyph-per{flex-wrap:wrap;align-items:center;gap:1px;display:inline-flex}.effect-icons{gap:2px}.glyph-sep{color:var(--text);margin:0 1px;font-size:.95em;font-weight:800;line-height:1}.glyph-chain{color:var(--muted)}.cost-free{color:var(--positive);font-weight:700}.price-tag{background:var(--sunken);color:var(--text);white-space:nowrap;border-radius:999px;align-items:center;gap:2px;padding:1px 5px 1px 2px;font-size:.8rem;font-weight:800;display:inline-flex}:is(.price-tag.chain,.price-tag.ok:not(:has(.icon))){color:var(--positive);padding-left:5px}.price-tag.short{background:color-mix(in srgb, var(--negative) 16%, var(--sunken));color:var(--negative);outline:1.5px dashed var(--negative);outline-offset:-1.5px}.price-bank{opacity:.85;margin-left:1px}.ledger{gap:6px;display:grid}.ledger-items{flex-wrap:wrap;gap:6px 8px;margin:0;padding:0;list-style:none;display:flex}.ledger-item{justify-items:center;gap:2px;min-width:34px;display:grid}.ledger-caption{color:var(--muted);white-space:nowrap;align-items:center;gap:2px;font-size:.68rem;font-weight:700;display:inline-flex}.ledger-item.owned .ledger-caption,.ledger-item.chain .ledger-caption{color:var(--positive)}.ledger-item.bought .ledger-caption{color:var(--accent-ink)}.ledger-summary{color:var(--muted);margin:0;font-size:.8rem}.quote-short,.short-note{color:var(--negative);margin:0;font-weight:700}.quote-short{font-size:.85rem}.short-note{font-size:.75rem}.plain-list{color:var(--muted);margin:0;padding-left:18px;font-size:.85rem;line-height:1.4}.badge{background:var(--sunken);color:var(--muted);text-transform:uppercase;border-radius:999px;padding:1px 6px;font-size:.7rem;font-weight:700}.hint,.sheet-status{color:var(--muted);margin:0;font-size:.8rem}button.compact{padding:6px 10px}.effect-list{gap:6px;margin:0;padding:0;font-size:.85rem;line-height:1.3;list-style:none;display:grid}.effect-list li{align-items:center;gap:8px;display:flex}.effect-list-glyph{flex:none;justify-content:center;min-width:42px;display:inline-flex}.game-screen{width:100%;max-width:540px;height:100dvh;padding:env(safe-area-inset-top) 10px calc(env(safe-area-inset-bottom) + 6px);gap:6px;margin:0 auto;overflow:hidden}.game-screen .topbar{min-height:36px}.game-screen .topbar button.link{padding:6px}.topbar-title{justify-content:center;align-items:center;gap:6px;font-weight:700;display:inline-flex}.connection-dot{background:var(--positive);border-radius:50%;width:8px;height:8px}.connection-dot.offline{background:var(--accent);animation:1s ease-in-out infinite alternate pulse}@keyframes pulse{to{opacity:.3}}button.theme-switch{place-items:center;padding:6px;display:inline-grid}.status-banner{border:1px solid var(--border);background:var(--panel);color:var(--muted);border-radius:10px;flex-direction:column;gap:1px;padding:6px 10px;font-size:.92rem;display:flex}.status-banner strong{color:var(--text)}.status-banner.yours{border-color:var(--accent);background:var(--accent);color:var(--on-accent)}.status-banner.yours strong{color:inherit}.recap{font-size:.75rem}.banner-error{color:var(--danger);font-size:.78rem;font-weight:600}.status-banner.yours .banner-error{color:#7a0b0b}.player-bars{gap:4px;display:grid}.player-bar{background:var(--panel);min-width:0;color:var(--text);text-align:left;border:1px solid #0000;border-radius:9px;align-items:center;gap:8px;padding:5px 8px;font-size:.8rem;font-weight:700;display:flex}.player-bar.active{border-color:var(--accent)}.player-name{text-overflow:ellipsis;white-space:nowrap;flex:0 auto;min-width:2.5em;max-width:34%;overflow:hidden}.player-production{flex:auto;gap:4px;min-width:0;display:flex;overflow:hidden}.player-stat{font-variant-numeric:tabular-nums;flex:none;align-items:center;gap:2px;display:inline-flex}.player-stat.coins{min-width:2.6em}.player-stat.points{color:var(--accent-ink)}.player-stat.choice{background:var(--sunken);border-radius:4px;padding:0 2px}.board-strip{gap:4px;display:grid}button.military-button{background:var(--panel);color:var(--muted);border-radius:9px;padding:4px 6px;font-weight:500}.military{align-items:center;gap:3px;display:flex}.military-end{color:var(--muted);display:inline-grid}.military-track{flex:1;grid-template-columns:repeat(19,minmax(0,1fr));gap:1px;height:18px;display:grid;position:relative}.military-space{background:var(--sunken);border-radius:2px;place-items:center;display:grid;position:relative}.military-space.zone-0{background:var(--secondary-bg)}.military-space.zone-2{background:color-mix(in srgb, #d23c3c 18%, var(--sunken))}.military-space.zone-3{background:color-mix(in srgb, #d23c3c 36%, var(--sunken))}.military-space.zone-4{background:color-mix(in srgb, #d23c3c 60%, var(--sunken))}.military-token,.military-pawn{position:absolute}.military-pawn{z-index:1}.military-track .military-pawn{top:50%;left:calc((100% - 18px) * (var(--pawn) + .5) / 19 + var(--pawn) * 1px);transition:left .7s ease-in-out;transform:translate(-50%,-50%)}.military-track.moved{animation:1.6s ease-out track-flash}.military-track.moved .military-pawn{animation:.5s ease-out .7s 2 pawn-bounce}@keyframes track-flash{0%,60%{box-shadow:0 0 0 2px var(--accent)}to{box-shadow:0 0 0 2px #0000}}@keyframes pawn-bounce{50%{transform:translate(-50%,-50%)scale(1.45)}}@media (prefers-reduced-motion:reduce){.military-track .military-pawn{transition:none}.military-track.moved .military-pawn{animation:none}}.board-row{align-items:center;gap:4px;min-width:0;display:flex}.discard-button{background:var(--panel);color:var(--muted);white-space:nowrap;border-radius:999px;flex:none;align-items:center;gap:3px;padding:3px 6px 3px 3px;font-size:.7rem;font-weight:600;display:inline-flex}.board-main{flex-direction:column;flex:1;min-height:0;display:flex}.tableau{flex:1;place-items:center;min-height:0;display:grid;container-type:size}.tableau-grid{--gap:4px;--cards-across:calc(var(--half-columns) / 2);--card-w:min(96px, calc((100cqw - (var(--cards-across) - 1) * var(--gap)) / var(--cards-across)));--step:min(66px, calc(100cqh / (var(--rows) + .15)));--card-h:min(calc(var(--card-w) * 1.55), calc(100cqh - (var(--rows) - 1) * var(--step)));grid-template-columns:repeat(var(--half-columns), calc((var(--card-w) + var(--gap)) / 2));grid-auto-rows:var(--step);padding-bottom:calc(var(--card-h) - var(--step));display:grid}.tableau-slot{width:var(--card-w);height:var(--card-h);pointer-events:none;justify-self:center}.tableau-slot>*{pointer-events:auto}.tableau-card{border:1px solid color-mix(in srgb, var(--card-color,var(--border)) 60%, var(--border));background:color-mix(in srgb, var(--card-color,var(--panel)) 18%, var(--panel));width:100%;height:100%;color:var(--text);text-align:left;border-radius:6px;flex-direction:column;gap:2px;padding:6px 3px 3px;font-weight:700;display:flex;position:relative;overflow:hidden;box-shadow:0 1px 3px #0006}.tableau-card.face-up:before{content:"";background:var(--card-color);height:4px;position:absolute;inset:0 0 auto}.card-name{font-size:clamp(8.5px, calc(var(--card-w) * .165), 11px);-webkit-hyphens:manual;hyphens:manual;overflow-wrap:break-word;-webkit-line-clamp:3;-webkit-box-orient:vertical;line-height:1.1;display:-webkit-box;overflow:hidden}.tableau-card .effect-icons{gap:1px}.card-price{margin-top:auto;display:flex}.card-inline{flex-wrap:wrap;align-items:center;gap:2px 4px;display:flex}.tableau-card .price-tag{font-size:.7rem}.tableau-card.covered{filter:saturate(.55)brightness(.9)}.tableau-card.selectable,.tableau-card.selected{border-color:var(--accent)}.tableau-card.selectable:after,.tableau-card.selected:after{content:"";z-index:1;border-radius:inherit;box-shadow:inset 0 0 0 1px var(--accent);pointer-events:none;position:absolute;inset:0}.tableau-card.selected{transform:translateY(-3px);box-shadow:0 4px 10px #0009}.tableau-card.selected:after{box-shadow:inset 0 0 0 2px var(--text)}.tableau-card.face-down{--back:#7b4a26;background:repeating-linear-gradient(45deg, var(--back), var(--back) 5px, color-mix(in srgb, var(--back) 80%, #000) 5px 10px);border-color:color-mix(in srgb, var(--back) 60%, #000)}.tableau-card.face-down.age-2{--back:#2a6aa8}.tableau-card.face-down.age-3{--back:#7a3f97}.choice-panel{border:1px solid var(--border);background:var(--panel);border-radius:12px;flex-direction:column;flex:1;gap:10px;min-height:0;padding:12px;display:flex;overflow-y:auto}.choice-panel h1{margin:0;font-size:1.1rem}.choice-panel>p{margin:0;font-size:.85rem}.choice-panel.waiting{text-align:center;justify-content:center}.options{gap:8px;margin:0;padding:0;list-style:none;display:grid}.option{background:var(--sunken);border-radius:10px;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:6px 10px;padding:10px;display:grid}.option>.effect-list{grid-column:1}.option>button{grid-area:1/2/span 2;min-width:72px}.option-heading{flex-wrap:wrap;align-items:center;gap:4px 8px;display:flex}.choice-buttons{grid-template-columns:1fr 1fr;gap:8px;display:grid}.drafted{gap:4px;margin:0;font-size:.8rem;display:grid}.drafted div{gap:6px;display:flex}.drafted dt{color:var(--muted)}.drafted dd{margin:0}.sheet-layer{z-index:50;flex-direction:column;justify-content:flex-end;display:flex;position:fixed;inset:0}button.sheet-backdrop{cursor:default;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#000000c0;border-radius:0;padding:0;position:absolute;inset:0}.sheet{width:100%;max-width:540px;max-height:85dvh;padding:12px 14px calc(12px + env(safe-area-inset-bottom));background:var(--panel);border-radius:16px 16px 0 0;flex-direction:column;margin:0 auto;display:flex;position:relative;box-shadow:0 -6px 24px #0008}.sheet-header{justify-content:space-between;align-items:flex-start;gap:8px;padding-bottom:8px;display:flex}.sheet-header h2{align-items:center;gap:6px;margin:0;font-size:1.1rem;display:flex}.sheet-subtitle{color:var(--muted);margin:2px 0 0;font-size:.8rem}.sheet-body{overscroll-behavior:contain;flex-direction:column;gap:12px;display:flex;overflow-y:auto}.sheet-section h3{margin:0 0 6px;font-size:.9rem}.build-preview{background:var(--sunken);border-radius:8px;margin:0;padding:6px 8px;font-size:.85rem;font-weight:600}.printed-cost,.quote-total{flex-wrap:wrap;align-items:center;gap:6px;margin:0;font-size:.85rem;display:flex}.quote{background:var(--sunken);border-radius:10px;gap:4px;padding:8px 10px;display:grid}.quote-lines{font-size:.8rem}.card-rows,.wonder-rows,.wonder-options{margin:0;padding:0;list-style:none;display:grid}.card-rows>li{border-top:1px solid var(--border);justify-content:space-between;align-items:center;gap:8px;padding:6px 0;font-size:.85rem;display:flex}.wonder-rows>li{border-top:1px solid var(--border);gap:6px;padding:8px 0;display:grid}.wonder-cost{align-items:center;gap:6px;display:inline-flex}.wonder-options>li{border-top:1px solid var(--border);grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:4px 8px;padding:8px 0;display:grid}.wonder-option-main{gap:3px;font-size:.9rem;display:grid}.wonder-details{color:var(--muted);grid-column:1/-1;font-size:.8rem}.wonder-details summary{cursor:pointer}.wonder-details .effect-list{color:var(--text);margin:6px 0}.symbol-row{flex-wrap:wrap;gap:4px;margin:0;display:flex}.final-summary{background:var(--panel);border-radius:16px;flex-direction:column;flex:1;gap:12px;width:100%;padding:20px 16px;display:flex;overflow:auto}.final-summary h1{text-align:center;margin:0}.final-summary>p{margin:0}.score-list{font-size:.9rem;display:grid}.score-row{border-top:1px solid var(--border)}.score-row:first-child{border-top:0}.score-row>summary{cursor:pointer;list-style:none}.score-row>summary,p.score-row{grid-template-columns:1fr 3.5em;align-items:center;gap:4px;margin:0;padding:8px 4px;display:grid}.score-row>summary::-webkit-details-marker{display:none}.score-label{color:var(--muted);font-weight:500}.score-row>summary .score-label:before{content:"›";width:.9em;transition:transform .15s;display:inline-block}.score-row[open]>summary .score-label:before{transform:rotate(90deg)}.score-value{text-align:right;font-variant-numeric:tabular-nums;text-overflow:ellipsis;white-space:nowrap;font-weight:700;overflow:hidden}.score-total .score-value{color:var(--accent-ink);font-size:1.3rem}.score-items{gap:4px;margin:0;padding:0 4px 8px 16px;font-size:.85rem;list-style:none;display:grid}.score-items li{justify-content:space-between;gap:8px;display:flex}.score-detail{color:var(--muted);font-size:.75rem;display:block}.score-none{margin:0;padding:0 4px 8px 16px;font-size:.85rem}.score-hint{font-size:.8rem}.final-scores{gap:14px;display:grid}.final-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:16px;display:grid}.final-header{border-bottom:1px solid var(--border);padding-bottom:10px}.final-total{gap:2px;margin:0;display:grid}.final-name{overflow-wrap:anywhere;font-weight:700}.final-total-points{color:var(--accent-ink);font-variant-numeric:tabular-nums;font-size:1.8rem;line-height:1}.final-category h2{color:var(--muted);letter-spacing:.04em;text-transform:uppercase;margin:0 0 6px;font-size:.75rem;font-weight:700}.final-items{gap:3px;margin:0 0 4px;padding:0;font-size:.9rem;list-style:none;display:grid}.final-items li{justify-content:space-between;gap:6px;display:flex}.final-points{font-variant-numeric:tabular-nums;font-weight:700}.final-none{color:var(--muted);margin:0 0 4px;font-size:.9rem}.final-column{flex-direction:column;display:flex}.final-subtotal{border-top:1px solid color-mix(in srgb, var(--accent-ink) 45%, var(--border));background:color-mix(in srgb, var(--accent-ink) 10%, transparent);color:var(--accent-ink);text-align:right;font-variant-numeric:tabular-nums;border-radius:0 0 6px 6px;margin:auto 0 0;padding:3px 6px;font-weight:800}.final-summary .action-bar{margin-top:auto}.format-toggle{gap:8px;display:flex}.toggle-btn{border:1px solid var(--border);background:var(--sunken);color:var(--muted);text-align:center;border-radius:10px;flex:1;align-items:center;padding:10px;font-weight:600}.toggle-btn.active{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}.toggle-input{opacity:0;width:1px;height:1px;position:absolute}.setting{color:var(--muted);border:0;flex-direction:column;gap:4px;margin:0;padding:0;font-size:.85rem;display:flex}.setting legend{padding:0}.rules-card{width:100%;max-width:640px;margin:0 auto}.rules-card section{background:var(--panel);border-radius:12px;margin-bottom:10px;padding:14px}.rules-card h3{margin:0 0 8px}.rules-card p{color:var(--muted);margin:0;line-height:1.45}.screen-body{flex-direction:column;gap:18px;width:100%;max-width:480px;margin:0 auto;display:flex}.history-section{flex-direction:column;gap:8px;display:flex}.history-heading{color:var(--muted);letter-spacing:.08em;text-transform:uppercase;margin:0 2px;font-size:.75rem}.standing,.history-list{flex-direction:column;gap:6px;display:flex}.standing-line,.history-meta{justify-content:space-between;gap:8px;display:flex}.standing-record,.history-date{color:var(--muted);font-size:.8rem}.standing-bar{background:var(--sunken);border-radius:999px;height:6px;overflow:hidden}.standing-bar-fill{border-radius:inherit;background:var(--accent);height:100%}.history-list{margin:0;padding:0;list-style:none}.history-item{background:var(--panel);border-radius:12px;padding:10px 14px}.history-player{grid-template-columns:1fr auto 3.4em;gap:8px;padding:5px 0;display:grid}.history-player+.history-player{border-top:1px solid var(--border)}.history-score{text-align:right;grid-column:3}.history-player.won{color:var(--accent-ink);font-weight:700}.history-badge{background:var(--sunken);color:var(--muted);text-transform:uppercase;border-radius:999px;padding:2px 7px;font-size:.65rem;font-weight:700}.history-badge.accent{background:var(--accent);color:var(--on-accent)}.deploy-stamp{color:var(--muted);flex-direction:column;align-items:center;gap:2px;font-size:.8rem;display:flex}.deploy-stamp button{color:var(--accent-ink);background:0 0;padding:4px 6px;text-decoration:underline}.rules-screen{padding-bottom:calc(env(safe-area-inset-bottom) + 16px)}.rules-card ul{color:var(--muted);gap:6px;margin:8px 0 0;padding-left:18px;line-height:1.45;display:grid}.rules-card p+p,.rules-card ul+p{margin-top:8px}.rules-card .icon{vertical-align:-.2em}.resource-legend{flex-wrap:wrap;align-items:center;gap:4px 6px;display:flex}.rules-card ul.reference-list{gap:0;padding:0;list-style:none}.reference-list>li{border-top:1px solid var(--border);color:var(--text);gap:6px;padding:10px 0;display:grid}.reference-heading{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.chevron{color:var(--muted);flex:none;margin-left:auto;font-size:1.1em;font-weight:700;line-height:1}.military-button{gap:1px;display:grid}.military-captions{justify-content:space-between;gap:6px;font-size:.62rem;line-height:1.2;display:flex}.military-caption-title{color:var(--text);align-items:center;gap:2px;font-weight:700;display:inline-flex}.military-caption-title .chevron{margin-left:0}button.progress-strip{background:var(--panel);min-width:0;color:var(--text);text-align:left;border-radius:999px;flex:1;align-items:center;gap:5px;padding:4px 8px 4px 5px;font-size:.72rem;font-weight:600;display:flex}.progress-strip-label{flex:none;font-weight:800}.progress-strip-names{min-width:0;color:var(--muted);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.connection-text{color:var(--accent-ink);font-size:.75rem;font-weight:600}.city-summary dl{gap:6px;margin:0;font-size:.82rem;display:grid}.city-summary dl>div{grid-template-columns:7.2em minmax(0,1fr);gap:8px;display:grid}.city-summary dt{color:var(--muted);align-items:flex-start;gap:5px;font-weight:600;display:inline-flex}.city-summary dd{margin:0}.summary-choice{color:var(--muted);display:block}.science-line{margin:0 0 4px;font-size:.85rem}.military-sheet-track{color:var(--muted);gap:2px;display:grid}.science-standing+.science-standing{margin-top:8px}.tableau-card .glyph-choice{flex-wrap:nowrap}.tableau-card .glyph-sep{margin:0 -1px}.player-stat.choice .glyph-sep{margin:0}.wonder-rows>li.out-of-play>:not(.out-of-play-note,.badge){opacity:.55}.out-of-play-note{color:var(--muted);margin:0;font-size:.8rem}.icon-key{gap:6px;margin:0;padding:0;font-size:.85rem;list-style:none;display:grid}.icon-key>li{grid-template-columns:5.5em minmax(0,1fr);align-items:center;gap:8px;display:grid}.icon-key-glyph{flex-wrap:wrap;align-items:center;gap:2px;display:inline-flex}.icon-key-grid{grid-template-columns:repeat(auto-fill,minmax(9em,1fr))}.icon-key-grid>li{grid-template-columns:1.6em minmax(0,1fr)}.board-notices{right:12px;bottom:calc(16px + env(safe-area-inset-bottom));z-index:20;pointer-events:none;justify-items:center;gap:6px;display:grid;position:fixed;left:12px}.board-notice{background:var(--text);max-width:420px;color:var(--bg);border-radius:10px;padding:8px 12px;font-size:.85rem;font-weight:600;animation:.25s ease-out notice-in;box-shadow:0 4px 14px #0006}@keyframes notice-in{0%{opacity:0;transform:translateY(8px)}}@media (prefers-reduced-motion:reduce){.board-notice{animation:none}}
