/* Two broad gradients drift between olive light and near-black shadow.
   Gradients are painted once; only transform/opacity animate. */
.opening{background:#0b100b}
.hero-wash{position:absolute;inset:0;overflow:hidden;z-index:0;pointer-events:none;background:radial-gradient(ellipse at 50% 48%,#39412a55,transparent 65%)}
.wash-cloud{position:absolute;inset:-30%;will-change:transform,opacity;mask-image:radial-gradient(ellipse at center,#000 35%,transparent 72%)}
.wash-olive{background:radial-gradient(ellipse at 28% 37%,#7c884f 0%,#5c693bb3 22%,#43512e3b 44%,transparent 64%);animation:leman-olive 26s var(--ease-in-out) infinite alternate}
.wash-khaki{background:radial-gradient(ellipse at 73% 62%,#909368c9 0%,#6e77487a 24%,#4a5c3030 42%,transparent 65%);animation:leman-khaki 32s var(--ease-in-out) infinite alternate}
.wash-pointer{position:absolute;left:0;top:0;width:65vmax;height:65vmax;border-radius:50%;background:radial-gradient(circle,#a6ae704d,#7e905730 22%,transparent 62%);opacity:0;transition:opacity 250ms ease;will-change:transform;transform:translate(-100%,-100%)}
.hero-wash[data-pointer] .wash-pointer{opacity:1}
.hero-wash[data-paused] .wash-cloud{animation-play-state:paused}
@keyframes leman-olive{0%{transform:translate3d(-12%,-6%,0) rotate(-12deg);opacity:.65}45%{opacity:.15}100%{transform:translate3d(20%,12%,0) rotate(15deg);opacity:.85}}
@keyframes leman-khaki{0%{transform:translate3d(12%,8%,0) rotate(10deg);opacity:.4}55%{opacity:.12}100%{transform:translate3d(-22%,-12%,0) rotate(-16deg);opacity:.8}}
@media(max-width:760px){.wash-pointer{display:none}.wash-cloud{inset:-20%}}
@media(prefers-reduced-motion:reduce){.wash-cloud{animation:none;will-change:auto}.wash-olive{opacity:.45}.wash-khaki{opacity:.25}.wash-pointer{display:none;transition:none}}
