/* === A-side Prism: abstract logo band (beam + prism + fan) === */

/* Full-bleed background layer behind A-side content. The band drifts
   down on scroll, pins dead-center (src/js/scroll.js), and steps back
   to a ghost once the reader moves past the hero. */
.prism-bg {
  position: absolute;
  inset: 0;
  z-index: 0;
  overflow: hidden;
  pointer-events: none;
  opacity: 1;
  transition: opacity var(--dur-xslow) var(--ease-out);
}

/* Ghost state: the band yields to the content flowing over it.
   Blur lives on the SVG, NOT the wrapper — a filter on the wrapper would
   make it the containing block of the pinned (position: fixed) SVG and
   break pinning. */
.prism-bg.is-dim {
  opacity: 0.12;
}

.prism-bg.is-dim svg {
  filter: blur(2px);
}

.prism-bg svg {
  display: block;
  width: 100vw;
  height: auto;
  will-change: transform;
  transition: filter var(--dur-xslow) var(--ease-out);
}

/* Pinned: once settled, the compositor holds the band at the viewport
   center — the future iris origin (D-035). JS leaves the scroll path
   entirely, so the band cannot tremble. */
.prism-bg.is-pinned svg {
  position: fixed;
  top: var(--settle-top);
  left: 0;
  width: 100vw;
}

/* Raised: while the iris runs, the A-side logo floats above the content */
.prism-bg.is-raised {
  z-index: 5;
}

/* === B-side prism logo layer (TDSOTM original-cover version) ===
   Hidden until the forward iris reveals it through the expanding circle;
   afterwards it settles as the dark side's watermark. */
.prism-bg-b {
  position: fixed;
  top: 0;
  left: 0;
  width: 100vw;
  z-index: 11;
  pointer-events: none;
  opacity: 0;
  clip-path: circle(0px at 50% 50%);
  will-change: clip-path;
  transition: opacity var(--dur-slow) var(--ease-out),
              filter var(--dur-slow) var(--ease-out);
}

.prism-bg-b svg {
  display: block;
  width: 100vw;
  height: auto;
}

/* Watermark state: the logo dissolves into the listening room's air */
.prism-bg-b.is-watermark {
  z-index: 0;
  opacity: 0.2;
  filter: blur(2px);
  clip-path: none;
  will-change: auto;
}
