/* Kubear Business: a playable tabletop, tuned for the existing game DOM. */
:root{--play-felt:#e7edf9;--play-felt-deep:#fff7e8;--play-wood:#243044;--play-gold:#f6b629;--play-paper:#fffdf6;--play-cream:#fff7e8;--play-ink:#243044;--play-muted:#5d6675;--play-line:#d6dcec;--play-shadow:0 4px 0 #cbd4e6,0 10px 24px #24304418;--play-radius:18px}
*{box-sizing:border-box}html{background:var(--play-felt-deep);scroll-behavior:smooth}body{min-width:320px;min-height:100vh;margin:0;background:radial-gradient(ellipse at 50% -25%,#fff7e8 0,#e7edf9 58%,var(--play-felt) 100%);color:#243044;font-family:var(--kb-body,system-ui,sans-serif)}[hidden]{display:none!important}button,input,select{font:inherit}button{touch-action:manipulation}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible{outline:3px solid #f6a91b;outline-offset:3px;z-index:5}::selection{background:#f6a91b;color:#102f29}
.game-shell{width:min(100% - 32px,1440px);max-width:none;margin-inline:auto}.game-shell>header.topbar{height:60px;display:flex;align-items:center;justify-content:space-between;padding:0 4px;border:0;border-bottom:1px solid #f6e1aa35;background:transparent;color:#243044}.topbar .brand{display:flex;align-items:center;gap:9px;color:#243044;text-decoration:none}.topbar .brand img{width:34px;height:34px;object-fit:contain}.topbar .brand b{display:block;color:#243044;font:800 17px/.98 var(--kb-display,sans-serif)}.topbar .brand small{display:block;margin-top:3px;color:#77603f;font:700 9px/1 var(--kb-mono,monospace);letter-spacing:.1em;text-transform:uppercase}.topbar-actions{display:flex;align-items:center;gap:9px}.collection-link,.icon-button{min-height:44px;display:inline-flex;align-items:center;justify-content:center;padding:0 14px;border:1px solid #d6dcec;border-radius:999px;background:#fffdf6;color:#243044;text-decoration:none;font-size:13px;font-weight:700}.icon-button{width:44px;min-width:44px;min-height:44px;padding:0;font-size:19px}.sound-toggle{width:44px;min-width:44px;min-height:44px;padding:0}.collection-link:hover,.icon-button:hover{background:#e7edf9}
main{min-height:calc(100vh - 60px)}

/* Lobby: present the board and a small set of clear ways into a match. */
.start-screen{width:min(100%,1180px);min-height:calc(100svh - 60px);margin:0 auto;padding:clamp(16px,3.2vw,42px) 0 clamp(18px,4vh,44px);display:grid;grid-template-columns:minmax(0,1.08fr) minmax(300px,.82fr);grid-template-rows:minmax(280px,1fr) auto;align-items:center;gap:16px 5vw}.start-world,.lobby-scene{grid-column:1;grid-row:1 / span 2;position:relative;width:100%;height:auto;min-height:0;display:grid;place-items:center;overflow:hidden;border:10px solid #fffdf6;border-radius:34px;background:radial-gradient(ellipse at center,#fffdf6 0,#e7edf9 72%,#ece9fa 100%);box-shadow:inset 0 0 0 3px #f6b629, inset 0 0 0 8px #fff7e8,var(--play-shadow)}.start-world>img{width:100%;height:100%;object-fit:contain;padding:6%;filter:drop-shadow(0 18px 18px #051c18aa)}.world-badge{position:absolute;left:18px;bottom:16px;padding:8px 11px;border:1px solid #d6dcec;border-radius:999px;background:#fffdf6;color:#243044;font:700 10px var(--kb-mono,monospace);letter-spacing:.12em}.lobby-scene{display:none}.start-title{grid-column:2;grid-row:1;align-self:end;max-width:520px}.start-title .eyebrow,.eyebrow{color:#e8c980;font:700 10px/1.35 var(--kb-mono,monospace);letter-spacing:.12em}.start-title h1{max-width:10ch;margin:9px 0 0;color:#243044;font:800 clamp(38px,5.5vw,70px)/.97 var(--kb-display,sans-serif);letter-spacing:-.045em}.start-title h1 em{color:#f6c65d;font-style:normal}.start-title>p{display:none}.start-facts{display:none}.start-actions{grid-column:2;grid-row:2;align-self:start;max-width:430px;width:100%;display:grid;grid-template-columns:1fr 1fr;gap:10px}.button{min-height:48px;padding:10px 16px;border:1px solid #cdbb94;border-radius:13px;background:var(--play-paper);color:var(--play-ink);font:750 14px/1.15 var(--kb-body,sans-serif);cursor:pointer;transition:transform .14s,box-shadow .14s,background .14s}.button:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 4px 0 #0003}.button:active:not(:disabled){transform:translateY(1px)}.button:disabled{opacity:.5;cursor:not-allowed}.button-primary{border-color:#ffe0a0;background:linear-gradient(180deg,#ffcd61,#efa51a);color:#18291f;box-shadow:0 4px 0 #915d13;font-family:var(--kb-display,sans-serif);font-weight:800}.button-secondary{border-color:#d8c8a5;background:#fffaf0;color:#173e30}.button-resume{grid-column:1/-1;border-color:#efcf7e;background:#f8e8bf}.start-actions #playSolo,.start-actions #openSetup{min-height:58px;font-size:16px}.start-actions #playSolo span{float:right}.start-actions>small{grid-column:1/-1;color:#d9d5bd;font-size:11px;line-height:1.4}.start-rules{grid-column:2;justify-self:start;min-height:44px;padding:7px 10px;border:0;background:transparent;color:#f3d58e;text-decoration:underline;text-underline-offset:3px;font-size:12px;cursor:pointer}.start-rules+#importFromStart{margin-left:112px;margin-top:-44px}.lobby-feedback{grid-column:2;margin:0;color:#ffdd8e;font-size:13px}

/* Native lobby-table and transient board effects. */
.start-screen:has(.lobby-scene){grid-template-columns:minmax(0,1.1fr) minmax(290px,.72fr);grid-template-rows:auto auto;gap:12px 4vw}.start-screen:has(.lobby-scene)>.start-world{display:grid;grid-column:1;grid-row:1/span 3}.lobby-scene{display:grid;grid-column:1;grid-row:1/span 3;grid-template-rows:auto minmax(0,1fr) auto;align-items:center;justify-items:center;gap:9px;padding:clamp(12px,2vw,22px);isolation:isolate}.lobby-scene:before{content:"";position:absolute;inset:12%;border:1px dashed #e9ce8655;border-radius:50%;pointer-events:none}.lobby-tabletop{grid-row:2;position:relative;z-index:1;width:min(100%,620px);aspect-ratio:1;display:grid;place-items:center;padding:5%;border:5px solid #e4bb62;border-radius:20px;background:#e7edf9;box-shadow:inset 0 0 0 3px #fffdf6,inset 0 0 20px #24304412}.lobby-board{width:100%;height:100%;display:grid;grid-template-columns:repeat(11,minmax(0,1fr));grid-template-rows:repeat(11,minmax(0,1fr));gap:2px;padding:3px;border-radius:10px;background:#f6b629}.lobby-tile{position:relative;min-width:0;min-height:0;display:grid;grid-template-rows:4px 1fr;place-items:center;overflow:hidden;border:1px solid #886d3d;border-radius:3px;background:linear-gradient(145deg,#fff9e7,#eadbb8);color:#203126}.lobby-tile-band{position:absolute;inset:0 0 auto;height:4px;background:var(--group-color,#88b77b)}.lobby-place{grid-row:1/-1;width:75%;height:75%;max-width:42px;max-height:42px;object-fit:contain;align-self:center;justify-self:center}.lobby-tile span,.lobby-tile b{position:relative;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font:700 clamp(5px,.75vw,9px)/1.05 var(--kb-display,sans-serif)}.lobby-tile.type-start,.lobby-tile.type-corner{background:#f5cf71}.lobby-tile.type-card{background:#e7edf9}.lobby-tile.type-tax{background:#f1d2bd}.lobby-tile.type-jail{background:#d9c9d2}.lobby-board-centre{position:relative;display:grid;grid-template-rows:auto auto 1fr;place-items:center;gap:3px;min-height:0;overflow:hidden;border:2px solid #e2b85d;border-radius:10px;background:radial-gradient(ellipse at 50% 32%,#fffdf6,#ece9fa 76%);box-shadow:inset 0 0 0 3px #f6b62966}.lobby-board-centre img{width:40px;height:40px;object-fit:contain;opacity:.32}.lobby-board-centre>b{z-index:1;color:#243044;font:800 16px/1 var(--kb-display,sans-serif);letter-spacing:.03em}.lobby-dice{z-index:1;display:flex;align-items:center;justify-content:center;gap:12px}.lobby-seat-top,.lobby-seat-bottom{position:relative;z-index:1;width:100%;display:flex;justify-content:center;align-items:center;gap:8px;color:#243044;font:700 11px var(--kb-mono,monospace);letter-spacing:.08em}.lobby-seat-top{grid-row:1}.lobby-seat-bottom{grid-row:3}.lobby-board-centre #lobbyDice{inset:auto;position:relative;grid-row:3;display:flex;align-items:center;justify-content:center;gap:8px}.lobby-board-centre .tabletop-die{--die-size:clamp(26px,4.5vw,48px)}.lobby-seat{display:flex;align-items:center;gap:5px;color:#243044;font:700 10px var(--kb-body,sans-serif)}.lobby-seat .tabletop-pawn{width:25px;height:32px}.lobby-scene .world-badge{z-index:2;left:14px;bottom:14px}.start-screen:has(.lobby-scene) .lobby-menu>.start-title{grid-column:1;grid-row:auto;align-self:end}.start-screen:has(.lobby-scene) .start-title h1{max-width:none;font-size:clamp(38px,5vw,62px)}.start-screen:has(.lobby-scene) .start-title h1 br{display:none}.start-screen:has(.lobby-scene) .start-title h1 em{color:#f4c55c}.title-dot{color:#f6a91b}.start-screen:has(.lobby-scene) .start-title>p{display:block;margin:7px 0 0;color:#e4ddc7;font-size:15px;line-height:1.4}.start-screen:has(.lobby-scene) .lobby-menu>.start-actions{grid-column:1;grid-row:auto;align-self:start}.start-screen:has(.lobby-scene) .lobby-links .start-rules{grid-column:auto;grid-row:auto}.start-screen:has(.lobby-scene) #importFromStart{margin:0}
.lobby-menu{grid-column:2;grid-row:1/span 2;align-self:center;max-width:430px;width:100%;display:grid;grid-template-columns:minmax(0,1fr);gap:10px}.lobby-menu>.start-title,.lobby-menu>.start-actions,.lobby-menu>.lobby-links,.lobby-menu>.lobby-feedback,.lobby-menu>.lobby-fiction{grid-column:1;grid-row:auto}.lobby-menu>.start-title{align-self:end}.lobby-menu>.start-actions{margin-top:8px}.lobby-menu>.lobby-links{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.lobby-links .start-rules{margin:0!important;transform:none!important}.lobby-menu>.lobby-fiction{color:#d9d5bd;font-size:11px}.lobby-menu .start-title>p{display:block;margin:7px 0 0;color:#e4ddc7;font-size:15px;line-height:1.4}.lobby-menu #playSolo,.lobby-menu #openSetup{min-height:54px;font-size:15px}.lobby-menu #resumeGame,.lobby-menu #savedMatchCopy{grid-column:1}.start-screen:has(.lobby-scene) .lobby-menu{grid-column:2;grid-row:1/span 2}.start-screen:has(.lobby-scene) .lobby-menu>.start-title>p{display:block}
.start-screen{position:relative}.start-actions{margin:0}.start-rules{position:relative;bottom:auto;left:auto;align-self:start}
@media(max-width:760px){.start-screen:has(.lobby-scene){grid-template-columns:1fr;grid-template-rows:auto auto auto auto;gap:7px;padding-top:8px}.start-screen:has(.lobby-scene)>.start-world{grid-column:1;grid-row:1}.lobby-scene{grid-column:1;grid-row:1;width:min(100%,320px);height:auto;aspect-ratio:auto;min-height:0;padding:9px;border-width:6px;border-radius:20px}.lobby-tabletop{width:100%;padding:4%;border-width:4px}.lobby-board{gap:1px;padding:2px}.lobby-tile{grid-template-rows:3px 1fr;border-radius:2px}.lobby-tile:before{height:2px}.lobby-tile span,.lobby-tile b{font-size:clamp(4px,1.25vw,7px)}.lobby-seat{font-size:8px}.lobby-seat .tabletop-pawn{width:25px;height:32px}.lobby-scene .world-badge{left:8px;bottom:8px;padding:5px 7px;font-size:7px}.start-screen:has(.lobby-scene) .lobby-menu>.start-title{grid-column:1;grid-row:1;text-align:center}.start-screen:has(.lobby-scene) .start-title h1{font-size:clamp(29px,8vw,38px)}.start-screen:has(.lobby-scene) .lobby-menu{grid-column:1;grid-row:2;max-width:420px;margin:0 auto;gap:7px}.start-screen:has(.lobby-scene) .lobby-menu>.start-title{grid-row:1;text-align:center}.start-screen:has(.lobby-scene) .lobby-menu>.start-actions{grid-row:2;grid-template-columns:1fr 1fr;max-width:none;margin:0}.start-screen:has(.lobby-scene) .lobby-menu>.lobby-links{grid-row:3;justify-content:center}.start-screen:has(.lobby-scene) .lobby-menu>.lobby-feedback{grid-row:4;text-align:center}.start-screen:has(.lobby-scene) .lobby-menu>.lobby-fiction{grid-row:5;text-align:center}.start-screen:has(.lobby-scene) .lobby-menu #playSolo,.start-screen:has(.lobby-scene) .lobby-menu #openSetup{min-height:48px;font-size:13px}.start-screen:has(.lobby-scene) .start-rules{grid-column:auto;grid-row:auto}.start-screen:has(.lobby-scene) #importFromStart{grid-row:auto;margin:0;transform:none}}
/* Board and action rail. The player seats sit above the board on wide tables. */
.board{position:relative;display:grid;grid-template-columns:repeat(var(--board-side,6),minmax(0,1fr));grid-template-rows:repeat(var(--board-side,6),minmax(0,1fr));width:100%;aspect-ratio:1;gap:3px;padding:7px;overflow:hidden;border:3px solid #e4bb62;border-radius:16px;background:linear-gradient(145deg,#e7edf9,#ece9fa);box-shadow:inset 0 0 0 2px #f8e4a477,0 4px 12px #05271c88;isolation:isolate}.board:not(.board-expanded) .board-space{position:relative;min-width:0;min-height:0;display:flex;flex-direction:column;align-items:center;gap:3px;padding:5px 3px;overflow:visible;border:1px solid #947b4c;border-radius:6px;background:linear-gradient(145deg,#fff9e8,#eadbb8);color:#1b2b20;box-shadow:inset 0 1px #fff,0 2px 0 #493d2b50;cursor:pointer}.board-space:focus-visible{outline:3px solid #f6a91b;outline-offset:-2px;z-index:3}.board-space.owned{border-bottom:3px solid var(--owner-color,#3d8967)}.board:not(.board-expanded) .space-topline{width:100%;height:7px;min-height:7px;display:grid}.group-band{display:block;width:100%;height:6px;background:var(--group-color,#a4bd83)}.space-kind{color:#796a49;font:700 7px var(--kb-mono,monospace);letter-spacing:.04em}.board:not(.board-expanded) .space-name{display:block;width:100%;color:#203126;text-align:center;font:800 clamp(8px,1.5vw,13px)/1.1 var(--kb-display,sans-serif)}.space-details{color:#736a56;text-align:center;font:500 8px/1.2 var(--kb-mono,monospace)}.board:not(.board-expanded) .space-footer{width:100%;min-height:7px;display:flex;align-items:center;justify-content:center;gap:3px;margin-top:auto}.owner-dot{width:7px;height:7px;border-radius:50%;background:var(--owner-color,#54856b)}.buildings{color:#1d563a;font:800 8px var(--kb-mono,monospace)}.business-world-sprite,.business-infrastructure,.business-code-art svg{width:100%;height:100%}.board:not(.board-expanded) .business-tile-visual{width:clamp(26px,4vw,46px)!important;height:clamp(26px,4vw,46px)!important;min-height:0;display:grid;place-items:center;flex:0 0 auto;margin:0 auto}.board:not(.board-expanded) .board-center{position:relative;z-index:0;display:grid;place-items:center;overflow:hidden;border:2px solid #e5b853;border-radius:13px;background:radial-gradient(ellipse at 50% 35%,#fffdf6,#e7edf9 62%,#ece9fa);box-shadow:inset 0 0 0 3px #fffdf6,inset 0 12px 28px #24304412}.board:not(.board-expanded) .center-copy{max-width:90%;min-height:190px;padding:10px;border:1px solid #efcd7e88;border-radius:14px;background:#ece9fa;color:#243044;box-shadow:0 4px 0 #d2cdec;text-align:center}
.game-screen{max-width:1320px;margin:0 auto;padding:12px 0 34px}.matchbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0 0 15px;padding:0 4px}.matchbar>div:first-child{display:grid;gap:3px}.matchbar .eyebrow{color:#f0cf83;font-size:9px}.matchbar strong{color:#243044;font:750 14px var(--kb-display,sans-serif)}.turn-pill,.cash-pill{position:relative;min-height:42px;display:inline-flex;align-items:center;gap:9px;padding:6px 13px;border:1px solid #f2dcaa;border-radius:999px;background:#fffbf0;color:#173d30;font-size:13px;font-weight:750;white-space:nowrap}.turn-pill i{width:11px;height:11px;flex:none;border-radius:50%;background:var(--player-color,#f6a91b);box-shadow:0 0 0 2px #173d30}.cash-pill{display:grid;gap:0;border-radius:13px;background:#f6d887}.cash-pill small{font:700 8px var(--kb-mono,monospace);letter-spacing:.08em}.cash-pill b{font:800 16px var(--kb-display,sans-serif)}.cash-change{position:absolute;right:7px;top:-13px;z-index:5;padding:3px 7px;border-radius:999px;background:#d6f0d7;color:#175239;font-size:11px;font-weight:800}.cash-change.cash-down{background:#f8d6c8;color:#8c321f}.table-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(280px,326px);grid-template-rows:auto 1fr;gap:10px 22px;align-items:start}.board-area{grid-column:1;grid-row:2;min-width:0;width:100%;max-width:720px;margin:auto;padding:9px;border:6px solid #cbd4e6;border-radius:24px;background:linear-gradient(145deg,#fffdf6,#f6b629);box-shadow:inset 0 0 0 2px #fffdf6,var(--play-shadow)}.board.board-expanded{grid-template-columns:repeat(11,minmax(0,1fr));grid-template-rows:repeat(11,minmax(0,1fr));width:100%;max-width:700px;padding:7px;gap:3px;border:3px solid #f4c45f;border-radius:16px;background:linear-gradient(145deg,#e7edf9,#ece9fa);box-shadow:inset 0 0 0 2px #f8e4a477,0 4px 12px #05271c88;isolation:isolate}.board-expanded .board-space{min-width:0;min-height:0;padding:2px;overflow:visible;border:1px solid #947b4c;border-radius:5px;background:linear-gradient(145deg,#fff9e8,#eadbb8);box-shadow:inset 0 1px #fff,0 2px 0 #493d2b50;color:#18251d}.board-expanded .board-space:hover{transform:none;filter:none}.board-expanded .board-space.selected,.board-expanded .board-space.landed{outline:2px solid #f6a91b;outline-offset:-2px;z-index:2;box-shadow:inset 0 0 0 1px #fff6,0 2px 0 #493d2b50}.board-expanded .space-name{font:800 clamp(6px,1.35vw,10px)/1.05 var(--kb-display,sans-serif);letter-spacing:-.025em;color:#19281f}.board-expanded .space-topline,.board-expanded .space-footer{min-height:3px}.board-expanded .group-band{height:3px}.board-expanded .business-tile-visual{width:clamp(15px,3.4vw,30px)!important;height:clamp(15px,3.4vw,30px)!important}.board-expanded .business-code-art{border:1px solid #315b40;border-radius:5px;background:linear-gradient(145deg,#fff0ba,#dfbd69);box-shadow:inset 0 1px #fff9,0 2px 0 #2d3a2c66}.board-expanded .type-start,.board-expanded .type-corner{background:linear-gradient(145deg,#ffdc79,#e8a923)}.board-expanded .type-card{background:linear-gradient(145deg,#fffdf6,#e7edf9)}.board-expanded .type-tax,.board-expanded .type-fee{background:linear-gradient(145deg,#f8dac4,#e9b69b)}.board-expanded .type-jail,.board-expanded .type-gotojail{background:linear-gradient(145deg,#eadce2,#cbb4c1)}.board-expanded .type-parking{background:#e7edf9}.board-expanded .board-center{border:2px solid #e5b853;border-radius:12px;background:radial-gradient(ellipse at 50% 35%,#fffdf6,#e7edf9 62%,#ece9fa);box-shadow:inset 0 0 0 3px #fffdf6,inset 0 12px 28px #24304412}.board-expanded .center-copy{max-width:90%;padding:8px 11px;border:1px solid #efcd7e88;border-radius:14px;background:#ece9fa;color:#243044;box-shadow:0 4px 0 #d2cdec;text-align:center}.board-expanded .board-center:has(.center-motion:not(:empty)) .center-copy{visibility:hidden}.board-center .stage-copy{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;min-width:0;min-height:190px}.stage-brand,.stage-eyebrow{color:#f1ce7c;font:700 9px/1.3 var(--kb-mono,monospace);letter-spacing:.1em}.stage-brand{display:flex;align-items:center;gap:5px}.stage-brand img{width:15px;height:17px;object-fit:contain}.stage-visual{min-height:64px;display:grid;place-items:center}.stage-visual .stage-model{width:70px;height:70px}.stage-title{color:#243044!important;font:800 clamp(18px,2.2vw,23px)/1.12 var(--kb-display,sans-serif)!important;letter-spacing:-.025em}.stage-caption{max-width:95%;color:#e9e0c6;font:500 11px/1.35 var(--kb-body,sans-serif)}.stage-ready-dice{display:flex;align-items:center;justify-content:center;gap:13px}.stage-ready-dice .tabletop-die{--die-size:43px}.board-center .center-motion{position:absolute;inset:0;display:grid;place-items:center;z-index:5;pointer-events:none}.center-dice-pair{display:flex;justify-content:center;gap:clamp(8px,2vw,18px)}.center-dice-pair .tabletop-die{--die-size:clamp(48px,8vw,68px)}.center-dice-label{margin-top:10px;color:#243044;font:750 12px var(--kb-body,sans-serif);text-align:center;text-shadow:0 2px #06291f}.board-expanded .token-stack{inset:auto 1px 2px;z-index:6;min-height:18px}.board-space:has(.token-stack){z-index:6}.board-expanded .space-name{display:block;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.board-expanded .business-tile-visual{overflow:hidden}.board-expanded .token-stack .player-token{margin-left:-8px;transform:scale(.9)!important;transform-origin:bottom center}.board-expanded .business-upgrade-level{font:750 6px var(--kb-mono,monospace)}
#tablePlayers.turn-table{grid-column:1;grid-row:1;width:100%;max-width:700px;margin:0 auto;display:grid;grid-template-columns:repeat(var(--player-count,4),minmax(0,1fr));gap:7px;padding:0}.table-player{position:relative;min-width:0;min-height:58px;display:grid;grid-template-columns:36px minmax(0,1fr);align-items:center;gap:7px;padding:7px 9px;border:1px solid #f0dfb780;border-radius:13px;background:#fffdf6;color:#243044;text-align:left;box-shadow:0 3px 0 #d6dcec;font-family:var(--kb-body,sans-serif);cursor:pointer}.table-player.active{border:2px solid var(--player-color,#f6a91b);padding:6px 8px;background:#ece9fa;color:#243044;box-shadow:0 3px 0 var(--player-color,#f6a91b)}.table-player.bankrupt{opacity:.55}.table-player-token.tabletop-pawn,.table-player .game-token.tabletop-pawn{width:28px;height:35px}.table-player-copy{min-width:0;display:grid;gap:2px}.table-player-copy b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font:750 12px var(--kb-display,sans-serif)}.table-player-copy strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font:800 14px var(--kb-display,sans-serif)}.table-player-copy small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:inherit;opacity:.75;font:500 9px var(--kb-body,sans-serif)}
.desktop-panel{grid-column:2;grid-row:1 / span 2;min-width:0;display:grid;gap:12px;align-content:start}.action-card,.players-panel,.last-move-panel{border:1px solid #e5cf9b;border-radius:var(--play-radius);background:var(--play-paper);color:var(--play-ink);box-shadow:0 4px 0 #d6dcec}.action-card{position:relative!important;inset:auto!important;width:auto!important;max-width:none;min-height:0;margin:0;padding:17px;overflow:visible}.action-heading{display:grid;gap:5px}.action-heading .eyebrow{color:#78602e;font-size:9px}.action-heading h2{margin:0;color:#143f30;font:800 24px/1.08 var(--kb-display,sans-serif);letter-spacing:-.035em}.action-card>p{margin:8px 0 11px;color:#5d5a4e;font-size:13px;line-height:1.45}.action-card[data-phase=await-roll] .action-heading,.action-card[data-phase=await-roll]>p,.action-card[data-phase=moving] .action-heading,.action-card[data-phase=moving]>p{position:static;width:auto;height:auto;overflow:visible;clip:auto;white-space:normal}.action-card[data-phase=await-roll],.action-card[data-phase=moving]{display:flex;flex-direction:column;align-items:stretch;gap:10px;padding:16px}.action-card[data-phase=await-roll] .action-heading{display:none}.action-card[data-phase=await-roll]>p{display:none}.action-card[data-phase=await-roll] #diceTray,.action-card[data-phase=moving] #diceTray{display:none!important}.action-card[data-phase=moving] .action-heading{display:none}.action-card[data-phase=moving]>p{display:none}.primary-actions{display:grid;grid-template-columns:1fr 1fr;gap:7px}.primary-actions:empty,.secondary-actions:empty{display:none}.primary-actions .button,.secondary-actions .button{min-height:46px;border-radius:12px;font:750 13px/1.2 var(--kb-body,sans-serif)}.primary-actions .button-primary{border-color:#f3c66a;background:linear-gradient(#ffd675,#f1ad2d);color:#172b20;box-shadow:0 3px 0 #956318}.primary-actions .button:only-child{grid-column:1/-1}.action-card[data-phase=await-roll] .primary-actions .button{min-height:58px;font:800 17px var(--kb-display,sans-serif)}.action-card[data-phase=await-roll] .button-primary span{font-size:20px}.secondary-actions{display:flex;flex-wrap:wrap;gap:7px;margin-top:8px}.action-feedback{margin-top:8px;color:#825124;font-size:12px;line-height:1.4}.action-feedback:empty{display:none}.turn-receipt{padding:9px 10px;border-left:3px solid #e1a522;border-radius:6px;background:#f7edd5;color:#4b4130;font-size:12px;line-height:1.45}.last-move-panel{padding:13px 15px}.panel-title-text{color:#7b6535;font:700 9px var(--kb-mono,monospace);letter-spacing:.11em}.last-move-panel p{margin:7px 0 0;color:#514e43;font-size:12px;line-height:1.45}.players-panel{padding:12px}.player-strip{display:flex;gap:7px;flex-wrap:wrap}.bottom-tools{position:relative;z-index:4;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;width:min(100%,480px);margin:16px auto 0;padding:8px;border:1px solid #e3cc96;border-radius:18px;background:#fffbf0;color:#163f31;box-shadow:0 4px 0 #d6dcec}.bottom-tools button{min-width:0;min-height:48px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;border:0;border-radius:12px;background:transparent;color:#164532;cursor:pointer}.bottom-tools button:hover{background:#f2e8ce}.bottom-tools svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.bottom-tools button b{font:750 10px var(--kb-body,sans-serif)}.mobile-table{display:none!important}

.board-center:has(#centerMotion:not(:empty)) .center-copy{visibility:hidden;opacity:0}.table-auction-card{width:90%;max-height:92%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;padding:5px;text-align:center;color:#243044}.table-auction-art{width:clamp(42px,7vw,76px);height:clamp(42px,7vw,76px);flex:none}.table-auction-price{color:#ffe08b;font:800 clamp(16px,2.5vw,25px)/1.1 var(--kb-display,sans-serif)}.table-auction-leader{font:750 10px var(--kb-body,sans-serif)}.table-auction-bidder{color:#e4ddc7;font:500 9px var(--kb-body,sans-serif)}.business-deck-peeks{position:absolute;right:10px;bottom:10px;left:10px;z-index:6;display:flex;justify-content:space-between;gap:7px;pointer-events:auto}.board-center:has(#centerMotion:not(:empty)) .business-deck-peeks,.board-center.business-center-has-spotlight .business-deck-peeks,.game-screen[data-phase=auction] .business-deck-peeks{display:none}.business-world-sprite,.business-infrastructure,.business-code-art svg{width:100%;height:100%}.tabletop-pawn{position:relative;display:grid;place-items:center;width:25px;height:32px;flex:none;overflow:visible;color:var(--pawn-color,var(--player-color,#f6b629))}.tabletop-pawn>.token-sculpture{width:100%;height:100%;display:grid;place-items:center;filter:drop-shadow(0 2px 1px #fffdf6) drop-shadow(0 0 2px var(--pawn-color,var(--player-color,#f6b629)))}.tabletop-pawn>.token-sculpture svg{display:block;width:100%;height:100%;overflow:visible}.tabletop-pawn .pawn-head,.tabletop-pawn .pawn-body,.tabletop-pawn .pawn-base,.tabletop-pawn .token-shell{display:none!important}.board-expanded .game-token.tabletop-pawn{width:22px;height:28px}.table-player .game-token.tabletop-pawn{width:28px;height:35px}.game-token.moving-overlay.kb-token-travelling{position:fixed;z-index:80;pointer-events:none;width:30px;height:38px}.tabletop-amount,.tabletop-player-delta{position:fixed;z-index:80;pointer-events:none;filter:none}
/* Dialogs, landing decisions, assets, board browser, cards and receipts. */
dialog{color:var(--play-ink);font-family:var(--kb-body,sans-serif)}dialog::backdrop{background:#24304466;backdrop-filter:blur(3px)}.sheet-dialog,.landing-dialog{width:min(620px,calc(100vw - 28px));max-width:620px;max-height:min(88dvh,900px);margin:auto;padding:0;overflow:auto;border:2px solid #d9bc79;border-radius:22px;background:var(--play-paper);color:var(--play-ink);box-shadow:0 18px 50px #031b1680,0 6px 0 #65451d}.small-dialog{max-width:470px}.dialog-head,.landing-head{position:sticky;top:0;z-index:3;display:flex;align-items:center;justify-content:space-between;gap:15px;padding:18px 20px 13px;border-bottom:1px solid var(--play-line);background:var(--play-paper)}.dialog-head h2,.landing-head h2{margin:4px 0 0;color:#153f30;font:800 24px/1.1 var(--kb-display,sans-serif)}.dialog-head .eyebrow,.landing-head .eyebrow{color:#8c6c2a}.close-button,.landing-close{width:44px;height:44px;flex:none;border:1px solid #d6c49b;border-radius:50%;background:#fff8e8;color:#173d30;font-size:25px;cursor:pointer}.dialog-body{display:grid;gap:11px;padding:17px 20px 22px}.field-label,.bid-label{margin-top:3px;color:#584c32;font-size:12px;font-weight:750}.text-field,.bid-label+input,.bid-error+button{width:100%;min-height:48px;padding:10px 12px;border:1px solid #cdbc97;border-radius:11px;background:#fffef8;color:#18271f;font-size:15px}.setup-help,.dialog-body>p,.property-hint,.fiction-note,.blueprint-condition,.upgrade-preview-condition,.board-fiction{margin:0;color:#676151;font-size:12px;line-height:1.5}.mode-choice{display:grid;grid-template-columns:1fr 1fr;gap:8px}.mode-option{min-height:70px;display:grid;align-content:center;gap:4px;padding:10px;border:1px solid #d5c6a1;border-radius:13px;background:#fffdf5;color:#1b362a;text-align:left;cursor:pointer}.mode-option.selected,.mode-option[aria-pressed=true]{border:2px solid #15573d;background:#e7efdd}.mode-option b{font-size:13px}.mode-option small{color:#696351;font-size:11px;line-height:1.35}.confirm-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px}.button-danger{border-color:#a84531;background:#b8442e;color:white}.asset-row,.board-place,.deck-entry{border:1px solid #dfd1b0;border-radius:14px;background:#fffdf6;color:#1b3025}.asset-row{display:flex;align-items:center;gap:12px;padding:11px}.asset-copy{display:grid;gap:4px;min-width:0;flex:1}.asset-copy b{font:800 16px var(--kb-display,sans-serif)}.asset-copy small,.asset-copy span{color:#625d50;font-size:11px;line-height:1.4}.asset-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:6px}.asset-actions button{min-height:44px;padding:7px 10px;border:1px solid #cdbc97;border-radius:10px;background:#fff4dc;color:#173e30;font-size:12px;font-weight:750}.property-art-stage,.upgrade-preview-scene{border:1px solid #d7d0b8;border-radius:14px;background:radial-gradient(ellipse at 50% 100%,#fff7e8,#e7edf9 68%)}.property-summary{display:grid;gap:4px}.property-summary p{margin:0;color:#625d50;font-size:12px}.property-stats,.landing-stats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.property-stats>div,.landing-stats>div{padding:9px;border:1px solid #e1d4b6;border-radius:11px;background:#f7efdd}.property-stats small,.landing-stats small{display:block;color:#74663e;font:700 9px var(--kb-mono,monospace)}.property-stats b,.landing-stats b{display:block;margin-top:4px;color:#173f30;font:800 15px var(--kb-display,sans-serif)}.property-hint{padding:9px 11px;border-radius:10px;background:#f3eddd}.property-blueprint{border:1px solid #d8c9a6;border-radius:12px;background:#faf5e8}.property-blueprint summary{min-height:44px;padding:12px;color:#194431;font-size:12px;font-weight:750;cursor:pointer}.property-ladder{display:grid;gap:5px;padding:0 9px 10px}.property-stage{display:grid;grid-template-columns:60px minmax(0,1fr) auto;align-items:center;gap:7px;padding:7px;border-radius:8px;background:#fffdf6}.property-stage.is-current{background:#efe2b8}.property-stage>span{color:#74663e;font:700 8px var(--kb-mono,monospace)}.property-stage strong{font-size:11px}.property-stage b{font:800 13px var(--kb-display,sans-serif)}.upgrade-rent-quote{padding:8px;border-radius:9px;background:#e5efdd;color:#174630;font-size:12px;font-weight:750}.landing-dialog{position:fixed;inset:0;margin:auto;width:min(400px,calc(100vw - 24px));max-width:400px;max-height:calc(100dvh - 32px);height:fit-content;overflow-y:auto;overscroll-behavior:contain;border:2px solid #d6dcec;border-radius:20px}.landing-dialog::backdrop{background:#24304433;backdrop-filter:none}.landing-body{display:grid;gap:10px;padding:16px 20px 22px}.landing-art{min-height:120px;display:grid;place-items:center;border:1px solid #d8d0b7;border-radius:15px;background:radial-gradient(ellipse at 50% 100%,#fff7e8,#e7edf9 70%)}.landing-art .business-model,.landing-art .property-model{width:82px;height:82px}.landing-body h2{margin:0;color:#163f30;font:800 26px/1.12 var(--kb-display,sans-serif)}.landing-body>p{margin:0;color:#5d594e;font-size:14px;line-height:1.5}.landing-controls{display:grid;gap:8px}.landing-controls .button{min-height:48px}.landing-fiction{color:#756c58;font-size:10px}.landing-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.buy-decision{border:1px solid #b9c7a4;border-radius:13px;background:#f5f1e1;color:#183e2e}.buy-decision-cash{border-radius:9px;background:#f4d27b;color:#1c2c20}.buy-decision-count,.buy-decision-rent{color:#204433}.buy-decision-chip{border-color:#d5c8a8;background:#fffaf0;color:#615746}.buy-decision-chip[data-owned=true]{background:#deebd8;color:#174932}.buy-decision-owners summary{min-height:44px;color:#174932;font-size:12px;font-weight:750}.bid-label{display:block}.landing-body input{min-height:48px;padding:10px;border:1px solid #cdbc97;border-radius:10px}.bid-error{margin:0;color:#a23b27;font-size:12px}.bid-quick{display:flex;gap:7px}.bid-quick .button{flex:1;min-height:44px;padding:7px;font-size:12px}.board-explorer{max-width:760px}.board-explorer-body,.card-catalogue-body{display:grid;gap:11px;padding:15px 20px 21px}.board-filters,.deck-tabs{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:7px}.board-filters button,.deck-tabs button{min-height:44px;border:1px solid #d1c19a;border-radius:11px;background:#fff9e9;color:#4f5c48;font-size:12px;font-weight:750;cursor:pointer}.board-filters button[aria-pressed=true],.deck-tabs button.selected{border-color:#887ba8;background:#ece9fa;color:#243044}.board-search{min-height:48px;display:flex;align-items:center;gap:9px;padding:0 12px;border:1px solid #cdbd98;border-radius:11px;background:#fffef9}.board-search svg{width:20px;flex:none;fill:none;stroke:#55725c;stroke-width:2}.board-search input{width:100%;min-width:0;border:0;outline:none;background:transparent;color:#192a20;font-size:14px}.board-count,.deck-status{margin:0;color:#766b53;font-size:12px}.board-place-list,.deck-catalogue-list{display:grid;gap:7px;max-height:48dvh;overflow:auto;overscroll-behavior:contain}.board-place{width:100%;min-height:70px;display:grid;grid-template-columns:52px minmax(0,1fr) auto;align-items:center;gap:10px;padding:7px;border-color:#dfd3b5;text-align:left;cursor:pointer}.board-place:hover{background:#f6efd9}.board-place .business-model,.board-place .property-model{width:48px;height:48px}.board-place-copy{min-width:0;display:grid;gap:2px}.board-place-copy b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font:750 14px var(--kb-display,sans-serif)}.board-place-copy small,.board-place-owner{color:#676151;font-size:11px;line-height:1.3}.board-place-owner{color:#416348}.board-place>strong{font:800 13px var(--kb-display,sans-serif);white-space:nowrap}.board-empty{padding:18px;text-align:center;color:#6b6659}.board-fiction{font-size:10px}.card-catalogue{max-width:670px}.deck-explainer{margin:0;color:#625d50;font-size:13px;line-height:1.45}.deck-tabs{grid-template-columns:1fr 1fr}.deck-status{font-size:12px}.deck-entry{display:grid;grid-template-columns:72px minmax(0,1fr);gap:12px;align-items:center;padding:10px}.deck-card-art{width:72px;height:72px;border-radius:8px;background-size:300% 200%}.deck-entry h3{margin:2px 0 4px;color:#173e30;font:750 15px/1.2 var(--kb-display,sans-serif)}.deck-entry p{margin:0;color:#635e51;font-size:12px;line-height:1.4}.deck-effect{color:#54724e;font:700 9px var(--kb-mono,monospace);letter-spacing:.04em}.deck-effect.pay{color:#a14c34}.deck-effect.jail{color:#6b5984}.deck-peek{min-height:44px;border:1px solid #d4c398;border-radius:10px;background:#f7e6b8;color:#59441d;box-shadow:0 3px 0 #9b7a35}.deck-peek.city{background:#e0eddf;color:#225b42;box-shadow:0 3px 0 #718f73}

/* Supporting game sheets use the same printed-card language as the table. */
.score-row{display:flex;align-items:center;gap:12px;min-width:0;padding:14px;border:1px solid #d8c8a5;border-radius:14px;background:#f8edcf}.score-row .tabletop-pawn{flex:none;width:25px;height:36px}.score-copy{display:grid;flex:1;gap:4px;min-width:0}.score-copy b{font:800 16px/1.2 var(--kb-display);overflow-wrap:anywhere}.score-copy small{color:#625d50;font:500 12px/1.4 var(--kb-body)}.score-worth{max-width:45%;overflow-wrap:anywhere;color:#0b3d2e;font:800 18px/1.2 var(--kb-display);font-variant-numeric:tabular-nums;text-align:right}.rule-list{display:grid;gap:10px}.rule-list p{margin:0;padding:14px;border:1px solid #e3d5b7;border-radius:12px;background:#fff7e5;color:#504b3e;font:500 14px/1.65 var(--kb-body)}.rule-list p b{color:#0b3d2e;font-weight:800}.rule-list .fiction-note{background:#efe3c2;font-size:12px}.save-status{margin:0;padding:13px 14px;border-radius:12px;background:#efe8d5;color:#504b3e;font:500 13px/1.55 var(--kb-body)}
/* The smaller board keeps every player and control visible without a fixed overlay. */
@media(max-width:760px){.game-shell{width:min(100% - 20px,620px)}.game-shell>header.topbar{height:52px}.game-shell>header.topbar .brand img{width:30px;height:30px}.topbar .brand b{font-size:15px}.topbar .brand small{font-size:8px}.collection-link{min-height:40px;padding:0 11px;font-size:12px}.icon-button{width:44px;min-height:44px}.start-screen{min-height:calc(100svh - 52px);grid-template-columns:1fr;grid-template-rows:auto auto auto;align-content:center;gap:11px;padding:12px 0 18px}.start-world,.lobby-scene{grid-column:1;grid-row:1;width:min(100%,360px);height:auto;aspect-ratio:auto;min-height:0;margin:0 auto;border-width:7px;border-radius:24px}.start-title{grid-column:1;grid-row:2;max-width:none;text-align:center}.start-title .eyebrow{font-size:9px}.start-title h1{max-width:none;margin:5px 0;color:#243044;font-size:clamp(29px,8.5vw,42px);line-height:1.02}.start-actions{grid-column:1;grid-row:3;max-width:420px;margin:0 auto;gap:8px}.start-actions #playSolo,.start-actions #openSetup{min-height:50px;padding:8px;font-size:14px}.start-actions>small{font-size:10px;text-align:center}.start-rules{grid-column:1;justify-self:center;min-height:38px;margin:0;padding:4px 10px}.start-rules+#importFromStart{margin:0;margin-top:-49px;transform:translateX(94px)}.lobby-feedback{grid-column:1;text-align:center}.game-screen{padding:8px 0 18px}.matchbar{gap:6px;margin-bottom:9px}.matchbar .eyebrow{display:none}.matchbar strong{font-size:11px}.turn-pill,.cash-pill{min-height:36px;gap:6px;padding:5px 9px;font-size:10px}.cash-pill b{font-size:14px}.table-layout{display:flex;flex-direction:column;gap:9px}.board-area{order:2;width:100%;max-width:560px;padding:6px;border-width:4px;border-radius:17px}.board.board-expanded{padding:4px;gap:2px;border-radius:12px}.board-expanded .space-name{font-size:clamp(5px,1.75vw,8px)}.board-expanded .business-tile-visual{width:clamp(13px,4.5vw,24px)!important;height:clamp(13px,4.5vw,24px)!important}.board-expanded .group-band{height:2px}.board-expanded .center-copy{padding:5px 7px}.stage-brand,.stage-eyebrow{font-size:8px}.stage-brand img{width:12px;height:14px}.stage-visual{min-height:56px}.stage-visual .stage-model{width:50px;height:50px}.stage-ready-dice .tabletop-die{--die-size:33px}.stage-title{font-size:18px!important}.stage-caption{font-size:11px}.center-dice-pair .tabletop-die{--die-size:clamp(36px,10vw,52px)}#tablePlayers.turn-table{order:1;grid-template-columns:repeat(2,minmax(0,1fr));gap:5px}.table-player{min-height:48px;grid-template-columns:36px minmax(0,1fr);gap:5px;padding:5px 7px;border-radius:11px}.table-player.active{padding:4px 6px}.table-player-token.tabletop-pawn,.table-player .game-token.tabletop-pawn{width:28px;height:35px}.table-player-copy b{font-size:11px}.table-player-copy strong{font-size:12px}.table-player-copy small{font-size:8px}.desktop-panel{order:3;width:100%;display:grid;gap:7px;margin:0}.action-card{padding:11px;border-radius:15px}.action-heading h2{font-size:17px}.action-card>p{margin:5px 0 8px;font-size:12px}.action-card[data-phase=await-roll],.action-card[data-phase=moving]{display:block;padding:10px}.action-card[data-phase=await-roll] .primary-actions .button{min-height:50px;font-size:15px}.action-card[data-phase=await-roll] .primary-actions{grid-template-columns:1fr}.primary-actions .button,.secondary-actions .button{min-height:44px;font-size:12px}.action-card[data-phase=auction] .primary-actions{grid-template-columns:repeat(3,minmax(0,1fr));gap:5px}.action-card[data-phase=auction] .primary-actions .button{min-height:46px;padding:5px 3px;font-size:11px;white-space:normal;overflow-wrap:anywhere}.secondary-actions{gap:6px;margin-top:6px}.action-feedback{margin-top:5px;font-size:11px}.last-move-panel{display:none}.bottom-tools{position:sticky;bottom:calc(6px + env(safe-area-inset-bottom));width:100%;grid-template-columns:repeat(4,minmax(0,1fr));gap:3px;margin:8px auto 4px;padding:5px;border-radius:14px;box-shadow:0 3px 0 #082c22,0 5px 18px #061b1670}.bottom-tools button{min-height:44px;gap:2px}.bottom-tools svg{width:18px;height:18px}.bottom-tools button b{font-size:9px}}
@media(max-width:760px){.landing-body{padding-bottom:calc(14px + env(safe-area-inset-bottom))}.landing-art{min-height:120px}.landing-art .business-model,.landing-art .property-model{width:min(112px,75%);height:min(112px,75%)}}
@media(max-width:380px){.game-shell{width:calc(100% - 14px)}.start-screen{gap:8px}.start-world,.lobby-scene{width:min(100%,292px);border-width:6px;border-radius:20px}.start-title h1{font-size:30px}.start-actions{gap:6px}.start-actions #playSolo,.start-actions #openSetup{min-height:46px;font-size:13px}.start-rules{font-size:11px}.start-rules+#importFromStart{transform:translateX(82px)}.matchbar{margin-bottom:7px}.turn-pill,.cash-pill{min-height:33px;padding:4px 7px;font-size:9px}.cash-pill b{font-size:12px}.board-area{padding:4px;border-width:3px;border-radius:14px}.board.board-expanded{padding:3px;gap:1px;border-width:2px}.board-expanded .board-space{padding:1px;border-radius:2px}.board-expanded .space-name{font-size:5px}.board-expanded .business-tile-visual{width:15px!important;height:15px!important}.board-expanded .business-code-art b{font-size:8px}.board-expanded .center-copy{padding:4px}.stage-visual{min-height:48px}.stage-visual .stage-model{width:42px;height:42px}.stage-title{font-size:18px!important}.stage-caption{font-size:11px}.table-player{min-height:44px;grid-template-columns:36px minmax(0,1fr);gap:4px;padding:4px 5px}.table-player.active{padding:3px 4px}.table-player-token.tabletop-pawn,.table-player .game-token.tabletop-pawn{width:28px;height:35px}.table-player-copy b{font-size:10px}.table-player-copy strong{font-size:11px}.table-player-copy small{display:none}.action-card{padding:9px}.action-card[data-phase=await-roll]{padding:8px}.action-card[data-phase=await-roll] .primary-actions .button{min-height:46px;font-size:14px}.action-card[data-phase=auction] .primary-actions{gap:3px}.action-card[data-phase=auction] .primary-actions .button{font-size:10px}.bottom-tools{margin-top:6px}.bottom-tools button{min-height:42px}.bottom-tools svg{width:17px;height:17px}.bottom-tools button b{font-size:8px}.sheet-dialog{width:100%;max-width:none;max-height:90dvh;margin:auto 0 0;border-radius:20px 20px 0 0;border-bottom:0}.dialog-head,.landing-head{padding:14px 14px 10px}.dialog-head h2,.landing-head h2{font-size:21px}.dialog-body,.landing-body{gap:9px;padding:12px 14px calc(17px + env(safe-area-inset-bottom))}.board-explorer-body,.card-catalogue-body{padding:11px 13px 17px}.board-filters{grid-template-columns:repeat(2,minmax(0,1fr))}.board-place{grid-template-columns:42px minmax(0,1fr) auto;gap:7px;min-height:64px}.board-place .business-model,.board-place .property-model{width:40px;height:40px}.board-place-copy b{font-size:12px}.board-place-copy small,.board-place-owner{font-size:10px}.board-place>strong{font-size:11px}.asset-row{align-items:flex-start;flex-wrap:wrap}.asset-actions{width:100%;justify-content:stretch}.asset-actions button{flex:1;min-width:0}.property-stats,.landing-stats{gap:6px}.property-stats>div,.landing-stats>div{padding:7px}.mode-choice{gap:6px}.mode-option{padding:8px}.mode-option b{font-size:12px}.mode-option small{font-size:10px}.confirm-actions{grid-template-columns:1fr 1fr}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{scroll-behavior:auto!important;transition:none!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}

/* City clarity pass: keep the tabletop intact while making the active move and controls easier to scan. */
.start-title .eyebrow{color:#66511d;font-size:11px;letter-spacing:.06em}
.start-title h1{color:#243044}
.lobby-menu .start-title>p{color:#40506a}
.lobby-menu>.lobby-fiction,.lobby-menu .start-actions>small{color:#536176;font-size:12px;line-height:1.5}
.lobby-menu .start-rules{color:#263956;font-size:14px}
.lobby-menu #playSolo,.lobby-menu #openSetup{min-height:54px;padding-inline:16px}
.matchbar{align-items:center}
.matchbar strong{font-size:15px;font-variant-numeric:tabular-nums}
.turn-pill{min-height:42px;border:1px solid #b5c1d8;border-radius:999px;background:#fffdf6;color:#243044;font-size:14px;font-weight:750}
.cash-pill{min-height:42px;border:1px solid #b5c1d8;background:#fffdf6;color:#243044}
.cash-pill small{color:#536176;font-size:10px;letter-spacing:.04em}
.cash-pill b{font-size:17px;font-variant-numeric:tabular-nums}
.table-player-copy b{font-size:13px;line-height:1.35}
.table-player-copy strong{font-size:15px;font-variant-numeric:tabular-nums}
.table-player-copy small{font-size:11px;line-height:1.35;color:#dce5f4}
.table-player.active .table-player-copy small{color:#33435d}
.action-card{scroll-margin-block:16px 100px}
.action-heading h2{font-size:21px;line-height:1.2}
.action-card>p{font-size:14px;line-height:1.55}
.primary-actions .button,.secondary-actions .button{min-height:48px;line-height:1.3;white-space:normal;overflow-wrap:anywhere}
.last-move-panel p{font-size:13px;line-height:1.5}
.bottom-tools button{min-height:48px}
.bottom-tools button b{font-size:12px;line-height:1.2}
.sheet-dialog,.landing-dialog{scrollbar-gutter:stable;overscroll-behavior:contain;scroll-padding-block:72px 24px}
.dialog-head h2,.landing-head h2{font-size:clamp(23px,5vw,29px);line-height:1.18}
.dialog-body,.landing-body{gap:12px;line-height:1.5}
.dialog-body>p,.setup-help,.field-label,.mode-option small,.property-hint,.upgrade-preview-condition{font-size:14px;line-height:1.55}
.field-label{color:#374663;font-weight:700}
.text-field,.landing-body input{font-size:16px;line-height:1.4}
.mode-choice{grid-template-columns:repeat(2,minmax(0,1fr))}
.mode-option{min-width:0;min-height:82px;padding:12px}
.mode-option b{font-size:15px;line-height:1.3;overflow-wrap:anywhere}
.mode-option small{font-size:12px;line-height:1.4}
.property-stats small,.landing-stats small{color:#526078;font:600 11px/1.35 var(--kb-body,sans-serif)}
.property-stats b,.landing-stats b{font-size:18px;line-height:1.25}
.property-stage{grid-template-columns:minmax(56px,auto) minmax(0,1fr) auto;gap:8px}
.property-stage>span{font-size:10px;line-height:1.35}
.property-stage strong{font-size:12px;line-height:1.4;overflow-wrap:anywhere}
.property-stage b{font-size:14px;white-space:nowrap}
.landing-dialog{width:min(440px,calc(100vw - 24px));max-height:calc(100dvh - 24px)}
.landing-body h2{font-size:clamp(24px,6vw,30px);line-height:1.18;overflow-wrap:anywhere}
.landing-body>p{font-size:15px;line-height:1.55;overflow-wrap:anywhere}
.landing-fiction{font-size:12px;line-height:1.5}
.buy-decision-cash span,.buy-decision-count span,.buy-decision-rent span{font-size:13px;line-height:1.4}
.buy-decision-chip{font-size:13px;line-height:1.45;overflow-wrap:anywhere}
.buy-decision-owners summary{font-size:13px;line-height:1.45}
.upgrade-preview-actual,.upgrade-preview-condition,.upgrade-preview-rent{font-size:13px!important;line-height:1.5!important}
.upgrade-preview-level{font-size:12px!important;line-height:1.35!important;overflow-wrap:anywhere}
.upgrade-preview-level[data-actual="true"]:after{font-size:10px!important}
.board-place-copy b{white-space:normal;overflow:visible;text-overflow:clip;font-size:15px}
.board-place-copy small,.board-place-owner{font-size:12px;line-height:1.4}
.board-place>strong{font-size:14px}
.asset-copy b{font-size:18px;line-height:1.25;overflow-wrap:anywhere}
.asset-copy small,.asset-copy span{font-size:13px;line-height:1.5}
.asset-actions button{font-size:13px;line-height:1.35;overflow-wrap:anywhere}
.close-button,.landing-close{min-width:44px;min-height:44px}
@media(max-width:760px){
  .start-screen:has(.lobby-scene){align-content:start;grid-template-columns:minmax(0,1fr);grid-template-rows:auto auto;gap:12px;padding:10px 0 calc(18px + env(safe-area-inset-bottom))}
  .start-screen:has(.lobby-scene) .lobby-menu{width:100%;max-width:420px;padding-inline:2px}
  .lobby-menu .start-title .eyebrow{font-size:10px}
  .lobby-menu .start-title h1{font-size:clamp(32px,9vw,42px);line-height:1.05}
  .lobby-menu .start-title>p{margin-top:4px;font-size:15px}
  .lobby-menu>.start-actions{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
  .lobby-menu #playSolo,.lobby-menu #openSetup{min-height:50px;padding:9px 10px;font-size:14px;overflow-wrap:anywhere}
  .lobby-menu #resumeGame,.lobby-menu #savedMatchCopy,.lobby-menu>.start-actions>small{grid-column:1/-1}
  .lobby-menu>.lobby-fiction{font-size:12px}
  .matchbar{flex-wrap:wrap;justify-content:space-between;gap:6px}
  .matchbar strong{font-size:13px}
  .turn-pill,.cash-pill{min-height:40px;padding:6px 9px;font-size:12px}
  .cash-pill b{font-size:15px}
  .table-layout{gap:9px}
  #tablePlayers.turn-table{order:1;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}
  .table-player{min-width:0;min-height:50px;grid-template-columns:30px minmax(0,1fr);gap:6px;padding:6px 8px}
  .table-player.active{padding:5px 7px}
  .table-player-token.tabletop-pawn,.table-player .game-token.tabletop-pawn{width:25px;height:32px}
  .table-player-copy b{font-size:12px;overflow-wrap:anywhere}
  .table-player-copy strong{font-size:14px}
  .table-player-copy small{font-size:10px}
  .desktop-panel{order:3}
  .action-card{padding:13px;border-radius:16px}
  .action-heading h2{font-size:19px}
  .action-card>p{font-size:13px;line-height:1.5}
  .action-card[data-phase=await-roll] .primary-actions .button{min-height:52px;font-size:16px}
  .action-card[data-phase=auction] .primary-actions{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}
  .action-card[data-phase=auction] .primary-actions .button{min-height:48px;padding:7px 5px;font-size:12px;line-height:1.25;overflow-wrap:anywhere}
  .secondary-actions .button,.primary-actions .button{font-size:13px}
  .board-area{order:2}
  .bottom-tools{position:sticky;bottom:calc(4px + env(safe-area-inset-bottom));z-index:4;padding-bottom:calc(5px + env(safe-area-inset-bottom))}
  .bottom-tools button{min-height:48px}
  .bottom-tools button b{font-size:11px}
  .sheet-dialog{width:min(620px,calc(100vw - 16px));max-height:calc(100dvh - 16px);margin:auto;border-radius:20px;scroll-padding-block:68px 24px}
  .dialog-head,.landing-head{padding:16px 18px 12px}
  .dialog-body,.landing-body{padding:14px 18px calc(20px + env(safe-area-inset-bottom));gap:11px}
  .landing-dialog{width:min(440px,calc(100vw - 16px));max-height:calc(100dvh - 16px);margin:auto}
  .asset-actions{width:100%;justify-content:stretch}
  .asset-actions button{flex:1 1 120px;min-width:0}
}
@media(max-width:380px){
  .game-shell{width:calc(100% - 16px)}
  .topbar-actions{gap:5px}
  .collection-link{padding-inline:9px;font-size:11px}
  .start-screen:has(.lobby-scene){gap:10px}
  .lobby-scene{width:min(100%,320px)}
  .lobby-menu>.start-actions{gap:6px}
  .lobby-menu #playSolo,.lobby-menu #openSetup{min-height:48px;font-size:13px}
  .matchbar{gap:5px}
  .turn-pill,.cash-pill{padding:5px 7px;font-size:11px}
  #tablePlayers.turn-table{gap:5px}
  .table-player{grid-template-columns:25px minmax(0,1fr);gap:4px;padding:5px}
  .table-player.active{padding:4px}
  .table-player-token.tabletop-pawn,.table-player .game-token.tabletop-pawn{width:22px;height:29px}
  .table-player-copy b{font-size:11px}
  .table-player-copy strong{font-size:13px}
  .table-player-copy small{font-size:9px}
  .action-card{padding:11px}
  .action-card[data-phase=auction] .primary-actions{grid-template-columns:repeat(2,minmax(0,1fr))}
  .action-card[data-phase=auction] .primary-actions .button{min-height:48px;font-size:12px}
  .bottom-tools{gap:2px;padding-inline:4px}
  .bottom-tools button b{font-size:10px}
  .dialog-head,.landing-head{padding:13px 14px 10px}
  .dialog-body,.landing-body{padding:12px 14px calc(18px + env(safe-area-inset-bottom))}
  .mode-choice{grid-template-columns:1fr}
  .mode-option{min-height:68px}
  .property-stage{grid-template-columns:52px minmax(0,1fr) auto;gap:5px;padding:6px}
  .property-stage strong{font-size:11px}
  .property-stage b{font-size:12px}
  .upgrade-preview-levels{grid-template-columns:repeat(2,minmax(0,1fr))!important}
}
@media(prefers-reduced-motion:reduce){
  .button,.table-player,.bottom-tools button{transition:none!important;animation:none!important}
}
