/* A living world behind stationary, readable content. */
.hero-scene {
  --drift-scale: 1.065;
  --drift-x: -.35%;
  --drift-y: .2%;
  transform-origin: 61% 54%;
  animation: header-drift 24s ease-in-out infinite;
  will-change: transform;
}
.hero-world-fx { position:absolute;display:block;visibility:hidden;pointer-events:none;overflow:visible; }
.hero-world-fx.is-positioned { visibility:visible; }
.portal-breath { opacity:.3;animation:portal-breathe 7s ease-in-out infinite; }
.portal-current { opacity:.65; }
.portal-current-glow,.portal-current-core { animation:portal-flow 11s linear infinite; }
.world-mist { transform-box:view-box;animation:mist-cross 22s ease-in-out infinite alternate;opacity:.55; }
.world-mist-far { animation-delay:-12s; }
.world-mist-near { animation:mist-near-cross 17s ease-in-out infinite alternate;animation-delay:-6s;opacity:.32; }
.world-mote { opacity:0;animation:mote-rise var(--mote-time) linear var(--mote-delay) infinite; }
@keyframes header-drift {
  0%,100% { transform:translate3d(0,0,0) scale(1.035); }
  50% { transform:translate3d(var(--drift-x),var(--drift-y),0) scale(var(--drift-scale)); }
}
@keyframes portal-breathe { 0%,100% { opacity:.22; } 50% { opacity:.8; } }
@keyframes portal-flow { to { stroke-dashoffset:-1000; } }
@keyframes mist-cross {
  from { transform:translate3d(-60px,6px,0);opacity:.35; }
  to { transform:translate3d(70px,-8px,0);opacity:.68; }
}
@keyframes mist-near-cross {
  from { transform:translate3d(80px,12px,0);opacity:.24; }
  to { transform:translate3d(-65px,-8px,0);opacity:.45; }
}
@keyframes mote-rise {
  0% { transform:translate(0,35px);opacity:0; }
  18% { opacity:.65; }
  72% { opacity:.5; }
  100% { transform:translate(var(--mote-drift),-85px);opacity:0; }
}
[data-motion-paused] .hero-scene,[data-motion-paused] .hero-scene *,
.hero[data-scene-offscreen] .hero-scene,.hero[data-scene-offscreen] .hero-scene * { animation-play-state:paused; }
[data-motion-paused] .hero-scene { translate:none!important; }
@media(max-width:760px) {
  .hero-scene { --drift-scale:1.08;--drift-x:-.45%;--drift-y:.3%;animation-duration:16s;animation-delay:-3s; }
  .world-mote { r:2.4px; }
  .world-mote:nth-child(n+11) { display:none; }
  .world-mist-near { display:block; }
  .portal-current { opacity:.75; }
  .portal-current-glow,.portal-current-core { animation-duration:8s; }
}
@media(prefers-reduced-motion:reduce) {
  .hero-scene { animation:none;transform:none;translate:none!important;will-change:auto; }
  .hero-world-fx { display:none; }
}
