.garden-stage{position:relative;overflow:hidden;isolation:isolate;aspect-ratio:1672/941;background:#20313b}
.garden-stage .garden-base{display:block;width:100%;height:100%;object-fit:contain;margin:0;border-radius:0}
.garden-stage .garden-sunlit{position:absolute;inset:0;display:block;width:100%;height:100%;object-fit:contain;margin:0;border-radius:0;pointer-events:none}
.garden-stage .garden-sunlit[hidden]{display:none}
.garden-overlay,.garden-shade,.garden-rooms,.garden-fog,.garden-precip,.garden-cloudglow{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}
.garden-overlay{overflow:hidden}.garden-rooms{overflow:visible}.garden-character{opacity:.85}.garden-lamps{opacity:0}
.garden-room-texture{filter:brightness(1.15) sepia(.2) saturate(.75);opacity:.2}
.garden-room-warmth{opacity:.4;mix-blend-mode:screen}
.garden-stage[data-lit=true] .garden-lamps{opacity:.88}.garden-stage[data-lit=true][data-light=day] .garden-lamps{opacity:.22}
.garden-stage[data-lit=true][data-rest=true] .garden-lamps{opacity:.18}
.garden-stage[data-light=twilight] .garden-base{filter:brightness(.72) saturate(.86)}
.garden-stage[data-light=dark] .garden-base{filter:brightness(.58) saturate(.88)}
.garden-stage[data-light=twilight] .garden-shade{background:linear-gradient(#1f365738,transparent 70%)}
.garden-stage[data-light=dark] .garden-shade{background:linear-gradient(#102d5540,#10253615)}
.garden-stage[data-light=dark] .garden-character{filter:brightness(.78) saturate(.8)}
.garden-stage[data-weather=storm][data-light=day] .garden-base{filter:brightness(.64) saturate(.72)}
.garden-stage[data-weather=heavy-rain][data-light=day] .garden-base{filter:brightness(.8) saturate(.8)}
.garden-fog{display:none;background:linear-gradient(180deg,#dce3e044,#e1e7e8a3 47%,#e4e9e638 78%,transparent)}
.garden-fog:after{content:'';position:absolute;inset:30% -15% 15%;background:radial-gradient(ellipse at 25% 50%,#e1e7e877,transparent 68%);animation:garden-mist 26s ease-in-out infinite alternate}
.garden-stage[data-weather=fog] .garden-fog{display:block}
.garden-stage[data-light=dark] .garden-fog{filter:brightness(.3)}
.garden-stage[data-light=twilight] .garden-fog{filter:brightness(.6)}
.garden-precip i{position:absolute;opacity:var(--depth);animation-delay:0s;animation-timing-function:linear;animation-iteration-count:infinite;animation-duration:var(--fall);will-change:transform}
.garden-precip .drop{width:max(.6px,calc(var(--drop-width,1px) * var(--fx-scale,1)));height:calc(var(--size,15px) * var(--fx-scale,1));border-radius:0 0 70% 70%;background:linear-gradient(transparent 0%,#dbeefa99 45%,#e4f3ffc9);animation-name:garden-rain}
.garden-stage[data-weather=drizzle] .drop{height:calc(7px * var(--fx-scale,1));opacity:.35}
.garden-precip .flake{width:calc(var(--size,4px) * var(--fx-scale,1));height:calc(var(--size,4px) * var(--fx-scale,1));background:#f2f7fa;border-radius:50%;animation-name:garden-snow;transform:scale(var(--depth))}
.garden-stage[data-weather=heavy-snow] .flake:nth-child(3n){filter:blur(.4px)}
.garden-stage[data-windy=true] .drop,.garden-stage[data-weather=storm] .drop{animation-name:garden-wind-rain}
.garden-stage[data-windy=true] .flake{animation-name:garden-wind-snow}
.garden-stage[data-light=dark] .garden-precip{opacity:.65}.garden-stage[data-light=twilight] .garden-precip{opacity:.85}
.garden-cloudglow{opacity:0;background:linear-gradient(#d4dfef35,transparent 60%)}
.garden-stage[data-weather=storm] .garden-cloudglow{animation:none}
@keyframes garden-rain{from{transform:translate(calc(15px * var(--fx-scale,1)),calc(-180px * var(--fx-scale,1)))}to{transform:translate(calc(-25px * var(--fx-scale,1)),calc(300px * var(--fx-scale,1)))}}
@keyframes garden-wind-rain{from{transform:translate(calc(120px * var(--fx-scale,1)),calc(-180px * var(--fx-scale,1))) rotate(15deg)}to{transform:translate(calc(-160px * var(--fx-scale,1)),calc(300px * var(--fx-scale,1))) rotate(15deg)}}
@keyframes garden-snow{from{transform:translate(calc(-15px * var(--fx-scale,1)),calc(-100px * var(--fx-scale,1))) scale(var(--depth))}to{transform:translate(calc(25px * var(--fx-scale,1)),calc(220px * var(--fx-scale,1))) scale(var(--depth))}}
@keyframes garden-wind-snow{from{transform:translate(calc(100px * var(--fx-scale,1)),calc(-100px * var(--fx-scale,1))) scale(var(--depth))}to{transform:translate(calc(-180px * var(--fx-scale,1)),calc(220px * var(--fx-scale,1))) scale(var(--depth))}}
@keyframes garden-mist{to{transform:translateX(15%)}}
@keyframes garden-cloudglow{0%,81%,89%,100%{opacity:0}85%{opacity:.65}}
.garden-stage[data-error=true]::after{content:'Der Kitagarten wird gleich wieder angezeigt.';position:absolute;inset:45% 10% auto;color:white;text-align:center;font:16px system-ui}
.garden-source{font-size:12px;color:#526466;line-height:1.4}.garden-source a{color:inherit}
@media(prefers-reduced-motion:reduce){.garden-precip i,.garden-fog:after,.garden-cloudglow{animation:none!important;will-change:auto}}

/* Lighting stays independent of attendance and uses each motif's own texture. */
.garden-night{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;overflow:hidden}
.garden-sky,.garden-outdoor-light,.garden-bulb-light{opacity:0}
.garden-stage[data-exterior-lit=true] .garden-sky,
.garden-stage[data-exterior-lit=true] .garden-outdoor-light,
.garden-stage[data-exterior-lit=true] .garden-bulb-light{opacity:1}
.garden-stage[data-light=twilight] .garden-sky{opacity:.7}
.garden-light-texture{filter:sepia(.45) saturate(1.35) brightness(1.03)}
.garden-stars,.garden-moon{display:none}
.garden-stage[data-stars=true] .garden-stars,.garden-stage[data-moon=true] .garden-moon{display:block}
.garden-sky-clouds{opacity:0}
.garden-stage[data-sky=partly] .garden-sky-clouds{opacity:.25}
.garden-stage[data-sky=overcast] .garden-sky-blue,.garden-stage[data-sky=unknown] .garden-sky-blue{opacity:.28}
.garden-stage[data-sky=overcast] .garden-sky-clouds,.garden-stage[data-sky=unknown] .garden-sky-clouds{opacity:.22}
.garden-meteor{opacity:0;animation:garden-shooting-star 165s linear infinite}
@keyframes garden-shooting-star{0%,1.2%,100%{opacity:0;transform:translate(0,0)}.15%{opacity:.8;transform:translate(-7px,3px)}1%{opacity:0;transform:translate(-110px,55px)}}
.garden-stage[data-error=true] .garden-night{visibility:hidden}
@media(prefers-reduced-motion:reduce){.garden-meteor{animation:none!important;opacity:0!important}}

/* Rain memory, seasonal wind and visible weather details. */
.garden-memory,.garden-weather-effects{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;overflow:hidden}
.garden-stage .garden-memory img{position:absolute;inset:0;display:block;width:100%;height:100%;object-fit:contain;margin:0;border-radius:0;opacity:0;transition:opacity 1.8s linear;mask-size:100% 100%;mask-repeat:no-repeat;-webkit-mask-size:100% 100%;-webkit-mask-repeat:no-repeat}
.garden-wet-memory{clip-path:polygon(0 60%,34% 60%,34% 69%,48% 76%,80% 77%,100% 72%,100% 100%,0 100%)}
/* With outdoor children, replace only the paving, never lawn or play areas. */
.garden-stage[data-outdoor=true] .garden-wet-memory{clip-path:none}
.garden-stage[data-light=dark] .garden-memory{filter:brightness(.58) saturate(.88)}
.garden-stage[data-light=twilight] .garden-memory{filter:brightness(.72) saturate(.86)}
.garden-puddles{transition:opacity 1.8s linear}.garden-puddles path{transform-box:fill-box;transform-origin:center;transition:transform 2s linear}
.garden-stage[data-light=dark] .garden-puddles{filter:brightness(.6)}
.garden-ripple{display:none;transform-box:fill-box;transform-origin:center;animation:garden-ripple 1.9s ease-out infinite}
.garden-stage[data-raining=true] .garden-ripple{display:block}
@keyframes garden-ripple{from{transform:scale(.2);opacity:.65}to{transform:scale(2.3);opacity:0}}
.garden-ice,.garden-frost,.garden-heat,.garden-rainbow,.garden-thaw-drips{display:none}
.garden-stage[data-ice=true] .garden-ice,.garden-stage[data-frost=true] .garden-frost,.garden-stage[data-heat=true] .garden-heat,.garden-stage[data-rainbow=true] .garden-rainbow,.garden-stage[data-thaw=true] .garden-thaw-drips{display:block}
.garden-stage[data-heat=true][data-light=day] .garden-base{filter:brightness(1.06) saturate(1.08) contrast(1.04)}
.garden-heat-wisp{animation:garden-heat 3.7s ease-in-out infinite alternate}.garden-heat-wisp:nth-child(2n){animation-delay:-2s}
.garden-heat-shimmer{display:none;animation:garden-shimmer 2.2s ease-in-out infinite alternate}
.garden-stage[data-heat=true] .garden-heat-shimmer{display:block}
@keyframes garden-shimmer{to{transform:translate(.5px,-1.5px)}}
.garden-wind-canopy{transform-origin:70% 45%;animation:garden-canopy 3.8s ease-in-out infinite alternate}
@keyframes garden-canopy{0%{transform:rotate(-.04deg) translateX(-.4px)}55%{transform:rotate(.08deg) translateX(.8px)}100%{transform:rotate(-.02deg) translateX(-.2px)}}
.garden-stage[data-light=dark] .garden-wind-canopy{filter:brightness(.58) saturate(.88)}
.garden-stage[data-light=twilight] .garden-wind-canopy{filter:brightness(.72) saturate(.86)}
.garden-stage[data-weather=storm][data-light=day] .garden-wind-canopy{filter:brightness(.64) saturate(.72)}
@keyframes garden-heat{to{transform:translate(3px,-15px);opacity:.035}}
.garden-thaw-drips ellipse{animation:garden-thaw 2.8s ease-in infinite}
@keyframes garden-thaw{0%,30%{transform:translateY(0);opacity:0}35%{opacity:.7}80%,100%{transform:translateY(95px);opacity:0}}
.garden-storm-front,.garden-lightning,.garden-lightning-wash{opacity:0}
.garden-stage[data-weather=storm] .garden-storm-front{opacity:.8}
.garden-stage[data-weather=storm] .garden-lightning{animation:garden-bolt 18s linear infinite}
.garden-stage[data-weather=storm] .garden-lightning-wash{animation:garden-flash 18s linear infinite}
@keyframes garden-bolt{0%,7%,10%,64%,67%,100%{opacity:0}8%{opacity:1}65%{opacity:.9}}
@keyframes garden-flash{0%,7%,10%,64%,67%,100%{opacity:0}8%{opacity:.24}65%{opacity:.18}}
.garden-stage[data-weather=storm] .drop{background:linear-gradient(transparent,#d3e6facc)}
.garden-precip{transform:scaleX(var(--rain-mirror,1))}
.garden-hailstone,.garden-precip .hailstone{width:calc(var(--size,8px) * var(--fx-scale,1));height:calc(var(--size,8px) * var(--fx-scale,1));border-radius:45% 55% 40% 60%;background:radial-gradient(at 30% 25%,white,#e3f1f8 60%,#9ab7c9);box-shadow:0 1px 2px #42627988;animation-name:garden-hail}
@keyframes garden-hail{0%{transform:translate(calc(30px * var(--fx-scale,1)),calc(-130px * var(--fx-scale,1)));opacity:0}8%{opacity:.9}80%{transform:translate(calc(-40px * var(--fx-scale,1)),calc(340px * var(--fx-scale,1)))}90%{transform:translate(calc(-49px * var(--fx-scale,1)),calc(323px * var(--fx-scale,1)))}100%{transform:translate(calc(-57px * var(--fx-scale,1)),calc(348px * var(--fx-scale,1)));opacity:0}}
.garden-wind-leaves{transform:scaleX(var(--leaf-mirror,1));transform-origin:center}
.garden-leaf-flight{animation:garden-leaf-fly var(--leaf-speed) linear infinite;animation-delay:var(--leaf-delay)}
.garden-leaf-turn{animation:garden-leaf-turn 1.8s ease-in-out infinite alternate;transform-origin:center;transform-box:fill-box}
.garden-leaf-blade{fill:#729449;stroke:#425d35;stroke-width:.6}
.garden-stage[data-season=herbst] .garden-leaf-blade{fill:#bf7834;stroke:#71482e}
.garden-stage[data-season=herbst] .garden-leaf-flight:nth-child(3n) .garden-leaf-blade{fill:#d4a647}
.garden-stage[data-season=herbst] .garden-leaf-flight:nth-child(4n) .garden-leaf-blade{fill:#8d4f28}
.garden-stage:not([data-season=herbst]) .garden-leaf-flight:nth-child(n+9){display:none}
.garden-stage[data-wind-strength=strong] .garden-leaf-flight{animation-duration:3.8s}
@keyframes garden-leaf-fly{0%{transform:translate(-70px,var(--leaf-y));opacity:0}6%,94%{opacity:.85}48%{transform:translate(790px,calc(var(--leaf-y) - 65px))}100%{transform:translate(1760px,calc(var(--leaf-y) + 30px));opacity:0}}
@keyframes garden-leaf-turn{from{transform:rotate(var(--turn)) scale(.65,1)}to{transform:rotate(calc(var(--turn) + 190deg)) scale(1,.6)}}
.garden-breeze-line{animation:garden-breeze 4s ease-in-out infinite}
@keyframes garden-breeze{0%,100%{transform:translateX(-100px);opacity:0}50%{transform:translateX(100px);opacity:1}}
.garden-stage[data-windy=true] .garden-fog:after{animation-duration:7s}
.garden-stage[data-weather=fog] .garden-fog{background:linear-gradient(180deg,#dce3e01c,#e1e7e875 48%,#e4e9e6ad 68%,#dfe6e561 84%,transparent)}
.garden-stage[data-weather=heavy-snow][data-windy=true] .garden-fog{display:block;opacity:.42}
.garden-stage[data-error=true] .garden-memory,.garden-stage[data-error=true] .garden-weather-effects{visibility:hidden}
.garden-character[data-activity] image{animation:garden-room-arrival 1.6s ease-out both}
.garden-character[data-activity=reading]{opacity:.85}.garden-character[data-activity=craft]{opacity:.9}
/* Same progressive daylight on the picture, wet ground and moving tree details. */
.garden-stage[data-daylight=dynamic][data-light] .garden-base,.garden-stage[data-daylight=dynamic][data-light] .garden-sunlit,
.garden-stage[data-daylight=dynamic][data-light] .garden-memory,.garden-stage[data-daylight=dynamic][data-light] .garden-wind-canopy{filter:brightness(var(--garden-brightness,1)) saturate(var(--garden-saturation,1))}
.garden-stage[data-daylight=dynamic] .garden-shade{background:linear-gradient(180deg,rgba(16,45,85,var(--garden-cool,0)),transparent 70%),linear-gradient(0deg,rgba(209,138,77,var(--garden-warmth,0)),transparent 80%)}
.garden-stage[data-daylight=dynamic] .garden-sky{opacity:var(--garden-sky,0)}
.garden-stage[data-daylight=dynamic] .garden-base,.garden-stage[data-daylight=dynamic] .garden-sunlit{transition:filter 1.2s linear,opacity 1.2s linear}
@keyframes garden-room-arrival{from{opacity:0}to{opacity:1}}
@media(prefers-reduced-motion:reduce){
 .garden-character image{animation:none!important}
 .garden-weather-effects *,.garden-precip .hailstone{animation:none!important}
 .garden-stage[data-weather=storm] .garden-lightning{opacity:.5}
 .garden-lightning-wash{opacity:0!important}.garden-leaf-flight,.garden-breeze-strokes{display:none!important}
 .garden-memory img,.garden-puddles,.garden-puddles path{transition:none!important}
 .garden-heat-shimmer,.garden-wind-canopy{display:none!important}
 .garden-stage[data-daylight=dynamic] .garden-base,.garden-stage[data-daylight=dynamic] .garden-sunlit{transition:none!important}
}
