:root{--bg:#12151a;--bg-2:#1b1f27;--panel:#222832;--panel-2:#2a313c;--line:#343b48;--text:#f2f4f7;--muted:#9aa3b2;--accent:#3ecf8e;--accent-2:#2bb673;--warn:#f5a524;--danger:#ef5b5b;--board:#fff;--board-edge:#cfd5de;--board-center:#1c1f24;--shadow:0 18px 50px #00000080;--radius:12px;--font:"Manrope", system-ui, sans-serif;--display:"Unbounded", "Manrope", sans-serif}*{box-sizing:border-box}html,body,#root{min-height:100%;margin:0}body{font-family:var(--font);color:var(--text);background:var(--bg)}button{font:inherit;cursor:pointer}input,select{font:inherit}.app-shell{min-height:100vh}.btn{border:1px solid var(--line);background:var(--panel-2);color:var(--text);border-radius:10px;padding:11px 16px;font-weight:700;transition:transform .15s,background .15s,box-shadow .15s}.btn:hover:not(:disabled){background:#323948;transform:translateY(-1px)}.btn:disabled{opacity:.4;cursor:not-allowed}.btn-primary{background:linear-gradient(180deg, var(--accent), var(--accent-2));color:#062416;border-color:#0000;box-shadow:0 6px 18px #3ecf8e40}.btn-warn{color:#2a1800;background:linear-gradient(#f5a524,#e08a10);border-color:#0000}.btn-ghost{background:0 0}.btn-danger{background:var(--danger);color:#fff;border-color:#0000}.btn-sm{padding:8px 12px;font-size:.85rem}.menu-screen{place-items:center;min-height:100vh;padding:24px;display:grid}.menu-card{border:1px solid var(--line);width:min(440px,100%);box-shadow:var(--shadow);text-align:center;background:linear-gradient(165deg,#242a35,#1a1f28);border-radius:20px;padding:36px 28px}.menu-card img{width:72px;height:72px}.menu-card h1{font-family:var(--display);margin:14px 0 8px;font-size:1.85rem}.menu-card .tag{color:var(--muted);margin:0 0 28px}.menu-actions{gap:10px;display:grid}.menu-auth{gap:8px;margin:0 0 16px;display:grid}.menu-auth-note{color:var(--muted);font-size:.85rem}.lobby-card{width:min(520px,100%)}.lobby-card-wide{text-align:left;width:min(720px,100%);max-height:min(92vh,920px);overflow:auto}.lobby-code{letter-spacing:.12em;color:#f8fafc;font-size:1.15em}.lobby-actions{gap:12px;margin-bottom:16px;display:grid}.lobby-join-row{grid-template-columns:1fr auto;gap:8px;display:grid}.lobby-join-row input,.lobby-card .setup-count input{border:1px solid var(--line);width:100%;color:var(--text);background:#00000040;border-radius:10px;padding:10px 12px}.lobby-players{gap:10px;margin:12px 0 18px;display:grid}.lobby-player{border:1px solid var(--line);background:#ffffff08;border-radius:12px;align-items:center;gap:12px;padding:10px 12px;display:flex}.lobby-player.is-ready{border-color:#22c55e8c}.lobby-player-name{font-weight:700}.lobby-player-meta{color:var(--muted);font-size:.8rem}.lobby-ready{color:var(--text);align-items:center;gap:8px;margin:12px 0;display:flex}.lobby-warn,.lobby-error{margin:8px 0 0;font-size:.9rem}.lobby-warn{color:#fbbf24}.lobby-error{color:#f87171}.lobby-resume{background:#0ea5e914;border:1px solid #38bdf859;border-radius:12px;gap:8px;margin-bottom:16px;padding:12px;display:grid}.lobby-resume-text{color:var(--muted);margin:0;font-size:.9rem}.lobby-player.is-offline{opacity:.55;border-style:dashed}.setup-list{text-align:left;gap:14px;margin:18px 0;display:grid}.setup-card{width:min(640px,100%);max-height:min(92vh,900px);overflow:auto}.setup-count{text-align:left;gap:8px;margin-bottom:8px;display:grid}.setup-count span{color:var(--muted)}.setup-count select{background:var(--bg);border:1px solid var(--line);color:var(--text);border-radius:10px;padding:10px 12px}.setup-player{background:var(--bg);border:1px solid var(--line);border-radius:14px;gap:10px;padding:12px;display:grid}.setup-player-top{align-items:center;gap:12px;display:flex}.setup-player-top input{background:var(--bg-2,#1b1f27);border:1px solid var(--line);color:var(--text);border-radius:10px;outline:none;flex:1;padding:10px 12px;font-weight:600}.setup-figures{grid-template-columns:repeat(auto-fill,minmax(88px,1fr));gap:8px;display:grid}.setup-fig-btn{color:var(--muted);text-align:center;cursor:pointer;background:#ffffff0a;border:2px solid #0000;border-radius:12px;place-items:center;gap:4px;padding:8px 4px;font-size:.68rem;font-weight:700;line-height:1.15;display:grid}.setup-fig-btn .token3d{filter:drop-shadow(0 2px 4px #00000059)}.setup-fig-btn.on{color:var(--text);background:#ffffff1a;border-color:#fff;box-shadow:0 0 0 1px #fff3}.setup-fig-btn.taken:disabled{opacity:.35;cursor:not-allowed}.setup-row{background:var(--bg);border:1px solid var(--line);border-radius:12px;grid-template-columns:1fr auto;align-items:center;gap:8px;padding:10px;display:grid}.setup-row input{width:100%;color:var(--text);background:0 0;border:none;outline:none;font-weight:600}.colors{gap:6px;display:flex}.colors button{border:2px solid #0000;border-radius:50%;width:22px;height:22px;padding:0}.colors button.on{border-color:#fff;transform:scale(1.1)}.game-screen{background:#0e1014;grid-template-rows:auto 1fr;min-height:100vh;display:grid}.game-top{border-bottom:1px solid var(--line);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#0e1014eb;justify-content:space-between;align-items:center;min-height:40px;padding:5px 12px;display:flex}.brand-mini{font-family:var(--display);align-items:center;gap:8px;font-size:.95rem;font-weight:700;display:flex}.brand-mini img{width:26px;height:26px}.meta{color:var(--muted);gap:14px;font-size:.9rem;font-weight:700;display:flex}.game-body{grid-template-columns:148px minmax(0,1fr);align-items:stretch;gap:4px;height:calc(100vh - 44px);min-height:0;padding:2px 4px 4px;display:grid}.players-col{flex-direction:column;gap:8px;height:100%;max-height:none;display:flex;overflow:auto}.player-card{background:var(--panel);border:1px solid var(--line);border-radius:14px;gap:6px;padding:10px 10px 10px 14px;transition:border-color .2s,box-shadow .2s,transform .2s;display:grid;position:relative}.player-card:before{content:"";background:var(--pc,#888);border-radius:4px;width:4px;position:absolute;top:10px;bottom:10px;left:0}.player-card.active{border-color:color-mix(in srgb, var(--pc) 70%, #fff);box-shadow:0 0 0 1px color-mix(in srgb, var(--pc) 40%, transparent), 0 8px 24px #00000040;transform:translate(2px)}.player-card.bankrupt{opacity:.45;filter:grayscale(.7)}.pc-top{align-items:flex-start;gap:10px;min-width:0;display:flex}.avatar{color:#fff;border:2px solid #ffffff59;border-radius:50%;flex-shrink:0;place-items:center;width:36px;height:36px;font-weight:800;display:grid}.pc-info{flex:1;gap:2px;min-width:0;display:grid}.pc-name{align-items:center;gap:6px;font-weight:800;display:flex}.star{color:var(--warn);font-size:.85rem}.pc-money{color:var(--accent);margin-top:2px;font-size:1.05rem;font-weight:800;line-height:1.2}.pc-sub{color:var(--muted);font-size:.75rem}.pc-fig-label{color:var(--muted);margin-top:2px;font-size:.72rem;font-weight:600}.turn-badge{color:var(--warn);background:#f5a52426;border-radius:999px;align-items:center;gap:4px;padding:2px 8px;font-size:.7rem;font-weight:800;display:inline-flex}.turn-badge-other{color:var(--muted);background:#94a3b82e}.player-card.is-you{box-shadow:inset 0 0 0 1px #38bdf873}.wait-turn-modal{text-align:center;max-width:360px;padding:28px 24px}.wait-turn-modal h3{margin:12px 0 8px}.wait-turn-modal p{color:var(--text);margin:0;line-height:1.45}.wait-turn-note{font-size:.85rem;color:var(--muted)!important;margin-top:12px!important}.wait-turn-dot{border-radius:50%;width:14px;height:14px;margin:0 auto;box-shadow:0 0 0 4px #ffffff14}.board-stage{place-items:center;width:100%;height:100%;min-height:0;display:grid;position:relative;overflow:hidden}.board{--u:min(calc((100vh - 36px) / 9.65), calc((100vw - 140px) / 15.15));--side:calc(var(--u) * 3.55);--stack:calc(var(--u) * .82);--mid:calc(var(--u) * 1.05);--band:calc(var(--u) * .7);--strip:clamp(18px, calc(var(--stack) * .28), 28px);--cell:var(--stack);--board-dark:#1c1f24;width:calc(var(--side) * 2 + var(--mid) * 9);height:calc(var(--band) * 2 + var(--stack) * 9);grid-template-columns:var(--side) repeat(9, var(--mid)) var(--side);grid-template-rows:var(--band) repeat(9, var(--stack)) var(--band);background:var(--board-dark);border-radius:2px;display:grid;position:relative;overflow:hidden;box-shadow:0 24px 70px #0009}.board-heart{background:var(--board-dark);z-index:1;min-height:0;color:var(--text);flex-direction:column;grid-area:2/2/11/11;display:flex;position:relative}.heart-log-wrap{flex-direction:column;flex:1;min-height:0;padding:10px 14px 0;display:flex;-webkit-mask-image:linear-gradient(#000 65%,#0000);mask-image:linear-gradient(#000 65%,#0000)}.heart-meta{color:#6b7280;margin-bottom:6px;font-size:.75rem;font-weight:700}.heart-log{flex-direction:column;flex:1;gap:4px;padding-bottom:28px;font-size:.78rem;display:flex;overflow:auto}.log-line{color:#aeb6c4;border-left:3px solid var(--lc,#3a4250);border-radius:4px;padding:3px 6px 3px 8px;line-height:1.35;animation:.25s fadeUp}.log-line.has-player{background:color-mix(in srgb, var(--lc) 10%, transparent)}.log-player{color:var(--lp,#e2e8f0);text-shadow:0 0 12px color-mix(in srgb, var(--lp) 45%, transparent);font-weight:800}@keyframes fadeUp{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}.heart-dock{z-index:3;pointer-events:none;flex-direction:column;justify-content:flex-end;gap:10px;display:flex;position:absolute;inset:12px}.heart-dock>*{pointer-events:auto}.turn-card{align-self:center;width:min(320px,100%);max-width:320px;margin:auto 8px 8px}.heart-chat{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#282c34f0;border:1px solid #ffffff0f;border-radius:10px;align-items:center;gap:8px;padding:8px 12px;display:flex}.chat-prefix{color:#8b93a3;white-space:nowrap;font-size:.78rem;font-weight:700}.heart-chat input{color:var(--text);background:0 0;border:none;outline:none;flex:1;padding:4px 0;font-size:.85rem}.chat-send{color:#fff;background:#2a303a;border:none;border-radius:8px;width:28px;height:28px;font-weight:800}.heart-actions{flex-wrap:wrap;justify-content:center;align-items:center;gap:6px;display:flex}.cell{color:#1a2230;cursor:pointer;z-index:2;background:#fff;border:1px solid #c8ced8;margin:0;padding:0;transition:filter .15s;display:block;position:relative;overflow:hidden}.cell:hover{z-index:6;filter:brightness(.97)}.cell.corner{background:#f3f5f8}.price-strip{z-index:2;background:var(--gc,#64748b);color:#fff;font-weight:800;font-size:clamp(.62rem, calc(var(--stack) * .22), .9rem);letter-spacing:.02em;text-shadow:0 1px 1px #00000059;justify-content:center;align-items:center;line-height:1;display:flex;position:absolute}.side-top .price-strip{height:var(--strip);top:0;left:0;right:0}.side-bottom .price-strip{height:var(--strip);bottom:0;left:0;right:0}.side-left .price-strip{width:var(--strip);writing-mode:vertical-rl;font-size:clamp(.58rem, calc(var(--side) * .055), .85rem);top:0;bottom:0;left:0;transform:rotate(180deg)}.side-right .price-strip{width:var(--strip);writing-mode:vertical-rl;font-size:clamp(.58rem, calc(var(--side) * .055), .85rem);top:0;bottom:0;right:0}.cell-face{place-items:center;padding:2px 4px;display:grid;position:absolute;inset:0}.side-top.buyable .cell-face{top:var(--strip);bottom:0}.side-bottom.buyable .cell-face{bottom:var(--strip);top:0}.side-left.buyable .cell-face{left:var(--strip);right:0}.side-right.buyable .cell-face{right:var(--strip);left:0}.side-bottom:not(.buyable) .cell-face,.side-left:not(.buyable) .cell-face,.side-right:not(.buyable) .cell-face{transform:none}.cell.landed{outline-offset:-2px;z-index:7;outline:2px solid #e74c3c;box-shadow:inset 0 0 0 999px #e74c3c2e}.cell.owned.landed{box-shadow:inset 0 0 0 3px var(--oc,#64748b), inset 0 0 0 999px #e74c3c29}.turn-card{color:#1a2230;text-align:center;background:#fff;border-radius:14px;padding:16px 18px;animation:.28s pop;box-shadow:0 12px 40px #00000059}.turn-card-text{color:#334155;margin:0 0 12px;font-size:.95rem;font-weight:700}.turn-card-double{background:linear-gradient(#fff8e8,#fff);box-shadow:0 12px 40px #00000059,0 0 0 2px #d9a02873}.turn-card-double .turn-card-text{color:#9a6700}.turn-card-jail{background:linear-gradient(#f1f5f9,#fff);box-shadow:0 12px 40px #00000059,0 0 0 2px #47556959}.turn-card-jail .turn-card-text{color:#334155}.jail-actions{gap:8px;display:grid}.btn-roll-lg{border-radius:12px;width:100%;padding:14px 18px;font-size:1.05rem}.action-hint{color:var(--muted);font-size:.85rem;font-weight:600}.brand-logo{object-fit:contain;object-position:center;pointer-events:none;-webkit-user-select:none;user-select:none;image-rendering:auto;-webkit-user-drag:none;width:clamp(32px,78%,72px);height:clamp(32px,78%,72px);display:block}.brand-logo.brand-logo-mask{background-position:50%;background-repeat:no-repeat;background-size:contain;flex-shrink:0;-webkit-mask-position:50%;mask-position:50%;-webkit-mask-size:contain;mask-size:contain;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}.side-left .brand-logo,.side-right .brand-logo{width:clamp(28px,55%,64px);height:clamp(28px,70%,56px)}.logo-mark{box-sizing:border-box;justify-content:center;align-items:center;width:100%;min-width:0;height:100%;min-height:0;padding:4px;display:flex}.logo-fallback{font-family:var(--display);color:#334155;font-size:clamp(.7rem,1.1vw,1rem);font-weight:700}.special-mark{font-weight:900;line-height:1}.event-mark{color:#22c55e;font-size:clamp(1.45rem,2.3vw,2rem)}.event-tile{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:3px;width:100%;height:100%;padding:3px 2px;display:flex}.event-tile-label{letter-spacing:.06em;color:#1a2230;font-size:clamp(.48rem,.65vw,.68rem);font-weight:800;line-height:1.05}.event-tile-icon{place-items:center;width:clamp(28px,4.2vw,44px);height:clamp(28px,4.2vw,44px);line-height:1;display:grid}.cell-svg-icon{width:100%;height:100%;display:block;overflow:visible}.deck-chance{background:linear-gradient(160deg,#fff7ed,#ffedd5 55%,#fffbeb)}.deck-chance .event-tile-icon{width:clamp(34px,5.2vw,54px);height:clamp(34px,5.2vw,54px)}.deck-chest{background:linear-gradient(160deg,#ecfeff,#cffafe 55%,#f0fdfa)}.deck-chest .event-tile-icon{width:clamp(34px,5.2vw,54px);height:clamp(34px,5.2vw,54px)}.cell.type-event{background:#eefaf4}.special-mark{place-items:center;width:100%;height:100%;display:grid}.tax-tile{background:linear-gradient(160deg,#ecfdf5,#d1fae5 55%,#f0fdf4)}.tax-tile .event-tile-label{color:#166534}.tax-tile-icon{width:clamp(40px,6vw,62px)!important;height:clamp(40px,6vw,62px)!important}.tax-money-img{object-fit:contain;filter:drop-shadow(0 2px 4px #00000038);pointer-events:none;-webkit-user-select:none;user-select:none;-webkit-user-drag:none;width:100%;height:100%;display:block}.tax-tile-amount{color:#15803d;font-variant-numeric:tabular-nums;font-size:clamp(.48rem,.65vw,.62rem);font-weight:800;line-height:1}.cell.type-tax{background:#ecfdf5}.tax-mark{color:#f59e0b}.tax-mark .cell-svg-icon{width:clamp(30px,4.6vw,48px);height:clamp(30px,4.6vw,48px)}.corner-art{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:3px;width:100%;height:100%;padding:4px;display:flex}.corner-icon-wrap{place-items:center;width:clamp(38px,5.5vw,60px);height:clamp(38px,5.5vw,60px);display:grid}.corner-emoji{font-size:clamp(1.25rem,2.1vw,1.85rem);line-height:1}.corner-name{color:#334155;text-transform:uppercase;font-size:clamp(.48rem,.7vw,.62rem);font-weight:800}.art-start,.art-jail,.art-gotojail{background:#0f172a;gap:0;padding:0;overflow:hidden}.art-start{background:#bfdbfe}.art-jail{background:#1e293b}.art-gotojail{background:#172554}.corner-photo-tile{place-items:center;display:grid;position:absolute;inset:0;overflow:hidden}.corner-photo{object-fit:cover;object-position:center center;pointer-events:none;-webkit-user-select:none;user-select:none;-webkit-user-drag:none;width:100%;height:100%;display:block}.corner-photo-start{background:#0d3d2e}.corner-photo-jail{background:#0f172a}.corner-photo-police{background:#0c4a6e}.art-bonus{background:#2e1065;gap:0;padding:0;overflow:hidden}.corner-photo-casino{background:#450a0a}.jackpot-cell-pot{z-index:2;color:#0f172a;background:linear-gradient(#fde68a,#f59e0b);border-radius:999px;padding:2px 8px;font-size:clamp(.42rem,.58vw,.55rem);font-weight:800;position:absolute;bottom:4px;box-shadow:0 1px 3px #00000073,0 0 8px #facc1559}.corner-photo-casino .jackpot-cell-pot{margin:0;left:auto;right:6px}.jackpot-modal{text-align:center;color:#f8fafc;padding:6px 4px 4px}.jackpot-badge{letter-spacing:.12em;color:#78350f;background:linear-gradient(#fde68a,#f59e0b);border-radius:999px;padding:4px 12px;font-size:.72rem;font-weight:900;display:inline-block}.jackpot-title{text-shadow:0 0 18px #facc1573;color:#fde68a!important;margin:10px 0 4px!important;font-size:1.7rem!important}.jackpot-pot-label{margin:0;font-size:.85rem;color:#94a3b8!important}.jackpot-pot{font-variant-numeric:tabular-nums;color:#fbbf24;text-shadow:0 2px 12px #00000073;margin:6px 0 10px;font-size:2rem;font-weight:900}.jackpot-hint{margin:0 0 14px;font-size:.9rem;line-height:1.4;color:#cbd5e1!important}.jackpot-reels{justify-content:center;gap:10px;margin:0 auto 16px;display:flex}.jackpot-reel{background:linear-gradient(#0f172a,#1e293b);border:2px solid #f59e0b;border-radius:12px;place-items:center;width:64px;height:72px;font-size:1.8rem;display:grid;box-shadow:inset 0 0 0 2px #fde68a40,0 8px 18px #00000059}.jackpot-reels.is-spinning .jackpot-reel{animation:.2s linear infinite reelShake}@keyframes reelShake{0%,to{transform:translateY(0)}50%{transform:translateY(-3px)}}.jackpot-result{background:#0f172aa6;border:1px solid #94a3b859;border-radius:12px;margin:0 0 12px;padding:10px 12px}.jackpot-result strong{color:#fde68a;margin-bottom:4px;font-size:1.15rem;display:block}.jackpot-result p{color:#e2e8f0!important;margin:0!important}.jackpot-result.kind-mega strong,.jackpot-result.kind-jackpot strong{color:#fbbf24}.jackpot-result.kind-bust strong{color:#f87171}.jackpot-result.kind-miss strong{color:#94a3b8}.tok-car,.tok-ship,.tok-dog,.tok-hat,.tok-boot,.tok-rocket{flex-direction:column;justify-content:flex-end;align-items:center;width:100%;height:88%;display:flex;position:relative}.tok-car-cabin{background:linear-gradient(180deg, #ffffff8c, transparent 40%), linear-gradient(160deg, color-mix(in srgb, var(--tok) 70%, #fff), var(--tok));z-index:3;border-radius:40% 40% 8% 8%;width:42%;height:22%;box-shadow:inset 0 -2px 3px #0003}.tok-car-body{background:linear-gradient(90deg, #00000040, transparent 30%, #ffffff59 55%, transparent), linear-gradient(180deg, color-mix(in srgb, var(--tok) 85%, #fff), color-mix(in srgb, var(--tok) 55%, #000));z-index:2;border-radius:30% 30% 18% 18%/40% 40% 30% 30%;width:78%;height:28%;margin-top:-4%}.tok-car-wheel{aspect-ratio:1;z-index:4;background:radial-gradient(circle at 35% 30%,#64748b,#0f172a 70%);border-radius:50%;width:18%;position:absolute;bottom:14%;box-shadow:inset 0 0 0 2px #ffffff26}.tok-car-wheel-l{left:14%}.tok-car-wheel-r{right:14%}.tok-car-base,.tok-ship-base,.tok-dog-base,.tok-hat-base,.tok-boot-base,.tok-rocket-base{background:radial-gradient(circle at 35% 30%, #fff6, transparent 45%), linear-gradient(180deg, color-mix(in srgb, var(--tok) 75%, #fff), color-mix(in srgb, var(--tok) 45%, #000));z-index:1;border-radius:50%;width:86%;height:12%;box-shadow:0 2px 3px #0000004d}.tok-ship-sail{border-left:18% solid transparent;border-right:0 solid #0000;border-bottom:42% solid color-mix(in srgb, var(--tok) 80%, #fff);filter:drop-shadow(1px 1px #00000026);z-index:3;width:0;height:0;margin-left:10%}.tok-ship-mast{z-index:2;background:linear-gradient(90deg,#92400e,#fbbf24,#78350f);border-radius:2px;width:7%;height:38%;margin-top:-30%}.tok-ship-hull{background:linear-gradient(180deg, color-mix(in srgb, var(--tok) 90%, #fff), color-mix(in srgb, var(--tok) 50%, #000));z-index:2;border-radius:10% 10% 45% 45%;width:82%;height:22%;margin-top:-2%}.tok-dog-ear{background:color-mix(in srgb, var(--tok) 70%, #000);z-index:2;border-radius:60% 60% 20% 20%;width:18%;height:22%;position:absolute;top:8%}.tok-dog-ear-l{left:18%;transform:rotate(-18deg)}.tok-dog-ear-r{right:18%;transform:rotate(18deg)}.tok-dog-head{aspect-ratio:1;background:radial-gradient(circle at 32% 28%, #ffffffb3, transparent 40%), linear-gradient(160deg, color-mix(in srgb, var(--tok) 80%, #fff), var(--tok));z-index:3;border-radius:50%;width:48%}.tok-dog-snout{background:color-mix(in srgb, var(--tok) 60%, #fff);z-index:4;border-radius:40%;width:28%;height:12%;margin-top:-8%}.tok-dog-body{background:linear-gradient(180deg, color-mix(in srgb, var(--tok) 85%, #fff), color-mix(in srgb, var(--tok) 55%, #000));z-index:2;border-radius:40% 40% 30% 30%;width:58%;height:28%;margin-top:2%}.tok-dog-leg{background:color-mix(in srgb, var(--tok) 50%, #000);z-index:2;border-radius:3px;width:12%;height:14%;margin-top:-4%}.tok-hat-crown{background:linear-gradient(90deg, #0003, transparent 40%, #ffffff4d), linear-gradient(180deg, color-mix(in srgb, var(--tok) 90%, #fff), var(--tok));z-index:3;border-radius:20% 20% 8% 8%;width:42%;height:36%}.tok-hat-band{z-index:4;background:#0f172a;width:48%;height:8%;margin-top:-2%}.tok-hat-brim{background:radial-gradient(circle at 40% 30%, #ffffff59, transparent 50%), linear-gradient(180deg, var(--tok), color-mix(in srgb, var(--tok) 50%, #000));z-index:2;border-radius:50%;width:88%;height:14%;margin-top:-2%}.tok-boot-shaft{background:linear-gradient(90deg, #00000040, transparent 40%, #fff3), linear-gradient(180deg, color-mix(in srgb, var(--tok) 85%, #fff), var(--tok));z-index:3;border-radius:30% 30% 10% 10%;width:36%;height:48%;margin-right:10%}.tok-boot-foot{background:linear-gradient(180deg, var(--tok), color-mix(in srgb, var(--tok) 45%, #000));z-index:2;border-radius:20% 40% 30% 20%;width:70%;height:18%;margin-top:-6%;margin-left:12%}.tok-rocket-nose{border-left:16% solid transparent;border-right:16% solid transparent;border-bottom:22% solid color-mix(in srgb, var(--tok) 80%, #fff);z-index:4;width:0;height:0}.tok-rocket-body{background:linear-gradient(90deg, #0003, transparent 35%, #fff6 55%, transparent), linear-gradient(180deg, color-mix(in srgb, var(--tok) 90%, #fff), var(--tok) 60%, color-mix(in srgb, var(--tok) 60%, #000));z-index:3;border-radius:20%;width:40%;height:42%;margin-top:-2%}.tok-rocket-fin{border-top:10% solid transparent;border-bottom:10% solid transparent;z-index:2;width:0;height:0;position:absolute;bottom:22%}.tok-rocket-fin-l{border-right:14% solid color-mix(in srgb, var(--tok) 60%, #000);left:18%}.tok-rocket-fin-r{border-left:14% solid color-mix(in srgb, var(--tok) 60%, #000);right:18%}.tok-rocket-flame{z-index:2;background:linear-gradient(#fde68a,#f97316 60%,#0000);border-radius:40% 40% 50% 50%;width:18%;height:14%;margin-top:-2%;animation:.35s ease-in-out infinite alternate rocketFlicker}@keyframes rocketFlicker{0%{opacity:.7;transform:scaleY(.9)}to{opacity:1;transform:scaleY(1.15)}}.cell.type-start{background:#93c5fd}.cell.type-jail{background:#475569}.cell.type-gotojail{background:#1e3a8a}.cell.type-start,.cell.type-jail,.cell.type-gotojail,.cell.type-bonus{background:#2e1065;padding:0}.cell.type-start .corner-art,.cell.type-jail .corner-art,.cell.type-gotojail .corner-art,.cell.type-bonus .corner-art{position:absolute;inset:0}.cell.owned{background:color-mix(in srgb, var(--oc,#64748b) 38%, #fff);box-shadow:inset 0 0 0 4px var(--oc,#64748b);z-index:3}.cell.owned.mortgaged{background:repeating-linear-gradient(-45deg, color-mix(in srgb, var(--oc,#64748b) 22%, #f8fafc), color-mix(in srgb, var(--oc,#64748b) 22%, #f8fafc) 5px, #c7d0dc 5px, #c7d0dc 10px);opacity:1;box-shadow:inset 0 0 0 3px #64748b,inset 0 0 0 5px #ffffff8c}.cell.owned.mortgaged .brand-logo,.cell.owned.mortgaged .brand-logo-mask,.cell.owned.mortgaged .logo-fallback{opacity:.45;filter:grayscale(.35)}.mortgage-badge{z-index:6;color:#f8fafc;font-variant-numeric:tabular-nums;letter-spacing:.02em;pointer-events:none;white-space:nowrap;background:#0f172a;border-radius:999px;align-items:center;gap:3px;padding:2px 5px 2px 4px;font-size:.62rem;font-weight:800;transition:transform .2s,background .2s,box-shadow .2s;display:flex;position:absolute;bottom:3px;left:50%;transform:translate(-50%);box-shadow:0 2px 6px #0006}.side-top .mortgage-badge{bottom:auto;top:calc(var(--strip,14px) + 2px)}.mortgage-badge.is-urgent{z-index:8;color:#fff;background:#b91c1c;gap:5px;padding:5px 10px 5px 8px;font-size:.95rem;font-weight:900;animation:.9s ease-in-out infinite alternate mortgageUrgentPulse;box-shadow:0 0 0 2px #fecacaf2,0 4px 12px #b91c1c8c}.side-top .mortgage-badge.is-urgent{top:calc(var(--strip,14px) + 1px)}.mortgage-badge-icon{border:1.5px solid #fbbf24;border-radius:2px;flex-shrink:0;width:8px;height:8px;position:relative}.mortgage-badge.is-urgent .mortgage-badge-icon{border-color:#fecaca;width:11px;height:11px}.mortgage-badge-icon:before{content:"";border:1.5px solid #fbbf24;border-bottom:none;border-radius:4px 4px 0 0;height:4px;position:absolute;top:-3px;left:1px;right:1px}.mortgage-badge.is-urgent .mortgage-badge-icon:before{border-color:#fecaca;height:5px;top:-4px}.mortgage-badge-timer{color:#fde68a;text-align:center;min-width:.9em}.mortgage-badge.is-urgent .mortgage-badge-timer{color:#fff;text-shadow:0 1px #00000059;min-width:1.1em;font-size:1.15em}@keyframes mortgageUrgentPulse{0%{transform:translate(-50%)scale(1)}to{transform:translate(-50%)scale(1.08)}}.cell.owned .owner-bar{z-index:4;background:var(--oc);pointer-events:none;position:absolute}.side-top.owned .owner-bar,.side-bottom.owned .owner-bar{height:7px;left:0;right:0}.side-top.owned .owner-bar{bottom:0}.side-bottom.owned .owner-bar{top:0}.side-left.owned .owner-bar,.side-right.owned .owner-bar{width:7px;top:0;bottom:0}.side-left.owned .owner-bar{right:0}.side-right.owned .owner-bar{left:0}.corner.owned .owner-bar{width:auto;height:auto;box-shadow:inset 0 0 0 4px var(--oc);background:0 0;inset:0}.cell .lvl{color:#166534;z-index:3;background:#ffffffeb;border-radius:3px;padding:0 2px;font-size:.5rem;font-weight:900;position:absolute;bottom:2px;left:50%;transform:translate(-50%)}.house-row{z-index:4;pointer-events:none;background:#0f172a8c;border-radius:4px;justify-content:center;align-items:flex-end;gap:2px;padding:2px 3px;display:flex;position:absolute;bottom:3px;left:50%;transform:translate(-50%);box-shadow:0 1px 3px #00000059}.side-top .house-row{bottom:auto;top:calc(var(--strip,14px) + 2px)}.side-left .house-row,.side-right .house-row{bottom:4px}.house{background:linear-gradient(#4ade80,#16a34a 55%,#15803d);border-radius:1px 1px 0 0;flex-shrink:0;width:7px;height:6px;position:relative;box-shadow:inset 0 1px #ffffff59}.house:before{content:"";clip-path:polygon(50% 0,100% 100%,0 100%);background:#15803d;height:4px;position:absolute;top:-3px;left:-1px;right:-1px}.house-hotel{background:linear-gradient(#f87171,#dc2626 50%,#b91c1c);border-radius:1px;width:12px;height:9px}.house-hotel:before{background:#991b1b;height:5px;top:-4px}.house-row-hotel{background:#7f1d1da6}@media (width>=900px){.house{width:9px;height:7px}.house:before{height:5px;top:-4px}.house-hotel{width:14px;height:11px}}.tokens{pointer-events:none;z-index:5;perspective:420px;flex-wrap:wrap;place-content:flex-end center;gap:4px 5px;padding:1px 2px 2px;display:flex;position:absolute;inset:0;overflow:visible}.token3d{--tok:#e74c3c;--tok-accent:#f97316;--tok-base:#166534;width:36px;height:52px;transform-style:preserve-3d;z-index:2;filter:drop-shadow(0 0 0 1px #ffffffd9) drop-shadow(0 0 0 2px #0f172ab3) drop-shadow(0 4px 6px #00000073);flex-shrink:0;transition:transform .2s,filter .2s;position:relative}.token3d:before{content:"";z-index:-1;filter:blur(.6px);opacity:0;background:radial-gradient(circle at 30% 20%,#fffffff2,#fff0 58%),radial-gradient(circle at 50% 70%,#0000008c,#0000 60%);border-radius:999px;width:112%;height:112%;position:absolute;top:52%;left:50%;transform:translate(-50%,-50%)}.token-metal{filter:drop-shadow(0 0 1px #ffffffd9) drop-shadow(0 0 0 2px #0f172ab3) drop-shadow(0 6px 9px #00000073) contrast(1.08) saturate(1.02)}.token-metal .mascot-svg{filter:brightness(1.04)contrast(1.08)}.token-metal .token3d-fig{transform:rotateX(18deg)rotateY(-10deg)rotate(-1deg)translateZ(8px)}.tokens .token3d{transform-origin:50% 100%;transform:scale(1.12)}.tokens .token-metal{filter:drop-shadow(0 0 2px #fffffffa) drop-shadow(0 0 0 2px #ffffffeb) drop-shadow(0 0 0 4px #0f172aeb) drop-shadow(0 6px 10px #0000009e) contrast(1.2) saturate(1.1)}.token3d-sm{width:30px;height:44px}.token3d-md{width:40px;height:56px}.token3d-lg{width:52px;height:72px}.token3d-xl{width:60px;height:84px}.token-mascot .token3d-fig{transform:rotateX(22deg)rotateY(-6deg)rotate(-2deg)translateZ(6px)}.mascot-svg{width:100%;height:100%;display:block;overflow:visible}.token3d-shadow{z-index:0;background:radial-gradient(#0000008c,#0000 68%);border-radius:50%;width:88%;height:22%;position:absolute;bottom:-2%;left:50%;transform:translate(-50%)scaleY(.5)rotateX(55deg)}.token3d-fig{transform-origin:50% 100%;z-index:1;flex-direction:column;justify-content:flex-end;align-items:center;display:flex;position:absolute;inset:0;transform:rotateX(22deg)rotateY(-4deg)rotate(-2deg)translateZ(8px)}.token3d-head{aspect-ratio:1;background:radial-gradient(circle at 32% 28%, #ffffffd9, transparent 42%), radial-gradient(circle at 70% 70%, #00000040, transparent 50%), linear-gradient(160deg, color-mix(in srgb, var(--tok) 75%, #fff), var(--tok) 55%, color-mix(in srgb, var(--tok) 70%, #000));z-index:4;border-radius:50%;width:55%;box-shadow:inset -2px -2px 4px #00000040,0 1px 2px #0003}.token3d-neck{background:linear-gradient(90deg, color-mix(in srgb, var(--tok) 60%, #000), color-mix(in srgb, var(--tok) 80%, #fff), color-mix(in srgb, var(--tok) 55%, #000));z-index:3;border-radius:2px;width:28%;height:10%;margin-top:-8%}.token3d-body{background:linear-gradient(90deg, #00000038, transparent 35%, #ffffff40 55%, transparent 75%), linear-gradient(180deg, color-mix(in srgb, var(--tok) 85%, #fff), var(--tok) 40%, color-mix(in srgb, var(--tok) 65%, #000));z-index:2;border-radius:40% 40% 18% 18%/20% 20% 40% 40%;width:62%;height:38%;margin-top:-2%;box-shadow:inset 0 -3px 5px #0003}.token3d-base{background:radial-gradient(circle at 35% 30%, #ffffff73, transparent 45%), linear-gradient(180deg, color-mix(in srgb, var(--tok) 80%, #fff), color-mix(in srgb, var(--tok) 55%, #000));z-index:1;border-radius:50%;width:88%;height:16%;margin-top:-4%;box-shadow:inset 0 1px 2px #ffffff59,inset 0 -2px 3px #00000059,0 2px 3px #00000040}.token3d.is-moving{filter:drop-shadow(0 0 0 1.5px #fff) drop-shadow(0 0 0 2.5px #0f172ad9) drop-shadow(0 10px 8px #00000073) drop-shadow(0 0 8px color-mix(in srgb, var(--tok) 55%, transparent));animation:.22s tokenBounce;transform:translateY(-10px)scale(1.18)}.token3d.is-moving .token3d-fig{transform:rotateX(34deg)rotateY(0)rotate(0)translateZ(10px)}@keyframes tokenBounce{0%{transform:translateY(-4px)scale(1.1)}50%{transform:translateY(-14px)scale(1.2)}to{transform:translateY(-10px)scale(1.18)}}.avatar-token{flex-shrink:0;place-items:end center;width:42px;height:56px;display:grid;overflow:hidden;background:0 0!important;border:none!important}.avatar-token .token3d{width:40px;height:54px}.token-piece{border:2px solid #fffffff2;border-radius:50%;width:15px;height:15px;box-shadow:0 2px 5px #00000073}.token-piece.moving{transform:scale(1.35);box-shadow:0 0 0 2px #3ecf8ea6,0 2px 6px #0006}.dice-row{perspective:400px;justify-content:center;align-items:center;gap:14px;min-height:48px;display:flex}.dice-row-rolling{opacity:.35}.die3d-scene{--die:42px;width:var(--die);height:var(--die);perspective:560px;filter:drop-shadow(0 10px 14px #00000059);place-items:center;display:grid;position:relative}.die3d-sm{--die:36px;filter:drop-shadow(0 4px 6px #0000004d)}.die3d-md{--die:48px}.die3d-xl{--die:104px;filter:drop-shadow(0 18px 22px #00000073)}.die3d-shadow{filter:blur(3px);pointer-events:none;z-index:0;background:radial-gradient(#00000073,#0000 70%);border-radius:50%;width:78%;height:22%;position:absolute;bottom:-18%;left:11%}.die3d-xl .die3d-shadow{filter:blur(5px);height:26%;bottom:-22%}.die3d-cube{width:100%;height:100%;transform-style:preserve-3d;z-index:1;transition:transform .45s cubic-bezier(.2,.8,.2,1);position:relative}.die3d-cube.rolling{animation:1.05s cubic-bezier(.2,.7,.2,1) forwards dieTumble}.die3d-cube.rolling.show-1{--end:rotateX(-22deg) rotateY(28deg)}.die3d-cube.rolling.show-2{--end:rotateX(-112deg) rotateY(28deg)}.die3d-cube.rolling.show-3{--end:rotateX(-22deg) rotateY(-62deg)}.die3d-cube.rolling.show-4{--end:rotateX(-22deg) rotateY(118deg)}.die3d-cube.rolling.show-5{--end:rotateX(68deg) rotateY(28deg)}.die3d-cube.rolling.show-6{--end:rotateX(-22deg) rotateY(208deg)}.dice-overlay-stage .die3d-scene:nth-child(2) .die3d-cube.rolling{animation-delay:80ms}@keyframes dieTumble{0%{transform:rotateX(0)rotateY(0)rotate(0)translateY(-40px)}15%{transform:rotateX(120deg)rotateY(80deg)rotate(40deg)translateY(-70px)}35%{transform:rotateX(280deg)rotateY(-140deg)rotate(-60deg)translateY(-20px)}55%{transform:rotateX(420deg)rotateY(220deg)rotate(90deg)translateY(-55px)}75%{transform:rotateX(560deg)rotateY(-40deg)rotate(-20deg)translateY(-10px)}90%{transform:rotateX(680deg)rotateY(100deg)rotate(10deg)translateY(-4px)}to{transform:var(--end,rotateX(-22deg) rotateY(28deg)) translateY(0)}}.die3d-face{backface-visibility:hidden;background:radial-gradient(circle at 28% 22%,#fffef8 0%,#f7f1e4 42%,#e8dcc8 78%,#d4c4a8 100%);border:1px solid #785a3238;border-radius:16%;place-items:center;display:grid;position:absolute;inset:0;overflow:hidden;box-shadow:inset 0 0 0 1.5px #ffffff8c,inset 0 -6px 14px #5a3c141f,inset 0 8px 16px #ffffff59}.die3d-sheen{pointer-events:none;opacity:.55;background:linear-gradient(125deg,#0000 35%,#ffffff73 48%,#0000 62%);position:absolute;inset:-20%}.die3d-sm .die3d-face{border-radius:14%}.die3d-xl .die3d-face{border-radius:18%;box-shadow:inset 0 0 0 2px #ffffff80,inset 0 -10px 22px #5a3c1424,inset 0 12px 24px #fff6}.face-1{transform:rotateY(0deg) translateZ(calc(var(--die) / 2))}.face-6{transform:rotateY(180deg) translateZ(calc(var(--die) / 2));filter:brightness(.88)}.face-3{transform:rotateY(90deg) translateZ(calc(var(--die) / 2));filter:brightness(.94)}.face-4{transform:rotateY(-90deg) translateZ(calc(var(--die) / 2));filter:brightness(.9)}.face-2{transform:rotateX(90deg) translateZ(calc(var(--die) / 2));filter:brightness(1.04)}.face-5{transform:rotateX(-90deg) translateZ(calc(var(--die) / 2));filter:brightness(.82)}.die3d-pips{z-index:1;box-sizing:border-box;width:78%;height:78%;padding:4%;display:grid;position:relative}.die3d-pip{background:radial-gradient(circle at 32% 28%,#ff6b6b 0%,#c81e1e 45%,#7f0d0d 100%);border-radius:50%;place-self:center;width:22%;height:22%;box-shadow:inset 0 1px 2px #ffdcdc8c,inset 0 -2px 3px #28000073,0 1px 2px #50140a59}.pips-1{grid-template:1fr/1fr;place-items:center}.pips-1 .die3d-pip{width:26%;height:26%}.pips-2{grid-template:1fr 1fr/1fr 1fr}.pips-2 .die3d-pip:first-child{grid-area:1/1}.pips-2 .die3d-pip:nth-child(2){grid-area:2/2}.pips-3{grid-template:1fr 1fr 1fr/1fr 1fr 1fr}.pips-3 .die3d-pip:first-child{grid-area:1/1}.pips-3 .die3d-pip:nth-child(2){grid-area:2/2}.pips-3 .die3d-pip:nth-child(3){grid-area:3/3}.pips-4{grid-template:1fr 1fr/1fr 1fr;gap:18%}.pips-4 .die3d-pip{width:28%;height:28%}.pips-5{grid-template:1fr 1fr 1fr/1fr 1fr 1fr}.pips-5 .die3d-pip:first-child{grid-area:1/1}.pips-5 .die3d-pip:nth-child(2){grid-area:1/3}.pips-5 .die3d-pip:nth-child(3){grid-area:2/2}.pips-5 .die3d-pip:nth-child(4){grid-area:3/1}.pips-5 .die3d-pip:nth-child(5){grid-area:3/3}.pips-6{grid-template:1fr 1fr 1fr/1fr 1fr;place-items:center;gap:4%}.pips-6 .die3d-pip{width:26%;height:26%}.dice-overlay{z-index:40;pointer-events:none;background:radial-gradient(#0e10148c,#0e1014d1);place-items:center;animation:.2s diceOverlayIn;display:grid;position:fixed;inset:0}.dice-overlay-floor{filter:blur(3px);pointer-events:none;background:radial-gradient(#e8c47838,#0000 68%),radial-gradient(#ffffff1a,#0000 72%);width:min(480px,78vw);height:110px;position:absolute;top:58%;left:50%;transform:translate(-50%,-50%)rotateX(70deg)}.dice-overlay-panel{z-index:1;flex-direction:column;justify-content:center;align-items:center;gap:22px;max-width:min(520px,92vw);padding:24px;display:flex;position:relative}.dice-overlay-stage{perspective:1000px;filter:drop-shadow(0 28px 24px #0000008c);justify-content:center;align-items:center;gap:44px;display:flex}.dice-overlay-caption{color:#f8fafc;letter-spacing:.06em;text-align:center;text-shadow:0 2px 12px #000000b3;font-variant-numeric:tabular-nums;font-size:1.15rem;font-weight:800}.dice-overlay-ready{pointer-events:auto;background:radial-gradient(#0e101473,#0e1014c7)}.dice-overlay-go{pointer-events:auto;border-radius:14px;min-width:200px;padding:14px 28px;font-size:1.15rem;font-weight:800;box-shadow:0 12px 32px #00000073}@keyframes diceOverlayIn{0%{opacity:0}to{opacity:1}}.die{color:#111;background:#fff;border-radius:8px;place-items:center;width:34px;height:34px;font-size:1.05rem;font-weight:900;display:grid;box-shadow:inset 0 -2px #0000001a}.die.rolling{animation:.45s shake}@keyframes shake{0%,to{transform:rotate(0)}25%{transform:rotate(-14deg)scale(1.08)}50%{transform:rotate(12deg)}75%{transform:rotate(-8deg)}}.toast-stack{z-index:50;pointer-events:none;flex-direction:column;gap:8px;width:min(400px,92vw);display:flex;position:fixed;top:64px;left:50%;transform:translate(-50%)}.toast{border:1px solid var(--line);text-align:center;box-shadow:var(--shadow);background:#222832f5;border-radius:12px;padding:10px 14px;font-weight:700;animation:.3s fadeUp}.toast.ok{border-color:var(--accent)}.toast.bad{border-color:var(--danger)}.toast.info{border-color:#4a90e2}.money-fx{z-index:60;pointer-events:none;font-size:1.1rem;font-weight:900;animation:.9s forwards moneyUp;position:fixed}.money-fx.plus{color:var(--accent)}.money-fx.minus{color:var(--danger)}@keyframes moneyUp{0%{opacity:1;transform:translateY(0)scale(1)}to{opacity:0;transform:translateY(-42px)scale(1.15)}}.modal-root{z-index:80;place-items:center;padding:16px;display:grid;position:fixed;inset:0}.modal-back{-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);background:#05070ab8;position:absolute;inset:0}.modal{z-index:1;border:1px solid var(--line);width:min(520px,100%);max-height:min(86vh,740px);box-shadow:var(--shadow);background:linear-gradient(165deg,#273040,#1c222c);border-radius:18px;padding:22px;animation:.28s pop;position:relative;overflow:auto}@keyframes pop{0%{opacity:0;transform:translateY(10px)scale(.97)}to{opacity:1;transform:none}}.modal h3{font-family:var(--display);margin:0 0 10px;font-size:1.25rem}.modal p{color:var(--muted);line-height:1.5}.modal-actions{flex-wrap:wrap;gap:8px;margin-top:16px;display:flex}.prop-rows{gap:6px;display:grid}.prop-rows .row{border-bottom:1px solid var(--line);justify-content:space-between;gap:8px;padding:7px 0;font-size:.92rem;display:flex}.card-modal{text-align:center}.card-modal .badge{border-radius:999px;margin-bottom:10px;padding:4px 12px;font-size:.78rem;font-weight:800;display:inline-block}.card-modal .title{font-family:var(--display);color:#0f172a;margin-bottom:8px;font-size:1.4rem;font-weight:800}.card-modal p{color:#334155;margin:0 0 4px;line-height:1.5}.card-modal-icon{place-items:center;width:72px;height:72px;margin:4px auto 10px;font-size:2.4rem;font-weight:900;line-height:1;display:grid}.card-modal-icon .cell-svg-icon{width:100%;height:100%}.card-chance{color:#0f172a;background:linear-gradient(#fff7ed 0%,#fff 42%);border:2px solid #fb923c;border-radius:16px;padding:18px 16px}.card-chance .badge{color:#9a3412;background:#ffedd5}.card-chance .title{color:#9a3412}.card-chance .card-modal-icon{color:#e91e8c;-webkit-text-stroke:1.5px #111;paint-order:stroke fill}.card-chest{color:#0f172a;background:linear-gradient(#e0f2fe 0%,#fff 42%);border:2px solid #38bdf8;border-radius:16px;padding:18px 16px}.card-chest .badge{color:#0c4a6e;background:#bae6fd}.card-chest .title{color:#0c4a6e}.card-chest .card-modal-icon{font-size:2rem}.modal:has(.card-modal){box-shadow:none;background:0 0;border:none;padding:0;overflow:visible}.modal-root-trade .modal-trade-wrap{z-index:1;width:min(920px,96vw);max-height:min(90vh,820px);animation:.28s pop;position:relative}.trade-window{color:#e8edf5;background:linear-gradient(#2a3140 0%,#1c222c 100%);border:1px solid #3d4658;border-radius:14px;flex-direction:column;gap:12px;max-height:min(90vh,820px);padding:14px 16px 16px;display:flex;overflow:hidden;box-shadow:0 24px 60px #0000008c}.trade-window-head{flex-direction:column;flex-shrink:0;gap:10px;display:flex}.trade-window-head h3{font-family:var(--display);color:#f8fafc;margin:0;font-size:1.2rem}.trade-partners{flex-wrap:wrap;gap:6px;display:flex}.trade-partner-tab{color:#cbd5e1;cursor:pointer;font:inherit;background:#151a22;border:1px solid #3d4658;border-radius:10px;align-items:center;gap:8px;padding:7px 12px;font-size:.85rem;font-weight:700;display:inline-flex}.trade-partner-tab.on{border-color:color-mix(in srgb, var(--pc) 70%, #fff);box-shadow:0 0 0 1px color-mix(in srgb, var(--pc) 40%, transparent);background:color-mix(in srgb, var(--pc) 16%, #151a22)}.trade-partner-dot{background:var(--pc,#888);border-radius:50%;flex-shrink:0;width:10px;height:10px}.trade-partner-cash{color:#94a3b8;font-size:.78rem;font-weight:600}.trade-cols{flex:auto;grid-template-columns:1fr 1fr;gap:12px;min-height:0;display:grid;overflow:hidden}.trade-col{background:#141820;border:1px solid #2f3746;border-radius:12px;flex-direction:column;min-height:0;display:flex;overflow:hidden}.trade-col-title{color:#e2e8f0;border-bottom:1px solid #2f3746;border-left:3px solid var(--pc,#64748b);background:#1a2030;justify-content:space-between;align-items:center;gap:8px;padding:10px 12px;font-size:.82rem;font-weight:800;display:flex}.trade-col-title span{color:#94a3b8;font-variant-numeric:tabular-nums;font-weight:700}.trade-inv-grid{grid-template-columns:repeat(auto-fill,minmax(76px,1fr));align-content:start;gap:8px;max-height:min(34vh,280px);padding:10px;display:grid;overflow-y:auto}.trade-inv-empty,.trade-empty-note{color:#64748b;text-align:center;grid-column:1/-1;margin:0;padding:16px 8px;font-size:.85rem}.trade-slot{background:linear-gradient(180deg, color-mix(in srgb, var(--tg,#64748b) 18%, #1e2430), #171c26);color:#e2e8f0;cursor:pointer;font:inherit;text-align:center;border:1px solid #3a4252;border-radius:10px;flex-direction:column;align-items:center;gap:4px;min-height:92px;padding:8px 6px 6px;transition:border-color .15s,transform .12s,box-shadow .15s;display:flex}.trade-slot:hover:not(.is-empty){border-color:color-mix(in srgb, var(--tg,#94a3b8) 70%, #fff);transform:translateY(-1px)}.trade-slot.is-on{border-color:#3ecf8e;box-shadow:0 0 0 1px #3ecf8e8c,inset 0 0 0 1px #3ecf8e40}.trade-slot.is-mortgaged{opacity:.72;filter:grayscale(.25)}.trade-slot.is-empty,.trade-slot.is-dim:not(.is-on){cursor:default;pointer-events:none;background:repeating-linear-gradient(-45deg,#151a22,#151a22 6px,#181e28 6px 12px);border-style:dashed;border-color:#2a3344;min-height:76px}.trade-slot-name{text-overflow:ellipsis;white-space:nowrap;max-width:100%;font-size:.68rem;font-weight:700;line-height:1.15;overflow:hidden}.trade-slot-price{color:#94a3b8;font-variant-numeric:tabular-nums;font-size:.62rem;font-weight:700}.trade-thumb{background:#0f141c;border:1px solid #2f3746;border-radius:8px;flex-shrink:0;place-items:center;width:40px;height:40px;display:grid;overflow:hidden}.trade-thumb img{object-fit:contain;width:78%;height:78%}.trade-thumb-mask{border-color:#0000;-webkit-mask-position:50%;mask-position:50%;-webkit-mask-size:70%;mask-size:70%;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}.trade-thumb-fallback{color:#fff;font-size:.7rem;font-weight:800}.trade-offer-row{flex-shrink:0;grid-template-columns:1fr auto 1fr;align-items:stretch;gap:10px;display:grid}.trade-offer-pane{background:#12161e;border:1px solid #2f3746;border-radius:12px;flex-direction:column;gap:8px;min-width:0;padding:10px;display:flex}.trade-offer-label{color:#94a3b8;font-size:.78rem;font-weight:800}.trade-offer-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;min-height:76px;display:grid}.trade-offer-vs{color:#64748b;place-items:center;padding-top:28px;font-size:1.4rem;font-weight:900;display:grid}.trade-money{color:#94a3b8;grid-template-columns:auto 1fr auto;align-items:center;gap:8px;font-size:.8rem;display:grid}.trade-money input{color:#f8fafc;font:inherit;font-variant-numeric:tabular-nums;background:#0b0e14;border:1px solid #3a4252;border-radius:8px;width:100%;padding:8px 10px;font-weight:700}.trade-money em{color:#64748b;white-space:nowrap;font-size:.72rem;font-style:normal}.trade-window-actions{flex-wrap:wrap;flex-shrink:0;justify-content:flex-end;gap:8px;padding-top:4px;display:flex}.trade-confirm-sub{color:#94a3b8;margin:0;font-size:.9rem}.trade-confirm-cash{color:#3ecf8e;font-variant-numeric:tabular-nums;font-size:1.05rem;font-weight:800}.trade-grid{gap:12px;display:grid}.trade-grid label{gap:6px;font-size:.9rem;display:grid}.trade-grid input,.trade-grid select{background:var(--bg);border:1px solid var(--line);color:var(--text);border-radius:10px;padding:10px}@media (width<=720px){.trade-cols,.trade-offer-row{grid-template-columns:1fr}.trade-offer-vs{padding:0;transform:rotate(90deg)}.trade-offer-grid{grid-template-columns:repeat(auto-fill,minmax(72px,1fr))}.trade-inv-grid{max-height:22vh}}.check-list{gap:6px;max-height:120px;display:grid;overflow:auto}.check-list label{align-items:center;gap:8px;font-size:.85rem;display:flex}.victory{text-align:center;padding:8px}.victory .big{font-family:var(--display);background:linear-gradient(90deg, var(--accent), var(--warn));color:#0000;-webkit-background-clip:text;background-clip:text;font-size:1.6rem}.side-hint{border:1px solid var(--line);width:min(280px,100%);box-shadow:var(--shadow);z-index:4;background:#222832f0;border-radius:14px;padding:12px;position:absolute;bottom:12px;right:12px}.side-hint h4{color:var(--muted);margin:0 0 8px;font-size:.85rem}.hint-props{flex-wrap:wrap;gap:5px;max-height:100px;display:flex;overflow:auto}.chip{background:var(--panel-2);border-left:3px solid var(--g,#888);border-radius:999px;padding:3px 7px;font-size:.7rem}.modal-root-pcard .modal-back{-webkit-backdrop-filter:none;backdrop-filter:none;background:#080a0e73}.modal-pcard-wrap{z-index:1;animation:.28s pop;position:relative}.pcard{color:#1f2937;width:min(380px,94vw);font-family:var(--font);background:#fff;border-radius:16px;overflow:hidden;box-shadow:0 20px 60px #00000073}.pcard-head{background:var(--pcard-h,#e91e8c);text-align:center;padding:20px 20px 16px}.pcard-title{color:#fff;letter-spacing:-.02em;font-size:1.7rem;font-weight:800;line-height:1.15}.pcard-cat{color:#ffffffe6;margin-top:6px;font-size:.95rem;font-weight:600}.pcard-body{background:#fff;padding:16px 18px 18px}.pcard-tip{color:#6b7280;text-align:center;margin:0 0 12px;font-size:.9rem;line-height:1.4}.pcard-roll-hint{letter-spacing:.02em;text-align:center;color:#0f172a;background:linear-gradient(#fff8e8,#f3e6c8);border:1px solid #b48c3c59;border-radius:8px;margin:0 0 14px;padding:9px 12px;font-size:.98rem;font-weight:800;box-shadow:inset 0 1px #ffffffb3}.pcard-mono{color:#059669;text-align:center;margin:0 0 10px;font-size:.88rem;font-weight:700}.pcard-mort{color:#dc2626;text-align:center;margin:0 0 10px;font-size:.88rem;font-weight:700}.pcard-rows{gap:0;display:grid}.pcard-row{color:#4b5563;border-bottom:1px solid #eef0f3;justify-content:space-between;align-items:center;gap:14px;padding:10px 4px;font-size:1rem;display:flex}.pcard-row strong{color:#111827;font-variant-numeric:tabular-nums;letter-spacing:-.01em;font-size:1.12rem;font-weight:800}.pcard-row.active{background:#f3f4f6;border-bottom-color:#0000;border-radius:8px;margin:0 -8px;padding-left:12px;padding-right:12px}.pcard-row.active strong{color:#0f172a;font-size:1.2rem}.pcard-special{flex-direction:column;gap:10px;display:flex}.pcard-special-icon{filter:drop-shadow(0 2px 4px #0f172a2e);width:72px;height:72px;margin:2px auto 4px}.pcard-special-icon .cell-svg-icon{width:100%;height:100%}.pcard-corner-art{object-fit:contain;object-position:center;pointer-events:none;-webkit-user-select:none;user-select:none;background:#0f172a;border-radius:10px;width:100%;height:auto;max-height:120px;margin:0 auto 10px;display:block;box-shadow:0 4px 14px #0f172a2e}.pcard-stars{color:#9ca3af;letter-spacing:2px;font-size:1rem}.pcard-stars-max{color:#f59e0b;font-size:1.25rem}.pcard-finance{background:#f8fafc;border:1px solid #e5e7eb;border-radius:10px;margin-top:12px;padding:10px 12px}.pcard-finance .pcard-row{border-bottom-color:#e8ecf1;padding:11px 2px}.pcard-finance .pcard-row:last-child{border-bottom:none}.pcard-finance .pcard-row strong{color:#0f172a;font-size:1.18rem}.pcard-owner{color:#6b7280;text-align:center;margin-top:14px;font-size:.95rem}.pcard-actions{gap:10px;margin-top:16px;display:grid}.pcard-actions .btn{justify-content:center;width:100%;padding:12px 16px;font-size:1rem}.pcard-btn-dark{color:#374151!important;background:#f3f4f6!important;border-color:#e5e7eb!important}.pcard-simple .pcard-head{background:var(--pcard-h,#475569)}.rent-card .rent-amount{text-align:center;color:#dc2626;font-variant-numeric:tabular-nums;margin:10px 0 14px;font-size:2.2rem;font-weight:800}.pcard-shell{justify-content:center;align-items:stretch;gap:14px;width:max-content;max-width:min(820px,96vw);display:flex}.pcard-shell.has-funds{width:min(820px,96vw)}.pcard-shell .pcard{flex:0 380px;min-width:0}.jail-modal-inner{color:#1f2937;background:#fff;border-radius:16px;flex:0 380px;min-width:260px;padding:22px 20px;box-shadow:0 20px 60px #00000073}.jail-modal-inner h3{color:#0f172a;margin:0 0 10px;font-size:1.35rem}.jail-modal-inner p{color:#475569;margin:0 0 14px;line-height:1.45}.funds-panel{color:#1f2937;background:linear-gradient(165deg,#fffaf5 0%,#fff 55%);border:1px solid #fdba74;border-radius:16px;flex-direction:column;flex:300px;gap:10px;min-width:260px;max-width:380px;max-height:min(72vh,560px);padding:14px;display:flex;box-shadow:0 16px 40px #00000047}.funds-panel-head{flex-direction:column;flex-shrink:0;gap:8px;display:flex}.funds-panel-title{color:#c2410c;letter-spacing:-.01em;margin:0;font-size:1rem;font-weight:800}.funds-panel-cash{color:#64748b;flex-wrap:wrap;gap:6px 12px;font-size:.82rem;display:flex}.funds-panel-cash strong{color:#0f172a;font-variant-numeric:tabular-nums;white-space:nowrap}.funds-panel-short strong{color:#dc2626}.funds-panel-toggle{justify-content:center;align-self:flex-start}.funds-panel-list{scrollbar-gutter:stable;flex-direction:column;flex:auto;gap:12px;min-height:0;padding-right:2px;display:flex;overflow:hidden auto}.funds-panel-section{flex-direction:column;gap:6px;display:flex}.funds-panel-section-title{letter-spacing:.04em;text-transform:uppercase;color:#9a3412;padding:0 2px;font-size:.72rem;font-weight:800}.funds-asset{cursor:pointer;text-align:left;width:100%;font:inherit;color:inherit;background:#fff;border:1px solid #e2e8f0;border-radius:12px;grid-template-columns:40px 1fr auto;align-items:center;gap:10px;padding:8px 10px;transition:border-color .15s,box-shadow .15s,transform .12s;display:grid}.funds-asset:hover{border-color:#fb923c;transform:translateY(-1px);box-shadow:0 4px 14px #f973162e}.funds-asset:active{transform:translateY(0)}.funds-thumb{background:#f8fafc;border:1px solid #e2e8f0;border-radius:10px;flex-shrink:0;place-items:center;width:40px;height:40px;display:grid;overflow:hidden}.funds-thumb img{object-fit:contain;width:78%;height:78%}.funds-thumb-mask{background-color:#111;border-color:#0000;-webkit-mask-position:50%;mask-position:50%;-webkit-mask-size:70%;mask-size:70%;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}.funds-thumb-fallback{color:#fff;letter-spacing:.02em;font-size:.72rem;font-weight:800}.funds-asset-meta{flex-direction:column;gap:2px;min-width:0;display:flex}.funds-asset-name{color:#0f172a;white-space:nowrap;text-overflow:ellipsis;font-size:.86rem;font-weight:700;overflow:hidden}.funds-asset-sub{color:#64748b;font-variant-numeric:tabular-nums;align-items:center;gap:5px;font-size:.75rem;font-weight:600;display:inline-flex}.funds-asset-dot{border-radius:50%;flex-shrink:0;width:8px;height:8px}.funds-asset-action{color:#c2410c;text-transform:uppercase;letter-spacing:.03em;white-space:nowrap;font-size:.72rem;font-weight:800}.funds-panel-hint,.funds-panel-empty{color:#64748b;margin:0;font-size:.8rem;line-height:1.35}.funds-panel-trade{flex-shrink:0;justify-content:center;width:100%}.funds-raise{display:none}.auction-card .auction-bid{color:#0f766e}@media (width<=720px){.pcard-shell,.pcard-shell.has-funds{flex-direction:column;align-items:stretch;width:min(420px,96vw);max-height:min(88vh,900px);overflow:auto}.pcard-shell .pcard,.jail-modal-inner{flex:none;width:100%}.funds-panel{flex:none;width:100%;max-width:none;max-height:min(42vh,360px)}}.auction-bids{flex-wrap:wrap;gap:6px;margin:10px 0;display:flex}.auction-bids .btn{flex:auto;justify-content:center}.auction-players{flex-wrap:wrap;gap:6px;margin-top:12px;display:flex}.auction-chip{color:#334155;background:#f8fafc;border:2px solid #cbd5e1;border-radius:999px;padding:4px 8px;font-size:.75rem;font-weight:700}.auction-chip.on{background:#ecfdf5;box-shadow:0 0 0 2px #0f766e40}.auction-chip.pass{opacity:.55;text-decoration:line-through}.rent-help{margin-top:4px}.rent-mortgage-list{flex-direction:column;gap:6px;max-height:160px;margin:10px 0 12px;display:flex;overflow-y:auto}.rent-mortgage-title{text-transform:uppercase;letter-spacing:.04em;color:#6b7280;font-size:.75rem;font-weight:700}.rent-mortgage-btn{justify-content:space-between;width:100%}.rent-actions-col{flex-direction:column;align-items:stretch}@media (width<=1100px){.game-body{grid-template-columns:1fr}.players-col{flex-direction:row;max-height:none;overflow-x:auto}.player-card{min-width:170px}.side-hint{width:100%;margin-top:10px;position:static}.board{--u:min(calc((100vw - 8px) / 14.55), calc((100vh - 150px) / 9.85))}}@media (width<=640px){.heart-actions .btn{flex:calc(50% - 6px);padding:10px 8px;font-size:.8rem}.pcard-shell:not(.has-funds) .pcard{width:min(360px,96vw)}}
