/* Low-cost continuation of the intro atmosphere, bounded to the next section. */
.home-hero>.landing-haze{position:absolute;inset:0;z-index:0;overflow:hidden;pointer-events:none;opacity:var(--haze-opacity,.3);mask-image:linear-gradient(#000 0%,transparent 85%)}
.landing-haze::before{content:"";position:absolute;inset:-10% -25%;background:url("images/fog-wisps.png") center/100% 100% no-repeat;opacity:.48}
:root[data-theme=day] .landing-haze::before{opacity:.24;filter:brightness(.7)}
:root[data-motion=running][data-page-visible=true] .landing-haze[data-visible=true]::before{animation:landing-haze 21s ease-in-out infinite alternate}
@keyframes landing-haze{from{transform:translate3d(-3%,0,0) scale(1)}to{transform:translate3d(4%,-3%,0) scale(1.1)}}
/* GPU-friendly soft light cones; generated only for capable desktop devices. */
.landing-spotlights{position:absolute;inset:0;z-index:0;overflow:hidden;pointer-events:none;opacity:.25;mask-image:linear-gradient(#000,transparent 95%)}
.landing-spotlights::before,.landing-spotlights::after{content:"";position:absolute;top:-30%;width:50%;height:140%;transform-origin:50% 0;background:linear-gradient(105deg,transparent 43%,#0eb7ff33 49%,#0eb7ff14 55%,transparent 60%);animation:landing-light 15s ease-in-out infinite alternate;animation-play-state:paused}
.landing-spotlights::before{left:3%}.landing-spotlights::after{right:2%;background:linear-gradient(75deg,transparent 40%,#601ce91f 47%,#601ce935 52%,transparent 58%);animation-delay:-8s}
@keyframes landing-light{from{transform:rotate(-10deg)}to{transform:rotate(12deg)}}
:root[data-motion=running][data-page-visible=true] .landing-spotlights[data-visible=true]::before,:root[data-motion=running][data-page-visible=true] .landing-spotlights[data-visible=true]::after{animation-play-state:running}
.intro-logo .logo-block[data-draggable]{translate:var(--drag-x,0px) var(--drag-y,0px);cursor:grab;touch-action:pan-y;user-select:none;-webkit-user-drag:none}
.intro-logo .logo-block[data-dragging=true]{cursor:grabbing;will-change:translate}
.intro-logo .logo-block[data-draggable]:focus-visible{outline:3px solid #0eb7ff;outline-offset:6px}
@media(prefers-reduced-motion:reduce){.landing-haze::before,.landing-spotlights::before,.landing-spotlights::after{animation:none!important}}
/* Snap only near the first section on fine-pointer desktops. The existing
   intentional intro animation temporarily disables snap until it finishes. */
@supports selector(html:has(body)){
  @media(min-width:1025px) and (pointer:fine) and (hover:hover) and (not (any-pointer:coarse)) and (prefers-reduced-motion:no-preference){
    html[data-motion=running]:has(.logo-intro):not(:has(body[data-intro-transition])){scroll-snap-type:y proximity}
    .logo-intro + #welcome{scroll-snap-align:start;scroll-margin-top:-110px}
  }
}
