.reframe {
  position: relative;
  /* Tall scroll runway for sticky + word animation */
  height: 250vh;
  overflow: visible;
  padding-top: var(--space-4xl);
}

/* 3D canvas — clipped to the section only */
.reframe__3d {
  position: sticky;
  top: 0;
  left: 0;
  width: 100%;
  height: 100vh;
  z-index: 0;
  pointer-events: none;
  opacity: 0;
  transition: opacity 0.8s ease;
  margin-bottom: -100vh;
}

.reframe__3d.is-visible {
  opacity: 0.55;
}

/* Ambient color wash */
.reframe::before {
  content: '';
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 800px;
  height: 600px;
  border-radius: 50%;
  background: radial-gradient(
    ellipse,
    rgba(133, 22, 255, 0.04) 0%,
    rgba(123, 228, 255, 0.02) 40%,
    transparent 70%
  );
  filter: blur(80px);
  pointer-events: none;
}

/* Decorative background text */
.reframe__bg-text {
  font-size: clamp(6rem, 14vw, 14rem);
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
}

.reframe__inner {
  max-width: var(--max-width);
  margin: 0 auto;
  position: sticky;
  top: 25%;
  z-index: 1;
  padding: 0 var(--space-lg);
}

/* ── Editorial float layout ── */
.reframe__editorial {
  position: relative;
}

/* Title block floats left — paragraph wraps around it */
.reframe__title-block {
  float: left;
  width: 55%;
  margin-right: var(--space-xl);
  margin-bottom: var(--space-md);
  transform: rotate(-1.5deg);
  transform-origin: top left;
}

.reframe__title-block .kicker {
  margin-bottom: var(--space-sm);
}

/* Massive headline — unified gradient across the whole sentence */
.reframe__headline {
  font-size: clamp(3rem, 6.5vw, 5.5rem);
  line-height: 0.92;
  letter-spacing: -0.04em;
  margin-bottom: 0;
  background: linear-gradient(135deg, var(--text-primary) 30%, var(--accent-purple) 60%, var(--accent-cyan) 100%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}

/* Body text wraps around the floated title */
.reframe__body {
  font-size: 1.125rem;
  color: var(--text-secondary);
  line-height: 1.85;
}

/* Clear the float after */
.reframe__editorial::after {
  content: '';
  display: table;
  clear: both;
}

/* ── Scroll text word animation (body only) ── */

.scroll-word {
  display: inline-block;
  opacity: 0.1;
  filter: blur(2px);
  transition: opacity 0.7s cubic-bezier(0.22, 1, 0.36, 1),
              filter 0.7s cubic-bezier(0.22, 1, 0.36, 1);
  margin-right: 0.22em;
}

.scroll-word.is-lit {
  opacity: 1;
  filter: blur(0);
  color: var(--text-secondary);
}

.scroll-word:last-child {
  margin-right: 0;
}
