/* 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}}
