:root{--bg:#0c0e14;--surface:#151924;--text:#e8e9ee;--muted:#949aab;--border:#262c3b;--accent:#f0803c;--accent-soft:#3a2116;--better:#4ade80;--worse:#ef4444;--wanted:#60a5fa;--row-hover:#1c2130;--go:#3ecf74;--go-text:#06210f;--gold:#f2c14e;--warning-bg:#3a2f12;--warning-text:#f2d48a;--dot-border:#ffffff73;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;font-size:15px;line-height:1.45}:root[data-theme=light]{--bg:#ecebe6;--surface:#fff;--text:#1d1d1f;--muted:#6b6b70;--border:#e2e0da;--accent:#c2410c;--accent-soft:#fde7da;--better:#0f766e;--worse:#be123c;--wanted:#1d4ed8;--row-hover:#f1efe9;--go:#15803d;--go-text:#fff;--gold:#b7791f;--warning-bg:#fff4d6;--warning-text:#7a5300;--dot-border:#00000040;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}*{box-sizing:border-box}body{background:var(--bg);color:var(--text);margin:0}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}h1{margin:0 0 .25rem;font-size:1.6rem}h2{margin:2rem 0 .75rem;font-size:1.15rem}.muted{color:var(--muted)}.muted a{color:inherit}.notice{background:var(--warning-bg);color:var(--warning-text);border-radius:8px;margin:1rem 0;padding:10px 14px}.status{color:var(--muted);padding:2rem 0}button{font:inherit;color:inherit;cursor:pointer}select,input.search{font:inherit;color:var(--text);background:var(--surface);border:1px solid var(--border);border-radius:6px;padding:4px 8px}.note{font-size:.85rem}.theme-toggle{border:1px solid var(--border);color:var(--muted);background:0 0;border-radius:6px;padding:4px 10px}.theme-toggle:hover{color:var(--text)}.site-header{background:var(--surface);border-bottom:1px solid var(--border)}.site-header-inner,.page{max-width:1100px;margin:0 auto;padding:0 16px}.site-header-inner{flex-wrap:wrap;align-items:center;gap:24px;min-height:56px;display:flex}.site-title{letter-spacing:-.02em;color:var(--text);white-space:nowrap;align-items:center;gap:9px;font-size:1.3rem;font-weight:700;display:inline-flex}.site-title:hover{text-decoration:none}.site-icon{border-radius:7px;flex:none;display:block}.site-title .site-accent{color:var(--accent)}.site-nav{flex-wrap:wrap;gap:4px;display:flex}.site-nav a{color:var(--muted);border-radius:6px;padding:6px 10px;font-weight:500}.site-nav a:hover{color:var(--text);background:var(--row-hover);text-decoration:none}.site-nav a.active{color:var(--accent);background:var(--accent-soft)}.account-controls{align-items:center;gap:10px;margin-left:auto;font-size:.9rem;display:flex}.account-controls button{border:1px solid var(--border);color:var(--muted);background:0 0;border-radius:6px;padding:4px 8px}.account-controls button:hover{color:var(--text)}.login-page{max-width:520px;margin:0 auto}.login-button{background:var(--accent);color:var(--bg);border-radius:6px;margin:1rem 0;padding:8px 14px;font-weight:600;display:inline-block}.login-button:hover{filter:brightness(1.08);text-decoration:none}.page{padding-block:24px 48px}@media (width<=500px){.site-header-inner{gap:0 8px;padding-block:4px}.site-title{font-size:1.2rem}.site-icon{width:44px;height:44px}.site-nav{order:4;width:100%}.account-controls{flex:1 1 0;order:2;justify-content:flex-end;min-width:0;margin-left:auto}.account-controls>span:first-child{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.account-controls button{white-space:nowrap;flex-shrink:0}.theme-toggle{order:3}}@media (width<=360px){.site-header-inner{column-gap:5px}.site-title{gap:6px;font-size:.9rem}.site-icon{width:30px;height:30px}.account-controls{gap:3px;font-size:.8rem}.theme-toggle{padding-inline:8px}.site-nav{gap:0}.site-nav a{padding-inline:4px}}.table-wrap{background:var(--surface);border:1px solid var(--border);border-radius:10px;overflow-x:auto}table{border-collapse:collapse;width:100%}th,td{text-align:left;border-bottom:1px solid var(--border);white-space:nowrap;padding:8px 12px}tbody tr:last-child td{border-bottom:none}tbody tr:hover{background:var(--row-hover)}th{text-transform:uppercase;letter-spacing:.03em;color:var(--muted);font-size:.8rem;font-weight:600}th.sortable{cursor:pointer;-webkit-user-select:none;user-select:none}th.sortable:hover{color:var(--text)}.num{text-align:right;font-variant-numeric:tabular-nums}th.wrap,td.wrap{white-space:normal}@media (width<=500px){.hide-narrow{display:none}th,td{padding-inline:8px}}.player-dot{vertical-align:baseline;border:1px solid var(--dot-border);border-radius:50%;width:.7em;height:.7em;margin-right:.4em;display:inline-block}.placement{min-width:2.2em;color:var(--muted);font-variant-numeric:tabular-nums;display:inline-block}.placement.first{color:var(--gold);font-weight:700}.winner{font-weight:600}.chips{flex-wrap:wrap;gap:6px;display:flex}.chip{background:var(--row-hover);border:1px solid var(--border);border-radius:999px;padding:2px 8px;font-size:.8rem}.tiles{grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:12px;margin:1rem 0;display:grid}.tile{background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:12px 14px}.tile-value{font-variant-numeric:tabular-nums;font-size:1.5rem;font-weight:700}.tile-label{color:var(--muted);font-size:.85rem}.tile[title]{cursor:help}.tile[title] .tile-label{text-underline-offset:3px;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}button.chip{cursor:pointer}button.chip:hover{border-color:var(--muted)}.link-button{color:var(--accent);background:0 0;border:none;padding:0}.link-button:hover{text-decoration:underline}.chip-off{color:var(--muted)}.chip-unusual{border-color:var(--accent);color:var(--accent);background:var(--accent-soft)}.card-preview{z-index:20;pointer-events:none;filter:drop-shadow(0 6px 16px #00000073);width:264px;height:auto;position:fixed}.filter-bar{background:var(--surface);border:1px solid var(--border);border-radius:10px;flex-direction:column;gap:10px;margin:.75rem 0 1.5rem;padding:12px 14px;display:flex}.filter-row{flex-wrap:wrap;align-items:center;gap:8px 12px;display:flex}.filter-label{text-transform:uppercase;letter-spacing:.03em;color:var(--muted);min-width:5.5em;font-size:.8rem;font-weight:600}.my-games-filter{white-space:nowrap;align-items:center;gap:6px;display:inline-flex}.my-games-filter input{accent-color:var(--accent)}.additional-filters summary{color:var(--accent);cursor:pointer;font-weight:600}.additional-filters .filter-row{margin-top:10px}.filter-summary{color:var(--muted);flex-wrap:wrap;align-items:baseline;gap:12px;font-size:.9rem;display:flex}.segmented{border:1px solid var(--border);border-radius:8px;display:inline-flex;overflow:hidden}.segmented button{border:none;border-right:1px solid var(--border);background:0 0;flex-direction:column;align-items:center;padding:4px 12px;line-height:1.2;display:flex}.segment-main{white-space:nowrap;font-weight:600}.segmented button:last-child{border-right:none}.segmented button:hover{background:var(--row-hover)}.segmented button.on{background:var(--accent);color:#fff}.segmented .count{opacity:.75;white-space:nowrap;font-size:.75em}@media (width<=500px){.segmented{flex-wrap:wrap}.segmented button{flex:1;padding:4px 8px}}.games-page-title{clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.games-section-heading{letter-spacing:-.01em;align-items:center;gap:10px;margin:24px 0 12px;font-size:1.1rem;display:flex}.games-section-heading:before{content:"";background:var(--accent);border-radius:2px;width:4px;height:1.15em}.games-section-heading:after{content:"";background:var(--border);flex:1;height:1px}.active-games>.games-section-heading{margin-top:0}.game-players{flex-direction:column;gap:4px;display:flex}.result-line{flex-wrap:wrap;column-gap:.8em;display:flex}.keep-together{white-space:nowrap}.game-name{white-space:normal;margin-top:2px;font-size:.85em}.game-facts{grid-template-columns:max-content 1fr;align-items:baseline;gap:8px 16px;margin:0 0 1rem;display:grid}.game-facts dt{text-transform:uppercase;letter-spacing:.03em;color:var(--muted);font-size:.8rem;font-weight:600}.game-facts dd{margin:0}.meta{color:var(--muted);flex-wrap:wrap;gap:6px 20px;margin-bottom:1rem;display:flex}@media (width<=500px){.result-line,.result-line>span{display:block}.result-line>span+span{white-space:normal;padding-left:2.6em;font-size:.9em}}@media (width<=600px){.game-facts{grid-template-columns:1fr;gap:2px}.game-facts dd{margin-bottom:8px}}.active-game{background:var(--surface);border:1px solid var(--border);border-radius:10px;grid-template-columns:1fr auto;grid-template-areas:"title button""players players";align-items:center;gap:0 16px;margin-bottom:10px;padding:12px 14px;display:grid}.active-game.your-turn{border-color:color-mix(in srgb, var(--go) 45%, var(--border));box-shadow:inset 4px 0 0 var(--go)}.active-game-title{grid-area:title;gap:2px;min-width:0;display:grid}.active-game-title .muted{font-size:.875rem}.active-game-button{white-space:nowrap;border:1px solid #0000;border-radius:8px;grid-area:button;justify-content:center;align-items:center;min-width:8.5em;padding:8px 16px;font-weight:600;line-height:1.2;display:inline-flex}.active-game-button:hover{filter:brightness(1.1);text-decoration:none}.active-game-button:focus-visible{outline:3px solid var(--text);outline-offset:2px}.active-game-button.play{background:var(--go);color:var(--go-text);font-weight:700;animation:2s ease-in-out infinite turn-pulse}.active-game-button.open{border-color:var(--accent);color:var(--accent)}.active-game-button.spectate{border-color:var(--border);color:var(--muted)}.active-game-button.spectate:hover{color:var(--text)}@keyframes turn-pulse{0%,to{box-shadow:0 0 #0000}50%{box-shadow:0 0 0 6px color-mix(in srgb, var(--go) 40%, transparent)}}@media (prefers-reduced-motion:reduce){.active-game-button.play{animation:none}}@media (width<=500px){.active-game{grid-template-columns:1fr;grid-template-areas:"title""players""button"}.active-game-button{margin-top:10px;padding:10px 16px}.active-game-button.spectate{justify-self:end;padding:6px 14px}}.active-players{grid-area:players;margin:8px 0 0;padding:0;list-style:none}.active-players li{grid-template-columns:minmax(7em,1fr) 2fr auto;gap:4px 12px;padding:3px 0;display:grid}@media (width<=500px){.active-players li{grid-template-columns:minmax(5.5em,1fr) minmax(0,1.5fr) auto;gap:4px 8px;font-size:.875rem}}.active-players li.waiting .active-player-name{font-weight:600}.active-players li.waiting .keep-together:after{content:" ⏳"}.active-players li.me{background:color-mix(in srgb, var(--text) 6%, transparent);border-radius:6px;margin:0 -6px;padding-inline:6px}.stalled ul{margin:6px 0 0;padding-left:1.2em}.active-players .num{white-space:nowrap}.bar-chart{max-width:640px}.bars,.bar-axis{gap:2px;display:flex}.bars{border-bottom:1px solid var(--border);align-items:flex-end;height:120px;padding-top:1.2rem}.bar-col,.bar-axis span{text-align:center;flex:1}.bar-col{flex-direction:column;justify-content:flex-end;align-items:center;height:100%;display:flex;position:relative}.bar-col:hover{background:var(--row-hover)}.bar{background:var(--accent);border-radius:4px 4px 0 0;width:70%;max-width:32px}.bar-peak{color:var(--text);font-size:.8rem;position:absolute;top:-1.2rem}.bar-axis{color:var(--muted);padding-top:4px;font-size:.75rem}.card-controls{flex-wrap:wrap;align-items:center;gap:12px;margin-block:16px;display:flex}input.search{flex:1;min-width:10rem;max-width:20rem}.chance{color:var(--muted)}.stat-better{color:var(--better)}.stat-worse{color:var(--worse)}.stat-wanted{color:var(--wanted)}.tile.tone-better{border-color:var(--better)}.tile.tone-worse{border-color:var(--worse)}.tile.tone-wanted,.tile.tone-unwanted{border-color:var(--wanted)}.card-heading{align-items:flex-start;gap:16px;margin-bottom:12px;display:flex}.card-heading h1{margin-top:0}.card-image{flex-shrink:0;width:240px;height:auto}@media (width<=600px){.card-image{width:140px}}.step-controls{z-index:1;background:var(--bg);border-bottom:1px solid var(--border);margin-bottom:12px;padding-block:10px;position:sticky;top:0}.step-buttons{flex-wrap:wrap;gap:6px;margin-top:8px;display:flex}.step-buttons button{background:var(--surface);border:1px solid var(--border);border-radius:6px;padding:4px 10px}.step-buttons button:disabled{opacity:.4;cursor:default}.step-slider{width:100%;accent-color:var(--accent);margin-top:8px}.step-title{flex-wrap:wrap;align-items:baseline;gap:2px 8px;display:flex}.globals{color:var(--muted);margin-left:auto}.page:has(.replay){max-width:1700px}body:has(.replay) .site-header-inner{max-width:1700px}.replay h1{margin-bottom:4px}.replay-back{margin-left:12px;font-size:.9rem;font-weight:400}.step-log{background:var(--surface);border:1px solid var(--border);border-left:3px solid var(--accent);border-radius:10px;height:calc(10.15em + 36px);margin-bottom:12px;padding:8px 14px;overflow-y:auto}.step-log.empty{height:auto}@media (width<=600px){.step-log{height:auto;max-height:calc(17.4em + 36px)}}.step-log h2{margin:0 0 4px;font-size:1.05rem}.player-boards{gap:12px;display:grid}.replay-columns{grid-template-columns:minmax(0,3fr) minmax(0,2fr);align-items:start;gap:20px;display:grid}.replay-side{max-height:calc(100vh - 130px);position:sticky;top:118px;overflow-y:auto}@media (width<=1300px){.replay-columns{grid-template-columns:minmax(0,1fr)}.replay-side{max-height:none;position:static}}.player-board{background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:10px 14px}@media (width>=900px){.player-board{grid-template-columns:minmax(0,1fr) auto;align-items:center;column-gap:20px;display:grid}.player-board>*{grid-column:1/-1}.player-board>.board-header{grid-column:1}.player-board>.resources{grid-column:2;gap:2px 10px;margin:0}.player-board>.resources div{width:88px}.player-board>.resources dd{font-size:.9rem}.player-board>.board-header{flex-wrap:nowrap}.board-header>.muted{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.board-header>.tr{white-space:nowrap;flex-shrink:0}}.player-board.active{border-color:var(--accent)}.board-header{width:100%;color:inherit;font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;flex-wrap:wrap;align-items:baseline;gap:4px 16px;padding:0;display:flex}.player-board .tr{margin-left:auto;font-weight:600}.player-board p{margin:6px 0}.resources{flex-wrap:wrap;gap:2px 28px;margin:8px 0;display:flex}.resources dt{color:var(--muted);font-size:.75rem}.resources dd{font-variant-numeric:tabular-nums;margin:0}.board-label{color:var(--muted);font-size:.8rem;font-weight:600}.replay-log{margin:0;padding-left:1.2em}.replay-log li{margin:2px 0}.replay-log li.private{color:var(--muted)}.log-cards{display:inline}.log-cards summary{cursor:pointer;color:var(--accent);display:inline}.card-group{margin:8px 0 4px}.card-group.closed{margin-right:18px;display:inline-block}.group-toggle{color:var(--muted);cursor:pointer;background:0 0;border:0;padding:0;font-size:.8rem;font-weight:600}.group-toggle:hover{color:var(--text)}.card-pictures{flex-wrap:wrap;gap:4px 6px;margin-top:4px;display:flex}.card-picture{width:120px;position:relative}.card-tops{grid-template-columns:repeat(auto-fill,132px);gap:4px 6px;margin-top:4px;display:grid}.card-top{aspect-ratio:8/5;font-size:.8rem;position:relative;overflow:hidden}.card-thumb{width:100%;height:auto;display:block}.card-count{border:2px solid var(--accent);color:#111;text-align:center;pointer-events:none;background:#fff;border-radius:12px;min-width:24px;padding:0 5px;font-size:.8rem;font-weight:700;line-height:18px;position:absolute;bottom:3px;left:2px}.change{margin-left:3px;font-size:.8em;font-weight:700}.change.gain{color:var(--better)}.change.loss{color:var(--worse)}.card-count .change.gain{color:#0f766e}.card-count .change.loss{color:#be123c}.picked,.played,.action{outline:3px solid var(--accent);border-radius:12px}.new{outline:2px dashed var(--accent);border-radius:12px}.sold,.discarded{outline:3px solid var(--worse);border-radius:12px}.card-mark{background:var(--accent);color:#fff;pointer-events:none;border-radius:8px;padding:0 6px;font-size:.72rem;font-weight:700;line-height:17px;position:absolute;bottom:3px;right:3px}.sold .card-mark,.discarded .card-mark{background:var(--worse)}.passed{opacity:.5}.step-cards .card-picture{width:150px}.offered-cards{margin:1px 0;font-size:.85rem}.resources+.offered-cards{margin-top:8px}.offered-cards.open{margin:6px 0}.step-cards{flex-wrap:wrap;gap:6px 28px;display:flex}.board-section{background:var(--surface);border:1px solid var(--border);border-radius:10px;margin-bottom:12px;padding:8px 14px}.mars-board svg{width:100%;max-width:480px;margin:4px auto;display:block}.global-tracks .cell{fill:#80808059}.global-tracks .oxygen .on{fill:#3f9bd8}.global-tracks .venus .on{fill:#d9a441}.global-tracks .temperature .on{fill:#e0603c}.global-tracks .cell.now{stroke:var(--accent);stroke-width:2.5px}.global-tracks text{fill:var(--text);font-size:13px;font-weight:600}.global-tracks tspan.change{font-size:11px}.global-tracks tspan.gain{fill:var(--better)}.global-tracks tspan.loss{fill:var(--worse)}.hex{fill:#0000001f;stroke:#ffffff73;stroke-width:1px}.hex.ocean{fill:#286edc66;stroke:#96c8ffe6}.hex.placed{fill:none;stroke:var(--accent);stroke-width:4px}.mars-board .owner{stroke:#fff;stroke-width:1.5px}.board-claims{margin:6px 0;line-height:1.9}.claim{border:1px solid var(--border);white-space:nowrap;border-radius:10px;margin-right:6px;padding:0 8px;font-size:.85rem;display:inline-block}.claim.open{color:var(--muted)}.claim.now{border-color:var(--accent);outline:2px solid var(--accent)}.colony-tiles{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:8px;margin-top:6px;display:grid}.colony-tile{position:relative;container-type:inline-size}.colony-tile.inactive .card-thumb{opacity:.45}.colony-tile .slot{border-radius:4px;justify-content:center;align-items:center;display:flex;position:absolute}.colony-tile .slot.now{outline:3px solid var(--accent)}.colony-tile .cube{aspect-ratio:1;border:1.5px solid #fff;border-radius:3px;width:46%}.colony-tile .cube.marker{background:#fff;border-color:#555}.colony-tile .slot .change{background:var(--surface);border-radius:6px;margin:0;padding:0 3px;position:absolute;top:100%}.colony-tile .fleet{color:#fff;text-shadow:0 0 2px #000;background:#555;border:1.5px solid #fff;border-radius:8px;padding:0 6px;font-size:.75rem;font-weight:700;position:absolute;top:6%;right:3%}.colony-tile .fleet.now{outline:3px solid var(--accent)}.turmoil p{margin:6px 0}.turmoil-offices{flex-wrap:wrap;gap:4px 18px;display:flex}.turmoil .office{border-radius:6px;padding:0 4px}.party-icon{vertical-align:middle;height:1.5em}.parties{grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:6px;display:grid}.party{border:1px solid var(--border);border-radius:8px;padding:4px 8px}.party.dominant{border-color:var(--gold)}.turmoil .now{outline:3px solid var(--accent)}.party-name{font-size:.9rem;font-weight:600}.delegates{flex-wrap:wrap;align-items:center;gap:3px;min-height:22px;margin-top:3px;font-size:.8rem;display:flex}.delegate{border:1.5px solid var(--dot-border);vertical-align:middle;border-radius:50%;width:14px;height:14px;display:inline-block}.delegate.leader{border:2px solid var(--gold);width:18px;height:18px;margin-right:4px}.turmoil-reserve .keep-together{margin-right:10px}.global-events{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:8px;display:grid}.global-events figure{margin:0}
