@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=DM+Serif+Display:ital@0;1&display=swap');
:root{--ink:#224b44;--muted:#687e72;--paper:#f4f1e7;--green:#287766;--coral:#de745b;--gold:#edbd61;--line:#d8dece;--serif:'DM Serif Display',Georgia,serif;font-family:'DM Sans',system-ui,sans-serif;color:var(--ink);background:var(--paper);font-synthesis:none}*{box-sizing:border-box}body{margin:0;background:radial-gradient(ellipse at 80% 10%,#e7eddc,transparent 65%),var(--paper)}button,input,select{font:inherit}button,a,input,select{-webkit-tap-highlight-color:transparent}button{cursor:pointer;touch-action:manipulation}button:disabled{cursor:default;opacity:.46}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #d99435;outline-offset:4px}button{border:0}a{color:inherit}svg{width:100%;height:100%;display:block}.site-header{height:84px;margin:0 auto;max-width:1540px;padding:0 36px;display:flex;align-items:center;border-bottom:1px solid var(--line);gap:38px}.brand{text-decoration:none;font-weight:800;font-size:24px;letter-spacing:-1px}.brand span{color:#df775c}.brand i{color:#dfa84e;font-style:normal;padding-left:2px}.back-link{font-size:13px;text-decoration:none;color:var(--muted)}.header-actions{display:flex;gap:8px;margin-left:auto}.header-actions button,.quiet{background:transparent;color:var(--ink);font-size:12px;padding:10px 12px}.header-actions span{display:inline-grid;place-content:center;border:1px solid var(--ink);border-radius:50%;width:17px;height:17px;margin-left:6px}main{max-width:1480px;margin:auto;padding:36px}.eyebrow{font-size:10px;font-weight:800;letter-spacing:2px;text-transform:uppercase;margin:0 0 12px}.eyebrow .live{display:inline-block;width:6px;height:6px;border-radius:50%;background:#7a9d5e;margin-right:7px}.serif,h1,h2{font-family:var(--serif);font-weight:400;margin:0;letter-spacing:-1.5px}h1{font-size:clamp(46px,5vw,76px);line-height:1.04}h1 em,h2 em{color:var(--coral);font-weight:400}h2{font-size:36px;line-height:1.12}p{line-height:1.6}.muted,.fine{color:var(--muted);font-size:12px}.primary{background:var(--green);color:#fff9e8;padding:16px 20px;border-radius:12px;font-weight:700;box-shadow:0 4px 0 #175b50;display:inline-flex;align-items:center;justify-content:center;gap:18px;min-height:48px}.primary:hover:not(:disabled){background:#1e6859}.secondary{border:1px solid #c8d2c0;background:#f9f7ee;color:var(--ink);padding:12px 16px;border-radius:10px;font-size:13px;font-weight:600}.danger{color:#ac4d3f}.text-button{background:transparent;text-decoration:underline;color:var(--green);padding:12px;font-size:12px}.landing{display:grid;grid-template-columns:minmax(300px,.78fr) minmax(0,1.22fr);gap:42px;align-items:center}.intro{font-size:15px;color:var(--muted);max-width:350px;margin:18px 0 24px}.title-kicker{color:var(--coral);margin-bottom:13px}.setup-panel{background:#fffdf6;border:1px solid #d8dece;border-radius:20px;padding:22px;max-width:465px;box-shadow:0 12px 30px #395d4407}.city-select{display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);padding-bottom:17px;margin-bottom:17px;gap:12px}.city-select small{font-size:10px;letter-spacing:1.5px;font-weight:700;display:block;margin-bottom:5px}.city-select select{border:0;background:transparent;font-family:var(--serif);font-size:28px;color:var(--ink);padding:0;width:170px;letter-spacing:-.7px}.city-icon{width:48px;height:48px}.mode-tabs{display:flex;gap:5px;background:#edf0e5;padding:5px;border-radius:10px;margin-bottom:18px}.mode-tabs button{background:transparent;color:var(--muted);border-radius:7px;flex:1;font-size:12px;font-weight:700;padding:11px 5px}.mode-tabs button.selected{background:white;box-shadow:0 2px 6px #34503b12;color:var(--ink)}label{display:block;font-size:11px;font-weight:700;letter-spacing:.3px}input,select{width:100%;border:1px solid var(--line);background:#fffef9;padding:11px 12px;border-radius:8px;color:var(--ink);margin-top:6px;min-height:42px}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:12px 0}.names{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:12px 0}.wide{width:100%;margin-top:14px}.join-line{display:flex;align-items:end;gap:9px;border-top:1px solid var(--line);padding-top:15px;margin-top:18px}.join-line label{flex:1}.join-line input{text-transform:uppercase;letter-spacing:3px;font-size:15px}.join-line button{height:44px}.setup-foot{font-size:10px;color:var(--muted);text-align:center;margin:16px 0 0}.preview-side{position:relative;min-width:0}.edition-heading{display:flex;align-items:center;justify-content:center;gap:13px;margin-bottom:24px}.edition-heading span{height:1px;background:#bdc8b1;width:46px}.edition-heading p{font-size:10px;letter-spacing:2px;margin:0;font-weight:700}.preview-caption{text-align:center;margin:26px 0 0;color:var(--muted);font-size:12px}.preview-caption b{font-family:var(--serif);font-size:22px;display:block;color:var(--ink);font-weight:400;letter-spacing:-.5px}.feature-strip{display:flex;justify-content:center;gap:60px;padding:34px 0 0;margin-top:36px;border-top:1px solid var(--line)}.feature-strip div{display:flex;align-items:center;gap:10px;font-size:12px}.feature-strip svg{width:35px;height:35px}.feature-strip b{display:block;font-size:13px}.feature-strip small{color:var(--muted)}footer{text-align:center;font-size:10px;color:var(--muted);margin:34px 0 0}.board-scroll{width:100%;padding:12px 10px 23px;overflow:auto;overscroll-behavior-x:contain;border-radius:18px}.board{position:relative;display:grid;grid-template-columns:repeat(9,minmax(0,1fr));grid-template-rows:repeat(9,minmax(0,1fr));aspect-ratio:1;width:100%;min-width:0;container-type:inline-size;background:#f9f6e9;border:7px solid #fbf6e6;border-radius:16px;box-shadow:0 7px 0 #c9bc9c,0 11px 0 #ac9d7e,0 19px 32px #294a3825;isolation:isolate;gap:2px;outline:1px solid #d6cfb7}.tile{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;padding:3px 2px 8px;background:#fffdf2;border:1px solid #d5dbcb;color:var(--ink);border-radius:3px;min-width:0;overflow:hidden;font-size:clamp(6px,1.15cqw,10px);line-height:1.1}.tile:hover{background:#fff0cf;z-index:2}.tile-name{font-weight:700;text-wrap:balance;max-width:100%}.tile small{font-size:.85em;font-weight:600;color:#798575}.tile svg{width:38%;height:30%;min-height:10px}.tile .band{position:absolute;left:0;right:0;top:0;height:12%;background:var(--color)}.tile.property{padding-top:15%}.tile .owner-strip{position:absolute;bottom:0;height:5px;left:0;right:0;background:var(--owner)}.tile.mortgaged{opacity:.5}.tile .houses{position:absolute;right:3px;top:16%;font-size:9px;color:#285749;background:#e7f1c9;border-radius:2px;padding:1px}.tile.corner{background:#edf1df}.tile.corner .tile-name{font-size:1.1em}.tile:has(.owner-strip){border-color:var(--owner)}.city-center{grid-row:2/9;grid-column:2/9;border-radius:6px;background:radial-gradient(ellipse at 50% 40%,#f4f5df 10%,var(--city-sky,#ddf0e2) 70%);position:relative;overflow:hidden;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:4%;pointer-events:none}.center-edition{font-size:clamp(7px,1.4cqw,12px);letter-spacing:2px;font-weight:600;text-transform:uppercase;margin-top:1%}.city-center h2{font-size:clamp(25px,6.3cqw,56px);color:var(--city-accent,#287f73);line-height:1}.center-art{width:115%;height:55%;margin-top:-1%;margin-bottom:-4%;flex-shrink:0}.center-logo{font-size:clamp(9px,1.5cqw,14px);text-transform:uppercase;letter-spacing:3px;font-weight:800}.center-note{font-size:clamp(7px,1.3cqw,11px);color:#5b7e6e;margin:6px 0 0}.center-seal{font-family:var(--serif);color:#7a9881;font-size:clamp(12px,2.2cqw,19px);margin-top:8px}.piece{position:absolute;width:5%;height:5%;z-index:6;left:var(--x);top:var(--y);transform:translate(-50%,-50%);transition:left .18s ease-in-out,top .18s ease-in-out;filter:drop-shadow(0 2px 1px #254a4945);pointer-events:none}.piece.current:before{content:'';position:absolute;inset:-10%;border:2px solid var(--piece);border-radius:50%;background:#fffdf174;z-index:-1}.piece.current svg{animation:bob 2.4s ease-in-out infinite}.board-key{display:flex;justify-content:center;gap:16px;color:var(--muted);font-size:10px;margin-top:7px}.board-key i{display:inline-block;width:7px;height:7px;background:var(--green);border-radius:50%;margin-right:5px}.game-top{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:19px}.game-top h1{font-size:32px;letter-spacing:-1px}.game-top .eyebrow{margin-bottom:6px;font-size:9px}.top-buttons{display:flex;gap:8px;align-items:center}.round-badge{font-size:11px;padding:9px 13px;background:#e7ebdb;border-radius:100px;white-space:nowrap}.game-layout{display:grid;grid-template-columns:minmax(0,1fr) 310px;gap:30px;max-width:1270px;margin:auto}.table-area{min-width:0}.table-toolbar{display:flex;justify-content:space-between;gap:8px;align-items:center;padding:0 10px;margin-bottom:5px;font-size:11px;color:var(--muted)}.table-toolbar button{background:transparent;color:var(--ink);padding:7px;font-size:11px}.zoomed .board{min-width:700px}.turn-panel{background:#fffdf5;border:1px solid #d9dfce;border-radius:20px;padding:22px;margin-top:10px}.turn-label{display:flex;align-items:center;gap:11px;border-bottom:1px solid var(--line);padding-bottom:16px;margin-bottom:18px}.avatar{width:42px;height:42px;border-radius:50%;background:var(--avatar-bg,#ebefe0);display:block;padding:4px;flex-shrink:0}.turn-label .avatar{width:50px;height:50px}.turn-label h2{font-size:26px}.turn-label small{font-size:10px;color:var(--muted);display:block;margin-top:3px}.cash{margin-left:auto;font-size:19px;font-weight:700;letter-spacing:-1px}.dice-tray{display:flex;justify-content:center;gap:14px;margin:22px 0}.die{width:64px;height:64px;filter:drop-shadow(0 4px 0 #cdbd99);transform:rotate(-9deg)}.die:nth-child(2){transform:rotate(12deg)}.rolling .die{animation:dice-roll .17s infinite alternate}.turn-instruction{font-family:var(--serif);font-size:24px;line-height:1.15;text-align:center;margin:0 0 12px}.turn-hint{font-size:12px;line-height:1.6;color:var(--muted);text-align:center}.turn-actions{display:grid;gap:9px;margin-top:15px}.turn-actions .primary{width:100%}.action-link{background:transparent;color:var(--green);font-size:12px;text-decoration:underline;padding:9px}.manage-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:20px;padding-top:18px;border-top:1px solid var(--line)}.manage-actions button{font-size:11px;padding:11px 5px}.roster{margin-top:20px}.roster>p{font-size:9px;letter-spacing:2px;margin:0 0 12px;font-weight:700}.player-row{display:flex;gap:9px;align-items:center;padding:11px 2px;border-bottom:1px solid var(--line)}.player-row .avatar{width:34px;height:34px}.player-row strong{font-size:12px;display:block;max-width:130px;overflow-wrap:anywhere}.player-row small{font-size:10px;color:var(--muted)}.player-row .money{margin-left:auto;text-align:right;font-size:13px;font-weight:700}.player-row.out{opacity:.45}.player-row.active{background:#e8eeda;border-radius:9px;padding-inline:7px}.holdings{display:flex;gap:2px;margin-top:5px;flex-wrap:wrap}.holdings i{height:4px;width:12px;border-radius:2px;background:var(--c)}.log{margin:22px 0}.log summary{font-size:12px;cursor:pointer}.log ol{list-style:none;padding:0;font-size:11px;color:var(--muted);max-height:220px;overflow:auto}.log li{padding:7px 0;border-bottom:1px solid var(--line);line-height:1.5}.event-card{padding:12px;background:#f1e9d3;border:1px solid #e3d6b6;border-radius:10px;margin-top:15px;font-size:11px}.event-card b{display:block;color:#996545;margin-bottom:4px}.connection{font-size:10px;padding:8px 12px;border-radius:20px;background:#e3eddc;color:#567650;display:flex;align-items:center;gap:6px}.connection.bad{background:#fae2d1;color:#a34f3d}.lobby{max-width:1100px;margin:20px auto;display:grid;grid-template-columns:1fr 1fr;gap:50px;align-items:center}.lobby h1{font-size:60px}.room-code{font-family:var(--serif);font-size:50px;letter-spacing:7px;line-height:1;padding:18px 0}.invite-box{background:#fffdf5;padding:24px;border:1px solid var(--line);border-radius:18px;margin:25px 0}.invite-box .eyebrow{margin-bottom:2px}.invite-actions{display:flex;gap:8px}.seat-list{padding:0;margin:20px 0;list-style:none}.seat{display:flex;align-items:center;gap:12px;padding:14px;background:#faf9f1;border:1px solid var(--line);border-radius:12px;margin-top:8px}.seat small{display:block;color:var(--muted);font-size:10px;margin-top:4px}.seat .seat-end{margin-left:auto}.seat button{background:none;color:var(--muted);font-size:12px;padding:8px}.seat.empty{border-style:dashed;color:var(--muted)}.lobby-art{background:#e4ecd9;border-radius:50% 50% 24px 24px;position:relative;padding:30px 8px 35px}.lobby-art h2{text-align:center;font-size:48px;margin-top:20px}.lobby-art p{text-align:center;margin:5px 0;font-size:12px}.lobby-art svg{height:auto}.notice{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);z-index:50;background:#234f44;color:#fff6e0;padding:12px 20px;border-radius:12px;font-size:13px;max-width:90vw;box-shadow:0 8px 25px #1a372633;margin:0;pointer-events:none}.notice:empty{display:none}dialog{border:1px solid var(--line);background:#fffdf5;color:var(--ink);border-radius:22px;padding:28px;width:min(540px,calc(100% - 28px));max-height:88dvh;box-shadow:0 20px 70px #233f4a40}dialog::backdrop{background:#183e3dcc;backdrop-filter:blur(4px)}dialog h2{margin:10px 0 16px}dialog p,dialog li{font-size:13px;line-height:1.6}dialog ol{padding-left:20px}dialog li{margin-bottom:13px}.modal-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.modal-head button{font-size:25px;width:35px;height:35px;border-radius:50%;background:#ebefdf;color:var(--ink)}.modal-head .eyebrow{margin:0}.deed-art{width:70px;height:70px;margin:8px auto}.deed-color{height:10px;background:var(--color);border-radius:6px;margin:16px 0}.deed-price{font-family:var(--serif);font-size:35px;color:var(--coral)}.deed-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;padding:14px 0}.deed-grid p{margin:0;font-size:11px}.deed-grid b{display:block;font-size:16px;margin-top:3px}.deed-table{width:100%;font-size:12px;border-collapse:collapse}.deed-table th,.deed-table td{padding:8px 0;border-bottom:1px solid var(--line);text-align:left;font-weight:400}.deed-table td{text-align:right;font-weight:700}.deed-buttons{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:18px}.portfolio-list{display:grid;gap:8px}.portfolio-item{display:flex;align-items:center;gap:10px;padding:12px;background:#f0f2e5;border-radius:10px;color:var(--ink);text-align:left;width:100%;font-size:12px}.portfolio-item i{width:7px;height:30px;border-radius:3px;background:var(--color)}.portfolio-item small{margin-left:auto;white-space:nowrap;font-size:10px}.trade-status{background:#f4e7d0;border-radius:12px;padding:16px;margin:14px 0;font-size:12px}.result{max-width:900px;margin:20px auto;text-align:center}.result h1{font-size:64px}.result-art{max-width:380px;margin:auto}.result-ranking{max-width:480px;margin:24px auto;text-align:left}.result-ranking .player-row{padding:16px;font-size:16px}.result-actions{display:flex;justify-content:center;gap:12px;flex-wrap:wrap}.results-note{font-size:12px;color:var(--muted)}.show-mobile{display:none}@keyframes bob{50%{transform:translateY(-3px)}}@keyframes dice-roll{to{transform:rotate(22deg) translateY(-8px)}}
@media(min-width:1500px){.game-layout{grid-template-columns:minmax(0,850px) 310px}.landing{gap:70px}.board{max-width:850px}}@media(max-width:1080px){main{padding:25px}.landing{gap:20px;grid-template-columns:.85fr 1.15fr}.setup-panel{padding:17px}.game-layout{gap:14px;grid-template-columns:minmax(0,1fr) 280px}.turn-panel{padding:17px}.feature-strip{gap:30px}.site-header{padding:0 25px}.lobby{gap:25px}}@media(max-width:760px){.site-header{height:65px;padding:0 17px;gap:18px}.brand{font-size:21px}.back-link{display:none}.header-actions{gap:0}.header-actions button{font-size:10px;padding:9px}.header-actions span{display:none}main{padding:25px 16px 36px}.landing{display:flex;flex-direction:column;gap:28px}.landing-copy{width:100%}.landing h1{font-size:54px}.title-kicker{font-size:9px}.intro{font-size:14px;max-width:none}.setup-panel{max-width:none;padding:20px}.preview-side{width:100%;max-width:560px}.edition-heading{margin-bottom:10px}.feature-strip{gap:20px;flex-wrap:wrap;justify-content:flex-start;margin-top:20px;padding-top:25px}.feature-strip div{min-width:42%}.feature-strip svg{width:28px}.game-top{align-items:flex-start;gap:7px;margin-bottom:14px}.game-top h1{font-size:28px}.game-top .eyebrow{font-size:8px}.top-buttons{flex-wrap:wrap;justify-content:flex-end;gap:4px}.top-buttons .secondary{padding:8px 10px;font-size:10px}.round-badge{font-size:9px;padding:8px 9px}.game-layout{display:flex;flex-direction:column;gap:5px}.table-area{width:100%}.board-scroll{padding:6px 3px 20px;margin:0 -4px;width:calc(100% + 8px)}.board{border-width:4px;gap:1px;border-radius:10px;box-shadow:0 5px 0 #c9bc9c,0 8px 0 #ac9d7e,0 12px 20px #294a3825}.tile{font-size:clamp(5.5px,1.42cqw,10px);padding-inline:1px;padding-bottom:4px;gap:1px}.tile svg{width:31%;height:28%;min-height:0}.tile .houses{font-size:6px;padding:0;right:1px}.tile .owner-strip{height:3px}.piece{width:5.8%;height:5.8%}.center-note{margin-top:3px}.center-seal{margin-top:4px}.board-key{font-size:9px;gap:10px;margin-top:1px}.table-toolbar{font-size:10px;padding:0 2px}.turn-panel{margin-top:14px;padding:18px;border-radius:16px}.turn-label{margin-bottom:10px;padding-bottom:12px}.turn-label .avatar{width:40px;height:40px}.turn-label h2{font-size:23px}.turn-label small{font-size:9px}.turn-instruction{font-size:23px}.dice-tray{margin:14px 0;gap:12px}.die{width:50px;height:50px}.turn-hint{margin:8px 0}.turn-actions{margin-top:12px}.manage-actions{margin-top:16px;padding-top:13px}.roster{display:grid;grid-template-columns:1fr 1fr;gap:4px 10px}.roster>p{grid-column:1/-1;margin:8px 0 3px}.player-row{padding:9px 3px;gap:6px}.player-row .avatar{width:30px;height:30px}.player-row strong{font-size:11px;max-width:90px}.player-row .money{font-size:12px}.player-row small{font-size:8px}.connection{font-size:9px;max-width:180px;padding:6px 9px}.lobby{display:flex;flex-direction:column;margin:5px 0;gap:20px}.lobby>div{width:100%}.lobby h1{font-size:47px}.lobby-art{order:2;padding:20px 0}.lobby-art h2{font-size:38px}.invite-box{margin:20px 0}.room-code{font-size:43px}.lobby-art svg{max-height:260px}.result h1{font-size:47px}.result-ranking{width:100%}.result-ranking .player-row strong{max-width:180px;font-size:14px}.result-ranking .money{font-size:16px}.notice{bottom:18px;width:max-content;max-width:90vw;font-size:12px}.show-mobile{display:block}.deed-buttons{grid-template-columns:1fr}.feature-strip small{font-size:10px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}

/* A bright travel-tabletop edition with real neighborhood photographs. */
:root{--green:#128b76;--coral:#f16c53;--gold:#ffca4f;--ink:#244d54;--muted:#5c787a;--paper:#f6f6ed;--line:#cbded8}
body{background:radial-gradient(ellipse at 92% 8%,#d8c4fa70,transparent 38%),radial-gradient(ellipse at 4% 25%,#9ce6de66,transparent 42%),linear-gradient(145deg,#fff8e6,#eff9f2 65%,#eaf0ff)}
.site-header{border-bottom-color:#bddbd1}.brand span{color:#f16c53}.primary{background:linear-gradient(135deg,#15a28b,#0d7e76);box-shadow:0 4px 0 #075e5d,0 8px 18px #15a28b22}.primary:hover:not(:disabled){background:linear-gradient(135deg,#13b396,#0b8d83)}
.setup-panel{border:2px solid #cce8db;box-shadow:0 9px 0 #e0ead6,0 20px 45px #388f7b13;background:linear-gradient(155deg,#fffef7,#f3fff8)}
.mode-tabs{background:#e7e8fb}.mode-tabs button.selected{background:#fff;color:#7151b0;box-shadow:0 3px 7px #7969b321}.city-icon{background:#ffe8c6;padding:5px;border-radius:14px;transform:rotate(7deg)}
.landing h1 em{color:#ed7059}.preview-side:before{content:'';position:absolute;width:90%;height:90%;left:6%;top:5%;background:linear-gradient(120deg,#7ce3cb45,#9daff33d,#facb6e45);border-radius:50%;filter:blur(28px);z-index:-1}
.board{background:#7a9f9c;border-color:#fff6dd;box-shadow:0 7px 0 #e6bb7a,0 12px 0 #b18858,0 22px 40px #285c6033;gap:3px;outline:2px solid #ead3a5}
.tile{background:#fffef4;border-color:#e4e6ca}.tile.property{background:color-mix(in srgb,var(--color) 13%,#fffdf5);padding-top:16%;gap:2px}.tile .band{height:12%;box-shadow:0 2px 0 #ffffff70 inset}.tile .owner-strip{height:6px;border-top:1px solid #fff8}.tile-name{color:#203f46;text-shadow:0 1px #ffffff80}.tile small{color:#4b6a68}
.tile.has-photo{padding-top:14%;justify-content:flex-start}.tile.has-photo>svg{display:none}.place-photo{width:100%;height:44%;min-height:0;flex-shrink:0;object-fit:cover;border-bottom:1px solid #ffffffa6;border-radius:2px;filter:saturate(1.12)}.tile.has-photo .tile-name{padding:1px 2px 0;flex:1;display:flex;align-items:center;justify-content:center;width:100%;font-size:.94em;line-height:1.05}.tile.has-photo small{padding-bottom:1px}.tile.photo-failed>.place-photo{display:none}.tile.photo-failed>svg{display:block;margin:auto}
.tile.corner{background:#ffe1b1}.tile.corner:nth-of-type(9){background:#c2def6}.tile.corner:nth-of-type(17){background:#bef0c5}.tile.corner:nth-of-type(25){background:#ffc6bf}.tile:not(.property):not(.corner){background:#f1e8ff}.tile:nth-of-type(7),.tile:nth-of-type(27){background:#ffedb5}
.city-center{background:radial-gradient(ellipse at 50% 36%,#fffbd7 0%,#c6efdf 58%,#b5ddf1 100%);border:2px solid #f8ffec;padding:3%}.city-center:after{content:'';position:absolute;inset:3%;border:1px dashed #6fae9e66;border-radius:10px;pointer-events:none}.city-center h2{color:#157969;text-shadow:0 2px #fff8}.center-art{height:43%;margin-top:-1%;margin-bottom:-5%;width:115%}.center-seal{display:none}.center-edition{color:#39796e;letter-spacing:1.5px}.center-logo{margin-top:3%}.center-note{color:#356e68;margin:3px 0 0}
.city-postcards{display:flex;justify-content:center;width:89%;gap:4%;height:22%;position:relative;z-index:1;margin-top:0}.city-postcard{width:31%;background:#fffdf5;padding:3px 3px 2px;box-shadow:0 3px 8px #385c7730;transform:rotate(-7deg);display:flex;flex-direction:column;border-radius:3px}.city-postcard:nth-child(2){transform:rotate(4deg) translateY(-6%)}.city-postcard:nth-child(3){transform:rotate(-3deg)}.postcard-photo{width:100%;height:76%;object-fit:cover;min-height:0}.city-postcard span{display:flex;align-items:center;justify-content:center;flex:1;font-size:clamp(5px,1.15cqw,10px);font-weight:700;color:#335d60;white-space:nowrap;overflow:hidden;padding:2px}
.piece{filter:drop-shadow(0 3px 2px #29485c70)}.piece.current:before{border-width:3px;inset:-14%;background:#fffcdfc9;box-shadow:0 0 0 3px #fff7}
.turn-panel{background:linear-gradient(160deg,#fffdf3,#ecfaf5);border:2px solid #b7dfd0;box-shadow:0 5px 0 #d2e9d8}.dice-tray{background:linear-gradient(120deg,#a9e8d8,#c1d0f5);border:1px solid #9fcabf;border-radius:15px;padding:15px;box-shadow:inset 0 3px 10px #296d6412}.round-badge{background:#fff0b9;color:#876122}.player-row.active{background:#d0efdd;border:1px solid #a9d5bc}.event-card{background:linear-gradient(135deg,#fff0b7,#ffdfc4);border-color:#e8c77e}.connection{background:#c9efdd;color:#197555}.lobby-art{background:linear-gradient(145deg,#c2efd3,#bee6ef 65%,#e7d6ff);border:3px solid #fff6d6;box-shadow:0 7px 0 #bdd2c3}.invite-box{border:2px solid #dfd3ef;background:linear-gradient(150deg,#fffdf7,#f4edff)}.room-code{color:#8154af}.seat:nth-child(4n+1){background:#fff0e8}.seat:nth-child(4n+2){background:#e7f4ff}.seat:nth-child(4n+3){background:#f1eaff}.seat:nth-child(4n+4){background:#fff5d7}
.deed-image{margin:14px -6px 0;border-radius:13px;overflow:hidden}.deed-photo{display:block;width:100%;height:220px;object-fit:cover}.photo-caption{font-size:10px!important;color:var(--muted);line-height:1.45!important;margin:7px 0 15px}.photo-caption a{display:inline-block;margin-left:7px;color:#71539d}.deed-color{height:12px}.deed-table tr:nth-child(even){background:#eef7ed}.deed-table th,.deed-table td{padding-inline:8px}.deed-buttons .primary{font-size:13px}.feature-strip svg{padding:3px;background:#fff6df;border-radius:9px}.feature-strip div:nth-child(2) svg{background:#ebe1ff}.feature-strip div:nth-child(3) svg{background:#d9f3ea}footer a{margin-left:7px;color:#76599a}
@media(max-width:760px){.board{gap:1px;border-width:5px;box-shadow:0 5px 0 #e6bb7a,0 8px 0 #b18858,0 14px 25px #285c6033}.tile.has-photo .tile-name{font-size:.91em;padding:0 1px}.tile.has-photo .place-photo{height:43%}.tile.has-photo small{font-size:.85em;padding:0}.tile .owner-strip{height:3px}.city-postcard{padding:2px}.center-logo{letter-spacing:2px}.city-center{padding:2%}.center-edition{font-size:clamp(5px,1.25cqw,9px);letter-spacing:1px}.center-note{font-size:clamp(6px,1.4cqw,10px)}.turn-panel{padding:16px}.dice-tray{padding:10px}.deed-photo{height:190px}.piece.current:before{border-width:2px;box-shadow:0 0 0 2px #fff7}}

.board-key{flex-wrap:wrap}.board-key a{color:#71539d;white-space:nowrap}

/* Miniature tabletop: shallow perspective keeps every property readable. */
.preview-controls{display:flex;align-items:center;justify-content:center;gap:14px;margin-bottom:5px}.preview-controls>span{font-size:8px;letter-spacing:1.5px;color:#69878b;font-weight:700}
.depth-toggle,.table-toolbar .depth-toggle{display:inline-flex;align-items:center;justify-content:center;gap:6px;white-space:nowrap;border:1px solid #bbd4ca;border-radius:100px;background:#fffdf5;color:#356d68;padding:9px 13px;font-size:11px;font-weight:700;box-shadow:0 2px 0 #d2dfd4;min-height:36px}.depth-toggle[aria-pressed=true]{background:#234e55;color:#fff7dc;border-color:#234e55;box-shadow:0 3px 0 #15363c}.depth-toggle span{font-size:19px;line-height:12px}.table-toolbar>span{margin-right:auto}
.board-scroll{perspective:1500px;padding:24px 15px 48px;background:radial-gradient(ellipse at 50% 72%,#93bba637,transparent 65%);border-radius:28px}
.board{transform-origin:center 55%;transition:transform .4s ease,box-shadow .4s ease;border:8px solid #fff3d3;border-radius:18px;gap:3px;background:#8cafa4;outline:1px solid #bf9967;box-shadow:0 2px 0 #fff9eb,0 6px 0 #e9c68c,0 10px 0 #d0a166,0 14px 0 #ac794d,0 17px 0 #7a5a40,0 25px 20px -7px #264e5466,0 40px 48px -14px #2d655b55}
#app[data-depth=raised] .board{transform:rotateX(14deg)}
#app[data-depth=raised] .preview-side .board{transform:rotateX(20deg) rotateZ(-2deg) scale(.96)}
.tile{border-radius:5px;box-shadow:inset 0 1px 0 #ffffff,0 2px 0 #a6b7a2,0 3px 3px #214b4533;transition:transform .16s ease,box-shadow .16s ease,filter .16s ease}
#app[data-depth=raised] .tile{transform:translateY(-2px);background-image:linear-gradient(145deg,#ffffff60,transparent 60%,#254c5010)}
@media(hover:hover){#app[data-depth=raised] .tile:hover{transform:translateY(-5px);box-shadow:inset 0 1px #fff,0 4px 0 #b4bea4,0 8px 10px #2f56583b;filter:brightness(1.04);z-index:3}.primary:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 6px 0 #075e5d,0 12px 22px #15a28b33}}
.tile:focus-visible{z-index:7;outline-offset:1px}.tile .band{background:linear-gradient(180deg,#ffffff55,transparent 45%,#00000018),var(--color);border-bottom:1px solid #ffffffaa;box-shadow:inset 0 1px 1px #fff9,0 2px 2px #31524d25}.tile .place-photo{box-shadow:inset 0 1px 3px #153e4933;border:1px solid #fff8;border-radius:3px}.tile .owner-strip{background:linear-gradient(180deg,#ffffff55,transparent),var(--owner);box-shadow:0 -1px 2px #173c4b22}.tile>svg{filter:drop-shadow(1px 2px 0 #31564e30)}
.city-center{border:3px solid #fbffe9;border-radius:12px;background:radial-gradient(ellipse at 36% 30%,#fff8d7 0%,#daf3d5 30%,#b1e1da 65%,#99cbd4 100%);box-shadow:inset 0 4px 9px #275a6024,0 1px 0 #faffea}
.city-center:before{content:'';position:absolute;inset:0;opacity:.16;background-image:linear-gradient(30deg,transparent 48%,#6caaa6 49%,#6caaa6 50%,transparent 51%),linear-gradient(150deg,transparent 48%,#6caaa6 49%,#6caaa6 50%,transparent 51%);background-size:46px 27px;pointer-events:none}.city-center:after{border:1px solid #fff9;inset:2%;border-radius:8px;box-shadow:0 0 0 1px #6ba59e35}.city-center>*{position:relative;z-index:1}.city-center h2{color:#166e67;text-shadow:0 1px #ecffdd,0 2px #b1d5b7,0 3px #8bb8a6,0 5px 5px #33757522}.center-art{height:45%;width:116%;margin-bottom:-6%;filter:drop-shadow(0 8px 4px #28595428);transform:translateY(-2%)}.center-art svg{overflow:visible}.center-logo{color:#245952;text-shadow:0 1px #fff}.center-edition{background:#fffdf3a8;border:1px solid #fff9;padding:1% 3%;border-radius:30px;box-shadow:0 2px 3px #46775f13}
.city-postcard{border:1px solid #fff;box-shadow:0 2px 0 #d7cfb7,0 5px 0 -1px #bfbca7,2px 10px 12px #315a5e38;background:linear-gradient(140deg,#fff,#fff8e2)}.postcard-photo{border:1px solid #536b6729}.city-postcard:nth-child(2){transform:rotate(4deg) translateY(-11%);z-index:2}.city-postcard:nth-child(3){transform:rotate(8deg) translateY(2%)}
.piece{width:6%;height:7.5%;filter:drop-shadow(2px 5px 2px #1a424c5c);z-index:8}.piece.current:before{inset:50% -9% -5%;background:#fff9c9bb;border:2px solid var(--piece);box-shadow:0 0 0 2px #fff8,0 0 12px var(--piece);transform:rotate(-8deg)}.piece.current svg{animation:miniature-bob 2.8s ease-in-out infinite}.piece svg{overflow:visible;transform-origin:50% 85%}.avatar{padding:1px;box-shadow:inset 0 2px 3px #244c4e17,0 1px 0 #fff}.avatar svg{filter:drop-shadow(0 2px 1px #24424b26)}
.tile .houses{top:auto;bottom:9%;right:0;width:70%;height:44%;padding:0;background:none;z-index:3;filter:drop-shadow(0 2px 1px #204e5633);pointer-events:none}.tile .houses svg{width:100%;height:100%;min-height:0}.tile:has(.houses) .place-photo{filter:saturate(.9) brightness(.94)}
.dice-tray{min-height:116px;gap:18px;border:5px solid #b7d9cc;border-bottom-color:#8cb4aa;background:radial-gradient(ellipse at 40% 20%,#4e9187,#316b69);box-shadow:inset 0 4px 8px #133c4d70,0 2px 0 #efffed,0 5px 0 #799e92,0 10px 15px -6px #254e4f55;border-radius:20px;padding:12px 20px}.die{width:70px;height:76px;filter:drop-shadow(3px 6px 3px #123f4d50);transform:rotate(-12deg)}.die:nth-child(2){transform:rotate(13deg) translateY(-3px)}.rolling .die{animation:tabletop-tumble .18s infinite alternate}.rolling .die:nth-child(2){animation-delay:-.09s}
.setup-panel,.turn-panel{box-shadow:0 2px 0 #fff inset,0 6px 0 #d4e4ce,0 9px 0 #b8ccbd,0 18px 30px -13px #356b5a55}.turn-panel{background:linear-gradient(145deg,#fffef4,#eef8e8)}.primary{transition:transform .16s ease,box-shadow .16s ease;border-top:1px solid #ffffff66}.primary:active:not(:disabled){transform:translateY(3px);box-shadow:0 1px 0 #075e5d}.secondary{box-shadow:0 2px 0 #d9dfcb;background:linear-gradient(#fffef7,#f2f3e5)}
.deed-image{border:6px solid #fff;box-shadow:0 3px 0 #ded9c4,0 9px 17px -7px #365e6355;transform:rotate(-1deg);margin:16px 0}.deed-color{box-shadow:inset 0 2px 0 #ffffff70,0 3px 0 color-mix(in srgb,var(--color),#223d44 30%)}.deed-art{filter:drop-shadow(3px 6px 2px #1d564c30)}dialog{box-shadow:0 5px 0 #e8ddc4,0 10px 0 #c8bda6,0 30px 80px #133b4e66}
#app[data-depth=flat] .board{transform:none;box-shadow:0 4px 0 #d3b689,0 12px 22px #285c6025}#app[data-depth=flat] .tile{transform:none}#app[data-depth=flat] .piece.current svg{animation:none}
@keyframes miniature-bob{50%{transform:translateY(-3px) rotate(-4deg)}}@keyframes tabletop-tumble{to{transform:translateY(-12px) rotate(26deg) scale(1.05)}}
@media(max-width:760px){.board-scroll{padding:16px 6px 32px;perspective:950px}.board{border-width:5px;gap:1px;border-radius:11px;box-shadow:0 3px 0 #e9c68c,0 6px 0 #d0a166,0 9px 0 #ac794d,0 12px 0 #7a5a40,0 18px 20px -6px #264e5466}.tile{border-radius:3px}#app[data-depth=raised] .board{transform:rotateX(8deg)}#app[data-depth=raised] .preview-side .board{transform:rotateX(12deg) rotateZ(-1deg) scale(.97)}#app[data-depth=raised] .tile{transform:translateY(-1px)}.city-center{border-width:2px;border-radius:6px}.center-edition{letter-spacing:.6px}.piece{width:6.5%;height:8%}.piece.current:before{border-width:1.5px;box-shadow:0 0 0 1px #fff8,0 0 6px var(--piece)}.preview-controls{gap:9px}.preview-controls>span{font-size:7px;letter-spacing:.7px}.depth-toggle,.table-toolbar .depth-toggle{font-size:10px;padding:7px 9px;min-height:36px}.table-toolbar{flex-wrap:wrap;gap:4px}.table-toolbar>span{flex:1 1 100%}.table-toolbar #zoom{margin-left:auto;min-height:36px}.dice-tray{min-height:100px;margin:18px 0;border-width:4px}.die{width:61px;height:66px}.city-postcard{box-shadow:0 2px 0 #d7cfb7,1px 5px 6px #315a5e38}.tile .houses{width:76%;height:43%}.deed-image{border-width:4px}}
