/* Seasonal skins: art and materials only. All city geometry comes from existing layout. */
body[data-art-season='spring']{--season-scene:url('../assets/art/seasons/spring/city.webp');--season-accent:#e4a4ba;--season-panel:#163c38;--season-sky:#9cc7c2}
body[data-art-season='summer']{--season-scene:url('../assets/art/seasons/summer/city.webp');--season-accent:#e8c77d;--season-panel:#183a46;--season-sky:#92bcb5}
body[data-art-season='autumn']{--season-scene:url('../assets/art/seasons/autumn/city.webp');--season-accent:#d3a366;--season-panel:#44312d;--season-sky:#b1a480}
body[data-art-season]:not([data-art-season='winter']){background:linear-gradient(#182c3988,#142031cc),var(--season-scene) center/cover fixed;color:#fff3da}
body[data-art-season]:not([data-art-season='winter'])[data-screen='gameScreen']{background:linear-gradient(#152b3b55,#13233288),var(--season-scene) center/cover fixed!important}
body[data-art-season]:not([data-art-season='winter']) .snow{display:none}
body[data-art-season]:not([data-art-season='winter']) .cw-world{background:var(--season-ground)}
body[data-art-season]:not([data-art-season='winter']) .cw-bg,body[data-art-season]:not([data-art-season='winter']) .cw-v{background:var(--season-sky)}
body[data-art-season]:not([data-art-season='winter']) .cw-frost{opacity:0!important}
body[data-art-season]:not([data-art-season='winter']) .pk.ice{filter:drop-shadow(0 3px 3px #0005)!important}
body[data-art-season]:not([data-art-season='winter']) .mg-field{background:linear-gradient(#18374644,#18374677),var(--season-scene) center 70%/cover!important}
body[data-art-season]:not([data-art-season='winter']) .mini-heading{background:linear-gradient(110deg,var(--season-panel),#152f3ddd);border-color:var(--season-accent)}
body[data-art-season]:not([data-art-season='winter']) .mini-heading small{color:var(--season-accent)}
body[data-art-season]:not([data-art-season='winter']) .ev-item{border:1px solid #dfb87c66;background:linear-gradient(135deg,var(--season-panel),#17394aaa)}
.ev-em .mini-icon{width:52px;height:52px;display:block}.ev-em{display:grid;place-items:center}
body[data-art-season]:not([data-art-season='winter']) .menu-art{object-position:center}
body[data-art-season]:not([data-art-season='winter']) .hero-card{border-color:var(--season-accent)}
body[data-art-season]:not([data-art-season='winter']) .sf-wave{display:none}
@media(prefers-reduced-motion:reduce){body[data-art-season]:not([data-art-season='winter']) .snow{display:none}}

body[data-art-season]:not([data-art-season='winter']) .cw-stage .city-world-v140,body[data-art-season]:not([data-art-season='winter']) .cw-ground{background:var(--season-ground)!important}
.df-i .season-icon{width:1.45em;height:1.45em;display:block}

.season-project-icon{width:100%;height:100%;object-fit:contain;display:block}.city-hotspot>span:has(.season-project-icon){display:block;width:24px;height:24px}.festive-piece>.season-icon{width:100%;height:100%}

/* Speech belongs above project badges and wraps at a readable width. */

.actor>.bub{width:max-content;min-width:0!important;max-width:170px!important;white-space:normal;overflow-wrap:break-word;box-sizing:border-box;text-align:center;line-height:1.3;padding:7px 11px;pointer-events:none}
.actor>.bub:after{left:var(--bubble-tail,50%)}

.actor>.bub{animation:speechFade .2s ease}
@keyframes speechFade{from{opacity:0}to{opacity:1}}

/* Clear controls and compact Match-3 score panel. */
.modal-close{display:grid;place-items:center;padding:0!important;line-height:1;width:38px;height:38px;z-index:20}
.modal-close svg{display:block;width:21px;height:21px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round}
.mini-heading{padding-right:32px}
.game-head{max-width:980px;margin:0 auto 18px!important;padding:0!important;grid-template-columns:44px 100px minmax(0,1fr) 100px!important;gap:12px!important;border:0!important;background:none!important;box-shadow:none!important;border-radius:0!important}
.game-head .back{width:44px;height:44px;align-self:center;border-radius:15px;background:#123746e8;border:1px solid #b9d2cb55;display:grid;place-items:center;padding:0;font-size:28px}
.game-head .level-title,.game-head .moves{min-height:57px;padding:8px 10px!important;display:flex;flex-direction:column;justify-content:center;gap:2px;border-radius:17px!important;background:linear-gradient(145deg,#244958f5,#143341f5)!important;border:1px solid #bfd6c73d!important;box-shadow:0 5px 15px #08253533}
.game-head .level-title small,.game-head .moves small{font-size:9px!important;letter-spacing:.12em;color:#c3d3d3}
.game-head .boss-meter{justify-self:center;width:min(100%,360px);min-width:0!important;gap:10px!important;padding:12px 18px;border:1px solid #e7cc8266;border-radius:18px;background:linear-gradient(135deg,#244955eb,#1b3946eb);box-shadow:0 5px 18px #10273233}
.game-head .boss-meter span{font-size:22px;line-height:1}
.game-head .boss-meter .progress{height:10px;border:1px solid #cdd8c344;background:#0c2638;overflow:hidden}
.game-head .boss-meter .progress i{background:linear-gradient(90deg,#91c8c0,#f4d690);box-shadow:none;border-radius:8px}
.railway-terminal{position:absolute;width:160px;height:192px;pointer-events:none}
.railway-terminal>svg{position:absolute;inset:0}.railway-terminal .city-train{position:absolute;max-width:none;object-fit:contain;filter:drop-shadow(2px 3px 1px #23344244)}
.train-steam{position:absolute;left:70px;top:140px;width:13px;height:9px;border-radius:50%;background:#f3ead9aa;animation:station-steam 5s ease-out infinite;pointer-events:none}
@keyframes station-steam{0%{opacity:0;transform:translate(0,0) scale(.5)}20%{opacity:.6}90%,100%{opacity:0;transform:translate(-6px,-28px) scale(2)}}
.cw-over .city-offscreen{visibility:visible!important;content-visibility:visible!important}

@media(max-width:600px){.game-head{grid-template-columns:38px 75px minmax(0,1fr) 75px!important;gap:6px!important;margin-bottom:12px!important}.game-head .back{width:38px;height:40px}.game-head .level-title,.game-head .moves{min-height:52px;padding:5px!important}.game-head .boss-meter{padding:10px 7px;gap:6px!important;border-radius:14px}.game-head .boss-meter span{font-size:19px}.game-head .boss-meter .progress{height:8px}.mini-heading{padding-right:26px}}
@media(prefers-reduced-motion:reduce){.train-steam{animation:none;opacity:0}}

body[data-art-season="spring"] .mg-field.sl{background-image:linear-gradient(90deg,transparent 32.7%,#f5e1b73b 32.7% 33.5%,transparent 33.5% 66%,#f5e1b73b 66% 66.8%,transparent 66.8%),linear-gradient(#13354040,#13354015),url('../assets/art/seasons/spring/city.webp')!important}
body[data-art-season="summer"] .mg-field.sl{background-image:linear-gradient(90deg,transparent 32.7%,#f5e1b73b 32.7% 33.5%,transparent 33.5% 66%,#f5e1b73b 66% 66.8%,transparent 66.8%),linear-gradient(#13354040,#13354015),url('../assets/art/seasons/summer/city.webp')!important}
body[data-art-season="autumn"] .mg-field.sl{background-image:linear-gradient(90deg,transparent 32.7%,#f5e1b73b 32.7% 33.5%,transparent 33.5% 66%,#f5e1b73b 66% 66.8%,transparent 66.8%),linear-gradient(#13354040,#13354015),url('../assets/art/seasons/autumn/city.webp')!important}
body:not([data-art-season="winter"]) .mg-lights .lt{border-radius:14px 14px 20px 20px;border:3px solid #d9bb7c;background:linear-gradient(90deg,#1c485733,var(--c),#1c485733);box-shadow:inset 8px 0 #192f4344,inset -8px 0 #192f4344,0 6px 12px #0d293733}
body:not([data-art-season="winter"]) .mg-lights .lt:before{height:12px;top:-10px;border-radius:6px;background:#d9bb7c}

body:not([data-art-season="winter"]) .mg-field.sl{background-size:100% 100%,100% 100%,cover!important;background-position:center,center,center 78%!important}
