.distant-hills{position:absolute;inset:0;z-index:0;pointer-events:none}
.distant-ridge{position:absolute;inset:0;width:100%;height:240px}
.distance-0{--distant-top:#454755;--distant-bottom:#303944;--distant-edge:#85849325}
.distance-1{--distant-top:#303c3e;--distant-bottom:#222e2f;--distant-edge:#85938c20}
.distance-2{--distant-top:#24322c;--distant-bottom:#16231c;--distant-edge:#7a947924}
html[data-theme=light] .distance-0{--distant-top:#b6bc96;--distant-bottom:#939f7f;--distant-edge:#f8edc944}
html[data-theme=light] .distance-1{--distant-top:#929e6c;--distant-bottom:#748757;--distant-edge:#ede9b735}
html[data-theme=light] .distance-2{--distant-top:#71884e;--distant-bottom:#4e6c38;--distant-edge:#d4dc9930}

.site-ground[data-meadow]{height:240px;isolation:isolate}
.site-ground[data-meadow]>.grass-hill{z-index:2}
html[data-theme=dark] .site-ground[data-meadow]>.distant-hills{display:block}
.site-ground[data-meadow] .prairie-flowers{position:absolute;inset:0;width:100%;height:240px;overflow:visible;pointer-events:none;z-index:1}
.site-ground[data-meadow] .foreground-flowers{position:absolute;bottom:0;left:0;width:100%;height:40px;z-index:3;pointer-events:none;overflow:visible}
html[data-theme=dark] .prairie-flowers,html[data-theme=dark] .foreground-flowers{display:none}
.site-ground[data-meadow] .prairie-plant{transform-box:fill-box;transform-origin:50% 100%;animation:meadow-breeze var(--bloom-duration,6s) ease-in-out infinite;animation-delay:var(--bloom-delay,0s)}
.site-ground[data-meadow] .flower-depth-0 .prairie-plant,.site-ground[data-meadow] .flower-depth-1 .prairie-plant{animation:none}
.site-ground[data-meadow] .foreground-flowers .prairie-plant{animation:meadow-foreground 4.5s ease-in-out infinite;animation-delay:var(--bloom-delay)}
@keyframes meadow-breeze{0%,100%{rotate:-1.4deg}50%{rotate:1.8deg}}
@keyframes meadow-foreground{0%,100%{rotate:-7deg}50%{rotate:8deg}}
@media(prefers-reduced-motion:reduce){.site-ground[data-meadow] .prairie-plant{animation:none!important}}

/* Reserve the landscape footer in the document, even on short pages. */
body:has(> footer.site-ground) {
 position:relative;
 box-sizing:border-box;
 min-height:100vh;
 min-height:100dvh;
 padding-bottom:calc(240px + var(--bottom-nav-height, 0px));
}
body > footer.site-ground {
 position:absolute;
 bottom:0;
 left:0;
 display:block;
 box-sizing:border-box;
 width:calc(100% - var(--project-offset, 0px));
 max-width:none;
 height:240px;
 margin:0 0 0 var(--project-offset, 0px);
 padding:0;
 border:0;
}

/* Seasonal dressing leaves every hill path untouched. */
.footer-season{display:none;--tree-bark:#675344;--ground-shadow:#27351d22;--evergreen:#446654;--snow-cap:#f0f5f3;--tent:#bc9a68;--season-grass:#71864b}
html[data-seasonal-style=spring] .footer-spring,html[data-seasonal-style=summer] .footer-summer,html[data-seasonal-style=autumn] .footer-autumn,html[data-seasonal-style=winter] .footer-winter{display:inline}
.footer-spring{--crown-0:#e8b9bd;--crown-1:#f5dad4;--crown-2:#d699aa;--season-grass:#649055}
.footer-summer{--crown-0:#63804b;--crown-1:#7e985a;--crown-2:#4d7148}
.footer-autumn{--crown-0:#b75f37;--crown-1:#d79943;--crown-2:#9c4935;--season-grass:#b18b48}
.footer-winter{--season-grass:#8e8b7b}
html[data-seasonal-style] .distant-ridge{overflow:visible}
html[data-seasonal-style] .prairie-flowers{opacity:.48}
html[data-seasonal-style=spring] .flower-depth-0,html[data-seasonal-style=spring] .flower-depth-1{opacity:.4}
html[data-seasonal-style=autumn] :is(.prairie-flowers,.foreground-flowers),html[data-seasonal-style=winter] :is(.prairie-flowers,.foreground-flowers){display:none}
html[data-seasonal-style] .site-ground .campfire{display:none!important}
html[data-seasonal-style=spring] .distance-0{--distant-top:#b9c99e;--distant-bottom:#90ad79}
html[data-seasonal-style=spring] .distance-1{--distant-top:#91b077;--distant-bottom:#6c945d}
html[data-seasonal-style=spring] .distance-2{--distant-top:#719754;--distant-bottom:#4d783d}
html[data-seasonal-style=summer] .distance-0{--distant-top:#bec194;--distant-bottom:#a5ab75}
html[data-seasonal-style=summer] .distance-1{--distant-top:#a5ad71;--distant-bottom:#879554}
html[data-seasonal-style=summer] .distance-2{--distant-top:#8c9a58;--distant-bottom:#657c42}
html[data-seasonal-style=autumn] .distance-0{--distant-top:#d4b788;--distant-bottom:#bca070}
html[data-seasonal-style=autumn] .distance-1{--distant-top:#bd995f;--distant-bottom:#a38250}
html[data-seasonal-style=autumn] .distance-2{--distant-top:#a98951;--distant-bottom:#88713e}
html[data-seasonal-style=winter] .distance-0{--distant-top:#ecf3f4;--distant-bottom:#c5d8df}
html[data-seasonal-style=winter] .distance-1{--distant-top:#e0ecf0;--distant-bottom:#b5ccd6}
html[data-seasonal-style=winter] .distance-2{--distant-top:#d3e4ea;--distant-bottom:#9ebbc9}
html[data-seasonal-style][data-theme=dark] .distant-hills{filter:brightness(.48) saturate(.72)}
html[data-seasonal-style][data-theme=dark] .footer-flame{filter:brightness(2)}
html[data-seasonal-style=autumn] .site-ground>.grass-hill{filter:sepia(.65) saturate(.8)}
html[data-seasonal-style=winter] .site-ground>.grass-hill{filter:grayscale(.9) brightness(1.8)}
.footer-flame{transform-origin:0 0;animation:footer-fire 3s ease-in-out infinite}
@keyframes footer-fire{50%{transform:scale(.94,1.08)}}
@media(prefers-reduced-motion:reduce){.footer-flame{animation:none}}
html[data-seasonal-style=winter] .site-ground>.grass-hill{filter:none;--far-top:#e3edf0;--far-bottom:#b9ced8;--mid-top:#d2e3ea;--mid-bottom:#adc6d2;--near-top:#c6dce5;--near-bottom:#9ab9ca}
html[data-seasonal-style=autumn] .site-ground>.grass-hill{filter:none;--far-top:#ba9c68;--far-bottom:#a08555;--mid-top:#a58b51;--mid-bottom:#8b723f;--near-top:#957b47;--near-bottom:#705d37}
html[data-seasonal-style][data-theme=dark] .site-ground>.grass-hill{filter:brightness(.48) saturate(.72)}
html[data-seasonal-style=winter] .site-ground>.grass-hill{--blade:#8b9189;--blade-tip:#d9e3df}
html[data-seasonal-style=autumn] .site-ground>.grass-hill{--blade:#957c4c;--blade-tip:#c4aa72}

/* Stream and pond are shared core terrain geometry. */
.footer-water{display:none}
.distant-hills{--pond-top:#8eaaa5;--pond-bottom:#547d7b;--water-bank:#bca26d;--water-glint:#e0e6ce;--reed-color:#85723e;--water-stone:#8d8974}
html[data-seasonal-style] .footer-water{display:inline}
html[data-seasonal-style=autumn][data-theme=dark] .distant-hills{--pond-top:#829caa;--pond-bottom:#486c7d;--water-glint:#dfebec}

/* One valley and water footprint; only surface and shoreline treatments change. */
html[data-seasonal-style=spring] .distant-hills{--pond-top:#a3c7c2;--pond-bottom:#659c99;--water-bank:#98ac73;--reed-color:#60834b;--water-stone:#8b9989}
html[data-seasonal-style=summer] .distant-hills{--pond-top:#8bb7af;--pond-bottom:#4f8884;--water-bank:#b5b17c;--reed-color:#6d8548;--water-stone:#8f9480}
html[data-seasonal-style=winter] .distant-hills{--pond-top:#c5dde5;--pond-bottom:#9bbdcd;--water-bank:#e4eef0;--reed-color:#96968b;--water-stone:#d3dfe2;--water-glint:#f2fafc}
.water-spring,.water-summer,.water-autumn,.water-winter{display:none}
html[data-seasonal-style=spring] .water-spring,html[data-seasonal-style=summer] .water-summer,html[data-seasonal-style=autumn] .water-autumn,html[data-seasonal-style=winter] .water-winter{display:inline}

/* Slow downstream highlights; broad, low-contrast ripples stay within the banks. */
.stream-current{stroke-width:.9;stroke-dasharray:5 55;opacity:.35;animation:stream-drift 14s linear infinite}
.pond-ring{stroke-width:.65;opacity:0;transform-origin:0 0;animation:pond-spread 12s ease-out infinite}
.pond-ring-small{animation-duration:15s}
.winter-thaw{display:none}
html[data-seasonal-style=winter] .pond-ripples{display:none}
html[data-seasonal-style=winter] .winter-thaw{display:inline}
html[data-seasonal-style=winter] .stream-current{animation-duration:22s;opacity:.2}
.thaw-ring{stroke-width:.55;transform-origin:0 0;animation:thaw-stir 16s ease-in-out infinite;opacity:.25}
@keyframes stream-drift{to{stroke-dashoffset:-60}}
@keyframes pond-spread{0%{transform:scale(.55);opacity:0}18%{opacity:.3}85%,100%{transform:scale(2.1);opacity:0}}
@keyframes thaw-stir{0%,100%{transform:scale(.8);opacity:.12}50%{transform:scale(1.35);opacity:.3}}
@media(prefers-reduced-motion:reduce){.stream-current,.pond-ring,.thaw-ring{animation:none}.pond-ring{opacity:.15}.thaw-ring{opacity:.2}}

.footer-season{--trail-color:#b9a47b;--cabin-window:#c5c5a1}
html[data-theme=dark] .footer-season{--cabin-window:#ffd38b}
.footer-winter{--trail-color:#b6c8cc}
.cabin-snow,.bridge-snow{display:none}
.footer-winter :is(.cabin-snow,.bridge-snow){display:inline}

/* A quiet hearth: smoke drifts up and downwind; window light stays steady. */
.smoke-wisp{fill:#a7a99f;opacity:0;animation:chimney-drift 15s linear infinite}
@keyframes chimney-drift{0%{transform:translate(0,0) scale(.5);opacity:0}15%{opacity:.22}60%{opacity:.12}100%{transform:translate(14px,-38px) scale(2.5,1.7);opacity:0}}
html[data-theme=dark] .smoke-wisp{fill:#d9d9cd}
html[data-theme=dark] .cabin-lit-window{filter:brightness(2) drop-shadow(0 0 3px #ffd18a)}
.cabin-garden{--garden-soil:#80694c;--garden-leaf:#648348}
.footer-spring .cabin-garden{--garden-leaf:#7f9d57}
.footer-autumn .cabin-garden{--garden-leaf:#9d8c45}
.footer-winter .cabin-garden{--garden-soil:#d8e5e8}
.footer-winter .garden-crop{display:none}
.coop-snow{display:none}.footer-winter .coop-snow{display:inline}
@media(prefers-reduced-motion:reduce){.smoke-wisp{animation:none;opacity:0}.smoke-wisp:first-child{opacity:.12;transform:translate(4px,-12px) scale(1.4)}}
html[data-theme=dark] .cabin-lit-window{fill:#ffc36b;filter:drop-shadow(0 0 2.5px #ffb54d)}

/* Short, staggered foraging walks, with long pauses for pecking. */
.yard-chicken{animation:hen-wander var(--hen-duration,28s) ease-in-out infinite;animation-delay:var(--hen-delay,0s)}
.hen-head{transform-origin:3px -5px;animation:hen-peck 7s ease-in-out infinite;animation-delay:var(--hen-delay,0s)}
@keyframes hen-wander{0%,15%,100%{transform:translate(0,0)}35%,60%{transform:translate(5px,-1px)}80%{transform:translate(2px,1px)}}
@keyframes hen-peck{0%,42%,58%,70%,100%{transform:rotate(0)}48%,64%{transform:rotate(65deg)}}
@media(prefers-reduced-motion:reduce){.yard-chicken,.hen-head{animation:none}}

/* One cream-and-gold tabby, with a short stroll and unhurried pauses. */
.cabin-tabby{animation:tabby-stroll 42s ease-in-out infinite}
.tabby-tail{transform-origin:-7px -6px;animation:tabby-tail 8s ease-in-out infinite}
.tabby-step-a{animation:tabby-step 2.4s ease-in-out infinite}
.tabby-step-b{animation:tabby-step 2.4s ease-in-out infinite reverse}
@keyframes tabby-stroll{0%,12%,100%{transform:translate(0,0)}40%,60%{transform:translate(12px,2px)}82%{transform:translate(5px,1px)}}
@keyframes tabby-tail{50%{transform:rotate(9deg)}}
@keyframes tabby-step{50%{transform:translateX(1px)}}
@media(prefers-reduced-motion:reduce){.cabin-tabby,.tabby-tail,.tabby-step-a,.tabby-step-b{animation:none}}
@keyframes tabby-stroll{0%,12%{transform:translate(0,0) scaleX(1)}40%,55%{transform:translate(12px,2px) scaleX(1)}56%,62%{transform:translate(12px,2px) scaleX(-1)}90%,98%{transform:translate(0,0) scaleX(-1)}99%,100%{transform:translate(0,0) scaleX(1)}}
