/* Woodland atmosphere only; page layout is owned by styles.css. */
.forest-scene{position:absolute;inset:0;overflow:hidden;isolation:isolate;background:#19382b;--forest-x:0px;--forest-y:0px;pointer-events:none}
.forest-depth{position:absolute;inset:-16px;transform:translate(calc(var(--forest-x)*-.25),calc(var(--forest-y)*-.25));transition:transform 1.3s ease-out}
.forest-backdrop{width:100%;height:100%;object-fit:cover;object-position:50% 60%;filter:saturate(.72) brightness(.82);transform-origin:66% 55%;animation:woodland-drift 12s ease-in-out -4s infinite alternate}
.forest-canopy{position:absolute;inset:-5%;background:url('assets/canopy-shadow.webp') center top/cover no-repeat;mix-blend-mode:multiply;opacity:.2;transform-origin:60% 0;animation:canopy-breeze 10s ease-in-out -3s infinite alternate;mask-image:linear-gradient(#000 0%,#0008 45%,transparent 85%)}
.forest-haze{position:absolute;inset:0;background:radial-gradient(ellipse at 74% 39%,#d2dcb933 0,transparent 44%);animation:forest-haze 12s ease-in-out -5s infinite alternate}
.forest-light{position:absolute;top:-25%;left:56%;width:16%;height:130%;background:linear-gradient(0deg,transparent,#f2edca30 70%,#fff8d444);filter:blur(22px);transform-origin:50% 0;animation:light-sway 10s ease-in-out -3s infinite alternate;mix-blend-mode:screen}
.light-two{left:78%;width:7%;animation-delay:-9s;animation-duration:14s}
.forest-vignette{position:absolute;inset:0;background:linear-gradient(90deg,#10291ef0 0%,#132d20dd 29%,#16352260 59%,transparent 80%),linear-gradient(0deg,#0d251de0 0%,transparent 35%),linear-gradient(180deg,#0d251d33,transparent 20%);z-index:3}
.forest-paused .forest-scene *{animation-play-state:paused!important}
.forest-paused .forest-depth{transition:none}
.forest-still .forest-scene *{animation:none!important}
.forest-still .forest-scene{--forest-x:0px!important;--forest-y:0px!important}
/* Slow depth and moving canopy light; text and controls remain stationary. */
@keyframes woodland-drift{from{transform:scale(1.035) translate(3px,7px)}to{transform:scale(1.075) translate(-10px,-5px)}}
@keyframes canopy-breeze{from{transform:translate(-10px,-5px) rotate(-1.5deg)}to{transform:translate(16px,7px) rotate(1.5deg)}}
@keyframes light-sway{from{opacity:.4;transform:rotate(18deg) scaleX(.9)}to{opacity:.75;transform:rotate(28deg) scaleX(1.1)}}
@keyframes forest-haze{from{opacity:.35;transform:translateX(14px)}to{opacity:.8;transform:translateX(-24px)}}
@media(max-width:1000px){.forest-vignette{background:linear-gradient(90deg,#10291eef,#132d20ad 50%,#16352220),linear-gradient(0deg,#0d251dee,transparent 45%)}}
@media(max-width:700px){.forest-backdrop{object-position:68% 50%}.forest-vignette{background:linear-gradient(90deg,#10291edb,#132d2077 70%,#16352233),linear-gradient(0deg,#0d251df0,transparent 45%)}.forest-light{left:66%;width:22%}.light-two{left:84%;width:10%}.forest-canopy{opacity:.16}}

/* A small canopy breeze over the inner pages; the paper itself stays still. */
.interior-page .has-ambient{position:relative;isolation:isolate;--ambient-shadow:.16;--ambient-x:12px;--ambient-y:5px}
.interior-page .has-ambient:before,.interior-page .has-ambient:after{display:none}
.ambient-layer{position:absolute;inset:0;z-index:-1;overflow:hidden;pointer-events:none;mask-image:linear-gradient(transparent,#000 14%,#000 65%,transparent)}
.ambient-layer:before,.ambient-layer:after{content:'';position:absolute;inset:-36px;animation-play-state:paused;transform-origin:68% 18%}
.ambient-layer:before{background:url('assets/canopy-shadow.webp') center/cover no-repeat;opacity:var(--ambient-shadow);transform:translate(-6px,-3px) rotate(-.6deg)}
.ambient-layer:after{inset:-20%;background:radial-gradient(ellipse at 70% 24%,#fff1bb66,transparent 58%);opacity:.3;transform:translateX(-12px)}
.tone-sage.has-ambient{--ambient-shadow:.13}
.tone-forest.has-ambient,.closing.has-ambient{--ambient-shadow:.32}
.tone-forest>.ambient-layer,.closing>.ambient-layer{mask-image:none;background:linear-gradient(110deg,#102c2355,transparent 70%)}
.tone-forest>.ambient-layer:after,.closing>.ambient-layer:after{background:radial-gradient(ellipse at 75% 12%,#d2d39a55,transparent 58%)}
.contact-intro>.ambient-layer{inset:-35px -24px;mask-image:radial-gradient(ellipse,#000 15%,transparent 72%)}
.bird-intro>.ambient-layer{inset:-24px -40px}
@media(prefers-reduced-motion:no-preference){
 .ambient-layer:before{animation:inner-canopy 16s ease-in-out -5s infinite alternate paused}
 .ambient-layer:after{animation:inner-daylight 20s ease-in-out -11s infinite alternate paused}
 .ambient-running>.ambient-layer:before,.ambient-running>.ambient-layer:after{animation-play-state:running}
}
@keyframes inner-canopy{from{transform:translate(calc(var(--ambient-x)*-1),calc(var(--ambient-y)*-1)) rotate(-.6deg)}to{transform:translate(var(--ambient-x),var(--ambient-y)) rotate(.6deg)}}
@keyframes inner-daylight{from{opacity:.24;transform:translate(-20px,4px)}to{opacity:.52;transform:translate(24px,-6px)}}
@media(max-width:700px){.interior-page .has-ambient{--ambient-x:7px;--ambient-y:3px}.ambient-layer:before{background-size:auto 100%}}
