.public-replay-page{max-width:1280px;margin:0 auto;padding:24px}.public-replay-layout{grid-template-columns:minmax(0,2fr) minmax(260px,1fr);gap:24px;margin-top:24px;display:grid}.public-replay-page h1,.public-replay-page h2{font-family:Young Serif,Georgia,serif;font-weight:400}.public-replay-board{border:1px solid var(--border);border-radius:16px;height:clamp(320px,68dvh,720px);overflow:hidden}.public-replay-board .board-renderer-root{width:100%;height:100%}.public-replay-sidebar{min-width:0}@media (width<=760px){.public-replay-page .app-header{flex-direction:column;align-items:flex-start;padding-inline:0}.public-replay-layout{grid-template-columns:1fr}.public-replay-board{height:max(320px,min(68dvh,100vw - 48px))}}:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;color:#172a31;background:#f8f5ec;font-family:system-ui,sans-serif}body{margin:0}main{place-content:center;gap:.5rem;min-height:100vh;padding:1.5rem;display:grid}h1,p{margin:0}small{color:#506169}.board-dev-page{box-sizing:border-box;color:#18332b;background:#f4f7f6;flex-direction:column;justify-content:flex-start;gap:1rem;min-height:100vh;padding:1.5rem;font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;display:flex}.board-dev-header{justify-content:space-between;align-items:center;gap:1rem;display:flex}.board-dev-header p,.board-dev-help p{color:#49665b;margin-top:.5rem}.board-dev-header span{color:#086b52;border:1px solid #b9ccc3;border-radius:999px;padding:.5rem .75rem;font-size:.875rem}.board-dev-layout{grid-template-columns:minmax(0,1fr) minmax(220px,280px);gap:1rem;min-height:min(72vh,720px);display:grid}.board-dev-board{background:#d1e7e9;border:1px solid #b9ccc3;border-radius:12px;min-width:0;min-height:420px;overflow:hidden}.board-view-canvas{width:100%;height:100%;min-height:inherit}.board-dev-help{background:#fcfdfc;border:1px solid #b9ccc3;border-radius:12px;align-self:start;padding:1rem;line-height:1.5}.board-dev-help h2{margin:0;font-size:1rem}.board-dev-help ul{color:#49665b;padding-left:1.25rem}.board-dev-effects{gap:.5rem;margin-block:.5rem;display:grid}.board-dev-effects button,.board-dev-effects label{min-height:2.75rem}.board-dev-help output{overflow-wrap:anywhere;color:#49665b;font:.75rem ui-monospace,monospace;display:block}.board-renderer-root:focus-visible{outline:2px solid var(--accent,#086b52);outline-offset:-2px}.board-keyboard-help{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}@media (width<=767px){.board-dev-page{padding:1rem}.board-dev-layout{grid-template-rows:minmax(60vh,1fr) auto;grid-template-columns:1fr}.board-dev-board{min-height:60vh}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important}}.board-dev-board,.board-renderer-root{position:relative}.board-renderer-status{color:#18332b;text-align:center;pointer-events:none;place-items:center;padding:1rem;display:grid;position:absolute;inset:0}.board-renderer-error{color:#ae3329}:root{--page:#f4f7f6;--surface:#fcfdfc;--raised:#eaf0ed;--text:#18332b;--muted:#49665b;--border:#b9ccc3;--control:#738d81;--accent:#086b52;--accent-text:#fcfdfc;--error:#ae3329;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;background:var(--page);color:var(--text);font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--page:#17191c;--surface:#202327;--raised:#2b3036;--text:#f1f3f5;--muted:#b3bac2;--border:#41474f;--control:#77818b;--accent:#8ab4f8;--accent-text:#15191f;--error:#ff938a;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}:root[data-theme=dark]{--page:#17191c;--surface:#202327;--raised:#2b3036;--text:#f1f3f5;--muted:#b3bac2;--border:#41474f;--control:#77818b;--accent:#8ab4f8;--accent-text:#15191f;--error:#ff938a;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}body{background:var(--page);color:var(--text);margin:0;font-size:16px}button,input,select{font:inherit}button,select{cursor:pointer}button,input,select{min-height:44px}button:disabled{cursor:not-allowed;opacity:.55}button:focus-visible,input:focus-visible,select:focus-visible,a:focus-visible,summary:focus-visible{outline:3px solid var(--accent);outline-offset:3px}main{min-height:100dvh;padding:0;display:block}h1,h2,p{margin:0}h1{letter-spacing:-.035em;font-size:clamp(1.65rem,3vw,2.5rem);line-height:1.14}h2{letter-spacing:-.01em;font-size:1.05rem}p{line-height:1.5}a{color:inherit}.muted{color:var(--muted)}.app-page{background:var(--page);min-height:100dvh;color:var(--text)}.app-header{border-bottom:1px solid var(--border);align-items:center;gap:12px;max-width:1340px;min-height:72px;margin:auto;padding:12px 24px;display:flex}.app-brand{letter-spacing:-.02em;font-size:1rem;font-weight:740}.brand-mark{background:var(--accent);clip-path:polygon(50% 0,100% 25%,100% 75%,50% 100%,0 75%,0 25%);width:20px;height:23px;display:inline-block}.header-settings{margin-left:auto}.text-link{color:var(--accent);font-weight:640;text-decoration:none}.text-link:hover{text-decoration:underline}.button{border:1px solid var(--control);border-radius:8px;justify-content:center;align-items:center;gap:8px;min-height:44px;padding:10px 16px;font-weight:680;line-height:1.2;text-decoration:none;transition:background .18s,transform .18s;display:inline-flex}.button:active{transform:scale(.985)}.button-primary{background:var(--accent);color:var(--accent-text);border-color:var(--accent)}.button-primary:hover{filter:brightness(1.06)}.button-quiet{background:var(--surface);color:var(--text)}.button-quiet:hover{background:var(--raised)}.section-heading{justify-content:space-between;align-items:center;gap:12px;display:flex}.home-content{grid-template-columns:minmax(0,1.15fr) minmax(320px,.85fr);align-items:start;gap:clamp(32px,7vw,104px);max-width:1340px;min-height:calc(100dvh - 72px);margin:auto;padding:clamp(32px,6vw,80px) 24px;display:grid}.home-intro{max-width:590px;padding-top:clamp(12px,5vw,72px)}.home-intro h1{max-width:14ch;font-size:clamp(2.7rem,6vw,5rem)}.home-intro p{max-width:42ch;color:var(--muted);margin:20px 0 28px;font-size:1.1rem}.home-online-actions{flex-wrap:wrap;gap:12px;display:flex}.home-beta-note{color:var(--muted);margin-top:12px;display:block}.home-local-link{margin-top:28px;display:inline-block}.home-saved-games{gap:32px;min-width:0;display:grid}.saved-games{padding-top:12px}.saved-games .section-heading{border-bottom:1px solid var(--border);padding-bottom:16px}.saved-games>.muted,.saved-games>[role]{padding:20px 0}.saved-game-row{border-bottom:1px solid var(--border);grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:20px;padding:18px 0;text-decoration:none;display:grid}.saved-game-row:hover .saved-game-names{color:var(--accent)}.saved-game-names{text-overflow:ellipsis;white-space:nowrap;min-width:0;font-weight:650;overflow:hidden}.saved-game-time{color:var(--muted);font-size:.875rem}.saved-game-arrow{color:var(--accent);font-size:1.25rem}.form-page-content{max-width:940px;margin:auto;padding:40px 24px 80px}.form-page-content>.muted{margin:10px 0 28px}.settings-form,.setup-form{gap:20px;display:grid}.settings-form fieldset,.setup-form fieldset{border:1px solid var(--border);background:var(--surface);border-radius:12px;gap:12px;min-width:0;margin:0;padding:20px;display:grid}fieldset legend{padding:0 8px;font-weight:720}label{gap:6px;font-size:.875rem;font-weight:650;display:grid}input:not([type=checkbox]),select{border:1px solid var(--control);background:var(--surface);width:100%;color:var(--text);border-radius:8px;padding:8px 12px}input[type=checkbox]{width:20px;height:20px;min-height:20px;accent-color:var(--accent)}.checkbox-row{align-items:center;gap:12px;min-height:44px;font-weight:540;display:flex}.checkbox-row span{flex:1}.network-settings{margin-top:36px}.network-settings summary{cursor:pointer;padding-block:8px;font-weight:650}.network-settings-fields{gap:12px;padding-top:12px;display:grid}.network-settings textarea{resize:vertical;border:1px solid var(--control);background:var(--surface);width:100%;color:var(--text);font:inherit;border-radius:8px;padding:8px 12px;font-size:.875rem}.settings-form>.button,.setup-form>.button{justify-self:start}.setup-content{max-width:1100px}.form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;display:grid}.player-form-list{gap:12px;display:grid}.player-form-row{border-top:1px solid var(--border);grid-template-columns:28px minmax(160px,1.4fr) minmax(120px,.8fr) minmax(120px,.8fr);align-items:end;gap:12px;padding:12px 0;display:grid}.player-form-row label{min-width:0}.player-marker{background:var(--player-color);border:2px solid var(--text);flex:none;width:18px;height:18px;display:inline-block;box-shadow:inset 0 0 0 2px #fff}.marker-circle{border-radius:50%}.marker-triangle{box-shadow:none;background:0 0;border:0}.marker-triangle svg{width:100%;height:100%;display:block}.marker-triangle .triangle-outline,.marker-triangle .triangle-solid{stroke:var(--text)}.marker-triangle .triangle-outline{fill:#fff}.marker-triangle .triangle-solid,.marker-triangle .triangle-fill{fill:var(--player-color)}.marker-square{border-radius:2px}.marker-diamond{border-radius:2px;transform:rotate(45deg)scale(.78)}.advanced-options{border:1px solid var(--border);background:var(--surface);border-radius:12px}.advanced-options summary{cursor:pointer;padding:16px 20px;font-weight:720}.advanced-options-content{gap:12px;padding:4px 20px 20px;display:grid}.message-page{text-align:center;align-content:center;justify-items:center;gap:20px;padding:24px;display:grid}.local-game-page,.online-game-page{flex-direction:column;place-content:normal;gap:0;height:100dvh;min-height:0;padding:0;display:flex;overflow:hidden}.save-indicator{color:var(--muted);font-size:.82rem}.save-indicator.status-error{color:var(--error)}.game-page{flex-direction:column;flex:1;width:100%;min-height:0;display:flex;position:relative;overflow:hidden}.game-menu{z-index:30;width:44px;position:absolute;top:8px;left:8px}.game-menu summary{border:1px solid var(--control);background:var(--surface);cursor:pointer;border-radius:9px;place-items:center;width:44px;height:44px;font-size:1.25rem;list-style:none;display:grid;box-shadow:0 3px 12px #090b0e33}.game-menu summary::-webkit-details-marker{display:none}.game-menu-panel{border:1px solid var(--control);background:var(--surface);border-radius:10px;gap:10px;width:min(310px,100vw - 16px);max-height:calc(100dvh - 64px);margin-top:6px;padding:16px;display:grid;overflow:auto;box-shadow:0 16px 42px #090b0e40}.game-menu-panel>button{min-height:44px}.game-menu-panel .dev-drawer{border-top:1px solid var(--border);min-width:0;max-height:50dvh;padding-top:10px;overflow:auto}.eyebrow{color:var(--muted);margin-bottom:4px;font-size:.8rem;font-weight:700}.turn-timer{border:1px solid var(--border);font-variant-numeric:tabular-nums;white-space:nowrap;border-radius:8px;padding:8px 12px;font-size:.875rem}.game-grid{flex:1;grid-template-rows:minmax(0,1fr) clamp(180px,20dvh,195px);grid-template-columns:minmax(0,1fr) 280px;gap:0;min-height:0;display:grid;overflow:hidden}.game-board{border:0;border-bottom:1px solid var(--border);background:#d1e7e9;grid-area:1/1;min-width:0;min-height:0;position:relative;overflow:hidden}.game-board .board-renderer-root{width:100%;height:100%;min-height:0}.game-board .board-view-canvas{min-height:0}.game-sidebar{border-left:1px solid var(--border);background:var(--surface);flex-direction:column;grid-area:1/2/3;min-width:0;min-height:0;display:flex;overflow:hidden}.game-info{border-top:1px solid var(--border);flex:none;min-height:0;max-height:28%;overflow:hidden}.game-info[open]{flex-direction:column;display:flex}.game-info>summary{display:none}.resource-flight-overlay{z-index:25;pointer-events:none;position:fixed;inset:0}.resource-flight{transform-origin:50%;will-change:transform, opacity;filter:drop-shadow(0 4px 8px #3d2f3540);animation:1.4s cubic-bezier(.4,0,.2,1) forwards resource-flight;display:block;position:fixed}.resource-flight img{width:48px;height:68px;display:block}.resource-flight b{color:#f7efde;background:#3d2f35;border-radius:999px;padding:3px 6px;font-size:.75rem;line-height:1.2;position:absolute;top:-7px;right:-8px}@keyframes resource-flight{0%{opacity:0;transform:translate(-50%,-50%)scale(.8)}12%{opacity:1;transform:translate(-50%,-50%)scale(1)}82%,92%{transform:translate(calc(-50% + var(--flight-dx)), calc(-50% + var(--flight-dy))) scale(1);opacity:1}to{transform:translate(calc(-50% + var(--flight-dx)), calc(-50% + var(--flight-dy))) scale(1);opacity:0}}.player-rail{flex:1;min-width:0;min-height:0;overflow-y:auto}.player-rail h2{padding:12px}.player-list{gap:0;display:grid}.player-panel{border-top:1px solid var(--border);background:var(--surface);padding:8px 12px}.player-panel.is-active{border-color:var(--accent);background:var(--raised)}.player-panel-heading{align-items:center;gap:10px;display:flex}.player-panel-heading strong{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.player-seat-index{display:none}.timer-ring{font-variant-numeric:tabular-nums;border-radius:50%;flex:none;place-items:center;width:36px;height:36px;font-size:.72rem;font-weight:750;display:grid}.timer-ring>span{background:var(--surface);border-radius:50%;place-items:center;width:28px;height:28px;display:grid}.player-vp{background:var(--raised);text-align:center;font-variant-numeric:tabular-nums;border-radius:6px;min-width:32px;padding:4px 6px;font-weight:750}.player-vp small{font-size:.62rem;font-weight:600}.player-panel-status{color:var(--muted);justify-content:space-between;gap:8px;margin-top:6px;font-size:.72rem;display:flex}.production-receipt{min-width:0;max-width:100%;color:var(--text);white-space:nowrap;align-items:center;gap:5px;display:flex;overflow-x:auto}.receipt-label{color:var(--muted);flex:none;font-weight:650}.receipt-resource{font-variant-numeric:tabular-nums;flex:none;align-items:center;gap:1px;display:inline-flex}.receipt-resource img{width:23px;height:23px}.receipt-resource b{font-size:.875rem}.receipt-resource:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.optional-trade-chooser{color:var(--muted);margin-top:8px;font-size:.82rem}.optional-trade-chooser summary{cursor:pointer;align-items:center;min-height:44px;display:flex}.optional-trade-chooser>div{flex-wrap:wrap;gap:8px;display:flex}.hand-controls{flex-wrap:wrap;justify-content:flex-end;gap:6px;display:flex}.hand-hide-control{background:0 0;border-color:#0000;width:44px;min-width:44px;height:44px;padding:0}.hand-hide-control svg{width:20px;height:20px}.connection-status:before{background:var(--accent);content:"";vertical-align:middle;border-radius:50%;width:6px;height:6px;margin-right:5px;display:inline-block}.player-panel-stats{font-variant-numeric:tabular-nums;grid-template-columns:repeat(2,minmax(0,1fr));gap:2px 8px;margin:5px 0 0;font-size:.75rem;display:grid}.player-panel-stats div{gap:4px;min-width:0;display:flex}.player-panel-stats dt{color:var(--muted)}.player-panel-stats dd{margin:0;font-weight:650}.player-pieces{color:var(--muted);margin-top:4px;font-size:.75rem}.player-pieces summary{cursor:pointer;align-items:center;min-height:28px;display:flex}.player-pieces span{line-height:1.35;display:block}.player-piece-counts{flex-wrap:wrap;align-items:center;gap:5px 12px;margin-top:5px;display:flex}.player-piece-count{min-height:22px;color:var(--muted);font-variant-numeric:tabular-nums;align-items:center;gap:3px;font-size:.75rem;display:inline-flex}.player-piece-count img{object-fit:contain;width:22px;height:19px}.player-piece-count span{color:var(--text);font-weight:700}.award-chip{border:1px solid var(--border);border-radius:6px;margin:8px 6px 0 0;padding:3px 7px;font-size:.75rem;font-weight:650;display:inline-block}.game-bottom{grid-area:2/1;grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr);gap:0;min-height:0;display:grid}.hand-dock,.action-dock,.bank-panel,.event-log{background:var(--surface);border:0;min-width:0;padding:16px}.hand-dock{border-right:1px solid var(--border);grid-template-rows:auto minmax(0,1fr);grid-template-columns:minmax(0,352px) minmax(0,1fr);align-content:start;gap:0 16px;min-height:0;display:grid;overflow-y:auto}.hand-dock .section-heading,.hand-dock>.muted{grid-column:1/-1}.action-dock{min-height:0;padding:8px 12px;position:relative;overflow-y:auto}.action-dock>.muted{margin-top:12px}.action-dock>p{margin-top:30px}.action-dock>.optional-trade-chooser{margin-top:28px}.action-dock-heading{z-index:2;justify-content:flex-start;align-items:center;gap:12px;width:max-content;min-height:44px;display:flex;position:absolute;top:3px;left:12px}.action-dock-heading h2{position:static}.action-costs-trigger{flex:none;min-height:44px;padding:4px 8px;font-size:.75rem}.action-dock-layout{gap:10px;min-width:0;min-height:100%;display:grid}.action-dock-layout.has-normal{grid-template-columns:minmax(0,1fr) 68px;position:relative}.action-dock-layout.has-normal:after{background:var(--border);content:"";pointer-events:none;width:1px;position:absolute;top:-8px;bottom:-8px;right:68px}.action-context{min-width:0;padding-top:44px}.action-context-buttons,.action-normal-buttons{flex-wrap:wrap;align-content:start;gap:6px;display:flex}.action-context-buttons+.action-context-buttons{margin-top:6px}.action-normal-buttons{border-left:0;flex-flow:column;align-items:stretch;gap:3px;min-width:0;height:100%;padding-left:8px}.action-control{text-align:left;justify-content:center;align-items:center;gap:6px;max-width:100%;min-height:44px;padding:7px 10px;font-size:.8125rem;line-height:1.2;display:inline-flex}.action-control .action-icon{object-fit:contain;flex:none;width:20px;height:20px;display:block}.action-control .action-icon[src*=road]{width:26px}.action-control span{min-width:0}.action-normal-control{text-align:center;flex-direction:column;flex:0 0 52px;gap:2px;width:52px;height:52px;min-height:52px;max-height:52px;padding:4px 3px;font-size:.75rem;line-height:1.1}.action-normal-control .action-icon{width:16px;height:16px}.action-normal-control span{text-align:center;max-width:100%;display:block}.action-context-hint{color:var(--muted);margin-top:7px;font-size:.75rem;line-height:1.3}.action-row{flex-wrap:wrap;gap:8px;margin-top:14px;display:flex}.placement-confirmation{z-index:8;border:1px solid var(--control);background:var(--surface);border-radius:10px;width:min(260px,100% - 16px);padding:12px;position:absolute;box-shadow:0 12px 32px #0004}.placement-confirmation p{color:var(--muted);margin-top:6px;font-size:.8125rem;line-height:1.3}.placement-confirmation .action-row{margin-top:10px}.placement-confirmation button{min-height:44px}.action-pending{align-items:center;gap:8px;display:inline-flex}.action-spinner{border:2px solid;border-right-color:#0000;border-radius:50%;flex:none;width:1em;height:1em;animation:.8s linear infinite action-spin;display:inline-block}@keyframes action-spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.action-spinner{animation:none}}.board-offers{z-index:7;pointer-events:none;flex-direction:column;justify-content:flex-end;width:min(300px,100% - 16px);display:flex;position:absolute;inset:8px 8px 8px auto}.board-offers>*{pointer-events:auto}.action-error{color:var(--error)}.action-forms{display:contents}.action-forms dialog{border:1px solid var(--control);background:var(--surface);width:min(92vw,520px);max-height:min(86vh,780px);color:var(--text);border-radius:14px;padding:24px;overflow:auto;box-shadow:0 24px 80px #0005}.action-forms dialog.trade-dialog{width:min(94vw,680px)}.action-forms dialog::backdrop{background:#090b0ea8}.action-forms dialog>*+*{margin-top:14px}.action-dialog-body{display:contents}.action-dialog-body>*{margin-top:14px}.action-forms dialog [inert] button{opacity:.5}.action-forms dialog label{gap:6px;display:grid}:where(.action-forms dialog) fieldset{border:1px solid var(--border);border-radius:8px;padding:12px}:where(.action-forms dialog) button{border:1px solid var(--control);background:var(--raised);min-height:44px;color:var(--text);cursor:pointer;border-radius:8px;padding:8px 13px}:where(.action-forms dialog) button:disabled{cursor:not-allowed;opacity:.5}.finished-dock{align-content:center;justify-items:start;gap:8px;display:grid}.finished-dock>p{margin:0}.finished-dock>button{min-height:44px}.results-dialog{background:var(--surface);width:100dvw;max-width:none;height:100dvh;max-height:none;color:var(--text);border:0;border-radius:0;grid-template-rows:auto minmax(0,1fr) auto;margin:0;padding:0;position:fixed;inset:0}.results-dialog[open]{display:grid}.results-dialog::backdrop{background:#090b0ea8}.results-header{padding:16px max(24px, env(safe-area-inset-left));border-bottom:1px solid var(--border);gap:3px;display:grid}.results-header h2{font-size:clamp(1.5rem,2.5vw,2rem);line-height:1.1}.results-header h2:focus{outline:none}.results-body{overscroll-behavior:contain;min-height:0;padding:24px 32px;overflow-y:auto}.results-layout{grid-template-columns:minmax(0,1.25fr) minmax(280px,1fr);grid-template-areas:"hero stats""standings stats";align-items:start;gap:24px 32px;max-width:1180px;margin:0 auto;display:grid}.results-hero{border:1px solid var(--border);border-radius:12px;grid-area:hero;padding:24px}.results-identity{align-items:center;gap:10px;font-size:1.25rem;display:flex}.results-identity .player-marker{width:28px;height:28px}.results-winner-badge{background:var(--accent);color:var(--accent-text);border-radius:999px;padding:3px 8px;font-size:.75rem;font-weight:700}.results-total{color:var(--muted);font-variant-numeric:tabular-nums;margin-top:12px;font-weight:700}.results-total strong{color:var(--text);font-size:3.5rem;line-height:1}.results-score-parts{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:16px 0 0;display:grid}.results-score-parts>div{background:var(--raised);border-radius:8px;padding:10px 12px}.results-score-parts dt{color:var(--muted);font-size:.8125rem}.results-score-parts dd{font-variant-numeric:tabular-nums;margin:2px 0 0;font-size:1.25rem;font-weight:750}.results-standings{grid-area:standings;min-width:0}.results-standings ol{gap:8px;margin:12px 0 0;padding:0;list-style:none;display:grid}.results-standing{border:1px solid var(--border);border-radius:10px;grid-template-columns:20px minmax(0,1fr) auto;grid-template-areas:"marker name total"".parts total";align-items:center;gap:4px 10px;min-height:62px;padding:10px 12px;display:grid}.results-standing>.player-marker{grid-area:marker}.results-standing-name{grid-area:name;min-width:0}.results-standing-name small{color:var(--accent);margin-left:8px;font-weight:700}.results-standing-total{white-space:nowrap;font-variant-numeric:tabular-nums;grid-area:total;font-size:1.35rem;font-weight:750}.results-standing-total small{font-size:.75rem}.results-standing-breakdown{color:var(--muted);grid-area:parts;font-size:.8125rem}.results-stats{grid-area:stats;min-width:0}.results-stats>summary{cursor:pointer;min-height:44px;font-weight:750}.results-stats h3{margin:12px 0 8px;font-size:.875rem}.results-dice-histogram{grid-template-columns:repeat(11,minmax(0,1fr));align-items:end;gap:4px;height:122px;margin:0;padding:0;list-style:none;display:grid}.results-dice-histogram li{font-variant-numeric:tabular-nums;align-content:end;justify-items:center;gap:3px;min-width:0;font-size:.75rem;display:grid}.results-dice-fill{background:var(--accent);border-radius:3px 3px 0 0;width:100%;min-height:2px}.results-production{margin:0;padding:0;list-style:none}.results-production li{border-top:1px solid var(--border);font-variant-numeric:tabular-nums;grid-template-columns:minmax(0,1fr) minmax(60px,1fr) auto;align-items:center;gap:10px;min-height:44px;display:grid}.results-production-track{background:var(--raised);border-radius:999px;height:6px}.results-production-track>span{border-radius:inherit;background:var(--accent);height:100%;display:block}.results-footer{padding:12px 32px max(12px, env(safe-area-inset-bottom));border-top:1px solid var(--border);flex-wrap:wrap;align-items:center;gap:8px;display:flex}.results-footer>button{min-height:44px}.results-footer>button:first-of-type{margin-right:auto}.results-footer>[role=alert]{flex-basis:100%}@media (height<=800px) and (width>=768px) and (height>=501px){.results-body{padding-block:16px}.results-layout{gap:16px 24px}.results-hero{padding:16px}.results-standing{min-height:56px;padding-block:8px}}@media (width<=767px){.results-header{padding:12px 16px}.results-header h2{font-size:1.375rem}.results-body{padding:16px}.results-layout{grid-template-columns:minmax(0,1fr);grid-template-areas:"hero""standings""stats";gap:16px}.results-hero{padding:16px}.results-total strong{font-size:2.75rem}.results-footer{padding:10px 16px max(10px, env(safe-area-inset-bottom));grid-template-columns:minmax(0,1fr) minmax(0,1fr);display:grid}.results-footer>button:first-of-type{margin-right:0}.results-footer>button:last-of-type,.results-footer>[role=alert]{grid-column:1/-1}}@media (height<=500px) and (width>=768px){.results-header{padding:8px 24px}.results-header h2{font-size:1.25rem}.results-body{padding:12px 24px}.results-layout{grid-template-columns:minmax(0,1fr) minmax(0,1fr);grid-template-areas:"hero standings""stats stats";gap:12px 24px}.results-hero{padding:12px 16px}.results-total strong{font-size:2.5rem}.results-standing{min-height:50px;padding:6px 10px}.results-footer{padding:8px 24px max(8px, env(safe-area-inset-bottom))}}.resource-hand{grid-template-columns:repeat(5,minmax(0,64px));justify-content:start;gap:8px;margin-top:12px;display:grid}.resource-hand-card{min-width:0}.resource-hand-card:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.resource-hand-card[data-empty=true] img{opacity:.45}.development-hand{flex-wrap:nowrap;gap:6px;min-width:0;margin-top:2px;padding-top:4px;display:flex;overflow-x:auto}.development-hand>:first-child{margin-left:auto}.development-hand.is-fanned{--fan-card-width:46px;--fan-caption-width:90px;--fan-step:28px;gap:0;padding-top:12px;overflow:visible}.development-hand.is-fanned[data-card-count="4"]{--fan-step:22px}.development-hand.is-fanned[data-card-count="5"]{--fan-step:18px}.development-hand.is-fanned .development-card{z-index:1;width:var(--fan-step);padding-inline:0}.development-hand.is-fanned .development-card:first-child{margin-left:auto}.development-hand.is-fanned .development-card:last-child{width:var(--fan-card-width)}.development-hand.is-fanned .development-card-main{grid-template-columns:minmax(0,1fr);justify-items:start;min-width:0}.development-hand.is-fanned .development-card-art,.development-hand.is-fanned .development-card-main strong{pointer-events:none;max-width:none;transition:transform .16s}.development-hand.is-fanned .development-card-art{width:var(--fan-card-width);justify-items:start}.development-hand.is-fanned .development-card-main strong{width:var(--fan-caption-width);left:calc((var(--fan-card-width) - var(--fan-caption-width)) / 2)}.development-hand.is-fanned .development-card:last-child .development-card-main strong{left:calc(var(--fan-card-width) - var(--fan-caption-width))}.development-hand.is-fanned .knight-card-confirmation{left:calc(var(--fan-card-width) / 2);transition:transform .16s}.development-hand.is-fanned .development-card:is(:hover,:has(.development-card-main:focus-visible)){z-index:10}.development-hand.is-fanned.has-knight-intent .development-card.has-knight-intent{z-index:20}.development-hand.is-fanned .development-card:is(:hover,:has(.development-card-main:focus-visible),.has-knight-intent) .development-card-art,.development-hand.is-fanned .development-card:is(:hover,:has(.development-card-main:focus-visible),.has-knight-intent) .development-card-main strong{transform:translateY(-8px)}.development-hand.is-fanned .development-card:is(:hover,:has(.development-card-main:focus-visible),.has-knight-intent) .knight-card-confirmation{transform:translate(-50%,-8px)}.development-hand.is-fanned .development-card-main strong{z-index:1;background:var(--surface);opacity:0;border-radius:4px;padding:2px 3px;transition:opacity .16s;position:relative;box-shadow:0 1px 3px #0003}.development-hand.is-fanned .development-card:is(:hover,:has(.development-card-main:focus-visible),.has-knight-intent) .development-card-main strong{opacity:1}.development-hand.is-fanned.has-knight-intent .development-card:not(.has-knight-intent) .development-card-main strong{opacity:0}.development-hand.is-fanned:hover:not(:has(.development-card-main:focus-visible)) .development-card:not(:hover):not(.has-knight-intent) .development-card-main strong{opacity:0}.development-hand.is-fanned:has(.development-card-main:focus-visible) .development-card:not(:has(.development-card-main:focus-visible)):not(.has-knight-intent) .development-card-main strong{opacity:0}.development-card{--dev-art-height:64px;text-align:center;flex:none;align-content:start;justify-items:center;gap:2px;width:90px;padding:2px;font-size:.75rem;display:grid;position:relative}.development-card-main{width:100%;min-height:0;color:inherit;font:inherit;text-align:inherit;background:0 0;border:0;align-content:start;justify-items:center;gap:2px;padding:0;display:grid}button.development-card-main{cursor:pointer}button.development-card-main:focus-visible{outline:none}button.development-card-main:focus-visible img{border:2px solid var(--accent);border-radius:4px}.development-card-art{justify-items:center;width:100%;display:grid}.development-card img{object-fit:contain;width:46px;height:64px;display:block}.development-card.has-knight-intent .development-card-art img{border:2px solid var(--accent);border-radius:4px}.development-card.has-knight-intent .development-card-main strong{margin-top:12px}.knight-card-confirmation{top:calc(2px + var(--dev-art-height) - 20px);pointer-events:none;gap:4px;display:flex;position:absolute;left:50%;transform:translate(-50%)}.knight-card-choice{width:30px;height:30px;min-height:30px;color:var(--text);cursor:pointer;pointer-events:auto;background:0 0;border:0;flex:none;place-items:center;padding:0;display:grid;position:relative}.knight-card-choice:before{border:1px solid var(--control);background:var(--surface);content:"";border-radius:7px;width:26px;height:26px;position:absolute;box-shadow:0 2px 5px #0003}.knight-card-confirm:before{border-color:var(--accent);background:var(--accent)}.knight-card-confirm{color:var(--accent-text)}.knight-card-choice svg{fill:none;stroke:currentColor;stroke-width:2.2px;stroke-linecap:round;stroke-linejoin:round;width:15px;height:15px;position:relative}.development-card strong{overflow-wrap:anywhere;max-width:100%;line-height:1.1}.development-card.is-disabled{color:var(--muted)}.development-card.is-disabled img{filter:grayscale();opacity:.45}.development-card:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.development-dialog{border:1px solid var(--control);background:var(--surface);width:min(90vw,560px);max-height:min(82dvh,480px);color:var(--text);border-radius:12px;padding:20px}.development-dialog::backdrop{background:#090b0ea8}.development-dialog .development-hand{flex-wrap:wrap;min-height:0;margin:16px 0;overflow:hidden auto}.development-dialog .development-hand>:first-child{margin-left:0}.development-dialog[open]{flex-direction:column;display:flex;overflow:hidden}.development-dialog>h2,.development-dialog>button{flex:none}.development-dialog .development-card img{width:58px;height:80px}.development-dialog .development-card{--dev-art-height:80px}.development-dialog .development-card.has-knight-intent .development-card-main strong{margin-top:16px}.development-dialog>button{min-height:44px}@media (width<=767px),(height<=500px){.development-dialog .knight-card-confirmation{top:calc(2px + var(--dev-art-height) - 30px);gap:4px}.development-dialog .knight-card-choice{width:44px;height:44px;min-height:44px}.development-dialog .knight-card-choice:before{width:34px;height:32px}}.game-sidebar .bank-panel{border-top:1px solid var(--border);flex:none;padding:6px 8px}.bank-cards{grid-template-columns:repeat(5,minmax(0,1fr));gap:3px;margin-top:4px;display:grid}.bank-card{justify-items:center;min-width:0;display:grid}.bank-card .resource-card{width:100%}.bank-card .resource-card[data-size=sm] img{width:32px;height:44px}.bank-card .resource-card-count{min-width:20px;height:20px;padding:0 2px;font-size:.6875rem;top:-4px;right:-4px}.bank-card .resource-card-name{text-overflow:ellipsis;white-space:nowrap;max-width:100%;font-size:.75rem;overflow:hidden}.bank-card:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.game-sidebar .event-log{border-top:1px solid var(--border);flex:none;min-height:44px;padding:10px 12px}.game-sidebar .event-log[open]{flex:1;min-height:0;overflow-y:auto}.event-log summary{cursor:pointer;font-weight:700}.event-log ol{gap:6px;max-height:180px;margin:12px 0 0;padding-left:20px;font-size:.85rem;display:grid;overflow:auto}.event-log p{margin-top:12px}.privacy-cover{z-index:50;background:var(--page);border:0;place-items:center;width:100vw;max-width:none;height:100vh;max-height:none;margin:0;padding:20px;display:grid;position:fixed;inset:0}.privacy-cover::backdrop{background:var(--page)}.privacy-card{border:1px solid var(--border);background:var(--surface);text-align:center;border-radius:16px;gap:16px;width:min(100%,440px);padding:32px;display:grid}.privacy-card .button{justify-self:center}.privacy-symbol{color:var(--accent);font-size:2rem}.conflict-banner{z-index:60;background:var(--page);text-align:center;place-content:center;gap:16px;padding:24px;display:grid;position:fixed;inset:0}.app-dialog{border:1px solid var(--border);background:var(--surface);width:min(90vw,440px);color:var(--text);border-radius:16px;padding:24px;box-shadow:0 20px 60px #0003}.app-dialog::backdrop{background:#090b0ea8}.app-dialog p{margin-top:12px}.dialog-actions{justify-content:flex-end;gap:8px;margin-top:24px;display:flex}@media (width<=900px){.game-grid{grid-template-columns:minmax(0,1fr) 220px}}@media (width<=1260px) and (width>=1001px){.game-bottom{grid-template-columns:minmax(0,1.25fr) minmax(0,.75fr)}.hand-dock{grid-template-columns:minmax(0,256px) minmax(0,1fr);column-gap:8px}.hand-dock .resource-hand{grid-template-columns:repeat(5,minmax(0,48px));gap:4px}.hand-dock .resource-card{--card-w:44px}.hand-dock .resource-card-count{right:-2px}.hand-dock .development-card{--dev-art-height:52px;width:72px}.hand-dock .development-card img{width:38px;height:52px}.hand-dock .development-hand{gap:4px}.hand-dock .development-hand.is-fanned{--fan-card-width:38px;--fan-caption-width:72px;--fan-step:24px}.hand-dock .development-hand.is-fanned[data-card-count="5"]{--fan-step:16px}}@media (width<=1000px){.hand-dock{display:block}}@media (width>=768px) and (width<=1000px) and (height>=501px){.game-bottom{grid-template-columns:minmax(0,1.3fr) minmax(0,.7fr)}.hand-dock{grid-template-columns:minmax(0,212px) minmax(0,1fr);column-gap:8px;padding:8px;display:grid}.hand-dock .resource-hand{grid-template-columns:repeat(5,minmax(0,38px));gap:4px}.hand-dock .resource-card{--card-w:38px}.hand-dock .resource-card-count{right:-2px}.hand-dock .resource-card-name{max-width:none;font-size:11px;overflow:visible}.hand-dock .development-card{--dev-art-height:52px;width:68px}.hand-dock .development-card img{width:38px;height:52px}.hand-dock .development-hand.is-fanned{--fan-card-width:38px;--fan-caption-width:68px;--fan-step:20px}}@media (width<=767px){.app-header{min-height:60px;padding:10px 16px}.home-content{grid-template-columns:1fr;gap:48px;padding:36px 16px}.home-intro{padding:0}.home-intro h1{font-size:clamp(2.5rem,11vw,4rem)}.form-page-content{padding:28px 16px 64px}.player-form-row{grid-template-columns:24px minmax(0,1fr) minmax(100px,.7fr)}.player-form-row label:last-child{grid-column:2/-1}.form-grid{grid-template-columns:1fr}.resource-hand{grid-template-columns:repeat(5,minmax(0,48px));gap:4px}.action-forms dialog.trade-dialog{width:100vw;max-width:none;height:100dvh;max-height:none;padding:max(16px, env(safe-area-inset-top)) 18px max(18px, env(safe-area-inset-bottom));border:0;border-radius:0;margin:0}.game-page{padding:0}.game-grid{grid-template-rows:minmax(0,1fr) 64px clamp(310px,38dvh,330px);grid-template-columns:minmax(0,1fr);gap:0}.game-board{border-bottom:1px solid var(--border);grid-area:1/1;min-height:0}.game-sidebar{border-left:0;border-bottom:1px solid var(--border);flex-direction:row;grid-area:2/1}.player-rail{flex:1;overflow:hidden}.player-rail h2,.player-panel-stats,.player-piece-counts{display:none}.player-list{grid-template-columns:repeat(4,minmax(0,1fr));width:100%;height:100%;display:grid}.player-panel{border-top:0;border-right:1px solid var(--border);align-content:center;min-width:0;padding:4px 2px;display:grid}.player-panel-heading{justify-content:center;gap:3px}.player-panel-heading strong{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.player-seat-index{font-size:.75rem;font-weight:700;display:inline}.player-vp{min-width:24px;padding:2px;font-size:.8125rem}.player-vp small,.player-panel .timer-ring,.player-panel-status{display:none}.player-panel.has-receipt .player-panel-status{min-width:0;margin-top:2px;display:block}.player-panel.has-receipt .receipt-label{display:none}.player-panel.has-receipt .production-receipt{justify-content:center;gap:2px}.player-panel.has-receipt .receipt-resource img{width:12px;height:12px}.player-panel.has-receipt .receipt-resource b{font-size:.625rem}.game-info{flex:none;max-height:none;overflow:visible}.game-info>summary{border-left:1px solid var(--border);cursor:pointer;text-align:center;place-items:center;width:44px;height:100%;min-height:44px;font-size:.8125rem;display:grid}.game-info[open]{z-index:35;border-top:1px solid var(--control);background:var(--surface);width:100vw;max-height:75dvh;display:block;position:fixed;inset:auto 0 0;overflow-y:auto;box-shadow:0 -10px 36px #090b0e26}.game-info[open]>summary{justify-items:start;width:100%;height:44px;padding-inline:16px}.game-bottom{min-height:0;max-height:none;box-shadow:none;border-top:0;border-radius:0;grid-area:3/1;grid-template-rows:140px minmax(0,1fr);grid-template-columns:minmax(0,1fr);padding:0;display:grid;position:static;overflow:hidden}.game-bottom>.action-dock{order:0;grid-row:2;min-height:0;padding:8px 12px;overflow-y:auto}.game-bottom>.hand-dock{border-bottom:1px solid var(--border);border-right:0;order:0;grid-row:1;min-height:0;padding:6px 12px;display:block;overflow-y:hidden}.hand-dock .resource-hand{grid-template-columns:repeat(5,minmax(0,48px));margin-top:4px}.hand-dock .resource-card[data-size=md] img{width:min(100%,44px);height:60px}.action-dock{flex-direction:column;display:flex}.action-dock-heading{flex:none;margin-bottom:2px;position:static}.action-dock-layout{min-height:0}.action-context{padding-top:0}.action-dock-layout.has-normal{grid-template-columns:minmax(0,1fr)}.action-dock-layout.has-normal:after{display:none}.action-normal-buttons{border-top:1px solid var(--border);border-left:0;grid-row:1;grid-template-columns:repeat(3,minmax(0,1fr));justify-content:flex-start;gap:4px;height:auto;padding-top:6px;padding-left:0;display:grid}.action-normal-control{text-align:center;flex-direction:row;flex:none;gap:4px;width:100%;min-width:0;height:44px;min-height:44px;max-height:none;padding:6px 4px;font-size:.8125rem}.action-dock-layout.has-normal>.action-context{grid-row:2}.action-dock .optional-trade-chooser{order:2;margin-top:4px}.action-dock>p,.action-dock .action-row{margin-top:5px}}@media (height<=500px) and (width>=768px){.game-grid{grid-template-rows:minmax(0,1fr);grid-template-columns:minmax(0,1fr) 300px}.game-board{border-bottom:0;grid-area:1/1}.game-bottom{border-left:1px solid var(--border);grid-area:1/2;grid-template-rows:140px minmax(0,1fr);grid-template-columns:minmax(0,1fr);align-self:start;height:calc(100% - 64px)}.game-bottom>.hand-dock{border-right:0;border-bottom:1px solid var(--border);grid-row:1;display:block;overflow:hidden}.game-bottom>.action-dock{grid-row:2}.hand-dock .resource-hand{grid-template-columns:repeat(5,minmax(0,1fr));gap:3px;margin-top:4px}.hand-dock .resource-card[data-size=md] img{width:min(100%,44px);height:60px}.game-sidebar{border-top:1px solid var(--border);flex-direction:row;grid-area:1/2;align-self:end;height:64px}.player-rail{flex:1;overflow:hidden}.player-rail h2,.player-panel-status,.player-panel-stats,.player-piece-counts{display:none}.player-list{grid-template-columns:repeat(4,minmax(0,1fr));height:100%;display:grid}.player-panel{border-top:0;border-right:1px solid var(--border);align-content:center;min-width:0;padding:4px 2px;display:grid}.player-panel-heading{justify-content:center;gap:2px}.player-panel-heading strong,.player-panel .timer-ring{display:none}.player-seat-index{font-size:.75rem;font-weight:700;display:inline}.player-vp{min-width:23px;padding:2px;font-size:.8125rem}.player-vp small{display:none}.player-panel.has-receipt .player-panel-status{min-width:0;margin-top:2px;display:block}.player-panel.has-receipt .receipt-label{display:none}.player-panel.has-receipt .production-receipt{justify-content:center;gap:2px}.player-panel.has-receipt .receipt-resource img{width:12px;height:12px}.player-panel.has-receipt .receipt-resource b{font-size:.625rem}.game-info{max-height:none}.game-info>summary{cursor:pointer;text-align:center;align-items:center;width:44px;min-height:44px;padding:0 4px;font-size:.7rem;display:flex}.game-info[open]{z-index:35;background:var(--surface);width:300px;max-height:75dvh;position:fixed;bottom:0;right:0;overflow-y:auto;box-shadow:0 -10px 36px #090b0e26}.hand-dock,.action-dock{padding:8px}.action-dock{flex-direction:column;display:flex}.action-dock-heading{flex:none;margin-bottom:2px;position:static}.action-dock-layout{min-height:0}.action-context{padding-top:0}.action-dock-layout.has-normal{grid-template-columns:minmax(0,1fr)}.action-dock-layout.has-normal:after{display:none}.action-normal-buttons{border-top:1px solid var(--border);border-left:0;grid-row:1;grid-template-columns:repeat(3,minmax(0,1fr));justify-content:flex-start;gap:4px;height:auto;padding-top:6px;padding-left:0;display:grid}.action-normal-control{text-align:center;flex-direction:column;flex:none;gap:1px;width:100%;min-width:0;min-height:44px;max-height:none;padding:3px 2px;font-size:.75rem}.action-dock-layout.has-normal>.action-context{grid-row:2}.action-dock .optional-trade-chooser{order:2;margin-top:4px}.action-dock>p,.action-dock .action-row{margin-top:5px}}@media (prefers-reduced-motion:reduce){.button,.resource-flight{transition:none;animation:none}}:root[data-motion=reduce] .button,:root[data-motion=reduce] .resource-flight{transition:none;animation:none}@media (prefers-reduced-motion:reduce){.development-hand.is-fanned .development-card-art,.development-hand.is-fanned .development-card-main strong,.development-hand.is-fanned .knight-card-confirmation{transition:none}}:root[data-motion=reduce] .development-hand.is-fanned .development-card-art,:root[data-motion=reduce] .development-hand.is-fanned .development-card-main strong,:root[data-motion=reduce] .development-hand.is-fanned .knight-card-confirmation{transition:none}.cockpit-sheet{border:1px solid var(--control);background:var(--surface);width:100%;max-width:none;max-height:min(72dvh,560px);color:var(--text);border-bottom:0;border-radius:16px 16px 0 0;margin:0;padding:0;inset:auto 0 0;box-shadow:0 -12px 40px #090b0e33}.cockpit-sheet[open]{grid-template-rows:auto minmax(0,1fr);animation:.18s ease-out cockpit-sheet-in;display:grid}.cockpit-sheet::backdrop{background:#090b0e80}.cockpit-sheet-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:12px;padding:6px 8px 6px 16px;display:flex}.cockpit-sheet-header h2{min-width:0;font-size:1.125rem}.cockpit-sheet-header h2:focus{outline:none}.cockpit-sheet-close{min-width:64px;min-height:44px}.cockpit-sheet-body{overscroll-behavior:contain;min-height:0;padding:12px 16px max(16px, env(safe-area-inset-bottom));overflow-y:auto}.cockpit-sheet .action-dock{min-height:0;padding:0;overflow:visible}.cockpit-sheet .action-dock-heading h2{display:none}.cockpit-sheet .action-context-buttons,.cockpit-sheet .action-normal-buttons{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.cockpit-sheet .action-control{justify-content:flex-start;min-height:48px}.player-details-head{align-items:center;gap:10px;display:flex}.player-details-head strong{flex:1}.player-details-head .player-vp small{display:inline}.player-details-head .player-marker{width:24px;height:24px}.player-details-stats{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:16px 0;display:grid}.player-details-stats>div{background:var(--raised);border-radius:8px;flex-direction:column;justify-content:center;min-height:44px;padding:8px;display:flex}.player-details-stats dt{color:var(--muted);font-size:.75rem}.player-details-stats dd{font-variant-numeric:tabular-nums;margin:2px 0 0;font-weight:750}.player-details h3{margin:14px 0 8px;font-size:.875rem}.player-details-pieces,.player-details-gains{flex-wrap:wrap;align-items:center;gap:10px;min-height:32px;display:flex}.player-details-pieces>span,.player-details-gains>span{font-variant-numeric:tabular-nums;align-items:center;gap:4px;display:inline-flex}.player-details-pieces img,.player-details-gains img{width:24px;height:24px}@keyframes cockpit-sheet-in{0%{opacity:0;transform:translateY(12px)}}@media (width<=767px){.game-grid{grid-template-rows:minmax(0,1fr) 56px auto}.player-panel{position:relative}.player-panel-open{cursor:pointer;background:0 0;border:0;min-height:44px;padding:0;position:absolute;inset:0}.player-panel-open:focus-visible{outline:3px solid var(--accent);outline-offset:-3px}.game-bottom{padding-bottom:env(safe-area-inset-bottom);background:var(--surface);grid-template-rows:76px 52px}.game-bottom>.hand-dock{grid-template-rows:1fr;grid-template-columns:repeat(5,minmax(0,1fr)) 52px 44px;align-items:start;gap:4px;padding:6px 8px 0;display:grid}.hand-dock .section-heading{display:contents}.hand-dock .section-heading h2{clip-path:inset(50%);width:1px;height:1px;position:absolute;overflow:hidden}.hand-dock .hand-controls{grid-area:1/6/auto/8;grid-template-columns:52px 44px;gap:0;display:grid}.hand-dock .resource-hand{grid-area:1/1/auto/6;grid-template-columns:repeat(5,minmax(0,1fr));gap:4px;margin:0}.hand-dock .resource-card{--card-w:min(44px, 100%)}.hand-dock .resource-card[data-size=md] img{width:var(--card-w);height:50px}.hand-dock .resource-card-name{font-size:12px;line-height:14px}.hand-dock>.muted{grid-area:1/1/auto/-1;align-self:center;margin:0}.hand-dev-control{align-content:center;justify-items:center;width:52px;min-width:52px;height:64px;padding:0;font-size:.75rem;line-height:1.1;display:grid}.hand-dev-control b{font-variant-numeric:tabular-nums;font-size:1rem}.hand-hide-control{align-self:start}.next-step-bar{border-top:1px solid var(--border);grid-row:2;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:8px;min-height:52px;padding:4px 8px;display:grid}.next-step-primary{min-width:0;min-height:44px}.next-step-message{align-items:center;gap:4px;min-width:0;font-size:.875rem;line-height:1.2;display:flex}.next-step-message>span{min-width:0}.next-step-message>button{min-width:44px;min-height:44px;padding:4px}.next-step-actions{justify-content:center;align-items:center;gap:4px;min-width:108px;min-height:44px;padding:4px 8px;display:flex;position:relative}.next-step-actions b{background:var(--accent);color:var(--accent-text);border-radius:999px;padding:0 5px;font-size:.75rem}.next-step-actions i{background:var(--accent);border-radius:50%;width:6px;height:6px;position:absolute;top:3px;right:3px}}@media (width<=359px){.hand-dock .resource-card-name{clip-path:inset(50%);width:1px;height:1px;position:absolute;overflow:hidden}}@media (height<=500px) and (width>=768px){.game-grid{grid-template-columns:minmax(0,1fr) 288px}.player-panel{padding-inline:1px;position:relative}.player-panel-heading .player-marker{border-width:1px;width:14px;height:14px}.player-panel .player-vp{min-width:18px;padding:1px;font-size:.75rem}.player-panel-open{cursor:pointer;background:0 0;border:0;min-height:44px;padding:0;position:absolute;inset:0}.player-panel-open:focus-visible{outline:3px solid var(--accent);outline-offset:-3px}.game-sidebar{z-index:1;align-self:start;height:56px}.game-sidebar .player-rail{flex:1;min-width:0}.game-sidebar .game-info{flex:0 0 44px;width:44px}.game-sidebar:has(.game-info[open]){z-index:40;overflow:visible}.game-sidebar .game-info[open]{flex:none;width:min(300px,100vw)}.game-bottom{background:var(--surface);grid-template-rows:minmax(0,1fr) 52px;align-self:stretch;height:100%;padding-top:56px}.game-bottom>.hand-dock{grid-template-rows:auto 44px;grid-template-columns:repeat(5,minmax(0,1fr));align-content:start;padding:8px;display:grid}.hand-dock .section-heading{display:contents}.hand-dock .section-heading h2{clip-path:inset(50%);width:1px;height:1px;position:absolute;overflow:hidden}.hand-dock .resource-hand{grid-area:1/1/auto/-1;margin:0}.hand-dock .hand-controls{grid-area:2/1/auto/-1;justify-content:flex-end;display:flex}.hand-dev-control{min-width:52px;min-height:44px;padding:2px 6px}.hand-dock .resource-card{--card-w:min(42px, 100%)}.hand-dock .resource-card[data-size=md] img{width:var(--card-w);height:59px}.hand-dock .resource-card-name{font-size:11px}.next-step-bar{border-top:1px solid var(--border);grid-row:2;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:4px;padding:4px 8px;display:grid}.next-step-primary,.next-step-actions{min-height:44px}.next-step-actions{align-items:center;gap:4px;padding:4px 6px;display:flex;position:relative}.next-step-actions b{background:var(--accent);color:var(--accent-text);border-radius:999px;padding:0 4px;font-size:.75rem}.next-step-actions i{background:var(--accent);border-radius:50%;width:6px;height:6px}.cockpit-sheet{border:0;border-left:1px solid var(--control);border-radius:16px 0 0 16px;width:min(360px,100vw);height:100dvh;max-height:none;inset:0 0 0 auto}}@media (prefers-reduced-motion:reduce){.cockpit-sheet[open]{animation:none}}:root[data-motion=reduce] .cockpit-sheet[open]{animation:none}@media (width<=767px),(height<=500px){.player-rail .award-chip{display:none}}@font-face{font-family:DM Mono;src:url(/assets/dm-mono-regular-mu0k-7m0.ttf)format("truetype");font-weight:400;font-display:swap}@font-face{font-family:DM Mono;src:url(/assets/dm-mono-medium-BzMgDRs4.ttf)format("truetype");font-weight:500 900;font-display:swap}@font-face{font-family:Young Serif;src:url(/assets/young-serif-BPUg6B_0.ttf)format("truetype");font-weight:400 900;font-display:swap}.game-page{--page:#efe6d4;--surface:#f7efde;--raised:#f1e7d2;--text:#3d2f35;--muted:#766657;--border:#e0d5c2;--control:#a58f77;--accent:#a6362a;--accent-text:#fff8ec;--error:#aa3429;--panel:#fbf6ec;--panel-shadow:#d6c7a8;--active-panel:#fffaf0;color:var(--text);background-color:var(--page);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;background-position:50%;background-size:cover;font-family:DM Mono,monospace;font-size:12px}.game-page[data-board-theme=dark]{--page:#29252a;--surface:#332c32;--raised:#40363c;--text:#f5ebd9;--muted:#cfbfac;--border:#594b50;--control:#af9983;--accent:#eea184;--accent-text:#30272c;--error:#ffb29e;--panel:#3b3138;--panel-shadow:#211b22;--active-panel:#4c3d40;background-blend-mode:multiply;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}.game-page h2,.game-page h3,.game-page .player-panel-heading strong,.game-page .player-details-head strong,.game-page .event-log>summary,.game-page .game-info>summary{font-family:Young Serif,Georgia,serif;font-weight:400}.game-page h2{font-size:18px}.game-page .game-board{background:0 0}.game-page .button{border-radius:10px}.game-page .button-quiet{border-color:var(--border)}.game-page .action-roll-dice{color:#fff8ec;background:#547c40;border-color:#476936;box-shadow:0 4px #38562a}.game-page .action-roll-dice:hover:not(:disabled){background:#618b4a}.game-page .action-roll-dice:active:not(:disabled){box-shadow:0 1px #38562a}.game-page .game-menu summary{box-shadow:0 3px 0 var(--panel-shadow);border:0;border-radius:12px}.game-page .player-vp{color:#f7d77a;background:#3d2f35}.game-page .player-vp small{color:#e0d5c2}.color-blue{--player-color:#4f7fbf}.color-orange{--player-color:#e59a3c}.color-green{--player-color:#6fa35a}.color-magenta{--player-color:#292528}.color-yellow{--player-color:#f2ebd8}.color-red{--player-color:#c2493a}.player-marker{width:26px;height:28px;box-shadow:none;background:0 0;border:0;border-radius:0;position:relative;transform:none}.player-marker-crest{object-fit:contain;width:100%;height:100%;display:block}.player-turn-marker{display:none}.player-you{color:#f7efde;background:#3d2f35;border-radius:5px;padding:2px 5px;font-size:9px}.player-rail-heading{justify-content:space-between;align-items:baseline;display:flex}.player-rail-heading>span{color:var(--muted);white-space:nowrap;font-size:10px}.hand-cards{display:contents}.game-page .event-log ol{gap:0;padding:0;list-style:none}.event-log-entry{border-bottom:1px solid var(--border);align-items:flex-start;gap:8px;padding:9px 0;line-height:1.5;display:flex}.event-log-entry:last-child{border-bottom:0}.event-log-icons{flex-wrap:wrap;flex:0 0 48px;align-items:center;gap:4px;display:flex}.event-log-icons img{object-fit:contain;width:22px;height:24px}.event-log-message{overflow-wrap:anywhere;flex:1;min-width:0}.hand-total{color:var(--muted);white-space:nowrap;font-size:11px}.awards-panel{border-bottom:1px solid var(--border);padding:12px 16px}.awards-panel h2{margin-bottom:10px}.award-list{gap:12px;display:flex}.award-item{flex:1;align-items:center;gap:6px;min-width:0;display:flex}.award-item img{object-fit:contain;width:26px;height:38px}.award-item[data-claimed=false] img{opacity:.45}.award-item>div{gap:3px;min-width:0;font-size:10px;line-height:1.4;display:grid}.award-item strong{text-overflow:ellipsis;color:var(--muted);font-weight:500;overflow:hidden}.award-item[data-claimed=true] strong{color:var(--text)}.bank-development .resource-card img{object-fit:contain}@media (width>=768px) and (height>=501px){.game-page .game-menu{top:18px;left:18px}.game-page .game-grid{grid-template-rows:minmax(0,1fr) 194px;grid-template-columns:minmax(0,1fr) 288px}.game-page .game-sidebar{background:var(--surface)}.game-page .player-rail{padding:14px 10px 16px 28px}.game-page .player-rail-heading{margin-bottom:12px;margin-left:-12px}.game-page .player-rail h2{padding:0;font-size:20px}.game-page .player-list{gap:10px}.game-page .player-panel{background:var(--raised);border:2px solid #0000;border-radius:12px;padding:8px 10px;position:relative}.game-page .player-panel.is-active{background:var(--active-panel);border-color:#d6a33b}.game-page .player-turn-marker{width:22px;height:22px;display:block;position:absolute;top:17px;left:-27px}.game-page .player-panel-heading{gap:7px}.game-page .player-panel-heading strong{font-size:16px}.game-page .player-vp{min-width:36px;padding:4px;font-family:Young Serif,Georgia,serif;font-size:18px;line-height:1.1}.game-page .player-vp small{margin-top:2px;font-family:DM Mono,monospace;font-size:9px;display:block}.game-page .player-panel-status{margin:6px 0;font-size:10px}.game-page .player-panel-stats{gap:6px;margin:8px 0 0;font-size:10px}.game-page .player-piece-counts{gap:10px;margin:6px 0 0}.game-page .player-piece-count{gap:3px;font-size:10px}.game-page .player-piece-count img{width:17px;height:16px}.game-page .player-panel>.award-chip{display:none}.game-page .game-info{flex:none;max-height:48%;overflow-y:auto}.game-page .game-info>summary{display:none}.game-page .game-sidebar .bank-panel{padding:12px 16px}.game-page .bank-panel h2{margin-bottom:12px}.game-page .bank-cards{grid-template-columns:repeat(6,minmax(0,1fr));gap:7px}.game-page .bank-card .resource-card{--card-w:32px}.game-page .bank-card .resource-card img{width:32px;height:46px}.game-page .bank-card .resource-card-name{font-size:8px}.game-page .bank-card .resource-card-count{border-width:1px;min-width:18px;height:18px;font-size:10px;line-height:15px;right:-5px}.game-page .game-sidebar .event-log{padding:12px 16px}.game-page .event-log>summary{font-size:18px}.game-page .event-log ol{max-height:160px;font-size:11px;overflow-y:auto}.game-page .game-bottom{background:var(--raised);border-top:1px solid var(--border);grid-template-columns:150px minmax(0,1fr) 116px 96px;align-items:stretch;gap:10px;padding:10px 12px 12px;position:relative}.game-bottom>.hand-dock,.desktop-build-panel,.desktop-trade-panel{border:1px solid var(--border);background:var(--panel);min-width:0;min-height:0;box-shadow:0 2px 0 var(--panel-shadow);border-radius:14px;padding:10px 12px}.game-bottom>.hand-dock{flex-direction:column;gap:8px;display:flex;overflow:hidden}.game-bottom .hand-dock .section-heading{flex:none;gap:8px;margin:0}.game-bottom .hand-dock h2{font-size:17px}.game-bottom .hand-controls{margin-left:auto}.game-bottom .hand-hide-control{width:28px;height:24px;min-height:24px;padding:2px}.game-bottom .hand-controls>.button:not(.hand-hide-control){min-height:24px;padding:3px 6px;font-size:10px}.game-bottom .hand-cards{align-items:flex-start;gap:14px;min-height:0;padding:8px 8px 2px 0;display:flex;overflow:auto hidden}.game-bottom .resource-hand{flex:none;gap:10px;margin:0;display:flex}.game-bottom .resource-hand-card .resource-card{--card-w:60px}.game-bottom .resource-hand-card .resource-card img{width:60px;height:86px}.game-bottom .resource-card-name{font-size:10px}.game-bottom .development-hand,.game-bottom .development-hand.is-fanned{border-left:1px solid var(--border);flex:none;gap:10px;width:auto;margin:0;padding:0 0 0 14px;display:flex}.game-bottom .development-card,.game-bottom .development-card:first-child,.game-bottom .development-card:last-child{flex:0 0 60px;width:60px;height:auto;margin:0;transform:none}.game-bottom .development-card-main,.game-bottom .development-hand.is-fanned .development-card-main{justify-items:center;width:60px;height:auto;min-height:0;padding:0;display:grid;position:relative;inset:auto;transform:none}.game-bottom .development-card-art{width:60px;height:86px;display:block;position:static;transform:none}.game-bottom .development-card img{object-fit:contain;width:60px;height:86px;transform:none}.game-bottom .development-hand.is-fanned .development-card-main strong,.game-bottom .development-card-main strong{clip-path:none;text-align:center;white-space:nowrap;text-overflow:ellipsis;width:60px;height:auto;margin:4px 0 0;font-size:10px;font-weight:400;position:static;overflow:hidden;transform:none}.desktop-build-panel h2,.desktop-trade-panel h2{margin:0 0 8px;font-size:17px}.desktop-build-panel{overflow-y:auto}.desktop-action-panel-heading{justify-content:space-between;align-items:baseline;gap:4px;display:flex}.desktop-action-panel-heading .desktop-build-costs{width:20px;min-height:20px;box-shadow:none;background:0 0;border:0;padding:0;font-size:12px}.desktop-build-grid{grid-template-columns:repeat(2,54px);gap:8px;display:grid}.desktop-build-button{background:var(--surface);width:54px;height:54px;box-shadow:0 3px 0 var(--panel-shadow);border:0;border-radius:12px;padding:6px}.desktop-build-button img{object-fit:contain;width:40px;height:38px}.desktop-build-button.is-selected{outline-offset:1px;background:var(--active-panel);outline:2px solid #d6a33b}.desktop-build-button span{clip-path:inset(50%);width:1px;height:1px;position:absolute;overflow:hidden}.desktop-build-button:disabled{opacity:.4}.desktop-context-actions{flex-wrap:wrap;gap:4px;margin-top:8px;display:flex}.desktop-context-actions .action-control{min-height:32px;padding:4px;font-size:10px}.desktop-build-panel .action-context-hint{font-size:10px}.desktop-placement-instruction{color:var(--muted);margin-top:8px;font-size:10px;line-height:1.4}.desktop-placement-cancel{min-height:28px;margin-top:4px;padding:3px 6px;font-size:10px}.desktop-trade-buttons{flex-direction:column;gap:8px;display:flex}.desktop-trade-button{background:var(--surface);min-height:44px;color:var(--text);box-shadow:0 3px 0 var(--panel-shadow);border:0;border-radius:12px;align-items:center;gap:5px;padding:5px 6px;font-size:10px;display:flex}.desktop-trade-button img{object-fit:contain;width:30px;height:30px}.desktop-turn-control{flex-direction:column;align-self:stretch;gap:8px;min-width:0;display:flex}.desktop-turn-button{color:#fff8ec;text-align:center;background:#c2493a;border:0;border-radius:14px;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:8px;width:96px;min-height:128px;padding:10px;font-family:Young Serif,Georgia,serif;font-size:22px;line-height:1.15;display:flex;box-shadow:0 4px #8e2f24}.desktop-turn-button:hover:not(:disabled){background:#cf5a4b}.desktop-turn-button:active:not(:disabled){transform:translateY(3px);box-shadow:0 1px #8e2f24}.desktop-turn-button .action-icon{width:28px;height:28px}.desktop-turn-button small{color:inherit;opacity:.8;font:10px DM Mono,monospace}.desktop-turn-control>p{font-size:10px;line-height:1.4}.game-bottom:has(.finished-dock){grid-template-columns:minmax(0,1fr) 220px}.game-page .finished-dock{background:var(--panel);border-radius:14px}}@media (width>=768px) and (width<=1100px) and (height>=501px){.game-page .game-grid{grid-template-columns:minmax(0,1fr) 248px}.game-page .game-bottom{grid-template-columns:128px minmax(0,1fr) 90px 78px;gap:6px;padding:8px}.desktop-build-panel,.desktop-trade-panel,.game-bottom>.hand-dock{padding:8px}.desktop-build-grid{grid-template-columns:repeat(2,48px);gap:6px}.desktop-build-button{width:48px;height:48px}.desktop-trade-button{flex-direction:column;gap:2px;padding:3px}.desktop-trade-button img{width:24px;height:24px}.desktop-turn-button{width:78px;font-size:19px}.hand-total,.game-page .player-you{display:none}.game-page .player-rail-heading>span{font-size:8px}}@media (width<=767px),(height<=500px){.player-rail-heading,.player-you,.hand-total{display:none}.game-page .player-marker{width:20px;height:22px}.game-page .hand-cards{display:contents}.game-page .awards-panel{padding:12px 16px}.game-page .bank-cards{grid-template-columns:repeat(6,minmax(0,1fr))}.game-page .game-info{font-size:12px}}@media (width>=768px) and (height>=501px){.game-page .player-panel-stats{flex-wrap:wrap;gap:4px 8px;display:flex}.game-page .player-panel-stats>div{align-items:baseline;gap:3px;display:flex}.desktop-action-status{z-index:3;border:1px solid var(--border);background:var(--surface);max-width:min(560px,100% - 40px);box-shadow:0 2px 0 var(--panel-shadow);text-align:center;border-radius:12px;padding:8px 14px;position:absolute;bottom:12px;left:50%;transform:translate(-50%)}.desktop-action-status:empty{display:none}.desktop-action-status .desktop-placement-instruction{margin:0;font-size:11px}.desktop-action-status .desktop-context-actions{justify-content:center;margin:0}.desktop-action-status .desktop-context-actions:not(:empty)+.desktop-placement-instruction{margin-top:6px}.desktop-action-status .desktop-awaiting-action{margin:0;font-size:11px}.desktop-action-status .desktop-placement-cancel{margin-top:6px}}:root{--page:#efe6d4;--surface:#f7efde;--raised:#f1e7d2;--text:#3d2f35;--muted:#766657;--border:#e0d5c2;--control:#a58f77;--accent:#9c4935;--accent-text:#fff8ec;--error:#aa3429;--panel-shadow:#d6c7a8;--scene-blend:normal;--primary-fill:#3d2f35;--primary-text:#f7efde;--ready-text:#4f7a3e;color:var(--text);background-color:var(--page);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;font-family:DM Mono,monospace}:root[data-theme=dark]{--page:#29252a;--surface:#332c32;--raised:#40363c;--text:#f5ebd9;--muted:#cfbfac;--border:#594b50;--control:#af9983;--accent:#eea184;--accent-text:#30272c;--error:#ffb29e;--panel-shadow:#211b22;--scene-blend:multiply;--primary-fill:#a6362a;--primary-text:#fff8ec;--ready-text:#b8dfaa;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--page:#29252a;--surface:#332c32;--raised:#40363c;--text:#f5ebd9;--muted:#cfbfac;--border:#594b50;--control:#af9983;--accent:#eea184;--accent-text:#30272c;--error:#ffb29e;--panel-shadow:#211b22;--scene-blend:multiply;--primary-fill:#a6362a;--primary-text:#fff8ec;--ready-text:#b8dfaa;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}.app-dialog h2,.home-page h1,.home-page h2,.form-page h1,.form-page h2,.online-page h1,.online-page h2{font-family:Young Serif,Georgia,serif;font-weight:400}.home-page .app-header,.form-page .app-header,.online-page .app-header{border-color:var(--border);max-width:1200px}.home-page .app-brand,.form-page .app-brand,.online-page .app-brand{font-family:Young Serif,Georgia,serif;font-size:1.125rem;font-weight:400}.home-page .brand-mark{background:#a6362a}.app-dialog .button,.home-page .button,.form-page .button,.online-page .button{box-shadow:0 3px 0 var(--panel-shadow);border-radius:10px;transition:transform .16s,background-color .16s,box-shadow .16s}.app-dialog .button:active,.home-page .button:active,.form-page .button:active,.online-page .button:active{box-shadow:0 1px 0 var(--panel-shadow);transform:translateY(2px)}.app-dialog .button-primary,.home-page .button-primary,.form-page .button-primary,.online-page .button-primary{border-color:var(--primary-fill);background:var(--primary-fill);color:var(--primary-text)}.online-page{background-color:var(--page);background-blend-mode:var(--scene-blend)}.app-dialog .button-quiet,.home-page .button-quiet,.form-page .button-quiet,.online-page .button-quiet{border-color:var(--border);background:var(--surface);color:var(--text)}.home-content{align-items:center;gap:clamp(32px,6vw,80px);max-width:1200px}.home-intro{isolation:isolate;padding-top:28px;position:relative}.home-intro h1{letter-spacing:-.025em;max-width:12ch;font-size:clamp(2.8rem,6vw,4.75rem);line-height:1.04;position:relative}.home-intro>p{max-width:36ch;color:var(--muted);font-size:1rem;position:relative}.home-board-art{object-fit:contain;filter:drop-shadow(0 12px 16px #3d2f351f);justify-self:center;width:min(100%,390px);max-height:360px;display:block}.home-online-actions{gap:10px}.home-beta-note{font-size:.75rem}.home-local-link,.home-page .text-link,.form-page .text-link,.online-page .text-link{color:var(--accent)}.home-saved-games{gap:18px}.home-saved-games>.saved-games{border:1px solid var(--border);background:var(--surface);box-shadow:0 5px 0 var(--panel-shadow);border-radius:16px;padding:20px}.saved-games{min-width:0;padding:0}.saved-games .section-heading{border-color:var(--border);padding-bottom:10px}.saved-games .section-heading h2{font-size:1.25rem}.saved-game-row{border-color:var(--border);grid-template-columns:minmax(0,1fr) auto 18px;gap:12px;padding:14px 2px}.saved-game-names{color:var(--text);font-weight:500}.saved-game-time{font-size:.72rem}.form-page-content{width:min(100%,960px);padding-top:clamp(28px,5vw,52px)}.form-page-content>h1{font-size:clamp(2rem,4vw,3rem)}.form-page-content>.muted{color:var(--muted)}.player-form-row>.player-marker{place-self:end center;margin-bottom:8px}.form-page fieldset,.online-page .online-invite-panel,.online-page .online-start-panel,.online-page .online-section{border-color:var(--border);background:var(--surface);box-shadow:0 3px 0 var(--panel-shadow);border-radius:14px}.form-page input:not([type=checkbox]),.form-page select,.form-page textarea,.online-page input:not([type=checkbox]),.online-page select,.online-page textarea{border-color:var(--control);background:var(--page);color:var(--text);border-radius:8px}.form-page :is(input,select,textarea):focus-visible,.online-page :is(input,select,textarea):focus-visible{outline-color:#a6362a}.settings-form{max-width:720px}.settings-form:not(.network-settings)>fieldset{grid-template-columns:minmax(130px,.7fr) minmax(180px,1fr);align-items:center}.settings-form>fieldset legend{font-family:Young Serif,Georgia,serif;font-size:1.1rem;font-weight:400}.settings-form>fieldset .checkbox-row{grid-column:1/-1}.settings-form>.button{justify-self:stretch}.network-settings{max-width:720px;margin-top:26px}.network-settings summary{font-family:Young Serif,Georgia,serif;font-size:1.05rem}.network-settings-options>summary{cursor:pointer;padding-block:12px}.network-settings-options>fieldset{margin:12px 0 20px}.online-connection-options{border-top:1px solid var(--border);padding-top:14px}.online-connection-options summary{color:var(--muted);cursor:pointer;font-size:.85rem}.online-connection-fields{gap:16px;padding-top:18px;display:grid}.online-connection-fields .muted{font-size:.8rem;font-weight:400}.online-page .online-status,.online-page .online-seat-row,.online-page .online-start-progress,.online-page .online-chat-history{border-color:var(--border);background:var(--raised);border-radius:11px}.online-page .online-seat-row{box-shadow:0 2px 0 var(--panel-shadow)}.online-page .online-kicker{color:var(--accent)}.online-page .online-status-ready{background:#6fa35a}.online-page .online-status-retrying{background:#e59a3c}.online-page .online-status-closed{background:#c2493a}.online-page .online-marker.color-blue{--online-seat-color:#4f7fbf}.online-page .online-marker.color-orange{--online-seat-color:#e59a3c}.online-page .online-marker.color-green{--online-seat-color:#6fa35a}.online-page .online-marker.color-magenta{--online-seat-color:#292528}.online-page .online-marker.color-yellow{--online-seat-color:#f2ebd8}.online-page .online-marker.color-red{--online-seat-color:#c2493a}@media (width<=767px){.home-content{grid-template-columns:minmax(0,1fr);gap:28px;padding:28px 18px 40px}.home-intro{padding-top:12px}.home-board-art{width:min(100%,280px);max-height:240px}.home-saved-games{padding:16px}.saved-game-row{grid-template-columns:minmax(0,1fr) 18px;gap:4px 10px;padding:12px 2px}.saved-game-time{grid-column:1}.saved-game-arrow{grid-area:1/2/span 2}.form-page-content{padding:28px 18px 48px}.settings-form:not(.network-settings)>fieldset{grid-template-columns:minmax(0,1fr)}}@media (prefers-reduced-motion:reduce){.home-page .button,.form-page .button,.online-page .button{transition:none}}.game-page[data-compact=true] .game-menu{top:calc(12px + env(safe-area-inset-top));left:12px}.mobile-topbar{min-width:0;padding:calc(12px + env(safe-area-inset-top)) 12px 8px 64px;flex:none}.mobile-topbar .player-rail{padding:0;overflow:visible}.mobile-topbar .player-list{scrollbar-width:none;gap:6px;min-width:0;height:auto;padding-bottom:4px;display:flex;overflow-x:auto}.mobile-topbar .player-panel{background:var(--raised);min-width:0;height:48px;box-shadow:0 3px 0 var(--panel-shadow);border:2px solid #0000;border-radius:12px;flex:1 0 130px;grid-template-rows:18px 12px;grid-template-columns:22px minmax(0,1fr) auto;align-content:center;gap:2px 6px;padding:4px 7px;display:grid;position:relative}.mobile-topbar .player-panel.is-active{background:var(--active-panel);border-color:#d6a33b}.mobile-topbar .player-panel-heading{display:contents}.mobile-topbar .player-panel-heading .player-marker{grid-area:1/1/3;align-self:center;width:22px;height:26px}.mobile-topbar .player-panel-heading strong{clip-path:none;text-overflow:ellipsis;white-space:nowrap;grid-area:1/2;width:auto;min-width:0;height:auto;font-size:14px;line-height:18px;display:block;position:static;overflow:hidden}.mobile-topbar .player-panel .player-vp{border-radius:7px;grid-area:1/3/3;align-self:center;min-width:24px;padding:4px 5px;font:15px/1 Young Serif,Georgia,serif}.mobile-topbar .player-panel-status,.mobile-topbar .player-panel.has-receipt .player-panel-status{white-space:nowrap;min-width:0;color:var(--muted);grid-area:2/2;gap:3px;margin:0;font-size:9px;line-height:12px;display:flex;overflow:hidden}.mobile-topbar .is-active .player-panel-status{color:#547c40}.mobile-topbar .is-active .connection-status,.mobile-topbar .player-seat-index,.mobile-topbar .timer-ring,.mobile-topbar .player-panel-stats,.mobile-topbar .player-piece-counts,.mobile-topbar .player-vp small,.mobile-topbar .receipt-label{display:none}.mobile-topbar .production-receipt{gap:4px}.mobile-topbar .receipt-resource img{width:12px;height:12px}.mobile-topbar .player-panel-open{border-radius:10px}.mobile-session-notice{background:var(--surface);border:1px solid #d6b87f;border-radius:10px;flex:none;margin:0 12px 6px;padding:6px 10px;font-size:11px}.game-page[data-compact=true] .game-grid{grid-template-rows:minmax(0,1fr) auto;grid-template-columns:minmax(0,1fr)}.game-page[data-compact=true] .game-board{border:0;grid-area:1/1}.game-page[data-compact=true] .board-renderer-root{width:calc(100% + 60px);margin-left:-30px}.game-page[data-compact=true] .dice-roll-readout{gap:6px;padding:6px 8px;display:flex;top:10px;right:12px}.game-page[data-compact=true] .dice-roll-readout figcaption{display:none}.game-page[data-compact=true] .dice-roll-total{order:-1;padding-inline:2px;font:18px/1 Young Serif,Georgia,serif}.game-page[data-compact=true] .dice-roll-face{width:28px;height:28px}.mobile-board-awards{z-index:4;pointer-events:none;position:absolute;top:10px;left:12px}.mobile-board-awards .awards-panel{border:0;padding:0}.mobile-board-awards .award-list{gap:6px}.mobile-board-awards .award-item{flex:none}.mobile-board-awards h2,.mobile-board-awards .award-item>div{display:none}.game-page[data-compact=true] .game-bottom{height:auto;padding:10px 12px max(14px, env(safe-area-inset-bottom));border:0;border-top:1px solid var(--border);background:var(--raised);border-radius:22px 22px 0 0;grid-area:2/1;align-self:stretch;display:block;position:relative;overflow:visible;box-shadow:0 -6px 18px #3b2a2e1f}.mobile-bottom-controls{flex-direction:column;gap:10px;display:flex}.game-page[data-compact=true] .hand-dock{min-width:0;box-shadow:none;background:0 0;border:0;border-radius:0;flex-direction:column;gap:6px;padding:0;display:flex;overflow:visible}.game-page[data-compact=true] .hand-dock .section-heading{justify-content:space-between;align-items:baseline;gap:6px;min-height:20px;margin:0;display:flex}.game-page[data-compact=true] .hand-dock h2{clip-path:none;width:auto;height:auto;font-size:16px;position:static;overflow:visible}.game-page[data-compact=true] .hand-total{margin-left:auto;font-size:10px;display:block}.game-page[data-compact=true] .hand-controls{gap:2px;display:flex}.game-page[data-compact=true] .hand-dev-control{display:none}.game-page[data-compact=true] .hand-hide-control{min-width:32px;min-height:32px;padding:4px}.game-page[data-compact=true] .hand-cards{scrollbar-width:thin;gap:8px;min-width:0;margin:-3px -12px 0;padding:9px 12px 3px;display:flex;overflow:auto hidden}.game-page[data-compact=true] .resource-hand{display:contents}.game-page[data-compact=true] .resource-hand-card{flex:0 0 52px}.game-page[data-compact=true] .hand-dock .resource-card{--card-w:52px}.game-page[data-compact=true] .hand-dock .resource-card img{width:52px;height:74px}.game-page[data-compact=true] .hand-dock .resource-card-name{display:none}.game-page[data-compact=true] .hand-dock .resource-card-count{color:#f7efde;background:#3d2f35;border:0;min-width:20px;height:20px;padding:0 4px;font-size:11px;line-height:20px;top:-6px;right:-6px}.game-page[data-compact=true] .hand-cards .development-hand{display:contents}.game-page[data-compact=true] .hand-cards .development-card{flex:0 0 52px;width:52px;height:74px;margin:0;transform:none}.game-page[data-compact=true] .hand-cards .development-card-main,.game-page[data-compact=true] .hand-cards .development-card-art{width:52px;height:74px;min-height:0;padding:0;display:block;position:relative;inset:auto;transform:none}.game-page[data-compact=true] .hand-cards .development-card img{object-fit:contain;width:52px;height:74px;transform:none}.game-page[data-compact=true] .hand-cards .development-card-main strong{clip-path:inset(50%);width:1px;height:1px;position:absolute;overflow:hidden}.mobile-control-row{grid-template-columns:repeat(4,minmax(0,1fr)) 1.5fr;gap:8px;display:grid}.mobile-tabs{display:contents}.mobile-tab{background:var(--surface);min-width:0;height:56px;color:var(--text);box-shadow:0 3px 0 var(--panel-shadow);border:0;border-radius:12px;flex-direction:column;justify-content:center;align-items:center;gap:2px;padding:0;font-size:10px;display:flex;position:relative}.mobile-tab img{object-fit:contain;width:30px;height:30px}.mobile-tab[aria-expanded=true]{background:var(--active-panel)}.mobile-tab i{background:var(--accent);border-radius:50%;width:6px;height:6px;position:absolute;top:4px;left:4px}.mobile-step{min-width:0;display:flex}.mobile-step>button{color:#fff8ec;background:#c2493a;border:0;border-radius:12px;flex:1;align-self:stretch;min-width:0;min-height:56px;padding:4px;font:16px/1.1 Young Serif,Georgia,serif;position:relative;box-shadow:0 3px #8e2f24}.game-page[data-compact=true] .mobile-step .action-roll-dice{background:#547c40;box-shadow:0 3px #38562a}.mobile-next-step{z-index:6;border:1px solid var(--border);background:var(--surface);box-shadow:0 2px 0 var(--panel-shadow);border-radius:10px;align-items:center;gap:8px;padding:6px 10px;font-size:11px;line-height:1.4;display:flex;position:absolute;bottom:calc(100% + 8px);left:12px;right:12px}.mobile-control-row[aria-busy=true] button:disabled{opacity:1}.mobile-turn-spinner{width:10px;height:10px;position:absolute;bottom:5px;right:5px}.mobile-next-step>span{flex:1;min-width:0}.mobile-next-step .button{min-height:44px;padding:4px 8px;font-size:11px}.game-page[data-compact=true] .cockpit-sheet{background:var(--surface);border:0;border-radius:22px 22px 0 0;box-shadow:0 -10px 30px #2a202540}.game-page[data-compact=true] .cockpit-sheet:before{content:"";background:var(--panel-shadow);border-radius:2px;width:40px;height:4px;position:absolute;top:8px;left:calc(50% - 20px)}.game-page[data-compact=true] .cockpit-sheet-header{border:0;padding:20px 16px 8px}.game-page[data-compact=true] .cockpit-sheet-header h2{font-size:20px}.game-page[data-compact=true] .cockpit-sheet-close{background:var(--raised);border:0;width:44px;min-width:44px;height:44px;padding:0;font-size:24px}.mobile-build-list{flex-direction:column;gap:8px;display:flex}.mobile-build-row{background:var(--panel);min-height:66px;color:var(--text);box-shadow:0 2px 0 var(--panel-shadow);text-align:left;border:0;border-radius:14px;align-items:center;gap:12px;padding:8px 12px;display:flex}.mobile-build-art{object-fit:contain;flex:none;width:40px;height:40px}.mobile-build-copy{flex-direction:column;flex:1;gap:5px;min-width:0;font:16px Young Serif,Georgia,serif;display:flex}.mobile-build-cost{gap:4px;display:flex}.mobile-build-cost img{object-fit:contain;width:22px;height:22px}.mobile-build-context .desktop-action-status{width:auto;margin-top:12px;position:static;transform:none}.mobile-trade-options{grid-template-columns:1fr 1fr;gap:8px;margin-bottom:20px;display:grid}.mobile-trade-options>button{background:var(--panel);height:96px;color:var(--text);box-shadow:0 2px 0 var(--panel-shadow);border:0;border-radius:14px;flex-direction:column;justify-content:center;align-items:center;gap:6px;padding:8px;font-size:12px;display:flex}.mobile-trade-options img{object-fit:contain;width:44px;height:44px}.game-page[data-compact=true] .cockpit-sheet .bank-panel{border:0;padding:0}.game-page[data-compact=true] .cockpit-sheet .bank-panel h2{margin-bottom:16px;font-size:16px}.game-page[data-compact=true] .cockpit-sheet .bank-cards{grid-template-columns:repeat(6,minmax(0,1fr));gap:6px}.game-page[data-compact=true] .cockpit-sheet .bank-card .resource-card{--card-w:34px}.game-page[data-compact=true] .cockpit-sheet .bank-card img{width:34px;height:48px}.game-page[data-compact=true] .cockpit-sheet .bank-card .resource-card-name{font-size:9px}.mobile-players-list{flex-direction:column;gap:10px;display:flex}.mobile-players-list .player-details{border:2px solid var(--border);background:var(--raised);border-radius:14px;padding:10px 12px}.mobile-players-list .player-details[data-active=true]{background:var(--active-panel);border-color:#d6a33b}.mobile-players-list .player-details>h3,.mobile-players-list .player-details>p,.mobile-players-list .player-details-gains{display:none}.mobile-players-list .awards-panel{border:0;padding:6px 0}.mobile-players-list .awards-panel h2{display:none}.mobile-players-list .player-details-stats{grid-template-columns:repeat(4,minmax(0,1fr));gap:4px;margin:10px 0}.mobile-players-list .player-details-stats>div{background:0 0;padding:0;font-size:11px}.mobile-players-list .player-details-stats dt{font-size:11px}.game-page[data-compact=true] .cockpit-sheet .event-log{border:0;padding:0}.game-page[data-compact=true] .cockpit-sheet .event-log>summary{display:none}.game-page[data-compact=true] .cockpit-sheet .event-log ol{max-height:none;margin:0;padding:0;font-size:12px}@media (height<=500px) and (width>=640px){.mobile-topbar{z-index:3;top:max(12px, env(safe-area-inset-top));width:306px;padding:0;position:absolute;right:12px}.mobile-topbar .player-list{grid-template-columns:minmax(0,1fr);gap:6px;display:grid}.mobile-topbar .player-list:has(.player-panel:nth-child(3)){grid-template-columns:repeat(2,minmax(0,1fr))}.mobile-board-awards{top:68px}.game-page[data-compact=true] .board-renderer-root{width:100%;margin-left:0}.game-page[data-compact=true] .game-grid{grid-template-rows:minmax(0,1fr);grid-template-columns:minmax(0,1fr) 330px}.game-page[data-compact=true] .game-bottom{border-radius:18px 0 0;grid-area:1/2;align-self:end;max-height:none}.mobile-session-notice{z-index:7;margin:0;position:absolute;top:12px;left:68px;right:342px}.game-page[data-compact=true] .cockpit-sheet{border-radius:22px 0 0 22px}}
