/* Small composited landscape accents. The source image stays intact: these
   gradients are painted once, then only their opacity/transform moves. */
.scene-fx {
  position: absolute;
  inset: 0;
  overflow: hidden;
  pointer-events: none;
  user-select: none;
  contain: layout paint;
  z-index: 1;
  --fx-strength: 1;
}
.scene-fx-art {
  position: absolute;
  overflow: visible;
  pointer-events: none;
}
.scene-fx--hero { transform: scale(1.025); transform-origin: 50% 50%; }
.scene-fx--ambient {
  z-index: auto;
  opacity: 0;
  transition: opacity 1.2s var(--ease, ease);
  --fx-strength: .6;
}
.scene-fx--ambient[data-fx-active="true"] { opacity: 1; }
.scene-fx--ambient .scene-fx-art { transform-origin: 50% 50%; }
.scene-fx-beam,.scene-fx-mist,.scene-fx-glint,.scene-fx-seed {
  position: absolute;
  animation-play-state: paused;
  pointer-events: none;
}
.scene-fx-beam {
  width: 15%;
  height: 72%;
  transform-origin: 38% 0%;
  background: linear-gradient(174deg, rgba(255, 240, 199, .28), rgba(255, 239, 196, .17) 38%, transparent 82%);
  clip-path: polygon(39% 0%, 50% 0%, 100% 100%, 0% 100%);
  opacity: 0;
  animation: scene-sunray 13s ease-in-out infinite alternate;
  animation-play-state: paused;
}
.scene-fx-beam--second { width: 8%; height: 60%; animation-duration: 18s; animation-delay: -7s; }
.scene-fx-mist {
  width: 42%;
  height: 12%;
  border-radius: 50%;
  background: radial-gradient(ellipse, rgba(242, 251, 240, .44), rgba(239, 249, 240, .18) 38%, transparent 73%);
  opacity: 0;
  animation: scene-mist 17s ease-in-out infinite alternate;
  animation-play-state: paused;
}
.scene-fx-mist--second { width: 32%; height: 8%; animation-duration: 23s; animation-delay: -12s; }
.scene-fx-glint {
  width: clamp(11px, 1.6%, 28px);
  height: 4px;
  border-radius: 50%;
  background: radial-gradient(ellipse, rgba(255, 253, 219, .96), rgba(253, 239, 170, .51) 32%, transparent 74%);
  opacity: 0;
  animation: scene-waterlight var(--fx-duration, 4.8s) ease-in-out var(--fx-delay, 0s) infinite;
  animation-play-state: paused;
}
.scene-fx-seed {
  width: var(--fx-size, 3px);
  height: var(--fx-size, 3px);
  border-radius: 50%;
  background: rgba(255, 248, 212, .95);
  box-shadow: 0 0 7px 1px rgba(255, 226, 156, .21);
  opacity: 0;
  animation: scene-seed var(--fx-duration, 13s) linear var(--fx-delay, 0s) infinite;
  animation-play-state: paused;
}
.scene-fx[data-fx-running="true"] .scene-fx-beam,
.scene-fx[data-fx-running="true"] .scene-fx-mist,
.scene-fx[data-fx-running="true"] .scene-fx-glint,
.scene-fx[data-fx-running="true"] .scene-fx-seed { animation-play-state: running; }
html[data-theme="dark"] .scene-fx { --fx-strength: .56; }
html[data-theme="dark"] .scene-fx--ambient { --fx-strength: .32; }
html[data-scene-motion-ready="true"] .hero-atmosphere { visibility: hidden; }
html[data-scene-motion-ready="true"] .ambient-image,
html[data-scene-motion-ready="true"] .scene-fx--ambient .scene-fx-art {
  animation: scene-ambient-drift 30s ease-in-out infinite alternate;
  animation-play-state: paused;
}
html[data-motion="running"][data-scene-motion-ready="true"] .ambient-image.is-active,
html[data-motion="running"][data-scene-motion-ready="true"] .scene-fx--ambient[data-fx-running="true"] .scene-fx-art {
  animation-play-state: running;
}
html[data-motion="paused"] .scene-fx-beam,
html[data-motion="paused"] .scene-fx-mist,
html[data-motion="paused"] .scene-fx-glint,
html[data-motion="paused"] .scene-fx-seed,
html[data-motion="paused"] .pollen,
html[data-motion="paused"] .scroll-cue-line::after { animation-play-state: paused; }
/* A pause must never strand an entrance at its transparent first frame. This
   only finishes existing entrances; continuous decoration is paused above. */
html[data-motion="paused"] .hero-image,
html[data-motion="paused"] .hero-info,
html[data-motion="paused"] .hero-stats,
html[data-motion="paused"] .hero .release-pill,
html[data-motion="paused"] .hero-eyebrow,
html[data-motion="paused"] .hero h1,
html[data-motion="paused"] .hero-description,
html[data-motion="paused"] .hero-actions,
html[data-motion="paused"] .hero-caption,
html[data-motion="paused"] .scene-switcher { animation: none; opacity: 1; }
@keyframes scene-sunray {
  0% { opacity: calc(.38 * var(--fx-strength)); transform: rotate(-24deg) scaleX(.84); }
  100% { opacity: calc(.84 * var(--fx-strength)); transform: rotate(-17deg) scaleX(1.16); }
}
@keyframes scene-mist {
  0% { opacity: calc(.25 * var(--fx-strength)); transform: translate(-5%, 0) scaleX(.91); }
  100% { opacity: calc(.64 * var(--fx-strength)); transform: translate(9%, -5%) scaleX(1.08); }
}
@keyframes scene-waterlight {
  0%, 100% { opacity: 0; transform: translate(-2px, 0) scaleX(.4); }
  38% { opacity: calc(.83 * var(--fx-strength)); transform: translate(1px, 1px) scaleX(1.12); }
  68% { opacity: calc(.24 * var(--fx-strength)); transform: translate(3px, 0) scaleX(.72); }
}
@keyframes scene-seed {
  0% { opacity: 0; transform: translate3d(-9px, 22px, 0); }
  18%, 68% { opacity: calc(.72 * var(--fx-strength)); }
  100% { opacity: 0; transform: translate3d(30px, -38px, 0); }
}
@keyframes scene-ambient-drift {
  from { transform: scale(1.012) translate3d(-.15%, 0, 0); }
  to { transform: scale(1.04) translate3d(.2%, -.18%, 0); }
}
@media (max-width: 640px) {
  .scene-fx-seed { box-shadow: 0 0 6px 1px rgba(255, 226, 156, .23); }
  .scene-switcher > button { min-height: 40px; }
  .scene-switcher > button.scene-motion { min-width: 40px; min-height: 40px; }
}
@media (prefers-reduced-motion: reduce) {
  .scene-fx { display: none; }
  html[data-scene-motion-ready="true"] .ambient-image { animation: none; }
  .hero-image,.hero-info,.hero-stats,.hero .release-pill,.hero-eyebrow,
  .hero h1,.hero-description,.hero-actions,.hero-caption,.scene-switcher { animation: none; opacity: 1; }
  .hero-scene-layer,.ambient-image { transition: none; }
}
