/* Homepage cinematic hero and scroll-driven title transition. */
.hero-cinematic .hero-scroll.is-enhanced { height: 220vh; }
.hero-cinematic #hero { background: #000; border-color: rgba(122,149,184,.14); isolation: isolate; }
.hero-cinematic .hero-topline, .hero-cinematic .hero-bottomline { position: relative; z-index: 2; }
.hero-cinematic .hero-layout { display: block; position: static; }
.hero-cinematic #main-text { position: relative; z-index: 2; width: 43%; pointer-events: none; }
.hero-cinematic #main-text a { pointer-events: auto; }
.hero-identity { width: max-content; max-width: 100%; text-align: center; transform: translate(var(--title-x,0px),var(--title-y,0px)); will-change: transform; }
.hero-cinematic .hero-sub, .hero-cinematic .hero-ctas { opacity: var(--support-opacity,1); }
.hero-cinematic .is-copy-hidden .hero-sub, .hero-cinematic .is-copy-hidden .hero-ctas { visibility: hidden; }
/* Keep the video above the sticky hero background; negative layers can disappear in WebKit. */
.film-visual { position: absolute; inset: 0 -4% 0 22%; z-index: 0; overflow: hidden; pointer-events: none; }
.film-visual::after { content: ''; position: absolute; inset: 0; background: linear-gradient(90deg,#000 0%,rgba(0,0,0,.75) 10%,transparent 30%); pointer-events: none; }
#hero-film { width: 100%; height: 100%; object-fit: cover; display: block; }
.film-toggle { background: transparent; border: 0; color: var(--text-muted); cursor: pointer; font: inherit; padding: 8px 0 8px 20px; min-height: 44px; display: inline-flex; align-items: center; gap: 22px; }
.film-toggle:hover { color: var(--text-primary); }
.film-toggle:disabled { cursor: default; opacity: .6; }
.hero-cinematic .hero-bottomline { padding-top: 10px; }
@media (min-width: 801px) {
  .hero-cinematic .hero-scroll { margin-inline: clamp(20px, 1.4vw, 48px); }
  .hero-cinematic #hero { min-height: calc(100svh - 112px); display: flex; flex-direction: column; }
  .hero-cinematic .hero-layout { flex: 1; display: flex; align-items: center; }
}
@media (min-width: 1440px) {
  .hero-cinematic #hero { padding-inline: var(--gutter); }
  .hero-cinematic .hero-title { font-size: clamp(134px, 9.3vw, 280px); }
  .hero-cinematic .hero-title-school { font-size: clamp(26px, 1.8vw, 42px); }
  .hero-cinematic .hero-sub { font-size: clamp(14px, .85vw, 19px); max-width: 42ch; }
  .hero-cinematic .hero-ctas .btn { font-size: clamp(12px, .75vw, 16px); min-height: 52px; }
  .hero-cinematic .hero-topline, .hero-cinematic .hero-bottomline { font-size: clamp(10px, .65vw, 14px); }
}
@media (max-width: 800px) {
  .film-toggle, .hero-cinematic .hero-progress { display: none; }
  .hero-identity { margin-inline: auto; transform: none; will-change: auto; }
  .hero-cinematic .hero-scroll.is-enhanced { height: auto; }
  .hero-cinematic #main-text { width: 100%; pointer-events: auto; }
  .hero-cinematic .hero-layout { padding-bottom: 28px; }
  .film-visual { display: none; }
  .hero-cinematic .hero-ctas { flex-direction: row; }
  .hero-cinematic .hero-title > span { display: inline; }
  .hero-cinematic .hero-title > span::before { content: ' '; }
  .hero-cinematic .hero-title { font-size: clamp(49px,12vw,86px); white-space: nowrap; }
  .hero-cinematic .hero-sub { max-width: 450px; }
}
@media (prefers-reduced-motion: reduce) {
  .hero-cinematic .hero-scroll.is-enhanced { height: auto; }
  .hero-identity { transform: none; will-change: auto; }
}
