:root{
  --bg:#04162a; --panel:#071d34; --panel-2:#0a2947; --line:#1b597f; --cyan:#8cecff; --cyan-2:#45c9ff; --yellow:#ffd454; --green:#6df3b4; --muted:#9ebdce; --ink:#0f2535; --cream:#f8f2de; --shadow:0 22px 60px rgba(0,0,0,.35);
}
*{box-sizing:border-box}
html,body{margin:0;padding:0;background:radial-gradient(circle at top,#0d2f50 0,#06111e 38%,#030a13 100%);color:#fff;font-family:Inter,Segoe UI,Arial,sans-serif}
a{color:inherit;text-decoration:none}
button,input,select,textarea{font:inherit}
.top{position:sticky;top:0;z-index:30;height:72px;padding:0 18px;display:flex;align-items:center;justify-content:space-between;background:rgba(2,10,18,.9);border-bottom:1px solid #123d59;backdrop-filter:blur(18px)}
.brand{display:flex;align-items:center;gap:10px;font-weight:900;letter-spacing:1px}.hotel-logo{font:900 34px/1 Impact,sans-serif;color:#aef2ff;letter-spacing:1.5px;text-shadow:0 0 8px #31cffc,0 0 22px #119fe9}.cdo{background:var(--yellow);color:#07111d;font-weight:950;padding:3px 7px;transform:skew(-8deg)}.brand small{color:var(--muted);font-size:10px;text-transform:uppercase;letter-spacing:1.4px}
.top nav{display:flex;gap:5px}.top nav button,.top #menu{border:0;background:transparent;color:#b8d9e8;padding:10px 12px;border-radius:10px;cursor:pointer}.top nav button:hover{background:#0b2945;color:white}.top #menu{display:none;font-size:24px}
.page{display:none;max-width:1260px;margin:auto;padding:54px 22px 80px}.page.active{display:block}
.hero{min-height:540px;display:grid;grid-template-columns:1.05fr .95fr;align-items:center;gap:40px}.eyebrow,.section-title>span,.dialog-kicker{font-weight:800;color:var(--yellow);font-size:12px;letter-spacing:2px}.hero h1{margin:14px 0 18px;font:900 clamp(72px,10vw,150px)/.78 Impact,sans-serif;letter-spacing:4px}.hero h1 span{color:#aaf4ff;text-shadow:0 0 10px #23c4f2,0 0 38px #128ccc}.hero h1 b{display:block;font-size:.3em;color:var(--yellow);margin-top:23px;letter-spacing:10px}.hero p{max-width:650px;color:#b8d0dc;font-size:20px;line-height:1.55}
.actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:26px}.primary,.secondary,.home-grid button,.gamebar button,.action-panel button,.mode-tabs button,.dicebox button{border-radius:12px;border:1px solid #25719a;padding:13px 18px;font-weight:800;cursor:pointer}.primary{background:linear-gradient(135deg,var(--yellow),#ffb11f);color:#10151b;border-color:#ffe49a;box-shadow:0 0 24px #ffcb3d2f}.secondary,.home-grid button,.gamebar button,.action-panel button,.mode-tabs button,.dicebox button{background:#0b2b4d;color:white}
.metrics{display:flex;gap:9px;margin-top:40px;flex-wrap:wrap}.metrics div{padding:12px 16px;background:#061b31;border:1px solid #15486c;border-radius:12px;min-width:104px}.metrics b{font-size:20px;color:var(--cyan)}.metrics span{display:block;color:var(--muted);font-size:11px;text-transform:uppercase}
.city{height:420px;position:relative;border-radius:26px;background:radial-gradient(circle at 50% 22%,#115a8b,#02111f 60%);overflow:hidden;border:1px solid #1a658b;box-shadow:var(--shadow),inset 0 0 50px #2dd3ff12}.city:before{content:"";position:absolute;inset:0;background-image:radial-gradient(#8beeff 1px,transparent 1px);background-size:24px 24px;opacity:.1}.tower{position:absolute;bottom:90px;width:75px;background:linear-gradient(90deg,#132f47,#48bad8,#102c43);border:5px solid #d6bb70;box-shadow:0 0 28px #5ce7ff45}.tower:after{content:"";position:absolute;inset:12px;background:repeating-linear-gradient(#9ef4ff 0 5px,#15344a 6px 13px)}.t1{height:230px;left:45px;transform:skewY(-4deg)}.t2{height:305px;left:135px}.t3{height:260px;left:225px;transform:skewY(5deg)}.dome{position:absolute;right:70px;bottom:90px;width:150px;height:160px;border-radius:70px 70px 15px 15px;background:linear-gradient(145deg,#e5c77e,#96793a);box-shadow:0 0 30px #ffd95a40}.resort{position:absolute;right:215px;bottom:90px;width:120px;height:105px;background:linear-gradient(#ea655b,#7f2737);border-radius:18px 18px 4px 4px}.road{position:absolute;left:-20%;right:-20%;bottom:22px;height:65px;background:#101823;border-top:5px solid #ffc929;transform:rotate(-3deg)}.car{position:absolute;bottom:57px;width:38px;height:17px;border-radius:9px 9px 5px 5px}.car:after,.car:before{content:"";position:absolute;bottom:-5px;width:8px;height:8px;border-radius:50%;background:#02050a}.car:before{left:5px}.car:after{right:5px}.car1{left:52%;background:#ff516d}.car2{left:68%;background:#54e99a}
.home-grid,.board-notes{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}.home-grid article,.panel{background:linear-gradient(180deg,#082641,#051729);border:1px solid #155378;border-radius:18px;padding:22px;box-shadow:0 12px 34px #0004}.home-grid article>span{color:var(--yellow);font-weight:900}.home-grid p{color:var(--muted);min-height:66px}.home-grid button{width:100%;margin-top:10px}
.section-title{margin-bottom:28px}.section-title h2{font:900 52px/1 Impact,sans-serif;margin:8px 0;letter-spacing:2px}.section-title p{color:var(--muted)}
.mode-tabs{display:flex;gap:8px;margin-bottom:20px}.mode-tabs button.selected{background:var(--yellow);color:#06121e;border-color:var(--yellow)}
.setup-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.setup label{font-size:12px;color:#9cc0d3;text-transform:uppercase;font-weight:800}.setup input,.setup select{display:block;width:100%;margin-top:8px;padding:13px;border-radius:11px;border:1px solid #225a7c;background:#031221;color:white}
.player-name-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin:18px 0}.player-name-grid input{width:100%;padding:12px;border-radius:10px;border:1px solid #235d7f;background:#061a2e;color:white}
.notice{margin:18px 0;color:#a9c7d5;background:#0a2947;padding:14px;border-left:3px solid var(--yellow)}.hidden{display:none!important}
.gamebar{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.gamebar>div{text-align:center}.gamebar span{display:block;color:var(--muted);font-size:12px}
.game-layout{display:grid;grid-template-columns:minmax(0,1fr) 350px;gap:16px}.board-wrap{position:sticky;top:88px;align-self:start}
.board{aspect-ratio:1/1;display:grid;grid-template-columns:repeat(7,1fr);grid-template-rows:repeat(7,1fr);background:radial-gradient(circle at 50% 52%,#85d8c8 0,#4bb8a5 40%,#2b6a73 100%);border:12px solid #d5ba69;border-radius:22px;box-shadow:var(--shadow);overflow:hidden;position:relative}.board.playable{max-width:820px;margin-inline:auto}.board.showcase{width:min(100%,920px);margin:auto}
.board:before{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(255,255,255,.16),transparent 18%);pointer-events:none}
.space{position:relative;border:1px solid #ffffff3d;background:#f4ecd4;color:#123;padding:0;text-align:center;display:flex;align-items:stretch;justify-content:stretch;font-weight:800;min-height:72px}.space-inner{display:flex;flex-direction:column;justify-content:space-between;gap:6px;width:100%;padding:6px 6px 8px}.space-index{font-size:10px;color:#4a6581;font-weight:900;align-self:flex-start}.space-name{font-size:10px;line-height:1.15;color:#10263a;text-transform:uppercase;letter-spacing:.3px}.space-sub{font-size:9px;color:#52697c;line-height:1.15}.space.start{background:linear-gradient(180deg,#fff7e7,#f7d794)}.space.bank{background:linear-gradient(180deg,#cbf2ff,#8bdcff)}.space.town{background:linear-gradient(180deg,#ead8ff,#c69df1)}.space.build{background:linear-gradient(180deg,#dcffd0,#84df88)}.space.free,.space.freebuild{background:linear-gradient(180deg,#ffe0e0,#ffaaa1)}.space.current{outline:4px solid #fff;z-index:6;box-shadow:0 0 20px #fff}.space.hotel-space{background:linear-gradient(180deg,#fff7db,#ffe59e)}
.space-tags{display:flex;flex-direction:column;gap:4px}.hotel-tag{display:block;border-radius:999px;background:var(--tag);color:var(--tagText);padding:3px 5px;font-size:9px;line-height:1.1;box-shadow:inset 0 0 0 1px rgba(255,255,255,.3);border:0;cursor:pointer}
.center-mark{position:absolute;inset:11%;display:block;pointer-events:none;border:4px solid rgba(255,255,255,.16);border-radius:34px;background:radial-gradient(circle at 50% 45%,rgba(255,255,255,.14),rgba(255,255,255,.04) 44%,rgba(0,0,0,.08));overflow:hidden;box-shadow:inset 0 0 22px rgba(0,0,0,.18)}.center-mark strong{position:absolute;top:4.5%;left:50%;transform:translateX(-50%);font:900 clamp(40px,7vw,90px)/1 Impact,sans-serif;color:#d9fbff;text-shadow:0 0 12px #0da0de,0 0 30px #0da0de}.center-mark span{position:absolute;top:20%;left:50%;transform:translateX(-50%);color:#ffe16e;font-weight:900;letter-spacing:5px;font-size:12px}.board-road{position:absolute;inset:29% 14%;border-radius:999px;border:12px solid rgba(16,24,35,.9);box-shadow:0 0 0 4px #ffd4544d, inset 0 0 0 3px #ffd45433}.board-road:before,.board-road:after{content:"";position:absolute;background:#ffd454}.board-road:before{top:50%;left:5%;right:5%;height:3px;transform:translateY(-50%)}.board-road:after{left:50%;top:6%;bottom:6%;width:3px;transform:translateX(-50%)}.board-core-grid{position:absolute;inset:0;pointer-events:none}
.hotel-plot{position:absolute;border:0;background:transparent;padding:0;pointer-events:auto;cursor:pointer;width:var(--w);min-height:calc(var(--h) + 42px);display:block;z-index:2}
.plot-shadow{position:absolute;left:10%;right:10%;bottom:8px;height:18px;border-radius:50%;background:rgba(0,0,0,.25);filter:blur(6px)}
.plot-roof{position:absolute;left:12px;right:12px;top:12px;height:18px;background:linear-gradient(180deg,var(--roof),#7a2731);clip-path:polygon(6% 100%,14% 20%,50% 0,86% 20%,94% 100%);border-radius:4px;box-shadow:0 3px 0 rgba(0,0,0,.15)}
.plot-body{position:absolute;left:0;right:0;top:24px;margin:auto;width:calc(var(--w) - 14px);height:var(--h);background:linear-gradient(180deg,color-mix(in srgb,var(--plot) 65%, white 18%),color-mix(in srgb,var(--plot) 78%, black 22%));border:3px solid rgba(255,255,255,.18);border-bottom-width:5px;border-radius:10px;display:grid;grid-template-columns:repeat(3,1fr);gap:6px;padding:16px 10px 10px;align-content:start;box-shadow:inset 0 0 0 1px rgba(0,0,0,.14),0 8px 18px rgba(0,0,0,.2);transition:height .2s ease, transform .2s ease}
.plot-body i{display:block;height:10px;border-radius:3px;background:linear-gradient(180deg,#dfffff,#8bdcff);box-shadow:0 0 8px rgba(255,255,255,.35)}
.plot-sign{position:absolute;left:50%;bottom:14px;transform:translateX(-50%);min-width:78%;padding:7px 10px 8px;border-radius:14px;background:rgba(8,18,28,.88);border:2px solid var(--plot);display:flex;gap:8px;align-items:center;justify-content:center;box-shadow:0 10px 18px rgba(0,0,0,.25)}
.plot-sign em{font-style:normal;font-size:16px}.plot-sign b{color:var(--plotGlow);font-size:12px;letter-spacing:.3px}.plot-state{position:absolute;top:-2px;right:-2px;background:#05111d;color:#fff;padding:4px 7px;border-radius:999px;border:1px solid var(--plot);font-size:9px;font-weight:800}.hotel-plot.owned .plot-state{background:color-mix(in srgb,var(--plot) 38%, #05111d)}.hotel-plot:hover .plot-sign,.hotel-plot:focus-visible .plot-sign{transform:translateX(-50%) translateY(-2px);outline:none}.hotel-plot:hover .plot-body,.hotel-plot:focus-visible .plot-body{transform:translateY(-2px)}
.entrance-ring{position:absolute;inset:-4px;pointer-events:none}
.entrance-dot{position:absolute;width:11px;height:11px;border-radius:50%;background:#fff5b0;border:2px solid #6a5400;box-shadow:0 0 0 2px rgba(0,0,0,.15),0 0 10px rgba(255,238,121,.35)}
.entrance-1{left:-2px;top:32%}.entrance-2{left:18%;top:-1px}.entrance-3{right:18%;top:-1px}.entrance-4{right:-2px;top:32%}.entrance-5{right:18%;bottom:18px}.entrance-6{left:18%;bottom:18px}
.facility-badge{position:absolute;left:-4px;bottom:6px;width:22px;height:22px;border-radius:50%;display:grid;place-items:center;background:radial-gradient(circle,#fff5bf,#ffd454);color:#10263a;font-weight:900;border:2px solid #8b6b00;box-shadow:0 0 10px rgba(255,212,84,.45)}
.token{width:22px;height:12px;border-radius:8px;position:absolute;bottom:4px;border:2px solid #fff;box-shadow:0 2px 4px #0008;z-index:8}
.dicebox{display:flex;justify-content:center;gap:10px;margin-top:14px}.dicebox button{font-size:16px}.dice{background:var(--yellow)!important;color:#05111c!important}
.playercard{display:grid;grid-template-columns:38px 1fr auto;gap:10px;align-items:center;background:#071d34;border:1px solid #174c6e;border-radius:14px;padding:12px;margin-bottom:8px}.playercard.active{border-color:var(--yellow);box-shadow:0 0 20px #ffd54b22}.avatar{width:36px;height:36px;border-radius:50%;display:grid;place-items:center;background:#164f72}.playercard small{display:block;color:var(--muted)}.playercard .mini-holdings{font-size:11px}.playercard .money{color:var(--green);font-weight:900}.player-holdings{display:flex;flex-wrap:wrap;gap:6px;margin-top:7px}.holding-chip{border:1px solid var(--chip);background:linear-gradient(180deg,#0f2d49,#091a2d);color:var(--chip2);font-size:10px;font-weight:800;border-radius:999px;padding:5px 8px;cursor:pointer}.holding-empty{display:inline-block;border:1px dashed #315a76;border-radius:999px;padding:5px 8px;font-size:10px;color:#8ca9ba}
.panel-head-inline{display:flex;justify-content:space-between;align-items:end;gap:10px;margin-bottom:12px}.panel-head-inline h3{margin:0}.panel-head-inline small{color:var(--muted)}.hotel-browser{display:grid;grid-template-columns:1fr 1fr;gap:8px}.hotel-browser-item{border:1px solid var(--hb);background:linear-gradient(180deg,#0a2843,#081a2d);color:white;border-radius:14px;padding:10px 12px;text-align:left;cursor:pointer;box-shadow:inset 0 0 0 1px rgba(255,255,255,.05)}.hotel-browser-item b{display:block;color:var(--hb2)}.hotel-browser-item span{display:block;margin-top:4px;font-size:12px;color:#fff}.hotel-browser-item small{display:block;margin-top:4px;color:var(--muted)}
.action-panel,.log{margin-top:10px}.action-panel h3,.log h3{margin-top:0}.action-panel button{display:block;width:100%;margin-top:8px}.log{max-height:270px;overflow:auto}.log div{font-size:12px;color:#a8c6d5;border-top:1px solid #14425f;padding:7px 0}
.rulegrid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.rulegrid article{background:#061d35;border:1px solid #175477;border-radius:16px;padding:18px}.rulegrid b{color:var(--yellow)}.rulegrid p{color:var(--muted);line-height:1.5}
.hotel-table{margin-top:20px}.hotel-table>div{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}
.hotel-mini{background:linear-gradient(180deg,#f7ebc7,#f3ddb2 48%,#e7c581 48.2%,#fff7df 100%);color:#0e2435;border-radius:18px;padding:14px;border:2px solid var(--hm);box-shadow:inset 0 0 0 1px rgba(255,255,255,.65),0 10px 20px rgba(0,0,0,.14);cursor:pointer;position:relative}.hotel-mini:before{content:"HOTEL";position:absolute;top:8px;right:10px;color:rgba(0,0,0,.2);font:900 18px/1 Impact,sans-serif;letter-spacing:1px}.hotel-mini b{display:block;color:#0b2030;font-size:18px}.hotel-mini small{display:block;color:#365268;margin-top:6px}
.hotel-cards-detailed{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.hotel-card-full{background:linear-gradient(180deg,#fae8bb 0,#f8efcf 14%,#f6d992 14.2%,#f8f1dd 100%);color:#152738;border:2px solid var(--hc);border-radius:28px;padding:18px 18px 20px;box-shadow:0 18px 38px rgba(0,0,0,.28);position:relative;overflow:hidden;cursor:pointer}.hotel-card-full:before{content:"";position:absolute;inset:0;border:8px solid rgba(255,255,255,.24);border-radius:28px;pointer-events:none}.hotel-card-full:after{content:"HOTEL";position:absolute;right:16px;bottom:10px;font:900 42px/1 Impact,sans-serif;color:rgba(9,22,33,.06);letter-spacing:2px}
.hotel-card-full header{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:14px;position:relative;z-index:1}.hotel-card-full .pill{display:inline-block;padding:6px 10px;border-radius:999px;background:var(--hc);color:#08111b;font-weight:900;font-size:11px;letter-spacing:1px}.hotel-card-full h3{margin:10px 0 0;font-size:30px;color:#11283b}.zone-label{display:inline-block;margin-top:8px;color:#455e73;font-weight:700}.price-block{min-width:118px;text-align:right;background:#fffdf3;border:2px solid color-mix(in srgb, var(--hc) 55%, #fff 18%);border-radius:16px;padding:10px 12px;box-shadow:inset 0 0 0 1px rgba(255,255,255,.4)}.price-block span{display:block;color:#556f82;font-size:12px}.price-block b{font-size:30px;color:#172c3b}.ticket-band{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:12px;position:relative;z-index:1}.ticket-band span{background:#fffaf0;border:1px dashed color-mix(in srgb,var(--hc) 58%, #314b5e);border-radius:12px;padding:10px 12px;font-weight:800;color:#20384a;text-align:center}
.hotel-card-grid{display:grid;grid-template-columns:1fr 1fr 1.1fr;gap:12px;position:relative;z-index:1}.card-box{background:#fffaf0;border:1px solid rgba(9,22,33,.1);border-radius:16px;padding:14px;box-shadow:inset 0 0 0 1px rgba(255,255,255,.5)}.card-box h4{margin:0 0 10px;color:#172c3a}.card-box ul{margin:0;padding:0;list-style:none}.card-box li{margin:8px 0;display:flex;justify-content:space-between;gap:10px;color:#294255}.card-box li b{color:#091925}.rent-box table{width:100%;border-collapse:collapse;font-size:13px}.rent-box th,.rent-box td{padding:8px 6px;border-bottom:1px solid rgba(9,22,33,.09);text-align:left}.rent-box th{color:#355168}.rent-box td{color:#102535}
.profiles{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}.profile{padding:20px;background:#061d35;border:1px solid #1a5476;border-radius:18px}.profile .bigcar{font-size:42px}
.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:14px}.stat{padding:18px;border:1px solid #185274;background:#061d35;border-radius:14px}.stat b{display:block;font-size:27px;color:var(--yellow)}.hallrow{display:grid;grid-template-columns:70px 1fr 1fr 1fr;gap:10px;padding:12px;border-bottom:1px solid #16425e}.hallrow b{color:var(--yellow)}
footer{padding:28px;text-align:center;border-top:1px solid #123d59;background:#020a12}footer span{display:block;font-weight:900;color:var(--cyan)}footer small{color:#6e91a4}#toast{position:fixed;left:50%;bottom:30px;transform:translateX(-50%) translateY(100px);opacity:0;padding:12px 18px;background:#fff;color:#07121c;border-radius:12px;font-weight:800;transition:.25s;z-index:50}#toast.show{transform:translateX(-50%) translateY(0);opacity:1}
.hotel-dialog{border:0;padding:0;background:transparent;max-width:min(1020px,92vw)}.hotel-dialog::backdrop{background:rgba(3,10,16,.65);backdrop-filter:blur(4px)}.dialog-shell{background:linear-gradient(180deg,#08243e,#051321);color:white;border:1px solid #1a597f;border-radius:24px;box-shadow:0 30px 80px rgba(0,0,0,.5);overflow:hidden}.dialog-head{display:flex;justify-content:space-between;align-items:start;gap:14px;padding:18px 20px;border-bottom:1px solid #15435f}.dialog-head h3{margin:8px 0 0;font-size:34px}.close-dialog{border:1px solid #215a80;background:#0a2640;color:white;width:42px;height:42px;border-radius:12px;cursor:pointer}.dialog-body{padding:18px}.dialog-top-banner{background:linear-gradient(135deg,var(--db),var(--roof));border-radius:18px;padding:16px 18px;margin-bottom:16px;color:#07111d}.dialog-badge{display:inline-block;background:rgba(255,255,255,.9);padding:6px 10px;border-radius:999px;font-weight:900}.dialog-stats{margin-top:12px;display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.dialog-stats div{background:rgba(255,255,255,.16);padding:12px;border-radius:14px}.dialog-stats span{display:block;font-size:12px;color:#fff8ce}.dialog-stats b{display:block;margin-top:4px;color:white;font-size:18px}

@media (max-width:1100px){.hero{grid-template-columns:1fr}.city{height:320px}.board-notes{grid-template-columns:1fr 1fr 1fr}.home-grid,.profiles{grid-template-columns:1fr 1fr}.setup-grid,.player-name-grid{grid-template-columns:1fr 1fr}.game-layout{grid-template-columns:1fr}.board-wrap{position:relative;top:auto}.rulegrid{grid-template-columns:1fr 1fr}.hotel-table>div{grid-template-columns:1fr 1fr}.hotel-cards-detailed{grid-template-columns:1fr}.hotel-card-grid{grid-template-columns:1fr}.hotel-browser{grid-template-columns:1fr 1fr}.dialog-stats{grid-template-columns:1fr 1fr}}
@media (max-width:900px){.top nav{display:none}.top nav.open{display:flex;position:absolute;top:72px;left:0;right:0;background:#03111f;padding:12px;flex-direction:column}.top #menu{display:block}.brand small{display:none}.board-notes{grid-template-columns:1fr}.hotel-browser{grid-template-columns:1fr}.space{min-height:60px}.plot-body i{height:8px}.entrance-dot{width:9px;height:9px}}
@media (max-width:560px){.page{padding:34px 12px 90px}.hero h1{font-size:76px}.hero p{font-size:16px}.city{height:260px}.tower{transform:scale(.75);transform-origin:bottom}.home-grid,.profiles,.setup-grid,.player-name-grid,.rulegrid,.hotel-table>div,.board-notes{grid-template-columns:1fr}.metrics{display:grid;grid-template-columns:1fr 1fr}.section-title h2{font-size:42px}.board{border-width:6px}.space{min-height:56px}.space-inner{padding:3px 3px 5px}.space-name{font-size:7px}.space-index{font-size:8px}.space-sub,.hotel-tag{font-size:6.5px}.token{width:16px;height:9px}.hallrow{grid-template-columns:55px 1fr}.hallrow span:nth-child(3),.hallrow span:nth-child(4){display:none}.stats{grid-template-columns:1fr}.top{height:64px}.top nav.open{top:64px}.hotel-logo{font-size:27px}.center-mark{inset:16%}.center-mark strong{font-size:36px}.center-mark span{font-size:10px;top:18%}.board-road{border-width:7px;inset:31% 16%}.hotel-plot{width:72px!important;min-height:82px}.plot-roof{left:8px;right:8px;top:8px;height:12px}.plot-body{width:calc(100% - 10px)!important;top:16px;height:40px!important;padding:9px 5px 5px;gap:4px}.plot-sign{padding:4px 6px;bottom:10px}.plot-sign em{font-size:10px}.plot-sign b{font-size:7px}.plot-state{font-size:6px;padding:3px 5px}.plot-body i{height:5px}.entrance-dot{width:7px;height:7px;border-width:1px}.facility-badge{width:16px;height:16px;font-size:10px}.holding-chip,.holding-empty{font-size:9px;padding:4px 7px}.hotel-card-full h3{font-size:26px}.ticket-band{grid-template-columns:1fr}.dialog-stats{grid-template-columns:1fr}.dialog-head h3{font-size:28px}.dialog-body{padding:12px}}

/* v1.4.0 — plancia reale 3D */
.board-modebar{display:flex;justify-content:center;gap:8px;margin:0 0 14px}.board-modebar.compact{margin:0 0 10px}.board-modebar button{border:1px solid #256185;background:#08243c;color:#c8dfeb;border-radius:999px;padding:9px 14px;font-weight:900;cursor:pointer}.board-modebar button.selected{background:var(--yellow);color:#07111d;border-color:#ffeaa3;box-shadow:0 0 18px rgba(255,212,84,.22)}
.board.real-mode{display:block!important;position:relative;aspect-ratio:1/1;background:#f5f5f5;border:8px solid #d5ba69;overflow:hidden;isolation:isolate}.board.real-mode:before{display:none}.real-board-photo{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;background:#fff;z-index:0}.real-board-shade{position:absolute;inset:0;z-index:1;pointer-events:none;background:linear-gradient(180deg,rgba(0,0,0,.02),rgba(0,0,0,.05));box-shadow:inset 0 0 50px rgba(0,0,0,.12)}
.real-hotspots,.real-route-tokens{position:absolute;inset:0;z-index:3;pointer-events:none}.real-hotel-hotspot{pointer-events:auto;position:absolute;transform:translate(-50%,-50%);min-width:112px;max-width:145px;border:2px solid var(--hh);border-radius:14px;background:rgba(4,14,24,.84);backdrop-filter:blur(6px);color:white;padding:8px 10px;text-align:center;cursor:pointer;box-shadow:0 8px 18px rgba(0,0,0,.25),0 0 0 2px rgba(255,255,255,.08)}.real-hotel-hotspot:hover,.real-hotel-hotspot:focus-visible{transform:translate(-50%,-50%) scale(1.05);outline:none;z-index:7}.real-hotel-hotspot b{display:block;color:var(--hh2);font-size:12px}.real-hotel-hotspot span{display:block;margin-top:2px;font-size:10px;color:#fff}.real-hotel-hotspot small{display:block;margin-top:3px;font-size:9px;color:#b9d2df;line-height:1.15}.real-hotel-hotspot.owned{background:color-mix(in srgb,var(--hh) 30%,rgba(4,14,24,.88))}
.real-token{position:absolute;transform:translate(calc(-50% + var(--tokenOffset)), -50%);width:32px;height:32px;border-radius:50%;background:var(--token);border:3px solid white;display:grid;place-items:center;box-shadow:0 4px 12px rgba(0,0,0,.45),0 0 0 3px color-mix(in srgb,var(--token) 55%, transparent);pointer-events:none;z-index:8}.real-token i{font-style:normal;font-size:16px;filter:drop-shadow(0 1px 1px rgba(0,0,0,.4))}.real-current{position:absolute;transform:translate(-50%,-50%);width:54px;height:54px;border:4px solid #fff;border-radius:50%;box-shadow:0 0 0 5px rgba(255,212,84,.8),0 0 22px rgba(255,212,84,.8);animation:realPulse 1.3s ease-in-out infinite;z-index:7}@keyframes realPulse{50%{transform:translate(-50%,-50%) scale(1.1);opacity:.72}}
.real-board-caption{position:absolute;left:14px;bottom:14px;z-index:5;background:rgba(3,12,20,.82);border:1px solid rgba(255,255,255,.24);border-radius:12px;padding:8px 11px;pointer-events:none}.real-board-caption span{display:block;font-size:11px;font-weight:950;color:#ffe16e;letter-spacing:1px}.real-board-caption small{display:block;color:#d1e4ed;margin-top:2px;font-size:9px}
.board.technical-mode{display:grid}
.real-hotel-photo-wrap{height:190px;border-radius:18px;overflow:hidden;background:#fff;border:1px solid rgba(9,22,33,.12);margin:-2px -2px 15px;position:relative;z-index:1}.real-hotel-photo{width:100%;height:100%;object-fit:contain;display:block}.dialog-real-model{background:#fff;border-radius:18px;overflow:hidden;margin-bottom:16px;border:1px solid #2a5f7d}.dialog-real-model img{display:block;width:100%;max-height:420px;object-fit:contain}.hotel-card-full .real-hotel-photo-wrap+header{margin-top:0}

@media(max-width:900px){.real-hotel-hotspot{min-width:88px;max-width:105px;padding:6px 7px}.real-hotel-hotspot b{font-size:10px}.real-hotel-hotspot span{font-size:8px}.real-hotel-hotspot small{font-size:7px}.real-token{width:26px;height:26px}.real-token i{font-size:13px}.real-current{width:44px;height:44px}.real-hotel-photo-wrap{height:160px}}
@media(max-width:560px){.board.real-mode{border-width:4px}.real-hotel-hotspot{min-width:58px;max-width:72px;padding:4px 5px;border-width:1px;border-radius:8px}.real-hotel-hotspot b{font-size:7px}.real-hotel-hotspot span{font-size:6px}.real-hotel-hotspot small{display:none}.real-token{width:20px;height:20px;border-width:2px}.real-token i{font-size:10px}.real-current{width:32px;height:32px;border-width:2px}.real-board-caption{left:7px;bottom:7px;padding:5px 7px}.real-board-caption span{font-size:8px}.real-board-caption small{font-size:6px}.board-modebar button{font-size:12px;padding:8px 11px}.real-hotel-photo-wrap{height:130px}}

/* v1.5.0 — plancia 3D dinamica orientata al gameplay */
.board.faithful-mode{display:block!important;position:relative;aspect-ratio:1/1;background:radial-gradient(circle at 50% 46%,#7ad1bd 0,#4daf9e 44%,#306d73 100%);border:10px solid #d8bb6a;border-radius:26px;overflow:hidden;isolation:isolate;box-shadow:var(--shadow)}
.board.faithful-mode:before{content:"";position:absolute;inset:0;background-image:radial-gradient(rgba(255,255,255,.25) 1px,transparent 1px);background-size:26px 26px;opacity:.12}
.board-bg-grid{position:absolute;inset:0;background:linear-gradient(180deg,rgba(255,255,255,.13),transparent 24%);pointer-events:none}
.faithful-road{position:absolute;border-radius:999px;background:transparent;box-shadow:inset 0 0 0 16px rgba(16,24,35,.9),0 0 0 3px rgba(255,212,84,.28)}
.faithful-road.outer{inset:11% 11%}
.faithful-road.inner{inset:23% 23%;box-shadow:inset 0 0 0 10px rgba(16,24,35,.76),0 0 0 3px rgba(255,212,84,.18)}
.cross-road{position:absolute;background:rgba(16,24,35,.88);border-radius:999px;box-shadow:0 0 0 3px rgba(255,212,84,.18)}
.cross-road.horizontal{left:22%;right:22%;top:48.5%;height:4.2%}
.cross-road.vertical{top:22%;bottom:22%;left:48.5%;width:4.2%}
.route-layer{position:absolute;inset:0;z-index:4}
.route-space{position:absolute;transform:translate(-50%,-50%);width:11.5%;min-height:8.8%;border:2px solid rgba(255,255,255,.35);border-radius:16px;background:rgba(244,236,212,.96);color:#0c2131;box-shadow:0 8px 18px rgba(0,0,0,.18);padding:6px 6px 7px;text-align:center;display:flex;flex-direction:column;justify-content:flex-start;gap:3px}
.route-space.start{background:linear-gradient(180deg,#fff6dc,#f8d792)}.route-space.bank{background:linear-gradient(180deg,#d6f4ff,#91ddff)}.route-space.town{background:linear-gradient(180deg,#f0e0ff,#d0a5fb)}.route-space.build{background:linear-gradient(180deg,#e1ffd6,#8ce48f)}.route-space.free,.route-space.freebuild{background:linear-gradient(180deg,#ffe2e2,#ffb0ab)}.route-space.buy{background:linear-gradient(180deg,#fff8e1,#ffe49d)}
.route-space.active{outline:4px solid #fff;z-index:8;box-shadow:0 0 0 4px rgba(255,212,84,.75),0 14px 24px rgba(0,0,0,.22)}
.rs-num{font-size:10px;font-weight:900;color:#415c70;line-height:1}
.rs-label{font-size:8px;line-height:1.15;text-transform:uppercase;font-weight:900;letter-spacing:.2px}
.route-space-token{position:absolute;bottom:4px;width:18px;height:18px;border-radius:50%;background:var(--player);border:2px solid #fff;display:grid;place-items:center;box-shadow:0 2px 6px rgba(0,0,0,.35)}
.route-space-token i{font-style:normal;font-size:9px}
.route-current{position:absolute;transform:translate(-50%,-50%);width:62px;height:62px;border:4px solid #fff;border-radius:50%;box-shadow:0 0 0 5px rgba(255,212,84,.75),0 0 24px rgba(255,212,84,.65);animation:realPulse 1.3s ease-in-out infinite;z-index:3;pointer-events:none}
.board-center-label{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);z-index:2;text-align:center;pointer-events:none}.board-center-label strong{display:block;font:900 clamp(42px,7vw,96px)/.9 Impact,sans-serif;color:#d9fbff;letter-spacing:2px;text-shadow:0 0 12px #0da0de,0 0 28px rgba(13,160,222,.6)}.board-center-label span{display:block;margin-top:6px;color:#ffe16e;font-weight:900;letter-spacing:6px}.board-center-label small{display:block;margin-top:6px;font-weight:800;color:#dcecf4;letter-spacing:1px}
.empty-lot{position:absolute;left:50%;top:28px;transform:translateX(-50%);width:calc(var(--w) - 16px);height:34px;border-radius:12px;background:linear-gradient(180deg,#b8d6a1,#84b26e);border:3px solid rgba(255,255,255,.26);box-shadow:inset 0 0 0 1px rgba(0,0,0,.12),0 8px 16px rgba(0,0,0,.15)}
.empty-lot:before{content:"";position:absolute;inset:6px;border-radius:8px;border:1px dashed rgba(10,30,20,.35)}
.empty-lot:after{content:"LOTTO";position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);font-size:10px;font-weight:900;color:rgba(11,27,18,.6);letter-spacing:1px}
.hotel-plot.empty .plot-sign{bottom:4px}.hotel-plot.empty .plot-state{top:10px}

@media(max-width:900px){
  .board.faithful-mode{border-width:8px}
  .faithful-road{box-shadow:inset 0 0 0 12px rgba(16,24,35,.9),0 0 0 2px rgba(255,212,84,.25)}
  .faithful-road.inner{box-shadow:inset 0 0 0 8px rgba(16,24,35,.76),0 0 0 2px rgba(255,212,84,.16)}
  .route-space{width:12.5%;min-height:9.3%;padding:5px 5px 6px}
  .rs-num{font-size:9px}.rs-label{font-size:7px}.route-current{width:48px;height:48px}
}
@media(max-width:560px){
  .board.faithful-mode{border-width:5px;border-radius:18px}
  .faithful-road{box-shadow:inset 0 0 0 9px rgba(16,24,35,.92),0 0 0 1px rgba(255,212,84,.22)}
  .faithful-road.inner{box-shadow:inset 0 0 0 6px rgba(16,24,35,.78),0 0 0 1px rgba(255,212,84,.12)}
  .route-space{width:14%;min-height:10%;padding:3px 4px 10px;border-radius:10px;border-width:1px}
  .rs-num{font-size:7px}.rs-label{font-size:5.8px}.route-space-token{width:14px;height:14px;bottom:3px}.route-space-token i{font-size:7px}.route-current{width:34px;height:34px;border-width:2px;box-shadow:0 0 0 3px rgba(255,212,84,.75),0 0 16px rgba(255,212,84,.6)}
  .board-center-label strong{font-size:34px}.board-center-label span{font-size:10px;letter-spacing:4px}.board-center-label small{font-size:7px}
  .empty-lot{top:16px;height:18px;border-width:2px}.empty-lot:after{font-size:6px}
}

/* v1.6.0 — plancia dall'alto approvata, integrata come layer di gioco */
.board.visual-mode{display:block!important;position:relative;aspect-ratio:1/1;background:#152b23;border:8px solid #d2ae55;border-radius:22px;overflow:hidden;isolation:isolate;box-shadow:0 24px 62px rgba(0,0,0,.42)}
.board.visual-mode:before{display:none}
.visual-board-image{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:0;user-select:none;-webkit-user-drag:none}
.visual-hotel-layer,.visual-token-layer{position:absolute;inset:0;z-index:4;pointer-events:none}
.visual-token-layer{z-index:8}
.visual-hotel-zone{position:absolute;transform:translate(-50%,-50%);border:0;background:transparent;padding:0;pointer-events:auto;cursor:pointer;border-radius:14px;z-index:3}
.visual-hotel-zone:focus-visible{outline:3px solid #fff;outline-offset:3px}
.visual-hotel-zone:hover{box-shadow:inset 0 0 0 2px color-mix(in srgb,var(--hotel) 70%,white),0 0 20px color-mix(in srgb,var(--hotel) 36%,transparent)}
.visual-owner{position:absolute;left:50%;bottom:-10px;transform:translateX(-50%);max-width:96%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;background:rgba(4,15,22,.9);color:var(--hotelAccent);border:1px solid var(--hotel);padding:3px 7px;border-radius:999px;font-size:8px;font-weight:900;opacity:0;transition:.2s}
.visual-hotel-zone.owned .visual-owner,.visual-hotel-zone:hover .visual-owner{opacity:1}
.visual-buildings{position:absolute;inset:5% 7% 14%;display:block;pointer-events:none}
.visual-building{position:absolute;width:35%;height:48%;left:32%;top:32%;border-radius:7px 7px 3px 3px;background:linear-gradient(90deg,color-mix(in srgb,var(--hotel) 70%,#fff),var(--hotel),color-mix(in srgb,var(--hotel) 68%,#000));border:2px solid color-mix(in srgb,var(--hotel2) 65%,#fff);box-shadow:7px 8px 0 color-mix(in srgb,var(--hotel2) 76%,#000),0 11px 15px rgba(0,0,0,.27);transform:skewY(-2deg)}
.visual-building:before{content:"";position:absolute;left:7%;right:7%;top:-18%;height:24%;background:linear-gradient(135deg,color-mix(in srgb,var(--hotel2) 75%,#fff),var(--hotel2));clip-path:polygon(50% 0,100% 100%,0 100%);filter:drop-shadow(0 2px 1px rgba(0,0,0,.25))}
.visual-building i{position:absolute;inset:18% 14%;background:repeating-linear-gradient(90deg,#d8f7ff 0 9%,transparent 10% 23%),repeating-linear-gradient(180deg,#d8f7ff 0 11%,transparent 12% 27%);opacity:.86}
.visual-building.vb-1{left:30%;top:35%;width:40%;height:52%}
.visual-building.vb-2{left:5%;top:48%;width:29%;height:38%;transform:skewY(-2deg) scale(.92)}
.visual-building.vb-3{left:67%;top:45%;width:29%;height:40%;transform:skewY(-2deg) scale(.92)}
.visual-building.vb-4{left:12%;top:10%;width:31%;height:38%;transform:skewY(-2deg) scale(.88)}
.visual-building.vb-5{left:58%;top:8%;width:31%;height:39%;transform:skewY(-2deg) scale(.88)}
.visual-entrances{position:absolute;inset:-8px;pointer-events:none}
.visual-entrance{position:absolute;width:10px;height:16px;border-radius:3px 3px 1px 1px;background:linear-gradient(90deg,#f7d45a,#fff5ab,#c59d19);border:1px solid #5c4812;box-shadow:0 2px 5px rgba(0,0,0,.38)}
.ve-1{left:10%;bottom:-4px}.ve-2{left:34%;bottom:-4px}.ve-3{right:10%;bottom:-4px}.ve-4{left:-4px;top:28%;transform:rotate(90deg)}.ve-5{right:-4px;top:28%;transform:rotate(90deg)}.ve-6{left:50%;top:-5px;transform:translateX(-50%)}
.visual-facility{position:absolute;right:3%;top:2%;width:23px;height:23px;border-radius:50%;display:grid;place-items:center;background:radial-gradient(circle,#fff8c5,#ffd454);border:2px solid #745a09;color:#2a2105;font-size:13px;font-weight:950;box-shadow:0 3px 8px rgba(0,0,0,.3),0 0 12px rgba(255,212,84,.45)}
.visual-token{position:absolute;transform:translate(-50%,-50%);width:34px;height:17px;border-radius:10px 10px 5px 5px;background:linear-gradient(180deg,color-mix(in srgb,var(--car) 70%,#fff),var(--car));border:2px solid #fff;box-shadow:0 4px 10px rgba(0,0,0,.5),0 0 0 3px color-mix(in srgb,var(--car) 44%,transparent);transition:left .18s linear,top .18s linear;z-index:4}
.visual-token:before,.visual-token:after{content:"";position:absolute;bottom:-5px;width:8px;height:8px;border-radius:50%;background:#101214;border:2px solid #ced6dc}.visual-token:before{left:4px}.visual-token:after{right:4px}
.visual-token i{position:absolute;left:50%;top:50%;transform:translate(-50%,-53%);font-style:normal;color:#07111b;font-size:9px;font-weight:950;text-shadow:0 1px 0 rgba(255,255,255,.6)}
.visual-current{position:absolute;transform:translate(-50%,-50%);width:55px;height:55px;border-radius:50%;border:3px solid #fff;box-shadow:0 0 0 5px rgba(255,212,84,.72),0 0 22px rgba(255,212,84,.85);animation:realPulse 1.25s ease-in-out infinite;pointer-events:none}
.visual-car-mask{position:absolute;z-index:2;background:#34383b;border:1px solid rgba(255,255,255,.07);box-shadow:inset 0 1px 0 rgba(255,255,255,.06);pointer-events:none}
.visual-car-mask:after{content:"";position:absolute;opacity:.75}
.mask-top{left:34.5%;top:11.1%;width:7.5%;height:3.4%;border-radius:7px}.mask-top:after{left:5%;right:5%;top:50%;border-top:2px dashed #e6e1c3}
.mask-bottom{left:51.5%;top:84.6%;width:7.8%;height:3.4%;border-radius:7px}.mask-bottom:after{left:5%;right:5%;top:50%;border-top:2px dashed #e6e1c3}
.mask-left{left:11.1%;top:49.4%;width:3.4%;height:7.4%;border-radius:7px}.mask-left:after{top:5%;bottom:5%;left:50%;border-left:2px dashed #e6e1c3}
.mask-right{left:84.7%;top:35.5%;width:3.4%;height:7.5%;border-radius:7px}.mask-right:after{top:5%;bottom:5%;left:50%;border-left:2px dashed #e6e1c3}

@media(max-width:900px){
  .board.visual-mode{border-width:6px}
  .visual-token{width:28px;height:14px}.visual-token:before,.visual-token:after{width:6px;height:6px;bottom:-4px}.visual-current{width:44px;height:44px}
  .visual-owner{font-size:7px;padding:3px 6px}.visual-entrance{width:8px;height:13px}.visual-facility{width:19px;height:19px;font-size:10px}
}
@media(max-width:560px){
  .board.visual-mode{border-width:4px;border-radius:14px}
  .visual-token{width:21px;height:11px;border-width:1px}.visual-token:before,.visual-token:after{width:5px;height:5px;bottom:-4px;border-width:1px}.visual-token i{font-size:7px}.visual-current{width:32px;height:32px;border-width:2px;box-shadow:0 0 0 3px rgba(255,212,84,.72),0 0 15px rgba(255,212,84,.8)}
  .visual-building{border-width:1px;box-shadow:4px 5px 0 color-mix(in srgb,var(--hotel2) 76%,#000),0 7px 9px rgba(0,0,0,.25)}
  .visual-owner{font-size:5.5px;bottom:-7px;padding:2px 4px}.visual-entrance{width:6px;height:9px;border-width:1px}.visual-facility{width:14px;height:14px;font-size:8px;border-width:1px}
  .visual-car-mask{border:0}
}

/* v1.6.1 — regolamento premium scaricabile */
.rules-download{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:18px;align-items:center;margin-bottom:22px;background:linear-gradient(135deg,#0b2b49,#06182a);border-color:#2a6e94}
.rules-download-icon{width:72px;height:88px;border-radius:14px;background:linear-gradient(180deg,#fff6dc,#eecf83);color:#0b2335;display:grid;place-items:center;font:900 22px/1 Impact,sans-serif;letter-spacing:1px;box-shadow:inset 0 0 0 2px rgba(255,255,255,.55),0 10px 25px rgba(0,0,0,.22);position:relative}
.rules-download-icon:after{content:"";position:absolute;right:0;top:0;border-left:16px solid transparent;border-bottom:16px solid #c89a3d}
.rules-download-copy>span{display:block;color:var(--yellow);font-size:11px;font-weight:900;letter-spacing:1.6px}
.rules-download-copy h3{margin:7px 0 6px;font-size:24px}.rules-download-copy p{margin:0;color:var(--muted);line-height:1.5}
.rules-download-actions{display:flex;gap:10px;flex-wrap:wrap;justify-content:flex-end}.rules-download-actions a{display:inline-flex;align-items:center;justify-content:center;text-decoration:none;white-space:nowrap}
@media(max-width:760px){.rules-download{grid-template-columns:auto 1fr}.rules-download-actions{grid-column:1/-1;justify-content:stretch}.rules-download-actions a{flex:1}.rules-download-icon{width:58px;height:72px;font-size:18px}}
@media(max-width:480px){.rules-download{grid-template-columns:1fr;text-align:center}.rules-download-icon{margin:auto}.rules-download-actions{display:grid;grid-template-columns:1fr}.rules-download-copy h3{font-size:21px}}

/* v1.8.0 — motore plancia reale 50° anniversario */
.board.visual-mode.real-edition-board{display:block!important;position:relative;aspect-ratio:817/713;background:#d6d6d6;border:8px solid #cab06b;border-radius:18px;overflow:hidden;isolation:isolate;box-shadow:0 28px 72px rgba(0,0,0,.46),inset 0 0 0 1px rgba(255,255,255,.14)}
.board.visual-mode.real-edition-board:before,.board.visual-mode.real-edition-board:after{display:none!important}
.real-board-base{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:0;user-select:none;-webkit-user-drag:none}
.real-board-light{position:absolute;inset:0;z-index:1;pointer-events:none;background:radial-gradient(circle at 50% 48%,rgba(255,255,255,.03),transparent 38%),linear-gradient(180deg,rgba(255,255,255,.06),transparent 18%,rgba(0,0,0,.04));box-shadow:inset 0 0 45px rgba(0,0,0,.08)}
.real-lot-layer,.real-construction-layer,.real-entrance-layer,.visual-token-layer{position:absolute;inset:0;pointer-events:none}.real-lot-layer{z-index:3}.real-construction-layer{z-index:5}.real-entrance-layer{z-index:7}.visual-token-layer{z-index:9}
.real-lot-hit{position:absolute;transform:translate(-50%,-50%);border:1px solid transparent;background:transparent;border-radius:18px;pointer-events:auto;cursor:pointer;padding:0;transition:.18s ease}
.real-lot-hit span,.real-lot-hit small{position:absolute;left:50%;transform:translateX(-50%);white-space:nowrap;opacity:0;transition:.18s ease;background:rgba(3,14,22,.9);border:1px solid var(--hotel);box-shadow:0 7px 16px rgba(0,0,0,.25)}
.real-lot-hit span{bottom:9px;color:var(--accent);font-weight:900;font-size:10px;padding:5px 8px;border-radius:999px}.real-lot-hit small{bottom:-12px;color:#f4fbff;font-size:8px;padding:4px 7px;border-radius:999px}
.real-lot-hit:hover,.real-lot-hit:focus-visible,.real-lot-hit.owned{outline:none;box-shadow:inset 0 0 0 2px color-mix(in srgb,var(--hotel) 64%,transparent),0 0 20px color-mix(in srgb,var(--hotel) 20%,transparent)}
.real-lot-hit:hover span,.real-lot-hit:hover small,.real-lot-hit:focus-visible span,.real-lot-hit:focus-visible small,.real-lot-hit.owned small{opacity:1}
.real-3d-building{position:absolute;transform:translate(-50%,-78%) rotate(var(--rot)) scale(var(--scale));transform-origin:50% 100%;width:58px;height:72px;border-radius:9px 9px 4px 4px;background:linear-gradient(90deg,color-mix(in srgb,var(--hotel) 78%,white 22%) 0%,var(--hotel) 45%,color-mix(in srgb,var(--hotel2) 76%,black 24%) 100%);border:2px solid color-mix(in srgb,var(--accent) 58%,white 42%);box-shadow:9px 10px 0 color-mix(in srgb,var(--hotel2) 58%,black 42%),0 16px 20px rgba(0,0,0,.34);animation:realBuildRise .35s cubic-bezier(.2,.8,.25,1) both;pointer-events:none}
.real-3d-building:before{content:"";position:absolute;left:7%;right:7%;top:-18%;height:22%;background:linear-gradient(180deg,color-mix(in srgb,var(--accent) 68%,white 32%),var(--hotel2));clip-path:polygon(50% 0,100% 100%,0 100%);filter:drop-shadow(0 2px 1px rgba(0,0,0,.25))}
.real-3d-building i{position:absolute;inset:14% 14% 12%;background:repeating-linear-gradient(90deg,rgba(220,250,255,.96) 0 12%,transparent 12.5% 28%),repeating-linear-gradient(180deg,rgba(220,250,255,.96) 0 10%,transparent 10.5% 25%);opacity:.88}.real-3d-building u{position:absolute;left:-3px;right:-10px;bottom:-10px;height:11px;background:rgba(0,0,0,.28);filter:blur(3px);border-radius:50%}.real-3d-building b{position:absolute;right:-7px;top:-9px;width:19px;height:19px;display:grid;place-items:center;border-radius:50%;background:#07121c;color:#fff;border:1px solid var(--hotel);font-size:9px}
.real-3d-building.shape-low{height:44px;width:74px;border-radius:14px 14px 5px 5px}.real-3d-building.shape-low:before{height:14%;top:-11%;clip-path:polygon(7% 100%,20% 20%,80% 20%,93% 100%)}
.real-3d-building.shape-tower{width:50px;height:83px}.real-3d-building.shape-stepped{width:62px;height:78px}.real-3d-building.shape-wide{width:70px;height:58px}.real-3d-building.shape-pyramid{width:62px;height:58px;clip-path:polygon(12% 100%,20% 34%,50% 0,80% 34%,88% 100%)}.real-3d-building.shape-pyramid:before{display:none}.real-3d-building.shape-peak{width:61px;height:62px}.real-3d-building.shape-peak:before{height:28%;top:-23%;clip-path:polygon(50% 0,92% 100%,8% 100%)}
.real-entrance{position:absolute;transform:translate(-50%,-50%) rotate(var(--a));width:18px;height:12px;border-radius:3px;background:linear-gradient(180deg,#fff4b6,#f2c84e 56%,#a8730c);border:1px solid #5a4008;box-shadow:0 3px 6px rgba(0,0,0,.38),0 0 0 2px color-mix(in srgb,var(--hotel) 45%,transparent);pointer-events:none}.real-entrance:before,.real-entrance:after{content:"";position:absolute;bottom:-4px;width:4px;height:5px;background:#4c3505;border-radius:1px}.real-entrance:before{left:2px}.real-entrance:after{right:2px}.real-entrance i{position:absolute;left:50%;top:-7px;transform:translateX(-50%);width:3px;height:7px;background:#dcae2b}
.real-facility{position:absolute;transform:translate(-50%,-50%);width:30px;height:30px;border-radius:50%;display:grid;place-items:center;background:radial-gradient(circle,#fff9cf,#ffd85d 58%,#c59216);color:#1b2d35;border:2px solid #7d5d0b;box-shadow:0 5px 10px rgba(0,0,0,.35),0 0 14px rgba(255,216,93,.55);font-weight:1000;z-index:6;pointer-events:none}
.special-building{position:absolute;z-index:4;transform:translate(-50%,-50%);pointer-events:none;text-align:center;filter:drop-shadow(0 8px 7px rgba(0,0,0,.28))}.special-building span{display:block;margin:auto;width:58px;height:44px;background:linear-gradient(90deg,#efe7d1,#c9b98c);border:2px solid #6d6654;border-radius:4px;position:relative;box-shadow:6px 7px 0 #84785b}.special-building span:before{content:"";position:absolute;left:-8px;right:-8px;top:-18px;height:20px;background:linear-gradient(#dfce9d,#a88e58);clip-path:polygon(50% 0,100% 100%,0 100%)}.special-building b{display:inline-block;margin-top:7px;background:rgba(4,15,23,.86);color:#f5e4a1;border-radius:999px;padding:3px 7px;font-size:7px;letter-spacing:.8px}.townhall-model{left:67.5%;top:18.2%}.bank-model{left:55.2%;top:94.2%}.bank-model span{background:linear-gradient(90deg,#d6e3de,#94b8af);box-shadow:6px 7px 0 #607c75}.bank-model span:before{background:linear-gradient(#c7ddd6,#769d91)}
.visual-token{position:absolute;transform:translate(-50%,-50%) rotate(var(--angle));transform-origin:50% 50%;width:35px;height:17px;border-radius:11px 11px 5px 5px;background:linear-gradient(180deg,color-mix(in srgb,var(--car) 78%,white 22%),var(--car) 55%,color-mix(in srgb,var(--car) 64%,black 36%));border:2px solid white;box-shadow:0 4px 10px rgba(0,0,0,.52),0 0 0 3px color-mix(in srgb,var(--car) 42%,transparent);transition:none;pointer-events:none}.visual-token:before,.visual-token:after{content:"";position:absolute;bottom:-5px;width:8px;height:8px;border-radius:50%;background:#111;border:2px solid #d1d9de}.visual-token:before{left:4px}.visual-token:after{right:4px}.visual-token i{position:absolute;left:50%;top:50%;transform:translate(-50%,-55%);font-style:normal;font-size:8px;font-weight:1000;color:#08121a;text-shadow:0 1px rgba(255,255,255,.55)}.visual-token.current-turn{box-shadow:0 4px 10px rgba(0,0,0,.55),0 0 0 3px color-mix(in srgb,var(--car) 55%,transparent),0 0 17px rgba(255,255,255,.35)}
.real-current-ring{position:absolute;transform:translate(-50%,-50%);width:52px;height:52px;border-radius:50%;border:3px solid #fff;box-shadow:0 0 0 5px rgba(255,212,84,.7),0 0 20px rgba(255,212,84,.82);animation:realPulse 1.25s ease-in-out infinite;pointer-events:none;z-index:8}
@keyframes realBuildRise{0%{opacity:0;transform:translate(-50%,-58%) rotate(var(--rot)) scale(calc(var(--scale)*.72))}100%{opacity:1;transform:translate(-50%,-78%) rotate(var(--rot)) scale(var(--scale))}}
@media(max-width:900px){.board.visual-mode.real-edition-board{border-width:6px}.real-3d-building{width:45px;height:58px;box-shadow:6px 7px 0 color-mix(in srgb,var(--hotel2) 58%,black 42%),0 11px 15px rgba(0,0,0,.3)}.real-3d-building.shape-low{width:58px;height:36px}.real-3d-building.shape-tower{width:40px;height:66px}.real-entrance{width:14px;height:10px}.special-building span{width:45px;height:35px}.visual-token{width:29px;height:14px}.visual-token:before,.visual-token:after{width:6px;height:6px;bottom:-4px}.real-current-ring{width:43px;height:43px}}
@media(max-width:560px){.board.visual-mode.real-edition-board{border-width:4px;border-radius:12px}.real-lot-hit span{font-size:6px;padding:3px 5px}.real-lot-hit small{font-size:5px;padding:2px 4px}.real-3d-building{width:28px;height:37px;border-width:1px;box-shadow:4px 4px 0 color-mix(in srgb,var(--hotel2) 58%,black 42%),0 7px 9px rgba(0,0,0,.27)}.real-3d-building.shape-low{width:38px;height:24px}.real-3d-building.shape-tower{width:25px;height:44px}.real-3d-building b{width:12px;height:12px;font-size:6px;right:-4px;top:-6px}.real-entrance{width:9px;height:7px;border-width:1px}.real-facility{width:17px;height:17px;font-size:8px;border-width:1px}.special-building span{width:29px;height:23px;border-width:1px;box-shadow:3px 4px 0 #84785b}.special-building span:before{top:-11px;height:12px}.special-building b{font-size:5px;padding:2px 4px;margin-top:4px}.visual-token{width:21px;height:10px;border-width:1px}.visual-token:before,.visual-token:after{width:5px;height:5px;bottom:-3px;border-width:1px}.visual-token i{font-size:6px}.real-current-ring{width:31px;height:31px;border-width:2px;box-shadow:0 0 0 3px rgba(255,212,84,.7),0 0 13px rgba(255,212,84,.78)}}

/* v1.8.1 — pedine nelle apposite caselle del percorso */
.real-route-layer{position:absolute;inset:0;z-index:4;pointer-events:none}
.real-route-space,.real-start-space{position:absolute;transform:translate(-50%,-50%) rotate(var(--rot));transform-origin:center center;border-radius:10px;pointer-events:none}
.real-route-space{width:34px;height:18px;background:rgba(255,255,255,.09);border:1.5px solid rgba(255,255,255,.28);box-shadow:inset 0 0 0 1px rgba(0,0,0,.12),0 3px 7px rgba(0,0,0,.16);backdrop-filter:blur(1px)}
.real-route-space:before{content:"";position:absolute;inset:3px;border-radius:7px;border:1px dashed rgba(255,255,255,.42);opacity:.75}
.real-route-space b{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%) rotate(calc(var(--rot) * -1));font-size:8px;line-height:1;color:rgba(255,255,255,.82);font-weight:900;text-shadow:0 1px 2px rgba(0,0,0,.5)}
.real-route-space.current{background:rgba(255,212,84,.18);border-color:rgba(255,245,201,.92);box-shadow:0 0 0 3px rgba(255,212,84,.28),0 6px 10px rgba(0,0,0,.18)}
.real-route-space.start{border-color:rgba(255,245,201,.92)}
.real-route-space.bank{background:rgba(138,224,255,.16)}
.real-route-space.town{background:rgba(237,169,255,.14)}
.real-route-space.build{background:rgba(147,240,137,.15)}
.real-route-space.free,.real-route-space.freebuild{background:rgba(255,178,171,.15)}
.real-start-space{width:28px;height:15px;background:rgba(255,255,255,.07);border:1.5px dashed rgba(255,255,255,.34);box-shadow:0 2px 6px rgba(0,0,0,.14)}
.visual-token{z-index:2}
.visual-token-layer{z-index:9}
.visual-token.current-turn{box-shadow:0 4px 10px rgba(0,0,0,.55),0 0 0 3px color-mix(in srgb,var(--car) 55%,transparent),0 0 17px rgba(255,255,255,.35),0 0 0 6px rgba(255,212,84,.12)}

@media(max-width:900px){
  .real-route-space{width:29px;height:15px}
  .real-route-space b{font-size:7px}
  .real-start-space{width:24px;height:13px}
}
@media(max-width:560px){
  .real-route-space{width:22px;height:12px;border-width:1px;border-radius:7px}
  .real-route-space:before{inset:2px;border-radius:5px}
  .real-route-space b{font-size:5px}
  .real-start-space{width:18px;height:10px;border-width:1px}
}


/* v1.8.2 — calibrazione fine delle caselle percorso */
.real-route-space{background:rgba(255,255,255,.14);border-color:rgba(255,246,211,.42);box-shadow:inset 0 0 0 1px rgba(0,0,0,.14),0 4px 8px rgba(0,0,0,.2)}
.real-route-space:before{border-color:rgba(255,255,255,.54)}
.real-route-space.current{background:rgba(255,212,84,.24);border-color:rgba(255,248,222,.98);box-shadow:0 0 0 3px rgba(255,212,84,.22),0 7px 12px rgba(0,0,0,.24)}
.real-start-space{background:rgba(255,255,255,.12);border-color:rgba(255,255,255,.52)}
.visual-token{box-shadow:0 5px 12px rgba(0,0,0,.56),0 0 0 3px color-mix(in srgb,var(--car) 42%,transparent)}
