:root{color:#202521;font-synthesis:none;text-rendering:optimizelegibility;letter-spacing:0;--ink:#202521;--muted:#68716b;--paper:#f8f6ef;--surface:#fff;--line:#c8cec7;--green:#247c58;--green-dark:#17583f;--red:#c4434c;--yellow:#e0aa2c;--blue:#277ca5;--shadow:0 12px 32px #1d251f24;background:#dfe4df;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Hiragino Sans GB,Microsoft YaHei,sans-serif}*{box-sizing:border-box}html,body,#root{min-width:320px;min-height:100%;margin:0}body{background-color:#dfe4df;min-height:100vh}button,input{font:inherit;letter-spacing:0}button{color:inherit}button:focus-visible,input:focus-visible{outline-offset:2px;outline:3px solid #247c5840}button:disabled{cursor:not-allowed;opacity:.45}.brand{white-space:nowrap;align-items:center;gap:9px;font-size:20px;font-weight:800;display:inline-flex}.brand-mark{color:#fff;background:var(--green);border:2px solid #17291f;border-radius:6px;place-items:center;width:34px;height:34px;display:inline-grid;box-shadow:3px 3px #17291f}.entry-screen,.lobby-screen,.game-screen{min-height:100vh}.entry-header,.game-header{z-index:20;background:#f8faf7f5;border-bottom:1px solid #bfc8c0;justify-content:space-between;align-items:center;min-height:64px;padding:12px 24px;display:flex;position:relative}.connection-pill{color:var(--muted);align-items:center;gap:8px;font-size:13px;font-weight:650;display:inline-flex}.connection-pill>span,.game-room-meta i,.presence,.offline-dot{background:#a5aba6;border-radius:50%;flex:none;width:8px;height:8px;display:block}.connection-pill.is-online>span,.game-room-meta i.online,.presence.online{background:#2ba46f;box-shadow:0 0 0 3px #2ba46f24}.entry-workspace{grid-template-columns:minmax(0,1.18fr) minmax(340px,.82fr);align-items:center;gap:54px;width:min(1180px,100% - 40px);min-height:calc(100vh - 64px);margin:0 auto;padding:40px 0;display:grid}.entry-scene{min-width:0}.scene-board{aspect-ratio:4/3;box-shadow:12px 14px 0 #2e4438, var(--shadow);background:#9fc2b0;border:2px solid #27332c;border-radius:8px;position:relative;overflow:hidden}.scene-board:after{content:"";pointer-events:none;border:1px solid #ffffff80;position:absolute;inset:14px}.scene-board>img{object-fit:cover;object-position:center 32%;width:100%;height:100%}.scene-route{border:2px dashed #ffffffd9;border-radius:50%;position:absolute}.route-a{inset:22% 18% 24% 19%;transform:rotate(-8deg)}.route-b{inset:34% 30% 10% 27%;transform:rotate(17deg)}.scene-token{background:#fff;border:2px solid #1b2a22;border-radius:50%;place-items:center;width:66px;height:66px;display:grid;position:absolute;box-shadow:5px 6px #1a2a21bf}.scene-token img,.scene-token .token-fallback{object-fit:contain;width:82%;height:82%}.scene-token-a{bottom:18%;right:18%}.scene-token-b{top:20%;left:18%}.scene-caption{justify-content:space-between;align-items:baseline;gap:20px;margin-top:24px;display:flex}.scene-caption span{color:var(--green-dark);text-transform:uppercase;font-size:13px;font-weight:800}.scene-caption strong{max-width:430px;font-family:ui-serif,Songti SC,serif;font-size:24px;line-height:1.4}.entry-form{box-shadow:var(--shadow);background:#ffffffe0;border:1px solid #b9c1ba;border-radius:8px;flex-direction:column;padding:28px;display:flex}.entry-title{margin-bottom:22px}.eyebrow{color:var(--green-dark);align-items:center;gap:7px;font-size:12px;font-weight:800;display:inline-flex}.entry-title h1,.lobby-heading h1{margin:8px 0 0;font-family:ui-serif,Songti SC,serif;font-size:32px;line-height:1.18}.segmented{border:1px solid var(--line);background:#edf0ec;border-radius:7px;grid-template-columns:1fr 1fr;padding:3px;display:grid}.segmented button{color:#626a64;cursor:pointer;background:0 0;border:0;border-radius:5px;justify-content:center;align-items:center;gap:7px;min-height:40px;font-weight:700;display:inline-flex}.segmented button.active{color:var(--ink);background:#fff;box-shadow:0 1px 5px #1f26211f}.field{gap:8px;margin-top:19px;display:grid}.field>span,.token-picker legend{color:#555f58;font-size:12px;font-weight:750}.field input{width:100%;min-height:46px;color:var(--ink);background:#fff;border:1px solid #b9c1ba;border-radius:6px;padding:0 13px}.field input::placeholder{color:#9ca39e}.room-code-input{text-transform:uppercase;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-weight:800;letter-spacing:.12em!important;font-size:18px!important}.token-picker{border:0;min-width:0;margin:20px 0 22px;padding:0}.token-picker>div{grid-template-columns:repeat(6,minmax(0,1fr));gap:7px;margin-top:9px;display:grid}.token-picker button{cursor:pointer;background:#f8f9f6;border:1px solid #c6cdc7;border-radius:6px;place-items:center;min-width:0;min-height:69px;padding:5px 2px;display:grid}.token-picker button img,.token-picker button .token-fallback{object-fit:contain;width:39px;height:39px}.token-picker button span:last-child{color:#687169;text-overflow:ellipsis;white-space:nowrap;max-width:100%;font-size:10px;overflow:hidden}.token-picker button.selected{border-color:var(--green);box-shadow:inset 0 0 0 1px var(--green);background:#e8f2ec}.token-fallback{color:var(--green-dark);background:#eef2ec;border-radius:50%;place-items:center;font-weight:900;display:inline-grid}.primary-command,.ready-command,.roll-command,.decision-buttons button,.action-grid button,.asset-actions button,.result-panel button{background:var(--green);color:#fff;cursor:pointer;border:1px solid #1e5f45;border-radius:6px;justify-content:center;align-items:center;gap:8px;min-height:44px;padding:0 16px;font-weight:800;display:inline-flex}.entry-form>.primary-command{width:100%}.primary-command:not(:disabled):hover,.roll-command:not(:disabled):hover{background:var(--green-dark)}.icon-command{cursor:pointer;background:#fff;border:1px solid #c4cbc5;border-radius:6px;place-items:center;width:38px;height:38px;padding:0;display:inline-grid}.header-commands{gap:8px;display:flex}.lobby-screen{background-color:#dce5de;background-image:linear-gradient(#ffffff52 1px,#0000 1px),linear-gradient(90deg,#ffffff52 1px,#0000 1px);background-size:28px 28px}.lobby-table{width:min(1020px,100% - 36px);margin:0 auto;padding:55px 0}.lobby-heading{text-align:center;justify-items:center;display:grid}.room-code{cursor:pointer;background:#f9fbf8;border:2px dashed #45765d;border-radius:7px;min-width:228px;margin-top:24px;padding:11px 42px 10px 18px;display:inline-grid;position:relative}.room-invite-actions{justify-content:center;align-items:center;gap:10px;margin-top:24px;display:flex}.room-invite-actions .room-code{margin-top:0}.invite-command{color:#245d43;cursor:pointer;background:#e3f1e8;border:1px solid #4f8c6d;border-radius:7px;justify-content:center;align-items:center;gap:7px;min-height:53px;padding:0 15px;font-size:11px;font-weight:800;display:inline-flex}.invite-command:hover{background:#d5eadd}.room-code span{color:var(--muted);font-size:10px;font-weight:700}.room-code strong{letter-spacing:.12em;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:24px}.room-code svg{position:absolute;top:22px;right:14px}.seat-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-top:42px;display:grid}.player-seat{background:#ffffffe6;border:1px solid #b9c4bc;border-radius:8px;grid-template-columns:72px 1fr;align-items:center;gap:14px;min-height:122px;padding:18px;display:grid;position:relative}.player-seat.is-ready{border-color:#58a77d;box-shadow:inset 0 0 0 1px #58a77d}.seat-token{background:#edf3ee;border:1px solid #c8d0ca;border-radius:50%;place-items:center;width:68px;height:68px;display:grid}.seat-token img,.seat-token .token-fallback{object-fit:contain;width:82%;height:82%}.seat-info{gap:5px;min-width:0;display:grid}.seat-info strong{text-overflow:ellipsis;white-space:nowrap;font-size:17px;overflow:hidden}.seat-info span{color:var(--muted);font-size:12px}.host-crown{color:#c28a10;position:absolute;top:12px;right:12px}.presence{position:absolute;bottom:14px;right:14px}.player-seat.is-empty{color:#8a928c;background:#f7f9f685;border-style:dashed;grid-template-columns:auto;align-content:center;justify-items:center;display:grid}.player-seat.is-empty>span{border:1px solid #aeb8b0;border-radius:50%;place-items:center;width:34px;height:34px;font-weight:800;display:grid}.player-seat.is-empty p{margin:7px 0 0;font-size:12px}.lobby-actions{justify-content:center;gap:12px;margin-top:28px;display:flex}.ready-command{color:var(--ink);background:#fff;border-color:#8a958e}.ready-command.is-ready{color:var(--green-dark);background:#e3f1e8;border-color:#4f8c6d}.game-screen{background:#d8ddd8;height:100vh;overflow:hidden}.game-header{min-height:58px;padding:9px 16px}.game-header .brand{font-size:17px}.game-header .brand-mark{width:31px;height:31px}.game-room-meta{align-items:center;gap:8px;font-size:12px;display:flex;position:absolute;left:50%;transform:translate(-50%)}.game-room-meta span{color:var(--muted)}.game-room-meta strong{letter-spacing:.1em;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:14px}.game-layout{grid-template-columns:minmax(0,1fr) 356px;height:calc(100vh - 58px);display:grid}.board-region{background-color:#cbd4ce;background-image:linear-gradient(#ffffff2e 1px,#0000 1px),linear-gradient(90deg,#ffffff2e 1px,#0000 1px);background-size:30px 30px;place-items:center;min-width:0;padding:18px;display:grid;overflow:auto}.board-shell{aspect-ratio:1.28;background:#f8f5eb;border:2px solid #25332b;border-radius:5px;width:min(100vw - 410px,128vh - 120.32px);padding:8px;box-shadow:8px 10px #375044,0 18px 46px #1a251f33}.game-board{background-color:#f6f2e6;background-image:repeating-linear-gradient(0deg,#3f474106 0 1px,#0000 1px 4px);border:1px solid #5d665f;grid-template-rows:1.34fr repeat(9,1fr) 1.34fr;grid-template-columns:1.34fr repeat(9,1fr) 1.34fr;width:100%;height:100%;display:grid;position:relative;overflow:hidden}.board-tile{z-index:2;cursor:pointer;background:#fdfbf4f0;border:1px solid #7c837d;border-top:0;border-left:0;min-width:0;min-height:0;padding:0;position:relative;overflow:hidden}.board-tile:hover,.board-tile.is-selected{z-index:4;box-shadow:inset 0 0 0 2px var(--green)}.board-tile.is-mortgaged{filter:saturate(.45);background:#e1e2dc}.tile-face{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:2px;min-width:0;min-height:0;padding:12px 3px 8px;display:flex;position:absolute;inset:0}.tile-copy{justify-items:center;gap:2px;min-width:0;display:grid}.tile-face strong{color:#222822;-webkit-line-clamp:2;-webkit-box-orient:vertical;max-width:100%;font-size:9px;line-height:1.1;display:-webkit-box;overflow:hidden}.tile-face small{color:#5f675f;font-variant-numeric:tabular-nums;font-size:7px}.tile-face small.tile-value{font-weight:900}.tile-value.is-price{color:#68716a}.tile-value.is-mine{color:#198052}.tile-value.is-other{color:#c5484f}.side-left .tile-face,.side-right .tile-face{text-align:left;flex-direction:row;gap:5px;padding:8px 5px}.side-left .tile-copy,.side-right .tile-copy{justify-items:start}.side-left .tile-face strong,.side-right .tile-face strong{-webkit-line-clamp:2}.tile-icon{color:#334c40;place-items:center;display:grid}.tile-property .tile-icon{display:none}.tile-chance{color:#a9680e;background:#fff0cb}.tile-fate{color:#27728f;background:#e1eff3}.tile-airport{background:#e9f0eb}.tile-utility{background:#e6f1f2}.tile-tax{background:#f3e7e7}.tile-go,.tile-jail,.tile-free_parking,.tile-go_to_jail{background:#edf1e8}.tile-go .tile-face strong,.tile-go .tile-face small,.tile-jail .tile-face small,.tile-free_parking .tile-face small,.tile-go_to_jail .tile-face small{display:none}.tile-go .tile-face strong,.tile-jail .tile-face strong,.tile-free_parking .tile-face strong,.tile-go_to_jail .tile-face strong{font-size:10px}.go-arrow{border:2px solid var(--green-dark);width:35px;height:35px;color:var(--green-dark);border-radius:50%;place-items:center;font-size:12px;font-weight:900;display:grid;transform:rotate(-28deg)}.owner-stripe{background:var(--owner-color);border-bottom:1px solid #1e231f85;height:10px;position:absolute;top:0;left:0;right:0}.building-icons{justify-content:center;align-items:center;gap:1px;display:inline-flex}.board-building-icons{z-index:2;position:absolute;bottom:1px;right:2px}.building-icon{color:#238057;fill:#2380571f}.building-icons.is-hotel .building-icon{color:#c9424d;fill:#c9424d29}.mortgage-stamp{z-index:3;color:#a44c4f;border:2px solid #a44c4f;border-radius:50%;place-items:center;width:26px;height:26px;font-family:ui-serif,serif;font-size:13px;font-weight:900;display:grid;position:absolute;transform:rotate(-17deg)}.board-center{z-index:1;background:#9fbba9;grid-area:2/2/11/11;place-items:center;display:grid;position:relative;overflow:hidden}.center-art,.center-vignette{width:100%;height:100%;position:absolute;inset:0}.center-art{object-fit:cover;object-position:center 32%;opacity:.92}.center-vignette{background:#15271e38}.center-brand{color:#fff;text-shadow:0 2px 8px #0d1d1473;align-items:center;gap:7px;font-family:ui-serif,Songti SC,serif;font-size:20px;font-weight:900;display:flex;position:absolute;top:20px;left:22px}.turn-focus{background:#fbfcf7e6;border:1px solid #fff9;border-radius:7px;justify-items:center;min-width:210px;padding:14px 22px;display:grid;position:relative;box-shadow:0 7px 18px #142a1d2e}.turn-focus span,.turn-focus small{color:#617067;font-size:10px;font-weight:700}.turn-focus strong{color:#1d3428;text-overflow:ellipsis;white-space:nowrap;max-width:190px;margin:3px 0;font-size:20px;overflow:hidden}.dice-stage{gap:8px;display:flex;position:absolute;bottom:26%}.die{color:#202521;background:#fff;border:1px solid #b6beb8;border-radius:7px;place-items:center;width:44px;height:44px;font-size:35px;line-height:1;display:grid;box-shadow:3px 4px #1f2f269e}.dice-stage.is-rolling .die:first-child{animation:.56s ease-out dice-roll}.dice-stage.is-rolling .die:last-child{animation:.56s ease-out 60ms dice-roll}.event-banner{color:#fff;text-align:center;background:#1b2b22db;border:1px solid #ffffff8c;border-radius:5px;justify-content:center;align-items:center;gap:9px;min-height:36px;padding:8px 12px;display:flex;position:absolute;bottom:18px;left:20px;right:20px}.event-banner p{text-overflow:ellipsis;white-space:nowrap;margin:0;font-size:11px;overflow:hidden}.event-banner>span{color:#503b0d;background:#f0c14c;border-radius:3px;flex:none;padding:2px 5px;font-size:9px;font-weight:900}.board-token{z-index:10;aspect-ratio:1;width:44%;min-width:26px;max-width:44px;transform:translate(var(--token-x), var(--token-y));border:2px solid var(--player-color);pointer-events:none;background:#fff;border-radius:50%;place-self:center;display:grid;box-shadow:0 3px 7px #18221c59}.board-token img,.board-token .token-fallback{object-fit:contain;width:100%;height:100%}.board-token>span:last-child{color:#fff;text-overflow:ellipsis;white-space:nowrap;background:#191f1bde;border-radius:2px;max-width:48px;padding:1px 3px;font-size:6px;position:absolute;bottom:-11px;left:50%;overflow:hidden;transform:translate(-50%)}.board-token.is-current{box-shadow:0 0 0 3px #ffd658e0,0 4px 10px #18221c73}.board-token.is-moving img,.board-token.is-moving .token-fallback{animation:.15s ease-out infinite alternate token-hop}.game-sidebar{z-index:15;background:#f7f8f5;border-left:1px solid #b7beb8;position:relative;overflow-y:auto}.sidebar-mobile-head{display:none}.player-rail,.turn-action,.event-log{border-bottom:1px solid #ccd1cd}.player-rail>header,.event-log>header{justify-content:space-between;align-items:center;padding:14px 15px 9px;display:flex}.player-rail>header span,.event-log>header span{align-items:center;gap:7px;font-size:12px;font-weight:800;display:inline-flex}.player-rail>header small{color:var(--green-dark);font-size:10px;font-weight:750}.player-list{padding:0 9px 10px}.player-row{cursor:pointer;text-align:left;background:0 0;border:0;border-bottom:1px solid #e0e3e0;grid-template-columns:18px 36px minmax(0,1fr) auto;align-items:center;gap:7px;width:100%;min-height:48px;padding:5px 7px;display:grid;position:relative}.player-row.is-current{background:#e4efe8;border-radius:5px}.player-row.is-bankrupt{opacity:.5;filter:grayscale()}.rank{color:#8a918b;text-align:center;font-size:10px;font-weight:800}.player-token-small{background:#fff;border:2px solid;border-radius:50%;place-items:center;width:33px;height:33px;display:grid}.player-token-small img,.player-token-small .token-fallback{object-fit:contain;width:100%;height:100%}.player-copy{gap:1px;min-width:0;display:grid}.player-copy strong,.player-copy small{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.player-copy strong{font-size:11px}.player-copy small{color:#778079;font-size:8px}.player-row .cash{font-variant-numeric:tabular-nums;font-size:10px;font-weight:800}.offline-dot{background:#d65b63;position:absolute;top:4px;right:4px}.turn-action{background:#fff;padding:15px}.waiting-action{align-items:center;gap:12px;min-height:82px;display:flex}.waiting-action p,.waiting-action strong{margin:0}.waiting-action p{color:var(--muted);margin-top:3px;font-size:11px}.waiting-pulse{background:var(--green);border-radius:50%;flex:none;width:11px;height:11px;animation:1.25s ease-in-out infinite pulse;display:block}.roll-action,.end-action{justify-content:space-between;align-items:center;gap:12px;min-height:96px;display:flex}.roll-action>div,.end-action>div{gap:3px;display:grid}.roll-action span,.end-action span{color:var(--green-dark);font-size:10px;font-weight:800}.roll-action strong,.end-action strong{font-size:13px}.roll-command{min-width:112px;min-height:52px;box-shadow:4px 4px #173e2e}.action-heading{align-items:center;gap:10px;display:flex}.action-heading>svg{color:var(--green)}.action-heading>div{gap:2px;display:grid}.action-heading strong{font-size:13px}.action-heading span{color:var(--muted);font-size:10px}.action-grid{grid-template-columns:1fr 1fr;gap:7px;margin-top:12px;display:grid}.action-grid button{min-height:38px;color:var(--ink);background:#f1f4f0;border-color:#bfc8c1;padding:0 8px;font-size:10px}.action-grid button:last-child{grid-column:1/-1}.decision-action{gap:12px;display:grid}.decision-price{border-left:3px solid var(--green);background:#eef4f0;grid-template-columns:1fr auto;padding:10px 12px;display:grid}.decision-price>span,.decision-price>small{color:var(--muted);font-size:9px}.decision-price strong{font-variant-numeric:tabular-nums;font-size:16px}.decision-price small{grid-column:1/-1}.decision-buttons{grid-template-columns:1fr 1fr;gap:8px;display:grid}.decision-buttons button{color:#39413b;background:#fff;border-color:#c2c9c3;min-height:39px;padding:0 9px;font-size:11px}.decision-buttons button.accept{border-color:var(--green-dark);background:var(--green);color:#fff}.decision-buttons button.danger{color:#a62f38;border-color:#d3a1a4}.debt-action>p{color:#6c736e;margin:10px 0;font-size:10px;line-height:1.5}.event-log>div{padding:0 15px 15px}.event-log p{color:#606961;border-bottom:1px solid #e5e7e5;grid-template-columns:14px 1fr;margin:0;padding:6px 0;font-size:9px;line-height:1.35;display:grid}.event-log p span{color:var(--green);font-weight:900}.landing-overlay{z-index:70;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#141b1775;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.landing-overlay.passive-overlay{pointer-events:none;background:#141b1752}.landing-dialog{background:#fff;border:1px solid #939e96;border-radius:8px;width:min(560px,100%);max-height:calc(100vh - 40px);overflow-y:auto;box-shadow:0 20px 55px #10181359}.landing-dialog-head{background:#f7f8f4;border-bottom:1px solid #d1d7d2;align-items:center;gap:12px;min-height:76px;padding:15px 18px;display:flex}.landing-dialog-head>span{width:42px;height:42px;color:var(--green-dark);background:#fff;border:1px solid #b7c2ba;border-radius:50%;flex:none;place-items:center;display:grid}.landing-dialog-head>div{gap:2px;min-width:0;display:grid}.landing-dialog-head small{color:var(--muted);font-size:10px;font-weight:750}.landing-dialog-head h2{text-overflow:ellipsis;white-space:nowrap;margin:0;font-family:ui-serif,Songti SC,serif;font-size:24px;overflow:hidden}.landing-price{font-variant-numeric:tabular-nums;margin-left:auto;font-size:21px}.landing-deed-summary{border-bottom:1px solid #e1e5e1;grid-template-columns:repeat(4,1fr);padding:16px 18px;display:grid}.landing-deed-summary>div{border-right:1px solid #dde1dd;gap:4px;padding:0 12px;display:grid}.landing-deed-summary>div:first-child{padding-left:0}.landing-deed-summary>div:last-child{border-right:0;padding-right:0}.landing-deed-summary span,.landing-rent-track span{color:var(--muted);font-size:9px}.landing-deed-summary strong{font-variant-numeric:tabular-nums;font-size:12px}.landing-rent-track{grid-template-columns:repeat(6,1fr);gap:1px;padding:14px 18px;display:grid}.landing-rent-track>div{background:#fafbf9;border:1px solid #d7dcd8;border-right:0;align-content:center;justify-items:center;gap:3px;min-width:0;padding:8px 6px;display:grid}.landing-rent-track>div:first-child{border-radius:5px 0 0 5px}.landing-rent-track>div:last-child{border-right:1px solid #d7dcd8;border-radius:0 5px 5px 0}.landing-rent-track>div.current{background:#e6f0e9;border-color:#5b8e72}.landing-rent-track>div.next{background:#fff4d7;border-color:#c6992c}.landing-rent-track strong{color:#26382d;font-variant-numeric:tabular-nums;text-overflow:ellipsis;font-size:13px;font-weight:900;line-height:1.1;overflow:hidden}.rent-tier-label{justify-content:center;align-items:center;min-height:20px;display:inline-flex}.landing-rent-track>div.current strong,.rent-table>div.current strong{color:#198052}.landing-rent-track>div.next strong{color:#a16f0b}.landing-actions{border-top:1px solid #e1e5e1;grid-template-columns:1.2fr 1fr;gap:9px;padding:14px 18px 18px;display:grid}.landing-actions button{color:#3f4841;cursor:pointer;background:#fff;border:1px solid #bfc7c1;border-radius:6px;min-height:44px;font-weight:800}.landing-actions button.accept{border-color:var(--green-dark);background:var(--green);color:#fff;justify-content:center;align-items:center;gap:8px;display:inline-flex}.landing-actions button:disabled{cursor:not-allowed;opacity:.45}.card-choice-dialog{width:min(610px,100%);padding-bottom:14px}.deck-chance{--deck-color:#aa7616;--deck-paper:#f5ca58}.deck-fate{--deck-color:#276d87;--deck-paper:#85c2d3}.card-choice-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;padding:20px 26px 14px;display:grid}.card-back-button{cursor:pointer;background:0 0;border:0;min-width:0;padding:0}.card-back-button:disabled{cursor:default;opacity:.88}.travel-card-back{aspect-ratio:5/7;outline:2px solid var(--deck-color);background-color:var(--deck-paper);color:#fff;width:100%;box-shadow:0 7px 0 var(--deck-color), 0 12px 24px #1a211c33;background-image:repeating-linear-gradient(45deg,#0000 0 10px,#fff3 10px 12px);border:5px solid #fff;border-radius:7px;place-content:center;justify-items:center;gap:8px;transition:transform .16s,box-shadow .16s;display:grid;position:relative}.card-back-button:not(:disabled):hover .travel-card-back,.card-back-button:not(:disabled):focus-visible .travel-card-back{box-shadow:0 12px 0 var(--deck-color), 0 18px 28px #1a211c3d;transform:translateY(-7px)}.travel-card-back:before{content:"";border:2px solid #fffc;border-radius:4px;position:absolute;inset:9px}.travel-card-back svg,.travel-card-back strong,.travel-card-back small,.travel-card-back i{z-index:1;position:relative}.travel-card-back strong{font-family:ui-serif,Songti SC,serif;font-size:22px}.travel-card-back small{font-size:8px;font-weight:800}.travel-card-back i{font-size:10px;font-style:normal;font-weight:900;position:absolute;bottom:10px;right:12px}.choice-hint{color:var(--muted);text-align:center;margin:0;padding:0 18px 4px;font-size:10px}.card-reveal{border-top:9px solid var(--deck-color);text-align:center;justify-items:center;width:min(340px,100%);padding:34px 28px;animation:.42s ease-out card-reveal;display:grid}.card-reveal>span{color:var(--deck-color)}.card-reveal small{color:var(--deck-color);margin-top:12px;font-weight:850}.card-reveal h2{margin:6px 0;font-family:ui-serif,Songti SC,serif;font-size:27px}.card-reveal p{color:#566058;margin:0;font-size:13px}@keyframes card-reveal{0%{opacity:0;transform:perspective(700px)rotateY(82deg)scale(.92)}to{opacity:1;transform:perspective(700px)rotateY(0)scale(1)}}.tile-detail{z-index:40;background:#fff;border:1px solid #aeb7b0;border-radius:7px;width:302px;position:fixed;bottom:22px;right:374px;overflow:hidden;box-shadow:0 14px 38px #19221d47}.tile-detail>header{border-bottom:1px solid #d4d8d5;justify-content:space-between;align-items:center;padding:12px;display:flex}.tile-detail>header>div{align-items:center;gap:9px;display:flex}.tile-detail>header>div>span{border-radius:3px;width:10px;height:38px}.tile-detail h3,.tile-detail small{margin:0}.tile-detail h3{font-size:15px}.tile-detail header small{color:var(--muted);font-size:8px}.deed-summary{grid-template-columns:1fr 1fr;gap:8px;padding:10px 12px;display:grid}.deed-summary>div{gap:2px;display:grid}.deed-summary span{color:var(--muted);font-size:8px}.deed-summary strong{font-size:11px}.rent-table{grid-template-columns:repeat(3,1fr);gap:4px;padding:0 12px 10px;display:grid}.rent-table:before{content:"各等级预期过路费";color:#4d5c52;grid-column:1/-1;font-size:10px;font-weight:900}.rent-table>div{background:#f8f9f7;border:1px solid #d6dbd7;border-radius:4px;align-content:center;justify-items:center;padding:5px;display:grid}.rent-table>div.current{border-color:var(--green);background:#e6f1ea}.rent-table span{color:var(--muted);font-size:7px}.rent-table strong{color:#26382d;font-size:13px;font-weight:900;line-height:1.1}.asset-actions{border-top:1px solid #e0e3e0;gap:6px;padding:10px 12px 12px;display:grid}.asset-actions button{min-height:34px;color:var(--ink);background:#f4f6f3;border-color:#c6cdc7;font-size:9px}.special-rule{color:#5d665f;margin:0;padding:16px;font-size:11px;line-height:1.6}.connection-banner{z-index:90;box-shadow:var(--shadow);background:#fff;border:1px solid #bdc5be;border-radius:6px;align-items:center;gap:9px;padding:10px 13px;font-size:11px;font-weight:700;display:flex;position:fixed;bottom:18px;right:18px}.error-toast{z-index:120;color:#872a32;width:min(440px,100% - 28px);min-height:48px;box-shadow:var(--shadow);background:#fff4f4;border:1px solid #cf8d92;border-radius:7px;grid-template-columns:22px 1fr 32px;align-items:center;gap:8px;padding:8px 8px 8px 13px;font-size:12px;display:grid;position:fixed;top:76px;left:50%;transform:translate(-50%)}.error-toast button{cursor:pointer;background:0 0;border:0;place-items:center;width:30px;height:30px;padding:0;display:grid}.result-overlay{z-index:100;background:#18201bb3;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.result-panel{text-align:center;background:#fff;border:1px solid #b8c2ba;border-radius:8px;justify-items:center;width:min(420px,100%);padding:32px;display:grid;box-shadow:10px 12px #22362b}.result-panel>svg{color:#c79520}.result-panel>span{color:var(--muted);margin-top:12px;font-size:11px;font-weight:800}.result-panel h2{margin:5px 0 4px;font-family:ui-serif,Songti SC,serif;font-size:32px}.result-panel p{color:var(--muted);margin:0 0 22px;font-size:12px}.result-panel>div{gap:8px;display:flex}.result-panel>div>button:not(.primary-command){color:var(--ink);background:#f4f6f3;border-color:#c5ccc6}.mobile-menu,.mobile-action-dock{display:none}@keyframes dice-roll{0%{transform:translateY(-15px)rotate(-18deg)}52%{transform:translateY(3px)rotate(10deg)}to{transform:translateY(0)rotate(0)}}@keyframes token-hop{0%{transform:translateY(0)}to{transform:translateY(-8px)}}@keyframes pulse{0%,to{opacity:.45;transform:scale(.82)}50%{opacity:1;transform:scale(1.08)}}@media (width<=1050px){.entry-workspace{gap:28px}.scene-caption{flex-direction:column;align-items:flex-start;gap:8px}.game-layout{grid-template-columns:minmax(0,1fr) 320px}.board-shell{width:min(100vw - 370px,128vh - 120.32px)}.tile-detail{right:338px}}@media (width<=800px){.entry-header,.game-header{padding-left:14px;padding-right:14px}.entry-workspace{grid-template-columns:1fr;width:min(520px,100% - 28px);padding:24px 0 38px}.entry-scene{order:2}.entry-form{padding:22px}.scene-caption strong{font-size:19px}.seat-grid{grid-template-columns:1fr 1fr}.player-seat{grid-template-columns:58px 1fr}.seat-token{width:56px;height:56px}.game-layout{grid-template-columns:1fr;height:auto}.board-region{place-items:start center;padding:12px;display:grid}.board-shell{width:min(100vw - 24px,680px);min-width:0;margin:0}.side-left .tile-face,.side-right .tile-face{text-align:center;flex-direction:column;gap:1px;padding:7px 2px 4px}.side-left .tile-copy,.side-right .tile-copy{justify-items:center}.side-left .tile-icon svg,.side-right .tile-icon svg{width:17px;height:17px}.game-sidebar{z-index:60;border-left:1px solid #aeb7b0;width:min(360px,92vw);transition:transform .22s;position:fixed;top:0;bottom:0;right:0;transform:translate(102%);box-shadow:-12px 0 30px #1a231d33}.game-sidebar.is-open{transform:translate(0)}.sidebar-mobile-head{z-index:2;background:#fff;border-bottom:1px solid #c8cec9;justify-content:space-between;align-items:center;min-height:54px;padding:8px 13px;display:flex;position:sticky;top:0}.mobile-menu{display:inline-grid}.game-screen{height:auto;min-height:100vh;padding-bottom:max(12px, env(safe-area-inset-bottom));overflow:hidden auto}.mobile-action-dock:not(:empty){z-index:5;background:#fff;border:1px solid #aeb8b0;border-radius:8px;max-height:none;margin:0 10px 12px;display:block;position:relative;overflow-y:auto;box-shadow:0 9px 28px #19241d3d}.mobile-action-dock .turn-action{min-height:0;padding:10px 12px}.mobile-action-dock.is-hidden{display:none}.tile-detail{width:auto;max-height:68vh;bottom:10px;left:10px;right:10px;overflow-y:auto}}@media (width<=520px){.brand{gap:5px;font-size:14px}.brand-mark{width:30px;height:30px}.landing-overlay{padding:10px}.landing-dialog{max-height:calc(100vh - 20px)}.landing-dialog-head{min-height:66px;padding:11px 13px}.landing-dialog-head h2{font-size:21px}.landing-price{font-size:17px}.landing-deed-summary{grid-template-columns:1fr 1fr;gap:10px 0;padding:12px 13px}.landing-deed-summary>div:nth-child(2){border-right:0}.landing-deed-summary>div:nth-child(3){padding-left:0}.landing-rent-track{grid-template-columns:repeat(3,1fr);gap:4px;padding:12px 13px}.landing-rent-track>div,.landing-rent-track>div:last-child{border:1px solid #d7dcd8;border-radius:4px}.landing-actions{padding:12px 13px 14px}.card-choice-grid{gap:9px;padding:18px 14px 15px}.travel-card-back{border-width:3px;gap:5px}.travel-card-back:before{inset:6px}.travel-card-back strong{font-size:17px}.connection-pill{font-size:0}.entry-title h1,.lobby-heading h1{font-size:27px}.token-picker>div{grid-template-columns:repeat(3,1fr)}.scene-board{box-shadow:7px 8px #2e4438}.lobby-table{padding:34px 0}.seat-grid{grid-template-columns:1fr;margin-top:30px}.player-seat{min-height:90px}.lobby-actions{flex-direction:column;align-items:stretch}.room-invite-actions{flex-direction:column;align-items:stretch;width:100%}.room-invite-actions .room-code,.room-invite-actions .invite-command{width:100%}.game-room-meta{display:none}.board-shell{width:calc(100vw - 20px);min-width:0}.result-panel{padding:25px 18px}.result-panel>div{flex-direction:column;width:100%}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
