/* Homepage atmosphere, adapted from the retained 127.0.0.1 prototype. */
.bb-home {
  position: relative;
  isolation: isolate;
  background: var(--night);
  --bb-footer-night: #050c14;
}
.home-atmosphere {
  position: absolute;
  inset: 0;
  z-index: -1;
  overflow: clip;
  pointer-events: none;
  background: transparent;
}
.home-light-trail {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  opacity: .26;
  /* Fade from the measured hero edge, independently of total page length. */
  mask-image: linear-gradient(180deg,
    transparent 0, transparent var(--bb-trail-reveal-start, 90svh),
    #0001 calc(var(--bb-trail-reveal-start, 90svh) + 100px),
    #0004 calc(var(--bb-trail-reveal-start, 90svh) + 240px),
    #000a calc(var(--bb-trail-reveal-start, 90svh) + 420px),
    #000 calc(var(--bb-trail-reveal-start, 90svh) + 600px)),
    var(--bb-trail-chapter-mask, linear-gradient(#000, #000));
  mask-composite: intersect;
}
.home-light-trail path {
  stroke: url(#bb-home-trail-light);
  fill: none;
  stroke-linecap: round;
  stroke-dasharray: none;
  vector-effect: non-scaling-stroke;
}
.home-trail-line { stroke-width: 1.25px; }
.home-trail-halo { stroke-width: 18px; filter: blur(12px); opacity: .35; }
.bb-home .story-flow { overflow: clip; }
.bb-home .story-flow > .section-alt { background: transparent; }
.bb-home #zajrzyj { isolation: isolate; }
.bb-home .closing-panel { background: transparent; }
.bb-home .home-landing .landing-finale {
  background: linear-gradient(180deg, var(--night) 0%, #0f1c29 22%, #09131f 66%, var(--bb-footer-night) 100%);
}
.bb-home .site-footer {
  position: relative;
  isolation: isolate;
  background: var(--bb-footer-night);
  border-top: 0;
}
.bb-home .footer-base { background: transparent; }
.home-fireflies {
  position: fixed;
  inset: 0;
  z-index: 4;
  overflow: hidden;
  pointer-events: none;
  contain: strict;
}
.home-firefly {
  position: absolute;
  width: var(--light-size);
  height: var(--light-size);
  animation: home-forest-wander var(--light-time) ease-in-out var(--light-delay) infinite;
}
.home-firefly i {
  display: block;
  width: 100%;
  height: 100%;
  border-radius: 50%;
  background: #fff6d3;
  box-shadow: 0 0 5px 2px #ffdf9490, 0 0 17px 6px #f3be633d;
  animation: home-firefly-light 7s ease-in-out var(--light-delay) infinite;
}
.home-motion-hidden .home-firefly,
.home-motion-hidden .home-firefly i { animation-play-state: paused; }
@keyframes home-forest-wander {
  0%, 100% { transform: translate3d(0, 24px, 0); opacity: .2; }
  35% { transform: translate3d(var(--light-drift), -45px, 0); opacity: .8; }
  70% { transform: translate3d(8px, -100px, 0); opacity: .35; }
}
@keyframes home-firefly-light {
  0%, 100% { opacity: .4; }
  45% { opacity: 1; }
  75% { opacity: .55; }
}
@media (max-width: 700px) {
  .home-light-trail { opacity: .18; }
  .home-trail-halo { stroke-width: 14px; filter: blur(10px); }
  .home-firefly:nth-child(n+13) { display: none; }
}
@media (prefers-reduced-motion: reduce) {
  .home-firefly, .home-firefly i { animation: none; }
  .home-firefly { opacity: .35; }
}
@media print {
  .home-atmosphere, .home-fireflies,
  .bb-home #zajrzyj::before, .bb-home .site-footer::before, .bb-home .site-footer::after { display: none; }
}
