@font-face{font-family:Manrope;src:url('/worlds/fonts/manrope-normal-400.woff2') format('woff2');font-display:swap}
@font-face{font-family:Mono;src:url('/worlds/fonts/dm-mono-normal-400.woff2') format('woff2');font-display:swap}
:root{--paper:#f5f1e8;--ink:#343d3b;--line:#35493b26;--green:#d4dfc5}
*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;overflow:hidden;background:var(--paper);color:var(--ink);font-family:Manrope,Arial,sans-serif;-webkit-tap-highlight-color:transparent}
button{font:inherit;color:inherit;border:0;background:none;cursor:pointer;touch-action:manipulation;min-height:36px}button:disabled{opacity:.3;cursor:default}button:not(:disabled):hover{background:#dce2d4}a{color:inherit}button:focus-visible,a:focus-visible,#world:focus-visible{outline:2px solid #956145;outline-offset:3px}[hidden]{display:none!important}
.arca-nav{position:fixed;inset:0 0 auto;height:64px;padding:12px 28px;background:var(--paper);border-bottom:1px solid var(--line)}
#world{position:fixed;inset:64px 0 0;touch-action:none;outline-offset:-3px;cursor:crosshair}#world.panning{cursor:grabbing}#scene{position:fixed;inset:0;width:100%;height:100%;display:block;pointer-events:none}
.atmosphere{position:fixed;top:80px;right:24px;display:flex;align-items:center;gap:8px;padding:4px 8px;background:#f5f1e8eb;border:1px solid #ffffff80;border-radius:7px}
.dial{width:23px;height:23px}#clock{font:12px Mono,monospace;min-width:42px}#speed{font:11px Mono,monospace;min-width:32px;border-radius:4px}
.icon-button{width:36px;display:grid;place-items:center;border-radius:4px}.icon-button svg{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
#sound[aria-pressed=false] .sound-waves,#sound[aria-pressed=true] .sound-off{display:none}
.pause-switch{width:48px;min-height:28px;height:28px;background:#d4dbcc;border-radius:20px;padding:3px;flex:none}.pause-switch .switch-thumb{display:grid;place-items:center;width:22px;height:22px;border-radius:50%;background:var(--paper);box-shadow:0 1px 3px #343d3b20;transition:transform .18s}.switch-thumb svg{width:14px;height:14px;fill:none;stroke:var(--ink);stroke-width:2;stroke-linecap:round}.pause-switch[aria-checked=true]{background:#829175}.pause-switch[aria-checked=true] .switch-thumb{transform:translateX(20px)}
.town-stats{position:fixed;left:24px;top:89px;display:flex;gap:23px;color:var(--ink);pointer-events:none}.town-stats>div{display:grid;gap:4px}.town-stats span{font:15px Mono,monospace}.town-stats small{font-size:9px;opacity:.75}#metropolis[data-night=true] .town-stats{color:#fff7e8}
.build-dock{position:fixed;bottom:max(18px,env(safe-area-inset-bottom));left:50%;transform:translateX(-50%);width:568px;max-width:calc(100% - 20px)}
.secondary-controls{display:flex;justify-content:space-between;margin-bottom:7px}.view-tools,.history-tools{display:flex;background:#f5f1e8e8;border:1px solid #fff8;border-radius:5px;overflow:hidden}.secondary-controls button{display:grid;place-items:center;width:36px;min-height:34px;font-size:18px}.secondary-controls svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}.view-tools button+button{border-left:1px solid var(--line)}
.toolbar{display:flex;gap:3px;background:#f5f1e8f2;padding:6px;border:1px solid #ffffffab;border-radius:7px;box-shadow:0 8px 25px #324d4320}.tool,.randomize{flex:1;min-width:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;padding:8px 2px 7px;border-radius:4px;transition:transform .18s,background .18s}.tool svg,.randomize svg{width:40px;height:34px}.tool span{font-size:10px}.tool[aria-pressed=true]{background:var(--green);transform:translateY(-3px);box-shadow:0 3px 0 #a7b69c}.tool[data-tool=bulldoze][aria-pressed=true]{background:#ecc4b2;box-shadow:0 3px 0 #c49d8b}.sep{width:1px;background:var(--line);margin:8px 2px}.randomize{border-left:1px solid var(--line);border-radius:0 4px 4px 0}
.toast{position:fixed;bottom:150px;left:50%;transform:translateX(-50%);background:var(--ink);color:var(--paper);padding:10px 14px;font-size:11px;border-radius:4px;opacity:0;pointer-events:none}.toast.show{opacity:1}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}
.startup-message{position:fixed;z-index:20;left:50%;top:50%;transform:translate(-50%,-50%);padding:24px;background:var(--paper);width:min(340px,90vw);border-radius:6px;box-shadow:0 15px 70px #28384933}.startup-message h2{font-size:20px;font-weight:400}.startup-message p{font-size:12px}
@media(max-width:759px){.arca-nav{height:56px;padding:10px 16px}.arca-nav nav{font-size:10px;gap:16px}#world{top:56px}.atmosphere{top:68px;right:12px;gap:4px;padding:3px 5px}.dial{display:none}#clock{font-size:10px;min-width:36px}#speed{font-size:10px;min-width:28px}.icon-button{width:32px}.pause-switch{width:44px;height:26px;min-height:26px}.pause-switch .switch-thumb{width:20px;height:20px}.pause-switch[aria-checked=true] .switch-thumb{transform:translateX(18px)}.town-stats{left:14px;top:75px;gap:12px}.town-stats span{font-size:11px}.town-stats small{font-size:8px}.build-dock{bottom:max(12px,env(safe-area-inset-bottom))}.toolbar{padding:5px;gap:1px}.tool,.randomize{padding:8px 0 7px}.tool svg,.randomize svg{width:31px;height:28px}.tool span{font-size:9px}.sep{display:none}.secondary-controls button{width:34px;min-height:32px}}
@media(max-width:420px){.town-stats{top:120px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{transition:none!important;animation:none!important}}

.city-shop-entry{display:flex;align-items:center;gap:2px;background:#f5f1e8eb;border:1px solid #fff8;border-radius:5px}.city-shop-entry button{width:auto;padding:0 9px;font-size:11px;white-space:nowrap}.commerce-status{position:fixed;bottom:152px;left:50%;transform:translateX(-50%);max-width:90%;margin:0;padding:10px 14px;background:var(--paper);border-radius:4px;font-size:12px}.commerce-status:empty{display:none}@media(max-width:420px){.secondary-controls button{width:30px}.city-shop-entry button{width:auto;padding:0 6px;font-size:10px}}
