    :root{--ink:#152a2d;--cream:#f7f0db;--paper:#fffaf0;--red:#e94d3d;--gold:#f4bd3b;--green:#1b7a68;--blue:#3778c2;--shadow:0 18px 50px #17352f28}
    *{box-sizing:border-box} body{margin:0;min-height:100vh;background:radial-gradient(circle at 20% 10%,#fff7d9 0,transparent 30%),linear-gradient(135deg,#d9ead8,#b9d8d0);color:var(--ink);font-family:Inter,ui-sans-serif,system-ui,-apple-system,Segoe UI,sans-serif}
    button{font:inherit}.app{max-width:1400px;margin:auto;padding:22px;display:grid;grid-template-columns:minmax(600px,1fr) 350px;gap:22px;align-items:start}
    .topbar{grid-column:1/-1;display:flex;align-items:center;justify-content:space-between}.top-actions{display:flex;gap:9px}.dev-trigger{background:#713ab7}.brand{display:flex;align-items:center;gap:12px}.logo{background:var(--red);color:white;padding:8px 14px;transform:rotate(-2deg);font:900 24px Georgia,serif;letter-spacing:1px;box-shadow:4px 4px 0 var(--ink)}.subtitle{font-size:13px;opacity:.65;font-weight:700;letter-spacing:.13em;text-transform:uppercase}
    .board-wrap{background:#dfd4b6;border-radius:22px;padding:15px;box-shadow:var(--shadow);border:1px solid #ffffffaa}.board{position:relative;aspect-ratio:1;background:#d8e7d2;border:4px solid var(--ink);display:grid;grid-template-columns:1.35fr repeat(9,1fr) 1.35fr;grid-template-rows:1.35fr repeat(9,1fr) 1.35fr;overflow:hidden}
    .cell{position:relative;border:1px solid #20363855;background:var(--paper);font-size:clamp(7px,.68vw,11px);font-weight:800;text-align:center;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;padding:4px 2px;overflow:visible}.cell .band{position:absolute;left:0;right:0;height:27%;top:0;background:var(--c);border-bottom:1px solid var(--ink)}.cell .name{z-index:2;line-height:1.05;text-shadow:0 1px 2px var(--paper),0 0 4px var(--paper)}.cell .price{z-index:2;font-size:.82em;opacity:.78;margin-top:2px;text-shadow:0 1px 2px var(--paper)}.cell:not(.has-color) .emoji{font-size:clamp(23px,3vw,44px);line-height:1.05;margin:auto 0 3px;filter:drop-shadow(0 3px 2px #17352f30)}.tile-watermark{position:absolute;left:50%;top:60%;transform:translate(-50%,-50%);font-size:clamp(20px,2.5vw,38px);opacity:.30;z-index:1;filter:grayscale(.05) saturate(1.2);pointer-events:none}.side-top .tile-watermark{top:38%}.side-left .tile-watermark{left:35%;top:55%}.side-right .tile-watermark{left:65%;top:55%}.corner{justify-content:center;font-size:clamp(8px,.9vw,13px);padding:6px}.corner .emoji{font-size:clamp(25px,3.2vw,48px);line-height:1.1}.owned{box-shadow:inset 0 0 0 3px var(--owner)}
    .center{grid-area:2/2/11/11;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:clamp(12px,2vw,25px);text-align:center;padding:clamp(10px,2vw,22px);background:radial-gradient(circle,#eaf3df,#d8e7d2 68%);position:relative}.center-logo{transform:rotate(-5deg)}.center-logo h1{margin:0;background:var(--red);color:#fff;padding:7px 20px;font:900 clamp(20px,3.2vw,48px) Georgia,serif;letter-spacing:.04em;border:4px solid var(--ink);box-shadow:7px 7px 0 var(--ink)}.center-logo p{margin:10px 0 0;font-weight:900;letter-spacing:.28em;font-size:clamp(7px,.9vw,13px)}.board-controls{width:min(520px,92%);padding:clamp(10px,1.5vw,17px);background:#fffaf3e8;border:2px solid var(--ink);border-radius:18px;box-shadow:7px 8px 0 #17322f;backdrop-filter:blur(7px)}.board-controls h2{margin:4px 0 2px;font:900 clamp(18px,2.2vw,29px) Georgia,serif;display:flex;align-items:center;justify-content:center;gap:10px;text-transform:uppercase;letter-spacing:.04em}.turn-avatar{width:38px;height:38px;border-radius:50%;display:grid;place-items:center;background:var(--turn-color);border:3px solid #fff;box-shadow:0 0 0 3px var(--turn-color),0 4px 8px #0003;font-size:21px}.turn-label{filter:saturate(1.15) brightness(.82);text-shadow:0 1px 0 #fff}.board-controls #moveStatus{min-height:18px;margin:3px 0 10px}.board-controls .dice{margin:8px}.board-controls .die{width:clamp(40px,5vw,58px);height:clamp(40px,5vw,58px);font-size:clamp(25px,3vw,34px)}.board-controls .btn{padding:9px 13px;font-size:clamp(10px,1vw,14px)}
    .tokens{position:absolute;inset:0;pointer-events:none}.token{position:absolute;width:29px;height:34px;display:grid;place-items:center;z-index:5;transition:left .26s linear,top .26s linear;transform:translate(-50%,-62%);filter:drop-shadow(0 3px 2px #0007)}.walker{font-size:27px;line-height:1;transform-origin:50% 100%}.token.walking .walker{animation:walkCycle .28s steps(2,end) infinite}.token-badge{position:absolute;right:-3px;top:-3px;width:15px;height:15px;border-radius:50%;display:grid;place-items:center;background:var(--p);color:#fff;border:1.5px solid white;font:900 8px/1 sans-serif}.cell.stepping{animation:stepGlow .32s ease-out}@keyframes walkCycle{0%{transform:translateY(0) rotate(-7deg)}50%{transform:translateY(-6px) rotate(7deg)}100%{transform:translateY(0) rotate(-7deg)}}@keyframes stepGlow{50%{filter:brightness(1.15);box-shadow:inset 0 0 0 4px var(--gold)}}
    .sidebar{display:flex;flex-direction:column;gap:14px}.card{background:#fffaf3d9;border:1px solid #fff;border-radius:18px;padding:17px;box-shadow:0 10px 28px #254d4520;backdrop-filter:blur(8px)}.card h2,.card h3{margin:0 0 12px}.players{display:grid;gap:9px}.player{padding:10px;border:2px solid transparent;border-radius:12px;background:#fff;display:grid;grid-template-columns:12px 1fr auto;gap:9px;align-items:center;transition:.2s}.player.active{border-color:var(--ink);transform:translateX(-4px);box-shadow:4px 4px 0 var(--gold)}.dot{width:12px;height:12px;border-radius:50%;background:var(--p)}.money{font-weight:900}.meta{font-size:11px;opacity:.62}
    .turn{text-align:center}.dice{display:flex;justify-content:center;gap:10px;margin:14px}.die{width:58px;height:58px;border:2px solid var(--ink);border-radius:13px;background:white;display:grid;place-items:center;font-size:34px;box-shadow:4px 5px 0 #1b3434}.rolling{animation:shake .12s linear infinite}@keyframes shake{50%{transform:rotate(9deg) translate(2px,-2px)}}
    .btn{border:0;border-radius:11px;background:var(--ink);color:#fff;padding:12px 16px;font-weight:900;cursor:pointer;box-shadow:0 5px 0 #071415;transition:.15s}.btn:hover{transform:translateY(-2px)}.btn:active{transform:translateY(3px);box-shadow:0 2px 0 #071415}.btn:disabled{opacity:.4;cursor:not-allowed;transform:none}.btn.gold{background:var(--gold);color:var(--ink);box-shadow:0 5px 0 #a46d09}.actions{display:flex;gap:8px;justify-content:center;flex-wrap:wrap}.log{height:145px;overflow:auto;font-size:12px;line-height:1.4}.entry{padding:6px 0;border-bottom:1px dashed #243b3330}.entry:first-child{font-weight:800}.rules{font-size:12px;line-height:1.5;opacity:.78}.modal{position:fixed;inset:0;background:#102a2cc7;z-index:20;display:grid;place-items:center;padding:20px}.modal.hidden{display:none}.dialog{width:min(440px,100%);background:var(--paper);border:3px solid var(--ink);border-radius:20px;padding:26px;text-align:center;box-shadow:10px 12px 0 #071617}.dialog .big{font-size:48px}.dialog h2{font:900 29px Georgia,serif;margin:5px}.dialog p{line-height:1.55}#notice:not(.hidden) .dialog{animation:celebrateIn .42s cubic-bezier(.2,1.5,.4,1)}#notice:not(.hidden) .big{animation:moneyBounce .75s ease-in-out infinite alternate}#notice .dialog:before,#notice .dialog:after{content:'✨';position:absolute;font-size:30px;animation:sparkle 1s ease-in-out infinite alternate}#notice .dialog:before{margin-left:-40px;margin-top:-18px}#notice .dialog:after{margin-left:12px;margin-top:-18px;animation-delay:.25s}@keyframes celebrateIn{from{opacity:0;transform:scale(.65) rotate(-5deg)}to{opacity:1;transform:scale(1) rotate(0)}}@keyframes moneyBounce{to{transform:translateY(-8px) scale(1.08)}}@keyframes sparkle{from{opacity:.25;transform:scale(.65) rotate(0)}to{opacity:1;transform:scale(1.2) rotate(18deg)}}.setup-row{display:flex;gap:8px;justify-content:center;margin:18px 0}.setup-row button{width:50px;height:46px;border:2px solid var(--ink);background:white;border-radius:9px;font-weight:900;cursor:pointer}.setup-row button.chosen{background:var(--gold);box-shadow:3px 3px 0 var(--ink)}
    .player{cursor:pointer}.player:hover{transform:translateX(-3px);box-shadow:3px 3px 0 #b9cabd}.profile-dialog{width:min(520px,100%);text-align:left;max-height:88vh;overflow:auto}.profile-head{display:flex;align-items:center;gap:13px;margin-bottom:16px}.profile-avatar{width:52px;height:52px;border-radius:50%;display:grid;place-items:center;color:#fff;font-size:25px;border:3px solid var(--ink)}.profile-head h2{margin:0}.profile-head p{margin:2px 0;font-size:12px;opacity:.65}.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:14px 0}.stat{background:#e9eedf;border-radius:11px;padding:10px;text-align:center}.stat b{display:block;font-size:18px}.asset-title{display:flex;justify-content:space-between;align-items:center;margin:17px 0 8px}.asset-list{display:grid;gap:7px}.asset{display:grid;grid-template-columns:9px 1fr auto;gap:9px;align-items:center;padding:9px 10px;background:#fff;border:1px solid #243b3325;border-radius:9px}.asset-color{width:9px;height:30px;border-radius:4px;background:var(--asset)}.empty-assets{text-align:center;padding:22px;background:#ffffff80;border:1px dashed #48625c;border-radius:10px;color:#64716d}.hotel-count{color:#9d4f16;font-weight:900}
    .sell-asset{border:0;border-radius:7px;background:#b9362d;color:#fff;padding:6px 8px;font-size:10px;font-weight:900;cursor:pointer}.sell-asset:hover{background:#8d251f}.side-left .band{left:auto;right:0;top:0;bottom:0;width:27%;height:auto;border-bottom:0;border-left:1px solid var(--ink)}.side-top .band{top:auto;bottom:0;height:27%;border-bottom:0;border-top:1px solid var(--ink)}.side-right .band{left:0;right:auto;top:0;bottom:0;width:27%;height:auto;border-bottom:0;border-right:1px solid var(--ink)}
    .building-mark{position:absolute;top:28%;left:50%;transform:translateX(-50%);z-index:3;white-space:nowrap;font-size:10px;filter:drop-shadow(0 1px 1px white)}.side-left .building-mark{left:auto;right:28%;top:50%;transform:translateY(-50%)}.side-top .building-mark{top:auto;bottom:28%;left:50%}.side-right .building-mark{left:28%;top:50%;transform:translateY(-50%)}.land-status{position:absolute;z-index:4;right:2px;top:2px;padding:1px 3px;border-radius:3px;background:#fff;color:#31504a;border:1px solid #31504a;font:900 6px/1.2 sans-serif;letter-spacing:.02em}.land-status.taken{background:var(--owner);color:#fff;border-color:#fff}.cell.mortgaged{filter:grayscale(.72);background:#e4ddd2}.mortgage-mark{position:absolute;z-index:7;left:50%;top:50%;transform:translate(-50%,-50%) rotate(-8deg);background:#9b2925;color:white;border:2px solid white;padding:3px 5px;font:1000 7px/1 sans-serif;box-shadow:0 2px 5px #0005}.mortgage-btn{border:0;border-radius:7px;background:#365d91;color:#fff;padding:6px 8px;font-size:10px;font-weight:900;cursor:pointer;margin-top:4px}.mortgage-btn.redeem{background:#16705a}.cell[data-buyable="true"]{cursor:pointer}.cell[data-buyable="true"]:hover{filter:brightness(1.06)}.property-dialog{width:min(560px,100%);text-align:left;max-height:90vh;overflow:auto;z-index:26}.property-color{height:14px;border-radius:7px;margin:-7px 0 15px;background:var(--property-color)}.property-summary{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:12px 0}.summary-row{background:#f0ecdf;border-radius:9px;padding:9px}.summary-row span{display:block;font-size:10px;opacity:.6;text-transform:uppercase}.summary-row b{font-size:14px}.rent-table{width:100%;border-collapse:collapse;margin-top:8px;font-size:13px}.rent-table td{padding:8px;border-bottom:1px solid #283d3420}.rent-table td:last-child{text-align:right;font-weight:900}.asset[data-property]{cursor:pointer;transition:.15s}.asset[data-property]:hover{border-color:var(--ink);transform:translateX(3px)}
    .has-color .building-mark{background:#fffdf5e8;border:1px solid #ffffff;border-radius:6px;padding:2px 4px;box-shadow:0 4px 8px #162d2960;backdrop-filter:blur(2px)}.has-color.side-bottom .building-mark{left:50%;top:0;right:auto;bottom:auto;transform:translate(-50%,-115%)}.has-color.side-top .building-mark{left:50%;top:auto;right:auto;bottom:0;transform:translate(-50%,115%)}.has-color.side-left .building-mark{left:auto;right:0;top:50%;bottom:auto;transform:translate(115%,-50%)}.has-color.side-right .building-mark{left:0;right:auto;top:50%;bottom:auto;transform:translate(-115%,-50%)}
    #notice:not(.hidden) .dialog{position:relative}.transaction-scene{height:72px;border-radius:14px;background:linear-gradient(135deg,#dff1dc,#fff1bd);display:flex;align-items:center;justify-content:center;gap:8px;font-size:34px;margin:12px 0;overflow:hidden;border:1px solid #fff;box-shadow:inset 0 -10px 20px #4c7c6120}.transaction-scene span{animation:sceneFloat 1.2s ease-in-out infinite alternate}.transaction-scene span:nth-child(2){animation-delay:.2s}.transaction-scene span:nth-child(3){animation-delay:.4s}.money-flow{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:12px;margin:14px 0 10px}.party{display:grid;justify-items:center;gap:6px;font-size:11px;font-weight:900}.party-icon{width:54px;height:54px;border-radius:50%;display:grid;place-items:center;background:var(--party,#31504a);color:#fff;border:3px solid #fff;box-shadow:0 0 0 3px var(--party,#31504a),0 5px 12px #0003;font-size:25px}.party.bank .party-icon{border-radius:12px;background:#d6a629;box-shadow:0 0 0 3px #8b6510,0 5px 12px #0003}.flow-amount{font-size:19px;font-weight:1000;color:#19705d;animation:amountPulse .8s ease-in-out infinite alternate}.flow-arrow{font-size:24px;color:#d79b16}.transaction-note{background:#f0ecdf;border-radius:10px;padding:11px 13px;margin-top:10px;font-size:12px;line-height:1.5;text-align:left}.transaction-note strong{display:block;font-size:13px;color:#183c35;margin-bottom:4px}.balance-change{display:flex;justify-content:space-between;gap:8px;margin-top:7px;padding-top:7px;border-top:1px dashed #6c796f66;font-weight:800}.balance-down{color:#b52e27}.balance-up{color:#14705d}@keyframes amountPulse{to{transform:scale(1.1);color:#df3f32}}@keyframes sceneFloat{to{transform:translateY(-6px) rotate(4deg)}}
    .side-left .land-status{right:auto;left:4px;top:4px;white-space:nowrap}.side-left.has-color{justify-content:center;padding:16px 31% 6px 6px}.side-right.has-color{justify-content:center;padding:16px 6px 6px 31%}.side-left.has-color .name,.side-right.has-color .name{max-width:100%;line-height:1.08;overflow-wrap:break-word;position:relative;z-index:2}.side-left.has-color .price,.side-right.has-color .price{position:relative;z-index:2}.side-top:not(.corner){justify-content:center;padding-top:15%;padding-bottom:32%}.side-top:not(.corner) .name,.side-top:not(.corner) .price,.side-top:not(.corner) .emoji{position:relative;z-index:2}.has-color.side-bottom .building-mark{left:50%;top:13.5%;right:auto;bottom:auto;transform:translate(-50%,-50%)}.has-color.side-top .building-mark{left:50%;top:auto;right:auto;bottom:13.5%;transform:translate(-50%,50%)}.has-color.side-left .building-mark{left:auto;right:13.5%;top:50%;bottom:auto;transform:translate(50%,-50%)}.has-color.side-right .building-mark{left:13.5%;right:auto;top:50%;bottom:auto;transform:translate(-50%,-50%)}.has-color .building-mark{font-size:clamp(9px,1vw,14px);line-height:1;letter-spacing:-3px;z-index:6;filter:drop-shadow(0 1px 1px #fff)}.building-showcase{display:flex;align-items:center;justify-content:center;gap:6px;min-height:72px;margin:10px 0 14px;padding:10px;border-radius:14px;background:linear-gradient(#dff0d7 0 72%,#a7ce91 72%);border:1px solid #8daf7e;overflow:hidden}.building-showcase .house-picture{font-size:38px;filter:drop-shadow(0 4px 2px #29482245);animation:houseAppear .35s backwards}.building-showcase .house-picture:nth-child(2){animation-delay:.08s}.building-showcase .house-picture:nth-child(3){animation-delay:.16s}.building-showcase .house-picture:nth-child(4){animation-delay:.24s}.building-showcase .hotel-picture{font-size:58px;filter:drop-shadow(0 5px 3px #29482255);animation:houseAppear .45s}.building-showcase.empty{color:#60735d;font-size:12px;border-style:dashed}.asset-building-icons{display:block;font-size:15px;letter-spacing:-3px;margin-bottom:3px}@keyframes houseAppear{from{opacity:0;transform:translateY(20px) scale(.5)}to{opacity:1;transform:none}}.dev-dialog{width:min(700px,100%);text-align:left;max-height:92vh;overflow:auto}.dev-head{display:flex;align-items:center;justify-content:space-between}.dev-head h2{margin:5px 0}.dev-badge{display:inline-block;background:#713ab7;color:#fff;border-radius:5px;padding:4px 7px;font:900 10px/1 sans-serif;letter-spacing:.12em}.close-x{border:0;border-radius:50%;width:36px;height:36px;font-size:22px;cursor:pointer}.dev-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:15px}.dev-grid label{grid-column:span 1;font-size:11px;font-weight:900}.dev-grid select{display:block;width:100%;margin-top:4px;padding:9px;border:1px solid #789088;border-radius:8px;background:#fff}.dev-grid button{border:1px solid #482470;border-radius:8px;background:#f5edff;color:#3f205f;padding:9px;font-weight:800;cursor:pointer;text-align:left}.dev-grid button:hover{background:#713ab7;color:#fff}.dev-status{margin-top:12px;padding:10px;background:#eee4fa;border-radius:8px;color:#4c276f;font-size:12px;font-weight:700}
    .has-color .building-mark:empty{display:none}.cell.has-color .building-mark{font-size:clamp(11px,1.15vw,16px)!important;line-height:1!important}.has-color .building-mark i{display:inline-block;font-style:normal;font-size:1em;line-height:1}.has-color.side-bottom .building-mark{left:7px;right:auto;top:0;bottom:auto;transform:translateY(-112%);letter-spacing:0;transform-origin:left bottom;display:flex}.cell.has-color.side-right .building-mark{left:0!important;right:auto!important;top:50%!important;bottom:auto!important;transform:translate(-100%,-50%)!important;transform-origin:center!important;display:flex;flex-direction:column;padding:3px 2px!important;gap:2px}.cell.has-color.side-right .building-mark i{transform:rotate(-90deg);margin:0}.cell.has-color.side-left .building-mark{left:auto!important;right:0!important;top:50%!important;bottom:auto!important;transform:translate(100%,-50%)!important;transform-origin:center!important;display:flex;flex-direction:column;padding:3px 2px!important;gap:2px}.cell.has-color.side-left .building-mark i{transform:rotate(90deg);margin:0}.cell.has-color.side-top .building-mark{left:50%!important;right:auto!important;top:auto!important;bottom:0!important;transform:translate(-50%,115%)!important;transform-origin:center!important;display:flex}.cell.has-color.side-top .building-mark i{transform:rotate(180deg)}
    @media(max-width:950px){.app{grid-template-columns:1fr;max-width:760px}.topbar{grid-column:1}.sidebar{display:grid;grid-template-columns:1fr 1fr}.sidebar .card:last-child{grid-column:1/-1}.cell{font-size:clamp(6px,1.25vw,10px)}}
    @media(max-width:620px){.app{padding:9px;gap:12px}.subtitle{display:none}.board-wrap{padding:6px;border-radius:10px}.board{border-width:2px}.cell{padding:1px;font-size:5.5px}.cell .price{display:none}.corner{font-size:6px;padding:2px}.corner .emoji{font-size:15px}.center-logo h1{padding:5px 9px;border-width:2px;box-shadow:4px 4px 0 var(--ink)}.sidebar{display:flex}.token{width:20px;height:24px}.walker{font-size:19px}.token-badge{width:11px;height:11px;font-size:6px}.card{padding:14px}.logo{font-size:18px}}
