/* Generated interior clusters + real, independently interactive board tiles. */
body.floor-art-active { --bg:#e9e2d6; --surface:#fff9ed; --subtle:#e5dcc9; --text:#343e36; --muted:#6b7164; --line:#c6baa3; --accent:#286b5d; --accent-text:#fff9ed; }
.floor-art-active .town-viewport { background:#495d5a; }
.map.floor-map { background-color:#495d5a; background-image:radial-gradient(ellipse at 40% 40%,#869388,transparent 75%); }
.floor-map .town-roads { z-index:1; width:calc(3600px * var(--town-scale)); height:calc(2100px * var(--town-scale)); }
.floor-map .town-road { stroke:#f1e4c9; stroke-width:54; }
.floor-map .town-road.walked { stroke:#d9bc68; }
.floor-district .floor-deck { position:absolute; left:calc(-228px * var(--town-scale)); top:calc(-4px * var(--town-scale)); width:calc(1536px * var(--town-scale)); height:calc(800px * var(--town-scale)); }
.floor-district .floor-interior { position:absolute; z-index:3; left:calc(320px * var(--town-scale)); top:calc(250px * var(--town-scale)); width:calc(440px * var(--town-scale)); height:calc(270px * var(--town-scale)); }
.floor-interior img { display:block; width:100%; height:100%; object-fit:contain; filter:drop-shadow(0 7px 5px #392d2528); }
.floor-directory { position:absolute; z-index:3; left:calc(360px * var(--town-scale)); top:calc(85px * var(--town-scale)); width:calc(360px * var(--town-scale)); text-align:center; color:#354b42; }
.floor-directory span { display:block; font-size:calc(10px * var(--town-scale)); letter-spacing:.15em; }
.floor-directory strong { display:block; font-size:calc(25px * var(--town-scale)); font-weight:800; margin-top:5px; }
.floor-district .floor-backdrop { position:absolute; z-index:2; left:calc(40px * var(--town-scale)); top:calc(-160px * var(--town-scale)); width:calc(1000px * var(--town-scale)); height:calc(500px * var(--town-scale)); object-fit:fill; }
.floor-map .town-tile::before { background:linear-gradient(150deg,#fff4da,#e5d6b8); box-shadow:inset 0 0 0 1px #b7aa8e; }
.floor-map .town-tile:nth-of-type(even)::before { background:linear-gradient(150deg,#f7edd5,#dcc9a9); }
.floor-map .town-tile.selected::before,.floor-map .town-tile:focus-visible::before { background:#bddbcb; box-shadow:inset 0 0 0 4px #286b5d; }
.floor-map .town-tile .tile-name { top:calc(31px * var(--town-scale)); color:#3e4538; font-size:calc(10px * var(--town-scale)); }
.floor-map .town-tile .tile-heading { top:calc(7px * var(--town-scale)); }
.floor-cell-kind { position:absolute; left:calc(30px * var(--town-scale)); top:calc(13px * var(--town-scale)); font-size:calc(10px * var(--town-scale)); font-weight:700; color:#547461; }
.floor-maturity { position:absolute; top:calc(-13px * var(--town-scale)); left:calc(32px * var(--town-scale)); font-size:calc(10px * var(--town-scale)); padding:2px 5px; background:#f5e4b7; color:#5e512e; border:1px solid #b29c68; border-radius:3px; }
.floor-person { display:block; width:100%; height:100%; }
.floor-person img { width:100%; height:100%; object-fit:contain; object-position:bottom; }
.floor-person.faces-left img { transform:scaleX(-1); }
.floor-portrait { position:relative; display:block; width:100%; height:100%; overflow:hidden; border-radius:8px; background:#e1d2b9; }
.floor-portrait img { position:absolute; width:200%; height:auto; max-width:none; left:-50%; top:-2%; }
#app .floor-map .town-pawn { width:calc(52px * var(--town-scale)); height:calc(82px * var(--town-scale)); left:calc(-26px * var(--town-scale)); top:calc(-78px * var(--town-scale)); }
#app .floor-map .tokens:has(.town-pawn:nth-child(2)) .town-pawn:first-child { left:calc(-64px * var(--town-scale)); }
#app .floor-map .tokens .town-pawn:nth-child(2) { left:calc(-34px * var(--town-scale)); }
#app .floor-map .tokens .town-pawn:nth-child(3) { left:calc(-4px * var(--town-scale)); }
#app .floor-map .tokens .town-pawn:nth-child(4) { left:calc(26px * var(--town-scale)); }
.floor-map .movement-ghost { z-index:10000; width:calc(52px * var(--town-scale)); height:calc(82px * var(--town-scale)); }
.floor-art-active .game-shell .score-player { box-shadow:0 2px 0 #8b795714; }
.floor-art-active .game-shell .shell-action { border-top:3px solid #a78b53; }
@media(prefers-color-scheme:dark) {
 body.floor-art-active { --bg:#232d2a; --surface:#2b3831; --subtle:#35463b; --text:#eee7d8; --muted:#c1bfad; --line:#657261; --accent:#aed5b8; --accent-text:#24362b; }
}
