/* Shared public atmosphere. Tune this file once for every public page. */
body.rle-atmosphere{
  --light-a:173,186,160;--light-b:218,190,149;--light-c:167,180,166;
  --atmosphere-paper:#f5f4f0;
  background:var(--atmosphere-paper);isolation:isolate;position:relative;
}
.rle-atmosphere-field{position:fixed;inset:0;z-index:-1;overflow:hidden;pointer-events:none;contain:strict;background:var(--atmosphere-paper)}
.rle-atmosphere-field i{position:absolute;display:block;width:100vw;height:100vh;opacity:.85;animation:rle-atmosphere-drift 24s ease-in-out infinite alternate;will-change:transform}
.rle-atmosphere-field .light-sage{left:-35%;top:-67vh;animation-delay:-7s;background:radial-gradient(ellipse,rgba(var(--light-a),.31) 0%,rgba(var(--light-a),.14) 35%,rgba(var(--light-a),0) 67%)}
.rle-atmosphere-field .light-amber{left:-18%;bottom:-44vh;animation-duration:29s;background:radial-gradient(ellipse,rgba(var(--light-b),.52) 0%,rgba(var(--light-b),.31) 28%,rgba(var(--light-b),0) 64%)}
.rle-atmosphere-field .light-violet{right:-33%;top:9vh;animation-delay:-13s;animation-duration:27s;background:radial-gradient(ellipse,rgba(var(--light-c),.46) 0%,rgba(var(--light-c),.28) 30%,rgba(var(--light-c),0) 65%)}
@keyframes rle-atmosphere-drift{from{transform:translate3d(-2%,0,0) scale(1)}to{transform:translate3d(3%,1%,0) scale(1.02)}}
.rle-atmosphere-paused .rle-atmosphere-field i{animation-play-state:paused;will-change:auto}
@media(max-width:700px){
 .rle-atmosphere-field i{width:160vw}
 .rle-atmosphere-field .light-sage{left:-65%;top:-71vh}
 .rle-atmosphere-field .light-amber{left:-50%;bottom:-43vh}
 .rle-atmosphere-field .light-violet{right:-70%;top:6vh}
}
@media(prefers-reduced-motion:reduce){.rle-atmosphere-field i{animation:none;will-change:auto}}
/* Scroll-driven defocus: intact hero at rest, clear foreground at every position. */
.rle-atmosphere #top .hero-background img,.rle-atmosphere #top .hero-background video{
  filter:blur(var(--hero-scroll-blur,0px));
  transform:scale(var(--hero-scroll-scale,1));
  transform-origin:center;
}
@media(prefers-reduced-motion:reduce){
  .rle-atmosphere #top .hero-background img,.rle-atmosphere #top .hero-background video{filter:none;transform:none}
}

/* The boundary dissolves only after scrolling; at the top every mask stop is opaque. */
.rle-atmosphere.home-immersive-preview #top.hero.hero-video{
  --hero-edge-depth:clamp(50px,9vh,100px);
  -webkit-mask-image:linear-gradient(to bottom,#000 0%,#000 calc(100% - var(--hero-edge-depth)),rgba(0,0,0,var(--hero-edge-start,1)) calc(100% - var(--hero-edge-depth)*.66),rgba(0,0,0,var(--hero-edge-mid,1)) calc(100% - var(--hero-edge-depth)*.3),rgba(0,0,0,var(--hero-edge-end,1)) 100%);
  mask-image:linear-gradient(to bottom,#000 0%,#000 calc(100% - var(--hero-edge-depth)),rgba(0,0,0,var(--hero-edge-start,1)) calc(100% - var(--hero-edge-depth)*.66),rgba(0,0,0,var(--hero-edge-mid,1)) calc(100% - var(--hero-edge-depth)*.3),rgba(0,0,0,var(--hero-edge-end,1)) 100%);
}
@media(max-width:700px){.rle-atmosphere.home-immersive-preview #top.hero.hero-video{--hero-edge-depth:clamp(45px,8vh,70px)}}
@media(prefers-reduced-motion:reduce){.rle-atmosphere.home-immersive-preview #top.hero.hero-video{-webkit-mask-image:none;mask-image:none}}

/* A narrow frosted edge, tinted by the selected background palette. */
.rle-atmosphere.home-immersive-preview #top.hero.hero-video::before{
  content:"";position:absolute;inset:auto 0 0;height:var(--hero-edge-depth);
  z-index:1;pointer-events:none;opacity:var(--hero-frost-opacity,0);
  background:radial-gradient(ellipse at 15% 100%,rgba(var(--light-b),.3),transparent 65%),radial-gradient(ellipse at 85% 100%,rgba(var(--light-c),.32),transparent 65%),linear-gradient(to bottom,transparent,rgba(245,244,240,.18));
  -webkit-backdrop-filter:blur(12px) saturate(.85);backdrop-filter:blur(12px) saturate(.85);
  -webkit-mask-image:linear-gradient(to bottom,transparent,rgba(0,0,0,.2) 22%,#000 76%);
  mask-image:linear-gradient(to bottom,transparent,rgba(0,0,0,.2) 22%,#000 76%);
}
@media(prefers-reduced-motion:reduce){.rle-atmosphere.home-immersive-preview #top.hero.hero-video::before{display:none}}
