:root{--ink:#19312d;--muted:#687873;--paper:#edf0ed;--card:#fffdf8;--line:#d8ddd8;--red:#ad3429;--red2:#7d211b;--jade:#176b61;--jade2:#0d4943;--gold:#d9aa4c;--shadow:0 14px 36px rgba(24,48,43,.13)}
*{box-sizing:border-box}html{font-size:16px}body{margin:0;color:var(--ink);font-family:"Microsoft YaHei UI","Noto Sans SC",system-ui,sans-serif;background:var(--paper)}button,input{font:inherit}button{cursor:pointer}button:focus-visible,input:focus-visible{outline:3px solid #f0ba48;outline-offset:2px}.hidden{display:none!important}
.app{min-height:100vh;background:radial-gradient(circle at 15% 0,#e5c66d30,transparent 25%),linear-gradient(90deg,#fff5 1px,transparent 1px),linear-gradient(#fff5 1px,transparent 1px),#e9edea;background-size:auto,30px 30px,30px 30px}.topbar{height:72px;padding:0 24px;display:flex;align-items:center;gap:18px;background:linear-gradient(105deg,#102f2b,#174c43);color:#fff;border-bottom:3px solid var(--gold);box-shadow:0 8px 24px #0c28242c;position:sticky;top:0;z-index:20}.mark{width:40px;height:40px;flex:0 0 40px;border-radius:11px;background:var(--red);display:grid;place-items:center;font:800 1.55rem STKaiti,KaiTi,serif}.brand{font:800 1.5rem STKaiti,KaiTi,serif;letter-spacing:.08em;white-space:nowrap}.topnav{display:flex;gap:4px;margin-right:auto}.navbtn{border:0;background:transparent;color:#d8e6e2;padding:10px 13px;border-radius:9px;font-weight:700}.navbtn:hover,.navbtn.active{background:#ffffff18;color:#fff}.room-pill{border:0;border-radius:11px;background:#fff;color:#173b36;padding:9px 12px;display:flex;align-items:center;gap:9px;font-size:.875rem;font-weight:800;white-space:nowrap}.dot{width:8px;height:8px;border-radius:50%;background:#2eae6c;box-shadow:0 0 0 4px #2eae6c24}
.layout{width:min(1600px,100%);margin:auto;padding:18px;display:grid;grid-template-columns:260px minmax(0,1fr) 290px;grid-template-areas:"side game action";gap:16px;align-items:start}.surface{background:var(--card);border:1px solid var(--line);border-radius:16px;box-shadow:var(--shadow)}.side{grid-area:side;padding:16px;position:sticky;top:90px}.game{grid-area:game;padding:16px;min-width:0}.right{grid-area:action;display:flex;flex-direction:column;gap:14px;position:sticky;top:90px;min-width:0}.section-title{margin:0 0 10px;color:#7c817c;font-size:.78rem;font-weight:900;letter-spacing:.14em;text-transform:uppercase}.side hr{border:0;border-top:1px solid var(--line);margin:17px 0}.mode-list,.players{display:grid;gap:8px}.mode{width:100%;border:1px solid transparent;background:transparent;border-radius:12px;padding:10px;display:grid;grid-template-columns:38px 1fr;gap:10px;align-items:center;text-align:left;color:var(--ink)}.mode:hover{background:#f1f2ee}.mode.active{background:#e6f1ed;border-color:#9dc4bb;color:var(--jade2)}.mode-icon{width:38px;height:38px;border-radius:9px;background:#e8e6df;display:grid;place-items:center;font-size:1.2rem}.mode.active .mode-icon{background:var(--jade);color:#fff}.mode strong,.mode small{display:block}.mode strong{font-size:.92rem}.mode small{font-size:.75rem;color:var(--muted);margin-top:2px}.player{width:100%;border:1px solid var(--line);background:#fff;border-radius:12px;padding:9px;display:grid;grid-template-columns:50px minmax(0,1fr) auto;gap:9px;align-items:center;text-align:left;min-height:68px}.player.active{box-shadow:inset 4px 0 var(--pc);background:#fff9ec}.avatar{width:50px;height:50px;border-radius:12px;background:#d7c99e url('/characters.png') no-repeat;background-size:200% 200%;border:2px solid #fff;box-shadow:0 3px 9px #0002}.avatar.c0{background-position:0 0}.avatar.c1{background-position:100% 0}.avatar.c2{background-position:0 100%}.avatar.c3{background-position:100% 100%}.player b,.player small{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.player b{font-size:.91rem}.player small{font-size:.73rem;color:var(--muted)}.cash{font-size:.78rem;font-weight:900;color:var(--red2)}.room-box{padding:12px;border:1px dashed #b9b9ae;border-radius:12px;background:#f8f7f1;font-size:.84rem}.room-box p{margin:5px 0 10px;color:var(--muted);font-size:.78rem}.room-actions{display:flex;gap:7px}.mini{border:1px solid #babbb4;background:#fff;color:#4d5753;border-radius:8px;padding:7px 9px;font-size:.78rem}.mini.primary{background:var(--jade);color:#fff;border-color:var(--jade)}
.game-head{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:13px}.game-head h1{margin:0;font:800 1.48rem STKaiti,KaiTi,serif}.game-head p{margin:2px 0 0;color:var(--muted);font-size:.85rem}.round{display:flex;gap:7px;flex-wrap:wrap;justify-content:flex-end}.tag{border:1px solid #d6d9d4;background:#f4f4ef;border-radius:999px;padding:6px 10px;font-size:.75rem;font-weight:800;color:#5c6762}.board{width:100%;aspect-ratio:1.32/1;min-height:0;background:#cdaa66;border:8px solid #3d2a20;border-radius:18px;padding:4px;display:grid;grid-template-columns:repeat(10,minmax(0,1fr));grid-template-rows:repeat(8,minmax(0,1fr));gap:3px;box-shadow:inset 0 0 0 3px #efd58f,0 18px 38px #192c2838;overflow:hidden;position:relative}.center{grid-area:2/2/8/10;min-width:0;min-height:0;position:relative;overflow:hidden;border-radius:9px;background:#173e38}.hero-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;filter:saturate(1.05) contrast(1.03)}.center-shade{position:absolute;inset:0;background:linear-gradient(90deg,#0a3532e8 0,#0b3734c0 42%,#0b37343b 75%,transparent)}.center-copy{position:absolute;left:6%;top:50%;transform:translateY(-50%);width:min(48%,390px);color:#fff;z-index:2}.eyebrow{color:#f2d180;font-size:.75rem;font-weight:800;letter-spacing:.16em}.center-copy h2{margin:8px 0;font:800 clamp(1.8rem,3vw,2.85rem)/1.05 STKaiti,KaiTi,serif;text-shadow:0 3px 14px #0007}.center-copy p{margin:0;color:#e1eeeb;font-size:.86rem}.photo-nav{display:flex;gap:8px;margin-top:15px}.photo-nav button{border:1px solid #fff7;background:#ffffff18;color:#fff;border-radius:8px;padding:7px 10px;font-size:.78rem}.tile{position:relative;min-width:0;min-height:0;overflow:hidden;background:#fffdf9;border-radius:6px;border-top:6px solid #c87942;padding:5px;box-shadow:inset 0 0 0 1px #0000000d;transition:.15s}.tile:hover{filter:brightness(.96);z-index:5}.tile strong,.tile small{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tile strong{font-size:clamp(.63rem,.72vw,.78rem)}.tile small{font-size:clamp(.55rem,.62vw,.68rem);color:#756f66}.tile.special{background:#fff0bd;border-top-color:#dda129}.tile.jail{background:#5c5e68;color:#fff;border-top-color:#2d2f39}.tile.jail small{color:#e1e1e1}.tile.start{background:#ba352b;color:#fff;border-top-color:#f0c75e}.tile.start small{color:#ffe9b0}.tile.current{z-index:6;animation:tilePulse 1s ease-in-out 2;box-shadow:0 0 0 3px #ffd35c,0 6px 16px #0005}.owner-dot{position:absolute;left:5px;bottom:5px;width:9px;height:9px;border-radius:50%;background:var(--owner)}.tokens{position:absolute;right:3px;bottom:3px;display:flex;gap:1px}.token{display:block;width:28px;height:28px;border-radius:50%;border:2px solid #fff;background:#d7c99e url('/characters.png') no-repeat;background-size:200% 200%;box-shadow:0 3px 7px #0005}.token.c0{background-position:0 0}.token.c1{background-position:100% 0}.token.c2{background-position:0 100%}.token.c3{background-position:100% 100%}
.dice-box{padding:17px;text-align:center}.dice-stage{height:105px;display:grid;place-items:center;perspective:500px}.dice-face{width:82px;height:82px;border-radius:17px;background:#fff;border:2px solid #e4ded1;display:grid;place-items:center;font-size:3.9rem;box-shadow:0 9px 22px #3b271c2d;transform-style:preserve-3d}.dice-face.rolling{animation:diceRoll .72s cubic-bezier(.2,.9,.25,1) infinite}.roll{width:100%;border:0;border-radius:11px;padding:13px;background:linear-gradient(135deg,var(--red),var(--red2));color:#fff;font-size:1rem;font-weight:900;box-shadow:0 7px 15px #8a241d2c}.roll:disabled{opacity:.58;cursor:not-allowed}.event{padding:18px;min-height:205px;color:#fff;background:linear-gradient(135deg,var(--jade),var(--jade2));position:relative;overflow:hidden}.event:after{content:"旅";position:absolute;right:-4px;bottom:-40px;font:7rem STKaiti,serif;opacity:.07}.event.fate{background:linear-gradient(135deg,#7c2f51,#49172e)}.event.waiting{background:linear-gradient(135deg,#6a5840,#3e3225)}.event.success{background:linear-gradient(135deg,#207a56,#114f39)}.event-label{font-size:.72rem;letter-spacing:.15em;opacity:.75}.event h3{position:relative;z-index:1;margin:9px 0 5px;font-size:1.18rem}.event p{position:relative;z-index:1;margin:0;color:#e1eeeb;font-size:.86rem}.action-panel{position:relative;z-index:2;margin-top:14px;padding-top:13px;border-top:1px solid #ffffff3b;display:grid;gap:9px}.action-line{display:flex;justify-content:space-between;gap:10px}.action-line strong{color:#ffe09a}.action-buttons{display:flex;gap:8px}.action-btn{border:1px solid #ffffff69;background:#ffffff16;color:#fff;border-radius:8px;padding:8px 10px;font-size:.82rem;font-weight:800}.action-btn.buy{background:#efc35e;color:#243a34;border-color:#efc35e}
.property-view{width:min(1220px,100%);margin:auto;padding:24px 18px}.property-hero{display:grid;grid-template-columns:1fr auto;gap:20px;align-items:center;background:#173d39;color:#fff;border-radius:18px;padding:24px;margin-bottom:15px}.property-person{display:flex;align-items:center;gap:15px}.property-person .avatar{width:72px;height:72px}.property-person h1{margin:0 0 4px;font:800 2rem STKaiti,KaiTi,serif}.property-person p{margin:0;color:#c9dcda}.stats{display:flex;gap:24px;text-align:right}.stats strong,.stats span{display:block}.stats strong{font-size:1.35rem;color:#f0cb75}.stats span{font-size:.76rem;color:#c6d6d4}.property-tabs{display:flex;gap:8px;margin-bottom:14px}.property-tabs button{border:1px solid var(--line);background:#fff;border-radius:9px;padding:8px 13px;font-weight:700}.property-tabs button.active{background:var(--red);border-color:var(--red);color:#fff}.property-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.estate{min-width:0;background:#fff;border-radius:15px;overflow:hidden;border:1px solid var(--line);box-shadow:0 8px 24px #313a3515}.estate-img{display:block;width:100%;height:175px;object-fit:cover}.estate-body{padding:14px}.estate-city{color:var(--red);font-size:.75rem;font-weight:900;letter-spacing:.1em}.estate h3{margin:5px 0 8px}.estate-row,.estate-actions{display:flex;justify-content:space-between;gap:10px;color:var(--muted);font-size:.8rem}.estate-actions{align-items:center;margin-top:11px;padding-top:11px;border-top:1px solid #e3e3dc}.property-level{display:inline-flex;gap:3px;margin-left:5px}.house{width:13px;height:10px;background:#c8382f;border-radius:2px}.upgrade{border:0;background:var(--jade);color:#fff;border-radius:8px;padding:7px 9px;font-size:.78rem;font-weight:800}.estate-empty{grid-column:1/-1;padding:50px;background:#fff;border:1px dashed #bcbdb6;border-radius:15px;text-align:center;color:var(--muted)}.credits{color:var(--muted);font-size:.72rem}.screen-toast{position:fixed;left:50%;top:92px;transform:translate(-50%,-12px);z-index:60;padding:11px 17px;background:#162f2b;color:#fff;border:1px solid #e5c36d;border-radius:11px;box-shadow:0 12px 34px #0005;opacity:0;pointer-events:none;transition:.23s;font-weight:800}.screen-toast.show{opacity:1;transform:translate(-50%,0)}
.modal{position:fixed;inset:0;z-index:50;background:#0b1716cc;display:grid;place-items:center;padding:18px}.dialog{width:min(620px,100%);background:#fffdf8;border-radius:17px;overflow:hidden;box-shadow:0 28px 80px #0007}.dialog-head{padding:18px 21px;background:#173d39;color:#fff;display:flex;justify-content:space-between}.dialog-head h2{margin:0;font:800 1.5rem STKaiti,serif}.close{width:34px;border:0;border-radius:8px;background:#ffffff18;color:#fff;font-size:1.2rem}.dialog-body{padding:21px}.room-modes{display:grid;grid-template-columns:repeat(3,1fr);gap:9px}.room-option{border:2px solid #e0e1dc;background:#fff;border-radius:12px;padding:14px;text-align:left}.room-option.selected{border-color:var(--jade);background:#eaf3f0}.room-option span{font-size:1.5rem}.room-option strong,.room-option small{display:block}.room-option small{font-size:.75rem;color:var(--muted)}.field{display:block;margin-top:17px;font-weight:800}.field input{display:block;width:100%;margin-top:6px;padding:10px;border:1px solid #c9cbc4;border-radius:9px}.dialog-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:18px}.dialog-actions button{border:1px solid #bbbdb6;background:#fff;border-radius:8px;padding:8px 13px}.dialog-actions .confirm{background:var(--red);border-color:var(--red);color:#fff;font-weight:800}
@keyframes diceRoll{0%{transform:rotateX(0) rotateY(0) scale(1)}35%{transform:rotateX(190deg) rotateY(120deg) scale(1.12)}70%{transform:rotateX(350deg) rotateY(300deg) scale(.95)}100%{transform:rotateX(540deg) rotateY(540deg) scale(1)}}@keyframes tilePulse{50%{filter:brightness(1.14);transform:scale(1.04)}}
@media(max-width:1280px){.layout{grid-template-columns:230px minmax(0,1fr);grid-template-areas:"side game" "action action"}.right{position:static;display:grid;grid-template-columns:240px minmax(0,1fr)}.event{min-height:0}.board{aspect-ratio:1.22/1}}
@media(max-width:860px){.topbar{padding:0 12px;gap:10px}.brand{font-size:1.15rem}.topnav{display:none}.room-pill{margin-left:auto;font-size:.72rem}.layout{display:flex;flex-direction:column;padding:10px}.side,.game,.right{width:100%;position:static}.side{order:1}.game{order:2}.right{order:3;display:grid;grid-template-columns:1fr}.mode-list{grid-template-columns:repeat(3,minmax(0,1fr))}.mode{display:flex;justify-content:center}.mode>span:last-child{display:none}.players{grid-template-columns:repeat(2,minmax(0,1fr))}.board{aspect-ratio:1/1}.tile{padding:3px;border-top-width:4px}.tile small{display:none}.token{width:22px;height:22px}.property-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.property-hero{grid-template-columns:1fr}.stats{text-align:left}.room-modes{grid-template-columns:1fr}}
@media(max-width:560px){.topbar{height:62px}.mark{width:34px;height:34px;flex-basis:34px}.room-pill span:last-child{max-width:145px;overflow:hidden;text-overflow:ellipsis}.players{grid-template-columns:1fr}.game-head{align-items:flex-start}.round{display:none}.board{border-width:5px;gap:2px}.tile strong{font-size:.55rem}.center-copy{width:76%;left:8%}.center-copy p{display:none}.photo-nav{margin-top:8px}.property-grid{grid-template-columns:1fr}.stats{gap:14px;flex-wrap:wrap}.estate-img{height:150px}}

/* Home screen, skill cards and richer estate details */
.home-view{position:relative;min-height:100vh;overflow:hidden;background:#0f312d;color:#fff;display:grid;align-items:center;padding:clamp(30px,6vw,90px)}.home-photo{position:absolute;inset:0;background:url('/images/shanghai.jpg') center/cover no-repeat;filter:saturate(.9)}.home-overlay{position:absolute;inset:0;background:linear-gradient(90deg,#092925f5 0,#0b2c28e8 42%,#0a2823a0 68%,#071a18b8),linear-gradient(0deg,#091d1be8,transparent 45%)}.home-content{position:relative;z-index:2;width:min(610px,100%)}.home-seal{width:58px;height:58px;border:1px solid #f0cf78;border-radius:14px;display:grid;place-items:center;background:#a83227;font:800 2rem STKaiti,serif;box-shadow:0 8px 28px #0005}.home-kicker{margin:20px 0 6px;color:#e7c568;font-weight:800;letter-spacing:.2em}.home-content h1{margin:0;font:800 clamp(3.5rem,7vw,6.8rem)/.9 STKaiti,KaiTi,serif;letter-spacing:.03em;text-shadow:0 8px 30px #0007}.home-content h1 em{font-style:normal;color:#efc869}.home-intro{width:min(520px,100%);margin:20px 0 25px;color:#dbe9e5;font-size:1.05rem}.home-modes{display:grid;grid-template-columns:repeat(3,1fr);gap:9px}.home-mode{min-width:0;border:1px solid #ffffff30;background:#ffffff10;color:#fff;border-radius:12px;padding:13px;text-align:left;backdrop-filter:blur(8px)}.home-mode.selected{border-color:#efca6b;background:#efca6b1d;box-shadow:inset 0 0 0 1px #efca6b}.home-mode b,.home-mode span{display:block}.home-mode b{font-size:.95rem}.home-mode span{margin-top:3px;color:#c5d7d2;font-size:.73rem}.start-game{margin-top:16px;border:0;border-radius:12px;background:linear-gradient(135deg,#d84936,#9d2b23);color:#fff;padding:14px 22px;font-weight:900;font-size:1.05rem;box-shadow:0 10px 28px #0005}.start-game span{margin-left:22px}.home-characters{position:absolute;right:-3%;bottom:-8%;width:min(54vw,760px);aspect-ratio:1;background:url('/characters.png') center/contain no-repeat;filter:drop-shadow(0 20px 35px #0008);z-index:1}
.skill-bar{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}.skill-card{position:relative;min-height:68px;border:1px solid #d5d7d1;border-radius:10px;padding:9px;background:linear-gradient(145deg,#fff,#f0eee5);text-align:left;color:var(--ink);overflow:hidden}.skill-card:hover{border-color:#b08b44;transform:translateY(-1px)}.skill-card b,.skill-card small{display:block}.skill-card b{font-size:.78rem}.skill-card small{font-size:.68rem;color:var(--muted)}.skill-icon{font-size:1.25rem}.skill-count{position:absolute;right:6px;top:6px;min-width:19px;height:19px;border-radius:999px;background:var(--red);color:#fff;display:grid;place-items:center;font-size:.67rem;font-weight:900}.skill-empty{grid-column:1/-1;border:1px dashed #b9bcb5;border-radius:10px;padding:12px;text-align:center;color:var(--muted);font-size:.73rem}.estate-metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin-top:11px}.metric{padding:8px;border-radius:8px;background:#f3f2ec}.metric span,.metric b{display:block}.metric span{font-size:.67rem;color:var(--muted)}.metric b{font-size:.8rem;margin-top:2px}.hotel-badge{display:inline-block;margin-left:6px;border-radius:5px;background:#713f9e;color:#fff;padding:2px 5px;font-size:.65rem}
@media(max-width:860px){.home-view{align-items:start;padding:38px 20px}.home-content{width:100%}.home-content h1{font-size:3.9rem}.home-modes{grid-template-columns:1fr}.home-characters{width:82vw;right:-18%;opacity:.48}}
.home-setup{margin-top:12px;padding:12px;border:1px solid #ffffff2e;border-radius:14px;background:#071d1ab8;backdrop-filter:blur(12px);box-shadow:0 10px 34px #0003}.setup-line{display:flex;align-items:center;justify-content:space-between;gap:14px}.setup-line>span b,.setup-line>span small{display:block}.setup-line>span b{font-size:.9rem}.setup-line>span small{margin-top:2px;color:#bcd0ca;font-size:.72rem}.count-picker{display:flex;padding:3px;border-radius:10px;background:#ffffff12}.count-picker button{min-width:52px;border:0;border-radius:8px;background:transparent;color:#d9e5e1;padding:7px 10px;font-weight:800}.count-picker button.selected{background:#efca6b;color:#17352f;box-shadow:0 3px 12px #0004}.character-picker{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;margin-top:10px}.character-choice{position:relative;min-width:0;border:1px solid #ffffff20;border-radius:11px;background:#ffffff0b;color:#fff;padding:7px;display:grid;grid-template-columns:42px minmax(0,1fr) auto;gap:8px;align-items:center;text-align:left;opacity:.64}.character-choice.selected{border-color:#efca6b;background:#efca6b16;opacity:1}.character-choice .avatar{width:42px;height:42px;border-radius:9px}.character-choice b,.character-choice small{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.character-choice b{font-size:.84rem}.character-choice small{margin-top:2px;color:#bdd0ca;font-size:.66rem}.character-choice i{width:22px;height:22px;border-radius:50%;background:#d83f31;color:#fff;display:grid;place-items:center;font-style:normal;font-size:.72rem;font-weight:900}.start-game:disabled{opacity:.48;cursor:not-allowed;filter:grayscale(.5)}
@media(max-width:860px){.home-view{min-height:100svh}.home-content h1{font-size:3.35rem}.home-intro{margin:12px 0 15px}.home-mode{padding:9px 12px}.home-mode span{display:none}.character-picker{grid-template-columns:1fr 1fr}.home-characters{display:none}}
@media(max-width:560px){.home-view{padding:22px 14px}.home-kicker{margin:12px 0 4px}.home-content h1{font-size:2.85rem}.home-modes{grid-template-columns:repeat(3,minmax(0,1fr));gap:5px}.home-mode{text-align:center;padding:8px 4px}.home-mode b{font-size:.76rem}.setup-line{align-items:flex-start;flex-direction:column;gap:8px}.count-picker{width:100%}.count-picker button{flex:1}.character-picker{grid-template-columns:1fr}.character-choice{padding:5px}.character-choice .avatar{width:36px;height:36px}.start-game{width:100%;margin-top:10px}}

/* 2026 finance-board redesign */
.layout{grid-template-columns:238px minmax(640px,1fr) 310px;gap:14px;padding-bottom:88px}.topnav{margin-right:auto}.board{aspect-ratio:1.23/1}.center{display:grid;grid-template-columns:minmax(0,.82fr) minmax(270px,1.18fr);gap:8px;padding:8px;background:#173e38}.landmark-pane{position:relative;min-width:0;min-height:0;border-radius:8px;overflow:hidden}.center-shade{background:linear-gradient(0deg,#082e2be8 0,#0a302aa0 45%,transparent 76%)}.center-copy{left:7%;right:7%;bottom:7%;top:auto;transform:none;width:auto}.center-copy h2{font-size:clamp(1.45rem,2.3vw,2.3rem)}.center-copy p{font-size:.78rem}.finance-pane{min-width:0;display:grid;grid-template-rows:auto 1fr;gap:8px}.mini-market{min-width:0;border:1px solid #ffffff22;border-radius:8px;padding:10px;background:#f8f5e9;color:var(--ink);overflow:hidden}.market-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:8px}.market-head span{font-size:.78rem;font-weight:900;letter-spacing:.08em}.market-head small{font-size:.62rem;color:var(--muted)}.lottery{display:grid;grid-template-columns:1fr auto;grid-template-areas:"head head" "balls buy";align-items:center;background:linear-gradient(135deg,#7f2523,#b54032);color:#fff}.lottery .market-head{grid-area:head}.lottery .market-head small{color:#f7d4bc}.lottery-machine{grid-area:balls;display:flex;gap:6px}.lottery-machine i{width:32px;height:32px;border-radius:50%;display:grid;place-items:center;background:#f7d466;color:#65251f;font-style:normal;font-weight:1000;box-shadow:inset 0 -4px 7px #bd792a,0 3px 8px #0005}.lottery button{grid-area:buy;border:0;border-radius:7px;padding:8px;background:#f5cd65;color:#54251d;font-size:.68rem;font-weight:900}.lottery button:disabled,.stock button:disabled{opacity:.55}.lottery.drawing .lottery-machine i{animation:lotteryBall .25s linear infinite}.lottery.drawing .lottery-machine i:nth-child(2){animation-delay:.08s}.lottery.drawing .lottery-machine i:nth-child(3){animation-delay:.16s}.lottery.winner{animation:winnerGlow .8s ease}.stocks{position:relative;background:linear-gradient(160deg,#fffdf8,#e8eee9)}.stock-list{display:grid;gap:5px}.stock{display:grid;grid-template-columns:minmax(72px,1fr) auto auto;gap:6px;align-items:center;padding:6px;border-radius:7px;background:#fff;border:1px solid #e1e3dc;position:relative;overflow:hidden}.stock:before{content:"";position:absolute;left:0;bottom:0;width:34%;height:2px;background:currentColor;animation:marketLine 2.8s ease-in-out infinite}.stock>span b,.stock>span small{display:block}.stock>span b{font-size:.69rem}.stock>span small{font-size:.58rem;color:var(--muted)}.stock-price{text-align:right}.stock-price b{font-size:.65rem!important}.stock-price small{color:inherit!important}.stock.up{color:#b2362d}.stock.down{color:#177363}.stock button{border:0;border-radius:5px;padding:5px 6px;background:#183f39;color:#fff;font-size:.58rem;font-weight:900}.stock.trade-pop{animation:tradePop .55s ease}.stocks.market-tick .stock-price{animation:priceTick .75s ease}.tile{isolation:isolate;padding:6px}.tile strong{font-size:clamp(.68rem,.78vw,.84rem);letter-spacing:.01em}.tile small{font-size:clamp(.57rem,.65vw,.72rem)}.tile.fate-tile{background:linear-gradient(145deg,#6f234b,#43142e);color:#fff;border-top-color:#e9b2cf}.tile.fate-tile small,.tile.chance-tile small{color:#f7dce9}.tile.chance-tile{background:linear-gradient(145deg,#195c75,#10374a);color:#fff;border-top-color:#72c7df}.tile.skill-tile{background:linear-gradient(145deg,#d5aa43,#8d641e);color:#fff;border-top-color:#ffe49a}.tile.skill-tile small{color:#fff2ca}.tile.parking{background:#e9f2df;border-top-color:#6e9e53}.tokens{right:2px;bottom:2px;max-width:70%;pointer-events:none;z-index:3}.token{width:22px;height:22px;flex:0 0 22px;border-width:1px;box-shadow:0 2px 5px #0005}.dice-box{position:relative;z-index:1;overflow:hidden}.dice-stage{height:92px}.dice-face{width:72px;height:72px;font-size:3.35rem;position:relative;z-index:1}.event{min-height:300px;padding:18px;display:flex;flex-direction:column;justify-content:space-between;gap:12px}.event:after{pointer-events:none}.event-top{display:flex;justify-content:space-between;position:relative;z-index:2}.event-round{font-size:.62rem;letter-spacing:.12em;opacity:.65}.event-main{position:relative;z-index:2;flex:1;display:flex;flex-direction:column;justify-content:center}.event h3{font-size:1.35rem;margin:5px 0 9px}.event p{font-size:.92rem;line-height:1.58}.event-detail{margin-top:13px;border-left:3px solid #efce77;padding:8px 10px;background:#ffffff12;border-radius:0 7px 7px 0;font-size:.78rem;line-height:1.5}.event.chance{background:linear-gradient(135deg,#17657d,#0b3c50)}.queue-step{display:inline-grid;place-items:center;width:23px;height:23px;border:1px solid #ffffff55;border-radius:50%;font-style:normal;margin-left:5px}.queue-step.active{background:#f1ca64;color:#3c2930;border-color:#f1ca64;animation:queuePulse 1s infinite}.queue-step.done{background:#ffffff26}.card-choices{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;position:relative;z-index:3}.mystery-card{min-width:0;min-height:92px;border:1px solid #f4d1e2;background:repeating-linear-gradient(45deg,#6d1d47,#6d1d47 7px,#842858 7px,#842858 14px);color:#fff;border-radius:9px;padding:8px;display:flex;flex-direction:column;align-items:center;justify-content:center;box-shadow:0 5px 10px #0003;transition:.25s}.event.chance .mystery-card{background:repeating-linear-gradient(45deg,#145b72,#145b72 7px,#1b708b 7px,#1b708b 14px)}.mystery-card:hover{transform:translateY(-5px) rotate(-1deg)}.mystery-card span,.mystery-card small{font-size:.58rem}.mystery-card>b{font-size:1.55rem}.mystery-card.revealing{animation:cardFlip .65s ease}.mystery-card.revealed{background:#fff8dd!important;color:#432e34;transform:none}.mystery-card .card-result{font-size:.72rem;line-height:1.2;margin:5px 0}.asset-dock{position:fixed;left:50%;bottom:14px;transform:translateX(-50%);z-index:30;display:flex;gap:8px;padding:7px;background:#153c37e8;border:1px solid #d6b966;border-radius:14px;box-shadow:0 12px 35px #0006;backdrop-filter:blur(14px)}.asset-dock button{border:0;border-radius:9px;background:#fffdf7;color:#173b36;padding:9px 15px;display:flex;align-items:center;gap:7px;font-size:.78rem}.asset-dock button span{width:22px;height:22px;border-radius:6px;display:grid;place-items:center;background:#ad3429;color:#fff;font-weight:900}.portfolio-grid{display:grid;grid-template-columns:1.3fr .7fr;gap:14px;margin-bottom:15px}.portfolio-box{background:#fff;border:1px solid var(--line);border-radius:15px;padding:15px;box-shadow:0 8px 24px #313a3510}.portfolio-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}.portfolio-head h2{margin:0;font:800 1.25rem STKaiti,KaiTi,serif}.portfolio-head span{color:var(--red);font-weight:900}.holdings{display:grid;grid-template-columns:repeat(2,1fr);gap:7px}.holding{display:grid;grid-template-columns:auto 1fr auto;gap:8px;padding:9px;background:#f3f5f0;border-radius:8px;font-size:.76rem}.holding span{color:var(--muted)}.tickets{display:flex;gap:7px;flex-wrap:wrap}.ticket{padding:9px 12px;background:#7f2523;color:#fff;border-radius:8px;font-weight:900;letter-spacing:.12em}.ticket b{display:block;font-size:.62rem;color:#f3d37c;letter-spacing:0}.empty-note{color:var(--muted);font-size:.8rem}.rent-scale{margin-top:9px;padding:7px;border-radius:7px;background:#efe8d7;color:var(--muted);font-size:.72rem}.rent-scale b{float:right;color:var(--red)}
@keyframes lotteryBall{50%{transform:translateY(-8px) rotate(180deg) scale(.8)}}@keyframes winnerGlow{50%{box-shadow:0 0 0 5px #f5d264,0 0 28px #ffdf66}}@keyframes marketLine{50%{width:82%}}@keyframes tradePop{50%{transform:scale(1.04);background:#fff2b5}}@keyframes priceTick{35%{transform:translateY(-7px);opacity:.2}}@keyframes queuePulse{50%{transform:scale(1.13)}}@keyframes cardFlip{50%{transform:rotateY(90deg) scale(1.08)}}
@media(max-width:1400px){.layout{grid-template-columns:220px minmax(590px,1fr) 285px}.tile strong{font-size:.68rem}.tile small{font-size:.57rem}.center{grid-template-columns:minmax(0,.78fr) minmax(250px,1.22fr)}}
@media(max-width:1180px){.layout{grid-template-columns:220px minmax(0,1fr);grid-template-areas:"side game" "action action"}.right{position:static;display:grid;grid-template-columns:230px minmax(0,1fr)}.event{min-height:230px}.board{aspect-ratio:1.16/1}}
@media(max-width:860px){.layout{display:flex}.center{grid-template-columns:1fr}.landmark-pane{min-height:42%}.finance-pane{grid-template-columns:1fr 1fr;grid-template-rows:1fr}.asset-dock{bottom:8px;width:calc(100% - 20px);justify-content:center}.asset-dock button{flex:1;justify-content:center}.portfolio-grid{grid-template-columns:1fr}.holdings{grid-template-columns:1fr}.tile strong{font-size:.58rem}.tile small{display:none}}
@media(max-width:560px){.center{padding:4px;gap:4px}.landmark-pane{display:none}.finance-pane{grid-template-columns:1fr}.stock:nth-child(n+3){display:none}.lottery{padding:6px}.lottery-machine i{width:25px;height:25px}.asset-dock b{font-size:.68rem}.event{min-height:250px}.card-choices{gap:4px}.mystery-card{min-height:82px;padding:5px}}

/* Placement corrections after responsive visual QA */
.asset-dock{left:auto;bottom:auto;transform:none;right:220px;top:10px;gap:6px;padding:5px;border-radius:12px}
@media(max-width:1400px){.layout{grid-template-columns:220px minmax(0,1fr);grid-template-areas:"side game" "action action"}.right{position:static;display:grid;grid-template-columns:230px minmax(0,1fr)}.event{min-height:230px}.board{aspect-ratio:1.18/1}}
@media(max-width:860px){.asset-dock{top:auto;right:auto;left:10px;bottom:8px;width:calc(100% - 20px);justify-content:center}.asset-dock button{flex:1;justify-content:center}}

/* Five-star lottery, live market and scenic tile atlas */
.lottery-machine{gap:4px}.lottery-machine i{width:28px;height:28px;font-size:.8rem}.lottery.drawing .lottery-machine i:nth-child(4){animation-delay:.22s}.lottery.drawing .lottery-machine i:nth-child(5){animation-delay:.29s}.market-head span{font-size:.84rem}.market-head small{font-size:.7rem}.stock{grid-template-columns:minmax(72px,1fr) 42px auto 48px;gap:5px}.stock>span b{font-size:.74rem}.stock>span small,.stock-price b,.stock-price small{font-size:.65rem!important}.trend-bars{height:25px!important;display:flex!important;align-items:flex-end;gap:2px}.trend-bars i{display:block;width:5px;height:var(--bar);min-height:3px;border-radius:2px 2px 0 0;background:currentColor;opacity:.75;animation:barRise .55s ease}.trade-actions{display:flex!important;gap:2px}.trade-actions button{min-width:22px;padding:5px 3px}.trade-actions .sell{background:#9a5b2c}.stock.trade-sell{animation:tradeSell .55s ease}.tile{color:#fff;background-image:linear-gradient(0deg,rgba(5,25,22,.9) 0,rgba(6,26,23,.56) 48%,rgba(0,0,0,.08) 100%),url('/tile-atlas-v2.png')!important;background-size:100% 100%,800% 400%!important;background-repeat:no-repeat!important;text-shadow:0 1px 3px #000,0 0 5px #000}.tile small,.tile.jail small,.tile.start small,.tile.fate-tile small,.tile.chance-tile small,.tile.skill-tile small{color:#f6f1df}.tile strong,.tile small{position:relative;z-index:2}.tile:nth-child(2){background-position:center,0 0}.tile:nth-child(3){background-position:center,14.286% 0}.tile:nth-child(4){background-position:center,28.571% 0}.tile:nth-child(5){background-position:center,42.857% 0}.tile:nth-child(6){background-position:center,57.143% 0}.tile:nth-child(7){background-position:center,71.429% 0}.tile:nth-child(8){background-position:center,85.714% 0}.tile:nth-child(9){background-position:center,100% 0}.tile:nth-child(10){background-position:center,0 33.333%}.tile:nth-child(11){background-position:center,14.286% 33.333%}.tile:nth-child(12){background-position:center,28.571% 33.333%}.tile:nth-child(13){background-position:center,42.857% 33.333%}.tile:nth-child(14){background-position:center,57.143% 33.333%}.tile:nth-child(15){background-position:center,71.429% 33.333%}.tile:nth-child(16){background-position:center,85.714% 33.333%}.tile:nth-child(17){background-position:center,100% 33.333%}.tile:nth-child(18){background-position:center,0 66.667%}.tile:nth-child(19){background-position:center,14.286% 66.667%}.tile:nth-child(20){background-position:center,28.571% 66.667%}.tile:nth-child(21){background-position:center,42.857% 66.667%}.tile:nth-child(22){background-position:center,57.143% 66.667%}.tile:nth-child(23){background-position:center,71.429% 66.667%}.tile:nth-child(24){background-position:center,85.714% 66.667%}.tile:nth-child(25){background-position:center,100% 66.667%}.tile:nth-child(26){background-position:center,0 100%}.tile:nth-child(27){background-position:center,14.286% 100%}.tile:nth-child(28){background-position:center,28.571% 100%}.tile:nth-child(29){background-position:center,42.857% 100%}.tile:nth-child(30){background-position:center,57.143% 100%}.tile:nth-child(31){background-position:center,71.429% 100%}.tile:nth-child(32){background-position:center,85.714% 100%}.tile:nth-child(33){background-position:center,100% 100%}
@keyframes barRise{from{height:3px;opacity:.2}}@keyframes tradeSell{50%{transform:scale(.96);background:#ffe0c3}}
@media(max-width:560px){.lottery-machine i{width:21px;height:21px}.stock{grid-template-columns:minmax(65px,1fr) 36px auto 44px}.trend-bars i{width:4px}}

/* Chinese voice cast and procedural soundtrack controls */
.audio-controls{display:flex;gap:6px;margin-left:auto}.audio-controls button{position:relative;border:1px solid #ffffff2e;border-radius:9px;background:#ffffff12;color:#fff;padding:7px 10px;display:flex;align-items:center;gap:6px;font-size:.75rem;font-weight:800;white-space:nowrap;transition:.2s}.audio-controls button:hover{background:#ffffff22}.audio-controls button span{width:22px;height:22px;border-radius:6px;display:grid;place-items:center;background:#d5a947;color:#173b36;font-weight:1000}.audio-controls button:not(.off) span{animation:soundPulse 1.35s ease-in-out infinite}.audio-controls button.off{opacity:.58}.audio-controls button.off span{background:#74847f;color:#fff}.asset-dock{right:430px}.player small{line-height:1.35}.player.active:after{content:'正在配音';position:absolute;right:8px;bottom:4px;color:var(--pc);font-size:.58rem;font-weight:900;opacity:.78}.player{position:relative}
@keyframes soundPulse{50%{box-shadow:0 0 0 4px #d5a94724;transform:scale(1.06)}}
@media(max-width:1180px){.audio-controls button{font-size:0;padding:6px}.audio-controls button span{font-size:.75rem}.asset-dock{right:315px}}
@media(max-width:860px){.audio-controls{margin-left:auto}.audio-controls button{display:none}.asset-dock{right:auto}.player.active:after{display:none}}

/* Local online lobby */
.online-hub{min-height:100vh;background:radial-gradient(circle at 78% 8%,#d9b95022,transparent 28%),linear-gradient(135deg,#082b27,#123f38 58%,#0a2724);color:#fff}.online-top{height:76px;padding:0 clamp(16px,4vw,56px);display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:22px;border-bottom:1px solid #ffffff18;background:#071f1caa;backdrop-filter:blur(16px);position:sticky;top:0;z-index:5}.online-top>div{display:flex;align-items:center;gap:10px}.online-seal{width:38px;height:38px;border-radius:10px;background:#b7382d;display:grid;place-items:center;font:900 1.25rem STKaiti,KaiTi,serif;border:1px solid #e7b95e}.online-back,.text-button{border:0;background:transparent;color:#d6e4df;font-weight:800}.online-content{width:min(1180px,100%);margin:auto;padding:clamp(26px,5vw,64px) clamp(16px,4vw,42px)}.online-loading{min-height:50vh;display:grid;place-items:center;color:#c9d9d4}.server-on,.server-off{font-size:.75rem;font-weight:900;padding:7px 10px;border-radius:999px;background:#2a8668}.server-off{background:#9d352c}.point-pill,.account-pill{border:1px solid #ffffff20;border-radius:999px;background:#ffffff10;color:#fff;padding:7px 11px;display:flex;align-items:center;gap:6px}.point-pill span{color:#f2cb66}.account-pill span{width:25px;height:25px;border-radius:50%;background:#b63a2f;display:grid;place-items:center;font-weight:900}.online-badge{display:inline-flex;color:#f1ce70;font-size:.72rem;letter-spacing:.13em;font-weight:900}.auth-layout{min-height:calc(100vh - 205px);display:grid;grid-template-columns:1.1fr .9fr;gap:clamp(28px,7vw,100px);align-items:center}.auth-story h1,.lobby-head h1,.room-banner h1,.shop-head h1{margin:12px 0;font:900 clamp(2.7rem,6vw,5.5rem)/.92 STKaiti,KaiTi,serif}.auth-story h1 em{font-style:normal;color:#efc968}.auth-story>p{max-width:540px;color:#bdd2cc;line-height:1.75;font-size:1rem}.auth-benefits{display:flex;flex-wrap:wrap;gap:8px;margin-top:22px}.auth-benefits span{padding:8px 12px;border:1px solid #ffffff20;border-radius:999px;color:#dbe8e4;font-size:.8rem}.auth-card,.lobby-panel,.room-controls,.points-wallet,.shop-grid article{background:#fffdf7;color:#1e312e;border-radius:18px;border:1px solid #fff3;box-shadow:0 24px 70px #0004}.auth-card{padding:25px}.auth-tabs{display:grid;grid-template-columns:1fr 1fr;background:#eceee9;padding:4px;border-radius:11px;margin-bottom:18px}.auth-tabs button{border:0;border-radius:8px;background:transparent;padding:10px;font-weight:900;color:#70807b}.auth-tabs button.active{background:#173f39;color:#fff}.auth-card label,.lobby-panel label{display:block;font-size:.82rem;font-weight:900;margin:12px 0}.auth-card input,.lobby-panel input,.lobby-panel select{width:100%;margin-top:6px;border:1px solid #cfd4ce;border-radius:9px;background:#fff;padding:11px 12px;font:inherit;color:#1f332f}.form-error{min-height:20px;margin:4px 0;color:#b4352b;font-size:.78rem}.online-primary,.online-secondary,.offline-card button{border:0;border-radius:10px;padding:11px 16px;font-weight:900}.online-primary{background:linear-gradient(135deg,#c83d31,#932a23);color:#fff}.online-secondary{background:#e8eeea;color:#173d37;border:1px solid #c8d5d0}.online-primary:disabled,.online-secondary:disabled{opacity:.42}.auth-card .online-primary{width:100%}.privacy-note{display:block;margin-top:12px;text-align:center;color:#7b8581}.offline-card{width:min(520px,100%);margin:10vh auto;padding:38px;text-align:center;border:1px solid #ffffff24;border-radius:20px;background:#ffffff0c}.offline-card>span{font-size:3rem;color:#efcc6f}.offline-card h1{font:900 2.1rem STKaiti,KaiTi,serif}.offline-card p,.offline-card small{display:block;color:#bed0cb}.offline-card code{display:block;margin:20px auto;padding:12px;background:#071a18;border-radius:8px;color:#f0ca67}.offline-card button{margin-top:20px;background:#cf4033;color:#fff}.lobby-head,.shop-head{display:flex;align-items:end;justify-content:space-between;gap:22px;margin-bottom:28px}.lobby-head h1,.shop-head h1{font-size:clamp(2.4rem,5vw,4.5rem)}.lobby-head p,.shop-head p{color:#bdd1cb}.shop-shortcut{border:1px solid #e4c360;background:#e4c360;color:#173b35;border-radius:12px;padding:12px 18px;font-weight:900}.lobby-grid{display:grid;grid-template-columns:1fr 1fr;gap:15px}.lobby-panel{padding:20px}.room-browser{grid-column:1/-1}.panel-title{display:flex;align-items:center;justify-content:space-between}.panel-title h2{margin:0;font:900 1.35rem STKaiti,KaiTi,serif}.panel-title span,.panel-title button{color:#78827e;font-size:.75rem}.panel-title button{border:0;background:transparent}.public-rooms{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:12px}.public-rooms button{border:1px solid #d9ddd7;border-radius:10px;background:#f5f6f2;padding:12px;display:flex;align-items:center;justify-content:space-between;text-align:left;color:#243834}.public-rooms b,.public-rooms small{display:block}.public-rooms small{margin-top:3px;color:#7b8581}.public-rooms i{font-style:normal;color:#a6332a;font-weight:1000;letter-spacing:.1em}.empty-room{display:block;color:#7e8984;padding:18px}.room-stage{display:grid;gap:16px}.room-banner{padding:28px;border-radius:20px;background:linear-gradient(110deg,#fffdf7,#eee6d0);color:#1c332f;display:flex;align-items:center;justify-content:space-between}.room-banner h1{font-size:clamp(2.4rem,5vw,4.4rem)}.room-banner p{margin:0;color:#687671}.room-banner p button{border:0;border-radius:8px;background:#173d37;color:#fff;padding:7px 10px;font-weight:900;letter-spacing:.08em}.room-capacity{text-align:center}.room-capacity strong,.room-capacity span{display:block}.room-capacity strong{font-size:3.5rem;color:#a73329}.room-capacity strong small{font-size:1.2rem;color:#7a847f}.seat-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.online-seat{position:relative;min-height:105px;border:1px solid #ffffff20;border-radius:15px;background:#ffffff10;padding:13px;display:grid;grid-template-columns:auto 52px 1fr auto;gap:9px;align-items:center}.online-seat.ready{border-color:#dfbd5b;background:#dfbd5b16}.online-seat .seat-number{color:#e6c866;font-weight:900}.online-seat b,.online-seat small{display:block}.online-seat small{margin-top:4px;color:#b9ccc6;font-size:.73rem}.online-seat>i{font-style:normal;background:#b1372d;border-radius:999px;padding:4px 7px;font-size:.65rem}.online-seat.empty{display:flex;justify-content:center;color:#9db1ab}.seat-pulse{width:8px;height:8px;border-radius:50%;background:#d6bd70;animation:queuePulse 1.3s infinite}.room-controls{padding:22px}.room-controls h2{margin:0 0 12px;font:900 1.35rem STKaiti,KaiTi,serif}.room-character-list{display:flex;gap:8px;flex-wrap:wrap}.room-character-list button{border:1px solid #d5d9d3;border-radius:10px;background:#f2f4f0;padding:7px 10px;display:flex;align-items:center;gap:7px;color:#263a36}.room-character-list button.selected{border-color:#ac332a;background:#f5e7e2;box-shadow:inset 0 0 0 1px #ac332a}.room-character-list button:disabled{opacity:.35}.room-character-list .avatar{width:38px;height:38px}.ready-actions{display:flex;justify-content:flex-end;align-items:center;gap:8px;margin-top:20px}.ready-actions>span{color:#75817c;font-size:.8rem}.prepared{background:#e8d39a}.points-wallet{padding:24px;margin-bottom:14px;display:flex;align-items:center;gap:20px}.points-wallet span,.points-wallet small{color:#74807b}.points-wallet strong{font-size:2rem;color:#a63329}.shop-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.shop-grid article{padding:20px;display:grid;grid-template-columns:auto 1fr;gap:14px}.shop-grid article>span{font-size:2.6rem}.shop-grid h2{margin:0;font:900 1.35rem STKaiti,KaiTi,serif}.shop-grid p{min-height:42px;color:#6e7c77;font-size:.82rem}.shop-grid small{color:#9a6f26}.shop-grid button{grid-column:1/-1;border:0;border-radius:9px;background:#173e38;color:#fff;padding:10px;font-weight:900}.shop-grid button:disabled{opacity:.4}
@media(max-width:860px){.online-top{height:auto;min-height:66px;grid-template-columns:auto 1fr;padding:10px 14px}.online-top>div:nth-child(2){display:none}.online-top>div:last-child{justify-content:flex-end}.text-button{display:none}.auth-layout{grid-template-columns:1fr;min-height:auto}.auth-story h1{font-size:3.3rem}.lobby-grid{grid-template-columns:1fr}.room-browser{grid-column:auto}.public-rooms{grid-template-columns:1fr}.seat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.shop-grid{grid-template-columns:1fr}.lobby-head,.shop-head{align-items:flex-start;flex-direction:column}.room-banner{padding:20px}.room-banner h1{font-size:2.5rem}.room-capacity strong{font-size:2.6rem}}
@media(max-width:560px){.online-top{grid-template-columns:auto 1fr}.point-pill{font-size:.7rem}.account-pill{font-size:0}.online-content{padding:22px 12px}.auth-story{display:none}.auth-card{padding:18px}.seat-grid{grid-template-columns:1fr}.online-seat{min-height:84px}.room-banner h1{font-size:2rem}.room-capacity{display:none}.room-controls{padding:15px}.room-character-list{display:grid;grid-template-columns:1fr 1fr}.ready-actions{display:grid;grid-template-columns:1fr 1fr}.ready-actions .online-primary{grid-column:1/-1}.points-wallet{align-items:flex-start;flex-direction:column;gap:5px}.shop-grid article{padding:16px}}

/* 2026 profile, balanced cast, color districts and compact board redesign */
:root{--ink:#19243b;--muted:#6b7284;--paper:#f3f0e8;--card:#fffdf8;--line:#d9d8d1;--red:#d34b3f;--red2:#a42d32;--jade:#087f75;--jade2:#075755;--gold:#f0bd4c;--shadow:0 16px 42px rgba(25,36,59,.13)}
.app{background:radial-gradient(circle at 12% 0,#f7c95130,transparent 26%),radial-gradient(circle at 88% 20%,#51c8bb22,transparent 30%),#f1eee6}.topbar{background:linear-gradient(110deg,#17223c,#08766e 63%,#0b5e75);border-bottom-color:#f1bd4b}.layout{grid-template-columns:224px minmax(650px,1fr) 300px;gap:12px}.side{padding:14px}.game{padding:14px}.board{aspect-ratio:1.2/1;border-color:#29324a;background:#e4b94e;box-shadow:inset 0 0 0 3px #fff1ae,0 18px 42px #19243b35}.center{grid-template-columns:minmax(180px,.56fr) minmax(340px,1.44fr);gap:7px;padding:7px;background:linear-gradient(145deg,#18263d,#075d59)}.landmark-pane .hero-img{filter:saturate(1.08) contrast(1.05)}.center-copy h2{font-size:clamp(1.2rem,1.8vw,1.8rem)}.center-copy p{font-size:.72rem}.finance-pane{grid-template-rows:auto 1fr}.tile{border-top-width:7px}.tile[data-group="黄"]{border-top-color:#f5c542}.tile[data-group="红"]{border-top-color:#ef5b5b}.tile[data-group="绿"]{border-top-color:#47b66f}.tile[data-group="蓝"]{border-top-color:#407ee8}.tile[data-group="青"]{border-top-color:#27c2c4}.tile[data-group="橙"]{border-top-color:#f08a35}.tile[data-group="紫"]{border-top-color:#9a5dd8}.tile[data-group="粉"]{border-top-color:#ef70ae}.group-mark{position:absolute;right:3px;top:2px;z-index:4;display:grid;place-items:center;width:18px;height:18px;border-radius:50%;background:var(--group);color:#17223c;text-shadow:none;font-style:normal;font-size:.58rem;font-weight:1000;border:1px solid #ffffffba;box-shadow:0 2px 5px #0004}.avatar.c4,.avatar.c5,.avatar.c6,.avatar.c7,.token.c4,.token.c5,.token.c6,.token.c7{background-image:none!important;background-color:var(--pc,#f2d27a)!important;background-position:center!important;display:grid;place-items:center;text-shadow:none}.avatar.c4,.avatar.c5,.avatar.c6,.avatar.c7{font-size:1.75rem}.token.c4,.token.c5,.token.c6,.token.c7{font-size:.9rem}.character-choice .avatar.c4,.character-choice .avatar.c5,.character-choice .avatar.c6,.character-choice .avatar.c7{font-size:1.35rem}.account-avatar{width:30px!important;height:30px!important;border-radius:50%!important;font-size:1rem!important;box-shadow:none}.account-pill{border-radius:13px;padding:5px 9px;text-align:left}.account-pill>span:last-child{width:auto;height:auto;background:none;display:block}.account-pill b,.account-pill small{display:block}.account-pill small{color:#c7d7dd;font-size:.6rem;margin-top:1px}.lobby-shortcuts{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}.shop-shortcut{background:#fffdf7;border-color:#ffffff55;color:#203047}.room-controls h2 small{font:500 .72rem system-ui;color:#79847f;margin-left:7px}.room-character-list button{flex-direction:column;min-width:92px;padding:9px}.room-character-list button small{font-size:.62rem;color:#7b817e}.room-character-list .avatar{width:46px;height:46px}.online-seat .avatar{width:52px;height:52px}.online-seat .avatar.c4,.online-seat .avatar.c5,.online-seat .avatar.c6,.online-seat .avatar.c7{font-size:1.55rem}
.profile-shell{display:grid;gap:16px}.profile-hero{position:relative;overflow:hidden;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:22px;padding:28px;border-radius:22px;background:linear-gradient(120deg,#fffdf8,#e9f4ef);color:#1c2d3f;box-shadow:0 22px 65px #0003}.profile-hero:after{content:'游';position:absolute;right:22%;bottom:-55px;color:#087f7510;font:900 10rem STKaiti,KaiTi,serif}.profile-avatar .avatar{width:104px;height:104px;border-radius:25px;box-shadow:0 12px 30px #17223c25}.profile-avatar .avatar.c4,.profile-avatar .avatar.c5,.profile-avatar .avatar.c6,.profile-avatar .avatar.c7{font-size:3.7rem}.profile-hero h1{margin:5px 0;font:900 2.7rem STKaiti,KaiTi,serif}.profile-hero p{margin:0 0 10px;color:#68727b}.profile-hero strong,.profile-hero small{display:block}.profile-hero strong{color:#b63734}.profile-hero small{margin-top:3px;color:#6f7976}.profile-points{position:relative;z-index:2;text-align:right;color:#c03f38;font-size:1.1rem}.profile-points b,.profile-points span{display:block}.profile-points b{font-size:2.8rem}.profile-points span{color:#707b78;font-size:.72rem}.profile-grid{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(240px,.5fr);gap:15px}.profile-card,.profile-side>section{background:#fffdf8;color:#1d2e3f;border-radius:18px;padding:22px;box-shadow:0 14px 40px #0002}.profile-card label{display:block;font-weight:900;font-size:.8rem;margin:12px 0}.profile-card input{width:100%;margin-top:6px;border:1px solid #cfd4d2;border-radius:10px;padding:11px;background:#fff}.profile-card h3{margin:20px 0 10px}.profile-character-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.profile-character-list button{position:relative;min-width:0;border:1px solid #daddd8;border-radius:13px;background:#f4f5f1;padding:10px;display:grid;grid-template-columns:52px 1fr;gap:10px;align-items:center;text-align:left;color:#243548}.profile-character-list button.selected{border-color:#d4473d;background:#fff1e9;box-shadow:inset 0 0 0 1px #d4473d}.profile-character-list .avatar{width:52px;height:52px}.profile-character-list span b,.profile-character-list span small,.profile-character-list span em{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.profile-character-list span small{font-size:.7rem;color:#747d7a}.profile-character-list span em{margin-top:3px;color:#a03c39;font-size:.63rem;font-style:normal}.profile-character-list>button>i{position:absolute;right:7px;top:6px;font-style:normal;color:#77807d;font-size:.58rem}.profile-side{display:flex;flex-direction:column;gap:12px}.profile-side h2{margin:0 0 12px;font:900 1.25rem STKaiti,KaiTi,serif}.stat-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}.stat-cards div{padding:10px 5px;border-radius:9px;background:#edf2ee;text-align:center}.stat-cards b,.stat-cards span{display:block}.stat-cards b{font-size:1.35rem;color:#c44138}.stat-cards span{font-size:.62rem;color:#727d79}.profile-inventory{display:grid;gap:6px}.profile-inventory span{display:flex;justify-content:space-between;padding:9px;border-radius:8px;background:#f2efe6;font-size:.76rem}.profile-side>.online-secondary{width:100%}
.minigame-shell{min-height:calc(100vh - 210px);display:grid;grid-template-columns:.75fr 1.25fr;gap:35px;align-items:center}.minigame-copy h1{margin:10px 0;font:900 clamp(3rem,6vw,5.4rem)/.92 STKaiti,KaiTi,serif}.minigame-copy p{color:#c3d5d0;line-height:1.7}.minigame-meta{display:flex;gap:8px;flex-wrap:wrap;margin:18px 0}.minigame-meta span{padding:9px 12px;border:1px solid #ffffff24;border-radius:999px;font-size:.75rem}.fortune-stage{min-height:470px;padding:38px;border-radius:28px;background:radial-gradient(circle at 50% 34%,#ffe5a3,#f2bd47 28%,#bd3d35 29%,#7b2028 72%);display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;box-shadow:0 30px 90px #0005}.dice-cup{position:relative;width:180px;height:180px;border-radius:50% 50% 38% 38%;background:linear-gradient(145deg,#d94b3f,#821b29);border:5px solid #f4c65b;box-shadow:inset 0 -18px 25px #541523,0 18px 38px #0004;display:grid;place-items:center}.dice-cup span{position:absolute;top:16px;color:#f7d97c;font:900 1.8rem STKaiti,KaiTi,serif}.dice-cup i{font-style:normal;font-size:5rem;color:#fff;margin-top:32px}.fortune-result{color:#fff}.fortune-result h2{margin:22px 0 4px;font:900 2rem STKaiti,KaiTi,serif}.fortune-result p{margin:0}.fortune-result small{display:block;margin-top:5px;color:#f9d8b4}.guess-actions{display:flex;gap:10px;margin-top:22px}.guess-actions button{border:2px solid #f8d06b;border-radius:12px;background:#fff9e9;color:#7d2429;padding:12px 25px;font-weight:1000}.fortune-stage.shaking .dice-cup{animation:cupShake .12s linear infinite}.fortune-stage.revealed .dice-cup{animation:diceReveal .65s cubic-bezier(.2,.9,.2,1)}
.estate{border-top:6px solid var(--group-color,var(--jade))}.estate-group{display:inline-block;margin-right:7px;padding:3px 6px;border-radius:999px;background:var(--group-color,var(--jade));color:#17223c;letter-spacing:0;font-size:.62rem}.talent-note{color:#f0cd72}.level-roadmap{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:4px;margin-top:13px;padding-top:12px;border-top:1px solid #e4e3dd}.level-roadmap>div{min-width:0;padding:6px 3px;border-radius:7px;background:#f1f2ee;text-align:center}.level-roadmap>div.active{background:color-mix(in srgb,var(--group-color,var(--jade)) 27%,#fff);box-shadow:inset 0 0 0 1px var(--group-color,var(--jade))}.level-roadmap i,.level-roadmap span,.level-roadmap b,.level-roadmap small{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.level-roadmap i{width:19px;height:19px;margin:auto;border-radius:50%;background:#26364b;color:#fff;font-style:normal;font-size:.65rem;line-height:19px}.level-roadmap span{margin-top:3px;font-size:.62rem}.level-roadmap b{color:#aa3834;font-size:.63rem}.level-roadmap small{font-size:.53rem;color:#747d79}
.district-overview{display:grid;grid-template-columns:210px 1fr;gap:14px;align-items:center;margin:0 0 14px;padding:15px;border-radius:15px;background:#192842;color:#fff}.district-overview h2{margin:0;font:900 1.3rem STKaiti,KaiTi,serif}.district-overview p{margin:4px 0 0;color:#bfcbd1;font-size:.7rem;line-height:1.45}.district-list{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:5px}.district-progress{display:grid;grid-template-columns:auto 1fr;gap:6px;align-items:center;padding:6px;border-radius:8px;background:#ffffff0d;border:1px solid #ffffff18}.district-progress>i{width:25px;height:25px;border-radius:50%;display:grid;place-items:center;background:var(--district);color:#17223c;font-style:normal;font-size:.65rem;font-weight:1000}.district-progress b,.district-progress small{display:block}.district-progress b{font-size:.65rem}.district-progress small{color:#b9c6cb;font-size:.55rem}.district-progress.complete{background:color-mix(in srgb,var(--district) 27%,#192842);border-color:var(--district)}
@keyframes cupShake{25%{transform:translateX(-7px) rotate(-3deg)}75%{transform:translateX(7px) rotate(3deg)}}@keyframes diceReveal{0%{transform:scale(.7) rotate(-16deg)}70%{transform:scale(1.1) rotate(4deg)}}
@media(max-width:1400px){.layout{grid-template-columns:210px minmax(0,1fr)}.center{grid-template-columns:minmax(160px,.5fr) minmax(310px,1.5fr)}}
@media(max-width:860px){.center{grid-template-columns:minmax(140px,.45fr) minmax(250px,1.55fr)}.lobby-shortcuts{justify-content:flex-start}.profile-hero{grid-template-columns:auto 1fr}.profile-points{grid-column:1/-1;text-align:left;display:flex;align-items:center;gap:8px}.profile-points b,.profile-points span{display:inline}.profile-grid,.minigame-shell{grid-template-columns:1fr}.profile-character-list{grid-template-columns:1fr}.fortune-stage{min-height:390px}.level-roadmap{grid-template-columns:repeat(5,minmax(54px,1fr));overflow-x:auto}.district-overview{grid-template-columns:1fr}.district-list{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:560px){.account-pill>span:last-child{display:none}.lobby-shortcuts{display:grid;grid-template-columns:1fr 1fr}.lobby-shortcuts .shop-shortcut:last-child{grid-column:1/-1}.center{grid-template-columns:1fr}.profile-hero{padding:18px;gap:12px}.profile-avatar .avatar{width:72px;height:72px}.profile-hero h1{font-size:2rem}.profile-hero small{display:none}.profile-card{padding:15px}.minigame-shell{gap:18px}.minigame-copy h1{font-size:3.3rem}.fortune-stage{padding:24px 12px}.dice-cup{width:150px;height:150px}}

/* Final streamlined game table */
.home-photo{background-image:url('/shanghai.jpg')}.group-mark{display:none}.tile{background-image:none!important;background-color:#fffdf7!important;color:#202d3a!important;text-shadow:none!important;border-left:1px solid #d8d9d4}.tile.special,.tile.fate-tile,.tile.chance-tile,.tile.skill-tile,.tile.jail,.tile.start,.tile.parking{color:#fff!important}.tile.fate-tile{background:#6d2850!important}.tile.chance-tile{background:#17647a!important}.tile.skill-tile{background:#9a6b1f!important}.tile.jail{background:#454b5b!important}.tile.start{background:#b83c35!important}.tile.parking{background:#4a8054!important}.tile small{color:#6a7378!important}.tile.special small,.tile.fate-tile small,.tile.chance-tile small,.tile.skill-tile small,.tile.jail small,.tile.start small,.tile.parking small{color:#f4f2e8!important}.side>.section-title:first-child,.side>.mode-list,.side>.room-box{display:none}.side>.mode-list+hr{display:none}.center{grid-template-columns:minmax(210px,.7fr) minmax(330px,1.3fr);background:#172940}.landmark-pane{border:1px solid #ffffff24}.center-shade{background:linear-gradient(0deg,#071a2edb,transparent 58%)}.center-copy{bottom:5%}.center-copy .eyebrow,.center-copy p{display:none}.center-copy h2{margin:0;font-size:1.35rem}.photo-nav{margin-top:8px}.photo-nav button{padding:5px 8px}.event{min-height:330px;background:linear-gradient(145deg,#172940,#0a6d69);padding:18px}.event:after{content:'结';right:8px;bottom:-30px}.event-top{align-items:flex-start}.event-room{display:block;margin-top:5px;font-size:1rem}.event-main{justify-content:flex-start;padding:22px 0 12px}.event-main h3{font-size:1.55rem}.event-main p{font-size:.9rem}.event-ledger{position:relative;z-index:2;display:grid;grid-template-columns:repeat(3,1fr);gap:6px;padding-top:12px;border-top:1px solid #ffffff2b}.event-ledger span{padding:8px;border-radius:8px;background:#ffffff10}.event-ledger small,.event-ledger b{display:block}.event-ledger small{font-size:.62rem;color:#bcd3d1}.event-ledger b{margin-top:2px;color:#ffe08b;font-size:.82rem}.event .action-panel{margin-top:5px}.lottery .market-head small{font-size:0}.lottery .market-head small:after{content:'¥100 / 注 · 低概率中奖';font-size:.7rem}
@media(min-width:1000px) and (max-width:1400px){.layout{grid-template-columns:205px minmax(600px,1fr) 260px;grid-template-areas:'side game action';gap:12px;padding:14px}.right{grid-area:action;position:sticky;top:88px;display:flex}.board{aspect-ratio:1.14/1}.event{min-height:330px}.asset-dock{right:345px}}
@media(max-width:999px){.side>.section-title:first-child,.side>.mode-list{display:block}.center{grid-template-columns:minmax(170px,.55fr) minmax(280px,1.45fr)}.event{min-height:250px}.event-main{padding:12px 0}}
@media(max-width:560px){.center{grid-template-columns:1fr}.landmark-pane{display:block;min-height:115px}.center-copy h2{font-size:1rem}.photo-nav{display:none}.tile small{display:none}.event-ledger span{padding:6px}}
.home-photo{background-image:url('/images/shanghai.jpg?v=final')}.center{grid-template-columns:minmax(0,.62fr) minmax(0,1.38fr)}
@media(max-width:560px){.center{grid-template-columns:1fr}}

/* Clearer game motion and remote property management. */
#dice.dice-face{position:relative;font-size:0;background:linear-gradient(145deg,#fffefc,#e6d6b8);border:2px solid #f7e5bd;box-shadow:inset -9px -9px 16px #b5946145,inset 5px 5px 12px #fff,0 16px 20px #12142c55;transform:rotateX(-13deg) rotateY(15deg);transition:transform .55s cubic-bezier(.15,.9,.2,1),box-shadow .3s}
#dice.dice-face::before{content:'⚄';position:absolute;inset:0;display:grid;place-items:center;font-size:3.25rem;line-height:1;color:#a33338;text-shadow:0 2px 1px #fff}
#dice[data-face="1"]::before{content:'⚀'}#dice[data-face="2"]::before{content:'⚁'}#dice[data-face="3"]::before{content:'⚂'}#dice[data-face="4"]::before{content:'⚃'}#dice[data-face="5"]::before{content:'⚄'}#dice[data-face="6"]::before{content:'⚅'}
#dice.dice-face::after{content:'';position:absolute;top:10px;right:-13px;width:13px;height:calc(100% - 9px);background:linear-gradient(90deg,#bea47b,#8f6e4d);clip-path:polygon(0 0,100% 15%,100% 85%,0 100%);filter:drop-shadow(3px 4px 2px #0003)}
#dice.dice-face.rolling{animation:diceTossPlus .9s cubic-bezier(.4,.02,.35,1) infinite}
#dice.dice-face.landing{animation:diceBouncePlus .65s ease-out}
@keyframes diceTossPlus{0%{transform:translateY(0) rotateX(0) rotateY(0) rotateZ(0)}45%{transform:translateY(-22px) rotateX(290deg) rotateY(220deg) rotateZ(30deg)}100%{transform:translateY(0) rotateX(720deg) rotateY(540deg) rotateZ(0)}}
@keyframes diceBouncePlus{0%{transform:translateY(-20px) rotateX(70deg) scale(.86)}48%{transform:translateY(4px) rotateX(-18deg) scale(1.13)}100%{transform:rotateX(-13deg) rotateY(15deg) scale(1)}}
.tile.current{animation:tileArrivePlus .55s ease-out}.mystery-card.revealing{animation:cardFlipPlus .72s cubic-bezier(.2,.8,.2,1)}
@keyframes tileArrivePlus{0%{filter:brightness(1);transform:scale(.92)}55%{filter:brightness(1.45);transform:scale(1.08)}100%{filter:brightness(1);transform:scale(1)}}
@keyframes cardFlipPlus{0%{transform:rotateY(0)}48%{transform:rotateY(90deg) scale(1.1)}100%{transform:rotateY(360deg)}}
.remote-upgrade{width:100%;margin-top:10px;border:1px solid #d7a94e;border-radius:10px;background:linear-gradient(130deg,#fff2c7,#f2d584);color:#633720;padding:10px 12px;font-weight:900;text-align:left;box-shadow:0 4px 14px #8f603128}.remote-upgrade small{display:block;margin-top:3px;font-size:.72rem;font-weight:500}.remote-upgrade:disabled{opacity:.45;cursor:not-allowed}
.skill-icon{font-size:.88rem;font-weight:900}.action-btn.buy,.stock button{box-shadow:inset 0 1px #fff6,0 3px 8px #15183022}.action-btn.buy:active,.stock button:active{transform:translateY(2px);box-shadow:inset 0 2px 5px #0003}

.rule-settings{display:flex;align-items:center;gap:7px;flex-wrap:wrap;margin-top:12px;padding:10px 12px;border:1px solid #ffffff2b;border-radius:12px;background:#071d1a6e;backdrop-filter:blur(10px)}.rule-settings span{font-size:.78rem;font-weight:900;color:#eed789;margin-left:5px}.rule-settings button{border:1px solid #ffffff35;border-radius:999px;background:#ffffff0e;color:#eaf4f1;padding:7px 11px;font-size:.76rem;font-weight:800}.rule-settings button.selected{background:#edc968;color:#233b36;border-color:#edc968}.stock>span:first-child small{white-space:normal;line-height:1.2}.trade-actions button{min-width:42px}.event .action-buttons{flex-wrap:wrap}
.lottery .market-head small{font-size:.7rem!important}.lottery .market-head small:after{content:none!important}
.player.in-jail{filter:saturate(.45);box-shadow:inset 4px 0 #596171}.player.in-jail:after{content:'监狱停业';font-size:.65rem;color:#8c3e47;font-weight:900}
@media(max-width:700px){.rule-settings{gap:5px;padding:8px}.rule-settings span{width:auto}.rule-settings button{padding:6px 8px}.asset-dock{bottom:7px;width:calc(100% - 16px);justify-content:center}.asset-dock button{flex:1;justify-content:center}.right{position:relative}.portfolio-grid{grid-template-columns:1fr}.stock:nth-child(n+3){display:grid}}

/* Full six-sided dice model */
.dice-stage{perspective:760px;overflow:visible}
#dice.dice-face{width:66px;height:66px;border:0;border-radius:0;background:none;box-shadow:none;transform-style:preserve-3d;transition:transform .7s cubic-bezier(.16,.9,.18,1);will-change:transform}
#dice.dice-face::before,#dice.dice-face::after{content:none}
.cube-side{position:absolute;inset:0;display:grid;grid-template:repeat(3,1fr)/repeat(3,1fr);padding:9px;border:1px solid #d9c69f;border-radius:14px;background:linear-gradient(145deg,#fffdf7 0%,#f2e6cf 62%,#ccb184 100%);box-shadow:inset 5px 5px 10px #fff,inset -7px -8px 12px #9f815033,0 2px 3px #281c1038;backface-visibility:hidden}
.cube-side i{width:11px;height:11px;border-radius:50%;align-self:center;justify-self:center;background:radial-gradient(circle at 34% 28%,#e9665e 0 12%,#a8262c 38%,#5d1018 100%);box-shadow:inset 1px 1px 2px #fff7,0 1px 2px #3a141488}
.cube-front{transform:translateZ(33px)}.cube-back{transform:rotateY(180deg) translateZ(33px)}.cube-right{transform:rotateY(90deg) translateZ(33px)}.cube-left{transform:rotateY(-90deg) translateZ(33px)}.cube-top{transform:rotateX(90deg) translateZ(33px)}.cube-bottom{transform:rotateX(-90deg) translateZ(33px)}
.cube-front i{grid-area:2/2}.cube-back i:nth-child(1),.cube-bottom i:nth-child(1){grid-area:1/1}.cube-back i:nth-child(2),.cube-bottom i:nth-child(2){grid-area:1/3}.cube-back i:nth-child(3){grid-area:2/1}.cube-back i:nth-child(4){grid-area:2/3}.cube-back i:nth-child(5),.cube-bottom i:nth-child(4){grid-area:3/1}.cube-back i:nth-child(6),.cube-bottom i:nth-child(5){grid-area:3/3}.cube-right i:nth-child(1){grid-area:1/1}.cube-right i:nth-child(2),.cube-bottom i:nth-child(3){grid-area:2/2}.cube-right i:nth-child(3){grid-area:3/3}.cube-left i:nth-child(1),.cube-top i:nth-child(1){grid-area:1/1}.cube-left i:nth-child(2){grid-area:1/3}.cube-left i:nth-child(3){grid-area:3/1}.cube-left i:nth-child(4),.cube-top i:nth-child(2){grid-area:3/3}
#dice[data-face="1"]{transform:rotateX(-8deg) rotateY(10deg)}#dice[data-face="2"]{transform:rotateX(-90deg) rotateZ(-8deg)}#dice[data-face="3"]{transform:rotateY(-90deg) rotateX(8deg)}#dice[data-face="4"]{transform:rotateY(90deg) rotateX(-8deg)}#dice[data-face="5"]{transform:rotateX(90deg) rotateZ(8deg)}#dice[data-face="6"]{transform:rotateY(180deg) rotateZ(-8deg)}
#dice.dice-face.rolling{animation:diceCubeToss .82s cubic-bezier(.32,.01,.35,1) infinite}#dice.dice-face.landing{animation:diceCubeLand .66s ease-out}
@keyframes diceCubeToss{0%{transform:translate3d(0,7px,0) rotateX(12deg) rotateY(0) rotateZ(0)}42%{transform:translate3d(4px,-30px,18px) rotateX(310deg) rotateY(225deg) rotateZ(76deg)}100%{transform:translate3d(-2px,5px,0) rotateX(720deg) rotateY(540deg) rotateZ(180deg)}}
@keyframes diceCubeLand{0%{transform:translateY(-23px) rotateX(110deg) rotateY(75deg) scale(.88)}48%{transform:translateY(6px) rotateX(-16deg) rotateY(20deg) scale(1.1)}75%{transform:translateY(-3px) rotateX(7deg) rotateY(-7deg) scale(.98)}100%{transform:translateY(0) scale(1)}}

/* World edition: stable classic tabletop die. It never relies on backface visibility. */
.dice-stage{height:108px;overflow:visible;perspective:none}
#dice.classic-die{display:grid!important;grid-template:repeat(3,1fr)/repeat(3,1fr);place-items:center;width:76px;height:76px;padding:10px;box-sizing:border-box;border:2px solid #ded6c7;border-radius:17px;background:linear-gradient(145deg,#fff 4%,#f8f4ec 64%,#ddd4c4);box-shadow:inset 4px 4px 7px #fff,inset -6px -7px 10px #bdb2a25c,0 13px 22px #1b292544;transform:rotate(-3deg);transform-origin:center;position:relative;z-index:4;opacity:1!important;visibility:visible!important}
#dice.classic-die::after{content:"";position:absolute;inset:5px;border:1px solid #ffffffaa;border-radius:12px;pointer-events:none}
#dice .pip{display:none;width:12px;height:12px;border-radius:50%;background:radial-gradient(circle at 35% 30%,#f46a5e,#ad2423 56%,#6f1010);box-shadow:inset 1px 1px 2px #ffaaa0,0 1px 2px #5e151566}
#dice .p1{grid-area:1/1}#dice .p2{grid-area:1/2}#dice .p3{grid-area:1/3}#dice .p4{grid-area:2/1}#dice .p5{grid-area:2/2}#dice .p6{grid-area:2/3}#dice .p7{grid-area:3/1}#dice .p8{grid-area:3/2}#dice .p9{grid-area:3/3}
#dice[data-face="1"] .p5,#dice[data-face="2"] .p1,#dice[data-face="2"] .p9,#dice[data-face="3"] .p1,#dice[data-face="3"] .p5,#dice[data-face="3"] .p9,#dice[data-face="4"] .p1,#dice[data-face="4"] .p3,#dice[data-face="4"] .p7,#dice[data-face="4"] .p9,#dice[data-face="5"] .p1,#dice[data-face="5"] .p3,#dice[data-face="5"] .p5,#dice[data-face="5"] .p7,#dice[data-face="5"] .p9,#dice[data-face="6"] .p1,#dice[data-face="6"] .p3,#dice[data-face="6"] .p4,#dice[data-face="6"] .p6,#dice[data-face="6"] .p7,#dice[data-face="6"] .p9{display:block}
#dice.classic-die.rolling{animation:classicDiceToss .72s cubic-bezier(.25,.8,.25,1) infinite!important}#dice.classic-die.landing{animation:classicDiceLand .52s ease-out!important}
@keyframes classicDiceToss{0%{transform:translateY(2px) rotate(-3deg) scale(1)}38%{transform:translateY(-25px) rotate(155deg) scale(1.08)}72%{transform:translateY(-8px) rotate(292deg) scale(.96)}100%{transform:translateY(2px) rotate(357deg) scale(1)}}
@keyframes classicDiceLand{0%{transform:translateY(-20px) rotate(28deg) scale(.9)}55%{transform:translateY(5px) rotate(-7deg) scale(1.09)}78%{transform:translateY(-3px) rotate(3deg) scale(.98)}100%{transform:rotate(-3deg) scale(1)}}

.world-map-picker{display:grid;grid-template-columns:repeat(3,1fr);gap:9px;margin:17px 0 13px}.world-map-picker button{border:1px solid #ffffff40;border-radius:13px;padding:11px 12px;background:#071f1bbb;color:#fff;text-align:left;transition:.2s}.world-map-picker button:hover{transform:translateY(-2px);border-color:#efd278}.world-map-picker button.selected{background:linear-gradient(145deg,var(--world-accent,#8f2923),#102c28);border-color:#f2cf70;box-shadow:0 0 0 2px #f2cf7030}.world-map-picker b,.world-map-picker span{display:block}.world-map-picker b{font-size:.9rem}.world-map-picker span{margin-top:4px;font-size:.64rem;color:#d7dfda}.home-content{width:min(650px,91vw)}
body[data-world-map="usa"] .landmark-pane{background:linear-gradient(145deg,#173b65,#9f2936)}body[data-world-map="uk"] .landmark-pane{background:linear-gradient(145deg,#243969,#6d274d)}body[data-world-map="usa"] .landmark-pane:before,body[data-world-map="uk"] .landmark-pane:before{position:absolute;right:7%;top:7%;z-index:2;font-size:3rem;filter:drop-shadow(0 5px 9px #0005)}body[data-world-map="usa"] .landmark-pane:before{content:"🇺🇸"}body[data-world-map="uk"] .landmark-pane:before{content:"🇬🇧"}
@media(max-width:700px){.world-map-picker{grid-template-columns:1fr}.world-map-picker button{padding:9px 11px}.world-map-picker span{display:none}}

/* Country editions have their own board materials, lighting and accent system. */
body[data-world-map="china"]{--jade:#174d44;--jade2:#0e3a34;--red:#a52f26;--red2:#7d201c;--paper:#edf1e9}
body[data-world-map="usa"]{--jade:#173a63;--jade2:#0a2544;--red:#b32436;--red2:#7c1726;--paper:#edf2f8;background-color:#dfe8f3}
body[data-world-map="uk"]{--jade:#323b6d;--jade2:#20264d;--red:#8d2749;--red2:#5c1833;--paper:#eeeaf3;background-color:#e8e3ee}
body[data-world-map="usa"] .board{border-color:#d7c485;background:#152f50}body[data-world-map="uk"] .board{border-color:#b8a883;background:#24294c}
body[data-world-map="usa"] .topbar{background:linear-gradient(90deg,#112f52,#8b2030)}body[data-world-map="uk"] .topbar{background:linear-gradient(90deg,#20284f,#61203d)}
body[data-world-map="usa"] .finance-pane{background:#e9eff6}body[data-world-map="uk"] .finance-pane{background:#eee9f2}
body[data-world-map="usa"] .home-photo{background-image:url('/images/world/new-york-ai.png');filter:saturate(.9) contrast(1.05)}body[data-world-map="uk"] .home-photo{background-image:url('/images/world/london-ai.png');filter:saturate(.86) contrast(1.08)}

.dice-stage{display:flex;align-items:center;justify-content:center;gap:14px;height:112px}.classic-die{display:grid!important;grid-template:repeat(3,1fr)/repeat(3,1fr);place-items:center;width:68px;height:68px;padding:9px;box-sizing:border-box;border:2px solid #d8d5cf;border-radius:14px;background:linear-gradient(145deg,#fff,#f5f3ed 62%,#d6d1c8);box-shadow:inset 4px 4px 7px #fff,inset -6px -7px 10px #aaa4a05c,0 12px 19px #14201e3d;position:relative;z-index:4;opacity:1!important;visibility:visible!important;transform:rotate(-7deg)}.classic-die.second-die{transform:rotate(8deg);margin-top:12px}.classic-die::after{content:"";position:absolute;inset:5px;border:1px solid #ffffffd0;border-radius:9px;pointer-events:none}.classic-die .pip{display:none;width:11px;height:11px;border-radius:50%;background:radial-gradient(circle at 35% 30%,#4b4b4b,#151515 60%,#000);box-shadow:inset 1px 1px 2px #777,0 1px 2px #0005}.classic-die .p1{grid-area:1/1}.classic-die .p2{grid-area:1/2}.classic-die .p3{grid-area:1/3}.classic-die .p4{grid-area:2/1}.classic-die .p5{grid-area:2/2}.classic-die .p6{grid-area:2/3}.classic-die .p7{grid-area:3/1}.classic-die .p8{grid-area:3/2}.classic-die .p9{grid-area:3/3}
.classic-die[data-face="1"] .p5,.classic-die[data-face="2"] .p1,.classic-die[data-face="2"] .p9,.classic-die[data-face="3"] .p1,.classic-die[data-face="3"] .p5,.classic-die[data-face="3"] .p9,.classic-die[data-face="4"] .p1,.classic-die[data-face="4"] .p3,.classic-die[data-face="4"] .p7,.classic-die[data-face="4"] .p9,.classic-die[data-face="5"] .p1,.classic-die[data-face="5"] .p3,.classic-die[data-face="5"] .p5,.classic-die[data-face="5"] .p7,.classic-die[data-face="5"] .p9,.classic-die[data-face="6"] .p1,.classic-die[data-face="6"] .p3,.classic-die[data-face="6"] .p4,.classic-die[data-face="6"] .p6,.classic-die[data-face="6"] .p7,.classic-die[data-face="6"] .p9{display:block}.classic-die[data-face="1"] .p5{background:radial-gradient(circle at 35% 30%,#ee554d,#9d181b 64%,#61070d)}
.classic-die.rolling{animation:classicDiceToss .72s cubic-bezier(.25,.8,.25,1) infinite!important}.classic-die.second-die.rolling{animation-delay:-.18s!important;animation-direction:reverse!important}.classic-die.landing{animation:classicDiceLand .52s ease-out!important}
.country-action{width:100%;margin-top:9px;border:1px solid color-mix(in srgb,var(--world-accent,#8f2923) 65%,#fff);border-radius:11px;padding:10px;background:linear-gradient(135deg,#fffdf8,#ede6d7);color:#253a36;text-align:left;box-shadow:0 5px 14px #1d29251a}.country-action b,.country-action small{display:block}.country-action b{font-size:.82rem;color:var(--world-accent,#8f2923)}.country-action small{font-size:.62rem;margin-top:3px;color:#6b716e}.country-action:hover{transform:translateY(-1px);box-shadow:0 8px 18px #1d29252a}
