/* OROFF V10 Aurora — strictly scoped decorative hero background.
   The host hero MUST have position:relative and overflow:hidden.
   Earth + aurora share ONE SVG coordinate system; never independently crop layers. */
.oroff-aurora-root {
  position: absolute;
  inset: 0;
  z-index: 0;
  width: 100%;
  height: 100%;
  overflow: hidden;
  isolation: isolate;
  pointer-events: none;
  background: #000100;
  user-select: none;
}
.oroff-aurora-root .oroff-aurora-scene {
  position: absolute;
  inset: 0;
  display: block;
  width: 100%;
  height: 100%;
  pointer-events: none;
}
.oroff-aurora-root .oroff-earth-tint { transition: opacity .48s ease; }
  .oroff-aurora-glow { mix-blend-mode: screen; }
  .oroff-aurora-beams { mix-blend-mode: screen; }
  .oroff-aurora-neon { mix-blend-mode: screen; }
  #oroffAuroraCurtainCanvas { opacity: .96; }
  .oroff-aurora-track {
    fill: none;
    stroke-linecap: round;
    stroke-linejoin: round;
  }
  .oroff-aurora-halo-deep { stroke-width: 64; opacity: 0.38; filter: url(#oroffBlur18); }
  .oroff-aurora-halo-wide { stroke-width: 35; opacity: 0.58; filter: url(#oroffBlur8); }
  .oroff-aurora-halo-medium { stroke-width: 18; opacity: 0.62; filter: url(#oroffBlur3); }
  .oroff-aurora-halo-edge { stroke-width: 6; opacity: 0.54; filter: url(#oroffBlur1); }
  .oroff-aurora-halo-inner { stroke-width: 23; opacity: .28; filter: url(#oroffBlur8); }
  .oroff-aurora-pulse { animation: oroffAuroraBreathe 4.8s ease-in-out infinite alternate; transform-origin: center; }
  .oroff-aurora-pulse--2 { animation-duration: 6.5s; animation-delay: -2.8s; }
  .oroff-aurora-flecks { filter: url(#oroffBlur1); }


  @keyframes oroffAuroraBreathe { from { opacity: 0.72; } to { opacity: 1; } }


  #oroffOuterRingGlow, #oroffInnerRingGlow, #oroffAuroraInnerStructureGlows { transform-box: fill-box; transform-origin: center; will-change: transform; }
  #oroffOuterRingGlow { animation: oroffAuroraRingWiggleOuter 7.6s ease-in-out infinite; }
  #oroffInnerRingGlow { animation: oroffAuroraRingWiggleInner 6.1s ease-in-out infinite -1.2s; }
  #oroffAuroraInnerStructureGlows { animation: oroffAuroraRingWiggleSpurs 5.9s ease-in-out infinite -.8s; }
  @keyframes oroffAuroraRingWiggleOuter {
    0% { transform: translate(0px,0px) rotate(0deg) scale(1,1); }
    25% { transform: translate(-1.8px,-0.7px) rotate(-0.18deg) scale(0.997,1.006); }
    50% { transform: translate(1.1px,1.0px) rotate(0.15deg) scale(1.004,0.996); }
    75% { transform: translate(-0.8px,0.6px) rotate(-0.10deg) scale(0.999,1.003); }
    100% { transform: translate(0px,0px) rotate(0deg) scale(1,1); }
  }
  @keyframes oroffAuroraRingWiggleInner {
    0% { transform: translate(0px,0px) rotate(0deg) scale(1,1); }
    30% { transform: translate(1.2px,-1.1px) rotate(0.22deg) scale(1.005,0.995); }
    58% { transform: translate(-1.5px,0.9px) rotate(-0.18deg) scale(0.996,1.006); }
    100% { transform: translate(0px,0px) rotate(0deg) scale(1,1); }
  }
  @keyframes oroffAuroraRingWiggleSpurs {
    0% { transform: translate(0px,0px) rotate(0deg); }
    35% { transform: translate(-1.4px,.9px) rotate(-0.22deg); }
    65% { transform: translate(1.7px,-.8px) rotate(0.18deg); }
    100% { transform: translate(0px,0px) rotate(0deg); }
  }


/* V10 glow breathing remains governed by the common JS clock, not CSS. */
.oroff-aurora-root .oroff-aurora-pulse { animation:none !important; }
@media (prefers-reduced-motion: reduce) {
  .oroff-aurora-root #oroffOuterRingGlow,
  .oroff-aurora-root #oroffInnerRingGlow,
  .oroff-aurora-root #oroffAuroraInnerStructureGlows { animation:none !important; }
}
/* Site integration: no independently transformed photograph or aurora. */
#opening .pin{isolation:isolate}
#opening .oroff-aurora-root{z-index:0}
.oroff-aurora-root.aurora-paused *{animation-play-state:paused!important}
body.simple-motion .oroff-aurora-root *{animation:none!important}
@media(max-width:800px){
 #opening .hero-title{top:47%}
 #opening .hero-intro{margin-top:18px;gap:14px}
 #opening .expansion-copy{top:49%}
}

/* Canvas coordinates match the calibrated SVG group through one explicit matrix.
   Avoid WebKit foreignObject compositing offsets, including CSS-blurred fallback. */
#oroffAuroraCanvasSpace{position:absolute;left:0;top:0;width:720px;height:470px;transform-origin:0 0;pointer-events:none;mix-blend-mode:screen}
#oroffAuroraCanvasSpace canvas{position:absolute;left:0;top:0;display:block;width:720px;height:470px;max-width:none;pointer-events:none}

#oroffAuroraStage{transform-origin:35% 40%;will-change:transform}
html.webkit-scrolling .oroff-aurora-root *{animation-play-state:paused!important}

/* WebKit: rasterize the expensive SVG filter tree once, before deployment.
   Photo and glows remain in the original shared 1600 x 956.25 coordinates. */
.oroff-baked-base{position:absolute;left:0;top:0;max-width:none;transform-origin:0 0;pointer-events:none;display:none}
.aurora-baked-ready .oroff-baked-base{display:block}
.aurora-baked-ready #oroffAuroraScene{visibility:hidden}
.oroff-webkit #oroffOuterRingGlow,.oroff-webkit #oroffInnerRingGlow,.oroff-webkit #oroffAuroraInnerStructureGlows{animation:none!important;will-change:auto}
.oroff-webkit #oroffAuroraStage{isolation:auto;contain:layout paint;backface-visibility:hidden}
.oroff-webkit #opening .cream-wipe{clip-path:none!important;opacity:0;will-change:opacity}
.oroff-webkit #opening .expansion-copy{will-change:transform,opacity;backface-visibility:hidden}
.oroff-webkit #header,.oroff-webkit .motion-toggle{backdrop-filter:none!important;-webkit-backdrop-filter:none!important;background:#08070bf2}

/* Native scroll timelines avoid a main-thread JS / asynchronous scroll race.
   Older WebKit keeps the cached, transform-and-opacity-only JS path. */
@supports(animation-timeline:view()){
 .native-hero-scroll #opening{view-timeline-name:--opening;view-timeline-axis:block}
 .native-hero-scroll body:not(.simple-motion) #opening .hero-title{animation:hero-title-scroll 1s linear both;animation-timeline:--opening;animation-range:contain 0% contain 100%}
 .native-hero-scroll body:not(.simple-motion) #opening .expansion-copy{animation:hero-copy-scroll 1s linear both;animation-timeline:--opening;animation-range:contain 0% contain 100%}
 .native-hero-scroll body:not(.simple-motion) #oroffAuroraStage{animation:hero-pushback-scroll 1s linear both;animation-timeline:--opening;animation-range:contain 0% contain 100%}
 .native-hero-scroll body:not(.simple-motion) #opening .cream-wipe{animation:hero-wipe-scroll 1s linear both;animation-timeline:--opening;animation-range:contain 0% contain 100%}
 .native-hero-scroll body:not(.simple-motion) #opening .scene-foot{animation:hero-foot-scroll 1s linear both;animation-timeline:--opening;animation-range:contain 0% contain 100%}
}
@keyframes hero-title-scroll{0%,5%{opacity:1;transform:translate3d(0,0,0);visibility:visible}8%{opacity:1}32%{opacity:0;visibility:hidden}35%,100%{opacity:0;transform:translate3d(0,-90px,0);visibility:hidden}}
@keyframes hero-copy-scroll{0%,24%{opacity:0;transform:translate3d(0,28px,0);visibility:hidden}36%,88%{opacity:1;transform:translate3d(0,0,0);visibility:visible}97%,100%{opacity:0;transform:translate3d(0,0,0);visibility:hidden}}
@keyframes hero-pushback-scroll{from{transform:translate3d(0,0,0) scale(1)}to{transform:translate3d(0,8px,0) scale(.975)}}
@keyframes hero-wipe-scroll{0%,90%{opacity:0}100%{opacity:1}}
@keyframes hero-foot-scroll{0%,73%{opacity:1;visibility:visible}90%,100%{opacity:0;visibility:hidden}}
