.buildings>.building:not(.empty-lot){height:calc(var(--building-width)/260*var(--structure-height,384));--unit:calc(var(--building-width)/260)}
.structure-art{position:absolute;inset:0;width:100%;height:100%;display:block;overflow:visible;filter:drop-shadow(3px 5px 2px #20374935);pointer-events:none}
.buildings>.building[data-building]>.building-name{top:var(--sign-pct);left:12%;width:66%;transform:translateY(-50%);font-size:clamp(8px,calc(var(--building-width)*.053),17px);line-height:1.25;z-index:2;letter-spacing:0}
.buildings>.building[data-building]>.building-actors{bottom:var(--actor-bottom);left:14%;width:64%;height:calc(var(--unit)*64);gap:calc(var(--unit)*4)}
.buildings>.building>.building-actors svg{height:calc(var(--unit)*62);width:calc(var(--unit)*42)}
.buildings>.building>.building-stars{top:auto;bottom:calc(var(--unit)*51);left:15%;width:61%;font-size:calc(var(--unit)*8)}
.buildings>.building>.building-roof{bottom:calc(100% - var(--unit)*(84 + var(--roof-progress,0)));height:calc(var(--unit)*110);left:12%;width:67%;z-index:1}
.buildings>.building>.building-status,.buildings>.building[data-floors]:has(.building-roof)>.building-status{bottom:calc(var(--unit)*152);left:11%;width:72%;min-width:0;font-size:clamp(7px,calc(var(--unit)*9),12px);padding:calc(var(--unit)*4) 5px;z-index:5}
.buildings>.building[data-floors='2']>.building-status{bottom:calc(100% + 3px)}
.buildings>.building[data-floors='2']:has(.building-roof)>.building-status{bottom:calc(100% + var(--unit)*68)}
.buildings>.building[data-working='yes']>.building-status{bottom:calc(var(--unit)*152);background:linear-gradient(#fee394,#d79a34);color:#74542a;border-color:#f8e7bb}
.buildings>.building>.building-number{left:3%;bottom:calc(var(--unit)*25);font-size:calc(var(--unit)*9);width:calc(var(--unit)*18);height:calc(var(--unit)*24)}
.buildings>.building>.floor-label{bottom:calc(var(--unit)*14);right:9%;font-size:calc(var(--unit)*8)}
.buildings>.building>.facade-trim{top:auto;bottom:calc(var(--unit)*6);height:calc(100% - var(--unit)*90);border-width:calc(var(--unit)*2)}
.buildings>.building>.facade-wear{display:none}.extra-floors{display:none!important}
.buildings .closed-shop{top:auto;bottom:calc(var(--unit)*68);font-size:calc(var(--unit)*10);line-height:calc(var(--unit)*22)}
.buildings .mall-arcade{display:none!important}
.mall-front{position:absolute;left:8%;bottom:calc(var(--unit)*92);width:184%;height:calc(var(--unit)*65);z-index:4;pointer-events:none;filter:drop-shadow(2px 3px 2px #28394955)}
.mall-front>svg{height:100%;width:100%;overflow:visible}
.mall-front-name{position:absolute;top:14%;left:4%;width:92%;text-align:center;color:#ffedc1;font-weight:800;text-shadow:0 1px #224a5a;font-size:clamp(8px,calc(var(--unit)*13),15px);letter-spacing:1px}
.building[data-mall-start='yes'] .building-name,.building[data-mall-end='yes'] .building-name{opacity:.4}
.builder-crane{animation:crane-lift 3s ease-in-out infinite;transform-box:fill-box;transform-origin:50% 0}.worker-hammer{animation:builder-work .65s ease-in-out infinite;transform-box:fill-box;transform-origin:50% 100%}
@keyframes crane-lift{50%{translate:0 -3px}}@keyframes builder-work{50%{rotate:5deg}}
.building-art{background-image:var(--sprite-url)!important;background-size:400% var(--sprite-rows,400%)!important;background-position:var(--art-x) var(--art-y)!important}
.buildings>.building>.construction{background:none;border:0;box-shadow:none;justify-content:flex-end;gap:4px;padding:10px 9px 35px;font-size:10px;color:#365568;text-shadow:0 1px #fff4cf}
.buildings>.building>.construction>.icon{width:32px;height:32px;animation:builder-work .7s ease-in-out infinite}
.construction progress{width:80%;height:7px}.construction>b{padding:3px 7px;background:#fff3cce6;border:1px solid #bd965b;border-radius:4px}
@media(prefers-reduced-motion:reduce){.builder-crane,.worker-hammer{animation:none}}

.buildings>.building[data-mall-start="yes"]{z-index:6}
.mall-front-name{top:24%;line-height:1.2;padding-top:1px}
