/* Independent, pointer-transparent atmosphere, layered over the existing art. */
.vh-atmosphere{position:fixed;inset:0;z-index:90;pointer-events:none;overflow:hidden;contain:strict;opacity:.75}
.vh-atmosphere-glow,.vh-atmosphere-horizon,.vh-atmosphere-palms{position:absolute;inset:-5%;pointer-events:none}
.vh-atmosphere-glow{opacity:0;transition:opacity 1.2s ease}
.vh-glow-sunset{background:radial-gradient(ellipse at 2% 30%,rgba(255,106,169,.14),transparent 34%),radial-gradient(ellipse at 98% 75%,rgba(169,132,255,.13),transparent 36%)}
.vh-glow-coast{background:radial-gradient(ellipse at 2% 75%,rgba(111,224,220,.15),transparent 34%),radial-gradient(ellipse at 100% 20%,rgba(169,132,255,.12),transparent 35%)}
.vh-glow-city{background:radial-gradient(ellipse at 0 35%,rgba(169,132,255,.15),transparent 29%),radial-gradient(ellipse at 100% 75%,rgba(255,106,169,.12),transparent 30%)}
.vh-glow-neon{background:radial-gradient(ellipse at 2% 80%,rgba(255,106,169,.18),transparent 36%),radial-gradient(ellipse at 100% 18%,rgba(111,224,220,.15),transparent 34%)}
.vh-atmosphere[data-phase="sunset"] .vh-glow-sunset,.vh-atmosphere[data-phase="coast"] .vh-glow-coast,.vh-atmosphere[data-phase="city"] .vh-glow-city,.vh-atmosphere[data-phase="neon"] .vh-glow-neon{opacity:1}
.vh-atmosphere-horizon{inset:auto -5% -10% -5%;height:29%;opacity:.16;transform:translate3d(0,var(--vh-shift,0px),0);background:repeating-linear-gradient(0deg,transparent 0 24px,rgba(255,140,194,.26) 25px,transparent 26px 40px);mask-image:linear-gradient(90deg,#000,transparent 33%,transparent 67%,#000);-webkit-mask-image:linear-gradient(90deg,#000,transparent 33%,transparent 67%,#000)}
.vh-atmosphere-palms{inset:auto -3% -8% auto;width:clamp(120px,20vw,300px);height:45%;opacity:.13;transform:translate3d(0,calc(var(--vh-shift, 0px) * -.5),0);background:linear-gradient(105deg,transparent 49%,#a984ff 50% 51%,transparent 52%) center bottom/100% 75% no-repeat,radial-gradient(ellipse at 85% 28%,rgba(111,224,220,.35),transparent 50%);clip-path:polygon(47% 100%,53% 100%,56% 32%,97% 42%,72% 25%,100% 15%,68% 18%,82% 0,57% 14%,45% 0,46% 16%,15% 3%,35% 21%,0 17%,34% 28%,2% 43%,47% 34%)}
.vh-arrived{animation:vh-arrive .7s cubic-bezier(.2,.7,.2,1) both}@keyframes vh-arrive{from{transform:translateY(12px);opacity:.65}to{transform:translateY(0);opacity:1}}
@media(max-width:650px){.vh-atmosphere{opacity:.5}.vh-atmosphere-horizon{height:20%}.vh-atmosphere-palms{width:135px;height:30%}}
@media(prefers-reduced-motion:reduce){.vh-atmosphere-glow{transition:none}.vh-atmosphere-horizon,.vh-atmosphere-palms{transform:none}.vh-arrived{animation:none}}
