:root{--color-ink: #152033;--color-ink-soft: #42516a;--color-paper: #fbf6ea;--color-paper-2: #f2eadb;--color-panel: #fffaf0;--color-panel-2: #f6eddc;--color-line: #d7cbb7;--color-line-strong: #9d8d74;--color-teal: #2ba6a0;--color-sky: #4cc2ff;--color-amber: #ffd166;--color-coral: #f26d5b;--color-green: #35b779;--color-purple: #8d6bd8;--bg: #e9f3ef;--panel: var(--color-panel);--panel-2: var(--color-panel-2);--line: var(--color-line);--text: var(--color-ink);--muted: var(--color-ink-soft);--accent: var(--color-teal);--accent-2: var(--color-amber);--good: var(--color-green);--warn: #b56b10;--bad: #d94b3d;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--radius-sm: 4px;--radius-md: 6px;--radius-lg: 8px;--shadow: 0 10px 26px rgba(44, 58, 80, .16);--shadow-tight: 0 3px 10px rgba(44, 58, 80, .18);--font-xs: 11px;--font-sm: 12px;--font-md: 14px;--font-lg: 18px;font-family:Inter,system-ui,-apple-system,sans-serif}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:radial-gradient(circle at 18% 12%,rgba(255,209,102,.12),transparent 28%),linear-gradient(145deg,#e9e3d3,#f2eadb 48%,#e1ebf5) fixed;color:var(--text);font-size:var(--font-md);line-height:1.4}body:before{content:"";position:fixed;top:0;right:0;bottom:0;left:0;z-index:-1;background:linear-gradient(105deg,#fbf6eaf7,#fbf6eaeb 22%,#fbf6ea9e 42%,#fbf6ea2e 60%,#fbf6ea00 74%),url(/assets/Landing-pV6yV5PB.png) right center / cover no-repeat fixed;opacity:1;filter:blur(8px);transition:opacity .8s ease,filter .8s ease;pointer-events:none}body[data-screen=landing]:before{opacity:1;filter:blur(0)}body[data-reduced-motion=true]:before,body[data-speed=off]:before{transition:opacity .8s ease;filter:none}button{background:linear-gradient(180deg,#fffef8,var(--panel-2));color:var(--text);border:1px solid var(--line);border-radius:var(--radius-md);padding:7px 12px;cursor:pointer;font:inherit;box-shadow:var(--shadow-tight);transition:background var(--ftl-css-button-bg-ms, .12s),transform var(--ftl-css-button-tx-ms, 60ms)}button:hover:not(:disabled){background:#fff9e8}button:active:not(:disabled){transform:translateY(1px)}button:disabled{opacity:.45;cursor:not-allowed}button.primary{background:linear-gradient(180deg,#45c6bd,var(--accent));color:#062522;border-color:#18857f;font-weight:700}button.primary:hover:not(:disabled){background:#55d6cc}button.ghost{background:transparent}button.small{padding:2px 8px;font-size:12px}input{background:#fffaf0;color:var(--text);border:1px solid var(--line);border-radius:var(--radius-md);padding:6px 8px;font:inherit;width:100%}.app-root{display:flex;flex-direction:column;min-height:100vh;max-width:1400px;margin:0 auto;padding:16px}.app-header{display:flex;align-items:baseline;gap:16px;margin-bottom:16px}.app-header h1{margin:0;font-size:24px;letter-spacing:0}.tagline{color:var(--muted);font-style:italic}.app-header .header-actions{margin-left:auto;display:flex;gap:8px;align-items:center;position:relative}.speed-settings,.language-settings{position:relative}.speed-menu,.language-menu{position:absolute;right:0;top:calc(100% + 6px);background:var(--panel);border:1px solid var(--line);border-radius:var(--radius-lg);padding:6px;display:flex;flex-direction:column;min-width:240px;box-shadow:var(--shadow);z-index:50}.speed-menu .menu-item,.language-menu .menu-item{display:flex;flex-direction:column;align-items:flex-start;gap:2px;padding:8px 10px;background:transparent;border:1px solid transparent;border-radius:var(--radius-md);text-align:left;cursor:pointer}.speed-menu .menu-item:hover,.language-menu .menu-item:hover{background:var(--panel-2)}.speed-menu .menu-item.active,.language-menu .menu-item.active{border-color:var(--accent);background:#e5f7f3}.speed-menu .mode-label,.language-menu .mode-label{font-weight:600}.speed-menu .mode-hint,.language-menu .mode-hint{color:var(--muted);font-size:12px}.speed-menu .reduced-motion-note{margin:6px 4px 0;font-size:12px;color:var(--muted);border-top:1px solid var(--line);padding-top:6px}.app-main{flex:1;display:flex;flex-direction:column;min-height:0;animation:view-enter var(--ftl-css-button-bg-ms, .3s) cubic-bezier(.2,.8,.2,1) forwards}@keyframes view-enter{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}body[data-reduced-motion=true] .app-main,body[data-speed=off] .app-main{animation:none}.toast{position:fixed;top:16px;right:16px;background:var(--bad);color:#fff;padding:8px 16px;border-radius:var(--radius-md);z-index:100;box-shadow:var(--shadow)}.menu{padding:24px 8px;animation:view-enter var(--ftl-css-button-bg-ms, .3s) cubic-bezier(.2,.8,.2,1) forwards}body[data-reduced-motion=true] .menu,body[data-speed=off] .menu{animation:none}.menu .lede{color:var(--muted);max-width:720px}.menu-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:16px;margin-top:16px}.card{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius-lg);padding:16px;display:flex;flex-direction:column;gap:12px;box-shadow:var(--shadow)}.card h2{margin:0;font-size:16px}.card p{margin:0;color:var(--muted)}.card label{display:flex;flex-direction:column;gap:4px;font-size:12px;color:var(--muted)}.card button{align-self:flex-start}.lobby{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius-lg);padding:16px;max-width:700px;margin:0 auto;display:flex;flex-direction:column;gap:12px}.lobby-header{display:flex;justify-content:space-between;align-items:flex-start}.lobby h2{margin:0}.room-code strong{font-family:ui-monospace,monospace;letter-spacing:0;font-size:20px;color:var(--accent-2)}.player-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:6px}.player-list li{display:flex;align-items:center;gap:8px;background:var(--panel-2);padding:8px 10px;border-left:4px solid;border-radius:var(--radius-sm)}.player-list .empty{color:var(--muted);font-style:italic;border-color:var(--line)}.dot{width:10px;height:10px;border-radius:50%;display:inline-block}.badge{font-size:10px;padding:2px 6px;background:#e8decf;border-radius:var(--radius-sm);color:var(--muted);letter-spacing:0;text-transform:uppercase}.badge.host{background:var(--accent-2);color:#2a1d00}.badge.you{background:var(--accent);color:#062522}.badge.dead{background:var(--bad);color:#fff}.add-row{display:flex;gap:8px}.add-row input{flex:1}.lobby-actions{display:flex;gap:8px;flex-wrap:wrap}.hint{color:var(--muted);font-size:12px;margin:0}.game-grid{display:grid;grid-template-columns:minmax(0,1fr);grid-template-rows:auto auto minmax(0,1fr) auto;grid-template-areas:"turnbar" "players" "board" "log";gap:8px;flex:1;min-height:0;position:relative}.game-grid>.turn-bar{grid-area:turnbar}.players-strip{grid-area:players;display:flex;flex-wrap:wrap;gap:6px;min-width:0}.board-area{grid-area:board;display:flex;flex-direction:column;gap:8px;min-height:0}.log-area{grid-area:log;min-height:0;display:flex}.turn-bar{display:flex;gap:16px;align-items:center;background:var(--panel);border:1px solid var(--line);border-radius:var(--radius-lg);padding:10px 12px;flex-wrap:wrap;box-shadow:var(--shadow-tight)}.player-card{background:linear-gradient(180deg,#fffdf7,var(--panel));border:1px solid var(--line);border-left-width:4px;border-radius:var(--radius-lg);padding:10px 12px;flex:1;min-width:240px;box-shadow:var(--shadow-tight)}.player-card.current{box-shadow:0 0 0 2px var(--accent-2) inset,var(--shadow-tight)}.player-card.dead{opacity:.6}.player-card header{display:flex;align-items:center;gap:8px;margin-bottom:6px}.player-card dl{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;margin:0;font-size:var(--font-sm)}.player-card dl>div{min-width:0;background:#ffffff7a;border:1px solid rgba(157,141,116,.28);border-radius:var(--radius-md);padding:5px 6px}.player-card dl>div.wide-stat{grid-column:span 2}.player-card dt{color:var(--muted);display:flex;align-items:center;gap:5px;white-space:nowrap;font-size:var(--font-xs);text-transform:uppercase;letter-spacing:.04em}.player-card dt img{width:18px;height:18px;flex:0 0 auto}.player-card dd{margin:2px 0 0;font-weight:700;overflow-wrap:anywhere;font-size:var(--font-md)}.player-summary{min-width:0;padding:6px 8px}.player-summary header{margin-bottom:4px;gap:5px}.player-summary header strong{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.player-summary .summary-stats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px;font-size:var(--font-xs)}.summary-stat{display:grid;grid-template-columns:15px minmax(0,1fr);grid-template-areas:"icon label" "icon value";column-gap:4px;align-items:center;min-width:0;background:#ffffff7a;border:1px solid rgba(157,141,116,.24);border-radius:var(--radius-sm);padding:3px 4px}.summary-stat img{grid-area:icon;width:18px;height:18px}.summary-label{grid-area:label;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.summary-stat strong{grid-area:value;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.player-chip{display:flex;align-items:center;gap:8px;flex:1 1 200px;min-width:180px;background:linear-gradient(180deg,#fffdf7,var(--panel));border:1px solid var(--line);border-left:4px solid var(--line-strong, var(--line));border-radius:var(--radius-md);padding:4px 8px;box-shadow:var(--shadow-tight);font-size:var(--font-sm);line-height:1.2}.player-chip.current{box-shadow:0 0 0 2px var(--accent-2) inset,var(--shadow-tight);background:linear-gradient(180deg,#fffaea,var(--panel))}.player-chip.dead{opacity:.55}.player-chip .chip-token{width:10px;height:10px;border-radius:50%;flex:0 0 auto;box-shadow:0 0 0 2px #fff9}.player-chip .chip-name{display:flex;align-items:center;gap:5px;min-width:0;flex:0 1 auto}.player-chip .chip-name strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:12ch}.player-chip .chip-stats{display:flex;gap:8px;margin-left:auto;align-items:center;flex-wrap:nowrap}.player-chip .chip-stat{display:inline-flex;align-items:center;gap:3px;font-size:var(--font-xs);color:var(--text);white-space:nowrap}.player-chip .chip-stat img{width:16px;height:16px;flex:0 0 auto}.player-chip .chip-stat strong{font-weight:700}.player-chip .chip-stat.pulse{animation-name:stat-pulse;animation-timing-function:cubic-bezier(.2,.8,.2,1);border-radius:var(--radius-sm)}.player-chip .chip-stat.pulse-good strong{color:var(--good)}.player-chip .chip-stat.pulse-bad strong{color:var(--bad)}.player-chip .chip-stat.tone-good strong{color:var(--good)}.player-chip .chip-stat.tone-bad strong{color:var(--bad)}.chip-effects-button{display:inline-flex;align-items:center;gap:4px;padding:2px 6px;box-shadow:none;font-size:11px;white-space:nowrap;flex:0 0 auto}.speed-menu{min-width:280px}.chip-effects-button span{min-width:16px;padding:0 4px;border-radius:var(--radius-sm);background:var(--accent);color:#062522;font-weight:700;text-align:center}.player-chip .chip-turn{margin-left:4px;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;padding:2px 6px;border-radius:999px;background:var(--accent-2);color:#2a1d00;flex:0 0 auto}.board{--board-map-opacity: .5;--board-map-tint: #fff4dc;--board-map-tint-opacity: .28;--board-map-soften: saturate(.84) contrast(.88) brightness(1.02);flex:1;width:100%;background:var(--color-paper);border:1px solid rgba(157,141,116,.4);border-radius:var(--radius-lg);min-height:360px;box-shadow:inset 0 0 40px #0000000d,var(--shadow)}.board-map-background{opacity:var(--board-map-opacity);filter:var(--board-map-soften);pointer-events:none;transition:opacity .6s ease,filter .6s ease}.board-map-tint{fill:var(--board-map-tint);opacity:var(--board-map-tint-opacity);pointer-events:none}.board-gameplay-wash{pointer-events:none}.board-gameplay-wash-core{stop-opacity:var(--board-gameplay-wash-core-opacity, .3)}.board-gameplay-wash-mid{stop-opacity:var(--board-gameplay-wash-mid-opacity, .2)}.board-gameplay-wash-edge{stop-opacity:var(--board-gameplay-wash-edge-opacity, .06)}.board-neighborhood{opacity:var(--board-district-wash-opacity, .11);filter:blur(.45px) saturate(.45)}.board-neighborhood.n1{fill:#dcebe1}.board-neighborhood.n2{fill:#dfe9f6}.board-neighborhood.n3{fill:#f0e4cf}.board-neighborhood.n4{fill:#e8e2f2}.road-segment{filter:drop-shadow(0 .25px .35px rgba(255,250,240,.72))}.road-casing{stroke:#fffaf0b8;stroke-width:2.55;stroke-linecap:round}.road{stroke:#3a47548a;stroke-width:1.05;stroke-linecap:round}.location-node{cursor:default;outline:none}.location-node.clickable,.location-node.clickable *{cursor:pointer}.location-visual{pointer-events:none;transform-box:fill-box;transform-origin:center;transition:transform var(--ftl-css-button-bg-ms),filter var(--ftl-css-button-bg-ms)}.loc-hit-target{fill:transparent;stroke:transparent}.loc-hit-target{pointer-events:all}.location-node .loc-halo{fill:#ffffff8c;stroke:#ffffffe6;stroke-width:.8;opacity:0;transition:opacity var(--ftl-css-button-bg-ms),stroke-width var(--ftl-css-button-bg-ms)}.location-node.selected .loc-halo{opacity:1;stroke:var(--accent-2);stroke-width:1.1}.loc-shadow{fill:#15203330;filter:blur(.3px)}.loc-rim{fill:url(#boardMedallionRim);stroke:#48627b;stroke-width:.72;transition:filter var(--ftl-css-button-bg-ms),stroke-width var(--ftl-css-button-bg-ms)}.loc{fill:url(#boardMedallionFace);stroke:#48627b;stroke-width:.62;cursor:inherit;transition:stroke var(--ftl-css-button-bg-ms),stroke-width var(--ftl-css-button-bg-ms)}.loc-inner-glow{fill:#dbf1ffb8;stroke:#ffffffa3;stroke-width:.35;pointer-events:none}.loc-highlight{fill:none;stroke:#ffffffdb;stroke-width:.52;stroke-linecap:round;pointer-events:none}.location-node image{pointer-events:none;filter:drop-shadow(0 .18px .18px rgba(21,32,51,.2))}.location-node.clickable:hover .location-visual,.location-node.clickable:focus-visible .location-visual{transform:translateY(-.45px) scale(1.035);filter:drop-shadow(0 .7px 1.3px rgba(43,166,160,.28))}.location-node.clickable:hover .loc,.location-node.clickable:focus-visible .loc{stroke:var(--accent);stroke-width:.82}.location-node.clickable:hover .loc-rim,.location-node.clickable:focus-visible .loc-rim{filter:brightness(1.06);stroke-width:.9}.location-node.clickable:hover .loc-halo,.location-node.clickable:focus-visible .loc-halo{opacity:.75;stroke-width:1.15}.location-node.selected .loc{stroke:#7d5600;stroke-width:1}.location-node.depleted{opacity:.58}.location-node.depleted image{filter:grayscale(.65)}.loc-label{font-size:2.45px;fill:#111b2b;pointer-events:none;font-weight:700;paint-order:stroke;stroke:#fffaf0f5;stroke-width:.56}.loc-status{font-size:2px;fill:#8a382f;font-weight:800;text-transform:uppercase;paint-order:stroke;stroke:#fff7e8;stroke-width:.35}.player-token-shadow{fill:#1520334d}.player-token-pin{stroke:#fff;stroke-width:.45;filter:drop-shadow(0 .5px .8px rgba(21,32,51,.45))}.player-token.current .player-token-pin{stroke:var(--accent-2);stroke-width:.85}.player-token.current circle{stroke:#fff;stroke-width:.2}.player-token-ai{fill:#152033;font-size:1.2px;font-weight:900;pointer-events:none}.action-panel{background:linear-gradient(180deg,#fffdf7,var(--panel));border:1px solid var(--line);border-radius:var(--radius-lg);padding:12px;flex:1;display:flex;flex-direction:column;min-height:0;min-width:0;box-shadow:var(--shadow);overflow:hidden;position:relative}.action-panel.waiting{justify-content:center;align-items:center;text-align:center}.dialog-close{position:absolute;top:8px;right:8px;box-shadow:none;z-index:1}.location-heading{display:flex;align-items:center;gap:12px}.location-heading img{width:46px;height:46px;flex:0 0 auto;border-radius:50%;box-shadow:var(--shadow-tight)}.location-heading-text{min-width:0}.location-heading-text h3{margin:0}.location-heading-text small{color:var(--muted)}.action-panel.themed-loc{--loc-accent: var(--accent);--loc-accent-ink: var(--text);--loc-bg: var(--panel-2)}.action-panel.themed-loc{border-top:4px solid var(--loc-accent)}.location-heading.themed{margin:-12px -12px 8px;padding:14px 64px 12px 14px;background:var(--loc-bg);border-radius:var(--radius-lg) var(--radius-lg) 0 0;border-bottom:1px solid var(--line);position:relative}.location-heading.themed:after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:2px;background:var(--loc-accent);opacity:.85}.location-heading.themed img{background:#fffc;border:2px solid var(--loc-accent);padding:3px}.location-heading.themed h3{color:var(--text);letter-spacing:.01em}.location-heading .loc-flavor{margin:4px 0 0;font-size:12.5px;font-style:italic;color:var(--loc-accent);filter:brightness(.85);font-weight:600}.action-panel.themed-loc .market-hint{border-left-color:var(--loc-accent)}.action-panel .market-hint{margin:6px 0 0;padding:6px 8px;background:#f8efd9;border-left:3px solid var(--accent-2);border-radius:var(--radius-sm);font-size:12px;color:var(--muted)}.action-panel .market-hint strong{color:var(--text)}.observer-note{margin:7px 0 0;padding:6px 8px;background:#e8f5f2;border-left:3px solid var(--accent);border-radius:var(--radius-sm);color:var(--muted);font-size:12px}.career-traits{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:6px;margin-top:8px;max-height:180px;overflow:auto}.career-trait{border:1px solid var(--line);border-radius:var(--radius-md);padding:7px 8px;background:#ffffff94}.career-trait .trait-title{display:flex;justify-content:space-between;gap:8px;align-items:baseline}.career-trait .trait-title strong{font-size:12px}.career-trait .trait-title span{color:var(--accent-2);font-size:11px;text-align:right}.career-trait p{display:flex;flex-direction:column;gap:2px;margin:4px 0 0;color:var(--muted);font-size:11px}.career-trait .trait-summary{display:block;color:var(--text)}.career-trait ul{margin:5px 0 0;padding-left:16px;color:var(--muted);font-size:11px}.career-trait li{margin:2px 0}.action-list{list-style:none;margin:8px 0 0;padding:0;display:flex;flex-direction:column;gap:6px;overflow:auto}.action-list .end-row{margin-top:auto;padding-top:8px;border-top:1px solid var(--line)}.action-list .end-row button{width:100%}.action-row button{width:100%;display:flex;flex-wrap:wrap;align-items:center;gap:8px;text-align:left;min-height:50px;background:#fffdf7;border-color:#9d8d746b}.action-row button:hover:not(:disabled){border-color:var(--accent);background:#f2fbf8}.action-row .action-icon{width:28px;height:28px;flex:0 0 auto}.action-row .action-copy{display:flex;flex-direction:column;gap:2px;min-width:0}.action-row .label{font-weight:600}.action-row .cost{color:var(--muted);font-size:12px}.action-row .reason{color:var(--warn);font-size:11px;flex-basis:100%;margin-left:36px}.action-row .reason.observer,.action-row.disabled .label{color:var(--muted)}.location-dialog-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:80;display:grid;place-items:center;padding:20px;background:#1520336b}.location-dialog{width:min(720px,calc(100vw - 32px));max-height:min(760px,calc(100vh - 32px));display:flex;min-width:0}.location-dialog .action-panel{max-height:inherit;width:100%;min-width:0}.location-dialog .action-list{max-height:45vh}.event-log{background:linear-gradient(180deg,#fffdf7,var(--panel));border:1px solid var(--line);border-radius:var(--radius-lg);padding:7px 10px;flex:1;display:flex;flex-direction:column;min-height:0;box-shadow:var(--shadow-tight)}.event-log header{display:flex;align-items:center;justify-content:space-between;gap:12px}.event-log header>div{min-width:0}.event-log h3{margin:0;font-size:12px;color:var(--muted);text-transform:uppercase;letter-spacing:0}.event-log .latest-event{margin:2px 0 0;display:flex;gap:8px;align-items:baseline;min-width:0;font-size:12.5px}.event-log.collapsed .latest-event .msg{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.event-log.expanded{min-height:180px;max-height:32vh}.event-log ul{list-style:none;padding:0;margin:0;overflow:auto;flex:1;font-size:12.5px}.event-log ul:not([hidden]){margin-top:6px;border-top:1px solid var(--line);padding-top:6px}.event-log li{padding:2px 0;display:flex;gap:8px;align-items:baseline}.event-log .week{color:var(--muted);font-family:ui-monospace,monospace;font-size:11px}.game-over{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius-lg);padding:24px;max-width:800px;margin:24px auto;text-align:center}.game-over .winner{font-size:18px;margin:8px 0 16px}.game-over table{width:100%;border-collapse:collapse;margin:0 auto}.game-over th,.game-over td{padding:6px 8px;text-align:center;border-bottom:1px solid var(--line)}.game-over th{color:var(--muted);font-weight:500;font-size:12px}.game-over tr:first-child td{font-size:16px}.game-over .actions{display:flex;gap:8px;justify-content:center;margin-top:16px}.game-over.rich{max-width:960px;text-align:left;background:linear-gradient(180deg,#fffdf6,var(--panel));padding:24px 28px}.go-header{text-align:center;margin-bottom:12px}.go-header h2{margin:0;font-size:22px}.go-winner{color:var(--muted);margin:4px 0 0}.go-podium{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;align-items:end;margin:18px 0 24px}.podium-slot{display:flex;justify-content:center}.podium-slot.empty{visibility:hidden}.podium-tile{display:flex;flex-direction:column;align-items:center;gap:4px;padding:14px 18px;border:2px solid var(--line);border-radius:var(--radius-lg);background:var(--panel-2);min-width:140px;box-shadow:var(--shadow-tight)}.podium-slot.place-1 .podium-tile{background:linear-gradient(180deg,#fff6cf,var(--panel-2));padding-bottom:24px;transform:translateY(-8px)}.podium-slot.place-2 .podium-tile{padding-bottom:18px}.podium-slot.place-3 .podium-tile{padding-bottom:12px}.podium-rank{font-weight:700;color:var(--muted);font-size:12px;letter-spacing:.08em}.podium-name{font-weight:700}.podium-points{color:var(--muted);font-size:12px}.go-cards{display:grid;grid-template-columns:1fr;gap:14px}.go-card{border:1px solid var(--line);border-top:4px solid var(--accent);border-radius:var(--radius-lg);padding:12px 16px;background:var(--panel);display:flex;flex-direction:column;gap:10px}.go-card-head{display:flex;gap:12px;align-items:flex-start}.go-card-title{display:flex;flex-direction:column;gap:2px;min-width:0}.go-card-line{display:flex;flex-wrap:wrap;align-items:baseline;gap:8px}.go-card-rank{font-size:13px;font-weight:700;color:var(--muted)}.go-card-name{font-size:16px}.go-card-total{margin-left:auto;font-weight:700;font-size:15px}.go-card-archetype{font-size:12px;color:var(--muted);font-style:italic}.go-card-epitaph{font-size:13px;color:var(--text)}.go-summary{margin:0;font-size:13.5px;line-height:1.5}.go-breakdown{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px}.go-breakdown-cell{background:var(--panel-2);border:1px solid var(--line);border-radius:4px;padding:4px 6px;text-align:center}.go-breakdown-cell.strong{background:#35b77921;border-color:var(--good)}.go-breakdown-cell.weak{background:#d94b3d1a;border-color:var(--bad)}.bd-label{font-size:9.5px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}.bd-value{font-weight:700;font-size:13px}.go-charts{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:8px}.chart-cell{display:flex;align-items:center;gap:8px;padding:6px 8px;background:var(--panel-2);border:1px solid var(--line);border-radius:4px}.chart-label{font-size:11px;color:var(--muted);width:64px;flex-shrink:0}.chart-final{font-weight:700;font-size:13px;margin-left:auto}.sparkline{display:block}@media (max-width: 720px){.go-breakdown{grid-template-columns:repeat(4,1fr)}}.dim{color:var(--muted);font-style:italic}.player-card dd.pulse{animation-name:stat-pulse;animation-timing-function:cubic-bezier(.2,.8,.2,1)}.player-card dd.pulse-good{color:var(--good)}.player-card dd.pulse-bad{color:var(--bad)}.player-card dd.pulse-neutral{color:inherit}@keyframes stat-pulse{0%{background:#4cc2ff40;transform:scale(1.08)}to{background:transparent;transform:scale(1)}}.time-pill.low-time{color:var(--warn);animation-name:time-pulse;animation-iteration-count:infinite;animation-timing-function:ease-in-out}@keyframes time-pulse{0%,to{opacity:1}50%{opacity:.55}}.action-feedback{background:var(--panel-2);border:1px solid var(--line);border-radius:var(--radius-md);padding:8px 10px;margin-top:8px;display:flex;flex-direction:column;gap:6px}.action-feedback-row{display:flex;justify-content:space-between;align-items:center;gap:8px}.action-feedback-bar{height:4px;background:#ffffff14;border-radius:2px;overflow:hidden}.action-feedback-fill{height:100%;background:linear-gradient(90deg,var(--accent),var(--accent-2));transition:width var(--ftl-css-progress-ms, 60ms) linear}.opponent-activity{position:absolute;top:12px;right:12px;z-index:60;min-width:220px;max-width:320px;padding:9px 12px 10px;background:linear-gradient(180deg,#fffdf7,var(--panel-2));border:1px solid var(--line);border-left:4px solid var(--accent);border-radius:var(--radius-lg);box-shadow:var(--shadow);display:flex;flex-direction:column;gap:4px;pointer-events:none;animation-name:oa-in;animation-timing-function:cubic-bezier(.34,1.56,.64,1);animation-fill-mode:both}.opponent-activity .oa-head{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap}.opponent-activity .oa-player{font-weight:600;font-size:13px}.opponent-activity .oa-location{font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}.opponent-activity .oa-headline{font-size:13.5px;line-height:1.3;color:var(--text)}.opponent-activity .oa-meta{display:flex;flex-wrap:wrap;align-items:center;gap:8px;font-size:11px;color:var(--muted)}.opponent-activity .oa-time{font-family:ui-monospace,monospace;background:#4cc2ff29;color:var(--text);padding:1px 5px;border-radius:var(--radius-sm)}.opponent-activity .oa-deltas{display:flex;flex-wrap:wrap;gap:6px}.opponent-activity .oa-delta{font-family:ui-monospace,monospace;font-size:11px}.opponent-activity .oa-delta.good{color:var(--good)}.opponent-activity .oa-delta.bad{color:var(--bad)}.opponent-activity .oa-badge{font-size:10.5px;text-transform:uppercase;letter-spacing:.05em;padding:1px 6px;border-radius:999px;border:1px solid var(--line);background:var(--panel)}.opponent-activity .oa-badge-success{color:var(--good);border-color:#35b77966}.opponent-activity .oa-badge-rejected,.opponent-activity .oa-badge-unavailable{color:var(--warn);border-color:#b56b1066}.opponent-activity .oa-badge-info{color:var(--muted)}.opponent-activity.tag-fired,.opponent-activity.tag-evicted,.opponent-activity.tag-eliminated,.opponent-activity.tag-injury,.opponent-activity.tag-starved{border-left-color:var(--bad)!important}.opponent-activity.tag-hired,.opponent-activity.tag-promoted,.opponent-activity.tag-paid-rent{border-left-color:var(--good)!important}@keyframes oa-in{0%{opacity:0;transform:translateY(-6px) scale(.96)}to{opacity:1;transform:translateY(0) scale(1)}}.event-log li.entry-major .msg{font-weight:600}.event-log li.entry-bad .msg{color:var(--bad)!important}.event-log li.entry-good .msg{color:var(--good)!important}.event-log .entry-tag{font-size:10px;text-transform:uppercase;letter-spacing:.06em;padding:0 6px;margin-right:4px;border-radius:999px;background:var(--panel-2);color:var(--muted);border:1px solid var(--line)}.event-log .entry-tag.entry-tag-good{color:var(--good)}.event-log .entry-tag.entry-tag-bad{color:var(--bad)}.player-token circle{transition:r var(--ftl-css-token-radius-ms, .2s) ease-out}body[data-reduced-motion=true] *,body[data-speed=off] *{animation-duration:1ms!important;transition-duration:1ms!important}.cycle-banner{grid-column:1 / -1;display:flex;align-items:center;gap:12px;padding:6px 10px;background:var(--panel-2);border:1px solid var(--line);border-radius:8px;flex-wrap:wrap;font-size:13px}.cycle-banner-label{color:var(--muted);text-transform:uppercase;letter-spacing:.05em;font-size:10px;font-weight:600}.cycle-banner-list{list-style:none;display:flex;flex-wrap:wrap;gap:6px;margin:0;padding:0}.cycle-pill{display:inline-flex;align-items:center;gap:6px;padding:3px 8px;border-radius:999px;border:1px solid var(--line);background:var(--panel);font-size:12px;cursor:help}.cycle-pill-cycle.cycle-pill-positive{border-color:var(--good);color:var(--good)}.cycle-pill-cycle.cycle-pill-negative{border-color:var(--bad);color:var(--bad)}.cycle-pill-opportunity{border-color:#b58000;color:#b58000}.cycle-pill-weeks{color:var(--muted);font-size:10px;text-transform:uppercase;letter-spacing:.04em}.event-log .entry-tag.entry-tag-personal-event,.event-log .entry-tag.entry-tag-world-event,.event-log .entry-tag.entry-tag-cycle-started,.event-log .entry-tag.entry-tag-cycle-ended,.event-log .entry-tag.entry-tag-opportunity-appeared,.event-log .entry-tag.entry-tag-opportunity-taken,.event-log .entry-tag.entry-tag-opportunity-expired{background:var(--panel-2)}.opponent-activity.tag-cycle-started,.opponent-activity.tag-opportunity-appeared{border-left-style:dashed}.briefing-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:90;display:grid;place-items:center;padding:16px;background:#1520338c}.briefing-dialog{width:min(680px,calc(100vw - 24px));max-height:calc(100vh - 24px);display:flex;flex-direction:column;background:linear-gradient(180deg,#fffdf6,var(--panel));border:1px solid var(--line-strong, var(--line));border-radius:var(--radius-lg);box-shadow:var(--shadow);overflow:hidden}.briefing-header{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;padding:14px 18px 12px;border-top:4px solid var(--accent);border-bottom:1px solid var(--line);background:var(--panel-2)}.briefing-header h2{margin:2px 0 4px;font-size:18px}.briefing-header .briefing-name{font-weight:700}.briefing-eyebrow{margin:0;color:var(--muted);font-size:11px;letter-spacing:.08em;text-transform:uppercase}.briefing-time{margin:0;color:var(--muted);font-size:12px}.briefing-start{white-space:nowrap}.briefing-body{padding:12px 18px;overflow-y:auto;display:flex;flex-direction:column;gap:14px;flex:1 1 auto}.briefing-section h3{margin:0 0 6px;font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}.briefing-subhead{margin:8px 0 4px;font-size:11px;color:var(--muted)}.briefing-empty{margin:0;color:var(--muted);font-style:italic;font-size:13px}.briefing-items,.briefing-warnings,.briefing-priorities{margin:0;padding:0 0 0 18px;font-size:13px;display:flex;flex-direction:column;gap:3px}.briefing-priorities{padding-left:22px}.briefing-warnings{list-style:none;padding-left:0}.briefing-warning{border-left:3px solid var(--line);padding:4px 8px;border-radius:0 4px 4px 0;background:var(--panel-2)}.briefing-warning.sev-urgent{border-left-color:var(--bad);background:#d94b3d14;color:var(--bad);font-weight:600}.briefing-warning.sev-warning{border-left-color:var(--warn);background:#b56b1012;color:var(--warn)}.briefing-warning.sev-good{border-left-color:var(--good);color:var(--good)}.briefing-items li.sev-urgent,.briefing-priorities li.sev-urgent{color:var(--bad);font-weight:600}.briefing-items li.sev-warning,.briefing-priorities li.sev-warning{color:var(--warn)}.briefing-items li.sev-good,.briefing-priorities li.sev-good{color:var(--good)}.briefing-effects{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:6px}.briefing-effect{display:inline-flex;align-items:center;gap:6px;padding:3px 8px;border-radius:999px;border:1px solid var(--line);background:var(--panel);font-size:12px}.briefing-effect.cat-positive{border-color:var(--good);color:var(--good)}.briefing-effect.cat-negative{border-color:var(--bad);color:var(--bad)}.briefing-effect.cat-opportunity{border-color:#b58000;color:#b58000}.briefing-effect.cat-mixed{border-color:var(--accent);color:var(--accent)}.briefing-effect-weeks{color:var(--muted);font-size:10px;text-transform:uppercase;letter-spacing:.04em}.briefing-situation{display:grid;grid-template-columns:repeat(auto-fit,minmax(110px,1fr));gap:6px 12px;margin:0 0 6px}.briefing-stat{display:flex;flex-direction:column;background:var(--panel-2);border:1px solid var(--line);border-radius:4px;padding:4px 8px}.briefing-stat dt{font-size:10px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}.briefing-stat dd{margin:0;font-size:13px;font-weight:600}.briefing-stat.tone-bad dd{color:var(--bad)}.briefing-stat.tone-warn dd{color:var(--warn)}.briefing-stat.tone-good dd{color:var(--good)}.briefing-footer{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:10px 18px;border-top:1px solid var(--line);background:var(--panel-2);font-size:12px}.briefing-autoshow{display:inline-flex;align-items:center;gap:6px;color:var(--muted)}.briefing-open-button{margin-left:4px}.effects-backdrop{place-items:start center;overflow-y:auto}.player-effects-dialog{width:min(720px,calc(100vw - 24px))}.player-stat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(118px,1fr));gap:8px;margin:0}.player-stat-grid.compact{grid-template-columns:repeat(auto-fit,minmax(132px,1fr))}.player-stat{display:flex;flex-direction:column;min-width:0;padding:7px 9px;border:1px solid var(--line);border-radius:var(--radius-md);background:var(--panel-2)}.player-stat.wide{grid-column:1 / -1}.player-stat dt{display:inline-flex;align-items:center;gap:5px;min-width:0;color:var(--muted);font-size:10px;letter-spacing:.06em;text-transform:uppercase}.player-stat dt img{width:15px;height:15px;flex:0 0 auto}.player-stat dd{margin:2px 0 0;min-width:0;overflow-wrap:anywhere;font-size:13px;font-weight:700}.player-stat.tone-good dd{color:var(--good)}.player-stat.tone-warn dd{color:var(--warn)}.player-stat.tone-bad dd{color:var(--bad)}.effects-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}.effect-card{border:1px solid var(--line);border-left:4px solid var(--line-strong);border-radius:var(--radius-md);background:var(--panel-2);padding:8px 10px}.effect-card.cat-positive{border-left-color:var(--good)}.effect-card.cat-negative{border-left-color:var(--bad)}.effect-card.cat-opportunity{border-left-color:#b58000}.effect-card.cat-mixed{border-left-color:var(--accent)}.effect-card-head{display:flex;justify-content:space-between;gap:10px;align-items:baseline}.effect-scope{font-size:10px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);flex:0 0 auto}.effect-card-meta{margin:2px 0 6px;color:var(--muted);font-size:12px}.effect-detail-list{margin:0;padding-left:18px;font-size:12.5px}.passive-effects{display:flex;flex-direction:column;gap:8px}.passive-effect{border:1px solid var(--line);border-radius:var(--radius-md);background:var(--panel-2);padding:8px 10px}.passive-effect-kicker{margin:0 0 3px;color:var(--muted);font-size:10px;text-transform:uppercase;letter-spacing:.06em}.passive-effect h4{margin:0 0 4px;font-size:14px}.passive-effect p{margin:0;color:var(--muted);font-size:13px}.passive-effect ul{margin:6px 0 0;padding-left:18px;color:var(--muted);font-size:12px}.player-avatar{display:inline-block;flex-shrink:0;vertical-align:middle}.player-avatar.is-ai{opacity:.92}.briefing-identity{display:flex;gap:12px;align-items:flex-start}.briefing-archetype{margin:4px 0 2px;font-size:12.5px}.briefing-archetype-title{font-weight:600;color:var(--color-ink)}.briefing-archetype-sep{margin:0 5px;color:var(--muted)}.briefing-archetype-desc{color:var(--muted);font-style:italic}.chip-archetype{display:block;font-size:10.5px;color:var(--muted);font-style:italic;margin-top:1px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:16ch}.player-card-head{display:flex;align-items:center;gap:10px}.player-card-title{display:flex;flex-wrap:wrap;align-items:center;gap:6px;min-width:0}.player-card-archetype{flex-basis:100%;font-size:11px;color:var(--muted);font-style:italic}.major-event-banner{position:fixed;top:18%;left:50%;transform:translate(-50%);z-index:95;display:inline-flex;align-items:center;gap:14px;padding:14px 22px;background:linear-gradient(180deg,#fffdf6,var(--panel));border:1px solid var(--line);border-top:4px solid var(--accent);border-radius:var(--radius-lg);box-shadow:0 18px 42px #2c3a5047;font:inherit;cursor:pointer;text-align:left;animation-name:meb-pop;animation-timing-function:cubic-bezier(.2,.8,.2,1)}.major-event-banner:hover{transform:translate(-50%) translateY(-1px)}.meb-icon{font-size:26px;line-height:1;flex-shrink:0}.meb-body{display:flex;flex-direction:column;gap:1px;min-width:0}.meb-eyebrow{font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}.meb-headline{font-size:16px;font-weight:700;color:var(--text)}.meb-meta{font-size:12px;font-weight:600}.major-event-banner.scope-personal.tag-hired,.major-event-banner.scope-personal.tag-promoted,.major-event-banner.scope-personal.tag-opportunity-taken{border-top-color:var(--good)}.major-event-banner.scope-personal.tag-fired,.major-event-banner.scope-personal.tag-evicted,.major-event-banner.scope-personal.tag-eliminated,.major-event-banner.scope-personal.tag-starved,.major-event-banner.scope-personal.tag-injury{border-top-color:var(--bad)}.major-event-banner.scope-world.tag-cycle-started{border-top-color:var(--accent)}.major-event-banner.scope-world.tag-opportunity-appeared{border-top-color:#b58000}@keyframes meb-pop{0%{opacity:0;transform:translate(-50%) translateY(-12px) scale(.96)}60%{opacity:1;transform:translate(-50%) translateY(0) scale(1.01)}to{opacity:1;transform:translate(-50%) translateY(0) scale(1)}}body[data-reduced-motion=true] .major-event-banner,body[data-speed=off] .major-event-banner{animation-name:none;transition:none}.app-root.landing{max-width:none;width:100%;padding:0;min-height:100vh}.app-root.landing>.app-header{max-width:1440px;width:100%;margin:0 auto;padding:18px clamp(48px,12vw,160px) 0}.app-root.landing>.app-header h1{font-size:18px;letter-spacing:.02em;color:var(--color-ink);opacity:.78;font-weight:600}.app-root.landing .app-main{max-width:1440px;width:100%;margin:0 auto;padding:0 clamp(48px,12vw,160px) 32px}.menu.landing{display:grid;grid-template-columns:minmax(340px,460px) 1fr;gap:clamp(32px,8vw,96px);align-items:start;min-height:calc(100vh - 110px);padding-top:clamp(48px,12vh,140px);padding-bottom:24px}.landing-hero{display:flex;flex-direction:column;gap:10px;max-width:460px}.hero-eyebrow{margin:0;font-size:11px;letter-spacing:.32em;text-transform:uppercase;color:var(--accent);font-weight:700}.hero-title{margin:2px 0 0;font-size:clamp(40px,5.4vw,60px);line-height:1.02;font-weight:800;letter-spacing:-.01em;color:var(--color-ink);text-shadow:0 1px 0 rgba(255,250,240,.55)}.hero-tagline{margin:6px 0 0;font-size:clamp(16px,1.5vw,19px);line-height:1.4;color:var(--color-ink);font-weight:600;max-width:420px}.hero-lede{margin:8px 0 4px;font-size:13.5px;line-height:1.55;color:var(--color-ink-soft);max-width:440px}.hero-name-field{display:flex;flex-direction:column;gap:6px;margin:14px 0 4px;max-width:320px}.hero-name-field span{font-size:10.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--muted);font-weight:700}.hero-name-field input{font-size:15px;padding:9px 11px;background:#fffaf0f0;border-color:#9d8d748c;box-shadow:var(--shadow-tight)}.menu.landing .menu-grid.mode-grid{grid-template-columns:1fr;gap:10px;margin-top:12px;max-width:440px}.mode-card{display:grid;grid-template-columns:1fr auto;align-items:center;gap:16px;padding:14px 18px;background:linear-gradient(180deg,#fffdf7f5,#f6eddcf0);border:1px solid rgba(157,141,116,.55);border-left:4px solid var(--line-strong, #9d8d74);border-radius:var(--radius-lg);box-shadow:0 10px 24px #2c3a5029;cursor:pointer;text-align:left;font:inherit;color:var(--color-ink);transition:transform var(--ftl-css-button-tx-ms, 60ms) cubic-bezier(.2,.8,.2,1),box-shadow var(--ftl-css-button-bg-ms, .12s) ease-out,border-color var(--ftl-css-button-bg-ms, .12s) ease-out,background-color var(--ftl-css-button-bg-ms, .12s) ease-out}.mode-card:hover:not(:disabled){transform:translateY(-2px);border-color:var(--accent);box-shadow:0 16px 32px #2c3a5038}.mode-card:active:not(:disabled){transform:translateY(0)}.mode-card:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.mode-card.primary{background:linear-gradient(180deg,#56d2c9,var(--accent));border-color:#18857f;border-left-color:var(--accent-2);color:#062522}.mode-card.primary:hover:not(:disabled){background:linear-gradient(180deg,#6bdfd6,#2eb1aa);border-color:#15706b}.mode-card .mode-text{display:flex;flex-direction:column;gap:3px;min-width:0}.mode-card .mode-title{font-weight:700;font-size:15.5px}.mode-card .mode-desc{font-size:12.5px;color:var(--muted);line-height:1.35}.mode-card.primary .mode-desc{color:#062522c7}.mode-card .mode-arrow{font-size:24px;line-height:1;color:var(--muted);flex-shrink:0;transition:transform var(--ftl-css-button-tx-ms, 60ms) cubic-bezier(.2,.8,.2,1)}.mode-card.primary .mode-arrow{color:#062522}.mode-card:hover:not(:disabled) .mode-arrow{transform:translate(2px)}.menu.landing .menu-grid.online-grid{grid-template-columns:1fr;gap:12px;margin-top:14px;max-width:440px}.menu.landing .online-grid .card{background:#fffaf0f5;box-shadow:0 10px 24px #2c3a5029}.menu.landing .online-grid .back-button{align-self:flex-start;margin-top:4px}@media (max-width: 900px){body:before{background:linear-gradient(180deg,#fbf6eaf5,#fbf6ead1,#fbf6ea99),url(/assets/Landing-pV6yV5PB.png) center / cover no-repeat fixed}.menu.landing{grid-template-columns:1fr;min-height:auto;padding-top:32px;padding-bottom:32px;gap:24px}.landing-hero{max-width:none}}@media (min-width: 1280px){.menu.landing{grid-template-columns:480px 1fr}}.speed-menu-toggle{display:flex;align-items:center;gap:6px;padding:6px 10px 8px;border-top:1px solid var(--line);margin-top:4px;font-size:12px;color:var(--muted)}.speed-menu-toggle input{width:auto}.audio-mixer{display:grid;gap:8px;padding:8px 10px 10px;border-top:1px solid var(--line)}.audio-mixer[aria-disabled=true]{opacity:.62}.audio-volume-row{display:grid;grid-template-columns:minmax(72px,1fr) 64px minmax(92px,1.25fr);align-items:center;gap:8px;font-size:12px;color:var(--muted)}.audio-volume-row>span:first-child{color:var(--text);font-weight:600}.audio-volume-row>input[type=range]{width:100%;padding:0;box-shadow:none}.audio-mute-toggle{display:flex;align-items:center;justify-content:flex-start;gap:4px;min-width:0}.audio-mute-toggle input{width:auto}.audio-mute-toggle span{white-space:nowrap}.audio-reset{justify-self:start}
