
/* =====================================================================
   PERF · scrolling the hero was janky (median 50 ms/frame at 4x CPU).
   Everything that forced a full-screen recomposite on every frame goes.
   ===================================================================== */
/* daylight: no blend mode over the whole page, just a quiet tint layer */
.daylight { mix-blend-mode: normal; opacity: calc(var(--glow, 0.5) * 0.35); will-change: opacity; contain: strict; }
/* the drifting sun: plain transparency, its own layer */
.hero__sun { mix-blend-mode: normal; opacity: 0.35; will-change: transform; contain: strict; }
/* the bottom panel: opaque instead of blurring what scrolls under it */
.stick, .week { backdrop-filter: none !important; -webkit-backdrop-filter: none !important; }
.stick { background: color-mix(in srgb, var(--white) 98%, transparent); }
/* Julia: no filter on a large image that moves */
.hero__julia img { filter: none !important; }
.hero__julia, .hero__bg, .hero__copy, .hcard { will-change: transform; }
.hero__bg img { will-change: transform; }
/* the hero only repaints itself */
.hero__stage { contain: paint; }

/* program: the stage is as tall as its content (no empty screen when it lets go) */
@media (prefers-reduced-motion: no-preference) {
  .prog__stage { height: auto; min-height: 0; top: var(--prog-top, 8svh); padding-top: 0; }
  .prog .lessons { height: var(--lessons-h, auto); }
}

@media (max-width: 860px) { .prog + .after, .after { margin-top: 32px; } }
