﻿/* ==========================================================================
   AKIS inner pages + mega navigation
   Extends homepage design language without cloning homepage layouts.
   ========================================================================== */

body.is-inner {
  background: var(--paper);
  color: var(--text);
}

.site-header.is-inner,
.site-header.is-solid {
  background-color: var(--paper);
  background-image: linear-gradient(
    180deg,
    rgba(var(--paper-rgb), 0.18) 0%,
    rgba(var(--subtle-rgb), 0.03) 100%
  );
  backdrop-filter: blur(18px) saturate(1.18);
  -webkit-backdrop-filter: blur(18px) saturate(1.18);
  border-bottom: 1px solid rgba(var(--ink-rgb), 0.08);
}

.site-header.is-inner .site-header.is-solid {
  background-color: rgba(255, 255, 255, 0.38);
  border-color: rgba(var(--ink-rgb), 0.08);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.55);
  backdrop-filter: blur(10px) saturate(1.1);
  -webkit-backdrop-filter: blur(10px) saturate(1.1);
}

/* --------------------------------------------------------------------------
   Mega navigation â€” editorial panel
   -------------------------------------------------------------------------- */
.nav-item {
  position: relative;
  --mega-x: 0%;
  --mega-left: 0;
  --mega-right: auto;
}

.nav-item:nth-last-child(-n+2) {
  --mega-left: auto;
  --mega-right: 0;
}

html[dir="rtl"] .nav-item {
  --mega-left: auto;
  --mega-right: 0;
}

html[dir="rtl"] .nav-item:nth-last-child(-n+2) {
  --mega-left: 0;
  --mega-right: auto;
}

html[dir="rtl"] .nav-mega-link::before,
html[dir="rtl"] .drawer-link::before {
  inset: 0 0 0 auto;
}

.header-nav .nav-link {
  display: inline-flex;
  align-items: center;
  gap: 0.28rem;
  padding: 0.5rem 0.85rem;
  cursor: pointer;
}

.header-nav a.nav-link {
  cursor: pointer;
}

.nav-caret {
  width: 0.38rem;
  height: 0.38rem;
  margin-top: -1px;
  border-right: 1.4px solid currentColor;
  border-bottom: 1.4px solid currentColor;
  transform: rotate(45deg);
  opacity: 0.55;
  transition: transform 0.28s var(--ease-editorial), opacity 0.28s var(--ease-editorial);
}

.nav-item:hover .nav-caret,
.nav-item:focus-within .nav-caret,
.nav-item.is-open .nav-caret,
.nav-link.is-current .nav-caret {
  opacity: 1;
  transform: rotate(225deg);
}

.nav-link.is-current {
  color: var(--primary);
}

.nav-mega {
  position: absolute;
  top: calc(100% + 0.45rem);
  left: var(--mega-left);
  right: var(--mega-right);
  transform: translateX(var(--mega-x)) translateY(10px);
  width: min(28.5rem, calc(100vw - 2rem));
  max-width: 28.5rem;
  padding: 0;
  border-radius: calc(var(--radius) + 0.2rem);
  background: var(--paper);
  border: 1px solid rgba(var(--ink-rgb), 0.1);
  box-shadow:
    0 28px 64px -24px rgba(0, 0, 0, 0.62),
    inset 0 1px 0 rgba(255, 255, 255, 0.08);
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition:
    opacity 0.32s var(--ease-editorial),
    transform 0.32s var(--ease-editorial),
    visibility 0.32s;
  z-index: 70;
}

.nav-mega::before {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: 100%;
  height: 0.9rem;
}

.nav-item:hover .nav-mega,
.nav-item:focus-within .nav-mega,
.nav-item.is-open .nav-mega {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
  transform: translateX(var(--mega-x)) translateY(0);
}

@media (hover: none) {
  .nav-item:hover .nav-mega {
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transform: translateX(var(--mega-x)) translateY(10px);
  }

  .nav-item.is-open .nav-mega,
  .nav-item:focus-within .nav-mega {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    transform: translateX(var(--mega-x)) translateY(0);
  }
}

.nav-mega-head {
  display: flex;
  align-items: center;
  padding: 0.95rem 1.15rem 0.85rem;
  border-bottom: 1px solid rgba(255, 255, 255, 0.1);
}

.nav-mega-title {
  display: inline-flex;
  align-items: center;
  gap: 0.7rem;
  margin: 0;
  font-size: 0.72rem;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--gold-whisper);
}

.nav-mega-title-rule {
  display: block;
  width: 1.65rem;
  height: 1.5px;
  background: linear-gradient(90deg, var(--gold), transparent);
}

.nav-mega-grid {
  display: grid;
  gap: 0;
  padding: 0.7rem 0.7rem 0.8rem;
}

.nav-mega-list {
  display: grid;
  gap: 0.15rem;
  margin-top: 0.35rem;
  padding-top: 0.35rem;
  border-top: 1px solid rgba(var(--ink-rgb), 0.08);
}

.nav-mega-link,
.drawer-link {
  position: relative;
  display: grid;
  grid-template-columns: 1fr auto;
  align-items: center;
  gap: 0.85rem;
  min-width: 0;
  padding: 0.7rem 0.8rem;
  border-radius: 0.8rem;
  color: var(--ink);
  text-decoration: none;
  isolation: isolate;
  cursor: pointer;
  pointer-events: auto;
  transition: background-color 0.28s var(--ease-editorial), color 0.28s var(--ease-editorial);
}

.nav-mega-link::before,
.drawer-link::before {
  content: "";
  position: absolute;
  inset: 0 auto 0 0;
  width: 2px;
  border-radius: 999px;
  background: var(--accent);
  opacity: 0;
}

.nav-mega-link--feature,
.drawer-link--feature {
  padding: 0.85rem 0.9rem;
  background: rgba(var(--primary-rgb), 0.04);
  border: 1px solid rgba(var(--primary-rgb), 0.12);
}

.nav-mega-copy {
  display: grid;
  gap: 0.18rem;
  min-width: 0;
}

.nav-mega-label {
  font-size: 0.95rem;
  font-weight: 500;
  letter-spacing: -0.018em;
  line-height: 1.2;
}

.nav-mega-hint {
  font-size: 0.74rem;
  line-height: 1.4;
  color: var(--text);
  overflow-wrap: anywhere;
}

.nav-mega-arrow {
  font-size: 0.95rem;
  color: rgba(255, 255, 255, 0.32);
}

.nav-toggle {
  display: inline-flex;
  flex-direction: column;
  justify-content: center;
  gap: 5px;
  width: 44px;
  height: 44px;
  min-width: 44px;
  padding: 0 11px;
  border-radius: 999px;
  border: 1px solid rgba(var(--primary-rgb), 0.22);
  background: rgba(var(--primary-rgb), 0.06);
  cursor: pointer;
  color: var(--ink);
  flex-shrink: 0;
  touch-action: manipulation;
  -webkit-tap-highlight-color: transparent;
}

.nav-toggle span {
  display: block;
  height: 1.5px;
  background: var(--primary);
  transition: transform 0.3s var(--ease-editorial), opacity 0.3s;
}

.nav-toggle[aria-expanded="true"] span:nth-child(1) {
  transform: translateY(6.5px) rotate(45deg);
}

.nav-toggle[aria-expanded="true"] span:nth-child(2) {
  opacity: 0;
}

.nav-toggle[aria-expanded="true"] span:nth-child(3) {
  transform: translateY(-6.5px) rotate(-45deg);
}

.nav-toggle:focus-visible {
  outline: 2px solid var(--primary);
  outline-offset: 3px;
}

@media (min-width: 1100px) {
  .nav-toggle {
    display: none;
  }
}

.mobile-drawer {
  position: fixed;
  top: var(--header-offset);
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 49;
  display: none;
  flex-direction: column;
  width: 100%;
  max-width: 100vw;
  background: var(--primary);
  border-top: 1px solid rgba(255, 255, 255, 0.16);
  overflow-x: hidden;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
  overscroll-behavior: contain;
  scrollbar-gutter: stable;
  scrollbar-width: thin;
 scrollbar-color: rgba(232, 213, 163, 0.85) rgba(255, 255, 255, 0.12);
}

.mobile-drawer::-webkit-scrollbar {
  width: 8px;
}

.mobile-drawer::-webkit-scrollbar-track {
  background: rgba(255, 255, 255, 0.1);
  border-radius: 999px;
  margin: 0.4rem 0;
}

.mobile-drawer::-webkit-scrollbar-thumb {
  background: linear-gradient(180deg, var(--gold-whisper), var(--gold));
  border-radius: 999px;
  border: 2px solid rgba(35, 31, 32, 0.35);
}

.mobile-drawer::-webkit-scrollbar-thumb:hover {
  background: var(--gold-whisper);
}

.mobile-drawer[hidden] {
  display: none !important;
}

.mobile-drawer.is-open:not([hidden]) {
  display: flex;
}

.mobile-drawer-panel {
  padding: 1rem 1rem 1rem 1.15rem;
  padding-bottom: max(1.75rem, env(safe-area-inset-bottom));
  display: grid;
  gap: 0.15rem;
  min-width: 0;
  width: 100%;
  flex: 0 0 auto;
}

.mobile-drawer-kicker {
  display: inline-flex;
  align-items: center;
  gap: 0.7rem;
  margin: 0 0 0.85rem;
  font-size: 0.66rem;
  font-weight: 700;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--gold-whisper);
}

.mobile-drawer-kicker::before {
  content: "";
  width: 1.65rem;
  height: 1.5px;
  background: linear-gradient(90deg, var(--paper), transparent);
}

.drawer-group {
  border-bottom: 1px solid rgba(var(--ink-rgb), 0.08);
}

.drawer-trigger {
  appearance: none;
  width: 100%;
  margin: 0;
  border: 0;
  background: transparent;
  font: inherit;
  text-align: left;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  min-height: 48px;
  min-width: 0;
  padding: 0.95rem 0.15rem;
  color: var(--ink);
  font-size: 1.02rem;
  font-weight: 500;
  letter-spacing: -0.015em;
  touch-action: manipulation;
  -webkit-tap-highlight-color: transparent;
}

.drawer-trigger>span:first-child {
  min-width: 0;
}

.drawer-trigger:focus-visible {
  outline: 2px solid var(--gold-whisper);
  outline-offset: 3px;
  border-radius: 0.4rem;
}

.drawer-caret {
  width: 0.42rem;
  height: 0.42rem;
  flex-shrink: 0;
  border-right: 1.5px solid currentColor;
  border-bottom: 1.5px solid currentColor;
  transform: rotate(45deg);
  opacity: 0.55;
  transition: transform 0.35s var(--ease-editorial), opacity 0.35s var(--ease-editorial);
}

.drawer-group.is-active .drawer-trigger,
.drawer-trigger.is-current,
.drawer-group.is-open .drawer-trigger {
  color: var(--primary);
}

.drawer-group.is-open .drawer-caret {
  transform: rotate(225deg);
  opacity: 1;
}

.drawer-fold {
  display: grid;
  grid-template-rows: 0fr;
  transition: grid-template-rows 0.4s var(--ease-editorial);
}

.drawer-group.is-open .drawer-fold {
  grid-template-rows: 1fr;
}

.drawer-fold-inner {
  overflow: hidden;
  min-height: 0;
}

.drawer-links {
  display: grid;
  gap: 0.2rem;
  padding: 0 0 1rem;
}

a.nav-mega-link:hover,
a.nav-mega-link:focus-visible,
a.drawer-link:hover,
a.drawer-link:focus-visible {
  background: rgba(var(--primary-rgb), 0.06);
  color: var(--primary);
}

a.nav-mega-link:hover .nav-mega-arrow,
a.nav-mega-link:focus-visible .nav-mega-arrow,
a.drawer-link:hover .nav-mega-arrow,
a.drawer-link:focus-visible .nav-mega-arrow {
  color: var(--gold-whisper);
}

a.nav-mega-link:hover::before,
a.nav-mega-link:focus-visible::before,
a.nav-mega-link.is-current::before,
a.drawer-link:hover::before,
a.drawer-link:focus-visible::before,
a.drawer-link.is-current::before {
  opacity: 1;
}

a.nav-mega-link:focus-visible,
a.drawer-link:focus-visible {
  outline: 2px solid var(--gold-whisper);
  outline-offset: 2px;
}

a.nav-mega-link.is-current,
a.drawer-link.is-current {
  background: rgba(var(--primary-rgb), 0.08);
  color: var(--primary);
}

a.nav-mega-link.is-current .nav-mega-hint,
a.drawer-link.is-current .nav-mega-hint {
  color: rgba(var(--primary-rgb), 0.72);
}

.drawer-link,
.nav-mega-link {
  min-width: 0;
}

.drawer-link .nav-mega-copy,
.nav-mega-link .nav-mega-copy {
  min-width: 0;
}

.drawer-link .nav-mega-hint,
.nav-mega-link .nav-mega-hint {
  overflow-wrap: anywhere;
}

.mobile-drawer-apply-cta {
  margin-top: 1.15rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.4rem;
  width: 100%;
  min-height: 48px;
  padding: 0.85rem 1rem;
  border-radius: 999px;
  background: var(--paper);
  color: var(--primary);
  font-weight: 600;
}

.mobile-drawer .mobile-drawer-kicker {
  color: var(--paper);
}

.mobile-drawer .drawer-group {
  border-bottom-color: rgba(255, 255, 255, 0.16);
}

.mobile-drawer .drawer-trigger,
.mobile-drawer .drawer-link {
  color: var(--paper);
}

.mobile-drawer .drawer-group.is-active .drawer-trigger,
.mobile-drawer .drawer-trigger.is-current,
.mobile-drawer .drawer-group.is-open .drawer-trigger {
  color: var(--gold-secondary);
}

.mobile-drawer .nav-mega-hint {
  color: rgba(255, 255, 255, 0.76);
}

.mobile-drawer .drawer-link--feature {
  background: rgba(255, 255, 255, 0.08);
  border-color: rgba(255, 255, 255, 0.18);
}

.mobile-drawer a.drawer-link:hover,
.mobile-drawer a.drawer-link:focus-visible,
.mobile-drawer a.drawer-link.is-current {
  background: rgba(255, 255, 255, 0.1);
  color: var(--paper);
}

.mobile-drawer a.drawer-link:hover .nav-mega-arrow,
.mobile-drawer a.drawer-link:focus-visible .nav-mega-arrow,
.mobile-drawer a.drawer-link.is-current .nav-mega-arrow {
  color: var(--gold-secondary);
}

.mobile-drawer a.drawer-link.is-current .nav-mega-hint {
  color: rgba(255, 255, 255, 0.82);
}

.mobile-drawer .drawer-trigger:focus-visible,
.mobile-drawer a.drawer-link:focus-visible {
  outline-color: var(--gold-secondary);
}


@media (min-width: 1100px) {
  .mobile-drawer {
    display: none !important;
  }
}

@media (max-width: 1099.98px) {
  .nav-mega {
    display: none !important;
  }
}

@media (prefers-reduced-motion: reduce) {

  .nav-mega,
  .nav-caret,
  .nav-mega-arrow,
  .drawer-caret,
  .drawer-fold {
    transition: none !important;
  }

  .nav-item:hover .nav-mega,
  .nav-item:focus-within .nav-mega,
  .nav-item.is-open .nav-mega {
    transform: translateX(var(--mega-x)) translateY(0);
  }

  .nav-item:hover .nav-caret,
  .nav-item:focus-within .nav-caret,
  .nav-link.is-current .nav-caret {
    transform: rotate(225deg);
  }
}

/* --------------------------------------------------------------------------
   Shared inner-page scaffolding
   -------------------------------------------------------------------------- */
.page-hero {
  position: relative;
  isolation: isolate;
  min-height: 100dvh;
  display: flex;
  align-items: center;
  color: var(--paper);
  overflow: hidden;
}

.page-hero--split {
  min-height: clamp(32rem, 78vh, 46rem);
}

.page-hero--type .page-title {
  color: var(--ink);
}

.page-hero--type .page-lede {
  color: var(--text);
}

.page-hero--type .page-crumb,
.page-hero--type .page-eyebrow {
  color: var(--primary);
}

.page-hero:not(.page-hero--cream):not(.page-hero--type) .page-crumb,
.page-hero:not(.page-hero--cream):not(.page-hero--type) .page-eyebrow {
  color: var(--paper);
}

.page-hero--type {
  min-height: clamp(24rem, 58vh, 34rem);
  align-items: center;
  color: var(--text);
  background:
    radial-gradient(48% 46% at 92% 8%, rgba(var(--primary-rgb), 0.06), transparent 55%),
    radial-gradient(32% 36% at 0% 100%, rgba(var(--accent-rgb), 0.04), transparent 58%),
    var(--paper);
}

.page-hero--cream {
  color: var(--text);
  background:
    radial-gradient(55% 40% at 0% 0%, rgba(var(--gold-rgb), 0.14), transparent 55%),
    var(--primary-light);
}

.page-hero-media {
  position: absolute;
  inset: 0;
  z-index: 0;
}

.page-hero-media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 0%;
  transform: scale(1.06);
}

.page-hero-veil {
  position: absolute;
  inset: 0;
  background:
    linear-gradient(180deg, rgba(var(--primary-rgb), 0.18) 0%, rgba(var(--primary-rgb), 0.62) 100%),
    linear-gradient(90deg, rgba(var(--primary-rgb), 0.34) 0%, transparent 58%),
    radial-gradient(28% 34% at 100% 0%, rgba(var(--accent-rgb), 0.16), transparent 68%);
}

.page-hero-stage {
  position: relative;
  z-index: 2;
  width: 100%;
  max-width: 1400px;
  margin: 0 auto;
  padding: 8.5rem 1.5rem 3.5rem;
}

@media (min-width: 1024px) {
  .page-hero-stage {
    padding: 9.5rem 2.5rem 4.25rem;
  }
}

.page-crumb {
  margin: 0 0 1rem;
  font-size: 0.72rem;
  font-weight: 600;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--gold-whisper);
}

.page-hero--cream .page-crumb {
  color: var(--primary);
}

.page-eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 0.85rem;
  margin: 0 0 1rem;
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--gold-whisper);
}

.page-hero--cream .page-eyebrow {
  color: var(--primary);
}

.page-eyebrow-rule {
  display: block;
  width: 2.25rem;
  height: 1.5px;
  background: linear-gradient(90deg, var(--gold), transparent);
}

.page-title {
  margin: 0;
  max-width: 16ch;
  font-size: clamp(2.4rem, 6vw, 4.6rem);
  font-weight: 500;
  letter-spacing: -0.04em;
  line-height: 1.02;
}

.page-hero--cream .page-title {
  color: var(--paper);
}

.page-lede {
  margin: 1.15rem 0 0;
  max-width: 42ch;
  font-size: clamp(1rem, 1.5vw, 1.02rem);
  line-height: 1.65;
  color: rgba(255, 255, 255, 0.78);
}

.page-lede--wide {
  max-width: 68ch;
}

.page-hero--cream .page-lede {
  color: rgba(255, 255, 255, 0.75);
}

.page-hero-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
  margin-top: 1.75rem;
}

.page-subnav {
  position: sticky;
  top: var(--header-offset);
  z-index: 30;
  display: flex;
  gap: 0.35rem;
  overflow-x: auto;
  padding: 0.7rem 1.5rem;
  background: rgba(255, 255, 255, 0.92);
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
  border-bottom: 1px solid rgba(var(--ink-rgb), 0.08);
  -webkit-overflow-scrolling: touch;
}

@media (min-width: 1024px) {
  .page-subnav {
    padding: 0.7rem 2.5rem;
    justify-content: center;
  }
}

.page-subnav a {
  flex: none;
  padding: 0.45rem 0.85rem;
  border-radius: 999px;
  font-size: 0.78rem;
  font-weight: 600;
  letter-spacing: 0.04em;
  color: rgba(var(--ink-rgb), 0.62);
  white-space: nowrap;
}

.page-subnav a.is-current,
.page-subnav a:hover {
  color: var(--text);
  background: rgba(var(--primary-rgb), 0.14);
}

.akis-enrolment {
  width: min(100%, 1400px);
  margin: 0 auto;
  padding: 2rem var(--mx, 1.5rem) 0;
}
#gems-enrolment-frame {
  width: 100%;
  min-height: 500px;
}
#gems-enrolment-frame iframe {
  display: block;
  width: 100%;
  min-height: 500px;
  border: 0;
}

.akis-calendly {
  width: min(100%, 1400px);
  margin: 0 auto;
  padding: 2rem var(--mx, 1.5rem) 0;
}
.akis-calendly .calendly-embed-frame {
  display: block;
  width: 100%;
  min-height: 700px;
  height: 700px;
  border: 0;
  background: #fff;
}
.akis-calendly-editor {
  box-sizing: border-box;
  min-height: 220px;
  padding: 1.5rem;
  border: 1px dashed rgba(var(--ink-rgb, 29, 35, 39), 0.35);
  background: #fff;
}
.akis-calendly-editor strong {
  display: block;
  font-size: 1rem;
}
.akis-calendly-editor p {
  margin: 0.6rem 0 0;
  word-break: break-all;
}
.akis-calendly-editor-hint {
  opacity: 0.7;
  word-break: normal;
}

.inner-stage {
  position: relative;
  max-width: 1400px;
  margin: 0 auto;
  padding: 4.5rem 1.5rem 5rem;
}

@media (min-width: 1024px) {
  .inner-stage {
    padding: 6rem 2.5rem 7rem;
  }
}

.inner-section {
  position: relative;
  overflow: hidden;
}

.inner-section--paper {
  background: var(--paper);
  color: var(--text);
}

.inner-section--cream {
  background:
    radial-gradient(55% 40% at 0% 0%, rgba(var(--gold-rgb), 0.1), transparent 55%),
    var(--primary-light);
  color: var(--text);
}

.inner-section--ink {
  background:
    radial-gradient(48% 42% at 94% 6%, rgba(var(--accent-rgb), 0.04), transparent 55%),
    radial-gradient(36% 34% at 0% 100%, rgba(var(--primary-rgb), 0.04), transparent 58%),
    var(--paper);
  color: var(--text);
}

.section-kicker {
  display: inline-flex;
  align-items: center;
  gap: 0.85rem;
  margin: 0 0 1rem;
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--primary);
}

.inner-section--ink .section-kicker {
  color: var(--primary);
}

.section-heading {
  margin: 0 0 2.5rem;
  font-size: clamp(2rem, 4.2vw, 3.35rem);
  font-weight: 500;
  letter-spacing: -0.03em;
  color: var(--ink);
}

.section-copy {
  margin: 1.1rem 0 1.1rem;
  max-width: 100ch;
  font-size: clamp(1rem, 1.8vw, 1.1rem);
  line-height: 1.7;
  color: rgba(var(--ink-rgb), 0.82);
}

.inner-section--ink .section-heading {
  color: var(--ink);
}

.inner-section--ink .section-copy {
  color: var(--text);
}

.ghost-cta,
.solid-cta {
  display: inline-flex;
    align-items: center;
    gap: 0.55rem;
    padding: 0.85rem 1.45rem;
    border-radius: 9999px;
    text-decoration: none;
    font-size: 0.82rem;
    font-weight: 600;
    box-shadow: 0 16px 32px -18px rgba(var(--primary-rgb), 0.4);
    transition: transform 0.35s var(--ease-editorial), background-color 0.35s var(--ease-editorial), box-shadow 0.35s var(--ease-editorial);
}

.solid-cta {
  background: var(--accent);
  color: var(--paper);
  box-shadow: 0 16px 36px -18px rgba(var(--accent-rgb), 0.4);
}

.solid-cta:hover {
  background: var(--primary);
  color: var(--paper);
}

.ghost-cta {
  border: 1px solid rgba(var(--ink-rgb), 0.28);
  color: var(--ink);
}

.ghost-cta-dark {
  border: 1px solid rgba(var(--ink-rgb), 0.18);
  color: var(--ink);
}

.inner-section--ink .ghost-cta,
.inner-section--paper .ghost-cta,
.inner-section--cream .ghost-cta,
.welcome-section .ghost-cta,
.grounds-section .ghost-cta,
.marks-section .ghost-cta {
  border-color: rgba(var(--ink-rgb), 0.18);
  color: var(--ink);
}

.ghost-cta:hover {
  border: 1px solid #243d94;
  color: var(--ink);
}

.inner-section--ink .ghost-cta:hover,
.inner-section--paper .ghost-cta:hover,
.inner-section--cream .ghost-cta:hover,
.welcome-section .ghost-cta:hover,
.grounds-section .ghost-cta:hover,
.marks-section .ghost-cta:hover {
  border-color: var(--primary);
  color: var(--primary);
}

/* --------------------------------------------------------------------------
   Related strip
   -------------------------------------------------------------------------- */
.related-strip {
  display: grid;
  gap: 1rem;
}

@media (min-width: 800px) {
  .related-strip {
    grid-template-columns: repeat(3, 1fr);
  }
}

.related-card {
  display: grid;
  align-content: end;
  min-height: 16rem;
  padding: 1.4rem;
  border-radius: calc(var(--radius) + 0.1rem);
  overflow: hidden;
  position: relative;
  color: var(--paper);
  isolation: isolate;
}

.related-card img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  z-index: 0;
  transition: transform 0.8s var(--ease-editorial);
}

.related-card::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  background: linear-gradient(180deg, transparent 20%, rgba(var(--primary-rgb), 0.82) 100%);
}

.related-card:hover img {
  transform: scale(1.06);
}

.related-card span,
.related-card strong {
  position: relative;
  z-index: 2;
}

.related-card span {
  font-size: 0.68rem;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--gold-whisper);
}

.related-card strong {
  display: block;
  margin-top: 0.35rem;
  font-size: 1.25rem;
  font-weight: 500;
}

/* --------------------------------------------------------------------------
   About â€” Our Story chronicle
   -------------------------------------------------------------------------- */
.origin-section {
  --origin-motion: 0.7s var(--ease-editorial);
  position: relative;
  overflow: hidden;
  z-index: 4;
  color: var(--ink);
  background:
    radial-gradient(48% 42% at 92% 8%, rgba(var(--gold-rgb), 0.12), transparent 58%),
    radial-gradient(42% 38% at 0% 72%, rgba(var(--primary-rgb), 0.06), transparent 55%),
    var(--paper);
  padding: 4.75rem 0 5.25rem;
}

@media (min-width: 1024px) {
  .origin-section {
    padding: 6.5rem 0 7rem;
  }
}

.origin-stage {
  position: relative;
  z-index: 2;
  max-width: 1400px;
  margin: 0 auto;
  padding: 0 1.5rem;
}

@media (min-width: 1024px) {
  .origin-stage {
    padding: 0 2.5rem;
  }
}

.origin-header {
  max-width: 38rem;
}

.origin-path {
  position: relative;
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 0.35rem;
  margin: 2.4rem 0 2.75rem;
  padding: 0.35rem 0 0.15rem;
}

@media (min-width: 900px) {
  .origin-path {
    position: sticky;
    top: calc(var(--header-offset) + 3.15rem);
    z-index: 12;
    margin: 2.75rem 0 3.25rem;
    padding: 0.85rem 0 0.7rem;
    background: linear-gradient(180deg, rgba(255, 255, 255, 0.96) 55%, rgba(255, 255, 255, 0.78));
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
  }
}

.origin-path-line,
.origin-path-progress {
  position: absolute;
  left: 8%;
  right: 8%;
  top: 0.46rem;
  height: 1px;
  pointer-events: none;
}

@media (min-width: 900px) {

  .origin-path-line,
  .origin-path-progress {
    top: 1.31rem;
  }
}

.origin-path-line {
  background: rgba(var(--ink-rgb), 0.12);
}

.origin-path-progress {
  right: auto;
  width: 4.5%;
  background: linear-gradient(90deg, var(--gold), var(--gold-whisper));
  transform-origin: left center;
  transition: width var(--origin-motion);
}

.origin-section[data-origin-active="0"] .origin-path-progress {
  width: 4.5%;
}

.origin-section[data-origin-active="1"] .origin-path-progress {
  width: 29.5%;
}

.origin-section[data-origin-active="2"] .origin-path-progress {
  width: 54.5%;
}

.origin-section[data-origin-active="3"] .origin-path-progress {
  width: 79.5%;
}

.origin-node {
  position: relative;
  z-index: 1;
  display: grid;
  justify-items: center;
  gap: 0.45rem;
  margin: 0;
  padding: 0.15rem 0.2rem 0.2rem;
  border: 0;
  background: transparent;
  color: inherit;
  font-family: inherit;
  appearance: none;
  -webkit-appearance: none;
  cursor: pointer;
  min-height: 3.4rem;
  outline: none;
}

.origin-node-mark {
  width: 0.62rem;
  height: 0.62rem;
  border-radius: 50%;
  background: var(--paper);
  border: 1.5px solid rgba(var(--ink-rgb), 0.22);
  box-shadow: 0 0 0 5px var(--paper);
  transition:
    transform var(--origin-motion),
    background-color var(--origin-motion),
    border-color var(--origin-motion),
    box-shadow var(--origin-motion);
}

.origin-node-year {
  font-family: var(--font-display);
  font-size: clamp(0.82rem, 1.8vw, 1.05rem);
  font-weight: 500;
  letter-spacing: -0.02em;
  color: rgba(var(--ink-rgb), 0.42);
  transition: color var(--origin-motion);
}

.origin-node-name {
  font-size: 0.62rem;
  font-weight: 700;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: rgba(var(--ink-rgb), 0.38);
  transition: color var(--origin-motion);
}

.origin-node:hover .origin-node-mark,
.origin-node:focus-visible .origin-node-mark {
  border-color: var(--gold);
  transform: scale(1.12);
}

.origin-node:hover .origin-node-year,
.origin-node:focus-visible .origin-node-year,
.origin-node.is-active .origin-node-year {
  color: var(--ink);
}

.origin-node.is-active .origin-node-mark {
  background: var(--gold);
  border-color: var(--gold);
  transform: scale(1.18);
  box-shadow:
    0 0 0 5px var(--paper),
    0 0 0 7px rgba(var(--gold-rgb), 0.28);
}

.origin-node.is-active .origin-node-name {
  color: var(--gold);
}

.origin-node:focus-visible {
  border-radius: 0.6rem;
  box-shadow: 0 0 0 2px var(--paper), 0 0 0 4px rgba(var(--primary-rgb), 0.45);
}

.origin-journey {
  display: grid;
  gap: 3.25rem;
}

@media (min-width: 900px) {
  .origin-journey {
    gap: 5.5rem;
  }
}

.origin-beat {
  position: relative;
  display: grid;
  gap: 0;
  scroll-margin-top: 10.5rem;
}

@media (min-width: 900px) {
  .origin-beat {
    grid-template-columns: minmax(0, 1.18fr) minmax(16rem, 0.82fr);
    align-items: end;
  }

  .origin-beat--flip {
    grid-template-columns: minmax(16rem, 0.82fr) minmax(0, 1.18fr);
  }

  .origin-beat--flip .origin-media {
    order: 2;
  }

  .origin-beat--flip .origin-panel {
    order: 1;
  }
}

.origin-media {
  position: relative;
  margin: 0;
  overflow: hidden;
  border-radius: calc(var(--radius) + 0.15rem);
  background: var(--primary);
  isolation: isolate;
  height: 12.5rem;
  box-shadow: 0 36px 64px -40px rgba(var(--ink-rgb), 0.48);
}

@media (min-width: 700px) {
  .origin-media {
    height: 15.5rem;
  }
}

@media (min-width: 900px) {
  .origin-media {
    height: 18rem;
  }
}

.origin-media img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  transform: scale(1.04);
  filter: saturate(0.78) contrast(1.02);
  opacity: 0.86;
  transition:
    transform 1.15s var(--ease-editorial),
    filter var(--origin-motion),
    opacity var(--origin-motion);
}

.origin-beat.is-active .origin-media img,
.origin-media:hover img {
  transform: scale(1.1);
  filter: saturate(1) contrast(1.06);
  opacity: 1;
}

.origin-media-veil {
  position: absolute;
  inset: 0;
  pointer-events: none;
  background:
    linear-gradient(180deg, rgba(var(--primary-rgb), 0.28) 0%, transparent 34%, rgba(var(--primary-rgb), 0.5) 100%),
    linear-gradient(115deg, rgba(var(--primary-rgb), 0.18) 0%, transparent 46%);
}

.origin-year {
  position: absolute;
  left: 0.85rem;
  top: 0.45rem;
  bottom: auto;
  z-index: 2;
  margin: 0;
  font-family: var(--font-display);
  font-size: clamp(3.4rem, 9vw, 7.4rem);
  font-weight: 500;
  line-height: 0.82;
  letter-spacing: -0.05em;
  color: transparent;
  -webkit-text-stroke: 1.4px rgba(255, 255, 255, 0.42);
  pointer-events: none;
  transition: -webkit-text-stroke-color var(--origin-motion);
}

@media (min-width: 900px) {
  .origin-year {
    top: auto;
    bottom: 0.35rem;
  }
}

.origin-beat.is-active .origin-year {
  -webkit-text-stroke-color: rgba(36, 61, 148, 0.88);
}

.origin-beat--flip .origin-year {
  left: auto;
  right: 0.85rem;
  text-align: right;
}

.origin-panel {
  position: relative;
  z-index: 3;
  max-width: 28rem;
  margin: -2.4rem 1rem 0;
  padding: 0 0 0 1.15rem;
}

.origin-panel::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.2rem;
  bottom: 0.2rem;
  width: 2px;
  border-radius: 999px;
  background: linear-gradient(180deg, var(--gold), rgba(var(--gold-rgb), 0.15));
}

@media (min-width: 900px) {
  .origin-panel {
    margin: 0 0 2.4rem -4.5rem;
    padding: 1.35rem 0 1.35rem 1.35rem;
    background: linear-gradient(90deg, rgba(255, 255, 255, 0.94) 62%, rgba(255, 255, 255, 0.55));
  }

  .origin-beat--flip .origin-panel {
    margin: 0 -4.5rem 2.4rem 0;
    padding: 1.35rem 1.35rem 1.35rem 0;
    background: linear-gradient(270deg, rgba(255, 255, 255, 0.94) 62%, rgba(255, 255, 255, 0.55));
  }

  .origin-beat--flip .origin-panel::before {
    left: auto;
    right: 0;
  }
}

.origin-chapter {
  display: flex;
  align-items: center;
  gap: 0.55rem;
  margin: 0 0 0.55rem;
  font-size: 0.66rem;
  font-weight: 700;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--gold);
}

.origin-chapter span {
  font-variant-numeric: tabular-nums;
}

.origin-panel h3 {
  margin: 0;
  font-family: var(--font-display);
  font-size: clamp(1.35rem, 2.4vw, 1.85rem);
  font-weight: 500;
  letter-spacing: -0.03em;
  line-height: 1.2;
}

.origin-panel p:last-child {
  margin: 0.65rem 0 0;
  max-width: 36ch;
  font-size: 0.98rem;
  line-height: 1.7;
  color: var(--muted-foreground);
}

.origin-coda {
  margin: 3.25rem 0 0;
  padding-top: 1.4rem;
  border-top: 1px solid rgba(var(--ink-rgb), 0.1);
  font-size: 0.92rem;
  letter-spacing: 0.01em;
  color: rgba(var(--ink-rgb), 0.48);
}

@media (max-width: 599px) {
  .origin-node-name {
    display: none;
  }

  .origin-path-line,
  .origin-path-progress {
    top: 0.92rem;
  }

  .origin-year {
    font-size: clamp(2.8rem, 16vw, 4.4rem);
  }
}

@media (prefers-reduced-motion: reduce) {

  .origin-media img,
  .origin-node-mark,
  .origin-node-year,
  .origin-node-name,
  .origin-path-progress,
  .origin-beat,
  .origin-year {
    transition: none !important;
  }

  .origin-media img,
  .origin-beat.is-active .origin-media img,
  .origin-media:hover img,
  .origin-node:hover .origin-node-mark,
  .origin-node.is-active .origin-node-mark {
    transform: none !important;
  }

  .origin-media img {
    opacity: 1;
    filter: none;
  }
}

/* --------------------------------------------------------------------------
   About â€” Why AKIS reasons film
   -------------------------------------------------------------------------- */
.reasons-section {
  --reason-motion: 0.55s var(--ease-editorial);
  --reason-card-w: clamp(15.5rem, 28vw, 28rem);
  --reason-card-h: clamp(21rem, 32vw, 30rem);
  --reason-gap: clamp(0.85rem, 1.4vw, 1.25rem);
  position: relative;
  overflow: hidden;
  z-index: 4;
  color: var(--text);
  background-color: var(--primary-light);
  padding: 4.75rem 0 5.25rem;
}

@media (min-width: 1024px) {
  .reasons-section {
    padding: 6.5rem 0 7rem;
  }
}

@media (max-width: 640px) {
  .reasons-section {
    --reason-card-w: min(78vw, 17.5rem);
    --reason-card-h: min(68vw, 23.5rem);
  }
}

.reasons-stage,
.compass-stage,
.welcome-stage,
.grounds-stage,
.people-stage,
.marks-stage {
  position: relative;
  z-index: 2;
  max-width: 1400px;
  margin: 0 auto;
  padding: 0 1.5rem;
}

@media (min-width: 1024px) {

  .reasons-stage,
  .compass-stage,
  .welcome-stage,
  .grounds-stage,
  .people-stage,
  .marks-stage {
    padding: 0 2.5rem;
  }
}

.reasons-header {
  max-width: 38rem;
}

.reasons-section .section-kicker {
  color: var(--gold-whisper);
}

.reasons-section .section-heading {
  color: var(--ink);
}

.reasons-carousel {
  position: relative;
  margin-top: 2.5rem;
  opacity: 0;
  transform: translateY(1.25rem);
  transition:
    opacity 0.7s var(--ease-editorial),
    transform 0.7s var(--ease-editorial);
}

.reasons-carousel.visible,
.reasons-section.is-inview .reasons-carousel {
  opacity: 1;
  transform: translateY(0);
}

.reasons-viewport {
  position: relative;
  overflow: hidden;
  width: 100%;
  margin: 0 calc(-0.35rem);
  padding: 0.35rem;
  touch-action: pan-y;
  cursor: grab;
  -webkit-user-select: none;
  user-select: none;
}

.reasons-viewport.is-dragging {
  cursor: grabbing;
}

.reasons-track {
  display: flex;
  gap: var(--reason-gap);
  width: max-content;
  will-change: transform;
  transform: translate3d(0, 0, 0);
}

.reasons-card {
  position: relative;
  flex: 0 0 var(--reason-card-w);
  width: var(--reason-card-w);
  height: var(--reason-card-h);
  border-radius: calc(var(--radius) + 0.1rem);
  overflow: hidden;
  isolation: isolate;
  background: var(--footer);
  box-shadow: 0 24px 48px -28px rgba(0, 0, 0, 0.55);
  opacity: 0;
  transform: translateY(1.1rem) scale(0.98);
  transition:
    opacity 0.65s var(--ease-editorial),
    transform 0.65s var(--ease-editorial),
    box-shadow 0.45s var(--ease-editorial);
  transition-delay: calc(var(--i, 0) * 70ms + 80ms);
}

.reasons-carousel.visible .reasons-card,
.reasons-section.is-inview .reasons-card {
  opacity: 1;
  transform: translateY(0) scale(1);
}

.reasons-card-hit {
  position: absolute;
  inset: 0;
  z-index: 4;
  margin: 0;
  padding: 0;
  border: 0;
  background: transparent;
  cursor: pointer;
  appearance: none;
}

.reasons-card-hit:focus-visible {
  outline: 2px solid var(--gold-whisper);
  outline-offset: -3px;
}

.reasons-card-media {
  position: absolute;
  inset: 0;
  margin: 0;
}

.reasons-card-media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transform: scale(1.04);
  transition: transform 1.1s var(--ease-editorial);
}

.reasons-card:hover .reasons-card-media img,
.reasons-card.is-open .reasons-card-media img,
.reasons-card:focus-within .reasons-card-media img {
  transform: scale(1.1);
}

.reasons-card-base,
.reasons-card-overlay {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 2;
  padding: 1.15rem 1.1rem 1.2rem;
  pointer-events: none;
}

.reasons-card-base {
  background: linear-gradient(180deg, transparent 0%, rgba(var(--primary-rgb), 0.78) 72%);
  transition: opacity 0.4s var(--ease-editorial);
}

.reasons-card-overlay {
  top: 0;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  gap: 0.55rem;
  background:
    linear-gradient(180deg, rgba(var(--primary-rgb), 0.22) 0%, rgba(var(--primary-rgb), 0.94) 48%, rgba(var(--primary-rgb), 0.98) 100%);
  transform: translateY(102%);
  transition: transform 0.55s var(--ease-editorial);
}

.reasons-card-index {
  display: block;
  font-size: 0.66rem;
  font-weight: 700;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--gold-whisper);
}

.reasons-card-title {
  margin: 0.2rem 0 0;
  font-family: var(--font-display);
  font-size: clamp(1.05rem, 1.7vw, 1.28rem);
  font-weight: 500;
  letter-spacing: -0.03em;
  line-height: 1.2;
  color: var(--paper);
}

.reasons-card-overlay .reasons-card-title {
  transform: translateY(0.55rem);
  opacity: 0;
  transition:
    opacity 0.45s var(--ease-editorial) 0.08s,
    transform 0.45s var(--ease-editorial) 0.08s;
}

.reasons-card-copy {
  margin: 0;
  font-size: 0.88rem;
  line-height: 1.55;
  color: rgba(255, 255, 255, 0.78);
  transform: translateY(0.7rem);
  opacity: 0;
  transition:
    opacity 0.5s var(--ease-editorial) 0.14s,
    transform 0.5s var(--ease-editorial) 0.14s;
}

@media (hover: hover) and (pointer: fine) {

  .reasons-card:hover .reasons-card-base,
  .reasons-card:focus-within .reasons-card-base {
    opacity: 0;
  }

  .reasons-card:hover .reasons-card-overlay,
  .reasons-card:focus-within .reasons-card-overlay {
    transform: translateY(0);
  }

  .reasons-card:hover .reasons-card-overlay .reasons-card-title,
  .reasons-card:focus-within .reasons-card-overlay .reasons-card-title,
  .reasons-card:hover .reasons-card-copy,
  .reasons-card:focus-within .reasons-card-copy {
    opacity: 1;
    transform: translateY(0);
  }
}

.reasons-card.is-open .reasons-card-base {
  opacity: 0;
}

.reasons-card.is-open .reasons-card-overlay {
  transform: translateY(0);
}

.reasons-card.is-open .reasons-card-overlay .reasons-card-title,
.reasons-card.is-open .reasons-card-copy {
  opacity: 1;
  transform: translateY(0);
}

.reasons-card:hover,
.reasons-card.is-open,
.reasons-card:focus-within {
  box-shadow: 0 28px 56px -24px rgba(0, 0, 0, 0.65);
}

.reasons-nav {
  display: flex;
  justify-content: end;
  gap: 0.55rem;
  margin-top: 1.35rem;
}

.reasons-nav-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2.75rem;
  height: 2.75rem;
  margin: 0;
  padding: 0;
  border-radius: 999px;
  border: 1px solid rgba(var(--ink-rgb), 0.16);
    background: rgba(255, 255, 255, 0.72);
    color: var(--ink);
  font-size: 1rem;
  cursor: pointer;
  transition:
    background-color var(--reason-motion),
    border-color var(--reason-motion),
    transform var(--reason-motion);
}

.reasons-nav-btn:hover,
.reasons-nav-btn:focus-visible {
  background: var(--primary);
    border-color: var(--ink);
    color: var(--paper);
  transform: translateY(-1px);
  outline: none;
}

.reasons-nav-btn:focus-visible {
  outline: 2px solid var(--gold-whisper);
  outline-offset: 3px;
}

.reasons-hint {
  margin: 0.85rem 0 0;
  font-size: 0.7rem;
  font-weight: 600;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.42);
}

@media (prefers-reduced-motion: reduce) {

  .reasons-carousel,
  .reasons-card,
  .reasons-card-media img,
  .reasons-card-overlay,
  .reasons-card-overlay .reasons-card-title,
  .reasons-card-copy,
  .reasons-card-base,
  .reasons-nav-btn {
    transition: none !important;
    animation: none !important;
  }

  .reasons-carousel,
  .reasons-card {
    opacity: 1;
    transform: none;
  }

  .reasons-track {
    will-change: auto;
  }
}

/* --------------------------------------------------------------------------
   About â€” vision, mission, values
   -------------------------------------------------------------------------- */
.compass-section {
  position: relative;
  overflow: visible;
  color: var(--ink);
  background: var(--paper);
  padding: 4.75rem 0 5.5rem;
}

@media (min-width: 1024px) {
  .compass-section {
    padding: 6.5rem 0 6.5rem;
  }
}

.compass-watermark {
  position: absolute;
  top: 1.2rem;
  right: -0.4rem;
  margin: 0;
  font-family: var(--font-display);
  font-size: clamp(6rem, 18vw, 14rem);
  font-weight: 500;
  letter-spacing: -0.06em;
  line-height: 0.8;
  color: transparent;
  -webkit-text-stroke: 1px rgba(var(--ink-rgb), 0.07);
  pointer-events: none;
  user-select: none;
}

.compass-header {
  position: relative;
  max-width: 50rem;
}

.compass-motto {
  display: grid;
  gap: 0.12rem;
  margin: 0 0 1.15rem;
  font-family: var(--font-display);
  font-size: clamp(2rem, 4.2vw, 3.35rem);
  font-weight: 500;
  letter-spacing: -0.045em;
  line-height: 1.04;
  color: var(--ink);
}

.compass-motto-rule {
  display: block;
  width: 0;
  height: 1.5px;
  margin: 0 0 1.05rem;
  background: linear-gradient(90deg, var(--gold), transparent);
  transition: width 0.9s var(--ease-editorial);
}

.compass-motto > span:not(.compass-motto-rule):last-child {
  color: var(--primary);
}

.compass-section.is-inview .compass-motto-rule,
.compass-header.visible .compass-motto-rule {
  width: 5.5rem;
}

.compass-title {
  margin: 0;
  max-width: 18ch;
  font-size: clamp(1.15rem, 2vw, 1.45rem);
  font-weight: 500;
  letter-spacing: -0.03em;
  color: rgba(var(--ink-rgb), 0.58);
}

.compass-spread {
  display: grid;
  gap: 1.15rem;
  margin-top: 2.75rem;
}

@media (min-width: 900px) {
  .compass-spread {
    grid-template-columns: 0.92fr 1.08fr;
    gap: 1.35rem;
    align-items: stretch;
  }
}

.compass-plate {
  position: relative;
  overflow: hidden;
  min-height: 22rem;
  border-radius: calc(var(--radius) + 0.15rem);
}

.compass-plate--vision {
  color: var(--paper);
  background: var(--primary);
}

.compass-plate-media {
  position: absolute;
  inset: 0;
  margin: 0;
}

.compass-plate-media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transform: scale(1.04);
  transition: transform 1.2s var(--ease-editorial);
}

.compass-plate--vision:hover .compass-plate-media img,
.compass-plate--vision:focus-within .compass-plate-media img {
  transform: scale(1.08);
}

.compass-plate-veil {
  position: absolute;
  inset: 0;
  background:
    linear-gradient(180deg, rgba(var(--primary-rgb), 0.12) 10%, rgba(var(--primary-rgb), 0.78) 100%),
    linear-gradient(90deg, rgba(var(--primary-rgb), 0.22), transparent 55%);
}

.compass-plate-copy {
  position: relative;
  z-index: 1;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  min-height: 22rem;
  height: 100%;
  padding: 1.6rem 1.5rem 1.7rem;
}

@media (min-width: 900px) {

  .compass-plate-copy,
  .compass-plate {
    min-height: 32rem;
  }
}

.compass-index {
  margin: 0 0 0.85rem;
  font-family: var(--font-display);
  font-size: clamp(2.4rem, 5vw, 3.6rem);
  font-weight: 500;
  letter-spacing: -0.06em;
  line-height: 0.8;
  color: var(--gold);
  opacity: 0.88;
}

.compass-plate--vision .compass-label {
  color: var(--gold-whisper);
}

.compass-plate-copy h3,
.compass-plate--mission h3 {
  margin: 0;
  max-width: 56ch;
  font-family: var(--font-display);
  font-size: clamp(1.35rem, 2.4vw, 1.85rem);
  font-weight: 500;
  letter-spacing: -0.03em;
  line-height: 1.28;
}

.compass-mark {
  position: absolute;
  top: 1.35rem;
  right: 1.25rem;
  width: 3.1rem;
  height: 3.1rem;
  color: var(--gold-whisper);
  opacity: 0.72;
}

.compass-mark svg {
  width: 100%;
  height: 100%;
}

.compass-plate--mission {
  display: flex;
  flex-direction: column;
  padding: 1.7rem 1.6rem 1.4rem;
  background: var(--paper);
  border: 1px solid rgba(var(--ink-rgb), 0.08);
  box-shadow: 0 24px 48px -36px rgba(var(--ink-rgb), 0.35);
}

.compass-plate--mission h3 {
  max-width: 42ch;
  font-size: clamp(1.2rem, 2vw, 1.55rem);
  line-height: 1.38;
}

.compass-plate-note {
  margin: 1.15rem 0 1.5rem;
  max-width: 70ch;
  font-size: 0.98rem;
  line-height: 1.65;
  color: var(--muted-foreground);
}

.compass-plate-inset {
  margin: auto 0 0;
  overflow: hidden;
  border-radius: calc(var(--radius) - 0.15rem);
  height: 9.5rem;
}

@media (min-width: 900px) {
  .compass-plate-inset {
    height: 11.5rem;
  }
}

.compass-plate-inset img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transform: scale(1.03);
  transition: transform 1.1s var(--ease-editorial);
}

.compass-plate--mission:hover .compass-plate-inset img {
  transform: scale(1.07);
}

.compass-label {
  margin: 0 0 0.7rem;
  font-size: 0.66rem;
  font-weight: 700;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--gold);
}

/* Editorial Vision / Mission / Attributes / Practice — one composition */
.vmv-compose {
  display: flex;
  flex-direction: column;
  gap: 2.75rem;
}

.vmv-statements {
  display: grid;
  gap: 2rem 2.25rem;
  align-items: start;
}

.vmv-vision h3 {
  margin: 0;
  font-family: var(--font-display);
  font-size: clamp(1.2rem, 2.2vw, 1.62rem);
  font-weight: 500;
  letter-spacing: -0.04em;
  line-height: 1.12;
}

.vmv-mission h3 {
  margin: 0;
  font-family: var(--font-display);
  font-size: clamp(1.2rem, 2.2vw, 1.62rem);
  font-weight: 500;
  letter-spacing: -0.03em;
  line-height: 1.4;
}

.vmv-anchor {
  margin: 0;
  overflow: hidden;
  aspect-ratio: 4 / 5;
  max-height: 22rem;
  border-radius: calc(var(--radius) + 0.2rem);
}

.vmv-anchor img,
.vmv-lists-media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transform: scale(1.03);
  transition: transform 1.2s var(--ease-editorial);
}

.vmv-anchor:hover img,
.vmv-lists-media:hover img {
  transform: scale(1.07);
}

.vmv-lead {
  margin: 0 0 1.15rem;
  font-size: clamp(1rem, 1.8vw, 1.1rem);
  line-height: 1.65;
  color: var(--muted-foreground);
}

.vmv-lists {
  display: grid;
  gap: 2.5rem;
  padding-top: 0.35rem;
  border-top: 1px solid rgba(var(--ink-rgb), 0.1);
}

.vmv-lists-media {
  display: none;
  margin: 0;
  overflow: hidden;
}

.vmv-list,
.vmv-practice-list {
  list-style: none;
  margin: 0;
  padding: 0;
  counter-reset: vmv;
}

.vmv-list li,
.vmv-practice-list li {
  counter-increment: vmv;
  display: grid;
  grid-template-columns: 2.15rem 1fr;
  gap: 0.7rem;
  align-items: baseline;
  padding: 0.82rem 0;
  border-top: 1px solid rgba(var(--ink-rgb), 0.1);
  font-family: var(--font-display);
  font-size: clamp(1rem, 1.8vw, 1.1rem);
  font-weight: 500;
  letter-spacing: -0.02em;
  line-height: 1.35;
  transition: color 0.25s ease, padding-left 0.25s ease;
}

.vmv-list li:last-child,
.vmv-practice-list li:last-child {
  border-bottom: 1px solid rgba(var(--ink-rgb), 0.1);
}

.vmv-list li::before,
.vmv-practice-list li::before {
  content: counter(vmv) ".";
  font-family: var(--font-sans);
  font-size: 0.76rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  color: var(--gold);
}

.vmv-list li:hover,
.vmv-practice-list li:hover {
  color: var(--primary);
  padding-left: 0.2rem;
}

@media (min-width: 768px) {
  .vmv-compose {
    gap: 3.25rem;
  }

  .vmv-statements {
    grid-template-columns: minmax(0, 1.15fr) minmax(12rem, 0.72fr);
    grid-template-areas:
      "vision media"
      "mission media";
    column-gap: 2.75rem;
    row-gap: 2.25rem;
    align-items: start;
  }

  .vmv-vision { grid-area: vision; }

  .vmv-mission { grid-area: mission; }

  .vmv-anchor {
    grid-area: media;
    max-height: none;
    height: 100%;
    min-height: 15rem;
    aspect-ratio: auto;
  }

  .vmv-lists {
    grid-template-columns: 1fr 1fr;
    gap: 2.75rem 3.25rem;
    padding-top: 2.75rem;
    position: relative;
  }

  .vmv-lists::before {
    content: "";
    position: absolute;
    top: 2.75rem;
    bottom: 0;
    left: 50%;
    width: 1px;
    background: linear-gradient(180deg, var(--gold), rgba(var(--primary-rgb), 0.08));
    opacity: 0.55;
    pointer-events: none;
  }
}

@media (min-width: 1024px) {
  .vmv-compose {
    gap: 4rem;
  }

  .vmv-statements {
    grid-template-columns: minmax(0, 1.2fr) minmax(16rem, 0.78fr);
    column-gap: 3.5rem;
    row-gap: 2.75rem;
  }

  .vmv-lists {
    display: grid;
    gap: 4rem;
    align-items: start;
  }

  .vmv-lists::before {
    display: none;
  }

  .vmv-lists-media {
    display: block;
    aspect-ratio: 3 / 4;
    max-height: 22rem;
    align-self: center;
  }

  .vmv-practice-copy {
    padding-left: 0.25rem;
  }
}

@media (max-width: 767px) {
  .vmv-anchor {
    order: 2;
    max-height: 16rem;
    aspect-ratio: 16 / 10;
  }

  .vmv-vision { order: 1; }

  .vmv-mission { order: 3; }

  .vmv-statements {
    display: flex;
    flex-direction: column;
  }
}

.compass-values {
  position: relative;
  margin-top: 3.25rem;
  padding: 3.5rem 0 4.25rem;
  color: var(--paper);
  background:
    radial-gradient(55% 60% at 100% 0%, rgba(var(--accent-rgb), 0.2), transparent 55%),
    var(--primary);
}

@media (min-width: 1024px) {
  .compass-values {
    padding: 4.75rem 0 5.5rem;
  }
}

.compass-values .compass-label {
  color: var(--gold-whisper);
}

.compass-values-head {
  max-width: 38rem;
  margin-bottom: 2.25rem;
}

.compass-values-head h3 {
  margin: 0;
  font-family: var(--font-display);
  font-size: clamp(1.7rem, 3.4vw, 2.55rem);
  font-weight: 500;
  letter-spacing: -0.035em;
  line-height: 1.12;
}

.compass-values-lead {
  margin: 0.9rem 0 0;
  max-width: 46ch;
  font-size: 1.02rem;
  line-height: 1.7;
  color: rgba(255, 255, 255, 0.62);
}

.compass-values-board {
  display: grid;
  gap: 1.25rem;
}

@media (min-width: 880px) {
  .compass-values-board {
    grid-template-columns: 0.92fr 1.08fr;
    gap: 2.5rem;
    align-items: stretch;
  }
}

.compass-value-tabs {
  display: grid;
}

.compass-value {
  position: relative;
  display: flex;
  align-items: baseline;
  gap: 0.85rem;
  width: 100%;
  margin: 0;
  padding: 0.95rem 0.15rem 0.95rem 0.85rem;
  border: 0;
  border-bottom: 1px solid rgba(255, 255, 255, 0.1);
  background: transparent;
  color: rgba(255, 255, 255, 0.48);
  font-family: inherit;
  font-size: 1.02rem;
  font-weight: 500;
  letter-spacing: -0.015em;
  text-align: left;
  cursor: pointer;
  appearance: none;
  transition: color 0.35s var(--ease-editorial), padding-left 0.35s var(--ease-editorial);
}

.compass-value::before {
  content: "";
  position: absolute;
  left: 0;
  top: 1.05rem;
  bottom: 1.05rem;
  width: 2px;
  border-radius: 999px;
  background: var(--gold);
  transform: scaleY(0);
  transform-origin: center;
  transition: transform 0.35s var(--ease-editorial);
}

.compass-value-num {
  flex: none;
  font-size: 0.66rem;
  font-weight: 700;
  letter-spacing: 0.16em;
  color: var(--gold);
}

.compass-value:hover,
.compass-value:focus-visible {
  color: var(--paper);
}

.compass-value.is-active {
  color: var(--paper);
  padding-left: 1.05rem;
}

.compass-value.is-active::before {
  transform: scaleY(1);
}

.compass-value:focus-visible {
  outline: 2px solid var(--gold-whisper);
  outline-offset: 3px;
  border-radius: 0.25rem;
}

.compass-value-panel {
  position: relative;
  overflow: hidden;
  min-height: 16rem;
  padding: 1.7rem 1.5rem 1.6rem;
  border-radius: calc(var(--radius) + 0.1rem);
  border: 1px solid rgba(255, 255, 255, 0.1);
  background: rgba(255, 255, 255, 0.04);
}

.compass-value-rose {
  position: absolute;
  right: -1.2rem;
  bottom: -1.4rem;
  width: 11rem;
  height: 11rem;
  color: var(--gold);
  opacity: 0.16;
  pointer-events: none;
}

.compass-value-rose svg {
  width: 100%;
  height: 100%;
}

.compass-value-kicker {
  position: relative;
  margin: 0 0 0.7rem;
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.2em;
  color: var(--gold-whisper);
}

.compass-value-panel h4 {
  position: relative;
  margin: 0;
  max-width: 16ch;
  font-family: var(--font-display);
  font-size: clamp(1.45rem, 2.6vw, 2.05rem);
  font-weight: 500;
  letter-spacing: -0.03em;
  line-height: 1.18;
}

.compass-value-panel p[data-compass-copy] {
  position: relative;
  margin: 1rem 0 0;
  max-width: 38ch;
  font-size: 1.02rem;
  line-height: 1.7;
  color: rgba(255, 255, 255, 0.7);
}

.compass-value-panel.is-swapping h4,
.compass-value-panel.is-swapping p[data-compass-copy] {
  opacity: 0.35;
}

.compass-value-panel h4,
.compass-value-panel p[data-compass-copy] {
  transition: opacity 0.28s var(--ease-editorial);
}

.compass-habits-row {
  margin-top: 2.75rem;
  padding-top: 1.6rem;
  border-top: 1px solid rgba(255, 255, 255, 0.1);
}

.compass-habits {
  display: flex;
  flex-wrap: wrap;
  gap: 0.55rem;
  margin: 0.85rem 0 0;
  padding: 0;
  list-style: none;
}

.compass-habits li {
  padding: 0.45rem 0.85rem;
  border-radius: 999px;
  border: 1px solid rgba(255, 255, 255, 0.14);
  background: rgba(255, 255, 255, 0.04);
  font-size: 0.82rem;
  letter-spacing: 0.02em;
  color: rgba(255, 255, 255, 0.78);
}

.compass-learn {
  display: none;
}

.compass-coda {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-end;
  justify-content: space-between;
  gap: 1.35rem 2.25rem;
  margin-top: 2.75rem;
  padding-top: 1.85rem;
  border-top: 1px solid rgba(var(--ink-rgb), 0.1);
}

.compass-coda-copy {
  max-width: 34rem;
}

.compass-coda-copy p:last-child {
  margin: 0;
  font-family: var(--font-display);
  font-size: clamp(1.15rem, 2.1vw, 1.45rem);
  font-weight: 500;
  letter-spacing: -0.03em;
  line-height: 1.35;
  color: var(--ink);
}

.compass-coda .solid-cta {
  margin-top: 0;
}

.compass-coda .solid-cta:focus-visible {
  outline: 2px solid var(--gold);
  outline-offset: 3px;
}

/* --------------------------------------------------------------------------
   About â€” principal welcome
   -------------------------------------------------------------------------- */
.welcome-section {
  position: relative;
  overflow: hidden;
  background: var(--paper);
  color: var(--ink);
  padding: 4.75rem 0 5.25rem;
}

@media (min-width: 1024px) {
  .welcome-section {
    padding: 6.5rem 0 7rem;
  }
}

.welcome-header {
  max-width: 38rem;
}

.welcome-layout {
  display: grid;
  gap: 2.25rem;
  margin-top: 2.5rem;
  align-items: start;
}

@media (min-width: 900px) {
  .welcome-layout {
    grid-template-columns: 0.78fr 1.22fr;
    gap: 4rem;
  }
}

.welcome-portrait {
  margin: 0;
}

@media (min-width: 900px) {
  .welcome-portrait {
    position: sticky;
    top: 8.5rem;
  }
}

.welcome-portrait img {
  width: 100%;
  max-width: 30rem;
  display: block;
  object-fit: contain;
  border-radius: calc(var(--radius) + 0.15rem);
}

.welcome-portrait figcaption {
  display: grid;
  gap: 0.15rem;
  margin-top: 1.1rem;
  justify-content: center;
}

.welcome-portrait strong {
  font-family: var(--font-display);
  font-size: 1.15rem;
  font-weight: 500;
}

.welcome-portrait span {
  font-size: 0.88rem;
  color: var(--muted-foreground);
  line-height: 1.45;
}

.welcome-letter {
  position: relative;
  padding-left: 2.25rem;
}

.welcome-letter::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.2rem;
  bottom: 0.2rem;
  width: 2px;
  border-radius: 999px;
  background: linear-gradient(180deg, var(--gold), rgba(var(--gold-rgb), 0.12));
}

.welcome-kicker {
  margin: 0 0 1.2rem;
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--primary);
}

.welcome-letter p {
  margin: 0 0 1.05rem;
  font-size: clamp(1rem, 1.8vw, 1.1rem);
  line-height: 1.75;
  color: rgba(var(--ink-rgb), 0.78);
}

.welcome-sign {
  color: var(--ink) !important;
  font-weight: 500;
}

.welcome-signoff {
  margin-top: 0.35rem !important;
  color: var(--ink) !important;
  font-weight: 500;
  line-height: 1.55 !important;
}

.welcome-letter .ghost-cta {
  margin-top: 0.4rem;
}

/* --------------------------------------------------------------------------
   About â€” student attributes & daily practice
   -------------------------------------------------------------------------- */
.visually-hidden {
  margin: 0 0 2.5rem;
    font-size: clamp(2rem, 4.2vw, 3.35rem);
    font-weight: 500;
    letter-spacing: -0.03em;
    color: var(--ink);
}

.ethos-band {
  position: relative;
  margin-top: 3.5rem;
  padding: 3.25rem 0 0;
  border-top: 1px solid rgba(var(--ink-rgb), 0.08);
}

.ethos-stage {
  position: relative;
  z-index: 2;
  max-width: 1280px;
  margin: 0 auto;
  padding: 0 1.5rem;
  display: grid;
  gap: 2.75rem;
}

@media (min-width: 1024px) {
  .ethos-stage {
    padding: 0 2.5rem;
    gap: 3.25rem;
  }
}

.ethos-intro,
.ethos-practice-copy {
  max-width: 36rem;
}

.ethos-heading {
  margin: 0.55rem 0 0;
  font-family: var(--font-display);
  font-size: clamp(1.35rem, 2.6vw, 1.85rem);
  font-weight: 500;
  letter-spacing: -0.03em;
  line-height: 1.2;
  color: var(--ink);
}

.ethos-attributes {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 0;
  counter-reset: none;
}

@media (min-width: 800px) {
  .ethos-attributes {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    column-gap: 2.5rem;
  }
}

.ethos-attributes li {
  display: grid;
  grid-template-columns: 2.4rem minmax(0, 1fr);
  gap: 0.85rem;
  align-items: baseline;
  padding: 1rem 0;
  border-bottom: 1px solid rgba(var(--ink-rgb), 0.1);
  opacity: 0;
  transform: translateY(0.75rem);
  transition:
    opacity 0.55s var(--ease-editorial),
    transform 0.55s var(--ease-editorial),
    color 0.35s var(--ease-editorial);
  transition-delay: calc(var(--i, 0) * 60ms);
}

.ethos-band.is-inview .ethos-attributes li,
.ethos-attributes.visible li {
  opacity: 1;
  transform: translateY(0);
}

.ethos-num {
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.14em;
  color: rgba(var(--gold-rgb), 0.85);
}

.ethos-text {
  font-family: var(--font-display);
  font-size: clamp(1.05rem, 1.8vw, 1.28rem);
  font-weight: 500;
  letter-spacing: -0.025em;
  line-height: 1.3;
  color: var(--ink);
}

.ethos-attributes li:hover .ethos-text {
  color: var(--primary);
}

.ethos-practice {
  display: grid;
  gap: 1.75rem;
  padding: 2rem 0 0.25rem;
  border-top: 1px solid rgba(var(--ink-rgb), 0.08);
}

@media (min-width: 900px) {
  .ethos-practice {
    grid-template-columns: minmax(0, 0.95fr) minmax(0, 1.05fr);
    gap: clamp(2rem, 5vw, 4rem);
    align-items: end;
  }
}

.ethos-practice-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 0.35rem;
}

.ethos-practice-list li {
  display: grid;
  grid-template-columns: 2.2rem minmax(0, 1fr);
  gap: 0.85rem;
  align-items: baseline;
  padding: 0.85rem 0.9rem;
  border-radius: 0.85rem;
  border: 1px solid transparent;
  transition:
    background-color 0.35s var(--ease-editorial),
    border-color 0.35s var(--ease-editorial),
    transform 0.35s var(--ease-editorial);
}

.ethos-practice-list li span {
  font-size: 0.66rem;
  font-weight: 700;
  letter-spacing: 0.14em;
  color: var(--gold);
}

.ethos-practice-list li strong {
  font-family: var(--font-display);
  font-size: 1.05rem;
  font-weight: 500;
  letter-spacing: -0.02em;
  color: var(--ink);
}

.ethos-practice-list li:hover {
  background: rgba(255, 255, 255, 0.7);
  border-color: rgba(var(--ink-rgb), 0.08);
  transform: translateX(0.2rem);
}

@media (prefers-reduced-motion: reduce) {
  .ethos-attributes li {
    opacity: 1;
    transform: none;
    transition: none;
  }
}

/* --------------------------------------------------------------------------
   About â€” campus & facilities
   -------------------------------------------------------------------------- */
.grounds-section {
  --grounds-motion: 0.55s var(--ease-editorial);
  --grounds-card-w: clamp(14.5rem, 22vw, 24rem);
  --grounds-card-h: clamp(19.5rem, 28vw, 30rem);
  position: relative;
  overflow: hidden;
  color: var(--ink);
  background-color: var(--primary-light);
  padding: 4.75rem 0 5.25rem;
}

@media (min-width: 1024px) {
  .grounds-section {
    padding: 6.5rem 0 7rem;
  }
}

@media (max-width: 640px) {
  .grounds-section {
    --grounds-card-w: min(72vw, 16.5rem);
    --grounds-card-h: min(92vw, 22rem);
  }
}

.grounds-header {
  display: grid;
  gap: 1.5rem;
  align-items: end;
  max-width: none;
}

@media (min-width: 900px) {
  .grounds-header {
    grid-template-columns: minmax(0, 1.05fr) minmax(0, 0.95fr);
    gap: clamp(2rem, 5vw, 4rem);
  }
}

.grounds-header-lead {
  max-width: 60ch;
}

.grounds-header-copy {
  display: grid;
  gap: 0.85rem;
  max-width: 38rem;
}

.grounds-lede {
  margin: 0;
  max-width: none;
}

.grounds-cta {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  margin-top: 0.55rem;
  width: fit-content;
}

.grounds-carousel {
  position: relative;
  margin-top: clamp(2.25rem, 4vw, 3.25rem);
  opacity: 0;
  transform: translateY(1rem);
  transition:
    opacity 0.7s var(--ease-editorial),
    transform 0.7s var(--ease-editorial);
}

.grounds-carousel.visible,
.grounds-section.is-inview .grounds-carousel {
  opacity: 1;
  transform: translateY(0);
}

.grounds-viewport {
  position: relative;
  overflow: hidden;
  width: 100%;
  margin: 0 -0.25rem;
  padding: 0.35rem 0.25rem;
  touch-action: pan-y;
  cursor: grab;
  -webkit-user-select: none;
  user-select: none;
}

.grounds-viewport.is-dragging {
  cursor: grabbing;
}

.grounds-track {
  display: flex;
  gap: clamp(0.75rem, 1.4vw, 1.1rem);
  width: max-content;
  will-change: transform;
  transform: translate3d(0, 0, 0);
}

.grounds-card {
  position: relative;
  flex: 0 0 var(--grounds-card-w);
  width: var(--grounds-card-w);
  height: var(--grounds-card-h);
  display: block;
  overflow: hidden;
  border-radius: calc(var(--radius) + 0.05rem);
  background: var(--primary);
  color: var(--paper);
  text-decoration: none;
  isolation: isolate;
  opacity: 0;
  transform: translateY(1rem);
  transition:
    opacity 0.6s var(--ease-editorial),
    transform 0.6s var(--ease-editorial),
    box-shadow var(--grounds-motion);
  transition-delay: calc(var(--i, 0) * 70ms + 60ms);
}

.grounds-carousel.visible .grounds-card,
.grounds-section.is-inview .grounds-card {
  opacity: 1;
  transform: translateY(0);
}

.grounds-card-media {
  position: absolute;
  inset: 0;
  margin: 0;
}

.grounds-card-media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transform: scale(1.04);
  transition: transform 1.05s var(--ease-editorial);
}

.grounds-card-veil {
  position: absolute;
  inset: 0;
  z-index: 1;
  pointer-events: none;
  background:
    linear-gradient(180deg, transparent 28%, rgba(var(--primary-rgb), 0.72) 100%),
    linear-gradient(90deg, rgba(var(--primary-rgb), 0.12), transparent 55%);
  transition: opacity var(--grounds-motion);
}

.grounds-card-label {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 2;
  display: grid;
  gap: 0.35rem;
  padding: 1.15rem 1.05rem 1.2rem;
  pointer-events: none;
}

.grounds-card-index {
  font-size: 0.64rem;
  font-weight: 700;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--gold-whisper);
}

.grounds-card-title {
  font-family: var(--font-display);
  font-size: clamp(1.05rem, 1.6vw, 1.25rem);
  font-weight: 500;
  letter-spacing: -0.03em;
  line-height: 1.2;
  color: var(--paper);
  transform: translateY(0);
  transition: transform var(--grounds-motion);
}

.grounds-card:hover,
.grounds-card:focus-visible {
  box-shadow: 0 28px 52px -24px rgba(var(--ink-rgb), 0.55);
  outline: none;
}

.grounds-card:focus-visible {
  box-shadow:
    0 0 0 2px var(--paper-deep),
    0 0 0 4px var(--primary),
    0 28px 52px -24px rgba(var(--ink-rgb), 0.55);
}

.grounds-card:hover .grounds-card-media img,
.grounds-card:focus-visible .grounds-card-media img {
  transform: scale(1.1);
}

.grounds-card:hover .grounds-card-title,
.grounds-card:focus-visible .grounds-card-title {
  transform: translateY(-2px);
}

.grounds-nav {
  display: flex;
  gap: 0.55rem;
  margin-top: 1.25rem;
  justify-content: end;
}

.grounds-nav-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2.75rem;
  height: 2.75rem;
  margin: 0;
  padding: 0;
  border-radius: 999px;
  border: 1px solid rgba(var(--ink-rgb), 0.16);
  background: rgba(255, 255, 255, 0.72);
  color: var(--ink);
  font-size: 1rem;
  cursor: pointer;
  transition:
    background-color var(--grounds-motion),
    border-color var(--grounds-motion),
    color var(--grounds-motion),
    transform var(--grounds-motion);
}

.grounds-nav-btn:hover,
.grounds-nav-btn:focus-visible {
  background: var(--primary);
  border-color: var(--ink);
  color: var(--paper);
  transform: translateY(-1px);
  outline: none;
}

.grounds-nav-btn:focus-visible {
  outline: 2px solid var(--primary);
  outline-offset: 3px;
}

@media (prefers-reduced-motion: reduce) {

  .grounds-carousel,
  .grounds-card,
  .grounds-card-media img,
  .grounds-card-title,
  .grounds-nav-btn {
    transition: none !important;
    animation: none !important;
  }

  .grounds-carousel,
  .grounds-card {
    opacity: 1;
    transform: none;
  }

  .grounds-track {
    will-change: auto;
  }

  .grounds-card:hover .grounds-card-media img,
  .grounds-card:focus-visible .grounds-card-media img {
    transform: none;
  }
}

/* --------------------------------------------------------------------------
   About â€” meet the team
   -------------------------------------------------------------------------- */
.people-section {
  position: relative;
  overflow: hidden;
  background: var(--paper);
  color: var(--ink);
  padding: 4.75rem 0 5.25rem;
}

@media (min-width: 1024px) {
  .people-section {
    padding: 6.5rem 0 7rem;
  }
}

.people-stage {
  display: grid;
  gap: 2rem;
  align-items: center;
}

@media (min-width: 900px) {
  .people-stage {
    grid-template-columns: 1.05fr 0.95fr;
    gap: 4rem;
  }
}

.people-media {
  margin: 0;
  overflow: hidden;
  border-radius: calc(var(--radius) + 0.1rem);
  height: 16rem;
}

@media (min-width: 900px) {
  .people-media {
    height: 35rem;
  }
}

.people-media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform 1.1s var(--ease-editorial);
}

.people-media:hover img {
  transform: scale(1.05);
}

.people-copy .solid-cta {
  margin-top: 1.6rem;
}

/* --------------------------------------------------------------------------
   About â€” accreditation marks
   -------------------------------------------------------------------------- */
.marks-section {
  --marks-parallax: 0;
  position: relative;
  overflow: hidden;
  color: var(--ink);
  background-color: var(--primary-light);
  padding: 4.5rem 0 5rem;
}

@media (min-width: 1024px) {
  .marks-section {
    padding: 6rem 0 6.5rem;
  }
}

.marks-watermark {
  position: absolute;
  top: 0.4rem;
  right: -0.2rem;
  margin: 0;
  font-family: var(--font-display);
  font-size: clamp(5.5rem, 16vw, 13rem);
  font-weight: 500;
  letter-spacing: -0.06em;
  line-height: 0.8;
  color: transparent;
  -webkit-text-stroke: 1px rgba(var(--ink-rgb), 0.07);
  pointer-events: none;
  user-select: none;
  transform: translate3d(calc(var(--marks-parallax) * -18px), calc(var(--marks-parallax) * 10px), 0);
  will-change: transform;
}

.marks-header {
  position: relative;
}

.marks-board {
  margin-top: 2.35rem;
}

.marks-gallery {
  display: grid;
  grid-template-columns: 1fr;
  grid-auto-rows: 1fr;
  gap: 1rem;
  align-items: stretch;
}

@media (min-width: 640px) {
  .marks-gallery {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1.1rem;
  }
}

@media (min-width: 1100px) {
  .marks-gallery {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
}

.marks-card {
  position: relative;
  isolation: isolate;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  overflow: hidden;
  width: 100%;
  min-width: 0;
  height: 100%;
  min-height: 22rem;
  border-radius: calc(var(--radius) + 0.12rem);
  color: var(--paper);
  background: var(--primary);
}

@media (min-width: 640px) {
  .marks-card {
    min-height: 23.5rem;
  }
}

@media (min-width: 1100px) {
  .marks-card {
    min-height: 24.5rem;
  }
}

.marks-card-media {
  position: absolute;
  inset: 0;
  margin: 0;
}

.marks-card-media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transform: scale(1.08) translate3d(0, calc(var(--marks-parallax) * 16px), 0);
  transition: transform 1.15s var(--ease-editorial);
}

.marks-card-veil {
  position: absolute;
  inset: 0;
  background:
    linear-gradient(180deg, rgba(var(--primary-rgb), 0.18) 8%, rgba(var(--primary-rgb), 0.82) 100%),
    linear-gradient(90deg, rgba(var(--primary-rgb), 0.22), transparent 58%);
}

.marks-card-body {
  position: relative;
  z-index: 1;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  flex: 1 1 auto;
  width: 100%;
  padding: 1.45rem 1.2rem 1.35rem;
}

.marks-seal {
  position: absolute;
  top: 1.2rem;
  right: 1.15rem;
  width: 2.7rem;
  height: 2.7rem;
  display: grid;
  place-items: center;
  border-radius: 50%;
  border: 1px solid rgba(255, 255, 255, 0.22);
  background: rgba(var(--subtle-rgb), 0.42);
  color: var(--gold-whisper);
  overflow: hidden;
  transition: transform 0.55s var(--ease-editorial), border-color 0.35s var(--ease-editorial);
}

.marks-seal svg {
  width: 1.35rem;
  height: 1.35rem;
}

.marks-seal--logo {
  background: #0a0a0a;
  border-color: rgba(255, 255, 255, 0.28);
  padding: 0;
}

.marks-seal--logo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  display: block;
}

.marks-seal--light {
  background: #ffffff;
  border-color: rgba(255, 255, 255, 0.55);
  padding: 0.28rem;
}

.marks-seal--light img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  object-position: center;
}

.marks-index {
  margin: 0 0 0.45rem;
  font-size: 0.66rem;
  font-weight: 700;
  letter-spacing: 0.2em;
  color: var(--gold-whisper);
}

.marks-card h3 {
  margin: 0;
  font-family: var(--font-display);
  font-size: clamp(1.55rem, 2.4vw, 1.95rem);
  font-weight: 500;
  letter-spacing: -0.04em;
  line-height: 1;
}

.marks-card p {
  margin: 0.7rem 0 0;
  min-height: 4.8em;
  font-size: 0.9rem;
  line-height: 1.55;
  color: rgba(255, 255, 255, 0.78);
}

.marks-card:hover,
.marks-card:focus-within {
  box-shadow: 0 28px 48px -28px rgba(var(--ink-rgb), 0.55);
}

.marks-card:hover .marks-card-media img,
.marks-card:focus-within .marks-card-media img {
  transform: scale(1.14) translate3d(0, calc(var(--marks-parallax) * 16px), 0);
}

.marks-card:hover .marks-seal,
.marks-card:focus-within .marks-seal {
  transform: rotate(-8deg) scale(1.06);
  border-color: var(--gold-whisper);
}

.marks-section .ghost-cta {
  margin-top: 1.75rem;
}

@media (hover: none) {

  .marks-card:hover .marks-card-media img,
  .marks-card:focus-within .marks-card-media img {
    transform: scale(1.08) translate3d(0, calc(var(--marks-parallax) * 16px), 0);
  }

  .marks-card:hover .marks-seal,
  .marks-card:focus-within .marks-seal {
    transform: none;
    border-color: rgba(255, 255, 255, 0.22);
  }
}

/* --------------------------------------------------------------------------
   About — The GEMS Story
   -------------------------------------------------------------------------- */
.gstory-section {
  --gstory-parallax: 0;
  position: relative;
  overflow: hidden;
  color: var(--ink);
  background-color: var(--paper);
  padding: 4.75rem 0 5.25rem;
}

@media (min-width: 1024px) {
  .gstory-section {
    padding: 6.5rem 0 7rem;
  }
}

.gstory-year {
  position: absolute;
  top: 0.4rem;
  right: -0.2rem;
  margin: 0;
  font-family: var(--font-display);
  font-size: clamp(5.5rem, 16vw, 13rem);
  font-weight: 500;
  letter-spacing: -0.07em;
  line-height: 0.8;
  color: transparent;
  -webkit-text-stroke: 1px rgba(var(--ink-rgb), 0.07);
  pointer-events: none;
  user-select: none;
  transform: translate3d(0, calc(var(--gstory-parallax) * 28px), 0);
}

.gstory-stage {
  position: relative;
  z-index: 2;
  max-width: 1400px;
  margin: 0 auto;
  padding: 0 1.5rem;
  display: grid;
  gap: 2.25rem;
}

@media (min-width: 1024px) {
  .gstory-stage {
    padding: 0 2.5rem;
  }
}

@media (min-width: 900px) {
  .gstory-stage {
    grid-template-columns: minmax(16rem, 0.78fr) minmax(0, 1.22fr);
    gap: 4rem;
    align-items: start;
  }
}

.gstory-media {
  margin: 0;
  overflow: hidden;
  aspect-ratio: 4 / 5;
  max-height: 22rem;
  border-radius: calc(var(--radius) + 0.1rem);
}

@media (min-width: 900px) {
  .gstory-media {
    position: sticky;
    top: 7.5rem;
    max-height: none;
    height: min(72vh, 38rem);
    aspect-ratio: auto;
  }
}

.gstory-media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 0%;
  display: block;
  transition: transform 1.15s var(--ease-editorial);
}

.gstory-media:hover img {
  transform: scale(1.12) translate3d(0, calc(var(--gstory-parallax) * -18px), 0);
}

.gstory-copy .section-heading {
  margin-bottom: 1.6rem;
}

.gstory-copy p:not(.section-kicker):not(.gstory-sign-hand):not(.gstory-sign-name):not(.gstory-sign-role) {
  margin: 0 0 1.15rem;
  font-size: clamp(1rem, 1.8vw, 1.1rem);
  line-height: 1.5;
  color: rgba(var(--ink-rgb), 0.78);
}

.gstory-copy > p:nth-of-type(2) {
  font-family: var(--font-display);
  font-size: clamp(1.15rem, 2vw, 1.4rem);
  font-weight: 500;
  letter-spacing: -0.025em;
  line-height: 1.45;
  color: var(--ink);
}

.gstory-close {
  display: flex;
  margin-top: 1.5rem;
}

.gstory-cta {
  flex-shrink: 0;
}

.gstory-sign {
  margin: 0;
  min-width: min(100%, 16rem);
}

.gstory-sign-hand {
  margin: 0 0 0.15rem;
  font-family: "Great Vibes", var(--font-display), cursive;
  font-size: clamp(2.35rem, 4vw, 3.15rem);
  font-weight: 400;
  line-height: 1.1;
  color: var(--primary);
}

.gstory-sign-name {
  margin: 0.35rem 0 0;
  font-family: var(--font-display);
  font-size: clamp(1rem, 1.8vw, 1.5rem);
  font-weight: 500;
  letter-spacing: -0.02em;
  color: var(--ink);
}

.gstory-sign-role {
  margin: 0.2rem 0 0;
  font-size: 0.88rem;
  line-height: 1.45;
  color: var(--muted-foreground);
}

@media (max-width: 639px) {
  .gstory-media {
    max-height: 16.5rem;
    aspect-ratio: 16 / 10;
  }

  .gstory-close {
    flex-direction: column;
    align-items: flex-start;
  }
}

.reasons-section,
.compass-section,
.welcome-section,
.grounds-section,
.people-section,
.marks-section,
.gstory-section {
  scroll-margin-top: 8.5rem;
}

@media (prefers-reduced-motion: reduce) {

  .reasons-card-media img,
  .reasons-nav-btn,
  .compass-list li,
  .compass-motto-rule,
  .compass-plate-media img,
  .compass-plate-inset img,
  .vmv-anchor img,
  .vmv-lists-media img,
  .vmv-list li,
  .vmv-practice-list li,
  .compass-value,
  .compass-value::before,
  .compass-value-panel h4,
  .compass-value-panel p[data-compass-copy],
  .grounds-card-media img,
  .grounds-card,
  .grounds-nav-btn,
  .people-media img,
  .marks-card-media img,
  .marks-seal,
  .marks-watermark,
  .gstory-media img,
  .gstory-year {
    transition: none !important;
    transform: none !important;
  }

  .compass-motto-rule {
    width: 5.5rem;
  }
}

/* --------------------------------------------------------------------------
   About â€” legacy timeline (unused on About; kept for compatibility)
   -------------------------------------------------------------------------- */
.year-rail {
  display: grid;
  gap: 0;
}

.year-item {
  display: grid;
  grid-template-columns: 5.5rem 1fr;
  gap: 1.25rem;
  padding: 1.5rem 0;
  border-top: 1px solid rgba(var(--ink-rgb), 0.1);
}

.year-item b {
  font-family: var(--font-display);
  font-size: 1.35rem;
  font-weight: 500;
  color: var(--gold);
}

.year-item p {
  margin: 0.25rem 0 0;
  color: var(--muted-foreground);
  line-height: 1.6;
}

.values-constellation {
  display: grid;
  gap: 1rem;
}

@media (min-width: 800px) {
  .values-constellation {
    grid-template-columns: repeat(3, 1fr);
  }
}

.value-orb {
  padding: 1.6rem 1.4rem;
  border-radius: calc(var(--radius) + 0.2rem);
  background: rgba(255, 255, 255, 0.72);
  border: 1px solid rgba(var(--ink-rgb), 0.08);
  min-height: 12rem;
}

.value-orb em {
  display: block;
  font-style: normal;
  font-size: 0.68rem;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--gold);
  margin-bottom: 0.7rem;
}

/* --------------------------------------------------------------------------
   What we stand for â€” interactive values atelier
   -------------------------------------------------------------------------- */
.stand-section {
  --stand-motion: 0.55s var(--ease-editorial);
  position: relative;
  overflow: hidden;
  z-index: 5;
  color: var(--ink);
  background:
    radial-gradient(55% 40% at 8% 0%, rgba(var(--gold-rgb), 0.14), transparent 55%),
    radial-gradient(50% 45% at 100% 80%, rgba(var(--primary-rgb), 0.07), transparent 52%),
    var(--primary-light);
  padding: 5rem 0 5.5rem;
}

@media (min-width: 1024px) {
  .stand-section {
    padding: 7rem 0 7.5rem;
  }
}

.stand-ambient {
  position: absolute;
  inset: 0;
  pointer-events: none;
  background-image:
    linear-gradient(to right, rgba(var(--primary-rgb), 0.028) 1px, transparent 1px),
    linear-gradient(to bottom, rgba(var(--primary-rgb), 0.028) 1px, transparent 1px);
  background-size: 68px 68px;
  mask-image: radial-gradient(ellipse 68% 58% at 50% 40%, black, transparent 78%);
  -webkit-mask-image: radial-gradient(ellipse 68% 58% at 50% 40%, black, transparent 78%);
  opacity: 0.75;
}

.stand-stage {
  position: relative;
  z-index: 2;
  max-width: 1400px;
  margin: 0 auto;
  padding: 0 1.5rem;
  display: grid;
  gap: 2.5rem;
}

@media (min-width: 1024px) {
  .stand-stage {
    padding: 0 2.5rem;
    gap: 3.25rem;
  }
}

.stand-header {
  max-width: 36rem;
}

.stand-explorer {
  display: grid;
  gap: 1.75rem;
  align-items: stretch;
}

@media (min-width: 900px) {
  .stand-explorer {
    grid-template-columns: minmax(17rem, 1.05fr) minmax(0, 0.95fr);
    gap: clamp(1.75rem, 3.5vw, 3.5rem);
    min-height: clamp(30rem, 64vh, 38rem);
  }
}

.stand-portrait {
  position: relative;
  margin: 0;
  border-radius: calc(var(--radius) + 0.25rem);
  isolation: isolate;
}

.stand-portrait-frame {
  position: relative;
  overflow: hidden;
  border-radius: inherit;
  min-height: 22rem;
  height: 100%;
  background: var(--primary);
  box-shadow: 0 32px 60px -36px rgba(var(--ink-rgb), 0.5);
}

@media (min-width: 900px) {
  .stand-portrait-frame {
    min-height: 100%;
  }
}

.stand-portrait-frame img {
  width: 100%;
  height: 100%;
  min-height: 22rem;
  object-fit: cover;
  display: block;
  transform: scale(1.08);
  transition: transform 0.9s var(--ease-editorial), opacity var(--stand-motion);
}

.stand-portrait-frame.is-swapping img {
  opacity: 0.35;
}

.stand-portrait-veil {
  position: absolute;
  inset: 0;
  pointer-events: none;
  background:
    linear-gradient(180deg, rgba(var(--primary-rgb), 0.08) 24%, rgba(var(--primary-rgb), 0.52) 100%),
    linear-gradient(115deg, rgba(var(--primary-rgb), 0.16) 0%, transparent 48%);
}

.stand-portrait-glow {
  position: absolute;
  inset: 0;
  pointer-events: none;
  mix-blend-mode: screen;
  opacity: 0.55;
  background: radial-gradient(55% 45% at 70% 20%, rgba(var(--gold-rgb), 0.3), transparent 60%);
  transition: opacity var(--stand-motion), background var(--stand-motion);
}

.stand-section[data-stand-active="1"] .stand-portrait-glow {
  opacity: 0.72;
  background: radial-gradient(55% 45% at 30% 40%, rgba(var(--gold-rgb), 0.34), transparent 60%);
}

.stand-section[data-stand-active="2"] .stand-portrait-glow {
  opacity: 0.78;
  background: radial-gradient(55% 45% at 72% 68%, rgba(var(--gold-rgb), 0.3), transparent 58%);
}

.stand-caption {
  position: absolute;
  left: 1.1rem;
  right: 1.1rem;
  bottom: 1.1rem;
  z-index: 2;
  display: flex;
  align-items: baseline;
  gap: 0.75rem;
  margin: 0;
  padding: 0.85rem 1rem;
  border-radius: 0.85rem;
  background: rgba(255, 255, 255, 0.92);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
  color: var(--ink);
  box-shadow: 0 18px 36px -22px rgba(var(--ink-rgb), 0.45);
}

.stand-caption [data-stand-index] {
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.18em;
  color: var(--gold);
}

.stand-caption [data-stand-caption] {
  font-size: 0.88rem;
  line-height: 1.4;
}

.stand-chapters {
  display: grid;
  gap: 0.55rem;
  align-content: center;
  position: relative;
}

.stand-chapters::before {
  content: "";
  position: absolute;
  left: 0.7rem;
  top: 1.4rem;
  bottom: 1.4rem;
  width: 1px;
  background: linear-gradient(180deg, transparent, rgba(var(--gold-rgb), 0.55), transparent);
  pointer-events: none;
}

.stand-chapter {
  position: relative;
  padding: 1.05rem 1.15rem 1.1rem 2.1rem;
  border-radius: calc(var(--radius) + 0.1rem);
  border: 1px solid transparent;
  background: transparent;
  cursor: pointer;
  outline: none;
  transition:
    background-color var(--stand-motion),
    border-color var(--stand-motion),
    box-shadow var(--stand-motion),
    transform var(--stand-motion);
}

.stand-chapter-top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
}

.stand-chapter-index {
  font-size: 0.66rem;
  font-weight: 700;
  letter-spacing: 0.18em;
  color: rgba(var(--ink-rgb), 0.38);
  transition: color var(--stand-motion);
}

.stand-chapter-mark {
  position: absolute;
  left: 0.48rem;
  top: 1.35rem;
  width: 0.55rem;
  height: 0.55rem;
  border-radius: 50%;
  border: 1.5px solid rgba(var(--gold-rgb), 0.45);
  background: var(--paper-deep);
  box-shadow: 0 0 0 4px var(--paper-deep);
  transition: background-color var(--stand-motion), transform var(--stand-motion);
}

.stand-chapter-name {
  margin: 0.35rem 0 0;
  font-size: clamp(1.35rem, 2.4vw, 1.85rem);
  font-weight: 500;
  letter-spacing: -0.03em;
}

.stand-chapter-lead {
  margin: 0.2rem 0 0;
  font-size: 0.95rem;
  color: var(--primary);
}

.stand-chapter-body {
  margin: 0;
  max-height: 0;
  opacity: 0;
  overflow: hidden;
  font-size: 0.98rem;
  line-height: 1.65;
  color: var(--muted-foreground);
  transition:
    max-height var(--stand-motion),
    opacity var(--stand-motion),
    margin var(--stand-motion);
}

.stand-chapter.is-active,
.stand-chapter:hover,
.stand-chapter:focus-visible {
  background: rgba(255, 255, 255, 0.78);
  border-color: rgba(var(--gold-rgb), 0.28);
  box-shadow: 0 22px 44px -28px rgba(var(--ink-rgb), 0.35);
}

.stand-chapter.is-active {
  transform: translateX(4px);
}

.stand-chapter.is-active .stand-chapter-index,
.stand-chapter:hover .stand-chapter-index,
.stand-chapter:focus-visible .stand-chapter-index {
  color: var(--gold);
}

.stand-chapter.is-active .stand-chapter-mark {
  background: var(--gold);
  transform: scale(1.15);
}

.stand-chapter.is-active .stand-chapter-body {
  max-height: 8.5rem;
  opacity: 1;
  margin-top: 0.7rem;
}

.stand-chapter:focus-visible {
  box-shadow:
    0 0 0 2px var(--paper),
    0 0 0 4px rgba(var(--primary-rgb), 0.45),
    0 22px 44px -28px rgba(var(--ink-rgb), 0.35);
}

.stand-footer {
  display: flex;
}

@media (prefers-reduced-motion: reduce) {

  .stand-portrait-frame img,
  .stand-chapter,
  .stand-chapter-body,
  .stand-chapter-mark,
  .stand-portrait-glow {
    transition: none !important;
    transform: none !important;
  }

  .stand-chapter.is-active {
    transform: none;
  }
}

/* --------------------------------------------------------------------------
   Principal letter (legacy)
   -------------------------------------------------------------------------- */
.letter-layout {
  display: grid;
  gap: 2.5rem;
}

@media (min-width: 960px) {
  .letter-layout {
    grid-template-columns: 0.85fr 1.15fr;
    align-items: start;
    gap: 4rem;
  }
}

.letter-portrait {
  position: sticky;
  top: calc(var(--header-offset) + 1.25rem);
}

.letter-portrait img {
  width: 100%;
  max-width: 28rem;
  margin: 0 auto;
  object-fit: contain;
}

.letter-paper {
  background: var(--paper);
  padding: 2rem 1.5rem;
  border-radius: calc(var(--radius) + 0.15rem);
  box-shadow: 0 28px 56px -36px rgba(var(--ink-rgb), 0.35);
}

@media (min-width: 720px) {
  .letter-paper {
    padding: 2.75rem 2.5rem;
  }
}

.letter-paper p {
  margin: 0 0 1.15rem;
  font-size: 1.05rem;
  line-height: 1.75;
  color: rgba(var(--ink-rgb), 0.78);
}

.letter-paper .pull-quote {
  margin: 1.75rem 0;
  padding-left: 1.25rem;
  border-left: 2px solid var(--gold);
  font-family: var(--font-display);
  font-size: clamp(1.35rem, 2.4vw, 1.85rem);
  line-height: 1.3;
  color: var(--ink);
}

/* --------------------------------------------------------------------------
   Principal page â€” editorial message
   -------------------------------------------------------------------------- */
.principal-page {
  --pm-motion: 0.6s var(--ease-editorial);
}

.page-breadcrumb {
  margin: 0 0 1.15rem;
}

.page-breadcrumb-list {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.45rem 0.55rem;
  margin: 0;
  padding: 0;
  list-style: none;
}

.page-breadcrumb-item {
  display: inline-flex;
  align-items: center;
  gap: 0.55rem;
  font-size: 0.72rem;
  font-weight: 600;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--paper);
}

.page-breadcrumb-item+.page-breadcrumb-item::before {
  content: "/";
  color: rgba(var(--paper-rgb), 0.28);
  font-weight: 500;
  letter-spacing: 0;
}

.page-breadcrumb-item a {
  color: inherit;
  text-decoration: none;
  transition: color var(--pm-motion);
}

.page-breadcrumb-item a:hover,
.page-breadcrumb-item a:focus-visible {
  color: var(--gold);
  outline: none;
}

.page-breadcrumb-item[aria-current="page"] span {
  color: rgba(var(--paper-rgb), 0.55);
}

.pm-hero {
  position: relative;
  min-height: clamp(39.5rem, 62vh, 36rem);
  overflow: hidden;
}

.pm-hero-wash {
  position: absolute;
  inset: 0;
  z-index: 0;
  overflow: hidden;
}

.pm-hero-wash img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 0%;
  transform: scale(1.06);
  filter: saturate(0.75);
}

.pm-hero-veil {
  position: absolute;
  inset: 0;
  background:
  linear-gradient(180deg, rgba(var(--primary-rgb), 0.28) 0%, rgba(var(--primary-rgb), 0.72) 100%),
  linear-gradient(90deg, rgba(var(--primary-rgb), 0.45) 0%, transparent 55%)
}

.pm-hero-backdrop {
  z-index: 1;
  opacity: 0.55;
}

.pm-hero-stage {
  position: relative;
  z-index: 2;

}

.pm-title {
  max-width: 19ch;
  color: var(--paper);
}

.pm-lede {
  max-width: 38rem;
}

.pm-letter {
  position: relative;
  overflow: hidden;
  background:
    radial-gradient(42% 36% at 100% 0%, rgba(var(--gold-rgb), 0.1), transparent 55%),
    var(--paper);
  color: var(--ink);
  padding: 4.5rem 0 5.5rem;
}

@media (min-width: 1024px) {
  .pm-letter {
    padding: 6rem 0 7rem;
  }
}

.pm-letter-stage {
  position: relative;
  z-index: 2;
  max-width: 1400px;
  margin: 0 auto;
  padding: 0 1.5rem;
  display: grid;
  gap: 2.75rem;
}

@media (min-width: 1024px) {
  .pm-letter-stage {
    padding: 0 2.5rem;
  }
}

@media (min-width: 960px) {
  .pm-letter-stage {
    grid-template-columns: minmax(0, 0.82fr) minmax(0, 1.18fr);
    gap: clamp(2.5rem, 5vw, 4.5rem);
  }
}

.pm-portrait {
  position: relative;
}

@media (min-width: 960px) {
  .pm-portrait {
    position: sticky;
    top: calc(var(--header-offset) + 1.5rem);
  }
}

.pm-portrait-frame {
  position: relative;
  margin: 0;
  isolation: isolate;
  overflow: hidden;
  border-radius: calc(var(--radius) + 0.15rem);
}

.pm-portrait-glow {
  position: absolute;
  inset: 12% 8% auto;
  height: 42%;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(var(--gold-rgb), 0.28), transparent 68%);
  pointer-events: none;
  z-index: 0;
}

.pm-portrait-frame img {
  position: relative;
  z-index: 1;
  width: 100%;
  height: 100%;
  object-fit: contain;
  object-position: center bottom;
  display: block;
  transform: scale(1.02);
  transition: transform 1.2s var(--ease-editorial);
}

.pm-portrait:hover .pm-portrait-frame img,
.pm-portrait:focus-within .pm-portrait-frame img {
  transform: scale(1.05);
}

.pm-identity {
  margin-top: 1.25rem;
  padding-top: 1rem;
  display: grid;
  justify-content: center;
}

.pm-identity .principal-name {
  margin: 0;
  font-family: var(--font-display);
  font-size: clamp(1.2rem, 2vw, 1.4rem);
  font-weight: 500;
  letter-spacing: -0.02em;
  color: var(--ink);
}

.pm-identity .principal-role {
  margin: 0.35rem 0 0;
  font-size: 0.92rem;
  line-height: 1.45;
  color: var(--muted-foreground);
}

.pm-letter-body {
  position: relative;
  padding: 0 0 0 2.25rem;
}

.pm-letter-body::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.35rem;
  bottom: 0.35rem;
  width: 2px;
  border-radius: 999px;
  background: linear-gradient(180deg, var(--gold), rgba(var(--gold-rgb), 0.12));
}

.pm-salutation {
  margin: 0 0 1.5rem !important;
  font-family: var(--font-display);
  font-size: clamp(1.45rem, 2.6vw, 1.95rem) !important;
  font-weight: 500;
  letter-spacing: -0.03em;
  line-height: 1.2 !important;
  color: var(--ink) !important;
}

.pm-letter-body p {
  margin: 0 0 1.25rem;
  font-size: clamp(1rem, 1.8vw, 1.1rem);
  line-height: 1.8;
  color: rgba(var(--ink-rgb), 0.78);
}

.pm-closing {
  margin-top: 1.75rem !important;
  font-family: var(--font-display);
  font-size: clamp(1.15rem, 1.8vw, 1.35rem) !important;
  font-weight: 500;
  letter-spacing: -0.02em;
  line-height: 1.35 !important;
  color: var(--ink) !important;
}

.pm-letter-actions {
  margin-top: 2rem;
}

.pm-letter-actions .solid-cta {
  margin-top: 0;
}

@media (max-width: 959px) {
  .pm-portrait-frame {
    margin-inline: auto;
  }

  .pm-identity {
    margin-inline: auto;
    text-align: center;
  }

  .pm-letter-body {
    padding-left: 1.1rem;
    max-width: none;
  }
}

@media (prefers-reduced-motion: reduce) {

  .pm-portrait-frame img,
  .pm-hero-wash img {
    transition: none !important;
    transform: none !important;
  }
}

/* --------------------------------------------------------------------------
   Leadership
   -------------------------------------------------------------------------- */
.leadership-page {
  --lead-motion: 0.55s var(--ease-editorial);
  --lead-card-radius: calc(var(--radius) + 0.15rem);
}

.lead-hero {
  position: relative;
  overflow: hidden;
  min-height: clamp(39.5rem, 62vh, 36rem);
}

.lead-hero-wash {
  position: absolute;
  inset: 0;
  z-index: 0;
}

.lead-hero-wash img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 25%;
  filter: saturate(0.88) contrast(1.02);
  transform: scale(1.04);
}

.lead-hero-veil {
  position: absolute;
  inset: 0;
  background:
  linear-gradient(180deg, rgba(var(--primary-rgb), 0.28) 0%, rgba(var(--primary-rgb), 0.72) 100%),
  linear-gradient(90deg, rgba(var(--primary-rgb), 0.45) 0%, transparent 55%)
}

.lead-hero-stage {
  position: relative;
  z-index: 1;
}

.lead-title {
  max-width: 14ch;
  color: var(--paper);
}

.lead-lede {
  max-width: 38rem;
}

.lead-roster-section {
  position: relative;
  background: var(--paper);
  color: var(--ink);
  padding: 4.5rem 0 6rem;
}

@media (min-width: 900px) {
  .lead-roster-section {
    padding: 5.5rem 0 7.5rem;
  }
}

.lead-roster-stage {
  width: min(1120px, calc(100% - 2.5rem));
  margin: 0 auto;
}

@media (min-width: 900px) {
  .lead-roster-stage {
    width: min(1180px, calc(100% - 4rem));
  }
}

.lead-roster-intro {
  max-width: 40rem;
  margin-bottom: 2.75rem;
}

.lead-roster-intro .section-heading {
  margin-top: 0.85rem;
}

.lead-grid {
  display: grid;
  gap: 1.15rem;
  grid-template-columns: 1fr;
}

@media (min-width: 640px) {
  .lead-grid {
    grid-template-columns: repeat(2, 1fr);
    gap: 1.25rem;
  }
}

@media (min-width: 960px) {
  .lead-grid {
    grid-template-columns: repeat(3, 1fr);
    gap: 1.4rem 1.35rem;
  }
}

@media (min-width: 1200px) {
  .lead-grid {
    grid-template-columns: repeat(3, 1fr);
  }
}

.lead-card {
  position: relative;
  display: flex;
  flex-direction: column;
  margin: 0;
  border-radius: var(--lead-card-radius);
  background: var(--paper-deep, #efe9df);
  border: 1px solid rgba(var(--ink-rgb), 0.07);
  overflow: hidden;
  isolation: isolate;
  transition:
    transform var(--lead-motion),
    box-shadow var(--lead-motion),
    border-color var(--lead-motion);
}

.lead-card::before {
  content: "";
  position: absolute;
  inset: 0 0 auto 0;
  height: 3px;
  background: linear-gradient(90deg, var(--gold), transparent 70%);
  opacity: 0;
  transition: opacity var(--lead-motion);
  z-index: 2;
}

.lead-card:hover,
.lead-card:focus-within {
  transform: translateY(-5px);
  border-color: rgba(var(--ink-rgb), 0.12);
  box-shadow: 0 28px 48px -30px rgba(var(--ink-rgb), 0.45);
}

.lead-card:hover::before,
.lead-card:focus-within::before {
  opacity: 1;
}

.lead-card.is-active {
  opacity: 0.45;
  transform: none;
  box-shadow: none;
  pointer-events: none;
}

.lead-card-media {
  position: relative;
  aspect-ratio: 4 / 5;
  overflow: hidden;
  background: rgba(var(--ink-rgb), 0.06);
}

.lead-card-media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 18%;
  display: block;
  transition: transform 0.85s var(--ease-editorial), filter 0.55s var(--ease-editorial);
}

.lead-card:hover .lead-card-media img,
.lead-card:focus-within .lead-card-media img {
  transform: scale(1.045);
  filter: saturate(1.04) contrast(1.02);
}

.lead-card-media--placeholder {
  display: grid;
  place-items: center;
  background:
    radial-gradient(circle at 30% 20%, rgba(var(--gold-rgb, 184, 148, 78), 0.28), transparent 55%),
    linear-gradient(160deg, rgba(var(--primary-rgb), 0.78), rgba(var(--primary-rgb), 0.55));
}

.lead-card-media--placeholder::after {
  content: attr(data-initials);
  font-size: clamp(2.4rem, 6vw, 3.4rem);
  font-weight: 500;
  letter-spacing: 0.08em;
  color: var(--paper);
  opacity: 0.92;
}

.lead-card-body {
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
  padding: 1.15rem 1.15rem 1.25rem;
  background: var(--paper);
  flex: 1;
}

.lead-card-name {
  margin: 0;
  font-size: 1.08rem;
  font-weight: 500;
  letter-spacing: -0.01em;
  line-height: 1.25;
  color: var(--ink);
}

.lead-card-role {
  margin: 0;
  font-size: 0.78rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--gold);
  line-height: 1.45;
}

.lead-card-cta {
  appearance: none;
  margin-top: auto;
  padding: 0.85rem 0 0.1rem;
  border: 0;
  background: none;
  color: var(--ink);
  font: inherit;
  font-size: 0.92rem;
  font-weight: 500;
  letter-spacing: 0.01em;
  text-align: left;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  width: fit-content;
  transition: color 0.3s var(--ease-editorial);
}

.lead-card-cta span {
  display: inline-block;
  transition: transform 0.35s var(--ease-editorial);
}

.lead-card-cta:hover,
.lead-card-cta:focus-visible {
  color: var(--primary, var(--ink));
  outline: none;
}

.lead-card-cta:hover span,
.lead-card-cta:focus-visible span {
  transform: translateX(4px);
}

.lead-card-cta:focus-visible {
  text-decoration: underline;
  text-underline-offset: 0.28em;
}

.lead-card-detail {
  display: none;
}

.lead-scrim {
  position: fixed;
  inset: 0;
  z-index: 80;
  background: rgba(var(--ink-rgb), 0.48);
  backdrop-filter: blur(6px);
  -webkit-backdrop-filter: blur(6px);
  opacity: 0;
  transition: opacity var(--lead-motion);
  cursor: pointer;
}

.lead-scrim.is-visible {
  opacity: 1;
}

.lead-focus {
  position: fixed;
  z-index: 90;
  inset: auto;
  width: min(920px, calc(100vw - 1.5rem));
  max-height: min(88vh, 760px);
  margin: 0;
  border-radius: calc(var(--radius) + 0.35rem);
  background: var(--paper);
  color: var(--ink);
  box-shadow: 0 40px 80px -36px rgba(var(--ink-rgb), 0.65);
  overflow: hidden;
  opacity: 0;
  transform: translate(-50%, -46%) scale(0.94);
  transform-origin: center center;
  transition:
    opacity var(--lead-motion),
    transform var(--lead-motion);
  left: 50%;
  top: 50%;
}

.lead-focus.is-visible {
  opacity: 1;
  transform: translate(-50%, -50%) scale(1);
}

.lead-focus-close {
  position: absolute;
  top: 0.85rem;
  right: 0.85rem;
  z-index: 3;
  width: 2.6rem;
  height: 2.6rem;
  border: 1px solid rgba(var(--ink-rgb), 0.12);
  border-radius: 999px;
  background: rgba(var(--paper-rgb, 247, 243, 236), 0.92);
  color: var(--ink);
  font-size: 1.55rem;
  line-height: 1;
  cursor: pointer;
  display: grid;
  place-items: center;
  transition: background 0.3s var(--ease-editorial), transform 0.3s var(--ease-editorial);
}

.lead-focus-close:hover,
.lead-focus-close:focus-visible {
  background: var(--paper);
  outline: none;
  transform: scale(1.04);
}

.lead-focus-close:focus-visible {
  box-shadow: 0 0 0 2px var(--paper), 0 0 0 4px var(--gold);
}

.lead-focus-shell {
  display: grid;
  grid-template-columns: 1fr;
  max-height: inherit;
  overflow: auto;
  overscroll-behavior: contain;
}

@media (min-width: 820px) {
  .lead-focus-shell {
    grid-template-columns: 1fr 1fr;
    overflow: hidden;
    max-height: min(88vh, 760px);
  }
}

.lead-focus-media {
  margin: 0;
  position: relative;
  min-height: 32rem;
  background: rgba(var(--ink-rgb), 0.08);
}

.lead-focus-media img {
  width: 100%;
  height: 100%;
  min-height: 16rem;
  object-fit: cover;
  object-position: center 15%;
  display: block;
}

@media (min-width: 820px) {

  .lead-focus-media,
  .lead-focus-media img {
    min-height: 100%;
    height: 100%;
    max-height: min(88vh, 760px);
  }
}

.lead-focus-media.is-placeholder {
  display: grid;
  place-items: center;
  background:
    radial-gradient(circle at 30% 20%, rgba(var(--gold-rgb, 184, 148, 78), 0.28), transparent 55%),
    linear-gradient(160deg, rgba(var(--primary-rgb), 0.78), rgba(var(--primary-rgb), 0.55));
}

.lead-focus-media.is-placeholder img {
  display: none;
}

.lead-focus-media.is-placeholder::after {
  content: attr(data-initials);
  font-size: clamp(3rem, 8vw, 4.5rem);
  font-weight: 500;
  letter-spacing: 0.08em;
  color: var(--paper);
}

.lead-focus-copy {
  padding: 2rem 1.5rem 1.75rem;
  display: flex;
  flex-direction: column;
  gap: 0.55rem;
}

@media (min-width: 820px) {
  .lead-focus-copy {
    padding: 2.6rem 2.4rem 2.2rem;
    overflow: auto;
    overscroll-behavior: contain;
  }
}

.lead-focus-kicker {
  margin: 0;
  font-size: 0.74rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--gold);
}

.lead-focus-name {
  margin: 0.15rem 0 0;
  font-size: clamp(1.55rem, 3.2vw, 2.15rem);
  font-weight: 500;
  letter-spacing: -0.02em;
  line-height: 1.15;
  max-width: 20ch;
}

.lead-focus-role {
  margin: 0;
  font-size: 0.92rem;
  color: rgba(var(--ink-rgb), 0.72);
  line-height: 1.45;
}

.lead-focus-body {
  margin-top: 0.85rem;
  display: grid;
  gap: 0.85rem;
}

.lead-focus-body:empty {
  display: none;
}

.lead-focus-body p {
  margin: 0;
  font-size: clamp(1rem, 1.8vw, 1.1rem);
  line-height: 1.65;
  color: rgba(var(--ink-rgb), 0.86);
}

.lead-detail-link {
  color: var(--ink);
  font-weight: 500;
  text-decoration: none;
  border-bottom: 1px solid rgba(var(--ink-rgb), 0.28);
  transition: border-color 0.3s var(--ease-editorial), color 0.3s var(--ease-editorial);
}

.lead-detail-link:hover,
.lead-detail-link:focus-visible {
  color: var(--primary, var(--ink));
  border-color: var(--gold);
  outline: none;
}

body.is-leader-open {
  overflow: hidden;
}

@media (prefers-reduced-motion: reduce) {

  .lead-card,
  .lead-card-media img,
  .lead-card-cta span,
  .lead-scrim,
  .lead-focus,
  .lead-focus-close {
    transition: none !important;
  }

  .lead-card:hover,
  .lead-card:focus-within {
    transform: none;
  }

  .lead-card:hover .lead-card-media img,
  .lead-card:focus-within .lead-card-media img {
    transform: none;
  }
}

/* --------------------------------------------------------------------------
   Facilities page
   -------------------------------------------------------------------------- */
.facilities-page {
  --fx-motion: 0.55s var(--ease-editorial);
}

.fx-hero {
  position: relative;
  overflow: hidden;
  min-height: clamp(39.5rem, 62vh, 36rem);
}

.fx-hero-wash {
  position: absolute;
  inset: 0;
  z-index: 0;
}

.fx-hero-wash img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 0%;
  transform: scale(1.05);
  filter: saturate(0.9) contrast(1.02);
}

.fx-hero-veil {
  position: absolute;
  inset: 0;
  background:
  linear-gradient(180deg, rgba(var(--primary-rgb), 0.28) 0%, rgba(var(--primary-rgb), 0.72) 100%),
  linear-gradient(90deg, rgba(var(--primary-rgb), 0.45) 0%, transparent 55%);
}

.fx-hero-stage {
  position: relative;
  z-index: 1;
}

.fx-title {
  max-width: 12ch;
  color: var(--paper)
}

/* Intro â€” editorial two-column */
.fx-intro {
  background: var(--primary-light);
  color: var(--ink);
  padding: 3.5rem 0 4.25rem;
  overflow: hidden;
}

@media (min-width: 900px) {
  .fx-intro {
    padding: 5rem 0 5.75rem;
  }
}

.fx-intro-stage {
  width: min(1180px, calc(100% - 2.5rem));
  margin: 0 auto;
  display: grid;
  gap: 1.75rem;
  align-items: center;
}

@media (min-width: 900px) {
  .fx-intro-stage {
    width: min(1180px, calc(100% - 4rem));
    grid-template-columns: minmax(0, 0.95fr) minmax(0, 1.05fr);
    gap: clamp(2.5rem, 5vw, 4.5rem);
  }
}

.fx-intro-media {
  margin: 0;
  position: relative;
  display: grid;
  justify-content: center;
}

.fx-intro-media-frame {
  position: relative;
  overflow: hidden;
  border-radius: calc(var(--radius) + 0.2rem);
  aspect-ratio: 4 / 5;
  background: rgba(var(--ink-rgb), 0.08);
  box-shadow: 0 28px 56px -36px rgba(var(--ink-rgb), 0.45);
  transform: translateY(1.25rem) scale(0.985);
  opacity: 0;
  transition:
    opacity 0.9s var(--ease-editorial),
    transform 0.9s var(--ease-editorial);
}

.fx-intro.is-inview .fx-intro-media-frame {
  opacity: 1;
  transform: translateY(0) scale(1);
}

.fx-intro-media-frame::after {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  background:
    linear-gradient(180deg, transparent 60%, rgba(var(--primary-rgb), 0.18) 100%),
    linear-gradient(90deg, rgba(var(--gold-rgb), 0.08), transparent 45%);
}

.fx-intro-media-frame img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 30%;
  display: block;
  transform: scale(1.08);
  transition: transform 1.4s var(--ease-editorial);
  will-change: transform;
}

.fx-intro.is-inview .fx-intro-media-frame img {
  transform: scale(1.02);
}

.fx-intro-content {
  display: grid;
  gap: 1.15rem;
  max-width: 34rem;
  opacity: 0;
  transform: translateY(1.1rem);
  transition:
    opacity 0.85s var(--ease-editorial) 0.12s,
    transform 0.85s var(--ease-editorial) 0.12s;
}

.fx-intro.is-inview .fx-intro-content {
  opacity: 1;
  transform: translateY(0);
}

@media (min-width: 900px) {
  .fx-intro-content {
    padding-top: 0.5rem;
  }
}

.fx-intro-copy {
  margin: 0;
  font-size: clamp(1.02rem, 2.2vw, 1.02rem);
  font-weight: 400;
  letter-spacing: -0.02em;
  line-height: 1.45;
}

.fx-intro-copy--second {
  color: rgba(var(--ink-rgb), 0.76);
  font-size: clamp(1rem, 1.8vw, 1.1rem);
  line-height: 1.55;
}

/* Our Facilities â€” categories + cards */
.fx-facilities {
  background: var(--paper);
  color: var(--ink);
  padding: 4rem 0 5rem;
  overflow-x: clip;
}

@media (min-width: 900px) {
  .fx-facilities {
    padding: 5rem 0 6rem;
  }
}

.fx-facilities-stage {
  width: min(1180px, calc(100% - 2.5rem));
  margin: 0 auto;
  min-width: 0;
  max-width: 100%;
  overflow-x: clip;
}

@media (min-width: 900px) {
  .fx-facilities-stage {
    width: min(1180px, calc(100% - 4rem));
  }
}

.fx-facilities-header {
  margin-bottom: clamp(2.25rem, 4vw, 3.25rem);
  max-width: 40ch;
}

.fx-categories.is-grid .fx-categories-viewport {
  overflow: visible;
  min-width: 0;
  max-width: 100%;
}

.fx-categories.is-grid .fx-categories-track {
  display: grid;
  gap: clamp(3rem, 6vw, 4.75rem);
  width: 100%;
  min-width: 0;
  max-width: 100%;
  transform: none !important;
}

.fx-category--carousel {
  min-width: 0;
  max-width: 100%;
}

.fx-categories.is-carousel {
  position: relative;
}

.fx-categories.is-carousel .fx-categories-viewport {
  overflow: hidden;
  margin: 0 -0.25rem;
  padding: 0.25rem;
  touch-action: pan-y;
  cursor: grab;
}

.fx-categories.is-carousel .fx-categories-viewport.is-dragging {
  cursor: grabbing;
}

.fx-categories.is-carousel .fx-categories-track {
  display: flex;
  gap: 1.25rem;
  width: max-content;
  will-change: transform;
  transition: transform 0.7s var(--ease-editorial);
}

.fx-categories.is-carousel .fx-category {
  flex: 0 0 min(88vw, 34rem);
  width: min(88vw, 34rem);
}

.fx-categories-nav:not([hidden]) {
  display: flex;
  gap: 0.55rem;
  margin-top: 1.35rem;
}

.fx-categories-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2.75rem;
  height: 2.75rem;
  margin: 0;
  padding: 0;
  border-radius: 999px;
  border: 1px solid rgba(var(--ink-rgb), 0.16);
  background: rgba(255, 255, 255, 0.72);
  color: var(--ink);
  font-size: 1rem;
  cursor: pointer;
  transition:
    background-color var(--fx-motion),
    border-color var(--fx-motion),
    color var(--fx-motion),
    transform var(--fx-motion);
}

.fx-categories-btn:hover,
.fx-categories-btn:focus-visible {
  background: var(--primary);
  border-color: var(--ink);
  color: var(--paper);
  transform: translateY(-1px);
  outline: none;
}

.fx-categories-btn:focus-visible {
  outline: 2px solid var(--primary);
  outline-offset: 3px;
}

.fx-category-header {
  margin-bottom: clamp(1.35rem, 3vw, 1.85rem);
  max-width: 40ch;
}

.fx-category-header--row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  max-width: none;
  flex-wrap: wrap;
}

.fx-category-header--row .fx-category-title {
  flex: 1 1 auto;
  min-width: 0;
}

.fx-category-num {
  margin: 0 0 0.55rem;
  font-size: 0.74rem;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--gold);
}

.fx-category-title {
  margin: 0;
  font-size: clamp(1.65rem, 3vw, 2.25rem);
  font-weight: 500;
  letter-spacing: -0.03em;
  line-height: 1.15;
}

.fx-card-nav {
  display: flex;
  gap: 0.55rem;
  flex-shrink: 0;
  justify-content: flex-end;
}

.fx-card-carousel .fx-card-nav {
  margin-top: 1rem;
}

.fx-card-nav-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2.75rem;
  height: 2.75rem;
  margin: 0;
  padding: 0;
  border-radius: 999px;
  border: 1px solid rgba(var(--ink-rgb), 0.16);
  background: rgba(255, 255, 255, 0.72);
  color: var(--ink);
  font-size: 1rem;
  cursor: pointer;
  transition:
    background-color var(--fx-motion),
    border-color var(--fx-motion),
    color var(--fx-motion),
    transform var(--fx-motion);
}

.fx-card-nav-btn:hover,
.fx-card-nav-btn:focus-visible {
  background: var(--primary);
  border-color: var(--ink);
  color: var(--paper);
  transform: translateY(-1px);
  outline: none;
}

.fx-card-nav-btn:focus-visible {
  outline: 2px solid var(--primary);
  outline-offset: 3px;
}

.fx-card-carousel {
  --fx-card-w: min(72vw, 16.5rem);
  position: relative;
  width: 100%;
  min-width: 0;
  max-width: 100%;
}

@media (min-width: 640px) {
  .fx-card-carousel {
    --fx-card-w: clamp(14.5rem, 25vw, 18rem);
  }
}

@media (min-width: 960px) {
  .fx-card-carousel {
    --fx-card-w: clamp(15rem, 22vw, 18rem);
  }
}

@media (min-width: 1200px) {
  .fx-card-carousel {
    --fx-card-w: clamp(15.5rem, 20vw, 20rem);
  }
}

.fx-card-viewport {
  position: relative;
  overflow: hidden;
  width: 100%;
  min-width: 0;
  max-width: 100%;
  margin: 0;
  padding: 0.4rem 0 0.55rem;
  contain: inline-size;
  touch-action: pan-y;
  cursor: grab;
  -webkit-user-select: none;
  user-select: none;
}

.fx-card-viewport.is-dragging {
  cursor: grabbing;
}

.fx-cards {
  display: grid;
  gap: 1.15rem;
  grid-template-columns: 1fr;
}

@media (min-width: 640px) {
  .fx-cards:not(.fx-cards--rail) {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1.25rem;
  }
}

@media (min-width: 960px) {
  .fx-cards:not(.fx-cards--rail) {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1.35rem;
  }
}

@media (min-width: 1200px) {
  .fx-cards:not(.fx-cards--rail) {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
}

.fx-cards--rail {
  display: flex;
  grid-template-columns: none;
  gap: clamp(0.85rem, 1.5vw, 1.15rem);
  width: max-content;
  will-change: transform;
  transform: translate3d(0, 0, 0);
}

.fx-cards--rail .fx-card {
  flex: 0 0 var(--fx-card-w);
  width: var(--fx-card-w);
}

.fx-cards--row {
  display: flex;
  flex-wrap: nowrap;
  grid-template-columns: none;
  gap: clamp(0.85rem, 1.5vw, 1.15rem);
  width: 100%;
  overflow: hidden;
}

.fx-cards--row .fx-card {
  flex: 1 1 0;
  min-width: 0;
  width: auto;
  max-width: none;
}

.fx-card {
  display: flex;
  flex-direction: column;
  margin: 0;
  border-radius: calc(var(--radius) + 0.1rem);
  background: var(--paper-deep);
  border: 1px solid rgba(var(--ink-rgb), 0.07);
  overflow: hidden;
  isolation: isolate;
  transition:
    transform var(--fx-motion),
    box-shadow var(--fx-motion),
    border-color var(--fx-motion);
}

.fx-card:hover,
.fx-card:focus-within {
  transform: translateY(-4px);
  border-color: rgba(var(--ink-rgb), 0.12);
  box-shadow: 0 26px 44px -30px rgba(var(--ink-rgb), 0.45);
}

.fx-card--feature {
  box-shadow: inset 0 0 0 1px rgba(var(--gold-rgb), 0.28);
}

.fx-card-media {
  position: relative;
  margin: 0;
  aspect-ratio: 4 / 5;
  overflow: hidden;
  background: rgba(var(--ink-rgb), 0.08);
}

.fx-card-media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 25%;
  display: block;
  transform: scale(1.03);
  transition: transform 1s var(--ease-editorial);
}

.fx-card-veil {
  position: absolute;
  inset: 0;
  pointer-events: none;
  background: linear-gradient(180deg, transparent 45%, rgba(var(--primary-rgb), 0.28) 100%);
  opacity: 0.55;
  transition: opacity var(--fx-motion);
}

.fx-card:hover .fx-card-media img,
.fx-card:focus-within .fx-card-media img {
  transform: scale(1.09);
}

.fx-card:hover .fx-card-veil,
.fx-card:focus-within .fx-card-veil {
  opacity: 0.85;
}

.fx-card-body {
  display: grid;
  gap: 0.35rem;
  padding: 1.05rem 1.05rem 1.2rem;
  background: var(--primary);
  flex: 1;
}

.fx-card-title {
  margin: 0;
  font-size: clamp(0.98rem, 1.35vw, 1.08rem);
  font-weight: 500;
  letter-spacing: -0.015em;
  line-height: 1.35;
  color: var(--paper);
}

.fx-first {
  position: relative;
  overflow: hidden;
  background: var(--primary);
  color: var(--paper);
  padding: 0;
}

.fx-first-stage {
  position: relative;
  display: block;
  min-height: 100%;
}

@media (min-width: 900px) {
  .fx-first-stage {
    min-height: 75dvh;
  }
}

.fx-first-media {
  position: absolute;
  inset: 0;
  margin: 0;
  overflow: hidden;
}

.fx-first-media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 0%;
  display: block;
  filter: saturate(0.92) contrast(1.04);
  transform: scale(1.06);
  transition: transform 1.4s var(--ease-editorial);
}

.fx-first.is-inview .fx-first-media img {
  transform: scale(1.02);
}

.fx-first-media-veil {
  position: absolute;
  inset: 0;
  background: linear-gradient(
    180deg,
    rgba(var(--primary-rgb), 0.08) 0%,
    rgba(var(--primary-rgb), 0.14) 30%,
    rgba(var(--ink-rgb), 0.72) 54%,
    rgba(var(--ink-rgb), 0.9) 100%
  );
  pointer-events: none;
}

.fx-first-copy {
  position: relative;
  z-index: 1;
  display: flex;
  flex-direction: column;
  gap: 2rem;
  align-items: flex-start;
  justify-content: center;
  box-sizing: border-box;
  width: min(1180px, calc(100% - 2.5rem));
  min-height: clamp(28rem, 86vw, 34rem);
  margin: 0 auto;
  padding: 5rem 0 clamp(1.85rem, 4vw, 2.75rem);
  background: transparent;
}

@media (min-width: 900px) {
  .fx-first-copy {
    width: min(1180px, calc(100% - 4rem));
    min-height: clamp(26rem, 40vw, 34rem);
    padding-bottom: clamp(2.5rem, 4.5vw, 3.5rem);
  }
}

.fx-first-heading {
  margin: 0;
  max-width: min(36rem, 100%);
  font-size: clamp(1.65rem, 3vw, 2.25rem);
  font-weight: 500;
  letter-spacing: -0.025em;
  line-height: 1.45;
  color: var(--paper);
  text-shadow: 0 1px 2px rgba(var(--ink-rgb), 0.45);
}

.fx-first-text {
  margin: 0;
  max-width: min(42rem, 100%);
  font-size: clamp(1rem, 1.8vw, 1.1rem);
  font-weight: 400;
  letter-spacing: -0.025em;
  line-height: 1.45;
  color: rgba(255, 255, 255, 0.75);
  text-shadow: 0 1px 2px rgba(var(--ink-rgb), 0.45);
}

@media (prefers-reduced-motion: reduce) {

  .fx-intro-media-frame,
  .fx-intro-content,
  .fx-intro-media-frame img,
  .fx-card,
  .fx-card-media img,
  .fx-card-veil,
  .fx-categories-btn,
  .fx-card-nav-btn,
  .fx-categories.is-carousel .fx-categories-track,
  .fx-cards--rail,
  .fx-first-media img {
    transition: none !important;
  }

  .fx-intro-media-frame,
  .fx-intro-content,
  .fx-intro.is-inview .fx-intro-media-frame,
  .fx-intro.is-inview .fx-intro-content {
    opacity: 1;
    transform: none;
  }

  .fx-intro.is-inview .fx-intro-media-frame img,
  .fx-card:hover .fx-card-media img,
  .fx-card:focus-within .fx-card-media img,
  .fx-card:hover,
  .fx-card:focus-within,
  .fx-first.is-inview .fx-first-media img {
    transform: none;
  }

  .fx-cards--rail {
    will-change: auto;
  }
}

/* --------------------------------------------------------------------------
   Accreditations page
   -------------------------------------------------------------------------- */
.accr-page {
  --accr-motion: 0.55s var(--ease-editorial);
}

.accr-hero {
  position: relative;
  overflow: hidden;
  min-height: clamp(39.5rem, 62vh, 36rem);
}

.accr-hero-wash {
  position: absolute;
  inset: 0;
  z-index: 0;
}

.accr-hero-wash img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 0%;
  transform: scale(1.05);
  filter: saturate(0.9) contrast(1.02);
}

.accr-hero-veil {
  position: absolute;
  inset: 0;
  background:
  linear-gradient(180deg, rgba(var(--primary-rgb), 0.28) 0%, rgba(var(--primary-rgb), 0.72) 100%),
  linear-gradient(90deg, rgba(var(--primary-rgb), 0.45) 0%, transparent 55%);
}

.accr-hero-stage {
  position: relative;
  z-index: 1;
}

.accr-title {
  max-width: 14ch;
  color: var(--paper);
}

.accr-intro {
  background: var(--primary-light);
  color: var(--ink);
  padding: 3.75rem 0 4.25rem;
}

@media (min-width: 900px) {
  .accr-intro {
    padding: 5rem 0 5.5rem;
  }
}

.accr-intro-stage {
  width: min(1120px, calc(100% - 2.5rem));
  margin: 0 auto 2rem;
  display: grid;
  gap: 1.5rem;
}

@media (min-width: 900px) {
  .accr-intro-stage {
    width: min(1180px, calc(100% - 4rem));
    grid-template-columns: minmax(0, 0.95fr) minmax(0, 1.05fr);
    gap: clamp(2rem, 5vw, 4.5rem);
    align-items: end;
  }
}

.accr-intro-lead .section-heading {
  margin-top: 0.85rem;
  max-width: 14ch;
  color: var(--paper);
}

.accr-lede {
  margin: 0;
  font-size: clamp(1rem, 1.8vw, 1.1rem);
  font-weight: 450;
  letter-spacing: -0.02em;
  line-height: 1.5;
  color: rgba(var(--paper-rgb), 0.72);
}

.accr-stats {
  background: var(--primary);
  color: var(--paper);
  padding: 3.5rem 0;
}

@media (min-width: 900px) {
  .accr-stats {
    padding: 4.25rem 0;
  }
}

.accr-stats-stage {
  width: min(1120px, calc(100% - 2.5rem));
  margin: 0 auto;
}

@media (min-width: 900px) {
  .accr-stats-stage {
    width: min(1180px, calc(100% - 4rem));
  }
}

.accr-stats-kicker {
  margin: 0 0 1.75rem;
  font-size: clamp(1rem, 1.8vw, 1.1rem);
  line-height: 1.5;
  color: rgba(255, 255, 255, 0.72);
  max-width: 42ch;
}

.accr-stats-grid {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 1.15rem;
  grid-template-columns: 1fr 1fr;
}

@media (min-width: 900px) {
  .accr-stats-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 1.35rem;
  }
}

.accr-stat {
  padding: 1.25rem 1.15rem 1.35rem;
  border-top: 1px solid rgba(255, 255, 255, 0.18);
  opacity: 0;
  transform: translateY(0.85rem);
  transition:
    opacity 0.65s var(--ease-editorial),
    transform 0.65s var(--ease-editorial);
  transition-delay: calc(var(--i, 0) * 70ms);
}

.accr-stats.is-inview .accr-stat,
.accr-stat.visible {
  opacity: 1;
  transform: translateY(0);
}

.accr-stat-value {
  margin: 0;
  font-size: clamp(2.2rem, 4.5vw, 3.2rem);
  font-weight: 500;
  letter-spacing: -0.04em;
  line-height: 1;
}

.accr-stat-label {
  margin: 0.75rem 0 0;
  font-size: 0.9rem;
  line-height: 1.45;
  color: rgba(255, 255, 255, 0.72);
}

.accr-features {
  background: var(--paper);
  color: var(--ink);
  padding: 4.5rem 0 5rem;
}

@media (min-width: 900px) {
  .accr-features {
    padding: 5.5rem 0 6rem;
  }
}

.accr-features-stage {
  width: min(1180px, calc(100% - 4rem));
  margin: 0 auto;
}

@media (min-width: 900px) {
  .accr-features-stage {
    width: min(1180px, calc(100% - 4rem));
  }
}

.accr-features-header {
  margin-bottom: 2.25rem;
}

.accr-features-lede {
  margin-top: 0.85rem;
}

.accr-feature-list {
  list-style: circle;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 0;
}

.accr-feature {
  display: grid;
  grid-template-columns: 2.5rem minmax(0, 1fr);
  gap: 1rem;
  padding: 1.35rem 0;
  border-top: 1px solid rgba(var(--ink-rgb), 0.1);
}

.accr-feature:last-child {
  border-bottom: 1px solid rgba(var(--ink-rgb), 0.1);
}

.accr-feature-index {
  font-size: 0.7rem;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--gold);
  padding-top: 0.2rem;
}

.accr-feature-text {
  margin: 0;
  font-size: clamp(1rem, 1.8vw, 1.1rem);
  line-height: 1.65;
  color: rgba(var(--ink-rgb), 0.86);
}

.accr-journey {
  background: var(--primary-light);
  color: var(--ink);
  padding: 4.5rem 0 5rem;
  overflow: hidden;
}

@media (min-width: 900px) {
  .accr-journey {
    padding: 5.5rem 0 6rem;
  }
}

.accr-journey-stage {
  width: min(1120px, calc(100% - 2.5rem));
  margin: 0 auto;
  display: grid;
  gap: 1.75rem;
  align-items: center;
}

@media (min-width: 900px) {
  .accr-journey-stage {
    width: min(1180px, calc(100% - 4rem));
    grid-template-columns: minmax(0, 0.95fr) minmax(0, 1.05fr);
    gap: clamp(2.5rem, 5vw, 4.5rem);
  }
}

.accr-journey-media {
  margin: 0;
}

.accr-journey-frame {
  margin: 0;
  overflow: hidden;
  border-radius: calc(var(--radius) + 0.15rem);
  aspect-ratio: 5 / 4;
  background: rgba(var(--ink-rgb), 0.08);
}

.accr-journey-frame img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transform: scale(1.04);
  transition: transform 1.2s var(--ease-editorial);
}

.accr-journey.is-inview .accr-journey-frame img {
  transform: scale(1);
}

.accr-journey-copy .section-heading {
  margin-top: 0.75rem;
  max-width: 16ch;
}

.accr-journey-copy .section-copy+.section-copy {
  margin-top: 0.85rem;
}

.accr-timeline-wrap {
  width: min(1180px, calc(100% - 2.5rem));
  margin: clamp(2.5rem, 5vw, 3.5rem) auto 0;
  overflow-x: auto;
  padding-bottom: 0.35rem;
  scrollbar-width: thin;
}

@media (min-width: 900px) {
  .accr-timeline-wrap {
    width: min(1180px, calc(100% - 4rem));
  }
}

.accr-timeline {
  display: flex;
  gap: 0.85rem;
  width: max-content;
  min-width: 100%;
}

@media (min-width: 1100px) {
  .accr-timeline {
    width: 100%;
    display: grid;
    grid-template-columns: repeat(8, minmax(0, 1fr));
    gap: 0.75rem;
  }
}

.accr-timeline-item {
  flex: 0 0 8.5rem;
  padding: 1rem 0.85rem 1.1rem;
  border-top: 2px solid rgba(var(--ink-rgb), 0.12);
  background: transparent;
}

.accr-timeline-year {
  margin: 0;
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: rgba(var(--ink-rgb), 0.55);
}

.accr-timeline-rating {
  margin: 0.55rem 0 0;
  font-size: 1rem;
  font-weight: 500;
  letter-spacing: -0.01em;
  color: var(--ink);
}

.accr-timeline-rating--rise,
.accr-timeline-rating--current {
  color: var(--gold);
}

.accr-timeline-item:has(.accr-timeline-rating--current) {
  border-top-color: var(--gold);
}

.accr-marks {
  background: var(--paper);
  color: var(--ink);
  padding: 4.5rem 0 5.5rem;
}

@media (min-width: 900px) {
  .accr-marks {
    padding: 5.5rem 0 6.5rem;
  }
}

.accr-marks-stage {
  width: min(1120px, calc(100% - 2.5rem));
  margin: 0 auto;
}

@media (min-width: 900px) {
  .accr-marks-stage {
    width: min(1180px, calc(100% - 4rem));
  }
}

.accr-marks-header {
  margin-bottom: clamp(2.25rem, 4vw, 3.25rem);
}

.accr-marks-lede {
  margin-top: 0.9rem;
}

.accr-marks-list {
  display: grid;
  gap: clamp(2rem, 4vw, 3.25rem);
}

.accr-mark {
  display: grid;
  gap: 1.25rem;
  align-items: center;
  margin: 0;
}

@media (min-width: 860px) {
  .accr-mark {
    grid-template-columns: minmax(0, 0.95fr) minmax(0, 1.05fr);
    gap: clamp(2.5rem, 5vw, 4.5rem);
  }

  .accr-mark--flip .accr-mark-media {
    order: 2;
  }

  .accr-mark--flip .accr-mark-body {
    order: 1;
  }
}

.accr-mark-media {
  position: relative;
  margin: 0;
  overflow: hidden;
  border-radius: calc(var(--radius) + 0.12rem);
  aspect-ratio: 5 / 4;
  background: rgba(var(--ink-rgb), 0.08);
}

.accr-mark-media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transform: scale(1.03);
  transition: transform 1s var(--ease-editorial);
}

.accr-mark-veil {
  position: absolute;
  inset: 0;
  pointer-events: none;
  background: linear-gradient(180deg, transparent 50%, rgba(var(--primary-rgb), 0.28) 100%);
}

.accr-mark-seal {
  position: absolute;
  top: 1rem;
  left: 1rem;
  z-index: 1;
  width: 3.5rem;
  height: 3.5rem;
  display: grid;
  place-items: center;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.92);
  box-shadow: 0 10px 24px -14px rgba(var(--ink-rgb), 0.45);
}

.accr-mark-seal img {
  width: 2.15rem;
  height: 2.15rem;
  object-fit: contain;
  transform: none;
}

.accr-mark-seal--light {
  background: rgba(255, 255, 255, 0.96);
}

.accr-mark:hover .accr-mark-media img,
.accr-mark:focus-within .accr-mark-media img {
  transform: scale(1.08);
}

.accr-mark-body {
  display: grid;
  gap: 0.55rem;
}

.accr-mark-index {
  margin: 0;
  font-size: 0.7rem;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--gold);
}

.accr-mark-title {
  margin: 0;
  font-size: clamp(1.45rem, 2.6vw, 1.9rem);
  font-weight: 500;
  letter-spacing: -0.03em;
  line-height: 1.15;
}

.accr-mark-copy {
  margin: 0;
  font-size: clamp(1rem, 1.8vw, 1.1rem);
  line-height: 1.65;
  color: rgba(var(--ink-rgb), 0.78);
  max-width: 38ch;
}

.accr-continue {
  background: var(--primary-light);
  color: var(--ink);
  padding: 4rem 0 5rem;
}

.accr-continue-stage {
  width: min(920px, calc(100% - 2.5rem));
  margin: 0 auto;
}

@media (min-width: 900px) {
  .accr-continue-stage {
    width: min(980px, calc(100% - 4rem));
  }
}

.accr-continue .section-heading {
  margin-top: 0.75rem;
  max-width: 18ch;
}

.accr-continue-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.85rem 1.25rem;
  align-items: center;
  margin-top: 1.5rem;
}

@media (prefers-reduced-motion: reduce) {

  .accr-stat,
  .accr-journey-frame img,
  .accr-mark-media img {
    transition: none !important;
  }

  .accr-stat,
  .accr-stats.is-inview .accr-stat,
  .accr-journey.is-inview .accr-journey-frame img {
    opacity: 1;
    transform: none;
  }

  .accr-mark:hover .accr-mark-media img,
  .accr-mark:focus-within .accr-mark-media img {
    transform: none;
  }
}

/* --------------------------------------------------------------------------
   Credential wall
   -------------------------------------------------------------------------- */
.cred-wall {
  display: grid;
  gap: 1rem;
}

@media (min-width: 800px) {
  .cred-wall {
    grid-template-columns: 1.2fr 1fr;
  }
}

.cred-tile {
  padding: 1.75rem 1.5rem;
  border-radius: calc(var(--radius) + 0.15rem);
  border: 1px solid rgba(255, 255, 255, 0.12);
  background: rgba(255, 255, 255, 0.04);
  min-height: 14rem;
}

.cred-tile--wide {
  grid-column: 1 / -1;
}

.cred-tile b {
  display: block;
  font-size: clamp(1.6rem, 3vw, 2.4rem);
  font-weight: 500;
  color: var(--gold-whisper);
  margin-bottom: 0.6rem;
}

.cred-tile p {
  margin: 0;
  color: rgba(255, 255, 255, 0.68);
  line-height: 1.6;
}

/* --------------------------------------------------------------------------
   Curriculum spine
   -------------------------------------------------------------------------- */
.curr-spine {
  display: grid;
  gap: 0;
  position: relative;
}

.curr-node {
  display: grid;
  gap: 0.75rem;
  padding: 2rem 0;
  border-top: 1px solid rgba(var(--ink-rgb), 0.1);
}

@media (min-width: 900px) {
  .curr-node {
    grid-template-columns: 7rem 1fr auto;
    align-items: center;
    gap: 2rem;
  }
}

.curr-node em {
  font-style: normal;
  font-size: 0.72rem;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--gold);
}

.curr-node a {
  color: var(--primary);
  font-weight: 600;
  font-size: 0.88rem;
}

/* --------------------------------------------------------------------------
   Day in the life
   -------------------------------------------------------------------------- */
.day-rail {
  display: grid;
  gap: 1rem;
}

@media (min-width: 800px) {
  .day-rail {
    grid-template-columns: repeat(4, 1fr);
  }
}

.day-beat {
  padding: 1.35rem 1.2rem;
  border-radius: var(--radius);
  background: var(--paper);
  border-top: 3px solid var(--gold);
}

.day-beat time {
  display: block;
  font-size: 0.72rem;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--primary);
  margin-bottom: 0.55rem;
}

/* --------------------------------------------------------------------------
   Dual pathway
   -------------------------------------------------------------------------- */
.dual-path {
  display: grid;
  gap: 1.25rem;
}

@media (min-width: 800px) {
  .dual-path {
    grid-template-columns: 1fr 1fr;
  }
}

.path-panel {
  padding: 2rem 1.6rem;
  border-radius: calc(var(--radius) + 0.15rem);
  min-height: 18rem;
}

.path-panel--ink {
  background: var(--primary);
  color: var(--paper);
}

.path-panel--paper {
  background: var(--paper);
  border: 1px solid rgba(var(--ink-rgb), 0.1);
}

.path-panel h3 {
  margin: 0.4rem 0 0.8rem;
  font-size: 1.8rem;
}

/* --------------------------------------------------------------------------
   Mosaic / magazine
   -------------------------------------------------------------------------- */
.life-mosaic {
  display: grid;
  gap: 0.9rem;
}

@media (min-width: 800px) {
  .life-mosaic {
    grid-template-columns: 1.4fr 1fr 1fr;
    grid-template-rows: 16rem 16rem;
  }

  .life-mosaic article:first-child {
    grid-row: 1 / 3;
  }
}

.life-mosaic article {
  position: relative;
  overflow: hidden;
  border-radius: var(--radius);
  min-height: 14rem;
  color: var(--paper);
}

.life-mosaic img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  position: absolute;
  inset: 0;
}

.life-mosaic div {
  position: absolute;
  inset: auto 0 0;
  padding: 1.2rem;
  background: linear-gradient(transparent, rgba(var(--primary-rgb), 0.82));
}

/* --------------------------------------------------------------------------
   Sports kinetic + arts masonry
   -------------------------------------------------------------------------- */
.sport-list {
  display: grid;
  gap: 0;
}

.sport-row {
  display: grid;
  grid-template-columns: auto 1fr auto;
  gap: 1rem;
  align-items: center;
  padding: 1.05rem 0;
  border-bottom: 1px solid rgba(255, 255, 255, 0.12);
}

.arts-masonry {
  columns: 1;
  gap: 1rem;
}

@media (min-width: 700px) {
  .arts-masonry {
    columns: 2;
  }
}

@media (min-width: 1100px) {
  .arts-masonry {
    columns: 3;
  }
}

.arts-masonry figure {
  break-inside: avoid;
  margin: 0 0 1rem;
  position: relative;
  overflow: hidden;
  border-radius: var(--radius);
}

.arts-masonry img {
  width: 100%;
  height: auto;
}

.arts-masonry figcaption {
  position: absolute;
  inset: auto 0 0;
  padding: 0.9rem 1rem;
  color: var(--paper);
  background: linear-gradient(transparent, rgba(var(--primary-rgb), 0.75));
}

/* --------------------------------------------------------------------------
   Outcomes prestige
   -------------------------------------------------------------------------- */
.stat-band {
  display: grid;
  gap: 1.5rem;
  padding-bottom: 2.5rem;
  border-bottom: 1px solid rgba(255, 255, 255, 0.12);
}

@media (min-width: 800px) {
  .stat-band {
    grid-template-columns: repeat(4, 1fr);
  }
}

.stat-band b {
  display: block;
  font-size: clamp(2rem, 4vw, 3.1rem);
  font-weight: 500;
  color: var(--gold-whisper);
}

.stat-band span {
  display: block;
  margin-top: 0.4rem;
  font-size: 0.76rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.5);
}

.dest-cloud {
  display: flex;
  flex-wrap: wrap;
  gap: 0.65rem;
  margin-top: 1.5rem;
}

.dest-cloud span {
  padding: 0.45rem 0.85rem;
  border-radius: 999px;
  border: 1px solid rgba(255, 255, 255, 0.16);
  color: rgba(255, 255, 255, 0.82);
  font-size: 0.9rem;
}

/* --------------------------------------------------------------------------
   Admissions steps
   -------------------------------------------------------------------------- */
.admit-steps {
  counter-reset: step;
  display: grid;
  gap: 1rem;
}

.admit-step {
  counter-increment: step;
  display: grid;
  gap: 0.5rem;
  padding: 1.5rem 1.4rem 1.5rem 4.5rem;
  border-radius: var(--radius);
  background: var(--paper);
  position: relative;
}

.admit-step::before {
  content: counter(step, decimal-leading-zero);
  position: absolute;
  left: 1.15rem;
  top: 1.45rem;
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.14em;
  color: var(--gold);
}

/* --------------------------------------------------------------------------
   Contact
   -------------------------------------------------------------------------- */
.contact-split {
  display: grid;
  gap: 2rem;
}

@media (min-width: 900px) {
  .contact-split {
    grid-template-columns: 1.05fr 0.95fr;
  }
}

.contact-map {
  min-height: 22rem;
  border-radius: calc(var(--radius) + 0.15rem);
  overflow: hidden;
  background: var(--primary);
}


.contact-map iframe {
  width: 100%;
  height: 100%;
  min-height: 22rem;
  border: 0;
  filter: grayscale(0.35) contrast(1.05);
}

.contact-list{
  margin-bottom: 1.15rem;
}


.contact-list dt {
  font-size: 0.7rem;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--gold);
  margin-top: 1.15rem;
}

.contact-list dd {
  margin: 0.25rem 0 0;
  font-size: 1.05rem;
}

/* --------------------------------------------------------------------------
   News
   -------------------------------------------------------------------------- */
.news-feature {
  display: grid;
  gap: 1.5rem;
}

@media (min-width: 900px) {
  .news-feature {
    grid-template-columns: 1.25fr 0.75fr;
  }
}

.news-feature img {
  width: 100%;
  height: 100%;
  min-height: 18rem;
  object-fit: cover;
  border-radius: var(--radius);
}

.news-list {
  display: grid;
  gap: 0;
}

.news-row {
  display: grid;
  gap: 0.35rem;
  padding: 1.25rem 0;
  border-bottom: 1px solid rgba(var(--ink-rgb), 0.1);
}

.news-row time {
  font-size: 0.72rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--gold);
}

/* --------------------------------------------------------------------------
   Careers + policy
   -------------------------------------------------------------------------- */
.job-list {
  display: grid;
  gap: 0.85rem;
}

.job-row {
  display: grid;
  gap: 0.35rem;
  padding: 1.25rem 1.3rem;
  border-radius: var(--radius);
  background: var(--paper);
  border: 1px solid rgba(var(--ink-rgb), 0.08);
}

@media (min-width: 800px) {
  .job-row {
    grid-template-columns: 1fr auto;
    align-items: center;
  }
}

.policy-prose {
  max-width: 1400px;
}

.policy-prose p {
  font-size: 1.05rem;
  line-height: 1.75;
  color: rgba(var(--ink-rgb), 0.78);
}

.policy-prose h2 {
  margin: 2.5rem 0 0.8rem;
  font-size: 1.6rem;
}

/* --------------------------------------------------------------------------
   Enquiry reuse on inner pages
   -------------------------------------------------------------------------- */
#enquire,
#tour,
#fees,
#calendar,
#transport,
#contacts,
#terms,
#welcome,
#why-akis,
#vision,
#campus,
#team,
#accreditations,
#labs,
#sports,
#arts,
#facilities-list,
#middle,
#high {
  scroll-margin-top: 7rem;
}

/* --------------------------------------------------------------------------
   Academics pages (acad-)
   -------------------------------------------------------------------------- */
.acad-page {
  background: var(--primary-light);
  color: var(--ink);
}

.acad-hero {
  position: relative;
  overflow: hidden;
  min-height: clamp(39.5rem, 62vh, 36rem);
}

.acad-hero-wash {
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
}

.acad-hero-wash img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 0%;
  transform: scale(1.06);
filter: saturate(0.92) contrast(1.02);
}

.acad-hero-veil {
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(var(--primary-rgb), 0.28) 0%, rgba(var(--primary-rgb), 0.72) 100%),
  linear-gradient(90deg, rgba(var(--primary-rgb), 0.45) 0%, transparent 55%);
}

.acad-hero-stage {
  position: relative;
  z-index: 1;
}

.acad-title {
  max-width: 14ch;
  color: var(--paper);
}

.acad-title--wide {
  max-width: 16ch;
}

.acad-journey {
  position: sticky;
  top: calc(var(--header-offset) + 3.15rem);
  z-index: 28;
  background: rgba(255, 255, 255, 0.94);
  backdrop-filter: blur(14px);
  border-bottom: 1px solid rgba(var(--ink-rgb), 0.08);
}

.acad-journey-stage {
  width: min(1180px, calc(100% - 2.5rem));
  margin: 0 auto;
  padding: 0.85rem 0;
  display: grid;
  gap: 0.65rem;
}

@media (min-width: 900px) {
  .acad-journey-stage {
    width: min(1180px, calc(100% - 4rem));
    grid-template-columns: auto 1fr;
    align-items: center;
    gap: 1.5rem;
  }
}

.acad-journey-label {
  margin: 0;
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--primary);
  white-space: nowrap;
}

.acad-journey-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  gap: 0.35rem;
  overflow-x: auto;
  scrollbar-width: thin;
}

.acad-journey-list a {
  display: inline-flex;
  align-items: center;
  padding: 0.4rem 0.65rem;
  font-size: 0.84rem;
  font-weight: 500;
  color: rgba(var(--ink-rgb), 0.72);
  text-decoration: none;
  white-space: nowrap;
  border-bottom: 2px solid transparent;
  transition: color 0.2s ease, border-color 0.2s ease;
}

.acad-journey-list a:hover,
.acad-journey-list a:focus-visible {
  color: var(--primary);
  border-bottom-color: var(--gold);
  outline: none;
}

.acad-section-stage {
  width: min(1180px, calc(100% - 2.5rem));
  margin: 0 auto;
}

@media (min-width: 900px) {
  .acad-section-stage {
    width: min(1180px, calc(100% - 4rem));
  }
}

.acad-section-header {
  max-width: 62ch;
  margin-bottom: 1.75rem;
}

.acad-intro {
  background: var(--primary-light);
  padding: 3.25rem 0 3.75rem;
  overflow: hidden;
}

@media (min-width: 900px) {
  .acad-intro {
    padding: 4.75rem 0 5.25rem;
  }
}

.acad-intro-stage {
  width: min(1180px, calc(100% - 2.5rem));
  margin: 0 auto;
  display: grid;
  gap: 1.75rem;
  align-items: center;
}

@media (min-width: 900px) {
  .acad-intro-stage {
    width: min(1180px, calc(100% - 4rem));
    grid-template-columns: minmax(0, 0.92fr) minmax(0, 1.08fr);
    gap: clamp(2.25rem, 5vw, 4.25rem);
  }
}

.acad-intro-media {
  margin: 0;
}

.acad-intro-media-frame {
  position: relative;
  overflow: hidden;
  border-radius: calc(var(--radius) + 0.15rem);
  aspect-ratio: 4 / 5;
  background: var(--primary);
  will-change: transform;
}

.acad-intro-media-frame img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transform: scale(1.04);
  transition: transform 1.1s var(--ease-editorial, cubic-bezier(0.22, 1, 0.36, 1));
}

.acad-intro.is-inview .acad-intro-media-frame img {
  transform: scale(1);
}

.acad-intro-content {
  opacity: 0;
  transform: translate3d(0, 18px, 0);
  transition: opacity 0.7s ease, transform 0.7s var(--ease-editorial, cubic-bezier(0.22, 1, 0.36, 1));
}

.acad-intro.is-inview .acad-intro-content {
  opacity: 1;
  transform: none;
}

.acad-lede {
  margin: 2rem 0 0 0;
  font-size: clamp(1rem, 1.8vw, 1.1rem);
  line-height: 1.7;
  color: rgba(var(--ink-rgb), 0.82);
}

.acad-lede--second {
  margin-top: 1rem;
}

.acad-accordion-section,
.acad-assess,
.acad-bilingual,
.acad-prose-section,
.acad-table-section,
.acad-tabs-section,
.acad-destinations,
.acad-stats {
  padding: 3rem 0 3.75rem;
}

@media (min-width: 900px) {

  .acad-accordion-section,
  .acad-assess,
  .acad-bilingual,
  .acad-prose-section,
  .acad-table-section,
  .acad-tabs-section,
  .acad-destinations,
  .acad-stats {
    padding: 4rem 0 5rem;
  }
}

.acad-prose-section--alt {
  background: rgba(255, 255, 255, 0.55);
}

.acad-accordion {
  display: grid;
  gap: 0.55rem;
}

.acad-acc-item {
  border: 1px solid rgba(var(--ink-rgb), 0.1);
  border-radius: var(--radius);
  background: rgba(255, 255, 255, 0.72);
  overflow: hidden;
}

.acad-acc-summary {
  cursor: pointer;
  list-style: none;
  padding: 1.05rem 1.2rem;
  font-size: 1.02rem;
  font-weight: 600;
  letter-spacing: -0.01em;
}

.acad-acc-summary::-webkit-details-marker {
  display: none;
}

.acad-acc-summary::after {
  content: "+";
  float: right;
  color: var(--primary);
  font-weight: 500;
}

.acad-acc-item[open] .acad-acc-summary::after {
  content: "–";
}

.acad-acc-panel {
  padding: 0 1.2rem 1.15rem;
}

.acad-acc-panel p {
  margin: 0 0 0.75rem;
  font-size: 1rem;
  line-height: 1.7;
  color: rgba(var(--ink-rgb), 0.78);
}

.acad-acc-panel p:last-child {
  margin-bottom: 0;
}

.acad-measure-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 0;
  counter-reset: acad-measure;
  border-top: 1px solid rgba(var(--ink-rgb), 0.1);
}

.acad-measure {
  counter-increment: acad-measure;
  display: grid;
  gap: 0.35rem 1.25rem;
  padding: 1.25rem 0;
  border-bottom: 1px solid rgba(var(--ink-rgb), 0.1);
}

@media (min-width: 800px) {
  .acad-measure {
    grid-template-columns: 2.5rem minmax(0, 1fr);
    align-items: start;
  }
}

.acad-measure::before {
  content: counter(acad-measure, decimal-leading-zero);
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  color: var(--gold);
  padding-top: 0.2rem;
}

.acad-measure-title {
  margin: 0 0 0.35rem;
  font-size: 1.05rem;
  font-weight: 600;
}

.acad-measure-copy {
  margin: 0;
  font-size: 0.98rem;
  line-height: 1.65;
  color: rgba(var(--ink-rgb), 0.76);
}

.acad-feature-grid {
  display: grid;
  gap: 1rem;
}

@media (min-width: 800px) {
  .acad-feature-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1.25rem;
  }
}

.acad-feature {
  padding: 1.35rem 1.3rem 1.5rem;
  border-radius: calc(var(--radius) + 0.1rem);
  background: rgba(255, 255, 255, 0.78);
  border-top: 2px solid var(--gold);
}

.acad-feature-title {
  margin: 0 0 0.55rem;
  font-size: 1.12rem;
  font-weight: 600;
}

.acad-feature-copy {
  margin: 0;
  font-size: 0.98rem;
  line-height: 1.65;
  color: rgba(var(--ink-rgb), 0.76);
}

.acad-bullet-list {
  margin: 0;
  padding-left: 1.15rem;
  display: grid;
  gap: 0.7rem;
  max-width: 72ch;
}

.acad-bullet-list li {
  font-size: 1.02rem;
  line-height: 1.65;
  color: rgba(var(--ink-rgb), 0.8);
}

.acad-prose {
  max-width: 72ch;
}

.acad-table-wrap {
  overflow-x: auto;
  margin: 0 0 1.5rem;
  border-radius: var(--radius);
  border: 1px solid rgba(var(--ink-rgb), 0.1);
  background: rgba(255, 255, 255, 0.8);
}

.acad-table {
  width: 100%;
  border-collapse: collapse;
  min-width: 28rem;
}

.acad-table th,
.acad-table td {
  padding: 0.85rem 1rem;
  text-align: left;
  border-bottom: 1px solid rgba(var(--ink-rgb), 0.08);
  font-size: 0.98rem;
  line-height: 1.45;
}

.acad-table thead th {
  font-size: 0.72rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--primary);
  background: rgba(var(--primary-rgb), 0.05);
}

.acad-table tbody tr:last-child th,
.acad-table tbody tr:last-child td {
  border-bottom: 0;
}

.acad-note {
  max-width: 72ch;
  font-size: 0.95rem;
}

.acad-tablist {
  display: flex;
  gap: 0.15rem;
  margin-bottom: 1.75rem;
  overflow-x: auto;
  scrollbar-width: thin;
}

.acad-tab {
  appearance: none;
  border: 0;
  border-bottom: 2px solid transparent;
  background: transparent;
  color: rgba(var(--ink-rgb), 0.62);
  padding: 0.75rem 0.85rem;
  border-radius: 0;
  font: inherit;
  font-size: 0.92rem;
  font-weight: 600;
  cursor: pointer;
  white-space: nowrap;
  min-height: 2.75rem;
  transition: color 0.2s ease, border-color 0.2s ease;
}

.acad-tab.is-active,
.acad-tab[aria-selected="true"] {
  background: transparent;
  border-bottom-color: var(--gold);
  color: var(--ink);
}

.acad-tab:hover {
  color: var(--ink);
}

.acad-tab:focus-visible {
  outline: 2px solid var(--gold);
  outline-offset: 2px;
}

.acad-tab-panel[hidden] {
  display: none;
}

.acad-phase-intro {
  display: grid;
  gap: 1.5rem;
  margin-bottom: 2.25rem;
}

@media (min-width: 900px) {
  .acad-phase-intro {
    grid-template-columns: minmax(0, 0.95fr) minmax(0, 1.05fr);
    gap: 2.5rem;
    align-items: start;
  }
}

.acad-phase-media {
  margin: 0;
  overflow: hidden;
  border-radius: calc(var(--radius) + 0.1rem);
}

.acad-phase-media img {
  width: 100%;
  height: 100%;
  min-height: 16rem;
  object-fit: cover;
  display: block;
}

.acad-phase-block {
  margin-top: 2rem;
  max-width: 76ch;
}

.acad-subheading {
  margin: 0 0 0.85rem;
  font-size: clamp(1.2rem, 2vw, 1.45rem);
  font-weight: 600;
  letter-spacing: -0.02em;
}

.acad-stats-grid {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 1rem;
}

@media (min-width: 700px) {
  .acad-stats-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

.acad-stat {
  padding: 1.5rem 1.25rem;
  border-radius: var(--radius);
  background: rgba(255, 255, 255, 0.75);
  border: 1px solid rgba(var(--ink-rgb), 0.08);
  text-align: center;
}

.acad-stat-value {
  margin: 0;
  font-size: clamp(2rem, 4vw, 2.8rem);
  font-weight: 500;
  letter-spacing: -0.04em;
  color: var(--primary);
}

.acad-stat-label {
  margin: 0.35rem 0 0;
  font-size: 0.92rem;
  color: rgba(var(--ink-rgb), 0.7);
}

.acad-region-grid {
  display: grid;
  gap: 1.15rem;
}

@media (min-width: 800px) {
  .acad-region-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (min-width: 1100px) {
  .acad-region-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

.acad-region {
  padding: 1.25rem 1.2rem 1.4rem;
  border-radius: var(--radius);
  background: rgba(255, 255, 255, 0.72);
  border: 1px solid rgba(var(--ink-rgb), 0.08);
}

.acad-region-title {
  margin: 0 0 0.75rem;
  font-size: 1.05rem;
  font-weight: 600;
}

.acad-uni-list {
  margin: 0;
  padding-left: 1.05rem;
  display: grid;
  gap: 0.35rem;
}

.acad-uni-list li {
  font-size: 0.95rem;
  line-height: 1.5;
  color: rgba(var(--ink-rgb), 0.78);
}

.acad-cta {
  padding: 2.5rem 0 4.5rem;
}

.acad-cta-stage {
  width: min(1180px, calc(100% - 2.5rem));
  margin: 0 auto;
  display: grid;
  gap: 1.25rem;
}

@media (min-width: 900px) {
  .acad-cta-stage {
    width: min(1180px, calc(100% - 4rem));
  }
}

.acad-cta-media {
  margin: 0 0 0.5rem;
  border-radius: var(--radius);
  overflow: hidden;
  max-height: 14rem;
}

.acad-cta-media img {
  width: 100%;
  height: 14rem;
  object-fit: cover;
  display: block;
}

.acad-cta-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
}

.acad-age-timeline {
  list-style: none;
  margin: 0 0 1.75rem;
  padding: 0;
  display: grid;
  gap: 1rem;
}

@media (min-width: 800px) {
  .acad-age-timeline {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0;
  }
}

.acad-age-step {
  position: relative;
  padding: 1.25rem 1.15rem 1.35rem;
  background: rgba(255, 255, 255, 0.72);
  border-top: 2px solid var(--gold);
}

@media (min-width: 800px) {
  .acad-age-step {
    padding-right: 1.75rem;
  }

  .acad-age-step:not(:last-child)::after {
    content: "";
    position: absolute;
    top: 1.55rem;
    right: 0.55rem;
    width: 0.65rem;
    height: 0.65rem;
    border-top: 1.5px solid rgba(var(--ink-rgb), 0.28);
    border-right: 1.5px solid rgba(var(--ink-rgb), 0.28);
    transform: rotate(45deg);
  }
}

.acad-age-label {
  margin: 0 0 0.35rem;
  font-size: 1.15rem;
  font-weight: 600;
  letter-spacing: -0.02em;
}

.acad-age-range {
  margin: 0;
  font-size: 0.98rem;
  line-height: 1.5;
  color: rgba(var(--ink-rgb), 0.72);
}

.acad-specialist-row,
.acad-scaffold-row,
.acad-value-row {
  list-style: none;
  margin: 1.5rem 0 0;
  padding: 0;
  display: flex;
  flex-wrap: wrap;
  gap: 0.55rem;
}

.acad-specialist-row li,
.acad-scaffold-row li,
.acad-value-row li {
  padding: 0.45rem 0.75rem;
  font-size: 0.88rem;
  font-weight: 500;
  color: var(--ink);
  background: rgba(var(--primary-rgb), 0.06);
  border: 1px solid rgba(var(--primary-rgb), 0.12);
}

.acad-pathway {
  list-style: none;
  margin: 0 0 2rem;
  padding: 0;
  display: grid;
  gap: 0.85rem;
}

@media (min-width: 900px) {
  .acad-pathway {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1.15rem;
  }
}

.acad-pathway-step {
  padding: 1.25rem 1.2rem 1.4rem;
  background: rgba(255, 255, 255, 0.78);
  border-left: 3px solid var(--gold);
}

.acad-pathway-num {
  display: block;
  margin-bottom: 0.55rem;
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.14em;
  color: var(--primary);
}

.acad-pathway-title {
  margin: 0;
  font-size: 1.05rem;
  font-weight: 600;
  line-height: 1.4;
  letter-spacing: -0.015em;
}

.acad-genius {
  max-width: 76ch;
  padding: 1.75rem 0 0.25rem;
  border-top: 1px solid rgba(var(--ink-rgb), 0.1);
}

.acad-prep-grid {
  display: grid;
  gap: 1rem;
  margin-bottom: 1.75rem;
}

@media (min-width: 800px) {
  .acad-prep-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1.25rem;
  }
}

.acad-prep {
  padding: 1.35rem 1.25rem 1.5rem;
  background: rgba(255, 255, 255, 0.72);
  border-top: 2px solid var(--gold);
}

.acad-prep-title {
  margin: 0 0 0.55rem;
  font-size: 1.05rem;
  font-weight: 600;
  letter-spacing: -0.015em;
}

.acad-prep-copy {
  margin: 0;
  font-size: 0.98rem;
  line-height: 1.65;
  color: rgba(var(--ink-rgb), 0.76);
}

.acad-uni-list--wide {
  max-width: 56rem;
  columns: 1;
  padding-left: 1.15rem;
}

@media (min-width: 800px) {
  .acad-uni-list--wide {
    columns: 2;
    column-gap: 2.5rem;
  }
}

.acad-tab-panel {
  animation: acadPanelIn 0.35s ease;
}

@keyframes acadPanelIn {
  from {
    opacity: 0;
    transform: translate3d(0, 8px, 0);
  }

  to {
    opacity: 1;
    transform: none;
  }
}

@media (prefers-reduced-motion: reduce) {

  .acad-intro-content,
  .acad-intro-media-frame img,
  .acad-journey-list a,
  .acad-tab,
  .acad-tab-panel {
    transition: none !important;
    animation: none !important;
    transform: none !important;
  }

  .acad-intro .acad-intro-content {
    opacity: 1;
    transform: none;
  }
}

/* --------------------------------------------------------------------------
   Curriculum page storytelling (acad-page--curriculum)
   -------------------------------------------------------------------------- */
.acad-page--curriculum {
  overflow-x: clip;
}

#teach,
#assess,
#language {
  scroll-margin-top: 10.5rem;
}

.acad-progress {
  position: static;
  top: auto;
  z-index: auto;
  background: transparent;
  backdrop-filter: none;
  border-bottom: 0;
  border-top: 1px solid rgba(var(--ink-rgb), 0.06);
}

.acad-progress-stage {
  width: min(1180px, calc(100% - 2.5rem));
  margin: 0 auto;
  display: flex;
  gap: 0.15rem;
  overflow-x: auto;
  scrollbar-width: none;
  padding: 0.35rem 0;
}

.acad-progress-stage::-webkit-scrollbar {
  display: none;
}

@media (min-width: 900px) {
  .acad-progress-stage {
    width: min(1180px, calc(100% - 4rem));
  }
}

.acad-progress a {
  flex: 0 0 auto;
  padding: 0.55rem 0.85rem;
  font-size: 0.8rem;
  font-weight: 600;
  letter-spacing: 0.02em;
  color: rgba(var(--ink-rgb), 0.5);
  text-decoration: none;
  border-bottom: 2px solid transparent;
  transition: color 0.2s ease, border-color 0.2s ease;
}

.acad-progress a:hover,
.acad-progress a:focus-visible {
  color: var(--ink);
  outline: none;
}

.acad-progress a.is-active {
  color: var(--ink);
  border-bottom-color: var(--gold);
}

.acad-teach {
  background: var(--primary-light);
  padding: 0 0 4.5rem;
}

.acad-teach-intro {
  padding: 3.25rem 0 2.5rem;
}

@media (min-width: 900px) {
  .acad-teach-intro {
    padding: 4.5rem 0 3rem;
  }
}

.acad-teach-intro-stage {
  width: min(1180px, calc(100% - 2.5rem));
  margin: 0 auto;
  display: grid;
  gap: 1.75rem;
  align-items: center;
}

@media (min-width: 900px) {
  .acad-teach-intro-stage {
    width: min(1180px, calc(100% - 4rem));
    grid-template-columns: minmax(0, 0.95fr) minmax(0, 1.05fr);
    gap: clamp(2.5rem, 5vw, 4.5rem);
    align-items: center;
  }
}

.acad-teach-media {
  margin: 0;
}

.acad-teach-media-frame {
  overflow: hidden;
  border-radius: calc(var(--radius) + 0.15rem);
  aspect-ratio: 4 / 5;
  background: var(--primary);
  will-change: transform;
}

.acad-teach-media-frame img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transform: scale(1.06);
  transition: transform 1.2s var(--ease-editorial, cubic-bezier(0.22, 1, 0.36, 1));
}

.acad-teach.is-inview .acad-teach-media-frame img {
  transform: scale(1);
}

.acad-teach-copy {
  opacity: 0;
  transform: translate3d(0, 20px, 0);
  transition: opacity 0.7s ease, transform 0.7s var(--ease-editorial, cubic-bezier(0.22, 1, 0.36, 1));
}

.acad-teach.is-inview .acad-teach-copy {
  opacity: 1;
  transform: none;
}

/* Hover accordion (Curriculum Overview + Assessment) */
.acad-hover-acc {
  margin-top: 1.75rem;
  border-top: 1px solid rgba(var(--ink-rgb), 0.1);
}

.acad-hover-acc-item {
  border-bottom: 1px solid rgba(var(--ink-rgb), 0.1);
}

.acad-hover-acc-trigger {
  appearance: none;
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: 0.75rem;
  align-items: center;
  width: 100%;
  min-width: 0;
  text-align: left;
  padding: 0.95rem 0.1rem;
  border: 0;
  background: transparent;
  color: rgba(var(--ink-rgb), 0.62);
  font: inherit;
  cursor: pointer;
  transition: color 0.28s var(--ease-editorial, cubic-bezier(0.22, 1, 0.36, 1));
  min-height: 3rem;
}

.acad-hover-acc-trigger:hover,
.acad-hover-acc-trigger:focus-visible,
.acad-hover-acc-item.is-open .acad-hover-acc-trigger,
.acad-hover-acc-item.is-hovered .acad-hover-acc-trigger {
  color: var(--ink);
  outline: none;
}

.acad-hover-acc-trigger:focus-visible {
  box-shadow: inset 0 -2px 0 var(--gold);
}

.acad-hover-acc-index {
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  color: var(--gold);
}

.acad-page .acad-hover-acc-index,
.wb-page .acad-hover-acc-index,
.tr-page .acad-hover-acc-index,
.pol-page .acad-hover-acc-index,
.pp-page .acad-hover-acc-index,
.gr-page .acad-hover-acc-index,
.adm-page .acad-hover-acc-index {
  font-size: 2rem;
  line-height: 1;
  letter-spacing: 0;
}

.acad-hover-acc-label {
  display: block;
  min-width: 0;
  overflow-wrap: anywhere;
  font-size: clamp(1rem, 1.8vw, 1.1rem);
  font-weight: 600;
  letter-spacing: -0.015em;
  line-height: 1.35;
}

.acad-hover-acc-panel {
  display: grid;
  grid-template-rows: 0fr;
  transition: grid-template-rows 0.45s var(--ease-editorial, cubic-bezier(0.22, 1, 0.36, 1));
}

.acad-hover-acc-panel-inner {
  overflow: hidden;
  min-height: 0;
}

.acad-hover-acc-panel-inner p {
  margin: 0;
  padding: 0 0 1.05rem 1.05rem;
  font-size: 0.98rem;
  line-height: 1.7;
  color: rgba(var(--ink-rgb), 0.76);
  opacity: 0;
  transform: translate3d(0, 6px, 0);
  transition:
    opacity 0.35s ease 0.05s,
    transform 0.4s var(--ease-editorial, cubic-bezier(0.22, 1, 0.36, 1)) 0.05s;
}

.acad-hover-acc-item.is-open .acad-hover-acc-panel,
.acad-hover-acc-item.is-hovered .acad-hover-acc-panel {
  grid-template-rows: 1fr;
}

.acad-hover-acc-item.is-open .acad-hover-acc-panel-inner p,
.acad-hover-acc-item.is-hovered .acad-hover-acc-panel-inner p {
  opacity: 1;
  transform: none;
  padding-left: 1.5rem;
}

@media (max-width: 600px) {
  .acad-hover-acc-panel-inner p {
    padding-left: 0;
  }
}

/* Assessment — two-column editorial split */
.acad-assess--split {
  background: rgba(255, 255, 255);
  color: var(--ink);
  padding: 3.5rem 0 4.25rem;
}

@media (min-width: 900px) {
  .acad-assess--split {
    padding: 5rem 0 5.75rem;
  }
}

.acad-assess-split-stage {
  width: min(1180px, calc(100% - 2.5rem));
  margin: 0 auto;
  display: grid;
  gap: 2rem;
  align-items: start;
}

@media (min-width: 900px) {
  .acad-assess-split-stage {
    width: min(1180px, calc(100% - 4rem));
    grid-template-columns: minmax(0, 1.05fr) minmax(0, 0.95fr);
    gap: clamp(2.5rem, 5vw, 4.5rem);
  }
}

.acad-assess-split-content .acad-assess-header {
  max-width: none;
  margin-bottom: 0;
}

.acad-assess--split .acad-assess-lede {
  margin: 1rem 0 0;
  font-size: clamp(1rem, 1.8vw, 1.1rem);
  line-height: 1.7;
  color: rgba(var(--ink-rgb), 0.78);
}

.acad-assess--split .acad-assess-lede--soft {
  margin-top: 1.1rem;
  color: rgba(var(--ink-rgb), 0.58);
}

.acad-assess-split-media {
  margin: 0;
  opacity: 0;
  transform: translate3d(0, 18px, 0);
  transition: opacity 0.7s ease, transform 0.7s var(--ease-editorial, cubic-bezier(0.22, 1, 0.36, 1));
}

.acad-assess--split.is-inview .acad-assess-split-media {
  opacity: 1;
  transform: none;
}

.acad-assess-split-media-frame {
  overflow: hidden;
  border-radius: calc(var(--radius) + 0.15rem);
  aspect-ratio: 4 / 5;
  background: var(--primary);
}

@media (min-width: 900px) {
  .acad-assess-split-media-frame {
    position: sticky;
    top: calc(var(--header-offset) + 1.5rem);
  }
}

.acad-assess-split-media-frame img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transform: scale(1.05);
  transition: transform 1.15s var(--ease-editorial, cubic-bezier(0.22, 1, 0.36, 1));
}

.acad-assess--split.is-inview .acad-assess-split-media-frame img {
  transform: scale(1);
}

.section-kicker--on-ink {
  color: var(--gold-whisper);
}

.acad-lang {
  position: relative;
  isolation: isolate;
  height: 100%;
  min-height: 80dvh;
  display: grid;
  align-items: center;
  color: #fff;
  overflow: hidden;
}

.acad-lang-visual {
  position: absolute;
  inset: 0;
  z-index: 0;
}

.acad-lang-visual img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 40%;
  transform: scale(1.05);
  will-change: transform;
}

.acad-lang-veil {
  position: absolute;
  inset: 0;
  background:
    linear-gradient(180deg, rgba(var(--primary-rgb), 0.35) 0%, rgba(var(--primary-rgb), 0.78) 55%, rgba(var(--primary-rgb), 0.92) 100%),
    linear-gradient(90deg, rgba(var(--primary-rgb), 0.55) 0%, transparent 60%);
}

.acad-lang-stage {
  position: relative;
  z-index: 1;
  width: min(1180px, calc(100% - 2.5rem));
  margin: 0 auto;
  padding: 4.5rem 0 4rem;
}

@media (min-width: 900px) {
  .acad-lang-stage {
    width: min(1180px, calc(100% - 4rem));
    padding: 8.5rem 0 8.5rem;
    display: grid;
    grid-template-columns: minmax(0, 1.1fr) minmax(0, 0.9fr);
    gap: 3rem;
    align-items: end;
  }
}

.section-kicker--on-dark {
  color: var(--paper);
}

.acad-lang .section-heading {
  color: #fff;
  max-width: 16ch;
}

.acad-lang-lede {
  margin: 1rem 0 0;
  font-size: clamp(1rem, 1.8vw, 1.1rem);
  line-height: 1.7;
  color: rgba(255, 255, 255, 0.78);
  max-width: 42ch;
}

.acad-lang-explorer {
  margin-top: 2rem;
  padding: 1.35rem 1.25rem 1.5rem;
  background: rgba(255, 255, 255, 0.08);
  border: 1px solid rgba(255, 255, 255, 0.14);
  backdrop-filter: blur(10px);
}

@media (min-width: 900px) {
  .acad-lang-explorer {
    margin-top: 0;
  }
}

.acad-lang-tabs {
  display: flex;
  gap: 0.15rem;
  margin-bottom: 1.25rem;
  border-bottom: 1px solid rgba(255, 255, 255, 0.16);
  overflow-x: auto;
}

.acad-lang-tab {
  appearance: none;
  border: 0;
  border-bottom: 2px solid transparent;
  background: transparent;
  color: rgba(255, 255, 255, 0.55);
  padding: 0.7rem 0.85rem;
  font: inherit;
  font-size: 0.92rem;
  font-weight: 600;
  cursor: pointer;
  white-space: nowrap;
  min-height: 2.75rem;
}

.acad-lang-tab.is-active,
.acad-lang-tab[aria-selected="true"] {
  color: #fff;
  border-bottom-color: var(--gold);
}

.acad-lang-tab:focus-visible {
  outline: 2px solid var(--gold);
  outline-offset: 2px;
}

.acad-lang-panel[hidden] {
  display: none;
}

.acad-lang-panel.is-active {
  animation: acadPanelIn 0.4s ease;
}

.acad-lang-panel-title {
  margin: 0 0 0.65rem;
  font-size: 1.35rem;
  font-weight: 500;
  letter-spacing: -0.02em;
}

.acad-lang-panel-copy {
  margin: 0;
  font-size: clamp(1rem, 1.8vw, 1.1rem);
  line-height: 1.7;
  color: rgba(255, 255, 255, 0.78);
}

.acad-pathway-rail {
  background: var(--primary-light);
  padding: 4rem 0 3.5rem;
  overflow-x: clip;
}

@media (min-width: 900px) {
  .acad-pathway-rail {
    padding: 5rem 0 4rem;
  }
}

.acad-pathway-rail-stage {
  width: min(1180px, calc(100% - 2.5rem));
  margin: 0 auto;
  min-width: 0;
  max-width: 100%;
}

@media (min-width: 900px) {
  .acad-pathway-rail-stage {
    width: min(1180px, calc(100% - 4rem));
  }
}

.acad-pathway-rail-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  margin-bottom: 1rem;
  min-width: 0;
}

.acad-pathway-rail-header .section-heading {
  flex: 1 1 auto;
  min-width: 0;
}

.acad-rail-nav {
  display: flex;
  gap: 0.5rem;
  margin-top: 0;
  flex-shrink: 0;
}

.acad-rail {
  position: relative;
  min-width: 0;
  max-width: 100%;
}

.acad-rail-viewport {
  overflow: hidden;
  margin: 0 -0.15rem;
  min-width: 0;
  max-width: calc(100% + 0.3rem);
}

.acad-rail-track {
  list-style: none;
  margin: 0;
  padding: 0.15rem;
  display: flex;
  gap: 1rem;
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  scrollbar-width: none;
  -webkit-overflow-scrolling: touch;
  overscroll-behavior-x: contain;
}

.acad-rail-track.is-autoplay {
  scroll-snap-type: none;
}

.acad-rail-track::-webkit-scrollbar {
  display: none;
}

.acad-rail-card {
  flex: 0 0 min(72vw, 16.5rem);
  scroll-snap-align: start;
}

@media (min-width: 900px) {
  .acad-rail-card {
    flex-basis: calc((100% - 3rem) / 3.2);
  }
}

.acad-rail-link {
  display: grid;
  height: 100%;
  text-decoration: none;
  color: inherit;
  background: rgba(255, 255, 255, 0.85);
  border-radius: 1.5rem;
  overflow: hidden;
  transition: transform 0.35s var(--ease-editorial, cubic-bezier(0.22, 1, 0.36, 1));
}

.acad-rail-link:hover,
.acad-rail-link:focus-visible {
  transform: translateY(-4px);
  outline: none;
}

.acad-rail-media {
  margin: 0;
  aspect-ratio: 4 / 5;
  overflow: hidden;
  background: var(--primary);
}

.acad-rail-media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.7s var(--ease-editorial, cubic-bezier(0.22, 1, 0.36, 1));
}

.acad-rail-link:hover .acad-rail-media img,
.acad-rail-link:focus-visible .acad-rail-media img {
  transform: scale(1.05);
}

.acad-rail-body {
  padding: 1rem 1.05rem 1.2rem;
}

.acad-rail-kicker {
  margin: 0 0 1rem;
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--primary);
}

.acad-rail-title {
  margin: 0;
  font-size: 1.15rem;
  font-weight: 600;
  letter-spacing: -0.02em;
}

.acad-rail-btn {
  appearance: none;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2.75rem;
  height: 2.75rem;
  border: 1px solid rgba(var(--ink-rgb), 0.16);
  border-radius: 50px;
  background: rgba(255, 255, 255, 0.7);
  color: var(--ink);
  font: inherit;
  cursor: pointer;
  transition: border-color 0.2s ease, background 0.2s ease;
}

.acad-rail-btn:hover,
.acad-rail-btn:focus-visible {
  border-color: var(--gold);
  outline: none;
}

.acad-continue {
  padding: 2.5rem 0 5rem;
  background: var(--primary-light);
}

.acad-continue-stage {
  width: min(1180px, calc(100% - 2.5rem));
  margin: 0 auto;
}

@media (min-width: 900px) {
  .acad-continue-stage {
    width: min(1180px, calc(100% - 4rem));
  }
}

.acad-continue-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.85rem 1.15rem;
}

@media (max-width: 899px) {
  .acad-journey {
    top: calc(var(--header-offset) + 3rem);
  }
}

@media (prefers-reduced-motion: reduce) {

  .acad-teach-copy,
  .acad-teach-media-frame img,
  .acad-approach-panel,
  .acad-measure-panel,
  .acad-lang-panel,
  .acad-rail-link,
  .acad-rail-media img,
  .acad-lang-visual img,
  .acad-hover-acc-panel,
  .acad-hover-acc-panel-inner p,
  .acad-assess-split-media,
  .acad-assess-split-media-frame img {
    transition: none !important;
    animation: none !important;
    transform: none !important;
  }

  .acad-teach .acad-teach-copy,
  .acad-assess--split .acad-assess-split-media {
    opacity: 1;
    transform: none;
  }

  .acad-hover-acc-panel-inner p {
    opacity: 1;
  }
}

/* --------------------------------------------------------------------------
   Early Years page (ey-)
   -------------------------------------------------------------------------- */
.ey-page {
  overflow-x: clip;
}

.ey-page [id] {
  scroll-margin-top: 7.5rem;
}

.ey-progress {
  position: sticky;
  top: calc(var(--header-offset) + 3.15rem);
  z-index: 28;
  background: rgba(255, 255, 255, 0.94);
  backdrop-filter: blur(14px);
  border-bottom: 1px solid rgba(var(--ink-rgb), 0.08);
}

.ey-progress-stage {
  width: min(1180px, calc(100% - 2.5rem));
  margin: 0 auto;
  display: flex;
  gap: 0.1rem;
  overflow-x: auto;
  scrollbar-width: none;
  padding: 0.4rem 0;
}

.ey-progress-stage::-webkit-scrollbar {
  display: none;
}

@media (min-width: 900px) {
  .ey-progress-stage {
    width: min(1180px, calc(100% - 4rem));
  }
}

.ey-progress a {
  flex: 0 0 auto;
  padding: 0.55rem 0.8rem;
  font-size: 0.78rem;
  font-weight: 600;
  color: rgba(var(--ink-rgb), 0.48);
  text-decoration: none;
  border-bottom: 2px solid transparent;
  white-space: nowrap;
  transition: color 0.2s ease, border-color 0.2s ease;
}

.ey-progress a:hover,
.ey-progress a:focus-visible {
  color: var(--ink);
  outline: none;
}

.ey-progress a.is-active {
  color: var(--ink);
  border-bottom-color: var(--gold);
}

.ey-section-stage,
.ey-overview-stage,
.ey-sizes-stage,
.ey-bilingual-stage,
.ey-env-stage,
.ey-partner-stage,
.ey-continue-stage {
  width: min(1180px, calc(100% - 2.5rem));
  margin: 0 auto;
}

@media (min-width: 900px) {

  .ey-section-stage,
  .ey-overview-stage,
  .ey-sizes-stage,
  .ey-bilingual-stage,
  .ey-env-stage,
  .ey-partner-stage,
  .ey-continue-stage {
    width: min(1180px, calc(100% - 4rem));
  }
}

.ey-section-header {
 
  margin-bottom: 1.75rem;
}

.ey-overview {
  padding: 3.25rem 0 3.5rem;
  background: var(--primary-light);
}

@media (min-width: 900px) {
  .ey-overview {
    padding: 4.75rem 0 5rem;
  }
}

.ey-overview-stage {
  display: grid;
  gap: 1.75rem;
  align-items: center;
}

@media (min-width: 900px) {
  .ey-overview-stage {
    grid-template-columns: minmax(0, 0.95fr) minmax(0, 1.05fr);
    gap: clamp(2.5rem, 5vw, 4.5rem);
  }
}

.ey-overview-media {
  margin: 0;
}

.ey-overview-media-frame {
  overflow: hidden;
  border-radius: calc(var(--radius) + 0.15rem);
  aspect-ratio: 4 / 4;
  background: var(--primary);
  will-change: transform;
}

.ey-overview-media-frame img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transform: scale(1.06);
  transition: transform 1.2s var(--ease-editorial, cubic-bezier(0.22, 1, 0.36, 1));
}

.ey-overview.is-inview .ey-overview-media-frame img {
  transform: scale(1);
}

.ey-overview-copy {
  opacity: 0;
  transform: translate3d(0, 18px, 0);
  transition: opacity 0.7s ease, transform 0.7s var(--ease-editorial, cubic-bezier(0.22, 1, 0.36, 1));
}

.ey-overview.is-inview .ey-overview-copy {
  opacity: 1;
  transform: none;
}

.ey-lede {
  margin: 0;
  font-size: clamp(1rem, 1.8vw, 1.1rem);
  line-height: 1.65;
  letter-spacing: -0.015em;
  color: rgba(var(--ink-rgb), 0.84);
}

.ey-years {
  padding: 3.5rem 0 4rem;
  background: rgba(255, 255, 255, 0.55);
}

@media (min-width: 900px) {
  .ey-years {
    padding: 4.75rem 0 5.25rem;
  }
}

.ey-stage-cards {
  list-style: none;
  margin: 0 0 1.85rem;
  padding: 0;
  display: grid;
  gap: 1rem;
}

@media (min-width: 700px) {
  .ey-stage-cards {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1.15rem;
  }
}

.ey-stage-card {
  opacity: 0;
  transform: translate3d(0, 18px, 0);
  transition:
    opacity 0.55s ease,
    transform 0.55s var(--ease-editorial, cubic-bezier(0.22, 1, 0.36, 1));
  transition-delay: calc(var(--i, 0) * 0.1s);
}

.ey-years.is-inview .ey-stage-card {
  opacity: 1;
  transform: none;
}

.ey-stage-card-inner {
  position: relative;
  display: grid;
  height: 100%;
  overflow: hidden;
  background: var(--primary);
  isolation: isolate;
  border-radius: 1.5rem;
}

.ey-stage-card-media {
  margin: 0;
  position: relative;
  aspect-ratio: 3 / 4;
  overflow: hidden;
}

.ey-stage-card-media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transform: scale(1.04);
  transition: transform 0.85s var(--ease-editorial, cubic-bezier(0.22, 1, 0.36, 1));
}

.ey-stage-card-veil {
  position: absolute;
  inset: 0;
  background:
    linear-gradient(180deg, transparent 28%, rgba(var(--primary-rgb), 0.55) 62%, rgba(var(--primary-rgb), 0.88) 100%);
  transition: background 0.45s ease;
}

.ey-stage-card-body {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 1;
  padding: 1.25rem 1.15rem 1.35rem;
  color: #fff;
}

.ey-stage-card-index {
  display: block;
  margin-bottom: 0.45rem;
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.14em;
  color: var(--gold-whisper);
}

.ey-stage-card-title {
  margin: 0 0 0.35rem;
  font-size: clamp(1.35rem, 2.2vw, 1.7rem);
  font-weight: 600;
  letter-spacing: -0.03em;
  line-height: 1.1;
}

.ey-stage-card-range {
  margin: 0;
  font-size: 0.95rem;
  line-height: 1.45;
  color: rgba(255, 255, 255, 0.78);
  max-width: 16ch;
  transform: translate3d(0, 4px, 0);
  transition: transform 0.4s var(--ease-editorial, cubic-bezier(0.22, 1, 0.36, 1)), color 0.3s ease;
}

.ey-stage-card-inner:hover .ey-stage-card-media img,
.ey-stage-card-inner:focus-within .ey-stage-card-media img {
  transform: scale(1.1);
}

.ey-stage-card-inner:hover .ey-stage-card-veil,
.ey-stage-card-inner:focus-within .ey-stage-card-veil {
  background:
    linear-gradient(180deg, transparent 18%, rgba(var(--primary-rgb), 0.48) 55%, rgba(var(--primary-rgb), 0.9) 100%);
}

.ey-stage-card-inner:hover .ey-stage-card-range,
.ey-stage-card-inner:focus-within .ey-stage-card-range {
  color: #fff;
  transform: none;
}

.ey-years-note {
  margin: 0 0 2rem 0;
  font-size: clamp(1rem, 1.8vw, 1.1rem);
  line-height: 1.7;
  color: rgba(var(--ink-rgb), 0.78);
}

.ey-sizes--ink {
  padding: 3.5rem 0 4.25rem;
  background: var(--primary);
  color: #fff;
}

@media (min-width: 900px) {
  .ey-sizes--ink {
    padding: 5rem 0 5.75rem;
  }
}

.ey-sizes--ink .ey-sizes-stage {
  display: grid;
  gap: 2rem;
  align-items: center;
}

@media (min-width: 900px) {
  .ey-sizes--ink .ey-sizes-stage {
    grid-template-columns: minmax(0, 1.05fr) minmax(0, 0.95fr);
    gap: clamp(2.5rem, 5vw, 4.5rem);
  }
}

.ey-sizes-media {
  margin: 0;
  opacity: 0;
  transform: translate3d(0, 18px, 0);
  transition: opacity 0.7s ease, transform 0.7s var(--ease-editorial, cubic-bezier(0.22, 1, 0.36, 1));
}

.ey-sizes--ink.is-inview .ey-sizes-media {
  opacity: 1;
  transform: none;
}

.ey-sizes-media-frame {
  overflow: hidden;
  border-radius: calc(var(--radius) + 0.15rem);
  aspect-ratio: 4 / 5;
  background: rgba(255, 255, 255, 0.06);
  will-change: transform;
}

.ey-sizes-media-frame img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transform: scale(1.05);
  transition: transform 1.15s var(--ease-editorial, cubic-bezier(0.22, 1, 0.36, 1));
}

.ey-sizes--ink.is-inview .ey-sizes-media-frame img {
  transform: scale(1);
}

.ey-sizes-main {
  display: grid;
  gap: 1.75rem;
}

.ey-sizes--ink .section-heading {
  color: #fff;
  margin-bottom: 1rem;
}

.ey-sizes--ink .section-copy {
  color: rgba(255, 255, 255, 0.74);
}

.ey-sizes--ink .ey-sizes-metrics {
  display: grid;
  gap: 0.75rem;
}

@media (min-width: 700px) {
  .ey-sizes--ink .ey-sizes-metrics {
    display: grid;
  }

  .ey-sizes--ink .ey-metric--wide {
    grid-column: 1 / -1;
  }
}

.ey-sizes--ink .ey-metric {
  padding: 1.15rem 1.15rem 1.25rem;
  background: rgba(255, 255, 255, 0.06);
  border: 1px solid rgba(255, 255, 255, 0.1);
  border-left: 3px solid var(--gold);
}

.ey-sizes--ink .ey-metric-value {
  margin: 0;
  font-size: clamp(2.1rem, 3.8vw, 2.85rem);
  font-weight: 500;
  letter-spacing: -0.04em;
  color: var(--paper);
  line-height: 1;
}

.ey-sizes--ink .ey-metric-value--text {
  font-size: clamp(1.5rem, 2.8vw, 2rem);
}

.ey-sizes--ink .ey-metric-label {
  margin: 0.45rem 0 0;
  font-size: 0.92rem;
  line-height: 1.45;
  color: rgba(255, 255, 255, 0.68);
}

.ey-play {
  position: relative;
  isolation: isolate;
  min-height: clamp(26rem, 68vh, 38rem);
  display: grid;
  align-items: end;
  color: #fff;
  overflow: hidden;
}

.ey-play-visual {
  position: absolute;
  inset: 0;
  z-index: 0;
}

.ey-play-visual img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transform: scale(1.05);
  will-change: transform;
}

.ey-play-veil {
  position: absolute;
  inset: 0;
  background:
    linear-gradient(180deg, rgba(var(--primary-rgb), 0.28) 0%, rgba(var(--primary-rgb), 0.72) 48%, rgba(var(--primary-rgb), 0.9) 100%),
    linear-gradient(90deg, rgba(var(--primary-rgb), 0.45) 0%, transparent 62%);
}

.ey-play-stage {
  position: relative;
  z-index: 1;
  width: min(1180px, calc(100% - 2.5rem));
  margin: 0 auto;
  padding: 4.5rem 0 4rem;
  max-width: 42rem;
  margin-left: auto;
  margin-right: auto;
}

@media (min-width: 900px) {
  .ey-play-stage {
    width: min(1180px, calc(100% - 4rem));
    max-width: none;
    padding: 8rem 0 8.5rem;
  }

  .ey-play-stage .section-heading,
  .ey-play-stage .ey-play-copy {
    max-width: 32rem;
  }
}

.ey-play .section-heading {
  color: #fff;
  max-width: 14ch;
}

.ey-play-copy {
  margin: 1.15rem 0 0;
  font-size: clamp(1rem, 1.8vw, 1.1rem);
  line-height: 1.7;
  color: rgba(255, 255, 255, 0.8);
  max-width: 48ch;
}

.ey-bilingual {
  padding: 3.5rem 0 4.25rem;
  background: var(--primary-light);
}

@media (min-width: 900px) {
  .ey-bilingual {
    padding: 5rem 0 5.75rem;
  }
}

.ey-bilingual-stage {
  display: grid;
  gap: 1.75rem;
  align-items: center;
}

@media (min-width: 900px) {
  .ey-bilingual-stage {
    grid-template-columns: minmax(0, 0.95fr) minmax(0, 1.05fr);
    gap: clamp(2.5rem, 5vw, 4.5rem);
  }
}

.ey-bilingual-media {
  margin: 0;
}

.ey-bilingual-media-frame {
  overflow: hidden;
  border-radius: calc(var(--radius) + 0.15rem);
  aspect-ratio: 4 / 5;
  background: var(--primary);
}

.ey-bilingual-media-frame img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transform: scale(1.04);
  transition: transform 1.1s var(--ease-editorial, cubic-bezier(0.22, 1, 0.36, 1));
}

.ey-bilingual.is-inview .ey-bilingual-media-frame img {
  transform: scale(1);
}

.ey-lang-pair {
  list-style: none;
  margin: 1.5rem 0 0;
  padding: 0;
  display: flex;
  flex-wrap: wrap;
  gap: 0.55rem;
}

.ey-lang-pair li {
  padding: 0.45rem 0.85rem;
  font-size: 0.9rem;
  font-weight: 600;
  border-top: 2px solid var(--gold);
  background: rgba(255, 255, 255, 0.65);
}

.ey-env {
  padding: 3.5rem 0 4.25rem;
  background: var(--paper);
}

@media (min-width: 900px) {
  .ey-env {
    padding: 5rem 0 5.75rem;
  }
}

.ey-env-stage {
  display: grid;
  gap: 1.75rem;
  align-items: center;
}

@media (min-width: 900px) {
  .ey-env-stage {
    grid-template-columns: minmax(0, 1.1fr) minmax(0, 0.9fr);
    gap: clamp(2.25rem, 4.5vw, 4rem);
  }
}

.ey-env-media {
  margin: 0;
}

.ey-env-media-frame {
  overflow: hidden;
  border-radius: calc(var(--radius) + 0.15rem);
  aspect-ratio: 4 / 5;
  background: var(--primary);
}

.ey-env-media-frame img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transform: scale(1.04);
  transition: transform 1.1s var(--ease-editorial, cubic-bezier(0.22, 1, 0.36, 1));
}

.ey-env.is-inview .ey-env-media-frame img {
  transform: scale(1);
}

.ey-env-pull {
  margin: 1rem 0 1rem;
  font-size: clamp(1.35rem, 2.6vw, 1.85rem);
  font-weight: 500;
  letter-spacing: -0.03em;
  line-height: 1.3;
  color: var(--ink);
}

.ey-partner {
  padding: 3.5rem 0 4rem;
  background: var(--primary-light);
}

@media (min-width: 900px) {
  .ey-partner {
    padding: 4.75rem 0 5.25rem;
  }
}

.ey-partner .ey-section-header {
  margin-bottom: 1.85rem;
}

.ey-partner-cards {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 1.15rem;
}

@media (min-width: 800px) {
  .ey-partner-cards {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1.35rem;
  }
}

.ey-partner-card {
  opacity: 0;
  transform: translate3d(0, 20px, 0);
  transition:
    opacity 0.6s ease,
    transform 0.6s var(--ease-editorial, cubic-bezier(0.22, 1, 0.36, 1));
  transition-delay: calc(var(--i, 0) * 0.12s);
}

.ey-partner.is-inview .ey-partner-card {
  opacity: 1;
  transform: none;
}

.ey-partner-card-inner {
  position: relative;
  display: grid;
  height: 100%;
  overflow: hidden;
  background: var(--primary);
  border-radius: 1.5rem;
  isolation: isolate;
  outline: none;
  transition: transform 0.45s var(--ease-editorial, cubic-bezier(0.22, 1, 0.36, 1));
}

.ey-partner-card-inner:hover,
.ey-partner-card-inner:focus-visible {
  transform: translateY(-4px);
}

.ey-partner-card-inner:focus-visible {
  box-shadow: 0 0 0 2px var(--paper-deep), 0 0 0 4px var(--gold);
}

.ey-partner-card-media {
  margin: 0;
  position: relative;
  min-height: 22rem;
  aspect-ratio: 4 / 5;
  overflow: hidden;
}

@media (min-width: 800px) {
  .ey-partner-card-media {
    min-height: 26rem;
  }
}

.ey-partner-card-media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transform: scale(1.04);
  transition: transform 0.9s var(--ease-editorial, cubic-bezier(0.22, 1, 0.36, 1));
}

.ey-partner-card-veil {
  position: absolute;
  inset: 0;
  background:
    linear-gradient(180deg, rgba(var(--primary-rgb), 0.12) 0%, rgba(var(--primary-rgb), 0.42) 42%, rgba(var(--primary-rgb), 0.92) 100%);
  transition: background 0.45s ease;
}

.ey-partner-card-body {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 1;
  padding: 1.4rem 1.25rem 1.5rem;
  color: #fff;
}

.ey-partner-card-index {
  display: block;
  margin-bottom: 0.55rem;
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.14em;
  color: var(--gold-whisper);
}

.ey-partner-card-title {
  margin: 0 0 0.7rem;
  font-size: clamp(1.2rem, 2vw, 1.45rem);
  font-weight: 600;
  letter-spacing: -0.025em;
  line-height: 1.2;
  max-width: 40ch;
}

.ey-partner-card-copy {
  margin: 0;
  font-size: 0.98rem;
  line-height: 1.65;
  color: rgba(255, 255, 255, 0.78);
  max-width: 54ch;
  opacity: 0.92;
  transform: translate3d(0, 6px, 0);
  transition:
    opacity 0.4s ease,
    transform 0.45s var(--ease-editorial, cubic-bezier(0.22, 1, 0.36, 1)),
    color 0.3s ease;
}

.ey-partner-card-inner:hover .ey-partner-card-media img,
.ey-partner-card-inner:focus-visible .ey-partner-card-media img {
  transform: scale(1.1);
}

.ey-partner-card-inner:hover .ey-partner-card-veil,
.ey-partner-card-inner:focus-visible .ey-partner-card-veil {
  background:
    linear-gradient(180deg, rgba(var(--primary-rgb), 0.08) 0%, rgba(var(--primary-rgb), 0.38) 38%, rgba(var(--primary-rgb), 0.94) 100%);
}

.ey-partner-card-inner:hover .ey-partner-card-copy,
.ey-partner-card-inner:focus-visible .ey-partner-card-copy {
  opacity: 1;
  color: rgba(255, 255, 255, 0.9);
  transform: none;
}

@media (hover: none) {
  .ey-partner-card-copy {
    opacity: 1;
    transform: none;
  }

  .ey-partner-card-inner:hover {
    transform: none;
  }
}

.ey-continue {
  padding: 2.25rem 0 5rem;
  background: var(--primary-light);
}

.ey-continue-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.85rem 1.15rem;
}

@media (max-width: 899px) {
  .ey-progress {
    top: calc(var(--header-offset) + 3rem);
  }

  .ey-page [id] {
    scroll-margin-top: 6.75rem;
  }
}

@media (prefers-reduced-motion: reduce) {

  .ey-overview-copy,
  .ey-overview-media-frame img,
  .ey-pathway-step,
  .ey-stage-card,
  .ey-stage-card-media img,
  .ey-stage-card-range,
  .ey-partner-card,
  .ey-partner-card-inner,
  .ey-partner-card-media img,
  .ey-partner-card-copy,
  .ey-partner-card-veil,
  .ey-bilingual-media-frame img,
  .ey-env-media-frame img,
  .ey-play-visual img,
  .ey-sizes-media,
  .ey-sizes-media-frame img {
    transition: none !important;
    animation: none !important;
    transform: none !important;
  }

  .ey-overview .ey-overview-copy,
  .ey-years .ey-pathway-step,
  .ey-years .ey-stage-card,
  .ey-partner .ey-partner-card,
  .ey-sizes--ink .ey-sizes-media {
    opacity: 1;
    transform: none;
  }
}

.inner-section--ink .parent-enquiry {
  background: var(--paper);
  border: 1px solid rgba(var(--ink-rgb), 0.1);
}

/* --------------------------------------------------------------------------
   Elementary page storytelling (el-)
   -------------------------------------------------------------------------- */
.el-page {
  overflow-x: clip;
}

.el-page .section-heading {
  letter-spacing: -0.03em;
}

.el-page [id] {
  scroll-margin-top: 7.5rem;
}

.el-progress {
  position: sticky;
  top: calc(var(--header-offset) + 3.15rem);
  z-index: 28;
  background: rgba(255, 255, 255, 0.94);
  backdrop-filter: blur(14px);
  border-bottom: 1px solid rgba(var(--ink-rgb), 0.08);
}

.el-progress-stage {
  width: min(1180px, calc(100% - 2.5rem));
  margin: 0 auto;
  display: flex;
  gap: 0.1rem;
  overflow-x: auto;
  scrollbar-width: none;
  padding: 0.4rem 0;
}

.el-progress-stage::-webkit-scrollbar { display: none; }

@media (min-width: 900px) {
  .el-progress-stage {
    width: min(1180px, calc(100% - 4rem));
  }
}

.el-progress a {
  flex: 0 0 auto;
  padding: 0.55rem 0.8rem;
  font-size: 0.78rem;
  font-weight: 600;
  color: rgba(var(--ink-rgb), 0.48);
  text-decoration: none;
  border-bottom: 2px solid transparent;
  white-space: nowrap;
  transition: color 0.2s ease, border-color 0.2s ease;
}

.el-progress a:hover,
.el-progress a:focus-visible {
  color: var(--ink);
  outline: none;
}

.el-progress a.is-active {
  color: var(--ink);
  border-bottom-color: var(--gold);
}

.el-overview-stage,
.el-story-stage,
.el-continue-stage {
  width: min(1240px, calc(100% - 2.25rem));
  margin: 0 auto;
}

@media (min-width: 900px) {
  .el-overview-stage,
  .el-story-stage,
  .el-continue-stage {
    width: min(1240px, calc(100% - 5rem));
  }
}

.el-overview {
  padding: 4rem 0 4.5rem;
  background: var(--paper);
}

@media (min-width: 900px) {
  .el-overview { padding: 7.25rem 0 7.5rem; }
}

.el-overview-stage {
  display: grid;
  gap: 2.25rem;
  align-items: center;
}

@media (min-width: 900px) {
  .el-overview-stage {
    grid-template-columns: minmax(0, 0.95fr) minmax(0, 1.05fr);
    gap: clamp(2.5rem, 5vw, 4.5rem);
    align-items: center;
  }

  .el-overview-stage > :not(.el-overview-media) {
    grid-column: 2;
    min-width: 0;
  }

  .el-overview-stage > .el-overview-media {
    grid-column: 1;
    grid-row: 1 / -1;
    min-width: 0;
  }
}

.el-overview-media { margin: 0; }

.el-overview-media-frame {
  overflow: hidden;
  border-radius: calc(var(--radius) + 0.15rem);
  aspect-ratio: 4 / 4;
  background: var(--primary);
  will-change: transform;
}

.el-overview.is-inview .el-overview-media-frame {
  clip-path: inset(0 0 0 0);
}

.el-overview-media-frame img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transform: scale(1.1);
  transition: transform 1.4s var(--ease-editorial, cubic-bezier(0.22, 1, 0.36, 1));
}

.el-overview.is-inview .el-overview-media-frame img {
  transform: scale(1);
}

.el-overview-copy {
  opacity: 0;
  transform: translate3d(0, 28px, 0);
  transition: opacity 0.8s ease 0.12s, transform 0.8s var(--ease-editorial, cubic-bezier(0.22, 1, 0.36, 1)) 0.12s;
}

.el-overview.is-inview .el-overview-copy {
  opacity: 1;
  transform: none;
}

.el-overview-copy .section-heading,
.el-story-copy .section-heading,
.sec-story-copy .section-heading,
.sec-phase-intro-copy .section-heading {
  overflow-wrap: anywhere;
  word-break: break-word;
}

.el-overview-copy .section-heading {
  margin-bottom: 1.5rem;
}

.el-lede {
  margin: 0 0 1.35rem;
  font-size: clamp(1rem, 1.8vw, 1.1rem);
  line-height: 1.72;
  color: rgba(var(--ink-rgb), 0.78);
}

.el-lede--second {
  margin: 0;
  padding: 1.35rem 0 0 1.25rem;
  border-left: 2px solid var(--gold);
  font-size: clamp(1.12rem, 1.9vw, 1.32rem);
  line-height: 1.55;
  color: var(--ink);
  max-width: 34rem;
}

.el-story {
  padding: 4.25rem 0 5rem;
  background: var(--primary-light);
}

@media (min-width: 900px) {
  .el-story { padding: 7rem 0 7.75rem; }
}

.el-story--core {
  background: var(--primary-light);
}

.el-story--approach {
  background: var(--paper);
}

.el-story--ink {
  background: var(--primary);
  color: #fff;
}

.el-story-stage {
  display: grid;
  gap: 2.25rem;
  align-items: center;
}

@media (min-width: 900px) {
  .el-story-stage {
    grid-template-columns: minmax(0, 1.05fr) minmax(0, 0.95fr);
    gap: clamp(2.5rem, 5vw, 4.5rem);
    align-items: center;
  }

  .el-story-stage > :not(.el-story-media) {
    grid-column: 1;
    min-width: 0;
  }

  .el-story-stage > .el-story-media {
    grid-column: 2;
    grid-row: 1 / -1;
    min-width: 0;
  }

  .el-story-stage--reverse {
    grid-template-columns: minmax(0, 0.95fr) minmax(0, 1.05fr);
    gap: clamp(2.5rem, 5vw, 4.5rem);
  }

  .el-story-stage--reverse > :not(.el-story-media) {
    grid-column: 2;
  }

  .el-story-stage--reverse > .el-story-media {
    grid-column: 1;
    grid-row: 1 / -1;
  }
}

.el-story-media { margin: 0; }

.el-story-media-frame {
   overflow: hidden;
  border-radius: calc(var(--radius) + 0.15rem);
  aspect-ratio: 4 / 4;
  background: var(--primary);
  will-change: transform;
}

.el-story.is-inview .el-story-media-frame {
  opacity: 1;
  transform: none;
  clip-path: inset(0 0 0 0);
}

.el-story-media-frame img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transform: scale(1.08);
  transition: transform 1.25s var(--ease-editorial, cubic-bezier(0.22, 1, 0.36, 1));
}

.el-story.is-inview .el-story-media-frame img {
  transform: scale(1);
}

.el-story-media-frame:hover img,
.el-story-media-frame:focus-within img {
  transform: scale(1.04);
}

.el-story-copy {
  opacity: 0;
  transform: translate3d(0, 22px, 0);
  transition:
    opacity 0.75s ease 0.1s,
    transform 0.75s var(--ease-editorial, cubic-bezier(0.22, 1, 0.36, 1)) 0.1s;
}

.el-story.is-inview .el-story-copy {
  opacity: 1;
  transform: none;
}

.el-story-copy .section-kicker,
.el-overview-copy .section-kicker,
.sec-story-copy .section-kicker,
.sec-phase-intro-copy .section-kicker {
  margin-bottom: 1rem;
}

.el-story-copy .section-heading {
  margin-bottom: 1.75rem;
}

.el-story--ink .section-heading {
  color: #fff;
}

.el-story-list {
  margin: 0;
  padding: 0;
  list-style: none;
  display: grid;
  gap: 0;
  max-width: 40rem;
}

.el-story-list li {
  position: relative;
  padding: 1.05rem 0 1.05rem 1.5rem;
  font-size: clamp(1rem, 1.8vw, 1.1rem);
  line-height: 1.65;
  color: rgba(var(--ink-rgb), 0.78);
  border-bottom: 1px solid rgba(var(--ink-rgb), 0.1);
  transition: background 0.25s ease, padding-left 0.25s ease;
}

.el-story-list--on-dark li {
  position: relative;
  padding: 1.05rem 0 1.05rem 1.5rem;
  font-size: clamp(1rem, 1.8vw, 1.1rem);
  line-height: 1.65;
  color: rgba(var(--ink-rgb), 0.78);
  border-bottom: 1px solid rgba(var(--ink-rgb), 0.1);
  transition: background 0.25s ease, padding-left 0.25s ease;
}

.el-story-list--on-dark .el-story-list li:last-child {
  border-bottom: 0;
}

.el-story-list li::before {
  content: "\2022";
  position: absolute;
  left: 0;
  top: 1.08rem;
  font-size: 2rem;
  font-weight: 600;
  line-height: 1;
  letter-spacing: 0;
  color: var(--gold);
}

.el-story-list--on-dark li::before {
  content: "\2022";
  position: absolute;
  left: 0;
  top: 1.08rem;
  font-size: 2rem;
  font-weight: 600;
  line-height: 1;
  letter-spacing: 0;
  color: var(--paper);
}

.el-story-list li:hover {
  padding-left: 1.5rem;
}

.el-story--ink .el-story-list li,
.el-story-list--on-dark li {
  color: rgba(255, 255, 255, 0.82);
  border-bottom-color: rgba(255, 255, 255, 0.12);
}

.el-specialist-row {
  list-style: none;
  margin: 1.85rem 0 0;
  padding: 0;
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
}

.el-specialist-row li {
  padding: 0.55rem 0.95rem;
  font-size: 0.86rem;
  font-weight: 600;
  letter-spacing: 0.01em;
  color: var(--ink);
  background: transparent;
  border: 1px solid rgba(var(--ink-rgb), 0.16);
  transition: border-color 0.25s ease, background 0.25s ease, color 0.25s ease;
}

.el-specialist-row li:hover,
.el-specialist-row li:focus-visible {
  border-color: var(--gold);
  background: rgba(var(--gold-rgb), 0.1);
}

.el-story--lang {
  position: relative;
  isolation: isolate;
  height: 100%;
  min-height: 75dvh;
  display: grid;
  align-items: center;
  color: #fff;
  overflow: hidden;
  padding: 0;
  background: var(--primary);
}

.el-lang-visual {
  position: absolute;
  inset: 0;
  z-index: 0;
}

.el-lang-visual img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 0%;
  transform: scale(1.08);
  will-change: transform;
}

.el-lang-veil {
  position: absolute;
  inset: 0;
  background:
    linear-gradient(180deg, rgba(var(--ink-rgb), 0.18) 0%, rgba(var(--ink-rgb), 0.55) 46%, rgba(var(--ink-rgb), 0.9) 100%),
    linear-gradient(90deg, rgba(var(--ink-rgb), 0.45) 0%, transparent 58%);
}

.el-lang-stage {
  position: relative;
  z-index: 1;
  width: min(1240px, calc(100% - 2.25rem));
  margin: 0 auto;
  padding: 6rem 0 4.25rem;
}

@media (min-width: 900px) {
  .el-lang-stage {
    width: min(1240px, calc(100% - 5rem));
    padding: 8.5rem 0 5.5rem;
  }

  .el-story--lang .el-story-list {
    max-width: 44rem;
  }
}

.el-story--lang .section-heading {
  color: #fff;
  margin-bottom: 1.75rem;
}

.el-story--lang.is-inview .el-lang-stage {
  animation: el-lang-rise 0.9s var(--ease-editorial, cubic-bezier(0.22, 1, 0.36, 1)) both;
}

@keyframes el-lang-rise {
  from { opacity: 0; transform: translate3d(0, 24px, 0); }
  to { opacity: 1; transform: none; }
}

.el-continue {
  padding: 2.25rem 0 5rem;
  background: var(--primary-light);
}

.el-continue-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.85rem 1.15rem;
}

@media (max-width: 899px) {
  .el-progress {
    top: calc(var(--header-offset) + 3rem);
  }

  .el-page [id] {
    scroll-margin-top: 6.75rem;
  }
}

@media (prefers-reduced-motion: reduce) {
  .el-overview-copy,
  .el-overview-media-frame,
  .el-overview-media-frame img,
  .el-story-copy,
  .el-story-media-frame,
  .el-story-media-frame img,
  .el-lang-visual img,
  .el-story--lang.is-inview .el-lang-stage {
    transition: none !important;
    animation: none !important;
    transform: none !important;
    clip-path: none !important;
  }

  .el-overview .el-overview-copy,
  .el-story .el-story-copy,
  .el-story .el-story-media-frame {
    opacity: 1;
    transform: none;
  }

  .el-story-list li:hover {
    padding-left: 3.15rem;
  }
}

/* --------------------------------------------------------------------------
   Secondary page storytelling (sec-)
   -------------------------------------------------------------------------- */
.sec-page {
  overflow-x: clip;
}

.sec-page [id] {
  scroll-margin-top: 7.5rem;
}

.sec-progress {
  position: sticky;
  top: calc(var(--header-offset) + 3.15rem);
  z-index: 28;
  background: rgba(255, 255, 255, 0.94);
  backdrop-filter: blur(14px);
  border-bottom: 1px solid rgba(var(--ink-rgb), 0.08);
}

.sec-progress-stage {
  width: min(1180px, calc(100% - 2.5rem));
  margin: 0 auto;
  display: flex;
  gap: 0.1rem;
  overflow-x: auto;
  scrollbar-width: none;
  padding: 0.4rem 0;
}

.sec-progress-stage::-webkit-scrollbar { display: none; }

@media (min-width: 900px) {
  .sec-progress-stage {
    width: min(1180px, calc(100% - 4rem));
  }
}

.sec-progress a {
  flex: 0 0 auto;
  padding: 0.55rem 0.75rem;
  font-size: 0.76rem;
  font-weight: 600;
  color: rgba(var(--ink-rgb), 0.48);
  text-decoration: none;
  border-bottom: 2px solid transparent;
  white-space: nowrap;
  transition: color 0.2s ease, border-color 0.2s ease;
}

.sec-progress a:hover,
.sec-progress a:focus-visible {
  color: var(--ink);
  outline: none;
}

.sec-progress a.is-active {
  color: var(--ink);
  border-bottom-color: var(--gold);
}

.sec-phase-intro-stage,
.sec-story-stage,
.sec-continue-stage,
.sec-band-stage {
  width: min(1180px, calc(100% - 2.5rem));
  margin: 0 auto;
}



@media (min-width: 900px) {
  .sec-phase-intro-stage,
  .sec-story-stage,
  .sec-continue-stage,
  .sec-band-stage {
    width: min(1180px, calc(100% - 4rem));
  }
}

.sec-phase-intro {
  padding: 3.25rem 0 3.5rem;
  background: var(--primary-light);
}

.sec-phase-intro--alt {
  background: rgba(255, 255, 255, 0.55);
}

@media (min-width: 900px) {
  .sec-phase-intro { padding: 4.75rem 0 5rem; }
}

.sec-phase-intro-stage {
  display: grid;
  gap: 1.75rem;
  align-items: center;
}

@media (min-width: 900px) {
  .sec-phase-intro-stage {
    grid-template-columns: minmax(0, 0.95fr) minmax(0, 1.05fr);
    gap: clamp(2.5rem, 5vw, 4.5rem);
    align-items: start;
  }

  .sec-phase-intro-stage > :not(.sec-phase-intro-media) {
    grid-column: 2;
    min-width: 0;
  }

  .sec-phase-intro-stage > .sec-phase-intro-media {
    grid-column: 1;
    grid-row: 1 / -1;
    min-width: 0;
  }

  .sec-phase-intro-stage--reverse {
    grid-template-columns: minmax(0, 1.08fr) minmax(0, 0.92fr);
  }

  .sec-phase-intro-stage--reverse > :not(.sec-phase-intro-media) {
    grid-column: 1;
  }

  .sec-phase-intro-stage--reverse > .sec-phase-intro-media {
    grid-column: 2;
    grid-row: 1 / -1;
  }
}

.sec-phase-intro-media { margin: 0; }

.sec-phase-intro-media-frame {
  overflow: hidden;
  border-radius: calc(var(--radius) + 0.15rem);
  aspect-ratio: 4 / 5;
  background: var(--primary);
  will-change: transform;
}

.sec-phase-intro-media-frame img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transform: scale(1.06);
  transition: transform 1.2s var(--ease-editorial, cubic-bezier(0.22, 1, 0.36, 1));
}

.sec-phase-intro.is-inview .sec-phase-intro-media-frame img {
  transform: scale(1);
}

.sec-phase-intro-copy {
  opacity: 0;
  transform: translate3d(0, 18px, 0);
  transition: opacity 0.7s ease, transform 0.7s var(--ease-editorial, cubic-bezier(0.22, 1, 0.36, 1));
}

.sec-phase-intro.is-inview .sec-phase-intro-copy {
  opacity: 1;
  transform: none;
}

.sec-lede {
  margin: 1.1rem 0 0;
  font-size: clamp(1rem, 1.8vw, 1.1rem);
  line-height: 1.7;
  color: rgba(var(--ink-rgb), 0.82);
  max-width: 60ch;
}

.sec-lede--second {
  margin-top: 1rem;
}

.sec-story {
  padding: 3.5rem 0 4.25rem;
  background: rgba(255, 255, 255, 0.55);
}

.sec-story--paper {
  background: var(--primary-light);
}

.sec-story--ink {
  background: var(--primary);
  color: #fff;
}

@media (min-width: 900px) {
  .sec-story { padding: 5rem 0 5.75rem; }
}

.sec-story-header {
  max-width: 54ch;
  margin-bottom: 1.75rem;
}

.sec-story-header--flush {
  max-width: none;
  margin-bottom: 0;
}

.sec-story-header .section-heading {
  margin-bottom: 0.85rem;
}

.sec-story--program .acad-hover-acc {
  margin-top: 1.5rem;
}

.sec-story--program .sec-story-copy .section-heading,
.sec-story--gem .sec-story-copy .section-heading,
.sec-story--achievement .sec-story-copy .section-heading {
  margin-bottom: 1rem;
}

.sec-story--gem .sec-value-row {
  margin-top: 1.25rem;
}

.sec-story--gem .sec-story-list {
  margin-top: 1.35rem;
}

.sec-story--achievement .sec-prose {
  opacity: 1;
  transform: none;
}

.sec-story--ink .section-heading,
.sec-story--ink .section-copy {
  color: inherit;
}

.sec-story--ink .section-copy {
  color: rgba(255, 255, 255, 0.74);
}

.sec-story-stage--split {
  display: grid;
  gap: 1.75rem;
  align-items: center;
}

@media (min-width: 900px) {
  .sec-story-stage--split {
    grid-template-columns: minmax(0, 1.05fr) minmax(0, 0.95fr);
    gap: clamp(2.5rem, 5vw, 4.5rem);
    align-items: start;
  }

  .sec-story-stage--split > :not(.sec-story-media) {
    grid-column: 1;
    min-width: 0;
  }

  .sec-story-stage--split > .sec-story-media {
    grid-column: 2;
    grid-row: 1 / -1;
    min-width: 0;
  }

  .sec-story-stage--reverse {
    grid-template-columns: minmax(0, 0.95fr) minmax(0, 1.05fr);
  }

  .sec-story-stage--reverse > :not(.sec-story-media) {
    grid-column: 2;
  }

  .sec-story-stage--reverse > .sec-story-media {
    grid-column: 1;
    grid-row: 1 / -1;
  }
}

.sec-story-media { margin: 0; }

.sec-story-media-frame {
  overflow: hidden;
  border-radius: calc(var(--radius) + 0.15rem);
  aspect-ratio: 4 / 5;
  background: rgba(0, 0, 0, 0.2);
  opacity: 0;
  transform: translate3d(0, 18px, 0);
  transition: opacity 0.7s ease, transform 0.7s var(--ease-editorial, cubic-bezier(0.22, 1, 0.36, 1));
}

.sec-story.is-inview .sec-story-media-frame {
  opacity: 1;
  transform: none;
}

.sec-story-media-frame img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transform: scale(1.05);
  transition: transform 1.15s var(--ease-editorial, cubic-bezier(0.22, 1, 0.36, 1));
}

.sec-story.is-inview .sec-story-media-frame img {
  transform: scale(1);
}

.sec-story-copy,
.sec-story-header,
.sec-prose,
.sec-table-wrap,
.sec-note,
.sec-trait-list,
.sec-value-row,
.sec-story-list {
  opacity: 0;
  transform: translate3d(0, 16px, 0);
  transition: opacity 0.65s ease 0.06s, transform 0.65s var(--ease-editorial, cubic-bezier(0.22, 1, 0.36, 1)) 0.06s;
}

.sec-story.is-inview .sec-story-copy,
.sec-story.is-inview .sec-story-header,
.sec-story.is-inview .sec-prose,
.sec-story.is-inview .sec-table-wrap,
.sec-story.is-inview .sec-note,
.sec-story.is-inview .sec-trait-list,
.sec-story.is-inview .sec-value-row,
.sec-story.is-inview .sec-story-list,
.sec-story.is-inview .acad-hover-acc {
  opacity: 1;
  transform: none;
}

.sec-trait-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 0;
  border-top: 1px solid rgba(var(--ink-rgb), 0.1);
}

.sec-trait {
  display: grid;
  gap: 0.35rem 1.25rem;
  padding: 1.35rem 0;
  border-bottom: 1px solid rgba(var(--ink-rgb), 0.1);
  transition-delay: calc(var(--i, 0) * 0.06s);
}

@media (min-width: 800px) {
  .sec-trait {
    grid-template-columns: 2.5rem minmax(0, 1fr);
    align-items: start;
  }
}

.sec-trait-index {
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  color: var(--gold);
  padding-top: 0.25rem;
}

.sec-trait-title {
  margin: 0 0 0.4rem;
  font-size: 1.12rem;
  font-weight: 600;
  letter-spacing: -0.02em;
}

.sec-trait-copy {
  margin: 0;
  font-size: 0.98rem;
  line-height: 1.65;
  color: rgba(var(--ink-rgb), 0.76);
  max-width: 62ch;
}

@media (min-width: 800px) {
  .sec-trait-title,
  .sec-trait-copy {
    grid-column: 2;
  }
}

.sec-chip-row,
.sec-value-row {
  list-style: none;
  margin: 1.35rem 0 0;
  padding: 0;
  display: flex;
  flex-wrap: wrap;
  gap: 0.55rem;
}

.sec-chip-row li,
.sec-value-row li {
  padding: 0.45rem 0.85rem;
  font-size: 0.88rem;
  font-weight: 600;
  border-top: 2px solid var(--gold);
  background: rgba(255, 255, 255, 0.08);
}

.sec-story:not(.sec-story--ink) .sec-value-row li,
.sec-story:not(.sec-story--ink) .sec-chip-row li {
  background: rgba(var(--primary-rgb), 0.07);
  color: var(--ink);
}

.sec-story--ink .sec-chip-row li {
  color: #fff;
}

.sec-story-list {
  margin: 1.5rem 0 0;
  padding-left: 1.15rem;
  display: grid;
  gap: 0.75rem;
  max-width: 62ch;
}

.sec-story-list li {
  font-size: clamp(1rem, 1.8vw, 1.1rem);
  line-height: 1.65;
  color: rgba(var(--ink-rgb), 0.8);
}

.sec-prose {
  max-width: 62ch;
  display: grid;
  gap: 1rem;
}

.sec-prose .section-copy {
  margin: 0;
}

.sec-story--band {
  position: relative;
  isolation: isolate;
  min-height: clamp(26rem, 68vh, 38rem);
  display: grid;
  align-items: end;
  color: #fff;
  overflow: hidden;
  padding: 0;
  background: var(--primary);
}

.sec-band-visual {
  position: absolute;
  inset: 0;
  z-index: 0;
}

.sec-band-visual img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transform: scale(1.05);
  will-change: transform;
}

.sec-band-veil {
  position: absolute;
  inset: 0;
  background:
    linear-gradient(180deg, rgba(var(--primary-rgb), 0.32) 0%, rgba(var(--primary-rgb), 0.72) 48%, rgba(var(--primary-rgb), 0.92) 100%),
    linear-gradient(90deg, rgba(var(--primary-rgb), 0.5) 0%, transparent 62%);
}

.sec-band-stage {
  position: relative;
  z-index: 1;
  padding: 4.5rem 0 4rem;
  max-width: 44rem;
  opacity: 0;
  transform: translate3d(0, 18px, 0);
  transition: opacity 0.7s ease, transform 0.7s var(--ease-editorial, cubic-bezier(0.22, 1, 0.36, 1));
}

.sec-story--band.is-inview .sec-band-stage {
  opacity: 1;
  transform: none;
}

@media (min-width: 900px) {
  .sec-band-stage {
    max-width: none;
    padding: 6rem 0 5rem;
  }

  .sec-band-stage .section-heading,
  .sec-band-stage .sec-band-copy {
    max-width: 42rem;
  }
}

.sec-story--band .section-heading {
  color: #fff;
  margin-bottom: 1.15rem;
}

.sec-band-copy {
  margin: 0 0 1rem;
  font-size: clamp(1.02rem, 1.5vw, 1.12rem);
  line-height: 1.7;
  color: rgba(255, 255, 255, 0.8);
}

.sec-band-copy:last-child {
  margin-bottom: 0;
}

.sec-table-wrap {
  overflow-x: auto;
  margin: 0 0 1.5rem;
  border: 1px solid rgba(var(--ink-rgb), 0.1);
  background: rgba(255, 255, 255, 0.8);
  border-radius: var(--radius);
}

.sec-table {
  width: 100%;
  border-collapse: collapse;
  min-width: 28rem;
}

.sec-table th,
.sec-table td {
  padding: 0.85rem 1rem;
  text-align: left;
  border-bottom: 1px solid rgba(var(--ink-rgb), 0.08);
  font-size: 0.98rem;
  line-height: 1.45;
}

.sec-table thead th {
  font-size: 0.72rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--primary);
  background: rgba(var(--primary-rgb), 0.05);
}

.sec-table tbody tr:last-child th,
.sec-table tbody tr:last-child td {
  border-bottom: 0;
}

.sec-note {
 
  font-size: clamp(1rem, 1.8vw, 1.1rem);
}

.sec-continue {
  padding: 2.25rem 0 5rem;
  background: var(--primary-light);
}

.sec-continue-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.85rem 1.15rem;
}

@media (max-width: 899px) {
  .sec-progress {
    top: calc(var(--header-offset) + 3rem);
  }

  .sec-page [id] {
    scroll-margin-top: 6.75rem;
  }
}

@media (prefers-reduced-motion: reduce) {
  .sec-phase-intro-copy,
  .sec-phase-intro-media-frame img,
  .sec-story-copy,
  .sec-story-header,
  .sec-prose,
  .sec-table-wrap,
  .sec-note,
  .sec-trait-list,
  .sec-value-row,
  .sec-story-list,
  .sec-story-media-frame,
  .sec-story-media-frame img,
  .sec-band-stage,
  .sec-band-visual img {
    transition: none !important;
    animation: none !important;
    transform: none !important;
  }

  .sec-phase-intro .sec-phase-intro-copy,
  .sec-story .sec-story-copy,
  .sec-story .sec-story-header,
  .sec-story .sec-prose,
  .sec-story .sec-table-wrap,
  .sec-story .sec-note,
  .sec-story .sec-trait-list,
  .sec-story .sec-value-row,
  .sec-story .sec-story-list,
  .sec-story .sec-story-media-frame,
  .sec-story--band .sec-band-stage {
    opacity: 1;
    transform: none;
  }
}

/* --------------------------------------------------------------------------
   Inclusion page storytelling (inc-)
   -------------------------------------------------------------------------- */
.inc-page {
  overflow-x: clip;
}

.inc-page [id] {
  scroll-margin-top: 7.5rem;
}

.inc-progress {
  position: sticky;
  top: calc(var(--header-offset) + 3.15rem);
  z-index: 28;
  background: rgba(255, 255, 255, 0.94);
  backdrop-filter: blur(14px);
  border-bottom: 1px solid rgba(var(--ink-rgb), 0.08);
}

.inc-progress-stage {
  width: min(1180px, calc(100% - 2.5rem));
  margin: 0 auto;
  display: flex;
  gap: 0.1rem;
  overflow-x: auto;
  scrollbar-width: none;
  padding: 0.4rem 0;
}

.inc-progress-stage::-webkit-scrollbar {
  display: none;
}

@media (min-width: 900px) {
  .inc-progress-stage {
    width: min(1180px, calc(100% - 4rem));
  }
}

.inc-progress a {
  flex: 0 0 auto;
  padding: 0.55rem 0.8rem;
  font-size: 0.78rem;
  font-weight: 600;
  color: rgba(var(--ink-rgb), 0.48);
  text-decoration: none;
  border-bottom: 2px solid transparent;
  white-space: nowrap;
  transition: color 0.2s ease, border-color 0.2s ease;
}

.inc-progress a:hover,
.inc-progress a:focus-visible {
  color: var(--ink);
  outline: none;
}

.inc-progress a.is-active {
  color: var(--ink);
  border-bottom-color: var(--gold);
}

.inc-overview-stage,
.inc-story-stage,
.inc-continue-stage,
.inc-band-stage {
  width: min(1180px, calc(100% - 2.5rem));
  margin: 0 auto;
}

@media (min-width: 900px) {
  .inc-overview-stage,
  .inc-story-stage,
  .inc-continue-stage,
  .inc-band-stage {
    width: min(1180px, calc(100% - 4rem));
  }
}

.inc-overview {
  padding: 3.25rem 0 3.5rem;
  background: var(--primary-light);
}

@media (min-width: 900px) {
  .inc-overview {
    padding: 4.75rem 0 5rem;
  }
}

.inc-overview-stage {
  display: grid;
  gap: 1.75rem;
  align-items: center;
}

@media (min-width: 900px) {
  .inc-overview-stage {
    grid-template-columns: minmax(0, 0.92fr) minmax(0, 1.08fr);
    gap: clamp(2.5rem, 5vw, 4.5rem);
  }
}

.inc-overview-media {
  margin: 0;
}

.inc-overview-media-frame {
  overflow: hidden;
  border-radius: calc(var(--radius) + 0.15rem);
  aspect-ratio: 4 / 5;
  background: var(--primary);
  will-change: transform;
}

.inc-overview-media-frame img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transform: scale(1.06);
  transition: transform 1.2s var(--ease-editorial, cubic-bezier(0.22, 1, 0.36, 1));
}

.inc-overview.is-inview .inc-overview-media-frame img {
  transform: scale(1);
}

.inc-overview-copy {
  opacity: 0;
  transform: translate3d(0, 18px, 0);
  transition:
    opacity 0.7s ease,
    transform 0.7s var(--ease-editorial, cubic-bezier(0.22, 1, 0.36, 1));
}

.inc-overview.is-inview .inc-overview-copy {
  opacity: 1;
  transform: none;
}

.inc-lede {
  margin: 0;
  font-size: clamp(1rem, 1.8vw, 1.1rem);
  line-height: 1.7;
  color: rgba(var(--ink-rgb), 0.84);
}

.inc-lede--second {
  margin-top: 1rem;
}

.inc-story {
  padding: 3.5rem 0 4.25rem;
  background: rgba(255, 255, 255, 0.55);
}

@media (min-width: 900px) {
  .inc-story {
    padding: 5rem 0 5.75rem;
  }
}

.inc-story--provision {
  background: rgba(255, 255, 255, 0.55);
}

.inc-story--support {
  background: var(--primary-light);
}

.inc-story--genius {
  background: rgba(255, 255, 255, 0.72);
}

.inc-story-header {
  
  margin-bottom: 1.75rem;
}

.inc-story-header--flush {
  max-width: none;
  margin-bottom: 0;
}

.inc-story-header .section-heading {
  margin-bottom: 0.85rem;
}

.inc-story--genius .acad-hover-acc {
  margin-top: 1.5rem;
}

.inc-story-stage--split {
  display: grid;
  gap: 1.85rem;
  align-items: center;
}

@media (min-width: 900px) {
  .inc-story-stage--split {
    grid-template-columns: minmax(0, 1.05fr) minmax(0, 0.95fr);
    gap: clamp(2.5rem, 5vw, 4.5rem);
  }

  .inc-story-stage--reverse {
    grid-template-columns: minmax(0, 0.95fr) minmax(0, 1.05fr);
  }

  .inc-story-stage--reverse .inc-story-media {
    order: -1;
  }
}

.inc-story-media {
  margin: 0;
}

.inc-story-media-frame {
  overflow: hidden;
  border-radius: calc(var(--radius) + 0.15rem);
  aspect-ratio: 4 / 5;
  background: var(--primary);
  opacity: 0;
  transform: translate3d(0, 22px, 0);
  transition:
    opacity 0.75s ease,
    transform 0.75s var(--ease-editorial, cubic-bezier(0.22, 1, 0.36, 1));
}

.inc-story.is-inview .inc-story-media-frame {
  opacity: 1;
  transform: none;
}

.inc-story-media-frame img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transform: scale(1.06);
  transition: transform 1.15s var(--ease-editorial, cubic-bezier(0.22, 1, 0.36, 1));
}

.inc-story.is-inview .inc-story-media-frame img {
  transform: scale(1);
}

.inc-story-copy,
.inc-story-header {
  opacity: 0;
  transform: translate3d(0, 18px, 0);
  transition:
    opacity 0.7s ease,
    transform 0.7s var(--ease-editorial, cubic-bezier(0.22, 1, 0.36, 1));
}

.inc-story .inc-pathway,
.inc-story .inc-scaffold-row,
.inc-story .acad-hover-acc {
  opacity: 0;
  transform: translate3d(0, 16px, 0);
  transition:
    opacity 0.7s ease 0.08s,
    transform 0.7s var(--ease-editorial, cubic-bezier(0.22, 1, 0.36, 1)) 0.08s;
}

.inc-story.is-inview .inc-story-copy,
.inc-story.is-inview .inc-story-header,
.inc-story.is-inview .inc-pathway,
.inc-story.is-inview .inc-scaffold-row,
.inc-story.is-inview .acad-hover-acc {
  opacity: 1;
  transform: none;
}

.inc-pathway {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 0.85rem;
}

.inc-pathway-step {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 1rem;
  align-items: center;
  padding: 1rem 1.1rem;
  border: 1px solid rgba(var(--ink-rgb), 0.1);
  border-radius: calc(var(--radius) - 0.05rem);
  background: rgba(255, 255, 255, 0.72);
  transition:
    border-color 0.3s ease,
    background 0.3s ease,
    transform 0.35s var(--ease-editorial, cubic-bezier(0.22, 1, 0.36, 1)),
    box-shadow 0.35s ease;
  transition-delay: calc(var(--i, 0) * 0.06s);
}

.inc-pathway-step:hover,
.inc-pathway-step:focus-within {
  border-color: rgba(var(--primary-rgb), 0.28);
  background: #fff;
  transform: translateY(-2px);
  box-shadow: 0 10px 28px rgba(var(--ink-rgb), 0.06);
}

.inc-pathway-num {
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.14em;
  color: var(--primary);
}

.inc-pathway-title {
  margin: 0;
  font-size: 1.02rem;
  font-weight: 600;
  letter-spacing: -0.015em;
  line-height: 1.35;
  color: var(--ink);
}

.inc-scaffold-row {
  list-style: none;
  margin: 1.5rem 0 0;
  padding: 0;
  display: flex;
  flex-wrap: wrap;
  gap: 0.55rem;
}

.inc-scaffold-row li {
  padding: 0.55rem 0.9rem;
  font-size: 0.88rem;
  font-weight: 600;
  letter-spacing: -0.01em;
  color: var(--ink);
  background: rgba(255, 255, 255, 0.8);
  border: 1px solid rgba(var(--ink-rgb), 0.1);
  border-radius: 999px;
  transition:
    border-color 0.25s ease,
    background 0.25s ease,
    color 0.25s ease,
    transform 0.3s var(--ease-editorial, cubic-bezier(0.22, 1, 0.36, 1));
  transition-delay: calc(var(--i, 0) * 0.04s);
}

.inc-scaffold-row li:hover,
.inc-scaffold-row li:focus-visible {
  border-color: rgba(var(--primary-rgb), 0.35);
  background: #fff;
  color: var(--primary);
  transform: translateY(-2px);
  outline: none;
}

.inc-story--band {
  position: relative;
  isolation: isolate;
  padding: 0;
  height: 100%;
  min-height: 75dvh;
  display: grid;
  align-items: center;
  overflow: hidden;
  background: var(--primary);
  color: #fff;
}

.inc-band-visual {
  position: absolute;
  inset: 0;
  z-index: 0;
}

.inc-band-visual img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 0%;
  transform: scale(1.05);
  will-change: transform;
}

.inc-band-veil {
  position: absolute;
  inset: 0;
  background:
    linear-gradient(180deg, rgba(var(--primary-rgb), 0.28) 0%, rgba(var(--primary-rgb), 0.55) 42%, rgba(var(--primary-rgb), 0.92) 100%);
}

.inc-band-stage {
  position: relative;
  z-index: 1;
  padding: 8rem 0 8rem;
  opacity: 0;
  transform: translate3d(0, 22px, 0);
  transition:
    opacity 0.75s ease,
    transform 0.75s var(--ease-editorial, cubic-bezier(0.22, 1, 0.36, 1));
}

.inc-story--band.is-inview .inc-band-stage {
  opacity: 1;
  transform: none;
}

.inc-story--band .section-heading {
  color: #fff;
  max-width: 18ch;
  margin-bottom: 1.1rem;
}

.inc-band-copy {
  margin: 0 0 1rem;
  max-width: 48ch;
  font-size: clamp(1rem, 1.8vw, 1.1rem);
  line-height: 1.7;
  color: rgba(255, 255, 255, 0.82);
}

.inc-band-copy:last-child {
  margin-bottom: 0;
}

.inc-story--band .section-kicker--on-dark .page-eyebrow-rule {
  background: var(--gold-whisper);
}

.inc-continue {
  padding: 2.25rem 0 5rem;
  background: var(--primary-light);
}

.inc-continue-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.85rem 1.15rem;
}

@media (max-width: 899px) {
  .inc-progress {
    top: calc(var(--header-offset) + 3rem);
  }

  .inc-page [id] {
    scroll-margin-top: 6.75rem;
  }

  .inc-story-stage--reverse .inc-story-media {
    order: 0;
  }
}

@media (prefers-reduced-motion: reduce) {
  .inc-overview-copy,
  .inc-overview-media-frame img,
  .inc-story-copy,
  .inc-story-header,
  .inc-pathway,
  .inc-scaffold-row,
  .inc-story .acad-hover-acc,
  .inc-story-media-frame,
  .inc-story-media-frame img,
  .inc-band-stage,
  .inc-band-visual img,
  .inc-pathway-step,
  .inc-scaffold-row li {
    transition: none !important;
    animation: none !important;
    transform: none !important;
  }

  .inc-overview .inc-overview-copy,
  .inc-story .inc-story-copy,
  .inc-story .inc-story-header,
  .inc-story .inc-pathway,
  .inc-story .inc-scaffold-row,
  .inc-story .acad-hover-acc,
  .inc-story .inc-story-media-frame,
  .inc-story--band .inc-band-stage {
    opacity: 1;
    transform: none;
  }
}

/* --------------------------------------------------------------------------
   Outcomes page storytelling (out-)
   -------------------------------------------------------------------------- */
.out-page {
  overflow-x: clip;
}

.out-page [id] {
  scroll-margin-top: 7.5rem;
}

.out-progress {
  position: sticky;
  top: calc(var(--header-offset) + 3.15rem);
  z-index: 28;
  background: rgba(255, 255, 255, 0.94);
  backdrop-filter: blur(14px);
  border-bottom: 1px solid rgba(var(--ink-rgb), 0.08);
}

.out-progress-stage {
  width: min(1180px, calc(100% - 2.5rem));
  margin: 0 auto;
  display: flex;
  gap: 0.1rem;
  overflow-x: auto;
  scrollbar-width: none;
  padding: 0.4rem 0;
}

.out-progress-stage::-webkit-scrollbar {
  display: none;
}

@media (min-width: 900px) {
  .out-progress-stage {
    width: min(1180px, calc(100% - 4rem));
  }
}

.out-progress a {
  flex: 0 0 auto;
  padding: 0.55rem 0.8rem;
  font-size: 0.78rem;
  font-weight: 600;
  color: rgba(var(--ink-rgb), 0.48);
  text-decoration: none;
  border-bottom: 2px solid transparent;
  white-space: nowrap;
  transition: color 0.2s ease, border-color 0.2s ease;
}

.out-progress a:hover,
.out-progress a:focus-visible {
  color: var(--ink);
  outline: none;
}

.out-progress a.is-active {
  color: var(--ink);
  border-bottom-color: var(--gold);
}

.out-overview-stage,
.out-impact-stage,
.out-story-stage,
.out-dest-stage,
.out-continue-stage,
.out-band-stage,
.out-foundations-stage {
  width: min(1180px, calc(100% - 2.5rem));
  margin: 0 auto;
}

@media (min-width: 900px) {
  .out-overview-stage,
  .out-impact-stage,
  .out-story-stage,
  .out-dest-stage,
  .out-continue-stage,
  .out-band-stage,
  .out-foundations-stage {
    width: min(1180px, calc(100% - 4rem));
  }
}

.out-overview {
  padding: 3.25rem 0 3.5rem;
  background: var(--paper);
}

@media (min-width: 900px) {
  .out-overview {
    padding: 4.75rem 0 5rem;
  }
}

.out-overview-stage {
  display: grid;
  gap: 1.75rem;
  align-items: center;
}

@media (min-width: 900px) {
  .out-overview-stage {
    grid-template-columns: minmax(0, 0.92fr) minmax(0, 1.08fr);
    gap: clamp(2.5rem, 5vw, 4.5rem);
  }
}

.out-overview-media {
  margin: 0;
}

.out-overview-media-frame {
  overflow: hidden;
  border-radius: calc(var(--radius) + 0.15rem);
  aspect-ratio: 4 / 5;
  background: var(--primary);
  will-change: transform;
}

.out-overview-media-frame img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transform: scale(1.06);
  transition: transform 1.2s var(--ease-editorial, cubic-bezier(0.22, 1, 0.36, 1));
}

.out-overview.is-inview .out-overview-media-frame img {
  transform: scale(1);
}

.out-overview-copy {
  opacity: 0;
  transform: translate3d(0, 18px, 0);
  transition:
    opacity 0.7s ease,
    transform 0.7s var(--ease-editorial, cubic-bezier(0.22, 1, 0.36, 1));
}

.out-overview.is-inview .out-overview-copy {
  opacity: 1;
  transform: none;
}

.out-lede {
  margin: 0;
  font-size: clamp(1rem, 1.8vw, 1.1rem);
  line-height: 1.7;
  color: rgba(var(--ink-rgb), 0.84);
}

.out-lede--second {
  margin-top: 1rem;
}

.out-impact {
  padding: 3.5rem 0 4rem;
  background: rgba(255, 255, 255, 0.72);
}

@media (min-width: 900px) {
  .out-impact {
    padding: 5rem 0 5.5rem;
  }
}

.out-impact-header {
  max-width: 45ch;
  margin-bottom: 2.25rem;
  opacity: 0;
  transform: translate3d(0, 16px, 0);
  transition:
    opacity 0.65s ease,
    transform 0.65s var(--ease-editorial, cubic-bezier(0.22, 1, 0.36, 1));
}

.out-impact.is-inview .out-impact-header {
  opacity: 1;
  transform: none;
}

.out-impact-header .section-heading {
  margin-bottom: 0;
}

.out-stats {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 1.75rem 1.25rem;
  border-top: 1px solid rgba(var(--ink-rgb), 0.1);
  padding-top: 2rem;
}

@media (min-width: 700px) {
  .out-stats {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1.5rem;
  }
}

.out-stat {
   transform: translate3d(0, 22px, 0);
  transition:
    opacity 0.7s ease,
    transform 0.7s var(--ease-editorial, cubic-bezier(0.22, 1, 0.36, 1));
  transition-delay: calc(var(--i, 0) * 0.1s);
}

.out-impact.is-inview .out-stat {
  opacity: 1;
  transform: none;
}

.out-stat-value {
  margin: 0;
  font-size: clamp(2.8rem, 7vw, 3rem);
  font-weight: 500;
  letter-spacing: -0.05em;
  line-height: 0.95;
  color: var(--ink);
}

.out-stat-label {
  margin: 0.75rem 0 0;
  font-size: 0.98rem;
  line-height: 1.45;
  color: rgba(var(--ink-rgb), 0.68);
}

.out-story {
  padding: 3.5rem 0 4.25rem;
  background: rgba(255, 255, 255, 0.55);
}

@media (min-width: 900px) {
  .out-story {
    padding: 5rem 0 5.75rem;
  }
}

.out-story--prep {
  background: var(--primary-light);
}

.out-story--destinations {
  background: rgba(255, 255, 255, 0.72);
  padding-bottom: 5rem;
}

.out-story-header {
  margin-bottom: 1.75rem;
}

.out-story-header--flush {
  max-width: none;
  margin-bottom: 0;
}

.out-story-header .section-heading {
  margin-bottom: 0.85rem;
}

.out-story--prep .acad-hover-acc {
  margin-top: 1.5rem;
}

.out-story-stage--split {
  display: grid;
  gap: 1.85rem;
  align-items: center;
}

@media (min-width: 900px) {
  .out-story-stage--split {
    grid-template-columns: minmax(0, 1.05fr) minmax(0, 0.95fr);
    gap: clamp(2.5rem, 5vw, 4.5rem);
  }
}

.out-story-media {
  margin: 0;
}

.out-story-media-frame {
  overflow: hidden;
  border-radius: calc(var(--radius) + 0.15rem);
  aspect-ratio: 4 / 5;
  background: var(--primary);
  opacity: 0;
  transform: translate3d(0, 22px, 0);
  transition:
    opacity 0.75s ease,
    transform 0.75s var(--ease-editorial, cubic-bezier(0.22, 1, 0.36, 1));
}

.out-story.is-inview .out-story-media-frame {
  opacity: 1;
  transform: none;
}

.out-story-media-frame img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transform: scale(1.06);
  transition: transform 1.15s var(--ease-editorial, cubic-bezier(0.22, 1, 0.36, 1));
}

.out-story.is-inview .out-story-media-frame img {
  transform: scale(1);
}

.out-story-copy,
.out-story-header {
  opacity: 0;
  transform: translate3d(0, 18px, 0);
  transition:
    opacity 0.7s ease,
    transform 0.7s var(--ease-editorial, cubic-bezier(0.22, 1, 0.36, 1));
}

.out-story .acad-hover-acc,
.out-story .out-dest-layout {
  opacity: 0;
  transform: translate3d(0, 16px, 0);
  transition:
    opacity 0.7s ease 0.08s,
    transform 0.7s var(--ease-editorial, cubic-bezier(0.22, 1, 0.36, 1)) 0.08s;
}

.out-story.is-inview .out-story-copy,
.out-story.is-inview .out-story-header,
.out-story.is-inview .acad-hover-acc,
.out-story.is-inview .out-dest-layout {
  opacity: 1;
  transform: none;
}

.out-story--band {
  position: relative;
  isolation: isolate;
  padding: 0;
  min-height: clamp(26rem, 58vh, 36rem);
  display: grid;
  align-items: end;
  overflow: hidden;
  background: var(--primary);
  color: #fff;
}

.out-band-visual {
  position: absolute;
  inset: 0;
  z-index: 0;
}

.out-band-visual img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transform: scale(1.05);
  will-change: transform;
}

.out-band-veil {
  position: absolute;
  inset: 0;
  background:
    linear-gradient(180deg, rgba(var(--primary-rgb), 0.28) 0%, rgba(var(--primary-rgb), 0.55) 42%, rgba(var(--primary-rgb), 0.92) 100%);
}

.out-band-stage {
  position: relative;
  z-index: 1;
  padding: 4rem 0 3.5rem;
  opacity: 0;
  transform: translate3d(0, 22px, 0);
  transition:
    opacity 0.75s ease,
    transform 0.75s var(--ease-editorial, cubic-bezier(0.22, 1, 0.36, 1));
}

.out-story--band.is-inview .out-band-stage {
  opacity: 1;
  transform: none;
}

.out-story--band .section-heading {
  color: #fff;
  max-width: 16ch;
  margin-bottom: 1.1rem;
}

.out-band-copy {
  margin: 0;
  max-width: 46ch;
  font-size: clamp(1.02rem, 1.6vw, 1.15rem);
  line-height: 1.7;
  color: rgba(255, 255, 255, 0.82);
}

.out-story--band .section-kicker--on-dark .page-eyebrow-rule {
  background: var(--gold-whisper);
}

.out-foundations {
  padding: 3.5rem 0;
  background: var(--primary);
  color: #fff;
}

@media (min-width: 900px) {
  .out-foundations {
    padding: 4.75rem 0;
  }
}

.out-foundations-quote {
  margin: 0;
  font-size: clamp(1.55rem, 3.4vw, 2.35rem);
  font-weight: 500;
  letter-spacing: -0.035em;
  line-height: 1.28;
  color: #fff;
  opacity: 0;
  transform: translate3d(0, 18px, 0);
  transition:
    opacity 0.7s ease,
    transform 0.7s var(--ease-editorial, cubic-bezier(0.22, 1, 0.36, 1));
}

.out-foundations.is-inview .out-foundations-quote {
  opacity: 1;
  transform: none;
}

.out-regions {
  display: grid;
  gap: 0;
  min-width: 0;
}

.out-region {
  padding: 1.35rem 0;
  border-top: 1px solid rgba(var(--ink-rgb), 0.1);
}

.out-region:last-child {
  border-bottom: 1px solid rgba(var(--ink-rgb), 0.1);
}

.out-region-name {
  margin: 0 0 0.75rem;
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--gold);
}

.out-region .out-uni-list {
  margin: 0;
}

.out-dest-layout {
  display: grid;
  gap: 2rem;
  align-items: start;
}

@media (min-width: 960px) {
  .out-dest-layout {
    display: grid;
    gap: clamp(2rem, 4vw, 3.5rem);
  }
}

.out-tablist {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem;
  margin-bottom: 1.5rem;
}

.out-tab.acad-tab {
  border-radius: 999px;
  padding: 0.55rem 0.95rem;
  font-size: 0.82rem;
  font-weight: 600;
  border: 1px solid rgba(var(--ink-rgb), 0.12);
  background: transparent;
  color: rgba(var(--ink-rgb), 0.62);
  transition:
    color 0.2s ease,
    background 0.2s ease,
    border-color 0.2s ease;
}

.out-tab.acad-tab:hover,
.out-tab.acad-tab:focus-visible {
  color: var(--ink);
  border-color: rgba(var(--ink-rgb), 0.28);
  outline: none;
}

.out-tab.acad-tab.is-active {
  color: #fff;
  background: var(--primary);
  border-color: var(--ink);
}

.out-uni-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 0;
}

@media (min-width: 700px) {
  .out-uni-list {
    display: grid;
    gap: 0.45rem;
  }
}

.out-uni-list li {
  padding: 0.55rem 0;
  font-size: clamp(1rem, 1.8vw, 1.1rem);
  line-height: 1.4;
  letter-spacing: -0.01em;
  color: var(--ink);
  transition: color 0.2s ease, padding-left 0.25s var(--ease-editorial, cubic-bezier(0.22, 1, 0.36, 1));
}

.out-uni-list li:hover {
  color: var(--primary);
  padding-left: 0.25rem;
}

.out-dest-media {
  margin: 0;
  position: relative;
}

.out-dest-media-frame {
  overflow: hidden;
  border-radius: calc(var(--radius) + 0.15rem);
  aspect-ratio: 4 / 5;
  background: var(--primary);
}

.out-dest-media-frame img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transform: scale(1.04);
  transition: transform 1.1s var(--ease-editorial, cubic-bezier(0.22, 1, 0.36, 1));
}

.out-story--destinations.is-inview .out-dest-media-frame img {
  transform: scale(1);
}

.out-dest-media:hover .out-dest-media-frame img,
.out-dest-media:focus-within .out-dest-media-frame img {
  transform: scale(1.05);
}

.out-dest-map {
  position: absolute;
  left: 1rem;
  right: 1rem;
  bottom: 1rem;
  padding: 0.85rem 1rem;
  border-radius: calc(var(--radius) - 0.1rem);
  background: rgba(255, 255, 255, 0.92);
  backdrop-filter: blur(10px);
  opacity: 0;
  transform: translate3d(0, 12px, 0);
  transition:
    opacity 0.55s ease 0.15s,
    transform 0.55s var(--ease-editorial, cubic-bezier(0.22, 1, 0.36, 1)) 0.15s;
}

.out-story--destinations.is-inview .out-dest-map {
  opacity: 1;
  transform: none;
}

.out-dest-map img {
  display: block;
  width: 100%;
  height: auto;
  opacity: 0.72;
}

.ao-congrats,
.ao-result {
  padding: 4.25rem 0;
}

@media (min-width: 900px) {
  .ao-congrats,
  .ao-result {
    padding: 6rem 0;
  }
}

.ao-congrats {
  background: var(--paper);
}

.ao-congrats-stage,
.ao-result-stage {
  width: min(1180px, calc(100% - 2.5rem));
  margin: 0 auto;
}

@media (min-width: 900px) {
  .ao-congrats-stage,
  .ao-result-stage {
    width: min(1180px, calc(100% - 4rem));
  }
}

.ao-congrats-stage {
  display: grid;
  gap: 2rem;
}

@media (min-width: 900px) {
  .ao-congrats-stage {
    grid-template-columns: minmax(16rem, 0.85fr) minmax(0, 1.15fr);
    gap: clamp(2.5rem, 5vw, 4.5rem);
    align-items: center;
  }
}

.ao-congrats-media {
  margin: 0;
}

.ao-congrats-media-frame {
  overflow: hidden;
  aspect-ratio: 4 / 5;
  border-radius: calc(var(--radius) + 0.15rem);
}

.ao-congrats-media-frame img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transform: scale(1.04);
  transition: transform 1.2s var(--ease-editorial);
}

.ao-congrats.is-inview .ao-congrats-media-frame img,
.ao-congrats-media-frame:hover img {
  transform: scale(1.08);
}

.ao-congrats-lede {
  margin: 0;
  font-size: clamp(1rem, 1.8vw, 1.1rem);
  line-height: 1.75;
  color: rgba(var(--ink-rgb), 0.76);
}

.ao-result {
  background: var(--primary-light);
}

.ao-result--alt {
  background: var(--paper);
}

.ao-result-header {
  margin-bottom: 1.75rem;
}

.ao-result-lead {
  margin: 0.65rem 0 0;
  max-width: 36ch;
  font-family: var(--font-display);
  font-size: clamp(1.15rem, 2vw, 1.45rem);
  font-weight: 500;
  letter-spacing: -0.025em;
  line-height: 1.35;
  color: var(--ink);
}

.ao-result-hero {
  margin: 0 0 2rem;
  padding: 1.75rem 0 0;
  border-top: 1px solid rgba(var(--ink-rgb), 0.1);
}

.ao-result-hero-label,
.ao-result-hero-note {
  margin: 0;
  font-size: 0.98rem;
  line-height: 1.6;
  color: rgba(var(--ink-rgb), 0.68);
}

.ao-result-hero-value {
  margin: 0.35rem 0 0.45rem;
  font-family: var(--font-display);
  font-size: clamp(3.4rem, 8vw, 5.6rem);
  font-weight: 500;
  letter-spacing: -0.05em;
  line-height: 0.95;
  color: var(--primary);
}

.ao-result-quote {
  margin: 0 0 2rem;
}

.ao-result-quote p {
  margin: 0;
  font-family: var(--font-display);
  font-size: clamp(1.12rem, 2vw, 1.4rem);
  font-weight: 500;
  letter-spacing: -0.025em;
  line-height: 1.45;
  color: var(--ink);
}

.ao-result-quote footer {
  display: grid;
  gap: 0.2rem;
  margin-top: 1.1rem;
}

.ao-result-quote cite {
  font-style: normal;
  font-size: 0.92rem;
  font-weight: 600;
  color: var(--ink);
}

.ao-result-quote footer span {
  font-size: 0.88rem;
  line-height: 1.5;
  color: rgba(var(--ink-rgb), 0.62);
}

.ao-result-stats {
  margin-top: 0.25rem;
}

@media (max-width: 767px) {
  .ao-congrats-media-frame {
    aspect-ratio: 16 / 10;
    max-height: 16.5rem;
  }
}

@media (prefers-reduced-motion: reduce) {
  .ao-congrats-media-frame img,
  .ao-result-figure img {
    transition: none !important;
    transform: none !important;
    opacity: 1 !important;
  }
}

.out-continue {
  padding: 2.25rem 0 5rem;
  background: var(--primary-light);
}

.out-continue-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.85rem 1.15rem;
}

@media (max-width: 899px) {
  .out-progress {
    top: calc(var(--header-offset) + 3rem);
  }

  .out-page [id] {
    scroll-margin-top: 6.75rem;
  }

  .out-dest-map {
    position: static;
    margin-top: 1rem;
    left: auto;
    right: auto;
    bottom: auto;
  }
}

@media (hover: none) {
  .out-uni-list li:hover {
    padding-left: 0;
  }

  .out-dest-media:hover .out-dest-media-frame img {
    transform: scale(1);
  }
}

@media (prefers-reduced-motion: reduce) {
  .out-overview-copy,
  .out-overview-media-frame img,
  .out-impact-header,
  .out-stat,
  .out-story-copy,
  .out-story-header,
  .out-story .acad-hover-acc,
  .out-story .out-dest-layout,
  .out-story-media-frame,
  .out-story-media-frame img,
  .out-band-stage,
  .out-band-visual img,
  .out-foundations-quote,
  .out-dest-media-frame img,
  .out-dest-map,
  .out-uni-list li {
    transition: none !important;
    animation: none !important;
    transform: none !important;
  }

  .out-overview .out-overview-copy,
  .out-impact .out-impact-header,
  .out-impact .out-stat,
  .out-story .out-story-copy,
  .out-story .out-story-header,
  .out-story .acad-hover-acc,
  .out-story .out-dest-layout,
  .out-story .out-story-media-frame,
  .out-story--band .out-band-stage,
  .out-foundations .out-foundations-quote,
  .out-story--destinations .out-dest-map {
    opacity: 1;
    transform: none;
  }
}

/* --------------------------------------------------------------------------
   Beyond Academics storytelling (ba-)
   -------------------------------------------------------------------------- */
.ba-page {
  overflow-x: clip;
}

.ba-page [id] {
  scroll-margin-top: 7.5rem;
}

.ba-progress {
  position: sticky;
  top: calc(var(--header-offset) + 3.15rem);
  z-index: 28;
  background: rgba(255, 255, 255, 0.94);
  backdrop-filter: blur(14px);
  border-bottom: 1px solid rgba(var(--ink-rgb), 0.08);
}

.ba-progress-stage {
  width: min(1180px, calc(100% - 2.5rem));
  margin: 0 auto;
  display: flex;
  gap: 0.1rem;
  overflow-x: auto;
  scrollbar-width: none;
  padding: 0.4rem 0;
}

.ba-progress-stage::-webkit-scrollbar {
  display: none;
}

@media (min-width: 900px) {
  .ba-progress-stage {
    width: min(1180px, calc(100% - 4rem));
  }
}

.ba-progress a {
  flex: 0 0 auto;
  padding: 0.55rem 0.8rem;
  font-size: 0.78rem;
  font-weight: 600;
  color: rgba(var(--ink-rgb), 0.48);
  text-decoration: none;
  border-bottom: 2px solid transparent;
  white-space: nowrap;
  transition: color 0.2s ease, border-color 0.2s ease;
}

.ba-progress a:hover,
.ba-progress a:focus-visible {
  color: var(--ink);
  outline: none;
}

.ba-progress a.is-active {
  color: var(--ink);
  border-bottom-color: var(--gold);
}

.ba-overview-stage,
.ba-story-stage,
.ba-section-stage,
.ba-continue-stage,
.ba-band-stage {
  width: min(1180px, calc(100% - 2.5rem));
  margin: 0 auto;
}

@media (min-width: 900px) {
  .ba-overview-stage,
  .ba-story-stage,
  .ba-section-stage,
  .ba-continue-stage,
  .ba-band-stage {
    width: min(1180px, calc(100% - 4rem));
  }
}

.ba-overview {
  padding: 3.25rem 0 3.5rem;
  background: var(--primary-light);
}

@media (min-width: 900px) {
  .ba-overview {
    padding: 4.75rem 0 5rem;
  }
}

.ba-overview-stage {
  display: grid;
  gap: 1.75rem;
  align-items: center;
}

@media (min-width: 900px) {
  .ba-overview-stage {
    grid-template-columns: minmax(0, 0.92fr) minmax(0, 1.08fr);
    gap: clamp(2.5rem, 5vw, 4.5rem);
  }
}

.ba-overview-media {
  margin: 0;
}

.ba-overview-media-frame {
  overflow: hidden;
  border-radius: calc(var(--radius) + 0.15rem);
  aspect-ratio: 4 / 5;
  background: var(--primary);
  will-change: transform;
}

.ba-overview-media-frame img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transform: scale(1.06);
  transition: transform 1.2s var(--ease-editorial, cubic-bezier(0.22, 1, 0.36, 1));
}

.ba-overview.is-inview .ba-overview-media-frame img {
  transform: scale(1);
}

.ba-overview-copy {
  opacity: 0;
  transform: translate3d(0, 18px, 0);
  transition:
    opacity 0.7s ease,
    transform 0.7s var(--ease-editorial, cubic-bezier(0.22, 1, 0.36, 1));
}

.ba-overview.is-inview .ba-overview-copy {
  opacity: 1;
  transform: none;
}

.ba-lede {
  margin: 1.1rem 0 0;
  font-size: clamp(1rem, 1.8vw, 1.1rem);
  line-height: 1.7;
  color: rgba(var(--ink-rgb), 0.84);
}

.ba-lede--second {
  margin-top: 1rem;
}

.ba-gateways {
  padding: 3.5rem 0 4.5rem;
  background: rgba(255, 255, 255, 0.72);
}

@media (min-width: 900px) {
  .ba-gateways {
    padding: 5rem 0 6rem;
  }
}

.ba-section-header {
  max-width: 70ch;
  margin-bottom: 2rem;
  opacity: 0;
  transform: translate3d(0, 16px, 0);
  transition:
    opacity 0.65s ease,
    transform 0.65s var(--ease-editorial, cubic-bezier(0.22, 1, 0.36, 1));
}

.ba-section-header--row {
  max-width: none;
  display: flex;
  flex-wrap: wrap;
  align-items: flex-end;
  justify-content: space-between;
  gap: 1rem 1.5rem;
}

.ba-section-header-copy {
  max-width: 48ch;
}

.ba-section-header-copy .section-heading {
  margin-bottom: 0;
}

.ba-gateways.is-inview .ba-section-header,
.ba-story.is-inview .ba-section-header {
  opacity: 1;
  transform: none;
}

.ba-gateway-nav {
  display: flex;
  gap: 0.55rem;
  flex-shrink: 0;
}

.ba-gateway-nav-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2.75rem;
  height: 2.75rem;
  margin: 0;
  padding: 0;
  border-radius: 999px;
  border: 1px solid rgba(var(--ink-rgb), 0.16);
  background: rgba(255, 255, 255, 0.72);
  color: var(--ink);
  font-size: 1rem;
  cursor: pointer;
  transition:
    background-color 0.25s ease,
    border-color 0.25s ease,
    color 0.25s ease,
    transform 0.25s var(--ease-editorial, cubic-bezier(0.22, 1, 0.36, 1));
}

.ba-gateway-nav-btn:hover,
.ba-gateway-nav-btn:focus-visible {
  background: var(--primary);
  border-color: var(--ink);
  color: var(--paper);
  transform: translateY(-1px);
  outline: none;
}

.ba-gateway-nav-btn:focus-visible {
  outline: 2px solid var(--primary);
  outline-offset: 3px;
}

.ba-gateway-carousel {
  --ba-gateway-w: min(78vw, 18.5rem);
  position: relative;
  opacity: 0;
  transform: translate3d(0, 14px, 0);
  transition:
    opacity 0.7s ease 0.08s,
    transform 0.7s var(--ease-editorial, cubic-bezier(0.22, 1, 0.36, 1)) 0.08s;
}

.ba-gateways.is-inview .ba-gateway-carousel {
  opacity: 1;
  transform: none;
}

@media (min-width: 640px) {
  .ba-gateway-carousel {
    --ba-gateway-w: clamp(15.5rem, 34vw, 18.5rem);
  }
}

@media (min-width: 960px) {
  .ba-gateway-carousel {
    --ba-gateway-w: clamp(16.5rem, 23vw, 20rem);
  }
}

@media (min-width: 1200px) {
  .ba-gateway-carousel {
    --ba-gateway-w: clamp(17rem, 20vw, 20.5rem);
  }
}

.ba-gateway-viewport {
  position: relative;
  overflow: hidden;
  width: 100%;
  margin: 0 -0.15rem;
  padding: 0.35rem 0.15rem 0.65rem;
  touch-action: pan-y;
  cursor: grab;
  -webkit-user-select: none;
  user-select: none;
  
}

.ba-gateway-viewport.is-dragging {
  cursor: grabbing;
}

.ba-gateway-grid {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 1.15rem;
}

.ba-gateway-grid--rail {
  display: flex;
  grid-template-columns: none;
  gap: clamp(0.9rem, 1.6vw, 1.25rem);
  width: max-content;
  will-change: transform;
  transform: translate3d(0, 0, 0);
}

.ba-gateway-grid--rail .ba-gateway {
  flex: 0 0 var(--ba-gateway-w);
  width: var(--ba-gateway-w);
}

.ba-gateway {
  opacity: 0;
  transform: translate3d(0, 22px, 0);
  transition:
    opacity 0.65s ease,
    transform 0.65s var(--ease-editorial, cubic-bezier(0.22, 1, 0.36, 1));
  transition-delay: calc(var(--i, 0) * 0.08s);
}

.ba-gateways.is-inview .ba-gateway {
  opacity: 1;
  transform: none;
}

.ba-gateway-inner {
  position: relative;
  display: grid;
  height: 100%;
  overflow: hidden;
  border-radius: calc(var(--radius) + 0.1rem);
  background: var(--primary);
  color: #fff;
  text-decoration: none;
  isolation: isolate;
  outline: none;
  transition: transform 0.4s var(--ease-editorial, cubic-bezier(0.22, 1, 0.36, 1));
}

.ba-gateway-inner:hover,
.ba-gateway-inner:focus-visible {
  transform: translateY(-4px);
}

.ba-gateway-inner:focus-visible {
  box-shadow: 0 0 0 2px var(--paper-deep), 0 0 0 4px var(--gold);
}

.ba-gateway-media {
  margin: 0;
  position: relative;
  min-height: 28rem;
  aspect-ratio: 4 / 5;
  overflow: hidden;
}

.ba-gateway-media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transform: scale(1.04);
  transition: transform 0.9s var(--ease-editorial, cubic-bezier(0.22, 1, 0.36, 1));
}

.ba-gateway-veil {
  position: absolute;
  inset: 0;
  background:
    linear-gradient(180deg, rgba(var(--primary-rgb), 0.12) 0%, rgba(var(--primary-rgb), 0.42) 42%, rgba(var(--primary-rgb), 0.92) 100%);
}

.ba-gateway-body {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 1;
  padding: 1.4rem 1.25rem 1.5rem;
}

.ba-gateway-index {
  display: block;
  margin-bottom: 0.45rem;
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.14em;
  color: var(--gold-whisper);
}

.ba-gateway-title {
  margin: 0 0 0.55rem;
  font-size: clamp(1.25rem, 2vw, 1.5rem);
  font-weight: 600;
  letter-spacing: -0.025em;
}

.ba-gateway-copy {
  margin: 0 0 0.85rem;
  font-size: 0.96rem;
  line-height: 1.55;
  color: rgba(255, 255, 255, 0.78);
  max-width: 34ch;
}

.ba-gateway-cta {
  font-size: 0.86rem;
  font-weight: 600;
  color: var(--paper);
}

.ba-gateway-inner:hover .ba-gateway-media img,
.ba-gateway-inner:focus-visible .ba-gateway-media img {
  transform: scale(1.1);
}

.ba-story {
  padding: 3.5rem 0 4.25rem;
  background: rgba(255, 255, 255, 0.55);
}

@media (min-width: 900px) {
  .ba-story {
    padding: 5rem 0 5.75rem;
  }
}

.ba-story--paper,
.ba-story--achievements,
.ba-story--data,
.ba-story--safeguarding,
.ba-story--nhs,
.ba-story--peer,
.ba-story--skills,
.ba-story--ceremony {
  background: var(--primary-light);
}

.ba-story--team,
.ba-story--split:not(.ba-story--ink) {
  background: rgba(255, 255, 255, 0.72);
}

.ba-story--ink {
  background: var(--primary);
  color: #fff;
}

.ba-story--ink .section-heading,
.ba-story--ink .ba-subheading {
  color: #fff;
}

.ba-story--ink .section-copy,
.ba-story--ink .ba-story-list li {
  color: rgba(255, 255, 255, 0.8);
}

.ba-story-stage--split {
  display: grid;
  gap: 1.85rem;
  align-items: center;
}

@media (min-width: 900px) {
  .ba-story-stage--split {
    grid-template-columns: minmax(0, 1.05fr) minmax(0, 0.95fr);
    gap: clamp(2.5rem, 5vw, 4.5rem);
  }

  .ba-story-stage--reverse {
    grid-template-columns: minmax(0, 0.95fr) minmax(0, 1.05fr);
  }

  .ba-story-stage--reverse .ba-story-media {
    order: -1;
  }
}

.ba-story-media {
  margin: 0;
}

.ba-story-media-frame {
  overflow: hidden;
  border-radius: calc(var(--radius) + 0.15rem);
  aspect-ratio: 4 / 5;
  background: var(--primary);
  opacity: 0;
  transform: translate3d(0, 22px, 0);
  transition:
    opacity 0.75s ease,
    transform 0.75s var(--ease-editorial, cubic-bezier(0.22, 1, 0.36, 1));
}

.ba-story.is-inview .ba-story-media-frame {
  opacity: 1;
  transform: none;
}

.ba-story-media-frame img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transform: scale(1.06);
  transition: transform 1.15s var(--ease-editorial, cubic-bezier(0.22, 1, 0.36, 1));
}

.ba-story.is-inview .ba-story-media-frame img {
  transform: scale(1);
}

.ba-story-copy,
.ba-prose,
.ba-table-wrap,
.ba-feature-grid,
.ba-principle-list,
.ba-skill-row,
.ba-peer-cards,
.ba-stat-row,
.ba-quote,
.ba-story .acad-hover-acc {
  opacity: 0;
  transform: translate3d(0, 18px, 0);
  transition:
    opacity 0.7s ease,
    transform 0.7s var(--ease-editorial, cubic-bezier(0.22, 1, 0.36, 1));
}

.ba-story.is-inview .ba-story-copy,
.ba-story.is-inview .ba-prose,
.ba-story.is-inview .ba-table-wrap,
.ba-story.is-inview .ba-feature-grid,
.ba-story.is-inview .ba-principle-list,
.ba-story.is-inview .ba-skill-row,
.ba-story.is-inview .ba-peer-cards,
.ba-story.is-inview .ba-stat-row,
.ba-story.is-inview .ba-quote,
.ba-story.is-inview .acad-hover-acc {
  opacity: 1;
  transform: none;
}

.ba-subheading {
  margin: 1.5rem 0 0.75rem;
  font-size: clamp(1.15rem, 1.8vw, 1.35rem);
  font-weight: 600;
  letter-spacing: -0.02em;
}

.ba-story-list {
  margin: 1rem 0 1.25rem;
  padding-left: 1.15rem;
  display: grid;
  gap: 0.55rem;
  color: rgba(var(--ink-rgb), 0.82);
  line-height: 1.6;
}

.ba-chip-row,
.ba-event-row,
.ba-skill-row {
  list-style: none;
  margin: 1.35rem 0 0;
  padding: 0;
  display: flex;
  flex-wrap: wrap;
  gap: 0.55rem;
}

.ba-chip-row li,
.ba-event-row li,
.ba-skill-row li {
  padding: 0.5rem 0.85rem;
  font-size: 0.86rem;
  font-weight: 600;
  border: 1px solid rgba(var(--ink-rgb), 0.12);
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.75);
  transition:
    border-color 0.25s ease,
    color 0.25s ease,
    transform 0.3s var(--ease-editorial, cubic-bezier(0.22, 1, 0.36, 1));
}


.ba-event-row li:hover,
.ba-skill-row li:hover {
  border-color: rgba(var(--paper-rgb), 0.35);
  color: var(--ink);
  transform: translateY(-2px);
}

.ba-story--ink .ba-chip-row li,
.ba-chip-row--on-dark li {
  background: rgba(255, 255, 255, 0.08);
  border-color: rgba(255, 255, 255, 0.18);
  color: rgba(255, 255, 255, 0.88);
}

.ba-chip-row li:hover {
  border-color: rgba(var(--paper-rgb), 0.35);
  color: var(--paper);
  transform: translateY(-2px);
}

.ba-event-row {
  margin-top: 0.85rem;
}

.ba-event-row li {
  border-radius: calc(var(--radius) - 0.15rem);
}

.ba-table-wrap {
  overflow-x: auto;
  border: 1px solid rgba(var(--ink-rgb), 0.1);
  border-radius: calc(var(--radius) - 0.05rem);
  background: rgba(255, 255, 255, 0.85);
}

.ba-table {
  width: 100%;
  border-collapse: collapse;
  min-width: 640px;
}

.ba-table th,
.ba-table td {
  padding: 0.85rem 1rem;
  text-align: left;
  border-bottom: 1px solid rgba(var(--ink-rgb), 0.08);
  font-size: 0.96rem;
  line-height: 1.45;
}

.ba-table thead th {
  font-size: 0.72rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--primary);
  background: rgba(var(--primary-rgb), 0.05);
}

.ba-table tbody tr:last-child th,
.ba-table tbody tr:last-child td {
  border-bottom: 0;
}

.ba-table tbody tr {
  transition: background 0.2s ease;
}

.ba-table tbody tr:hover {
  background: rgba(var(--primary-rgb), 0.04);
}

.ba-story--band {
  position: relative;
  isolation: isolate;
  padding: 0;
  height: 100%;
  min-height: 75dvh;
  display: grid;
  align-items: center;
  overflow: hidden;
  background: var(--primary);
  color: #fff;
}

.ba-band-visual {
  position: absolute;
  inset: 0;
  z-index: 0;
}

.ba-band-visual img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 0%;
  transform: scale(1.05);
  will-change: transform;
}

.ba-band-veil {
  position: absolute;
  inset: 0;
  background:
    linear-gradient(
    180deg,
    rgba(var(--primary-rgb), 0.08) 0%,
    rgba(var(--primary-rgb), 0.14) 30%,
    rgba(var(--ink-rgb), 0.72) 54%,
    rgba(var(--ink-rgb), 0.9) 100%
  );
}

.ba-band-stage {
  position: relative;
  z-index: 1;
  padding: 8.5rem 0 8.5rem;
  opacity: 0;
  transform: translate3d(0, 22px, 0);
  transition:
    opacity 0.75s ease,
    transform 0.75s var(--ease-editorial, cubic-bezier(0.22, 1, 0.36, 1));
}

.ba-story--band.is-inview .ba-band-stage {
  opacity: 1;
  transform: none;
}

.ba-story--band .section-heading {
  color: #fff;
  max-width: 18ch;
  margin-bottom: 1.1rem;
}

.ba-band-copy {
  margin: 0 0 1rem;
  max-width: 48ch;
  font-size: clamp(1rem, 1.8vw, 1.1rem);
  line-height: 1.7;
  color: rgba(255, 255, 255, 0.82);
}

.ba-band-copy:last-child {
  margin-bottom: 0;
}

.ba-story--band .section-kicker--on-dark .page-eyebrow-rule {
  background: var(--gold-whisper);
}

.ba-feature-grid {
  list-style: none;
  margin: 0 0 1.75rem;
  padding: 0;
  display: grid;
  gap: 0.85rem;
}

@media (min-width: 800px) {
  .ba-feature-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

.ba-feature {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 0.9rem;
  align-items: start;
  padding: 1rem 1.1rem;
  border: 1px solid rgba(var(--ink-rgb), 0.1);
  border-radius: calc(var(--radius) - 0.05rem);
  background: rgba(255, 255, 255, 0.8);
  transition:
    border-color 0.25s ease,
    transform 0.3s var(--ease-editorial, cubic-bezier(0.22, 1, 0.36, 1));
  transition-delay: calc(var(--i, 0) * 0.05s);
}

.ba-feature:hover {
  border-color: rgba(var(--primary-rgb), 0.28);
  transform: translateY(-2px);
}

.ba-feature-index {
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.12em;
  color: var(--primary);
}

.ba-feature-text {
  margin: 0;
  font-size: 1rem;
  line-height: 1.5;
  color: var(--ink);
}

.ba-principle-list {
  list-style: none;
  margin: 0 0 1.75rem;
  padding: 0;
  display: grid;
  gap: 0.65rem;
  border-top: 1px solid rgba(var(--ink-rgb), 0.1);
  padding-top: 1.25rem;
}

.ba-principle-list li {
  padding: 0.85rem 0;
  border-bottom: 1px solid rgba(var(--ink-rgb), 0.08);
  font-size: 1.02rem;
  line-height: 1.55;
  color: rgba(var(--ink-rgb), 0.84);
}

.ba-inline-actions {
  margin-top: 1.5rem;
}

.ba-quote {
  margin: 0 0 2rem;
  padding: 1.75rem 0;
  border-top: 1px solid rgba(var(--ink-rgb), 0.1);
  border-bottom: 1px solid rgba(var(--ink-rgb), 0.1);
}

.ba-quote blockquote {
  margin: 0;
}

.ba-quote p {
  margin: 0;
  max-width: 42ch;
  font-size: clamp(1.2rem, 2.2vw, 1.55rem);
  font-weight: 500;
  letter-spacing: -0.025em;
  line-height: 1.45;
  color: var(--ink);
}

.ba-quote figcaption {
  margin-top: 1rem;
  font-size: 0.92rem;
  color: rgba(var(--ink-rgb), 0.62);
}

.ba-stat-row {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 1.25rem;
}

@media (min-width: 700px) {
  .ba-stat-row {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

.ba-stat-value {
  margin: 0;
  font-size: clamp(2.2rem, 5vw, 3.4rem);
  font-weight: 500;
  letter-spacing: -0.045em;
  color: var(--primary);
  line-height: 1;
}

.ba-stat-label {
  margin: 0.55rem 0 0;
  font-size: 0.95rem;
  color: rgba(var(--ink-rgb), 0.66);
}

.ba-peer-cards {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 1rem;
}

@media (min-width: 800px) {
  .ba-peer-cards {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1.15rem;
  }
}

.ba-peer-card {
  opacity: 0;
  transform: translate3d(0, 18px, 0);
  transition:
    opacity 0.6s ease,
    transform 0.6s var(--ease-editorial, cubic-bezier(0.22, 1, 0.36, 1));
  transition-delay: calc(var(--i, 0) * 0.1s);
}

.ba-story.is-inview .ba-peer-card {
  opacity: 1;
  transform: none;
}

.ba-peer-card-inner {
  height: 100%;
  padding: 1.35rem 1.25rem 1.5rem;
  border: 1px solid rgba(var(--ink-rgb), 0.1);
  border-radius: calc(var(--radius) - 0.05rem);
  background: rgba(255, 255, 255, 0.82);
  transition:
    border-color 0.25s ease,
    transform 0.35s var(--ease-editorial, cubic-bezier(0.22, 1, 0.36, 1));
}

.ba-peer-card-inner:hover {
  border-color: rgba(var(--primary-rgb), 0.3);
  transform: translateY(-3px);
}

.ba-peer-index {
  display: block;
  margin-bottom: 0.75rem;
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.12em;
  color: var(--primary);
}

.ba-peer-title {
  margin: 0 0 0.55rem;
  font-size: 1.15rem;
  font-weight: 600;
  letter-spacing: -0.02em;
}

.ba-peer-copy {
  margin: 0;
  font-size: 0.98rem;
  line-height: 1.6;
  color: rgba(var(--ink-rgb), 0.74);
}

.ba-continue {
  padding: 2.25rem 0 5rem;
  background: var(--primary-light);
}

.ba-continue-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.85rem 1.15rem;
}

@media (max-width: 899px) {
  .ba-progress {
    top: calc(var(--header-offset) + 3rem);
  }

  .ba-page [id] {
    scroll-margin-top: 6.75rem;
  }

  .ba-story-stage--reverse .ba-story-media {
    order: 0;
  }
}

@media (hover: none) {
  .ba-gateway-inner:hover {
    transform: none;
  }

  .ba-gateway-nav-btn:hover {
    transform: none;
  }

  .ba-peer-card-inner:hover,
  .ba-feature:hover,
  .ba-chip-row li:hover,
  .ba-skill-row li:hover {
    transform: none;
  }
}

@media (prefers-reduced-motion: reduce) {
  .ba-overview-copy,
  .ba-overview-media-frame img,
  .ba-section-header,
  .ba-gateway,
  .ba-gateway-carousel,
  .ba-gateway-nav-btn,
  .ba-gateway-grid--rail,
  .ba-story-copy,
  .ba-story-media-frame,
  .ba-story-media-frame img,
  .ba-prose,
  .ba-table-wrap,
  .ba-feature-grid,
  .ba-principle-list,
  .ba-skill-row,
  .ba-peer-cards,
  .ba-peer-card,
  .ba-stat-row,
  .ba-quote,
  .ba-story .acad-hover-acc,
  .ba-band-stage,
  .ba-band-visual img,
  .ba-gateway-media img {
    transition: none !important;
    animation: none !important;
    transform: none !important;
  }

  .ba-overview .ba-overview-copy,
  .ba-gateways .ba-section-header,
  .ba-gateways .ba-gateway,
  .ba-gateways .ba-gateway-carousel,
  .ba-story .ba-section-header,
  .ba-story .ba-story-copy,
  .ba-story .ba-story-media-frame,
  .ba-story .ba-prose,
  .ba-story .ba-table-wrap,
  .ba-story .ba-feature-grid,
  .ba-story .ba-principle-list,
  .ba-story .ba-skill-row,
  .ba-story .ba-peer-cards,
  .ba-story .ba-peer-card,
  .ba-story .ba-stat-row,
  .ba-story .ba-quote,
  .ba-story .acad-hover-acc,
  .ba-story--band .ba-band-stage {
    opacity: 1;
    transform: none;
  }

  .ba-gateway-grid--rail {
    will-change: auto;
  }
}

/* --------------------------------------------------------------------------
   Wellbeing & Safety page storytelling (wb-)
   -------------------------------------------------------------------------- */
.wb-page {
  overflow-x: clip;
}

.wb-page [id] {
  scroll-margin-top: 7.5rem;
}

.wb-overview-stage,
.wb-story-stage,
.wb-band-stage,
.wb-safe-intro,
.wb-safe-body,
.wb-health-rest {
  width: min(1180px, calc(100% - 2.5rem));
  margin: 0 auto;
}

@media (min-width: 900px) {
  .wb-overview-stage,
  .wb-story-stage,
  .wb-band-stage,
  .wb-safe-intro,
  .wb-safe-body,
  .wb-health-rest {
    width: min(1180px, calc(100% - 4rem));
  }
}

.wb-overview {
  padding: 3.5rem 0 4rem;
  background: var(--primary-light);
}

@media (min-width: 900px) {
  .wb-overview {
    padding: 5.25rem 0 5.5rem;
  }
}

.wb-overview-stage {
  display: grid;
  gap: 2rem;
  align-items: center;
}

@media (min-width: 900px) {
  .wb-overview-stage {
    grid-template-columns: minmax(0, 0.88fr) minmax(0, 1.12fr);
    gap: clamp(2.5rem, 5vw, 4.5rem);
  }
}

.wb-overview-media {
  margin: 0;
}

.wb-overview-media-frame {
  overflow: hidden;
  border-radius: calc(var(--radius) + 0.2rem);
  aspect-ratio: 4 / 5;
  background: var(--primary);
  will-change: transform;
}

.wb-overview-media-frame img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transform: scale(1.07);
  transition: transform 1.25s var(--ease-editorial, cubic-bezier(0.22, 1, 0.36, 1));
}

.wb-overview.is-inview .wb-overview-media-frame img {
  transform: scale(1);
}

.wb-overview-copy {
  opacity: 0;
  transform: translate3d(0, 20px, 0);
  transition:
    opacity 0.75s ease,
    transform 0.75s var(--ease-editorial, cubic-bezier(0.22, 1, 0.36, 1));
}

.wb-overview.is-inview .wb-overview-copy {
  opacity: 1;
  transform: none;
}

.wb-display {
  margin: 0 0 1.15rem;
  font-size: clamp(2rem, 4.4vw, 3.35rem);
  font-weight: 500;
  letter-spacing: -0.045em;
  line-height: 1.08;
  color: var(--ink);
}

.wb-lede {
  margin: 0;
  font-size: clamp(1rem, 1.8vw, 1.1rem);
  line-height: 1.72;
  color: rgba(var(--ink-rgb), 0.82);
}

.wb-story {
  padding: 3.75rem 0 4.5rem;
  background: rgba(255, 255, 255, 0.7);
}

@media (min-width: 900px) {
  .wb-story {
    padding: 5.25rem 0 6rem;
  }
}

.wb-story--care,
.wb-story--data {
  background: rgba(255, 255, 255, 0.82);
}

.wb-story--programme,
.wb-story--counsel,
.wb-story--safe,
.wb-story--health {
  background: var(--primary-light);
}

.wb-story--ink {
  background: var(--primary);
  color: #fff;
}

.wb-story--ink .section-heading,
.wb-story--ink .wb-subheading {
  color: #fff;
}

.wb-story--ink .section-copy {
  color: rgba(255, 255, 255, 0.8);
}

.wb-story-header {
  margin-bottom: 2rem;
}

.wb-story-header--flush {
  max-width: none;
  margin-bottom: 0;
}

.wb-story-header .section-heading {
  margin-bottom: 0.9rem;
}

.wb-care-layout {
  display: grid;
  gap: 2rem;
  align-items: start;
  margin-bottom: 2rem;
}

@media (min-width: 900px) {
  .wb-care-layout {
    grid-template-columns: minmax(0, 1.15fr) minmax(0, 0.85fr);
    gap: clamp(2.5rem, 5vw, 4.5rem);
  }
}

.wb-care-steps {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 0;
}

.wb-care-step {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 1rem;
  align-items: baseline;
  padding: 1.15rem 0;
  border-top: 1px solid rgba(var(--ink-rgb), 0.1);
  opacity: 0;
  transform: translate3d(0, 14px, 0);
  transition:
    opacity 0.55s ease,
    transform 0.55s var(--ease-editorial, cubic-bezier(0.22, 1, 0.36, 1)),
    padding-left 0.3s ease;
  transition-delay: calc(var(--i, 0) * 0.07s);
}

.wb-care-step:last-child {
  border-bottom: 1px solid rgba(var(--ink-rgb), 0.1);
}

.wb-story.is-inview .wb-care-step {
  opacity: 1;
  transform: none;
}

.wb-care-step:hover,
.wb-care-step:focus-within {
  padding-left: 0.35rem;
}

.wb-care-num {
  font-size: 1.35rem;
  font-weight: 600;
  line-height: 1;
  letter-spacing: 0;
  color: var(--primary);
}

.wb-care-text {
  margin: 0;
  font-size: clamp(1rem, 1.8vw, 1.1rem);
  line-height: 1.5;
  letter-spacing: -0.015em;
  color: var(--ink);
}

.wb-story-stage--split {
  display: grid;
  gap: 2rem;
  align-items: center;
}

@media (min-width: 900px) {
  .wb-story-stage--split {
    grid-template-columns: minmax(0, 1.05fr) minmax(0, 0.95fr);
    gap: clamp(2.5rem, 5vw, 4.5rem);
  }

  .wb-story-stage--reverse {
    grid-template-columns: minmax(0, 0.95fr) minmax(0, 1.05fr);
  }

  .wb-story-stage--reverse .wb-story-media {
    order: -1;
  }
}

.wb-story-media {
  margin: 0;
}

.wb-story-media-frame {
  overflow: hidden;
  border-radius: calc(var(--radius) + 0.15rem);
  aspect-ratio: 3 / 4;
  background: var(--primary);
  opacity: 0;
  transform: translate3d(0, 22px, 0);
  transition:
    opacity 0.75s ease,
    transform 0.75s var(--ease-editorial, cubic-bezier(0.22, 1, 0.36, 1));
}

.wb-story.is-inview .wb-story-media-frame {
  opacity: 1;
  transform: none;
}

.wb-story-media-frame img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transform: scale(1.06);
  transition: transform 1.2s var(--ease-editorial, cubic-bezier(0.22, 1, 0.36, 1));
}

.wb-story.is-inview .wb-story-media-frame img {
  transform: scale(1);
}

.wb-story-copy,
.wb-story-header,
.wb-prose,
.wb-safe-intro-copy,
.wb-safe-body,
.wb-story .acad-hover-acc {
  opacity: 0;
  transform: translate3d(0, 18px, 0);
  transition:
    opacity 0.7s ease,
    transform 0.7s var(--ease-editorial, cubic-bezier(0.22, 1, 0.36, 1));
}

.wb-story.is-inview .wb-story-copy,
.wb-story.is-inview .wb-story-header,
.wb-story.is-inview .wb-prose,
.wb-story.is-inview .wb-safe-intro-copy,
.wb-story.is-inview .wb-safe-body,
.wb-story.is-inview .acad-hover-acc {
  opacity: 1;
  transform: none;
}

.wb-prose--narrow {
  max-width: 120ch;
}

.wb-prose {
  margin-top: 1.5rem;
}

.wb-story--programme .acad-hover-acc,
.wb-story--data .acad-hover-acc {
  margin-top: 1.4rem;
}

.wb-story--band {
  position: relative;
  isolation: isolate;
  padding: 0;
  height: 100%;
  min-height: 75dvh;
  display: grid;
  align-items: center;
  overflow: hidden;
  background: var(--primary);
  color: #fff;
}

.wb-band-visual {
  position: absolute;
  inset: 0;
  z-index: 0;
}

.wb-band-visual img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 0%;
  transform: scale(1.05);
  will-change: transform;
}

.wb-band-veil {
  position: absolute;
  inset: 0;
  background:
    linear-gradient(180deg, rgba(var(--primary-rgb), 0.25) 0%, rgba(var(--primary-rgb), 0.52) 40%, rgba(var(--primary-rgb), 0.94) 100%);
}

.wb-band-stage {
  position: relative;
  z-index: 1;
  padding: 8.5rem 0 8.5rem;
  opacity: 0;
  transform: translate3d(0, 22px, 0);
  transition:
    opacity 0.75s ease,
    transform 0.75s var(--ease-editorial, cubic-bezier(0.22, 1, 0.36, 1));
}

.wb-story--band.is-inview .wb-band-stage {
  opacity: 1;
  transform: none;
}

.wb-band-display {
  margin: 0 0 1rem;
  font-size: clamp(2.2rem, 5vw, 3.6rem);
  font-weight: 500;
  letter-spacing: -0.045em;
  line-height: 1.05;
  color: #fff;
  max-width: 10ch;
}

.wb-band-copy {
  margin: 0 0 1.35rem;
  max-width: 48ch;
  font-size: clamp(1rem, 1.8vw, 1.1rem);
  line-height: 1.72;
  color: rgba(255, 255, 255, 0.84);
}

.wb-value-row {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-wrap: wrap;
  gap: 0.55rem;
}

.wb-value-row li {
  padding: 0.5rem 0.9rem;
  font-size: 0.86rem;
  font-weight: 600;
  letter-spacing: -0.01em;
  color: rgba(255, 255, 255, 0.92);
  border: 1px solid rgba(255, 255, 255, 0.22);
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.08);
  transition:
    background 0.25s ease,
    border-color 0.25s ease,
    transform 0.3s var(--ease-editorial, cubic-bezier(0.22, 1, 0.36, 1));
}

.wb-value-row li:hover {
  background: rgba(255, 255, 255, 0.14);
  border-color: rgba(255, 255, 255, 0.4);
  transform: translateY(-2px);
}

.wb-story--band .section-kicker--on-dark .page-eyebrow-rule {
  background: var(--gold-whisper);
}

.wb-subheading {
  margin: 1.65rem 0 0.75rem;
  font-size: clamp(1.2rem, 2vw, 1.4rem);
  font-weight: 600;
  letter-spacing: -0.02em;
}

.wb-crew-list {
  list-style: none;
  margin: 1.25rem 0 0;
  padding: 0;
  display: grid;
  gap: 0.95rem;
}

.wb-crew-list li {
  padding: 1rem 0 0;
  border-top: 1px solid rgba(255, 255, 255, 0.14);
}

.wb-crew-list strong {
  display: block;
  margin-bottom: 0.35rem;
  font-size: clamp(1rem, 1.8vw, 1.1rem);
  font-weight: 600;
  letter-spacing: -0.015em;
  color: #fff;
}

.wb-crew-list span {
  display: block;
  font-size: 0.98rem;
  line-height: 1.6;
  color: rgba(255, 255, 255, 0.72);
}

.wb-focus-list {
  list-style: none;
  margin: 1.5rem 0 0;
  padding: 0;
  display: grid;
  gap: 1.15rem;
}

.wb-focus-list li {
  border-left: 2px solid rgba(var(--primary-rgb), 0.35);
  padding-left: 1rem;
  transition: border-color 0.25s ease, padding-left 0.3s ease;
}

.wb-focus-list li:hover,
.wb-focus-list li:focus-within {
  border-left-color: var(--primary);
  padding-left: 1.2rem;
}

.wb-focus-label {
  display: block;
  margin-bottom: 0.35rem;
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--primary);
}

.wb-focus-list p {
  margin: 0;
  font-size: clamp(1rem, 1.8vw, 1.1rem);
  line-height: 1.6;
  color: rgba(var(--ink-rgb), 0.82);
}

.wb-safe-intro {
  display: grid;
  gap: 2rem;
  align-items: center;
  margin-bottom: 2.75rem;
}

@media (min-width: 900px) {
  .wb-safe-intro {
    grid-template-columns: minmax(0, 1.15fr) minmax(0, 0.85fr);
    gap: clamp(2.5rem, 5vw, 4.5rem);
  }
}

.wb-story-media--safe .wb-story-media-frame {
  aspect-ratio: 5 / 4;
}

.wb-safe-lead {
  margin: 0 0 1.25rem;
  font-size: clamp(1rem, 1.8vw, 1.1rem);
  line-height: 1.55;
  color: rgba(var(--ink-rgb), 0.78);
  max-width: 45ch;
}

.wb-principle-rail {
  list-style: none;
  margin: 0 0 2.25rem;
  padding: 0;
  display: grid;
  gap: 0;
  border-top: 1px solid rgba(var(--ink-rgb), 0.1);
}

.wb-principle-rail li {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 1rem;
  align-items: baseline;
  padding: 1.1rem 0;
  border-bottom: 1px solid rgba(var(--ink-rgb), 0.08);
  opacity: 0;
  transform: translate3d(0, 12px, 0);
  transition:
    opacity 0.5s ease,
    transform 0.5s var(--ease-editorial, cubic-bezier(0.22, 1, 0.36, 1));
  transition-delay: calc(var(--i, 0) * 0.05s);
}

.wb-story.is-inview .wb-principle-rail li {
  opacity: 1;
  transform: none;
}

.wb-principle-rail span {
  font-size: 1.35rem;
  font-weight: 600;
  line-height: 1;
  letter-spacing: 0;
  color: var(--primary);
}

.wb-principle-rail p {
  margin: 0;
  font-size: clamp(1rem, 1.8vw, 1.1rem);
  line-height: 1.5;
  letter-spacing: -0.01em;
  color: var(--ink);
}

.wb-safe-note {
  margin: 0 0 2rem;
  padding: 1.35rem 1.4rem;
  border-left: 3px solid var(--gold);
  background: rgba(255, 255, 255, 0.55);
}

.wb-safe-note .section-copy {
  margin: 0;
  max-width: 100ch;
}

.wb-awareness-row {
  list-style: none;
  margin: 1rem 0 1.35rem;
  padding: 0;
  display: flex;
  flex-wrap: wrap;
  gap: 0.55rem;
}

.wb-awareness-row li {
  padding: 0.55rem 0.9rem;
  font-size: 0.88rem;
  font-weight: 600;
  color: var(--ink);
  background: rgba(255, 255, 255, 0.8);
  border: 1px solid rgba(var(--ink-rgb), 0.1);
  border-radius: 999px;
  transition:
    border-color 0.25s ease,
    color 0.25s ease,
    transform 0.3s var(--ease-editorial, cubic-bezier(0.22, 1, 0.36, 1));
}

.wb-awareness-row li:hover {
  border-color: rgba(var(--primary-rgb), 0.35);
  color: var(--primary);
  transform: translateY(-2px);
}

.wb-inline-actions {
  margin-top: 1.5rem;
}

.wb-health-rest {
  display: grid;
  gap: 1.25rem;
  margin-top: 3rem;
  min-width: 0;
}

@media (min-width: 900px) {
  .wb-health-rest {
    grid-template-columns: minmax(0, 1.15fr) minmax(0, 0.85fr);
    gap: clamp(1.25rem, 3vw, 2rem);
    align-items: stretch;
  }
}

.wb-health-commit,
.wb-health-care {
  min-width: 0;
  padding: 1.5rem 1.35rem 1.35rem;
  border: 1px solid rgba(var(--ink-rgb), 0.08);
  border-radius: calc(var(--radius) + 0.15rem);
  background: rgba(255, 255, 255, 0.72);
}

.wb-health-care {
  background: var(--primary);
  border-color: transparent;
  color: rgba(255, 255, 255, 0.88);
}

.wb-health-commit .wb-subheading,
.wb-health-care .wb-subheading {
  margin-top: 0;
}

.wb-health-care .wb-subheading,
.wb-health-care .section-copy {
  color: #fff;
}

.wb-health-list {
  list-style: none;
  margin: 1.15rem 0 0;
  padding: 0;
  border-top: 1px solid rgba(var(--ink-rgb), 0.1);
}

.wb-health-list li {
  position: relative;
  padding: 1rem 0 1rem 1.15rem;
  border-bottom: 1px solid rgba(var(--ink-rgb), 0.08);
  font-size: clamp(1rem, 1.8vw, 1.1rem);
  line-height: 1.6;
  color: var(--ink);
  opacity: 0;
  transform: translate3d(0, 12px, 0);
  transition:
    opacity 0.5s ease,
    transform 0.5s var(--ease-editorial, cubic-bezier(0.22, 1, 0.36, 1)),
    background 0.25s ease;
  transition-delay: calc(var(--i, 0) * 0.06s);
}

.wb-health-list li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 1.35rem;
  width: 0.4rem;
  height: 0.4rem;
  border-radius: 999px;
  background: var(--gold);
}

.wb-story.is-inview .wb-health-list li {
  opacity: 1;
  transform: none;
}

.wb-health-list li:hover {
  background: rgba(var(--primary-rgb), 0.04);
}

.wb-story--health .wb-story-media-frame {
  transition: transform 0.7s var(--ease-editorial, cubic-bezier(0.22, 1, 0.36, 1));
}

.wb-story--health.is-inview .wb-story-media-frame:hover img {
  transform: scale(1.04);
}

@media (max-width: 899px) {
  .wb-page [id] {
    scroll-margin-top: 6.75rem;
  }

  .wb-story-stage--reverse .wb-story-media {
    order: 0;
  }
}

@media (hover: none) {
  .wb-care-step:hover,
  .wb-focus-list li:hover,
  .wb-value-row li:hover,
  .wb-awareness-row li:hover {
    transform: none;
    padding-left: 0;
  }

  .wb-focus-list li:hover {
    padding-left: 1rem;
  }

  .wb-story--health.is-inview .wb-story-media-frame:hover img {
    transform: scale(1);
  }
}

@media (prefers-reduced-motion: reduce) {
  .wb-overview-copy,
  .wb-overview-media-frame img,
  .wb-story-copy,
  .wb-story-header,
  .wb-prose,
  .wb-safe-intro-copy,
  .wb-safe-body,
  .wb-story-media-frame,
  .wb-story-media-frame img,
  .wb-band-stage,
  .wb-band-visual img,
  .wb-care-step,
  .wb-principle-rail li,
  .wb-story .acad-hover-acc,
  .wb-value-row li,
  .wb-awareness-row li,
  .wb-health-list li,
  .wb-story--health .wb-story-media-frame {
    transition: none !important;
    animation: none !important;
    transform: none !important;
  }

  .wb-overview .wb-overview-copy,
  .wb-story .wb-story-copy,
  .wb-story .wb-story-header,
  .wb-story .wb-prose,
  .wb-story .wb-safe-intro-copy,
  .wb-story .wb-safe-body,
  .wb-story .wb-story-media-frame,
  .wb-story .wb-care-step,
  .wb-story .wb-principle-rail li,
  .wb-story .acad-hover-acc,
  .wb-story--band .wb-band-stage,
  .wb-story .wb-health-list li {
    opacity: 1;
    transform: none;
  }
}

/* --------------------------------------------------------------------------
   Student Leadership page storytelling (sl-)
   -------------------------------------------------------------------------- */
.sl-page {
  overflow-x: clip;
}

.sl-page [id] {
  scroll-margin-top: 7.5rem;
}

.sl-overview-stage,
.sl-story-stage,
.sl-nhs-stage,
.sl-band-stage,
.sl-peer-stage {
  width: min(1180px, calc(100% - 2.5rem));
  margin: 0 auto;
}

@media (min-width: 900px) {
  .sl-overview-stage,
  .sl-story-stage,
  .sl-nhs-stage,
  .sl-band-stage,
  .sl-peer-stage {
    width: min(1180px, calc(100% - 4rem));
  }
}

.sl-overview {
  padding: 3.5rem 0 4rem;
  background: var(--primary-light);
}

@media (min-width: 900px) {
  .sl-overview {
    padding: 5.25rem 0 5.5rem;
  }
}

.sl-overview-stage {
  display: grid;
  gap: 2rem;
  align-items: center;
}

@media (min-width: 900px) {
  .sl-overview-stage {
    grid-template-columns: minmax(0, 0.88fr) minmax(0, 1.12fr);
    gap: clamp(2.5rem, 5vw, 4.5rem);
  }
}

.sl-overview-media {
  margin: 0;
}

.sl-overview-media-frame {
  overflow: hidden;
  border-radius: calc(var(--radius) + 0.2rem);
  aspect-ratio: 4 / 5;
  background: var(--primary);
  will-change: transform;
}

.sl-overview-media-frame img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transform: scale(1.07);
  transition: transform 1.25s var(--ease-editorial, cubic-bezier(0.22, 1, 0.36, 1));
}

.sl-overview.is-inview .sl-overview-media-frame img {
  transform: scale(1);
}

.sl-overview-copy {
  opacity: 0;
  transform: translate3d(0, 20px, 0);
  transition:
    opacity 0.75s ease,
    transform 0.75s var(--ease-editorial, cubic-bezier(0.22, 1, 0.36, 1));
}

.sl-overview.is-inview .sl-overview-copy {
  opacity: 1;
  transform: none;
}

.sl-display {
  margin: 0 0 1.15rem;
  font-size: clamp(2rem, 4.4vw, 3.35rem);
  font-weight: 500;
  letter-spacing: -0.045em;
  line-height: 1.08;
  color: var(--ink);
}

.sl-lede {
  margin: 0;
  font-size: clamp(1rem, 1.8vw, 1.1rem);
  line-height: 1.72;
  color: rgba(var(--ink-rgb), 0.82);
}

.sl-story {
  padding: 3.75rem 0 4.5rem;
  background: rgba(255, 255, 255, 0.7);
}

@media (min-width: 900px) {
  .sl-story {
    padding: 5.25rem 0 6rem;
  }
}

.sl-story--council {
  background: rgba(255, 255, 255, 0.82);
}

.sl-story--nhs,
.sl-story--peer {
  background: var(--primary-light);
}

.sl-story--ink {
  background: var(--primary);
  color: #fff;
}

.sl-story--ink .section-heading,
.sl-story--ink .sl-phase-title {
  color: #fff;
}

.sl-story--ink .section-copy,
.sl-story--ink .sl-phase-copy {
  color: rgba(255, 255, 255, 0.8);
}

.sl-story-header {
  margin-bottom: 2rem;
}

.sl-story-header .section-heading {
  margin-bottom: 0.9rem;
}

.sl-story-stage--split {
  display: grid;
  gap: 2rem;
  align-items: center;
}

@media (min-width: 900px) {
  .sl-story-stage--split {
    grid-template-columns: minmax(0, 1.05fr) minmax(0, 0.95fr);
    gap: clamp(2.5rem, 5vw, 4.5rem);
  }

  .sl-story-stage--reverse {
    grid-template-columns: minmax(0, 0.95fr) minmax(0, 1.05fr);
  }

  .sl-story-stage--reverse .sl-story-media {
    order: -1;
  }
}

.sl-story-media {
  margin: 0;
}

.sl-story-media-frame {
  overflow: hidden;
  border-radius: calc(var(--radius) + 0.15rem);
  aspect-ratio: 4 / 5;
  background: var(--primary);
  opacity: 0;
  transform: translate3d(0, 22px, 0);
  transition:
    opacity 0.75s ease,
    transform 0.75s var(--ease-editorial, cubic-bezier(0.22, 1, 0.36, 1));
}

.sl-story.is-inview .sl-story-media-frame {
  opacity: 1;
  transform: none;
}

.sl-story-media-frame img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transform: scale(1.06);
  transition: transform 1.2s var(--ease-editorial, cubic-bezier(0.22, 1, 0.36, 1));
}

.sl-story.is-inview .sl-story-media-frame img {
  transform: scale(1);
}

.sl-story-copy,
.sl-story-header,
.sl-stat-row,
.sl-initiative-row,
.sl-quote,
.sl-peer-rail {
  opacity: 0;
  transform: translate3d(0, 18px, 0);
  transition:
    opacity 0.7s ease,
    transform 0.7s var(--ease-editorial, cubic-bezier(0.22, 1, 0.36, 1));
}

.sl-story.is-inview .sl-story-copy,
.sl-story.is-inview .sl-story-header,
.sl-story.is-inview .sl-stat-row,
.sl-story.is-inview .sl-initiative-row,
.sl-story.is-inview .sl-quote,
.sl-story.is-inview .sl-peer-rail {
  opacity: 1;
  transform: none;
}

.sl-detail-list {
  list-style: none;
  margin: 1.5rem 0 0;
  padding: 0;
  display: grid;
  gap: 1.1rem;
}

.sl-detail-list li {
  border-left: 2px solid rgba(var(--primary-rgb), 0.35);
  padding-left: 1rem;
  transition: border-color 0.25s ease, padding-left 0.3s ease;
}

.sl-detail-list li:hover,
.sl-detail-list li:focus-within {
  border-left-color: var(--primary);
  padding-left: 1.2rem;
}

.sl-detail-label {
  display: block;
  margin-bottom: 0.35rem;
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--primary);
}

.sl-detail-list p {
  margin: 0;
  font-size: clamp(1rem, 1.8vw, 1.1rem);
  line-height: 1.6;
  color: rgba(var(--ink-rgb), 0.82);
}

.sl-phase-rail {
  list-style: none;
  margin: 1.35rem 0 0;
  padding: 0;
  display: grid;
  gap: 0;
}

.sl-phase-rail li {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 1rem;
  align-items: start;
  padding: 1.15rem 0;
  border-top: 1px solid rgba(255, 255, 255, 0.14);
  opacity: 0;
  transform: translate3d(0, 14px, 0);
  transition:
    opacity 0.55s ease,
    transform 0.55s var(--ease-editorial, cubic-bezier(0.22, 1, 0.36, 1));
  transition-delay: calc(var(--i, 0) * 0.08s);
}

.sl-phase-rail li:last-child {
  border-bottom: 1px solid rgba(255, 255, 255, 0.14);
}

.sl-story.is-inview .sl-phase-rail li {
  opacity: 1;
  transform: none;
}

.sl-phase-num {
  font-size: 1.35rem;
  font-weight: 600;
  line-height: 1;
  letter-spacing: 0;
  color: var(--paper);
  padding-top: 0.12rem;
}

.sl-phase-title {
  margin: 0 0 0.35rem;
  font-size: clamp(1rem, 1.8vw, 1.1rem);
  font-weight: 600;
  letter-spacing: -0.015em;
}

.sl-phase-copy {
  margin: 0;
  font-size: 0.98rem;
  line-height: 1.6;
}

.sl-stat-row {
  list-style: none;
  margin: 0 0 1.5rem;
  padding: 1.75rem 0 0;
  display: grid;
  gap: 1.5rem;
  border-top: 1px solid rgba(var(--ink-rgb), 0.1);
}

@media (min-width: 700px) {
  .sl-stat-row {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

.sl-stat {
  opacity: 0;
  transform: translate3d(0, 16px, 0);
  transition:
    opacity 0.6s ease,
    transform 0.6s var(--ease-editorial, cubic-bezier(0.22, 1, 0.36, 1));
  transition-delay: calc(var(--i, 0) * 0.1s);
}

.sl-story.is-inview .sl-stat {
  opacity: 1;
  transform: none;
}

.sl-stat-value {
  margin: 0;
  font-size: clamp(2.4rem, 5.5vw, 3.8rem);
  font-weight: 500;
  letter-spacing: -0.05em;
  line-height: 0.95;
  color: var(--primary);
}

.sl-stat-label {
  margin: 0.65rem 0 0;
  font-size: 0.95rem;
  color: rgba(var(--ink-rgb), 0.66);
}

.sl-initiative-row {
  list-style: none;
  margin: 0 0 2rem;
  padding: 0;
  display: flex;
  flex-wrap: wrap;
  gap: 0.55rem;
}

.sl-initiative-row li {
  padding: 0.5rem 0.9rem;
  font-size: 0.88rem;
  font-weight: 600;
  color: var(--ink);
  background: rgba(255, 255, 255, 0.8);
  border: 1px solid rgba(var(--ink-rgb), 0.1);
  border-radius: 999px;
  transition:
    border-color 0.25s ease,
    color 0.25s ease,
    transform 0.3s var(--ease-editorial, cubic-bezier(0.22, 1, 0.36, 1));
}

.sl-initiative-row li:hover {
  border-color: rgba(var(--primary-rgb), 0.35);
  color: var(--primary);
  transform: translateY(-2px);
}

.sl-quote {
  margin: 0;
  padding: 1.85rem 0 0;
  border-top: 1px solid rgba(var(--ink-rgb), 0.1);
}

.sl-quote blockquote {
  margin: 0;
}

.sl-quote p {
  margin: 0;

  font-size: clamp(1.2rem, 2.2vw, 1.55rem);
  font-weight: 500;
  letter-spacing: -0.025em;
  line-height: 1.45;
  color: var(--ink);
}

.sl-quote figcaption {
  margin-top: 1rem;
  font-size: 0.92rem;
  color: rgba(var(--ink-rgb), 0.62);
}

.sl-story--band {
  position: relative;
  isolation: isolate;
  padding: 0;
  height: 100%;
  min-height: 75dvh;
  display: grid;
  align-items: center;
  overflow: hidden;
  background: var(--primary);
  color: #fff;
}

.sl-band-visual {
  position: absolute;
  inset: 0;
  z-index: 0;
}

.sl-band-visual img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 0%;
  transform: scale(1.05);
  will-change: transform;
}

.sl-band-veil {
  position: absolute;
  inset: 0;
  background:
    linear-gradient(180deg, rgba(var(--primary-rgb), 0.25) 0%, rgba(var(--primary-rgb), 0.52) 40%, rgba(var(--primary-rgb), 0.94) 100%);
}

.sl-band-stage {
  position: relative;
  z-index: 1;
  padding: 6.5rem 0 6.5rem;
  opacity: 0;
  transform: translate3d(0, 22px, 0);
  transition:
    opacity 0.75s ease,
    transform 0.75s var(--ease-editorial, cubic-bezier(0.22, 1, 0.36, 1));
}

.sl-story--band.is-inview .sl-band-stage {
  opacity: 1;
  transform: none;
}

.sl-band-display {
  margin: 0 0 1rem;
  font-size: clamp(2.2rem, 5vw, 3.5rem);
  font-weight: 500;
  letter-spacing: -0.045em;
  line-height: 1.05;
  color: #fff;
  max-width: 12ch;
}

.sl-band-copy {
  margin: 0 0 1rem;
  max-width: 48ch;
  font-size: clamp(1rem, 1.8vw, 1.1rem);
  line-height: 1.72;
  color: rgba(255, 255, 255, 0.84);
}

.sl-band-metric {
  margin: 0.35rem 0 1.25rem;
  font-size: 2rem;
  font-weight: 500;
  color: rgba(255, 255, 255);
}

.sl-band-metric span {
  display: inline-block;
  margin-right: 0.35rem;
  font-size: clamp(2rem, 4vw, 2.8rem);
  font-weight: 500;
  letter-spacing: -0.04em;
  color: var(--paper);
  vertical-align: middle;
}

.sl-chip-row {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-wrap: wrap;
  gap: 0.55rem;
}

.sl-chip-row li {
  padding: 0.5rem 0.9rem;
  font-size: 0.86rem;
  font-weight: 600;
  color: rgba(255, 255, 255, 0.92);
  border: 1px solid rgba(255, 255, 255, 0.22);
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.08);
  transition:
    background 0.25s ease,
    border-color 0.25s ease,
    transform 0.3s var(--ease-editorial, cubic-bezier(0.22, 1, 0.36, 1));
}

.sl-chip-row li:hover {
  background: rgba(255, 255, 255, 0.14);
  border-color: rgba(255, 255, 255, 0.4);
  transform: translateY(-2px);
}

.sl-story--band .section-kicker--on-dark .page-eyebrow-rule {
  background: var(--gold-whisper);
}

.sl-peer-intro {
  display: grid;
  gap: 2rem;
  align-items: start;
  margin-bottom: 2.5rem;
}

@media (min-width: 900px) {
  .sl-peer-intro {
    grid-template-columns: minmax(0, 1.1fr) minmax(0, 0.9fr);
    gap: clamp(2.5rem, 5vw, 4.5rem);
  }
}

.sl-peer-rail {
  list-style: none;
  margin: 1.5rem 0 0;
  padding: 0;
  display: grid;
  gap: 0;
  border-top: 1px solid rgba(var(--ink-rgb), 0.1);
}

.sl-peer-rail li {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 1.15rem;
  align-items: start;
  padding: 1.35rem 0;
  border-bottom: 1px solid rgba(var(--ink-rgb), 0.08);
  opacity: 0;
  transform: translate3d(0, 14px, 0);
  transition:
    opacity 0.55s ease,
    transform 0.55s var(--ease-editorial, cubic-bezier(0.22, 1, 0.36, 1)),
    padding-left 0.3s ease;
  transition-delay: calc(var(--i, 0) * 0.08s);
}

.sl-story.is-inview .sl-peer-rail li {
  opacity: 1;
  transform: none;
}

.sl-peer-rail li:hover,
.sl-peer-rail li:focus-within {
  padding-left: 0.35rem;
}

.sl-peer-num {
  font-size: 1.35rem;
  font-weight: 600;
  line-height: 1;
  letter-spacing: 0;
  color: var(--primary);
  padding-top: 0.15rem;
}

.sl-peer-title {
  margin: 0 0 0.4rem;
  font-size: clamp(1rem, 1.8vw, 1.1rem);
  font-weight: 600;
  letter-spacing: -0.02em;
  color: var(--ink);
}

.sl-peer-copy {
  margin: 0;
  font-size: 0.98rem;
  line-height: 1.6;
  color: rgba(var(--ink-rgb), 0.74);
  max-width: 48ch;
}

@media (max-width: 899px) {
  .sl-page [id] {
    scroll-margin-top: 6.75rem;
  }

  .sl-story-stage--reverse .sl-story-media {
    order: 0;
  }
}

@media (hover: none) {
  .sl-detail-list li:hover {
    padding-left: 1rem;
  }

  .sl-peer-rail li:hover,
  .sl-initiative-row li:hover,
  .sl-chip-row li:hover {
    transform: none;
    padding-left: 0;
  }
}

@media (prefers-reduced-motion: reduce) {
  .sl-overview-copy,
  .sl-overview-media-frame img,
  .sl-story-copy,
  .sl-story-header,
  .sl-story-media-frame,
  .sl-story-media-frame img,
  .sl-stat-row,
  .sl-stat,
  .sl-initiative-row,
  .sl-quote,
  .sl-band-stage,
  .sl-band-visual img,
  .sl-phase-rail li,
  .sl-peer-rail,
  .sl-peer-rail li,
  .sl-chip-row li,
  .sl-initiative-row li {
    transition: none !important;
    animation: none !important;
    transform: none !important;
  }

  .sl-overview .sl-overview-copy,
  .sl-story .sl-story-copy,
  .sl-story .sl-story-header,
  .sl-story .sl-story-media-frame,
  .sl-story .sl-stat-row,
  .sl-story .sl-stat,
  .sl-story .sl-initiative-row,
  .sl-story .sl-quote,
  .sl-story .sl-phase-rail li,
  .sl-story .sl-peer-rail,
  .sl-story .sl-peer-rail li,
  .sl-story--band .sl-band-stage {
    opacity: 1;
    transform: none;
  }
}

/* --------------------------------------------------------------------------
   For Parents storytelling (fp-)
   -------------------------------------------------------------------------- */
.fp-page {
  overflow-x: clip;
}

.fp-page [id] {
  scroll-margin-top: 7.5rem;
}

.fp-overview-stage,
.fp-section-stage,
.fp-story-stage,
.fp-shell-stage,
.fp-continue-stage,
.fp-band-stage {
  width: min(1180px, calc(100% - 2.5rem));
  margin: 0 auto;
}

@media (min-width: 900px) {
  .fp-overview-stage,
  .fp-section-stage,
  .fp-story-stage,
  .fp-shell-stage,
  .fp-continue-stage,
  .fp-band-stage {
    width: min(1180px, calc(100% - 4rem));
  }
}

.fp-overview,
.fp-shell {
  padding: 3.5rem 0 4rem;
  background: var(--primary-light);
}

@media (min-width: 900px) {
  .fp-overview,
  .fp-shell {
    padding: 5rem 0 5.5rem;
  }
}

.fp-overview-stage,
.fp-shell-stage {
  display: grid;
  gap: 2rem;
  align-items: center;
}

@media (min-width: 900px) {
  .fp-overview-stage,
  .fp-shell-stage {
    grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr);
    gap: clamp(2.25rem, 5vw, 4.5rem);
  }
}

.fp-overview-media,
.fp-shell-media,
.fp-story-media {
  margin: 0;
}

.fp-overview-media-frame,
.fp-shell-media-frame,
.fp-story-media-frame {
  overflow: hidden;
  border-radius: calc(var(--radius) + 0.15rem);
  aspect-ratio: 4 / 5;
  background: var(--primary);
  will-change: transform;
}

.fp-overview-media-frame img,
.fp-shell-media-frame img,
.fp-story-media-frame img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transform: scale(1.06);
  transition: transform 1.2s var(--ease-editorial, cubic-bezier(0.22, 1, 0.36, 1));
}

.fp-overview.is-inview .fp-overview-media-frame img,
.fp-shell.is-inview .fp-shell-media-frame img,
.fp-story.is-inview .fp-story-media-frame img {
  transform: scale(1);
}

.fp-overview-copy,
.fp-shell-copy {
  opacity: 0;
  transform: translate3d(0, 18px, 0);
  transition:
    opacity 0.7s ease,
    transform 0.7s var(--ease-editorial, cubic-bezier(0.22, 1, 0.36, 1));
}

.fp-overview.is-inview .fp-overview-copy,
.fp-shell.is-inview .fp-shell-copy {
  opacity: 1;
  transform: none;
}

.fp-display {
  margin: 0 0 1.1rem;
  font-size: clamp(1.85rem, 3.8vw, 3rem);
  font-weight: 500;
  letter-spacing: -0.04em;
  line-height: 1.1;
  color: var(--ink);
  max-width: 20ch;
}

.fp-lede {
  margin: 0 0 1rem;
  font-size: clamp(1rem, 1.8vw, 1.1rem);
  line-height: 1.7;
  color: rgba(var(--ink-rgb), 0.82);
  max-width: 60ch;
}

.fp-lede a {
  color: var(--primary);
  text-decoration: underline;
  text-underline-offset: 0.15em;
}

.fp-gateways {
  padding: 3.5rem 0 4.5rem;
  background: rgba(255, 255, 255, 0.72);
}

@media (min-width: 900px) {
  .fp-gateways {
    padding: 5rem 0 6rem;
  }
}

.fp-section-header {
  max-width: 40ch;
  margin-bottom: 1.75rem;
  opacity: 0;
  transform: translate3d(0, 14px, 0);
  transition:
    opacity 0.65s ease,
    transform 0.65s var(--ease-editorial, cubic-bezier(0.22, 1, 0.36, 1));
}

.fp-gateways.is-inview .fp-section-header {
  opacity: 1;
  transform: none;
}

.fp-resource-index {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 0;
  border-top: 1px solid rgba(var(--ink-rgb), 0.1);
}

.fp-resource-index li {
  opacity: 0;
  transform: translate3d(0, 12px, 0);
  transition:
    opacity 0.5s ease,
    transform 0.5s var(--ease-editorial, cubic-bezier(0.22, 1, 0.36, 1));
  transition-delay: calc(var(--i, 0) * 0.05s);
}

.fp-gateways.is-inview .fp-resource-index li {
  opacity: 1;
  transform: none;
}

.fp-resource-link {
  display: grid;
  grid-template-columns: auto 1fr auto;
  gap: 1rem;
  align-items: center;
  padding: 1.15rem 0;
  border-bottom: 1px solid rgba(var(--ink-rgb), 0.08);
  font-size: clamp(1rem, 1.8vw, 1.1rem);
  color: var(--ink);
  text-decoration: none;
  transition: padding-left 0.3s ease, color 0.2s ease;
}

.fp-resource-link:hover,
.fp-resource-link:focus-visible {
  padding-left: 0.35rem;
  color: var(--primary);
  outline: none;
}

.fp-resource-num {
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.12em;
  color: var(--primary);
}

.fp-resource-name {
  font-size: 1.08rem;
  font-weight: 600;
  letter-spacing: -0.015em;
}

.fp-resource-arrow {
  color: rgba(var(--ink-rgb), 0.4);
  transition: transform 0.25s ease, color 0.2s ease;
}

.fp-resource-link:hover .fp-resource-arrow,
.fp-resource-link:focus-visible .fp-resource-arrow {
  color: var(--primary);
  transform: translateX(4px);
}

.fp-story {
  padding: 3.75rem 0 4.5rem;
  background: rgba(255, 255, 255, 0.7);
}

@media (min-width: 900px) {
  .fp-story {
    padding: 5rem 0 5.75rem;
  }
}

.fp-story--features {
  background: rgba(255, 255, 255, 0.82);
}

.fp-story--ink {
  background: var(--primary);
  color: #fff;
}

.fp-story--ink .section-heading,
.fp-story--ink .fp-buy-title {
  color: #fff;
}

#purchase.fp-story--ink {
  background: var(--primary-light);
  color: var(--ink);
}

#purchase.fp-story--ink .section-heading,
#purchase.fp-story--ink .fp-buy-title {
  color: var(--ink);
}

#purchase.fp-story--ink .section-kicker--on-dark {
  color: var(--ink);
}

#purchase.fp-story--ink .fp-buy-list li,
#purchase.fp-story--ink .fp-buy-list li:last-child {
  border-color: rgba(var(--ink-rgb), 0.12);
}

#purchase.fp-story--ink .fp-buy-copy,
#purchase.fp-story--ink .fp-ink-note {
  color: rgba(var(--ink-rgb), 0.78);
}

#purchase.fp-story--ink .fp-buy-num {
  color: var(--gold);
}

#purchase.fp-story--ink .ghost-cta--on-dark {
  color: var(--ink);
  border-color: rgba(var(--ink-rgb), 0.2);
}

#purchase.fp-story--ink .ghost-cta--on-dark:hover,
#purchase.fp-story--ink .ghost-cta--on-dark:focus-visible {
  border-color: var(--gold);
  color: var(--ink);
}

.fp-story-stage--split {
  display: grid;
  gap: 2rem;
  align-items: center;
}

.fp-story-stage--split-reverse {
  display: grid;
  gap: 2rem;
  align-items: center;
}

@media (min-width: 900px) {
  .fp-story-stage--split {
    grid-template-columns: minmax(0, 1.05fr) minmax(0, 0.95fr);
    gap: clamp(2.5rem, 5vw, 4.5rem);
  }
  .fp-story-stage--split-reverse {
    grid-template-columns: minmax(0, 0.95fr) minmax(0, 1.05fr);
    gap: clamp(2.5rem, 5vw, 4.5rem);
  }
}


.fp-story-media-frame {
  opacity: 0;
  transform: translate3d(0, 20px, 0);
  transition:
    opacity 0.75s ease,
    transform 0.75s var(--ease-editorial, cubic-bezier(0.22, 1, 0.36, 1));
}

.fp-story.is-inview .fp-story-media-frame {
  opacity: 1;
  transform: none;
}

.fp-story-copy,
.fp-story-header,
.fp-story .acad-hover-acc,
.fp-buy-list {
  opacity: 0;
  transform: translate3d(0, 16px, 0);
  transition:
    opacity 0.7s ease,
    transform 0.7s var(--ease-editorial, cubic-bezier(0.22, 1, 0.36, 1));
}

.fp-story.is-inview .fp-story-copy,
.fp-story.is-inview .fp-story-header,
.fp-story.is-inview .acad-hover-acc,
.fp-story.is-inview .fp-buy-list {
  opacity: 1;
  transform: none;
}

.fp-story-header--flush {
  margin-bottom: 0;
}

.fp-story--features .acad-hover-acc {
  margin-top: 1.4rem;
}

.fp-buy-list {
  list-style: none;
  margin: 1.5rem 0 1.25rem;
  padding: 0;
  display: grid;
  gap: 0;
}

.fp-buy-list li {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 1rem;
  padding: 1.15rem 0;
  border-top: 1px solid rgba(255, 255, 255, 0.14);
}

.fp-buy-list li:last-child {
  border-bottom: 1px solid rgba(255, 255, 255, 0.14);
}

.fp-buy-num {
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.14em;
  color: var(--gold-whisper);
  padding-top: 0.2rem;
}

.fp-buy-title {
  margin: 0 0 0.3rem;
  font-size: 1.1rem;
  font-weight: 600;
}

.fp-buy-copy {
  margin: 0;
  font-size: 0.98rem;
  line-height: 1.55;
  color: rgba(255, 255, 255, 0.75);
}

.fp-ink-note {
  margin: 0 0 1.35rem;
  font-size: clamp(1rem, 1.8vw, 1.1rem);
  color: rgba(255, 255, 255, 0.8);
}

.fp-story--ink .section-kicker--on-dark .page-eyebrow-rule {
  background: var(--gold-whisper);
}

.fp-inline-actions,
.fp-continue-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.85rem 1.15rem;
  margin-top: 1.5rem;
}

.fp-continue-actions {
  margin-top: 0;
}

.ghost-cta--on-dark {
  color: #fff;
  border-color: rgba(255, 255, 255, 0.35);
}

.ghost-cta--on-dark:hover,
.ghost-cta--on-dark:focus-visible {
  background: rgba(255, 255, 255, 0.1);
  border-color: rgba(255, 255, 255, 0.6);
  color: #fff;
}

.fp-story--band {
  position: relative;
  isolation: isolate;
  padding: 0;
  height: 100%;
  min-height: 75dvh;
  display: grid;
  align-items: center;
  overflow: hidden;
  background: var(--primary);
  color: #fff;
}

.fp-band-visual {
  position: absolute;
  inset: 0;
}

.fp-band-visual img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 0%;
  transform: scale(1.05);
  will-change: transform;
}

.fp-band-veil {
  position: absolute;
  inset: 0;
  background:
    linear-gradient(
    180deg,
    rgba(var(--primary-rgb), 0.08) 0%,
    rgba(var(--primary-rgb), 0.14) 30%,
    rgba(var(--ink-rgb), 0.72) 54%,
    rgba(var(--ink-rgb), 0.9) 100%
  );
}

.fp-band-stage {
  position: relative;
  z-index: 1;
  padding: 8rem 0 8rem;
  opacity: 0;
  transform: translate3d(0, 18px, 0);
  transition:
    opacity 0.7s ease,
    transform 0.7s var(--ease-editorial, cubic-bezier(0.22, 1, 0.36, 1));
}

.fp-band-stage h2 {
  color: #ffffff;
}

.fp-story--band.is-inview .fp-band-stage {
  opacity: 1;
  transform: none;
  margin: auto;
}

.fp-band-copy {
  margin: 0 0 1.35rem;
  max-width: 45ch;
  font-size: clamp(1rem, 1.8vw, 1.1rem);
  line-height: 1.65;
  color: rgba(255, 255, 255, 0.88);
}

.fp-continue {
  padding: 2.25rem 0 5rem;
  background: var(--primary-light);
}

@media (max-width: 899px) {
  .fp-page [id] {
    scroll-margin-top: 6.75rem;
  }
}

@media (prefers-reduced-motion: reduce) {
  .fp-overview-copy,
  .fp-shell-copy,
  .fp-section-header,
  .fp-resource-index li,
  .fp-story-copy,
  .fp-story-header,
  .fp-story-media-frame,
  .fp-story-media-frame img,
  .fp-overview-media-frame img,
  .fp-shell-media-frame img,
  .fp-story .acad-hover-acc,
  .fp-buy-list,
  .fp-band-stage,
  .fp-band-visual img,
  .fp-resource-link {
    transition: none !important;
    animation: none !important;
    transform: none !important;
  }

  .fp-overview .fp-overview-copy,
  .fp-shell .fp-shell-copy,
  .fp-gateways .fp-section-header,
  .fp-gateways .fp-resource-index li,
  .fp-story .fp-story-copy,
  .fp-story .fp-story-header,
  .fp-story .fp-story-media-frame,
  .fp-story .acad-hover-acc,
  .fp-story .fp-buy-list,
  .fp-story--band .fp-band-stage {
    opacity: 1;
    transform: none;
  }
}

/* --------------------------------------------------------------------------
   Academic Calendar (cal-)
   -------------------------------------------------------------------------- */
.cal-page [id] {
  scroll-margin-top: 7.5rem;
}

.cal-overview-stage,
.cal-term-stage,
.cal-related-stage {
  width: min(1180px, calc(100% - 2.5rem));
  margin: 0 auto;
}

@media (min-width: 900px) {
  .cal-overview-stage,
  .cal-term-stage,
  .cal-related-stage {
    width: min(1180px, calc(100% - 4rem));
  }
}

.cal-overview {
  padding: 3.5rem 0 4rem;
  background: var(--primary-light);
}

@media (min-width: 900px) {
  .cal-overview {
    padding: 5rem 0 5.5rem;
  }
}

.cal-overview-stage {
  display: grid;
  gap: 2rem;
  align-items: center;
}

@media (min-width: 900px) {
  .cal-overview-stage {
    display: grid;
  }
}

.cal-overview-media {
  margin: 0;
}

.cal-overview-media-frame {
  overflow: hidden;
  border-radius: calc(var(--radius) + 0.15rem);
  aspect-ratio: 4 / 5;
  background: var(--primary);
  will-change: transform;
}

.cal-overview-media-frame img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transform: scale(1.06);
  transition: transform 1.2s var(--ease-editorial, cubic-bezier(0.22, 1, 0.36, 1));
}

.cal-overview.is-inview .cal-overview-media-frame img {
  transform: scale(1);
}

.cal-overview-copy {
  opacity: 0;
  transform: translate3d(0, 18px, 0);
  transition:
    opacity 0.7s ease,
    transform 0.7s var(--ease-editorial, cubic-bezier(0.22, 1, 0.36, 1));
}

.cal-overview.is-inview .cal-overview-copy {
  opacity: 1;
  transform: none;
}

.cal-year {
  margin: 0 0 0.55rem;
  font-size: 0.82rem;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--primary);
}

.cal-display {
  margin: 0 0 1.35rem;
  font-size: clamp(1.85rem, 3.6vw, 2.85rem);
  font-weight: 500;
  letter-spacing: -0.04em;
  line-height: 1.12;
  color: var(--ink);
  max-width: 24ch;
}

.cal-term-jump {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-wrap: wrap;
  gap: 0.55rem;
}

.cal-term-jump a {
  display: inline-flex;
  align-items: center;
  padding: 0.55rem 0.95rem;
  border-radius: 999px;
  border: 1px solid rgba(var(--ink-rgb), 0.14);
  background: rgba(255, 255, 255, 0.75);
  color: var(--ink);
  font-size: 0.88rem;
  font-weight: 600;
  text-decoration: none;
  transition:
    background 0.2s ease,
    border-color 0.2s ease,
    color 0.2s ease,
    transform 0.25s var(--ease-editorial, cubic-bezier(0.22, 1, 0.36, 1));
}

.cal-term-jump a:hover,
.cal-term-jump a:focus-visible {
  background: var(--primary);
  border-color: var(--ink);
  color: #fff;
  outline: none;
  transform: translateY(-1px);
}

.cal-filter {
  display: flex;
  flex-wrap: wrap;
  gap: 0.45rem;
  margin-top: 1.5rem;
}

.cal-filter button {
  appearance: none;
  border: 1px solid rgba(var(--ink-rgb), 0.14);
  background: transparent;
  color: rgba(var(--ink-rgb), 0.72);
  border-radius: 999px;
  padding: 0.48rem 0.9rem;
  font: inherit;
  font-size: 0.82rem;
  font-weight: 600;
  letter-spacing: 0.01em;
  cursor: pointer;
  transition:
    background 0.2s ease,
    border-color 0.2s ease,
    color 0.2s ease;
}

.cal-filter button:hover,
.cal-filter button:focus-visible {
  border-color: rgba(var(--ink-rgb), 0.35);
  color: var(--ink);
  outline: none;
}

.cal-filter button.is-active {
  background: var(--primary);
  border-color: var(--ink);
  color: #fff;
}

.cal-term {
  padding: 3.5rem 0 4.25rem;
  background: rgba(255, 255, 255, 0.72);
}

.cal-term--alt {
  background: var(--primary-light);
}

@media (min-width: 900px) {
  .cal-term {
    padding: 5rem 0 5.75rem;
  }
}

.cal-term-header {
  max-width: 45ch;
  margin-bottom: 1.75rem;
  opacity: 0;
  transform: translate3d(0, 14px, 0);
  transition:
    opacity 0.65s ease,
    transform 0.65s var(--ease-editorial, cubic-bezier(0.22, 1, 0.36, 1));
}

.cal-term.is-inview .cal-term-header,
.cal-related.is-inview .cal-term-header {
  opacity: 1;
  transform: none;
}

.cal-term-visual {
  margin: 0 0 2.25rem;
  overflow: hidden;
  border-radius: calc(var(--radius) + 0.15rem);
  aspect-ratio: 21 / 9;
  background: var(--primary);
  opacity: 0;
  transform: translate3d(0, 16px, 0);
  transition:
    opacity 0.7s ease,
    transform 0.7s var(--ease-editorial, cubic-bezier(0.22, 1, 0.36, 1));
}

.cal-term.is-inview .cal-term-visual {
  opacity: 1;
  transform: none;
}

.cal-term-visual img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transform: scale(1.05);
  transition: transform 1.2s var(--ease-editorial, cubic-bezier(0.22, 1, 0.36, 1));
}

.cal-term.is-inview .cal-term-visual img {
  transform: scale(1);
}

.cal-month {
  margin-bottom: 2.25rem;
  opacity: 0;
  transform: translate3d(0, 16px, 0);
  transition:
    opacity 0.7s ease 0.06s,
    transform 0.7s var(--ease-editorial, cubic-bezier(0.22, 1, 0.36, 1)) 0.06s;
}

.cal-term.is-inview .cal-month {
  opacity: 1;
  transform: none;
}

.cal-term.is-inview .cal-month:nth-child(3) { transition-delay: 0.08s; }
.cal-term.is-inview .cal-month:nth-child(4) { transition-delay: 0.12s; }
.cal-term.is-inview .cal-month:nth-child(5) { transition-delay: 0.16s; }
.cal-term.is-inview .cal-month:nth-child(6) { transition-delay: 0.2s; }
.cal-term.is-inview .cal-month:nth-child(7) { transition-delay: 0.24s; }

.cal-month.is-empty {
  display: none;
}

.cal-month-label {
  margin: 0 0 0.85rem;
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: rgba(var(--ink-rgb), 0.48);
}

.cal-timeline {
  list-style: none;
  margin: 0;
  padding: 0;
  border-top: 1px solid rgba(var(--ink-rgb), 0.1);
}

.cal-timeline li {
  border-bottom: 1px solid rgba(var(--ink-rgb), 0.08);
  transition: opacity 0.25s ease;
}

.cal-timeline li.is-filtered-out {
  display: none;
}

.cal-event-trigger {
  display: grid;
  gap: 0.35rem 1.5rem;
  width: 100%;
  margin: 0;
  padding: 1.05rem 1.85rem 1.05rem 0.85rem;
  border: 0;
  border-left: 3px solid transparent;
  background: transparent;
  color: inherit;
  font: inherit;
  text-align: left;
  cursor: default;
  position: relative;
  transition:
    background 0.25s ease,
    border-color 0.25s ease,
    padding-left 0.3s var(--ease-editorial, cubic-bezier(0.22, 1, 0.36, 1));
}

@media (min-width: 760px) {
  .cal-event-trigger {
    grid-template-columns: minmax(0, 0.95fr) minmax(0, 1.05fr);
    align-items: baseline;
    gap: 1.25rem 2rem;
  }
}

.cal-timeline li[data-cal-kind="holiday"] .cal-event-trigger {
  border-left-color: rgba(var(--gold-rgb), 0.55);
}

.cal-timeline li[data-cal-kind="assessment"] .cal-event-trigger {
  border-left-color: rgba(var(--primary-rgb), 0.55);
}

.cal-timeline li[data-cal-kind="school"] .cal-event-trigger {
  border-left-color: rgba(var(--ink-rgb), 0.18);
}

.cal-event-trigger:hover,
.cal-event-trigger:focus-visible {
  background: rgba(var(--primary-rgb), 0.045);
  outline: none;
}

.cal-timeline li.is-open .cal-event-trigger {
  background: rgba(var(--primary-rgb), 0.06);
  border-left-color: var(--primary);
}

.cal-event-trigger time {
  display: block;
  font-size:clamp(1rem, 1.8vw, 1.1rem);
  font-weight: 600;
  letter-spacing: -0.01em;
  line-height: 1.45;
  color: var(--primary);
}

.cal-event-title {
  display: block;
  font-size: clamp(1rem, 1.8vw, 1.1rem);
  font-weight: 500;
  letter-spacing: -0.015em;
  line-height: 1.45;
  color: var(--ink);
}

.cal-event-hint {
  position: absolute;
  right: 0.55rem;
  top: 50%;
  width: 0.55rem;
  height: 0.55rem;
  border-right: 1.5px solid rgba(var(--ink-rgb), 0.35);
  border-bottom: 1.5px solid rgba(var(--ink-rgb), 0.35);
  transform: translateY(-65%) rotate(45deg);
  transition: transform 0.25s ease;
}

.cal-timeline li.is-open .cal-event-hint {
  transform: translateY(-20%) rotate(225deg);
}

.cal-event-panel {
  padding: 0 0.85rem 1.15rem;
  overflow: hidden;
}

.cal-event-panel[hidden] {
  display: none;
}

.cal-event-panel p {
  margin: 0;
  max-width: 62ch;
  padding: 0.85rem 1rem;
  border-radius: var(--radius);
  background: rgba(var(--ink-rgb), 0.035);
  font-size: 0.95rem;
  line-height: 1.55;
  color: rgba(var(--ink-rgb), 0.78);
}

.cal-event-panel strong {
  color: var(--ink);
  font-weight: 600;
}

.cal-related {
  padding: 3.5rem 0 4.25rem;
  background: var(--primary-light);
}

@media (min-width: 900px) {
  .cal-related {
    padding: 5rem 0 5.5rem;
  }
}

.cal-related-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 0;
  border-top: 1px solid rgba(var(--ink-rgb), 0.1);
  opacity: 0;
  transform: translate3d(0, 14px, 0);
  transition:
    opacity 0.65s ease,
    transform 0.65s var(--ease-editorial, cubic-bezier(0.22, 1, 0.36, 1));
}

.cal-related.is-inview .cal-related-list {
  opacity: 1;
  transform: none;
}

.cal-related-list a {
  display: grid;
  gap: 0.4rem;
  padding: 1.25rem 0;
  border-bottom: 1px solid rgba(var(--ink-rgb), 0.08);
  color: var(--ink);
  text-decoration: none;
  transition: padding-left 0.3s ease, color 0.2s ease;
}

.cal-related-list a:hover,
.cal-related-list a:focus-visible {
  padding-left: 0.35rem;
  color: var(--primary);
  outline: none;
}

.cal-related-label {
  font-size: clamp(1rem, 1.8vw, 1.1rem);
  font-weight: 600;
  letter-spacing: -0.02em;
}

.cal-related-copy {
  font-size: 0.98rem;
  line-height: 1.55;
  color: rgba(var(--ink-rgb), 0.68);
 
}

@media (max-width: 899px) {
  .cal-page [id] {
    scroll-margin-top: 6.75rem;
  }
}

@media (hover: none) {
  .cal-term-jump a:hover,
  .cal-related-list a:hover {
    transform: none;
    padding-left: 0;
  }
}

@media (prefers-reduced-motion: reduce) {
  .cal-overview-copy,
  .cal-overview-media-frame img,
  .cal-term-header,
  .cal-term-visual,
  .cal-term-visual img,
  .cal-month,
  .cal-related-list,
  .cal-event-trigger,
  .cal-event-hint,
  .cal-term-jump a,
  .cal-related-list a,
  .cal-filter button {
    transition: none !important;
    animation: none !important;
    transform: none !important;
  }

  .cal-overview .cal-overview-copy,
  .cal-term .cal-term-header,
  .cal-term .cal-term-visual,
  .cal-term .cal-month,
  .cal-related .cal-term-header,
  .cal-related .cal-related-list {
    opacity: 1;
    transform: none;
  }
}

.page-hero.is-inview .page-hero-media img {
  animation: pageHeroDrift 18s ease-in-out infinite alternate;
}

@keyframes pageHeroDrift {
  from {
    transform: scale(1.06) translate3d(0, 0, 0);
  }

  to {
    transform: scale(1.1) translate3d(0, -12px, 0);
  }
}

@media (prefers-reduced-motion: reduce) {

  .nav-mega,
  .related-card img,
  .page-hero-media img,
  .lead-card,
  .solid-cta,
  .ghost-cta {
    transition: none !important;
    animation: none !important;
    transform: none !important;
  }
}

/* --------------------------------------------------------------------------
   Transport (tr-)
   -------------------------------------------------------------------------- */
.tr-page [id] {
  scroll-margin-top: 7.5rem;
}

.tr-kicker-line {
  margin: 0 0 0.55rem;
  font-size: 0.82rem;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--primary);
}

.tr-values {
  padding: 2.5rem 0 3rem;
  background: var(--primary);
  color: #fff;
}

.tr-values h2{
color: #ffffff;
}

@media (min-width: 900px) {
  .tr-values {
    padding: 3.25rem 0 3.75rem;
  }
}

.tr-values-stage {
  width: min(1180px, calc(100% - 2.5rem));
  margin: 0 auto;
}

@media (min-width: 900px) {
  .tr-values-stage {
    width: min(1180px, calc(100% - 4rem));
  }
}

.tr-values-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 1.25rem;
  opacity: 0;
  transform: translate3d(0, 16px, 0);
  transition:
    opacity 0.7s ease,
    transform 0.7s var(--ease-editorial, cubic-bezier(0.22, 1, 0.36, 1));
}

.tr-values.is-inview .tr-values-list {
  opacity: 1;
  transform: none;
}

@media (min-width: 700px) {
  .tr-values-list {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1.5rem 2rem;
  }
}

.tr-values-list li {
  display: grid;
  gap: 0.45rem;
  padding-top: 0.85rem;
  border-top: 1px solid rgba(255, 255, 255, 0.18);
}

.tr-values-num {
  font-size: 1.35rem;
  font-weight: 600;
  line-height: 1;
  letter-spacing: 0;
  color: rgba(255, 255, 255, 0.72);
}

.tr-values-label {
  font-size: clamp(1.65rem, 3.2vw, 2.35rem);
  font-weight: 500;
  letter-spacing: -0.035em;
  line-height: 1.1;
}

.tr-tech {
  list-style: none;
  margin: 1.35rem 0 0;
  padding: 0;
  border-top: 1px solid rgba(var(--ink-rgb), 0.1);
}

.tr-tech li {
  border-bottom: 1px solid rgba(var(--ink-rgb), 0.08);
}

.tr-tech-item {
  display: grid;
  grid-template-columns: auto 1fr;
  align-items: baseline;
  gap: 0.85rem;
  width: 100%;
  margin: 0;
  padding: 0.95rem 0.25rem;
  border: 0;
  background: transparent;
  color: inherit;
  font: inherit;
  text-align: left;
  cursor: pointer;
  transition:
    background 0.25s ease,
    padding-left 0.3s var(--ease-editorial, cubic-bezier(0.22, 1, 0.36, 1)),
    color 0.2s ease;
}

.tr-tech-item:hover,
.tr-tech-item:focus-visible {
  background: rgba(var(--primary-rgb), 0.045);
  outline: none;
  padding-left: 0.4rem;
}

.tr-tech-item.is-active {
  color: var(--primary);
  padding-left: 0.4rem;
  background: rgba(var(--primary-rgb), 0.06);
}

.tr-tech-num {
  font-size: 1.35rem;
  font-weight: 600;
  line-height: 1;
  letter-spacing: 0;
  color: rgba(var(--ink-rgb), 0.38);
}

.tr-tech-item.is-active .tr-tech-num {
  color: var(--primary);
}

.tr-tech-item span:last-child {
  font-size: 1.05rem;
  font-weight: 500;
  letter-spacing: -0.015em;
  line-height: 1.4;
}

.tr-awards {
  padding: 3.5rem 0 4.25rem;
  background: var(--primary-light);
}

@media (min-width: 900px) {
  .tr-awards {
    padding: 5rem 0 5.75rem;
  }
}

.tr-awards-stage {
  width: min(1180px, calc(100% - 2.5rem));
  margin: 0 auto;
}

@media (min-width: 900px) {
  .tr-awards-stage {
    width: min(1180px, calc(100% - 4rem));
    align-items: start;
  }
}

.tr-awards-media {
  margin: 0;
  opacity: 0;
  transform: translate3d(0, 18px, 0);
  transition:
    opacity 0.7s ease,
    transform 0.7s var(--ease-editorial, cubic-bezier(0.22, 1, 0.36, 1));
}

.tr-awards.is-inview .tr-awards-media {
  opacity: 1;
  transform: none;
}

.tr-awards-media-frame {
  overflow: hidden;
  border-radius: calc(var(--radius) + 0.15rem);
  aspect-ratio: 4 / 5;
  background: var(--primary);
  will-change: transform;
}

@media (min-width: 900px) {
  .tr-awards-media-frame {
    position: sticky;
    top: 7.5rem;
  }
}

.tr-awards-media-frame img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transform: scale(1.06);
  transition: transform 1.2s var(--ease-editorial, cubic-bezier(0.22, 1, 0.36, 1));
}

.tr-awards.is-inview .tr-awards-media-frame img {
  transform: scale(1);
}

.tr-awards-copy {
  opacity: 0;
  transform: translate3d(0, 18px, 0);
  transition:
    opacity 0.7s ease 0.08s,
    transform 0.7s var(--ease-editorial, cubic-bezier(0.22, 1, 0.36, 1)) 0.08s;
}

.tr-awards.is-inview .tr-awards-copy {
  opacity: 1;
  transform: none;
}

.tr-awards-header {
  margin-bottom: 0.35rem;
}

.tr-awards-header .section-copy {
  margin-bottom: 0;
}

.tr-awards-acc {
  margin-top: 1.5rem;
}

.tr-awards-acc .acad-hover-acc-label {
  font-size: 1.05rem;
}

.tr-award-list {
  list-style: none;
  margin: 0;
  padding: 0 0 1.05rem 3rem;
}

@media (max-width: 600px) {
  .tr-award-list {
    padding-left: 0;
  }
}

.tr-award-list li {
  position: relative;
  padding: 0.45rem 0 0.45rem 1.05rem;
  font-size: 0.98rem;
  line-height: 1.55;
  color: rgba(var(--ink-rgb), 0.76);
  opacity: 0;
  transform: translate3d(0, 6px, 0);
  transition:
    opacity 0.35s ease,
    transform 0.4s var(--ease-editorial, cubic-bezier(0.22, 1, 0.36, 1));
}

.tr-award-list li:nth-child(1) { transition-delay: 0.05s; }
.tr-award-list li:nth-child(2) { transition-delay: 0.09s; }
.tr-award-list li:nth-child(3) { transition-delay: 0.13s; }
.tr-award-list li:nth-child(4) { transition-delay: 0.17s; }
.tr-award-list li:nth-child(5) { transition-delay: 0.21s; }
.tr-award-list li:nth-child(6) { transition-delay: 0.25s; }

.tr-award-list li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.95rem;
  width: 0.35rem;
  height: 0.35rem;
  border-radius: 50%;
  background: var(--gold);
}

.acad-hover-acc-item.is-open .tr-award-list li,
.acad-hover-acc-item.is-hovered .tr-award-list li {
  opacity: 1;
  transform: none;
}

.tr-awards-note {
  margin: 1.5rem 0 0;
  font-size: 1.02rem;
  line-height: 1.65;
  color: rgba(var(--ink-rgb), 0.72);
}

.tr-register {
  padding: 3.5rem 0 4.5rem;
  background: rgba(255, 255, 255, 0.78);
}

@media (min-width: 900px) {
  .tr-register {
    padding: 5rem 0 5.75rem;
  }
}

.tr-register-stage {
  width: min(1180px, calc(100% - 2.5rem));
  margin: 0 auto;
  display: block;
}

@media (min-width: 900px) {
  .tr-register-stage {
    width: min(1180px, calc(100% - 4rem));
   
    align-items: start;
  }
}

.tr-register-intro,
.tr-register-aside {
  opacity: 0;
  transform: translate3d(0, 16px, 0);
  transition:
    opacity 0.7s ease,
    transform 0.7s var(--ease-editorial, cubic-bezier(0.22, 1, 0.36, 1));
}

.tr-register.is-inview .tr-register-intro,
.tr-register.is-inview .tr-register-aside {
  opacity: 1;
  transform: none;
}

.tr-register.is-inview .tr-register-aside {
  transition-delay: 0.08s;
}

.tr-contact {
  list-style: none;
  margin: 1.5rem 0 0;
  padding: 0;
  border-top: 1px solid rgba(var(--ink-rgb), 0.1);
}

.tr-contact li {
  display: grid;
  gap: 0.25rem;
  padding: 1rem 0;
  border-bottom: 1px solid rgba(var(--ink-rgb), 0.08);
}

.tr-contact-label {
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: rgba(var(--ink-rgb), 0.48);
}

.tr-contact a {
  color: var(--ink);
  font-size: 1.12rem;
  font-weight: 600;
  letter-spacing: -0.015em;
  text-decoration: none;
  transition: color 0.2s ease;
}

.tr-contact a:hover,
.tr-contact a:focus-visible {
  color: var(--primary);
  outline: none;
}

.tr-info-block {
  padding: 1.35rem 0;
  border-top: 1px solid rgba(var(--ink-rgb), 0.1);
}

.tr-info-block--action {
  padding-bottom: 0;
}

.tr-info-title {
  margin: 0 0 0.7rem;
  font-size: 1.15rem;
  font-weight: 600;
  letter-spacing: -0.02em;
  color: var(--ink);
}

.tr-info-block p {
  margin: 0;
  font-size: 1.02rem;
  line-height: 1.65;
  color: rgba(var(--ink-rgb), 0.74);
}

.tr-info-block--action .solid-cta {
  margin-top: 0.85rem;
}

@media (max-width: 899px) {
  .tr-page [id] {
    scroll-margin-top: 6.75rem;
  }

  .tr-awards-media-frame {
    aspect-ratio: 16 / 10;
  }
}

@media (hover: none) {
  .tr-tech-item:hover {
    padding-left: 0.25rem;
    background: transparent;
  }

  .tr-tech-item.is-active:hover {
    padding-left: 0.4rem;
    background: rgba(var(--primary-rgb), 0.06);
  }
}

@media (prefers-reduced-motion: reduce) {
  .tr-values-list,
  .tr-awards-media,
  .tr-awards-media-frame img,
  .tr-awards-copy,
  .tr-register-intro,
  .tr-register-aside,
  .tr-tech-item,
  .tr-award-list li {
    transition: none !important;
    animation: none !important;
    transform: none !important;
  }

  .tr-values .tr-values-list,
  .tr-awards .tr-awards-media,
  .tr-awards .tr-awards-copy,
  .tr-register .tr-register-intro,
  .tr-register .tr-register-aside,
  .acad-hover-acc-item .tr-award-list li {
    opacity: 1;
    transform: none;
  }
}

/* --------------------------------------------------------------------------
   School Policies (pol-)
   -------------------------------------------------------------------------- */
.pol-page [id] {
  scroll-margin-top: 7.5rem;
}

.pol-kicker-line {
  margin: 0 0 0.55rem;
  font-size: 0.82rem;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--primary);
}

.pol-jump {
  list-style: none;
  margin: 1.5rem 0 0;
  padding: 0;
  display: flex;
  flex-wrap: wrap;
  gap: 0.55rem;
}

.pol-jump a {
  display: inline-flex;
  align-items: center;
  padding: 0.55rem 0.95rem;
  border-radius: 999px;
  border: 1px solid rgba(var(--ink-rgb), 0.14);
  background: rgba(255, 255, 255, 0.75);
  color: var(--ink);
  font-size: 0.88rem;
  font-weight: 600;
  text-decoration: none;
  transition:
    background 0.2s ease,
    border-color 0.2s ease,
    color 0.2s ease,
    transform 0.25s var(--ease-editorial, cubic-bezier(0.22, 1, 0.36, 1));
}

.pol-jump a:hover,
.pol-jump a:focus-visible {
  background: var(--primary);
  border-color: var(--ink);
  color: #fff;
  outline: none;
  transform: translateY(-1px);
}

.pol-index {
  padding: 3.5rem 0 4.25rem;
  background: rgba(255, 255, 255, 0.78);
}

.pol-index--alt {
  background: var(--primary-light);
}

@media (min-width: 900px) {
  .pol-index {
    padding: 5rem 0 5.75rem;
  }
}

.pol-index-stage {
  width: min(1180px, calc(100% - 2.5rem));
  margin: 0 auto;
}

@media (min-width: 900px) {
  .pol-index-stage {
    width: min(1180px, calc(100% - 4rem));
  }

  .pol-index-stage--split {
    width: min(1180px, calc(100% - 4rem));
    display: block;
   align-items: start;
  }
}

.pol-index-header {
  max-width: 60ch;
  margin-bottom: 0.5rem;
  opacity: 0;
  transform: translate3d(0, 14px, 0);
  transition:
    opacity 0.65s ease,
    transform 0.65s var(--ease-editorial, cubic-bezier(0.22, 1, 0.36, 1));
}

.pol-index.is-inview .pol-index-header {
  opacity: 1;
  transform: none;
}

.pol-acc {
  opacity: 0;
  transform: translate3d(0, 16px, 0);
  transition:
    opacity 0.7s ease 0.06s,
    transform 0.7s var(--ease-editorial, cubic-bezier(0.22, 1, 0.36, 1)) 0.06s;
}

.pol-index.is-inview .pol-acc {
  opacity: 1;
  transform: none;
}

.pol-acc .acad-hover-acc-label {
  font-size: clamp(1rem, 1.8vw, 1.1rem);
  letter-spacing: -0.018em;
}

.pol-download {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  color: var(--primary);
  font-weight: 600;
  font-size: 0.95rem;
  letter-spacing: -0.01em;
  text-decoration: none;
  border-bottom: 1px solid rgba(var(--primary-rgb), 0.28);
  padding-bottom: 0.1rem;
  transition:
    color 0.2s ease,
    border-color 0.2s ease,
    gap 0.25s var(--ease-editorial, cubic-bezier(0.22, 1, 0.36, 1));
}

.pol-download:hover,
.pol-download:focus-visible {
  color: var(--ink);
  border-color: rgba(var(--ink-rgb), 0.35);
  outline: none;
  gap: 0.55rem;
}

.pol-index-media {
  margin: 2rem 0 0;
  opacity: 0;
  transform: translate3d(0, 18px, 0);
  transition:
    opacity 0.7s ease 0.1s,
    transform 0.7s var(--ease-editorial, cubic-bezier(0.22, 1, 0.36, 1)) 0.1s;
}

@media (min-width: 900px) {
  .pol-index-media {
    margin: 0;
  }
}

.pol-index.is-inview .pol-index-media {
  opacity: 1;
  transform: none;
}

.pol-index-media-frame {
  overflow: hidden;
  border-radius: calc(var(--radius) + 0.15rem);
  aspect-ratio: 4 / 5;
  background: var(--primary);
  will-change: transform;
}

@media (min-width: 900px) {
  .pol-index-media-frame {
    position: sticky;
    top: 7.5rem;
    max-height: calc(100vh - 9rem);
  }
}

@media (max-width: 899px) {
  .pol-index-media-frame {
    aspect-ratio: 16 / 10;
  }
}

.pol-index-media-frame img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transform: scale(1.06);
  transition: transform 1.2s var(--ease-editorial, cubic-bezier(0.22, 1, 0.36, 1));
}

.pol-index.is-inview .pol-index-media-frame img {
  transform: scale(1);
}

@media (max-width: 899px) {
  .pol-page [id] {
    scroll-margin-top: 6.75rem;
  }
}

@media (hover: none) {
  .pol-jump a:hover {
    transform: none;
  }
}

@media (prefers-reduced-motion: reduce) {
  .pol-index-header,
  .pol-acc,
  .pol-index-media,
  .pol-index-media-frame img,
  .pol-jump a,
  .pol-download {
    transition: none !important;
    animation: none !important;
    transform: none !important;
  }

  .pol-index .pol-index-header,
  .pol-index .pol-acc,
  .pol-index .pol-index-media {
    opacity: 1;
    transform: none;
  }
}

/* --------------------------------------------------------------------------
   Parent Partnership (pp-)
   -------------------------------------------------------------------------- */
.pp-page [id] {
  scroll-margin-top: 7.5rem;
}

.pp-kicker-line {
  margin: 0 0 0.55rem;
  font-size: 0.82rem;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--primary);
}

.pp-daily {
  padding: 3.5rem 0 4rem;
  background: var(--primary);
  color: #fff;
}

@media (min-width: 900px) {
  .pp-daily {
    padding: 5rem 0 5.5rem;
  }
}

.pp-daily-stage {
  width: min(1180px, calc(100% - 2.5rem));
  margin: 0 auto;
}

@media (min-width: 900px) {
  .pp-daily-stage {
    width: min(1180px, calc(100% - 4rem));
  }
}

.pp-daily-header {
  margin-bottom: 2.25rem;
  opacity: 0;
  transform: translate3d(0, 16px, 0);
  transition:
    opacity 0.7s ease,
    transform 0.7s var(--ease-editorial, cubic-bezier(0.22, 1, 0.36, 1));
}

.pp-daily.is-inview .pp-daily-header {
  opacity: 1;
  transform: none;
}

.pp-daily-display {
  margin: 0 0 1rem;
  font-size: clamp(2.4rem, 5vw, 4rem);
  font-weight: 500;
  letter-spacing: -0.045em;
  line-height: 1.05;
  color: #fff;
}

.pp-daily-copy {
  margin: 0;
  font-size: clamp(1rem, 1.8vw, 1.1rem);
  line-height: 1.7;
  color: rgba(255, 255, 255, 0.82);
}

.pp-daily-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 1rem;
  opacity: 0;
  transform: translate3d(0, 16px, 0);
  transition:
    opacity 0.7s ease 0.08s,
    transform 0.7s var(--ease-editorial, cubic-bezier(0.22, 1, 0.36, 1)) 0.08s;
}

.pp-daily.is-inview .pp-daily-list {
  opacity: 1;
  transform: none;
}

@media (min-width: 700px) {
  .pp-daily-list {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1.5rem 2rem;
  }
}

.pp-daily-list li {
  display: grid;
  gap: 0.45rem;
  padding-top: 0.95rem;
  border-top: 1px solid rgba(255, 255, 255, 0.18);
}

.pp-daily-num {
  font-size: 1.35rem;
  font-weight: 600;
  line-height: 1;
  letter-spacing: 0;
  color: rgba(255, 255, 255, 0.72);
}

.pp-daily-label {
  font-size: clamp(1.65rem, 3.2vw, 2.35rem);
  font-weight: 500;
  letter-spacing: -0.035em;
  line-height: 1.1;
}

.pp-research {
  padding: 3.5rem 0 4.5rem;
  background: rgba(255, 255, 255, 0.78);
}

@media (min-width: 900px) {
  .pp-research {
    padding: 5rem 0 5.75rem;
  }
}

.pp-research-stage,
.pp-related-stage {
  width: min(1180px, calc(100% - 2.5rem));
  margin: 0 auto;
}

@media (min-width: 900px) {
  .pp-research-stage,
  .pp-related-stage {
    width: min(1180px, calc(100% - 4rem));
  }
}

.pp-research-header {
  max-width: 50ch;
  margin-bottom: 0.75rem;
  opacity: 0;
  transform: translate3d(0, 14px, 0);
  transition:
    opacity 0.65s ease,
    transform 0.65s var(--ease-editorial, cubic-bezier(0.22, 1, 0.36, 1));
}

.pp-research.is-inview .pp-research-header,
.pp-related.is-inview .pp-research-header {
  opacity: 1;
  transform: none;
}

.pp-acc {
  opacity: 0;
  transform: translate3d(0, 16px, 0);
  transition:
    opacity 0.7s ease 0.06s,
    transform 0.7s var(--ease-editorial, cubic-bezier(0.22, 1, 0.36, 1)) 0.06s;
}

.pp-research.is-inview .pp-acc {
  opacity: 1;
  transform: none;
}

.pp-acc .acad-hover-acc-label {
  font-size: clamp(0.98rem, 1.55vw, 1.1rem);
  letter-spacing: -0.02em;
  line-height: 1.35;
}

.pp-acc-body {
  padding: 0 0 1.15rem 0;
  opacity: 0;
  transform: translate3d(0, 8px, 0);
  transition:
    opacity 0.35s ease 0.05s,
    transform 0.4s var(--ease-editorial, cubic-bezier(0.22, 1, 0.36, 1)) 0.05s;
}

@media (max-width: 600px) {
  .pp-acc-body {
    padding-left: 0;
  }
}

.acad-hover-acc-item.is-open .pp-acc-body,
.acad-hover-acc-item.is-hovered .pp-acc-body {
  opacity: 1;
  transform: none;
}

.pp-acc-body p {
  margin: 0 0 0.85rem;
  font-size: 0.98rem;
  line-height: 1.7;
  color: rgba(var(--ink-rgb), 0.78);
}

.pp-acc-body p:last-child {
  margin-bottom: 0;
}

.pp-acc-body ul {
  margin: 0 0 0.95rem;
  padding: 0 0 0 3rem;
}

.pp-acc-body li {
  margin: 0 0 0.45rem;
  font-size: 0.98rem;
  line-height: 1.6;
  color: rgba(var(--ink-rgb), 0.76);
}

.pp-ext-link {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  color: var(--primary);
  font-weight: 600;
  text-decoration: none;
  border-bottom: 1px solid rgba(var(--primary-rgb), 0.28);
  padding-bottom: 0.1rem;
  transition:
    color 0.2s ease,
    border-color 0.2s ease,
    gap 0.25s ease;
}

.pp-ext-link:hover,
.pp-ext-link:focus-visible {
  color: var(--ink);
  border-color: rgba(var(--ink-rgb), 0.35);
  outline: none;
  gap: 0.55rem;
}

.pp-related {
  padding: 3.5rem 0 4.25rem;
  background: var(--primary-light);
}

@media (min-width: 900px) {
  .pp-related {
    padding: 5rem 0 5.5rem;
  }
}

.pp-related-list {
  list-style: none;
  margin: 0;
  padding: 0;
  border-top: 1px solid rgba(var(--ink-rgb), 0.1);
  opacity: 0;
  transform: translate3d(0, 14px, 0);
  transition:
    opacity 0.65s ease,
    transform 0.65s var(--ease-editorial, cubic-bezier(0.22, 1, 0.36, 1));
}

.pp-related.is-inview .pp-related-list {
  opacity: 1;
  transform: none;
}

.pp-related-list a {
  display: grid;
  gap: 0.4rem;
  padding: 1.25rem 0;
  border-bottom: 1px solid rgba(var(--ink-rgb), 0.08);
  color: var(--ink);
  text-decoration: none;
  transition: padding-left 0.3s ease, color 0.2s ease;
}

.pp-related-list a:hover,
.pp-related-list a:focus-visible {
  padding-left: 0.35rem;
  color: var(--primary);
  outline: none;
}

.pp-related-label {
  font-size: clamp(1rem, 1.8vw, 1.1rem);
  font-weight: 600;
  letter-spacing: -0.02em;
}

.pp-related-copy {
  font-size: 0.98rem;
  line-height: 1.55;
  color: rgba(var(--ink-rgb), 0.68);
}

@media (max-width: 899px) {
  .pp-page [id] {
    scroll-margin-top: 6.75rem;
  }
}

@media (hover: none) {
  .pp-related-list a:hover {
    padding-left: 0;
  }
}

@media (prefers-reduced-motion: reduce) {
  .pp-daily-header,
  .pp-daily-list,
  .pp-research-header,
  .pp-acc,
  .pp-acc-body,
  .pp-related-list,
  .pp-related-list a,
  .pp-ext-link {
    transition: none !important;
    animation: none !important;
    transform: none !important;
  }

  .pp-daily .pp-daily-header,
  .pp-daily .pp-daily-list,
  .pp-research .pp-research-header,
  .pp-research .pp-acc,
  .pp-related .pp-research-header,
  .pp-related .pp-related-list,
  .acad-hover-acc-item .pp-acc-body {
    opacity: 1;
    transform: none;
  }
}

/* --------------------------------------------------------------------------
   GEMS Rewards (gr-)
   -------------------------------------------------------------------------- */
.gr-page [id] {
  scroll-margin-top: 7.5rem;
}

.gr-impact {
  padding: 3.5rem 0 4rem;
  background: var(--primary);
  color: #fff;
}

@media (min-width: 900px) {
  .gr-impact {
    padding: 5rem 0 5.5rem;
  }
}

.gr-impact-stage {
  width: min(1180px, calc(100% - 2.5rem));
  margin: 0 auto;
  text-align: left;
  opacity: 0;
  transform: translate3d(0, 18px, 0);
  transition:
    opacity 0.7s ease,
    transform 0.7s var(--ease-editorial, cubic-bezier(0.22, 1, 0.36, 1));
}

@media (min-width: 900px) {
  .gr-impact-stage {
    width: min(1180px, calc(100% - 4rem));
  }
}

.gr-impact.is-inview .gr-impact-stage {
  opacity: 1;
  transform: none;
}

.gr-impact-stat {
  margin: 0 0 2.5rem;
  font-size: clamp(3rem, 8vw, 5.5rem);
  font-weight: 500;
  letter-spacing: -0.05em;
  line-height: 0.95;
  color: var(--paper);
}

.gr-impact-copy {
  margin: 0 0 1.35rem;
  font-size: clamp(1.15rem, 2vw, 1.4rem);
  font-style: italic;
  font-weight: 500;
  line-height: 1.45;
  letter-spacing: -0.02em;
  color: rgba(255, 255, 255, 0.92);
}

.gr-impact-cta-copy {
  margin: 0;
  font-size: clamp(1rem, 1.8vw, 1.1rem);
  line-height: 1.65;
  color: rgba(255, 255, 255, 0.78);
}

.gr-impact-cta-copy strong {
  color: #fff;
  font-weight: 600;
}

.gr-points {
  padding: 3.5rem 0 4.5rem;
  background: var(--primary-light);
}

@media (min-width: 900px) {
  .gr-points {
    padding: 5rem 0 5.75rem;
  }
}

.gr-points-stage {
  width: min(1180px, calc(100% - 2.5rem));
  margin: 0 auto;
}

@media (min-width: 900px) {
  .gr-points-stage {
    width: min(1180px, calc(100% - 4rem));
  }
}

.gr-points-header {
  margin-bottom: 0.75rem;
  opacity: 0;
  transform: translate3d(0, 14px, 0);
  transition:
    opacity 0.65s ease,
    transform 0.65s var(--ease-editorial, cubic-bezier(0.22, 1, 0.36, 1));
}

.gr-points.is-inview .gr-points-header {
  opacity: 1;
  transform: none;
}

.gr-acc {
  opacity: 0;
  transform: translate3d(0, 16px, 0);
  transition:
    opacity 0.7s ease 0.06s,
    transform 0.7s var(--ease-editorial, cubic-bezier(0.22, 1, 0.36, 1)) 0.06s;
}

.gr-points.is-inview .gr-acc {
  opacity: 1;
  transform: none;
}

.gr-acc-body {
  padding-left: 1.05rem;
}

@media (max-width: 600px) {
  .gr-acc-body {
    padding-left: 0;
  }
}

.gr-acc-body ul {
  margin: 0;
  padding: 0 0 0 1.1rem;
  list-style: disc;
}

.gr-acc-body li {
  margin: 0 0 0.5rem;
  font-size: 0.98rem;
  line-height: 1.65;
  color: rgba(var(--ink-rgb), 0.76);
  opacity: 0;
  transform: translate3d(0, 6px, 0);
  transition:
    opacity 0.35s ease,
    transform 0.4s var(--ease-editorial, cubic-bezier(0.22, 1, 0.36, 1));
}

.gr-acc-body li:nth-child(1) { transition-delay: 0.05s; }
.gr-acc-body li:nth-child(2) { transition-delay: 0.1s; }

.acad-hover-acc-item.is-open .gr-acc-body li,
.acad-hover-acc-item.is-hovered .gr-acc-body li {
  opacity: 1;
  transform: none;
}

.gr-acc .acad-hover-acc-panel-inner a {
  color: var(--primary);
  font-weight: 600;
  text-decoration: underline;
  text-underline-offset: 0.15em;
}

.gr-band-display {
  margin: 0 0 1rem;
  font-size: clamp(1.85rem, 3.6vw, 2.85rem);
  font-weight: 500;
  letter-spacing: -0.04em;
  line-height: 1.12;
  color: #fff;
}

.gr-band-note {
  margin: 1.25rem 0 0;
  font-size: 0.95rem;
  font-weight: 600;
  letter-spacing: 0.02em;
  color: var(--paper);
}

.gr-benefit-list {
  list-style: none;
  margin: 1.25rem 0 0;
  padding: 0;
  border-top: 1px solid rgba(var(--ink-rgb), 0.1);
}

.gr-benefit-list li {
  position: relative;
  padding: 0.85rem 0 0.85rem 1.15rem;
  border-bottom: 1px solid rgba(var(--ink-rgb), 0.08);
  font-size: clamp(1rem, 1.8vw, 1.1rem);
  line-height: 1.55;
  color: rgba(var(--ink-rgb), 0.8);
}

.gr-benefit-list li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 1.25rem;
  width: 0.35rem;
  height: 0.35rem;
  border-radius: 50%;
  background: var(--gold);
}

.gr-footnote {
  margin: 1rem 0 0;
  font-size: 0.88rem;
  color: rgba(var(--ink-rgb), 0.55);
}

.gr-story--fab .fp-story-stage--split {
  align-items: start;
}

@media (min-width: 900px) {
  .gr-story--fab .fp-story-stage--split {
    grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr);
  }
}

.gr-plus {
  padding: 3.5rem 0 4.5rem;
  background: var(--primary-light);
}

@media (min-width: 900px) {
  .gr-plus {
    padding: 5rem 0 5.75rem;
  }
}

.gr-plus-stage {
  width: min(1180px, calc(100% - 2.5rem));
  margin: 0 auto;
  display: grid;
  gap: 2rem;
  align-items: center;
}

@media (min-width: 900px) {
  .gr-plus-stage {
    width: min(1180px, calc(100% - 4rem));
    grid-template-columns: minmax(0, 1.1fr) minmax(0, 0.9fr);
    gap: clamp(2.5rem, 5vw, 4.5rem);
  }
}

.gr-plus-copy,
.gr-plus-media {
  opacity: 0;
  transform: translate3d(0, 16px, 0);
  transition:
    opacity 0.7s ease,
    transform 0.7s var(--ease-editorial, cubic-bezier(0.22, 1, 0.36, 1));
}

.gr-plus.is-inview .gr-plus-copy,
.gr-plus.is-inview .gr-plus-media {
  opacity: 1;
  transform: none;
}

.gr-plus.is-inview .gr-plus-media {
  transition-delay: 0.08s;
}

.gr-plus-media {
  margin: 0;
}

.gr-plus-media-frame {
  overflow: hidden;
  border-radius: calc(var(--radius) + 0.15rem);
  aspect-ratio: 4 / 5;
  background: var(--primary);
  will-change: transform;
}

@media (max-width: 899px) {
  .gr-plus-media-frame {
    aspect-ratio: 16 / 10;
  }
}

.gr-plus-media-frame img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transform: scale(1.06);
  transition: transform 1.2s var(--ease-editorial, cubic-bezier(0.22, 1, 0.36, 1));
}

.gr-plus.is-inview .gr-plus-media-frame img {
  transform: scale(1);
}

.gr-plus .fp-inline-actions {
  margin-top: 1.5rem;
}

@media (max-width: 899px) {
  .gr-page [id] {
    scroll-margin-top: 6.75rem;
  }
}

@media (prefers-reduced-motion: reduce) {
  .gr-impact-stage,
  .gr-points-header,
  .gr-acc,
  .gr-acc-body li,
  .gr-plus-copy,
  .gr-plus-media,
  .gr-plus-media-frame img {
    transition: none !important;
    animation: none !important;
    transform: none !important;
  }

  .gr-impact .gr-impact-stage,
  .gr-points .gr-points-header,
  .gr-points .gr-acc,
  .gr-plus .gr-plus-copy,
  .gr-plus .gr-plus-media,
  .acad-hover-acc-item .gr-acc-body li {
    opacity: 1;
    transform: none;
  }
}

/* --------------------------------------------------------------------------
   Admissions (adm-)
   -------------------------------------------------------------------------- */
.adm-page [id] {
  scroll-margin-top: 7.5rem;
}

.adm-ages-band {
  padding: 3.5rem 0 4rem;
  background: var(--primary);
  color: #fff;
}

@media (min-width: 900px) {
  .adm-ages-band {
    padding: 5rem 0 5.5rem;
  }
}

.adm-ages-band-stage,
.adm-process-stage,
.adm-table-stage,
.adm-faqs-stage,
.adm-contact-stage,
.adm-enquire-stage,
.adm-fee-highlight-stage {
  width: min(1180px, calc(100% - 2.5rem));
  margin: 0 auto;
}

@media (min-width: 900px) {
  .adm-ages-band-stage,
  .adm-process-stage,
  .adm-table-stage,
  .adm-faqs-stage,
  .adm-contact-stage,
  .adm-enquire-stage,
  .adm-fee-highlight-stage {
    width: min(1180px, calc(100% - 4rem));
  }

  .adm-process-stage,
  .adm-table-stage,
  .adm-faqs-stage,
  .adm-enquire-stage {
    width: min(1180px, calc(100% - 4rem));
  }
}

.adm-ages-band-header,
.adm-section-header {
 margin-bottom: 1.75rem;
  opacity: 0;
  transform: translate3d(0, 14px, 0);
  transition:
    opacity 0.65s ease,
    transform 0.65s var(--ease-editorial, cubic-bezier(0.22, 1, 0.36, 1));
}

.adm-ages-band.is-inview .adm-ages-band-header,
.adm-process.is-inview .adm-section-header,
.adm-table-section.is-inview .adm-section-header,
.adm-faqs.is-inview .adm-section-header,
.adm-enquire-section.is-inview .adm-section-header {
  opacity: 1;
  transform: none;
}

.adm-band-display {
  margin: 0 0 0.85rem;
  font-size: clamp(1.85rem, 3.6vw, 2.85rem);
  font-weight: 500;
  letter-spacing: -0.04em;
  line-height: 1.12;
  color: #fff;
}

.adm-band-copy {
  margin: 0;
  font-size: clamp(1rem, 1.8vw, 1.1rem);
  line-height: 1.65;
  color: rgba(255, 255, 255, 0.82);
}

.adm-age-pills {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 1rem;
  opacity: 0;
  transform: translate3d(0, 16px, 0);
  transition:
    opacity 0.7s ease 0.06s,
    transform 0.7s var(--ease-editorial, cubic-bezier(0.22, 1, 0.36, 1)) 0.06s;
}

.adm-ages-band.is-inview .adm-age-pills {
  opacity: 1;
  transform: none;
}

@media (min-width: 700px) {
  .adm-age-pills {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1.5rem;
  }
}

.adm-age-pills li {
  display: grid;
  gap: 0.35rem;
  padding-top: 0.95rem;
  border-top: 1px solid rgba(255, 255, 255, 0.18);
}

.adm-age-num {
  font-size: clamp(2.4rem, 5vw, 3.5rem);
  font-weight: 500;
  letter-spacing: -0.045em;
  line-height: 1;
  color: var(--paper);
}

.adm-age-label {
  font-size: 0.98rem;
  color: rgba(255, 255, 255, 0.78);
}

.adm-process,
.adm-table-section,
.adm-faqs,
.adm-enquire-section {
  padding: 3.5rem 0 4.5rem;
  background: var(--paper);
}

.adm-table-section{
  background: var(--paper);
}


.adm-enquire-section {
  background: var(--primary-light);
}

@media (min-width: 900px) {
  .adm-process,
  .adm-table-section,
  .adm-faqs,
  .adm-enquire-section {
    padding: 5rem 0 5.75rem;
  }
}

.adm-band-follow {
  margin: 1.25rem 0 0;
  max-width: 42ch;
  font-size: 1.05rem;
  line-height: 1.65;
  color: rgba(255, 255, 255, 0.78);
  opacity: 0;
  transform: translate3d(0, 12px, 0);
  transition:
    opacity 0.7s ease 0.12s,
    transform 0.7s var(--ease-editorial, cubic-bezier(0.22, 1, 0.36, 1)) 0.12s;
}

.adm-home-band.is-inview .adm-band-follow {
  opacity: 1;
  transform: none;
}

.adm-process--journey {
  background: var(--primary-light);
}

.adm-process-layout {
  width: min(1180px, calc(100% - 2.5rem));
  margin: 0 auto;
  display: grid;
  gap: 2.5rem;
}

@media (min-width: 900px) {
  .adm-process-layout {
    width: min(1180px, calc(100% - 4rem));
    grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr);
    gap: clamp(2rem, 5vw, 4.5rem);
    align-items: start;
  }
}

.adm-process-aside-inner {
  opacity: 0;
  transform: translate3d(0, 16px, 0);
  transition:
    opacity 0.7s ease,
    transform 0.7s var(--ease-editorial, cubic-bezier(0.22, 1, 0.36, 1));
}

.adm-process.is-inview .adm-process-aside-inner {
  opacity: 1;
  transform: none;
}

@media (min-width: 900px) {
  .adm-process-aside-inner {
    position: sticky;
    top: 7.5rem;
  }
}

.adm-process-media {
  margin: 1.75rem 0 0;
}

.adm-process-media-frame {
  overflow: hidden;
  border-radius: calc(var(--radius) + 0.15rem);
  aspect-ratio: 4 / 5;
  background: var(--primary);
  will-change: transform;
}

@media (max-width: 899px) {
  .adm-process-media-frame {
    aspect-ratio: 16 / 10;
  }
}

.adm-process-media-frame img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transform: scale(1.06);
  transition: transform 1.2s var(--ease-editorial, cubic-bezier(0.22, 1, 0.36, 1));
}

.adm-process.is-inview .adm-process-media-frame img {
  transform: scale(1);
}

.adm-journey-acc {
  opacity: 0;
  transform: translate3d(0, 16px, 0);
  transition:
    opacity 0.7s ease 0.08s,
    transform 0.7s var(--ease-editorial, cubic-bezier(0.22, 1, 0.36, 1)) 0.08s;
}

.adm-process.is-inview .adm-journey-acc {
  opacity: 1;
  transform: none;
}

.adm-journey-acc .acad-hover-acc-label {
  font-size: clamp(1rem, 1.8vw, 1.1rem);
  letter-spacing: -0.02em;
}

.adm-journey-body {
  padding: 0 0 1.15rem 3rem;
  opacity: 0;
  transform: translate3d(0, 8px, 0);
  transition:
    opacity 0.35s ease 0.05s,
    transform 0.4s var(--ease-editorial, cubic-bezier(0.22, 1, 0.36, 1)) 0.05s;
}

@media (max-width: 600px) {
  .adm-journey-body {
    padding-left: 0;
  }
}

.acad-hover-acc-item.is-open .adm-journey-body,
.acad-hover-acc-item.is-hovered .adm-journey-body {
  opacity: 1;
  transform: none;
}

.adm-journey-body p,
.adm-journey-body li {
  font-size: 0.98rem;
  line-height: 1.65;
  color: rgba(var(--ink-rgb), 0.76);
}

.adm-journey-body p {
  margin: 0 0 0.75rem;
}

.adm-journey-acc .acad-hover-acc-panel-inner p {
  padding: 0;
  opacity: 1;
  transform: none;
  transition: none;
}

.adm-journey-body ul {
  margin: 0 0 0.85rem;
  padding-left: 1.1rem;
}

.adm-journey-sub {
  margin: 1rem 0 0.55rem !important;
  font-size: 0.78rem !important;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: rgba(var(--ink-rgb), 0.48) !important;
}

.adm-mid-cta {
  padding: 2.75rem 0;
  background: rgba(255, 255, 255, 0.82);
  border-top: 1px solid rgba(var(--ink-rgb), 0.06);
  border-bottom: 1px solid rgba(var(--ink-rgb), 0.06);
}

.adm-mid-cta-stage {
  width: min(1180px, calc(100% - 2.5rem));
  margin: 0 auto;
  opacity: 0;
  transform: translate3d(0, 12px, 0);
  transition:
    opacity 0.65s ease,
    transform 0.65s var(--ease-editorial, cubic-bezier(0.22, 1, 0.36, 1));
}

@media (min-width: 900px) {
  .adm-mid-cta-stage {
    width: min(1180px, calc(100% - 4rem));
  }
}

.adm-mid-cta.is-inview .adm-mid-cta-stage {
  opacity: 1;
  transform: none;
}

.adm-mid-cta .fp-continue-actions {
  justify-content: center;
}

.adm-contact--editorial {
  background: var(--primary);
  color: #fff;
  padding: 3.5rem 0 4rem;
}

@media (min-width: 900px) {
  .adm-contact--editorial {
    padding: 4.5rem 0 5rem;
  }
}

.adm-contact--editorial .section-heading {
  color: var(--ink);
}

.adm-contact--editorial .section-kicker {
  color: var(--primary);
}

.adm-contact--editorial .page-eyebrow-rule {
  background: rgba(255, 255, 255, 0.45);
}

.adm-contact--editorial .adm-contact-label {
  color: rgba(var(--ink-rgb), 0.48);
}

.adm-contact--editorial .adm-contact-list {
  margin-top: 4rem;
 
}

.adm-contact--editorial .adm-contact-list li {
  border-bottom: 1px solid rgba(var(--ink-rgb), 0.1);
}

.adm-contact--editorial .adm-contact-list a {
  color: var(--ink);
}

.adm-contact--editorial .adm-contact-list a:hover,
.adm-contact--editorial .adm-contact-list a:focus-visible {
  color: var(--gold-whisper);
}

.adm-contact-grid {
  display: block;
  gap: 1.75rem;
}

@media (min-width: 800px) {
  .adm-contact-grid {
    display: block;
  
    align-items: end;
  }
}

.adm-transfer .fp-story-stage--split {
  align-items: start;
}

@media (min-width: 900px) {
  .adm-transfer .fp-story-stage--split {
    grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr);
  }
}

.adm-steps {
  list-style: none;
  margin: 0;
  padding: 0;
  opacity: 0;
  transform: translate3d(0, 16px, 0);
  transition:
    opacity 0.7s ease 0.06s,
    transform 0.7s var(--ease-editorial, cubic-bezier(0.22, 1, 0.36, 1)) 0.06s;
}

.adm-process.is-inview .adm-steps {
  opacity: 1;
  transform: none;
}

.adm-step {
  padding: 1.5rem 0;
  border-top: 1px solid rgba(var(--ink-rgb), 0.1);
}

.adm-step:last-child {
  border-bottom: 1px solid rgba(var(--ink-rgb), 0.1);
}

.adm-step h3 {
  display: flex;
  align-items: baseline;
  gap: 0.75rem;
  margin: 0 0 0.75rem;
  font-size: clamp(1.15rem, 2vw, 1.35rem);
  font-weight: 600;
  letter-spacing: -0.02em;
  color: var(--ink);
}

.adm-step-num {
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 0.12em;
  color: var(--gold);
}

.adm-step p,
.adm-step li {
  font-size: 1.02rem;
  line-height: 1.65;
  color: rgba(var(--ink-rgb), 0.78);
}

.adm-step p {
  margin: 0 0 0.75rem;
}

.adm-step ul {
  margin: 0 0 0.85rem;
  padding-left: 1.15rem;
}

.adm-inline-link {
  color: var(--primary);
  font-weight: 600;
  text-decoration: none;
  border-bottom: 1px solid rgba(var(--primary-rgb), 0.28);
}

.adm-inline-link:hover,
.adm-inline-link:focus-visible {
  color: var(--ink);
  outline: none;
}

.adm-doc-list {
  list-style: none;
  margin: 0;
  padding: 0 0 1.05rem 3rem;
}

@media (max-width: 600px) {
  .adm-doc-list {
    padding-left: 0;
  }
}

.adm-doc-list li {
  position: relative;
  padding: 0.4rem 0 0.4rem 1.05rem;
  font-size: 0.98rem;
  line-height: 1.55;
  color: rgba(var(--ink-rgb), 0.76);
  opacity: 0;
  transform: translate3d(0, 6px, 0);
  transition:
    opacity 0.35s ease,
    transform 0.4s var(--ease-editorial, cubic-bezier(0.22, 1, 0.36, 1));
}

.adm-doc-list li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.9rem;
  width: 0.35rem;
  height: 0.35rem;
  border-radius: 50%;
  background: var(--gold);
}

.acad-hover-acc-item.is-open .adm-doc-list li,
.acad-hover-acc-item.is-hovered .adm-doc-list li {
  opacity: 1;
  transform: none;
}

.adm-doc-list.adm-doc-list--static {
  padding-left: 0;
}

.adm-doc-list.adm-doc-list--static li,
.acad-hover-acc-item .adm-doc-list--static li,
.acad-hover-acc-item.is-open .adm-doc-list--static li,
.acad-hover-acc-item.is-hovered .adm-doc-list--static li {
  opacity: 1;
  transform: none;
  transition: none;
}

.adm-table-wrap {
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  border-top: 1px solid rgba(var(--ink-rgb), 0.1);
  opacity: 0;
  transform: translate3d(0, 14px, 0);
  transition:
    opacity 0.7s ease 0.06s,
    transform 0.7s var(--ease-editorial, cubic-bezier(0.22, 1, 0.36, 1)) 0.06s;
}

.adm-table-section.is-inview .adm-table-wrap {
  opacity: 1;
  transform: none;
}

.adm-table {
  width: 100%;
  min-width: 36rem;
  border-collapse: collapse;
  font-size: 0.95rem;
}

.adm-table th,
.adm-table td {
  padding: 0.85rem 0.75rem;
  text-align: left;
  border-bottom: 1px solid rgba(var(--ink-rgb), 0.08);
  vertical-align: top;
}

.adm-table thead th {
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: rgba(var(--ink-rgb), 0.48);
}

.adm-table tbody th {
  font-weight: 600;
  color: var(--ink);
}

.adm-table td {
  color: rgba(var(--ink-rgb), 0.72);
}

.adm-table-note {
  margin: 1rem 0 0;
  font-size: 0.92rem;
  line-height: 1.55;
  color: rgba(var(--ink-rgb), 0.62);
}

.adm-bullet-list {
  margin: 0 0 1rem;
  padding-left: 1.15rem;
  list-style: disc;
}

.adm-bullet-list li {
  margin: 0 0 0.4rem;
  font-size: clamp(1rem, 1.8vw, 1.1rem);
  line-height: 1.55;
  color: rgba(var(--ink-rgb), 0.78);
}

.adm-contact {
  padding: 3rem 0;
  background: var(--primary-light);
}

.adm-contact-stage {
  opacity: 0;
  transform: translate3d(0, 14px, 0);
  transition:
    opacity 0.65s ease,
    transform 0.65s var(--ease-editorial, cubic-bezier(0.22, 1, 0.36, 1));
}

.adm-contact.is-inview .adm-contact-stage {
  opacity: 1;
  transform: none;
}

.adm-contact-list {
  list-style: none;
  margin: 1.25rem 0 0;
  padding: 0;
  border-top: 1px solid rgba(var(--ink-rgb), 0.1);
}

.adm-contact-list li {
  display: grid;
  gap: 0.25rem;
  padding: 1rem 0;
  border-bottom: 1px solid rgba(var(--ink-rgb), 0.1);
}

.adm-contact-list--inline {
  margin-top: 2rem;
}

.adm-contact-label {
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: rgba(var(--ink-rgb), 0.48);
}

.adm-contact-list a {
  color: var(--ink);
  font-size: clamp(1rem, 1.8vw, 1.1rem);
  font-weight: 400;
  text-decoration: none;
}

.adm-contact-list a:hover,
.adm-contact-list a:focus-visible {
  color: var(--primary);
  outline: none;
}

.adm-faqs .acad-hover-acc {
  opacity: 0;
  transform: translate3d(0, 14px, 0);
  transition:
    opacity 0.7s ease 0.06s,
    transform 0.7s var(--ease-editorial, cubic-bezier(0.22, 1, 0.36, 1)) 0.06s;
}

.adm-faqs.is-inview .acad-hover-acc {
  opacity: 1;
  transform: none;
}

.adm-fee-highlight {
  padding: 3.5rem 0 4rem;
  background: var(--primary);
  color: #fff;
}

.adm-fee-highlight-stage {
  opacity: 0;
  transform: translate3d(0, 16px, 0);
  transition:
    opacity 0.7s ease,
    transform 0.7s var(--ease-editorial, cubic-bezier(0.22, 1, 0.36, 1));
}

.adm-fee-highlight.is-inview .adm-fee-highlight-stage {
  opacity: 1;
  transform: none;
}

.adm-fee-stat {
  margin: 0 0 0.55rem;
  font-size: clamp(2.8rem, 7vw, 4.75rem);
  font-weight: 500;
  letter-spacing: -0.05em;
  line-height: 0.95;
  color: var(--paper);
}

.adm-fee-stat-label {
  margin: 0;
  font-size: 1.08rem;
  color: rgba(255, 255, 255, 0.78);
}

.fp-story--ink .section-copy {
  color: rgba(255, 255, 255, 0.82);
}

.adm-enquire-section .parent-enquiry {
  opacity: 0;
  transform: translate3d(0, 14px, 0);
  transition:
    opacity 0.7s ease 0.06s,
    transform 0.7s var(--ease-editorial, cubic-bezier(0.22, 1, 0.36, 1)) 0.06s;
}

.adm-enquire-section.is-inview .parent-enquiry {
  opacity: 1;
  transform: none;
}

@media (max-width: 899px) {
  .adm-page [id] {
    scroll-margin-top: 6.75rem;
  }
}

@media (prefers-reduced-motion: reduce) {
  .adm-ages-band-header,
  .adm-age-pills,
  .adm-section-header,
  .adm-steps,
  .adm-process-aside-inner,
  .adm-journey-acc,
  .adm-journey-body,
  .adm-process-media-frame img,
  .adm-mid-cta-stage,
  .adm-band-follow,
  .adm-table-wrap,
  .adm-contact-stage,
  .adm-faqs .acad-hover-acc,
  .adm-fee-highlight-stage,
  .adm-enquire-section .parent-enquiry,
  .adm-doc-list li {
    transition: none !important;
    animation: none !important;
    transform: none !important;
  }

  .adm-ages-band .adm-ages-band-header,
  .adm-ages-band .adm-age-pills,
  .adm-process .adm-section-header,
  .adm-process .adm-steps,
  .adm-process .adm-process-aside-inner,
  .adm-process .adm-journey-acc,
  .adm-process .adm-journey-body,
  .adm-process .adm-process-media-frame img,
  .adm-mid-cta .adm-mid-cta-stage,
  .adm-home-band .adm-band-follow,
  .adm-table-section .adm-section-header,
  .adm-table-section .adm-table-wrap,
  .adm-faqs .adm-section-header,
  .adm-faqs .acad-hover-acc,
  .adm-contact .adm-contact-stage,
  .adm-fee-highlight .adm-fee-highlight-stage,
  .adm-enquire-section .adm-section-header,
  .adm-enquire-section .parent-enquiry,
  .acad-hover-acc-item .adm-doc-list li {
    opacity: 1;
    transform: none;
  }
}

/* --------------------------------------------------------------------------
   The GEMS Story page
   -------------------------------------------------------------------------- */
.gs-page {
  color: var(--ink);
  background: var(--paper);
}

.gs-hero {
  position: relative;
  overflow: hidden;
  min-height: clamp(39.5rem, 62vh, 36rem);
}

.gs-hero-wash {
  position: absolute;
  inset: 0;
  z-index: 0;
}

.gs-hero-wash img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 0%;
  transform: scale(1.06);
  filter: saturate(0.92) contrast(1.02);
}

.gs-hero-veil {
  position: absolute;
  inset: 0;
  background:
  linear-gradient(180deg, rgba(var(--primary-rgb), 0.28) 0%, rgba(var(--primary-rgb), 0.72) 100%),
  linear-gradient(90deg, rgba(var(--primary-rgb), 0.45) 0%, transparent 55%);
}

.gs-hero-stage {
  position: relative;
  z-index: 1;
}

.gs-title {
  max-width: 14ch;
  color: var(--paper);
}

.gs-open,
.gs-letter,
.gs-beyond,
.gs-legacy,
.gs-timeline,
.gs-advantage {
  padding: 4.25rem 0;
}

@media (min-width: 1024px) {
  .gs-open,
  .gs-letter,
  .gs-beyond,
  .gs-legacy,
  .gs-timeline,
  .gs-advantage {
    padding: 6rem 0;
  }
}

.gs-open-stage,
.gs-letter-stage,
.gs-beyond-stage,
.gs-legacy-stage,
.gs-timeline-stage,
.gs-curricula-stage,
.gs-advantage-stage {
  max-width: 1400px;
  margin: 0 auto;
  padding: 0 1.5rem;
}

@media (min-width: 1024px) {
  .gs-open-stage,
  .gs-letter-stage,
  .gs-beyond-stage,
  .gs-legacy-stage,
  .gs-timeline-stage,
  .gs-curricula-stage,
  .gs-advantage-stage {
    padding: 0 2.5rem;
  }
}

.gs-open-stage {
  display: grid;
  align-items: center;
  gap: 2rem;
}

@media (min-width: 900px) {
  .gs-open-stage {
    grid-template-columns: minmax(14rem, 1fr) minmax(0, 1fr);
    gap: 2.5rem;
    align-items: center;
  }
}

.gs-open-media,
.gs-beyond-media {
  margin: 0;
  overflow: hidden;
  aspect-ratio: 4 / 4;
  border-radius: calc(var(--radius) + 0.2rem);
}

@media (max-width: 767px) {
  .gs-open-media,
  .gs-beyond-media {
    aspect-ratio: 16 / 10;
    max-height: 16.5rem;
  }
}

.gs-open-media img,
.gs-beyond-media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transform: scale(1.04);
  transition: transform 1.15s var(--ease-editorial);
}

.gs-open-media:hover img,
.gs-beyond-media:hover img {
  transform: scale(1.08);
}

.gs-lede {
  margin: 0 0 1.35rem;
  font-family: var(--font-display);
  font-size: clamp(1.35rem, 2.6vw, 1.85rem);
  font-weight: 500;
  letter-spacing: -0.03em;
  line-height: 1.28;
  color: var(--ink);
}

.gs-open-copy p:not(.gs-lede),
.gs-letter-copy p:not(.gs-sign-name):not(.gs-sign-role),
.gs-beyond-copy p:not(.section-kicker),
.gs-legacy-head p,
.gs-legacy-close {
  margin: 0 0 1.15rem;
  font-size: clamp(1rem, 1.8vw, 1.1rem);
  line-height: 1.78;
  color: rgba(var(--ink-rgb), 0.78);
}

.gs-quote {
  padding: 7rem 0;
  color: var(--paper);
  background:
    radial-gradient(70% 80% at 100% 0%, rgba(255, 255, 255, 0.12), transparent 55%),
    var(--primary);
}

.gs-quote-stage {
  max-width: 80rem;
  margin: 0 auto;
  text-align: center;
}

.gs-quote-lead {
  margin: 0 0 1.5rem;
  font-size: 1.05rem;
  line-height: 1.7;
  color: rgba(255, 255, 255, 0.7);
}

.gs-quote blockquote {
  margin: 0;
}

.gs-quote blockquote p {
  margin: 0;
  font-family: var(--font-display);
  font-size: clamp(1.7rem, 6.5vw, 6rem);
  font-weight: 500;
  letter-spacing: -0.04em;
  line-height: 1.18;
  color: var(--paper);
}

.gs-letter {
  background: var(--primary-light);
}

.gs-letter-head {
  margin-bottom: 2.25rem;
}

.gs-letter-layout {
  display: grid;
  gap: 2rem;
  align-items: start;
}

.gs-letter-portrait {
  margin: 0;
}

.gs-letter-portrait-frame {
  margin: 0;
  overflow: hidden;
  aspect-ratio: 4 / 5;
  border-radius: calc(var(--radius) + 0.2rem);
}

.gs-letter-portrait-frame img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 12%;
  display: block;
}

.gs-letter-copy {
  min-width: 0;
}

@media (min-width: 768px) {
  .gs-letter-layout {
    grid-template-columns: minmax(0, 1.2fr) minmax(14rem, 1.2fr);
    gap: 2.5rem;
  }

  .gs-letter-portrait {
    position: sticky;
    top: calc(var(--header-offset, 5.5rem) + 1.25rem);
    align-self: start;
  }

  .gs-letter-portrait-frame {
    height: calc(100vh - var(--header-offset, 5.5rem) - 3.5rem);
    max-height: 38rem;
    aspect-ratio: auto;
  }

  .gs-open-media {
    position: static;
    top: 7.5rem;
  }
}

@media (min-width: 1024px) {
  .gs-letter-layout {
    grid-template-columns: minmax(0, 1.18fr) minmax(16rem, 0.82fr);
    gap: 3rem;
  }

  .gs-letter-portrait-frame {
    max-height: 42rem;
  }
}

@media (max-width: 767px) {
  .gs-letter-portrait-frame {
        aspect-ratio: 3 / 4;
  }
}

.gs-sign {
  margin: 2.5rem 0 0;
  padding-top: 1.75rem;
  border-top: 1px solid rgba(var(--ink-rgb), 0.1);
}

.gs-sign-hand {
  margin: 0 0 0.2rem;
  font-family: "Great Vibes", var(--font-display), cursive;
  font-size: clamp(2.4rem, 4vw, 3.3rem);
  font-weight: 400;
  line-height: 1.1;
  color: var(--primary);
}

.gs-sign-name {
  margin: 0.35rem 0 0;
  font-family: var(--font-display);
  font-size: 2rem;
  font-weight: 500;
  letter-spacing: -0.02em;
}

.gs-sign-role {
  margin: 0.2rem 0 0;
  font-size: 0.9rem;
  color: var(--muted-foreground);
}

.gs-beyond {
  background: var(--paper);
}

.gs-beyond-stage {
  display: grid;
  gap: 2rem;
}

@media (min-width: 900px) {
  .gs-beyond-stage {
    grid-template-columns: 1.05fr 0.95fr;
    gap: 4.5rem;
    align-items: center;
  }
}

.gs-beyond-copy .section-heading {
  margin-bottom: 1.35rem;
}

.gs-legacy {
  background-color: var(--primary-light);
}

.gs-legacy-head {
  margin-bottom: 2.5rem;
}

.gs-stats {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1.5rem 1.25rem;
  margin: 0 0 2.75rem;
}

@media (min-width: 768px) {
  .gs-stats {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 2rem 1.75rem;
  }
}

.gs-stat {
  margin: 0;
  padding-top: 1rem;
  border-top: 1px solid rgba(var(--ink-rgb), 0.1);
}

.gs-stat dt {
  font-family: var(--font-display);
  font-size: clamp(1.7rem, 3.2vw, 2.4rem);
  font-weight: 500;
  letter-spacing: -0.045em;
  line-height: 1;
  color: var(--primary);
}

.gs-stat dd {
  margin: 0.55rem 0 0;
  font-size: 0.92rem;
  line-height: 1.45;
  color: var(--muted-foreground);
}

.gs-legacy-close {
  max-width: 100%;
}

.gs-timeline {
  position: relative;
  overflow: hidden;
  color: var(--text);
  background:
    radial-gradient(70% 80% at 100% 0%, rgba(var(--accent-rgb), 0.05), transparent 55%),
    radial-gradient(50% 60% at 0% 100%, rgba(var(--primary-rgb), 0.05), transparent 58%),
    var(--paper);
}

.gs-timeline-mark {
  position: absolute;
  top: 0.6rem;
  right: -0.15rem;
  margin: 0;
  font-family: var(--font-display);
  font-size: clamp(3.5rem, 12vw, 9.5rem);
  font-weight: 500;
  letter-spacing: -0.06em;
  line-height: 0.8;
  color: transparent;
  -webkit-text-stroke: 1px rgba(255, 255, 255, 0.08);
  pointer-events: none;
  user-select: none;
}

.gs-timeline .section-heading {
  color: var(--ink);
}

.gs-timeline-head {
  position: relative;
  z-index: 1;
  margin-bottom: 2.25rem;
}

.gs-rail {
  position: relative;
  z-index: 1;
  overflow-x: auto;
  overflow-y: hidden;
  padding: 2.5rem 0 2rem;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: none;
  mask-image: linear-gradient(90deg, transparent 0%, #000 4%, #000 96%, transparent 100%);
}

.gs-rail::-webkit-scrollbar {
  display: none;
}

.gs-rail:focus-visible {
  outline: 2px solid var(--gold-whisper);
  outline-offset: 6px;
}

.gs-rail-track {
  display: flex;
  gap: 0;
  list-style: none;
  margin: 0;
  padding: 0;
  width: max-content;
}

.gs-rail-track li {
  position: relative;
  flex: 0 0 15.5rem;
  width: 15.5rem;
  padding: 0 2rem 0 0;
}

.gs-rail-track li::before {
  content: "";
  position: absolute;
  top: 2.55rem;
  left: 0;
  right: 0;
  height: 1px;
  background: linear-gradient(90deg, var(--gold), rgba(255, 255, 255, 0.08));
}

.gs-rail-track li::after {
  content: "";
  position: absolute;
  top: 2.32rem;
  left: 0;
  width: 0.55rem;
  height: 0.55rem;
  border-radius: 50%;
  background: var(--gold);
  box-shadow: 0 0 0 6px rgba(var(--gold-rgb), 0.16);
  transition: transform 0.35s var(--ease-editorial), box-shadow 0.35s ease;
}

.gs-rail-track li:hover::after,
.gs-rail-track li:focus-within::after {
  transform: scale(1.25);
  box-shadow: 0 0 0 10px rgba(var(--gold-rgb), 0.22);
}

.gs-rail-year {
  display: block;
  margin-bottom: 2rem;
  font-family: var(--font-display);
  font-size: clamp(1.45rem, 2.4vw, 1.85rem);
  font-weight: 500;
  letter-spacing: -0.04em;
  color: var(--gold-whisper);
  transition: color 0.3s ease;
}

.gs-rail-copy {
  display: block;
  max-width: 13rem;
  padding-top: 0.15rem;
  font-size: 0.98rem;
  line-height: 1.5;
  color: rgba(35, 31, 32, 0.78);
}

.gs-rail-track li:hover .gs-rail-year,
.gs-rail-track li:focus-within .gs-rail-year {
  color: var(--primary);
}

@media (max-width: 639px) {
  .gs-rail-track li {
    flex-basis: 12.5rem;
    width: 12.5rem;
    padding-right: 1.5rem;
  }

  .gs-rail-copy {
    max-width: 11rem;
    font-size: 0.92rem;
  }
}

.gs-curricula {
  position: relative;
  overflow: hidden;
  isolation: isolate;
  height: 100%;
  min-height: 75dvh;
  padding: 4.5rem 0 4.75rem;
  color: var(--paper);
  background: var(--primary);
}

.gs-curricula-media {
  position: absolute;
  inset: 0;
  z-index: 0;
  margin: 0;
}

.gs-curricula-media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 0%;
  display: block;
  transform: scale(1.06);
  transform-origin: 60% 40%;
  transition: transform 1.4s var(--ease-editorial);
}

.gs-curricula:hover .gs-curricula-media img,
.gs-curricula:focus-within .gs-curricula-media img {
  transform: scale(1.1);
}

.gs-curricula-veil {
  position: absolute;
  inset: 0;
  background:
    linear-gradient(90deg, rgba(var(--primary-rgb), 0.88) 0%, rgba(var(--primary-rgb), 0.62) 42%, rgba(var(--primary-rgb), 0.28) 72%, rgba(var(--primary-rgb), 0.18) 100%),
    linear-gradient(180deg, rgba(var(--primary-rgb), 0.28) 0%, transparent 38%, rgba(var(--primary-rgb), 0.55) 100%);
  pointer-events: none;
}

.gs-curricula-stage {
  position: relative;
  z-index: 1;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  min-height: 18rem;
}

@media (min-width: 768px) {
  .gs-curricula {
    padding: 5.5rem 0 5.75rem;
  }

  .gs-curricula-stage {
    min-height: 22rem;
  }
}

@media (min-width: 1024px) {
  .gs-curricula {
    padding: 6.5rem 0 6.75rem;
  }

  .gs-curricula-stage {
    min-height: 26rem;
  }
}

.gs-curricula-kicker {
  margin: 0 0 1rem;
  max-width: 17ch;
  font-family: var(--font-display);
  font-size: clamp(1.85rem, 6.5vw, 5.5rem);
  font-weight: 500;
  letter-spacing: -0.045em;
  line-height: 1;
  color: var(--paper);
}

.gs-curricula-copy {
  margin: 0 0 1.25rem;
  max-width: 60ch;
  font-size: clamp(1rem, 1.8vw, 1.1rem);
  line-height: 1.7;
  color: rgba(255, 255, 255, 0.82);
}

.gs-curricula-paths {
  margin: 0;
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--paper);
}

.gs-curricula .solid-cta {
  margin-top: 1.75rem;
  align-self: flex-start;
}

@media (max-width: 639px) {
  .gs-curricula {
    min-height: 26rem;
    padding: 3.5rem 0 3.75rem;
  }

  .gs-curricula-media img {
    object-position: 70% 35%;
  }

  .gs-curricula-veil {
    background:
      linear-gradient(180deg, rgba(var(--primary-rgb), 0.35) 0%, rgba(var(--primary-rgb), 0.72) 42%, rgba(var(--primary-rgb), 0.88) 100%);
  }

  .gs-curricula-kicker {
    max-width: 18ch;
  }

  .gs-curricula-stage {
    min-height: 0;
    justify-content: flex-end;
  }
}

.gs-advantage {
  background:
    radial-gradient(48% 40% at 100% 0%, rgba(var(--gold-rgb), 0.1), transparent 58%),
    var(--paper);
}

.gs-advantage-head {
  margin-bottom: 2.25rem;
}

.gs-advantage-grid {
  display: grid;
  gap: 1.5rem;
}

.gs-adv {
  display: flex;
  flex-direction: column;
  min-height: 100%;
  overflow: hidden;
  color: var(--paper);
  background: var(--primary);
  border: 1px solid transparent;
  border-radius: calc(var(--radius) + 0.2rem);
  transition: transform 0.55s var(--ease-editorial), box-shadow 0.55s var(--ease-editorial), border-color 0.35s ease;
}

.gs-adv-media {
  margin: 0;
  overflow: hidden;
  aspect-ratio: 16 / 10;
}

.gs-adv-media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transform: scale(1.04);
  transition: transform 1.15s var(--ease-editorial);
}

.gs-adv-body {
  display: flex;
  flex-direction: column;
  flex: 1;
  padding: 1.5rem 1.4rem 1.55rem;
}

.gs-adv-index {
  margin: 0 0 0.55rem;
  font-family: var(--font-display);
  font-size: 1.15rem;
  font-weight: 500;
  letter-spacing: -0.04em;
  color: var(--gold-whisper);
}

.gs-adv h3 {
  margin: 0 0 0.85rem;
  font-family: var(--font-display);
  font-size: clamp(1.28rem, 2vw, 1.55rem);
  font-weight: 500;
  letter-spacing: -0.03em;
  color: var(--paper);
}

.gs-adv-body > p:not(.gs-adv-index) {
  margin: 0 0 1.15rem;
  max-width: none;
  font-size: clamp(1rem, 1.8vw, 1.1rem);
  line-height: 1.7;
  color: rgba(255, 255, 255, 0.72);
}

.gs-adv-cta {
  margin-top: auto;
  align-self: flex-start;
  border-color: rgba(255, 255, 255, 0.28);
  color: var(--paper);
}

.gs-adv-cta:hover,
.gs-adv-cta:focus-visible {
  background-color: var(--paper) ;
  color: var(--primary);
}

.gs-adv:hover,
.gs-adv:focus-within {
  transform: translateY(-6px);
  box-shadow: 0 28px 48px -32px rgba(var(--ink-rgb), 0.45);
}

.gs-adv:hover .gs-adv-media img,
.gs-adv:focus-within .gs-adv-media img {
  transform: scale(1.09);
}

@media (min-width: 768px) {
  .gs-advantage-grid {
    grid-template-columns: 1fr 1fr;
    gap: 1.5rem;
  }

  .gs-adv--family {
    grid-column: 1 / -1;
    display: grid;
    grid-template-columns: minmax(14rem, 0.72fr) minmax(0, 1.28fr);
    align-items: stretch;
  }

  .gs-adv--family .gs-adv-media {
    aspect-ratio: auto;
    max-height: none;
    height: 100%;
    min-height: 16rem;
  }
}

@media (min-width: 1100px) {
  .gs-advantage-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1.65rem;
    align-items: stretch;
  }

  .gs-adv--family {
    grid-column: auto;
    display: flex;
    flex-direction: column;
  }

  .gs-adv--ambassador {
    transform: translateY(1.75rem);
  }

  .gs-adv--ambassador:hover,
  .gs-adv--ambassador:focus-within {
    transform: translateY(0.85rem);
  }
}

@media (hover: none) {
  .gs-adv:hover,
  .gs-adv:focus-within {
    transform: none;
    box-shadow: none;
  }
}

@media (prefers-reduced-motion: reduce) {
  .gs-open-media img,
  .gs-beyond-media img,
  .gs-hero-wash img,
  .gs-curricula-media img,
  .gs-adv-media img,
  .gs-adv,
  .gs-rail-track li {
    transition: none !important;
    transform: none !important;
  }
}

/* --------------------------------------------------------------------------
   Scholarships
   -------------------------------------------------------------------------- */
.sch-intro,
.sch-awards,
.sch-process,
.sch-notes {
  padding: 4.25rem 0;
}

@media (min-width: 1024px) {
  .sch-intro,
  .sch-awards,
  .sch-process,
  .sch-notes {
    padding: 6rem 0;
  }
}

.sch-intro-stage,
.sch-awards-stage,
.sch-process-stage,
.sch-notes-stage,
.sch-band-stage {
  max-width: 1400px;
  margin: 0 auto;
  padding: 0 1.5rem;
}

@media (min-width: 1024px) {
  .sch-intro-stage,
  .sch-awards-stage,
  .sch-process-stage,
  .sch-notes-stage,
  .sch-band-stage {
    padding: 0 2.5rem;
  }
}

.sch-intro {
  background: var(--paper);
}

.sch-intro-stage {
  display: grid;
  gap: 2rem;
}

.sch-intro-media {
  margin: 0;
  overflow: hidden;
  aspect-ratio: 4 / 5;
  border-radius: calc(var(--radius) + 0.15rem);;
}

.sch-intro-media img,
.sch-process-media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transform: scale(1.03);
  transition: transform 1.15s var(--ease-editorial);
}

.sch-intro-media:hover img,
.sch-process-media:hover img {
  transform: scale(1.07);
}

.sch-lede {
  margin: 1rem 0 1.15rem;
  font-family: var(--font-display);
  font-size: clamp(1.15rem, 2vw, 1.4rem);
  font-weight: 500;
  letter-spacing: -0.025em;
  line-height: 1.4;
  color: var(--ink);
}

.sch-intro-copy p:not(.section-kicker):not(.sch-lede) {
  margin: 0 0 1.15rem;
  font-size: 1.02rem;
  line-height: 1.75;
  color: rgba(var(--ink-rgb), 0.78);
}

.sch-intro .ghost-cta,
.sch-process .ghost-cta {
  border-color: rgba(var(--ink-rgb), 0.18);
  color: var(--ink);
}

.sch-intro .ghost-cta:hover,
.sch-process .ghost-cta:hover {
  border-color: var(--primary);
  color: var(--primary);
}

@media (min-width: 768px) {
  .sch-intro-stage {
    grid-template-columns: minmax(14rem, 0.78fr) minmax(0, 1.22fr);
    gap: clamp(2.5rem, 5vw, 4.5rem);
    align-items: center;
  }

  .sch-intro-media {
    position: sticky;
    top: calc(var(--header-offset, 5.5rem) + 1.25rem);
    aspect-ratio: 4 / 5;
  }
}

.sch-band {
  padding: 4.25rem 0;
  color: var(--text);
  background: var(--paper);
}

.sch-band-quote {
  margin: 0;
  max-width: 50ch;
  font-family: var(--font-display);
  font-size: clamp(1.7rem, 3.8vw, 2.85rem);
  font-weight: 500;
  letter-spacing: -0.04em;
  line-height: 1.18;
}

.sch-awards {
  background: var(--primary-light);
}

.sch-awards-head {
  max-width: 40rem;
  margin-bottom: 2.25rem;
}

.sch-awards-lead {
  margin: 0.85rem 0 0;
  font-size: 1.02rem;
  line-height: 1.7;
  color: var(--muted-foreground);
}

.sch-award-list {
  list-style: none;
  margin: 0;
  padding: 0;
}

.sch-award-list li {
  display: grid;
  grid-template-columns: 3.2rem minmax(0, 1fr);
  gap: 1rem;
  padding: 1.35rem 0;
  border-top: 1px solid rgba(var(--ink-rgb), 0.1);
}

.sch-award-list li:last-child {
  border-bottom: 1px solid rgba(var(--ink-rgb), 0.1);
}

.sch-award-list li > div {
  min-width: 0;
}

.sch-award-index {
  font-size: 1.35rem;
  font-weight: 600;
  line-height: 1;
  letter-spacing: 0;
  color: var(--gold);
  padding-top: 0.2rem;
}

.sch-award-list h3 {
  margin: 0 0 0.45rem;
  font-family: var(--font-display);
  font-size: clamp(1.2rem, 2vw, 1.5rem);
  font-weight: 500;
  letter-spacing: -0.03em;
}

.sch-award-list p {
  margin: 0;
  max-width: 58ch;
  font-size: 1.02rem;
  line-height: 1.7;
  color: rgba(var(--ink-rgb), 0.78);
}

.sch-process {
  background: var(--paper);
}

.sch-process-stage {
  display: grid;
  gap: 2rem;
}

.sch-process-copy p:not(.section-kicker) {
  margin: 0 0 1.25rem;
  max-width: 48ch;
  font-size: 1.02rem;
  line-height: 1.75;
  color: rgba(var(--ink-rgb), 0.78);
}

.sch-steps {
  margin: 0 0 1.5rem;
  padding: 0;
  list-style: none;
}

.sch-steps li {
  position: relative;
  min-width: 0;
  padding: 0.95rem 0 0.95rem 2.6rem;
  border-top: 1px solid rgba(var(--ink-rgb), 0.1);
  font-size: 1.02rem;
  line-height: 1.65;
  color: rgba(var(--ink-rgb), 0.78);
}

.sch-steps li:last-child {
  border-bottom: 1px solid rgba(var(--ink-rgb), 0.1);
}

.sch-steps li::before {
  content: "\2022";
  position: absolute;
  left: 0;
  top: 0.95rem;
  font-size: 1.35rem;
  font-weight: 600;
  line-height: 1;
  letter-spacing: 0;
  color: var(--gold);
}

.sch-steps strong {
  color: var(--ink);
  font-weight: 600;
}

.sch-process-media {
  margin: 0;
  overflow: hidden;
  aspect-ratio: 4 / 5;
  border-radius: calc(var(--radius) + 0.15rem)calc(var(--radius) + 0.15rem);
}

@media (min-width: 768px) {
  .sch-process-stage {
    grid-template-columns: 1.15fr 0.85fr;
    gap: clamp(2.5rem, 5vw, 4.5rem);
    align-items: start;
  }

  .sch-process-media {
    position: sticky;
    top: calc(var(--header-offset, 5.5rem) + 1.25rem);
    aspect-ratio: 4 / 5;
  }
}

.sch-notes {
  background: var(--primary-light);
}

.sch-notes-stage {
  max-width: 46rem;
}

.sch-notes-stage > p {
  margin: 0.85rem 0 1.5rem;
  font-size: 1.02rem;
  line-height: 1.7;
  color: var(--muted-foreground);
}

.sch-note-list {
  margin: 0;
  padding: 0;
  list-style: none;
}

.sch-note-list li {
  padding: 0.95rem 0;
  border-top: 1px solid rgba(var(--ink-rgb), 0.1);
  font-size: 1.02rem;
  line-height: 1.7;
  color: rgba(var(--ink-rgb), 0.78);
}

.sch-note-list li:last-child {
  border-bottom: 1px solid rgba(var(--ink-rgb), 0.1);
}

@media (max-width: 767px) {
  .sch-intro-media,
  .sch-process-media {
    aspect-ratio: 16 / 10;
    max-height: 16.5rem;
    height: auto;
  }

  .sch-band-quote {
    max-width: none;
  }
}

@media (prefers-reduced-motion: reduce) {
  .sch-intro-media img,
  .sch-process-media img {
    transition: none !important;
    transform: none !important;
  }
}

/* --------------------------------------------------------------------------
   Open Days and Events
   -------------------------------------------------------------------------- */
.ode-intro,
.ode-diary,
.ode-expect,
.ode-register {
  padding: 4.25rem 0;
}

@media (min-width: 1024px) {
  .ode-intro,
  .ode-diary,
  .ode-expect,
  .ode-register {
    padding: 6rem 0;
  }
}

.ode-intro-stage,
.ode-diary-stage,
.ode-expect-stage,
.ode-register-stage,
.ode-band-stage {
  max-width: 1400px;
  margin: 0 auto;
  padding: 0 1.5rem;
}

@media (min-width: 1024px) {
  .ode-intro-stage,
  .ode-diary-stage,
  .ode-expect-stage,
  .ode-register-stage,
  .ode-band-stage {
    padding: 0 2.5rem;
  }
}

.ode-intro {
  background: var(--paper);
}

.ode-intro-stage {
  display: grid;
  gap: 2rem;
}

.ode-lede {
  margin: 0 0 1.15rem;
  max-width: 38ch;
  font-family: var(--font-display);
  font-size: clamp(1.15rem, 2vw, 1.4rem);
  font-weight: 500;
  letter-spacing: -0.025em;
  line-height: 1.4;
}

.ode-intro-copy p:not(.section-kicker):not(.ode-lede) {
  margin: 0 0 1.15rem;
  max-width: 48ch;
  font-size: 1.02rem;
  line-height: 1.75;
  color: rgba(var(--ink-rgb), 0.78);
}

.ode-intro-media,
.ode-expect-media {
  margin: 0;
  overflow: hidden;
}

.ode-intro-media {
  aspect-ratio: 16 / 10;
}

.ode-expect-media {
  aspect-ratio: 4 / 5;
}

.ode-intro-media img,
.ode-expect-media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transform: scale(1.03);
  transition: transform 1.15s var(--ease-editorial);
}

.ode-intro-media:hover img,
.ode-expect-media:hover img {
  transform: scale(1.07);
}

.ode-intro .ghost-cta,
.ode-register .ghost-cta {
  border-color: rgba(var(--ink-rgb), 0.18);
  color: var(--ink);
}

.ode-intro .ghost-cta:hover,
.ode-register .ghost-cta:hover {
  border-color: var(--primary);
  color: var(--primary);
}

@media (min-width: 768px) {
  .ode-intro-stage {
    grid-template-columns: minmax(0, 1fr) minmax(16rem, 1.05fr);
    gap: 3rem;
    align-items: end;
  }

  .ode-intro-media {
    aspect-ratio: 5 / 4;
  }
}

.ode-diary {
  background: var(--primary-light);
}

.ode-diary-head {
  max-width: 38rem;
  margin-bottom: 2rem;
}

.ode-diary-head p:not(.section-kicker) {
  margin: 0.85rem 0 0;
  font-size: 1.02rem;
  line-height: 1.7;
  color: var(--muted-foreground);
}

.ode-diary-list {
  list-style: none;
  margin: 0;
  padding: 0;
}

.ode-diary-list li {
  display: grid;
  gap: 0.75rem 1.5rem;
  padding: 1.5rem 0;
  border-top: 1px solid rgba(var(--ink-rgb), 0.1);
}

.ode-diary-list li:last-child {
  border-bottom: 1px solid rgba(var(--ink-rgb), 0.1);
}

.ode-date {
  font-family: var(--font-display);
  font-size: clamp(1.45rem, 2.6vw, 1.9rem);
  font-weight: 500;
  letter-spacing: -0.04em;
  line-height: 1;
  color: var(--primary);
}

.ode-diary-copy h3 {
  margin: 0 0 0.45rem;
  font-family: var(--font-display);
  font-size: clamp(1.2rem, 2vw, 1.5rem);
  font-weight: 500;
  letter-spacing: -0.03em;
}

.ode-diary-copy p {
  margin: 0 0 0.45rem;
  max-width: 52ch;
  font-size: 1.02rem;
  line-height: 1.7;
  color: rgba(var(--ink-rgb), 0.78);
}

.ode-meta {
  font-size: 0.82rem !important;
  letter-spacing: 0.04em;
  color: var(--muted-foreground) !important;
}

@media (min-width: 768px) {
  .ode-diary-list li {
    grid-template-columns: 7.5rem 1fr;
    align-items: start;
    padding: 1.75rem 0;
  }
}

.ode-expect {
  background: var(--paper);
}

.ode-expect-stage {
  display: grid;
  gap: 2rem;
}

.ode-expect-copy p:not(.section-kicker) {
  margin: 0 0 1.25rem;
  max-width: 46ch;
  font-size: 1.02rem;
  line-height: 1.75;
  color: rgba(var(--ink-rgb), 0.78);
}

.ode-expect-list {
  margin: 0;
  padding: 0;
  list-style: none;
  counter-reset: ode;
}

.ode-expect-list li {
  counter-increment: ode;
  display: grid;
  grid-template-columns: 2.1rem 1fr;
  gap: 0.7rem;
  padding: 0.9rem 0;
  border-top: 1px solid rgba(var(--ink-rgb), 0.1);
  font-size: 1.02rem;
  line-height: 1.65;
  color: rgba(var(--ink-rgb), 0.78);
}

.ode-expect-list li:last-child {
  border-bottom: 1px solid rgba(var(--ink-rgb), 0.1);
}

.ode-expect-list li::before {
  content: counter(ode) ".";
  font-size: 0.76rem;
  font-weight: 700;
  color: var(--gold);
}

@media (min-width: 768px) {
  .ode-expect-stage {
    grid-template-columns: minmax(14rem, 0.8fr) minmax(0, 1.2fr);
    gap: 3.5rem;
    align-items: start;
  }

  .ode-expect-media {
    position: sticky;
    top: calc(var(--header-offset, 5.5rem) + 1.25rem);
    max-height: 32rem;
    aspect-ratio: auto;
    height: min(58vh, 32rem);
  }
}

.ode-band {
  padding: 4.25rem 0;
  color: var(--text);
  background:
    radial-gradient(60% 70% at 0% 100%, rgba(var(--primary-rgb), 0.05), transparent 55%),
    var(--paper);
}

.ode-band-stage p {
  margin: 0;
  max-width: 24ch;
  font-family: var(--font-display);
  font-size: clamp(1.55rem, 3.4vw, 2.55rem);
  font-weight: 500;
  letter-spacing: -0.04em;
  line-height: 1.2;
}

.ode-register {
  background: var(--primary-light);
}

.ode-register-stage {
  max-width: 40rem;
}

.ode-register-stage p:not(.section-kicker) {
  margin: 0 0 1.35rem;
  font-size: 1.02rem;
  line-height: 1.75;
  color: rgba(var(--ink-rgb), 0.78);
}

@media (max-width: 767px) {
  .ode-intro-media,
  .ode-expect-media {
    aspect-ratio: 16 / 10;
    max-height: 16.5rem;
    height: auto;
  }

  .ode-band-stage p {
    max-width: none;
  }
}

@media (prefers-reduced-motion: reduce) {
  .ode-intro-media img,
  .ode-expect-media img {
    transition: none !important;
    transform: none !important;
  }
}

/* --------------------------------------------------------------------------
   Creative & Performing Arts
   -------------------------------------------------------------------------- */
.cpa-intro,
.cpa-disciplines,
.cpa-year {
  padding: 4.25rem 0;
}

@media (min-width: 1024px) {
  .cpa-intro,
  .cpa-disciplines,
  .cpa-year {
    padding: 6rem 0;
  }
}

.cpa-intro-stage,
.cpa-disciplines-stage,
.cpa-year-stage,
.cpa-band-stage,
.cpa-stage-inner {
  max-width: 1400px;
  margin: 0 auto;
  padding: 0 1.5rem;
}

@media (min-width: 1024px) {
  .cpa-intro-stage,
  .cpa-disciplines-stage,
  .cpa-year-stage,
  .cpa-band-stage,
  .cpa-stage-inner {
    padding: 0 2.5rem;
  }
}

.cpa-intro {
  background: var(--paper);
}

.cpa-intro-stage {
  max-width: 1400px;
}

.cpa-lede {
  margin: 0;
  font-family: var(--font-display);
  font-size: clamp(1.15rem, 2.1vw, 1.4rem);
  font-weight: 500;
  letter-spacing: -0.025em;
  line-height: 1.45;
}

.cpa-stage {
  padding: 0 0 4.25rem;
  background: var(--paper);
}

@media (min-width: 1024px) {
  .cpa-stage {
    padding-bottom: 6rem;
  }
}

.cpa-stage-media {
  margin: 0 0 1.75rem;
  overflow: hidden;
  aspect-ratio: 16 / 9;
  border-radius: calc(var(--radius) + 0.15rem);
}

.cpa-stage-media img,
.cpa-year-media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transform: scale(1.03);
  transition: transform 1.15s var(--ease-editorial);
}

.cpa-stage-media:hover img,
.cpa-year-media:hover img {
  transform: scale(1.07);
}

.cpa-stage-copy {
  max-width: 1400px;
}

.cpa-stage-copy p {
  margin: 0 0 1.1rem;
  font-size: 1.02rem;
  line-height: 1.75;
  color: rgba(var(--ink-rgb), 0.78);
}

.cpa-disciplines {
  background: var(--primary-light);
}

.cpa-disciplines-head {
 margin-bottom: 2rem;
}

.cpa-disc-list {
  list-style: none;
  margin: 0;
  padding: 0;
}

.cpa-disc-list li {
  display: grid;
  grid-template-columns: 3rem 1fr;
  gap: 1rem;
  padding: 1.35rem 0;
  border-top: 1px solid rgba(var(--ink-rgb), 0.1);
}

.cpa-disc-list li:last-child {
  border-bottom: 1px solid rgba(var(--ink-rgb), 0.1);
}

.cpa-disc-index {
  font-family: var(--font-display);
  font-size: 1.1rem;
  font-weight: 500;
  color: var(--gold);
}

.cpa-disc-list h3 {
  margin: 0 0 0.4rem;
  font-family: var(--font-display);
  font-size: clamp(1.2rem, 2vw, 1.5rem);
  font-weight: 500;
  letter-spacing: -0.03em;
}

.cpa-disc-list p {
  margin: 0;
  max-width: 48ch;
  font-size: 1.02rem;
  line-height: 1.7;
  color: rgba(var(--ink-rgb), 0.78);
}

@media (min-width: 900px) {
  .cpa-disc-list {
    display: grid;
    grid-template-columns: 1fr 1fr;
    column-gap: 3.5rem;
  }

  .cpa-disc-list li:nth-child(2) {
    border-top: 1px solid rgba(var(--ink-rgb), 0.1);
  }

  .cpa-disc-list li:nth-last-child(-n+2) {
    border-bottom: 1px solid rgba(var(--ink-rgb), 0.1);
  }
}

.cpa-band {
  padding: 4.5rem 0;
  color: var(--text);
  background: var(--paper);
}

.cpa-band-stage p {
  margin: 0;
  font-family: var(--font-display);
  font-size: clamp(1.6rem, 3.6vw, 2.7rem);
  font-weight: 500;
  letter-spacing: -0.04em;
  line-height: 1.18;
}

.cpa-year {
  background: var(--paper);
}

.cpa-year-stage {
  display: grid;
  gap: 2rem;
}

.cpa-year-media {
  margin: 0;
  overflow: hidden;
  aspect-ratio: 4 / 5;
  border-radius: calc(var(--radius) + 0.15rem);
}

.cpa-year-copy p:not(.section-kicker) {
  margin: 0 0 1.15rem;
  font-size: 1.02rem;
  line-height: 1.75;
  color: rgba(var(--ink-rgb), 0.78);
}

.cpa-year-list {
  margin: 0 0 1.5rem;
  padding: 0;
  list-style: none;
}

.cpa-year-list li {
  padding: 0.85rem 0;
  border-top: 1px solid rgba(var(--ink-rgb), 0.1);
  font-size: 1.02rem;
  line-height: 1.65;
  color: rgba(var(--ink-rgb), 0.78);
}

.cpa-year-list li:last-child {
  border-bottom: 1px solid rgba(var(--ink-rgb), 0.1);
}

.cpa-year .ghost-cta {
  border-color: rgba(var(--ink-rgb), 0.18);
  color: var(--ink);
}

.cpa-year .ghost-cta:hover {
  border-color: var(--primary);
  color: var(--primary);
}

@media (min-width: 768px) {
  .cpa-year-stage {
    grid-template-columns: minmax(14rem, 0.78fr) minmax(0, 1.22fr);
    gap: 3.5rem;
    align-items: start;
  }

  .cpa-year-media {
    position: sticky;
    top: calc(var(--header-offset, 5.5rem) + 1.25rem);
    max-height: 32rem;
    aspect-ratio: auto;
    height: min(58vh, 32rem);
  }
}

@media (max-width: 767px) {
  .cpa-stage-media,
  .cpa-year-media {
    aspect-ratio: 16 / 10;
    max-height: 16.5rem;
    height: auto;
  }

  .cpa-band-stage p {
    max-width: none;
  }
}

@media (prefers-reduced-motion: reduce) {
  .cpa-stage-media img,
  .cpa-year-media img {
    transition: none !important;
    transform: none !important;
  }
}

/* --------------------------------------------------------------------------
   Extra-Curricular Activities
   -------------------------------------------------------------------------- */
.eca-intro,
.eca-balanced,
.eca-e365,
.eca-interest {
  padding: 4.25rem 0;
}

@media (min-width: 1024px) {
  .eca-intro,
  .eca-balanced,
  .eca-e365,
  .eca-interest {
    padding: 6rem 0;
  }
}

.eca-intro-stage,
.eca-balanced-stage,
.eca-e365-stage,
.eca-interest-stage {
  max-width: 1400px;
  margin: 0 auto;
  padding: 0 1.5rem;
}

@media (min-width: 1024px) {
  .eca-intro-stage,
  .eca-balanced-stage,
  .eca-e365-stage,
  .eca-interest-stage {
    padding: 0 2.5rem;
  }
}

.eca-intro {
  background: var(--paper);
}

.eca-intro-stage {
  display: grid;
  gap: 2rem;
}

.eca-intro-media,
.eca-balanced-media,
.eca-interest-media {
  margin: 0;
  overflow: hidden;
  aspect-ratio: 4 / 4;
  border-radius: calc(var(--radius) + 0.15rem);
}

.eca-intro-media img,
.eca-balanced-media img,
.eca-interest-media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transform: scale(1.03);
  transition: transform 1.15s var(--ease-editorial);
}

.eca-intro-media:hover img,
.eca-balanced-media:hover img,
.eca-interest-media:hover img {
  transform: scale(1.07);
}

.eca-intro-copy ,
.eca-balanced-copy ,
.eca-e365-head ,
.eca-interest-copy {
  margin: 0 0 1.15rem;
  font-size: clamp(1rem, 1.8vw, 1.1rem);
  line-height: 1.75;
  color: rgba(var(--ink-rgb), 0.78);
}

@media (min-width: 768px) {
  .eca-intro-stage {
    grid-template-columns: minmax(14rem, 0.78fr) minmax(0, 1.22fr);
    gap: clamp(2.5rem, 5vw, 4.5rem);
    align-items: center;
  }

  .eca-intro-media {
    position: sticky;
    top: calc(var(--header-offset, 5.5rem) + 1.25rem);
   
    aspect-ratio: 4 / 5;
  }
}

.eca-balanced {
  background: var(--primary-light);
}

.eca-balanced-stage {
  display: grid;
  gap: 2rem;
  align-items: start;
  max-width: 1400px;
}

.eca-balanced-copy .section-heading {
  max-width: 16ch;
}

@media (min-width: 768px) {
  .eca-balanced-stage {
    grid-template-columns: minmax(0, 1.18fr) minmax(14rem, 0.82fr);
    gap: 3.5rem;
    align-items: center;
  }

  .eca-balanced-media {
    position: sticky;
    top: calc(var(--header-offset, 5.5rem) + 1.25rem);
    aspect-ratio: 4 / 5;
  }
}

@media (min-width: 1024px) {
  .eca-balanced-stage {
    gap: clamp(2.5rem, 5vw, 4.5rem);
  }
}

.eca-e365 {
  background: var(--paper);
}

.eca-e365-head {
 
  margin-bottom: 2rem;
}

.eca-e365-list {
  margin: 0;
  padding: 0;
}

.eca-e365-list p {
  margin: 0;
  padding: 1.15rem 0;
  border-top: 1px solid rgba(var(--ink-rgb), 0.1);
  font-size: 1.02rem;
  line-height: 1.65;
  color: rgba(var(--ink-rgb), 0.78);
}

.eca-e365-list p:last-child {
  border-bottom: 1px solid rgba(var(--ink-rgb), 0.1);
}

.eca-e365-list span {
  display: inline;
  font-family: var(--font-display);
  font-size: 1.05rem;
  font-weight: 500;
  letter-spacing: -0.02em;
  color: var(--ink);
}

.eca-interest {
  background: var(--primary-light);
}

.eca-interest-stage {
  display: grid;
  gap: 2rem;
}

.eca-interest .ghost-cta {
  border-color: rgba(var(--ink-rgb), 0.18);
  color: var(--ink);
}

.eca-interest .ghost-cta:hover {
  border-color: var(--primary);
  color: var(--primary);
}

@media (min-width: 768px) {
  .eca-interest-stage {
    grid-template-columns: minmax(14rem, 0.8fr) minmax(0, 1.2fr);
    gap: clamp(2.5rem, 5vw, 4.5rem);
    align-items: start;
  }

  .eca-interest-media {
    position: sticky;
    top: calc(var(--header-offset, 5.5rem) + 1.25rem);
    aspect-ratio: 4 / 5;
  }
}

@media (max-width: 767px) {
  .eca-intro-media,
  .eca-balanced-media,
  .eca-interest-media {
    aspect-ratio: 16 / 10;
    max-height: 16.5rem;
    height: auto;
  }

}

@media (prefers-reduced-motion: reduce) {
  .eca-intro-media img,
  .eca-balanced-media img,
  .eca-interest-media img {
    transition: none !important;
    transform: none !important;
  }
}

/* --------------------------------------------------------------------------
   Centre of Excellence
   -------------------------------------------------------------------------- */
.coe-intro,
.coe-series,
.coe-episodes {
  padding: 4.25rem 0;
}

@media (min-width: 1024px) {
  .coe-intro,
  .coe-series,
  .coe-episodes {
    padding: 6rem 0;
  }
}

.coe-intro-stage,
.coe-series-stage,
.coe-episodes-stage {
  max-width: 1400px;
  margin: 0 auto;
  padding: 0 1.5rem;
}

@media (min-width: 1024px) {
  .coe-intro-stage,
  .coe-series-stage,
  .coe-episodes-stage {
    padding: 0 2.5rem;
  }
}

.coe-intro {
  background: var(--paper);
}

.coe-intro-stage {
  display: grid;
  gap: 2rem;
}

.coe-intro-media,
.coe-series-media {
  margin: 0;
  overflow: hidden;
  border-radius: calc(var(--radius) + 0.2rem);
}

.coe-intro-media {
  aspect-ratio: 4 / 5;
}

.coe-intro-media img,
.coe-series-media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transform: scale(1.03);
  transition: transform 1.15s var(--ease-editorial);
}

.coe-intro-media:hover img,
.coe-series-media:hover img {
  transform: scale(1.07);
}

.coe-intro-copy p:not(.section-kicker),
.coe-series-copy p {
  margin: 0 0 1.15rem;
  font-size: clamp(1rem, 1.8vw, 1.1rem);
  line-height: 1.75;
  color: rgba(var(--ink-rgb), 0.78);
}

@media (min-width: 768px) {
  .coe-intro-stage {
    grid-template-columns: minmax(14rem, 0.8fr) minmax(0, 1.2fr);
    gap: clamp(2.5rem, 5vw, 4.5rem);
    align-items: start;
  }

  .coe-intro-media {
    position: sticky;
    top: calc(var(--header-offset, 5.5rem) + 1.25rem);
    
    aspect-ratio: 4 / 5;
  }
}

.coe-series {
  background: var(--primary-light);
}

.coe-series-stage {
  display: grid;
  gap: 2rem;
}

.coe-series-media {
  aspect-ratio: 16 / 9;
}

.coe-series-copy {
  max-width: 46rem;
}

@media (min-width: 900px) {
  .coe-series-stage {
    grid-template-columns: 1.15fr 0.85fr;
    gap: clamp(2.5rem, 5vw, 4.5rem);
    align-items: center;
  }

  .coe-series-media {
    aspect-ratio: 4 / 5;
  }
}

.coe-episodes {
  background: var(--paper);
}

.coe-episode-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-columns: 1fr;
  column-gap: 1.5rem;
  row-gap: 2.25rem;
}

.coe-episode-list li {
  display: grid;
  grid-template-columns: 1fr;
  align-content: start;
  gap: 1rem;
  min-width: 0;
}

.coe-episode-still {
  position: relative;
  display: block;
  width: 100%;
  overflow: hidden;
  color: inherit;
  text-decoration: none;
  aspect-ratio: 16 / 9;
  border-radius: calc(var(--radius) + 0.2rem);
  background:
    linear-gradient(145deg, rgba(var(--gold-rgb), 0.22), transparent 52%),
    var(--paper-deep);
}

.coe-episode-still img,
.coe-episode-still iframe {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  border: 0;
}

.coe-episode-still img {
  object-fit: cover;
  object-position: center;
}

.coe-episode-meta {
  display: grid;
  gap: 0.4rem;
  min-width: 0;
  padding: 0 0.1rem;
}

.coe-episode-label {
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--gold);
}

.coe-episode-title {
  font-family: var(--font-display);
  font-size: clamp(1.1rem, 2vw, 1.45rem);
  font-weight: 500;
  letter-spacing: -0.03em;
  line-height: 1.25;
  color: var(--ink);
}

@media (min-width: 768px) {
  .coe-episode-list {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    column-gap: 2.25rem;
    row-gap: 2.75rem;
  }

  .coe-episode-list li {
    gap: 1.15rem;
  }
}

@media (min-width: 1024px) {
  .coe-episode-list {
    column-gap: 2.75rem;
    row-gap: 3.25rem;
  }

  .coe-episode-list li {
    gap: 1.25rem;
  }
}

@media (max-width: 767px) {
  .coe-intro-media,
  .coe-series-media {
    aspect-ratio: 16 / 10;
    max-height: 16.5rem;
    height: auto;
  }
}

@media (prefers-reduced-motion: reduce) {
  .coe-intro-media img,
  .coe-series-media img,
  .coe-episode-list li {
    transition: none !important;
    transform: none !important;
  }
}

/* White type on brand-blue story chapters */
.ey-sizes--ink :is([class*="kicker"], [class*="eyebrow"]),
.wb-story--ink :is([class*="kicker"], [class*="eyebrow"]),
.wb-story--band :is([class*="kicker"], [class*="eyebrow"]),
.fp-story--ink:not(#purchase) :is([class*="kicker"], [class*="eyebrow"]),
.fp-story--band :is([class*="kicker"], [class*="eyebrow"]),
.ba-story--ink :is([class*="kicker"], [class*="eyebrow"]),
.ba-story--band :is([class*="kicker"], [class*="eyebrow"]),
.sl-story--ink :is([class*="kicker"], [class*="eyebrow"]),
.sl-story--band :is([class*="kicker"], [class*="eyebrow"]),
.el-story--ink :is([class*="kicker"], [class*="eyebrow"]),
.sec-story--ink :is([class*="kicker"], [class*="eyebrow"]),
.inc-story--band :is([class*="kicker"], [class*="eyebrow"]),
.compass-values :is([class*="kicker"], [class*="eyebrow"]),
.gs-quote :is([class*="kicker"], [class*="eyebrow"]) {
  color: var(--paper);
}

/* Fees and Payments */
.fees-page {
  background: var(--paper);
  color: var(--text);
}

.fees-page .acad-hero {
  min-height: clamp(39.5rem, 62vh, 36rem);
}

.fees-page .acad-title {
  max-width: 9.2ch;
}

.fees-page .page-lede {
  max-width: 36rem;
  margin-top: 1.15rem;
  font-size: clamp(1.05rem, 2vw, 1.35rem);
  font-weight: 400;
  line-height: 1.45;
  color: rgba(255, 255, 255, 0.88);
}

@media (min-width: 720px) {
  .fees-page .acad-title {
    max-width: 16ch;
  }
}

.fees-wrap {
  width: min(1180px, calc(100% - 2.5rem));
  margin: 0 auto;
}

@media (min-width: 900px) {
  .fees-wrap {
    width: min(1180px, calc(100% - 4rem));
  }
}

.fees-band {
  padding: 7rem 0;
}

.fees-band--deep {
  background:
    radial-gradient(80% 60% at 100% 0%, rgba(var(--primary-rgb), 0.06), transparent 55%),
    var(--primary-light);
}

.fees-band--ink {
  background: var(--primary);
  color: rgba(255, 255, 255, 0.86);
}

.fees-band--ink .fees-display,
.fees-band--next .fees-display {
  color: var(--paper);
}

.fees-band--next {
  background: var(--primary);
  color: var(--paper);
}

.fees-nowrap {
  white-space: nowrap;
}

.fees-display {
  margin: 0 0 2.5rem;
  color: var(--ink);
  font-size: clamp(2rem, 4.2vw, 3.35rem);
  font-weight: 500;
  letter-spacing: -0.04em;
  line-height: 1.05;
}

.fees-display--center {
  max-width: none;
  text-align: center;
}

.fees-lead,
.fees-prose p,
.fees-intro-copy p,
.fees-card p,
.fees-note {
  margin: 0 0 1.1rem;
  font-size: clamp(1rem, 1.8vw, 1.1rem);
  line-height: 1.7;
}

.fees-intro {
  display: grid;
  gap: 2rem;
  align-items: start;
}

@media (min-width: 860px) {
  .fees-intro {
    grid-template-columns: minmax(0, 1.45fr) minmax(16rem, 0.7fr);
    gap: 3.5rem;
    align-items: center;
  }
}

.fees-contact {
  display: grid;
  gap: 0.85rem;
  padding: 1.5rem 1.35rem;
  border-radius: 1.25rem;
  background: var(--primary);
  color: rgba(255, 255, 255, 0.82);
}

.fees-contact p {
  margin: 0;
  font-size: clamp(1rem, 1.8vw, 1.1rem);
  line-height: 1.5;
}

.fees-contact a {
  color: var(--paper);
  text-decoration-thickness: 1px;
  text-underline-offset: 0.18em;
}

.fees-banner {
  display: block;
  margin: 1.75rem 0 0;
  overflow: hidden;
  border-radius: 1.15rem;
  background: var(--paper);
}

.fees-banner img {
  display: block;
  width: 100%;
  height: auto;
}

.fees-callout {
  margin: 1.25rem 0 0;
  padding: 1.2rem 1.3rem;
  border-left: 3px solid var(--gold);
  border-radius: 0 1rem 1rem 0;
  background: var(--paper);
  color: var(--ink);
  font-size: 1.02rem;
  line-height: 1.65;
}

.fees-callout a,
.fees-prose a,
.fees-table a {
  color: var(--primary);
  font-weight: 600;
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 0.18em;
}

.fees-table-head h3 {
  margin: 0;
  color: var(--ink);
  font-size: clamp(1.45rem, 2.4vw, 2rem);
  font-weight: 500;
  letter-spacing: -0.03em;
  line-height: 1.2;
}

.fees-table-head p {
  margin: 0.55rem 0 0;
  color: var(--text);
  font-size: 1rem;
}

.fees-table-frame {
  margin-top: 1.5rem;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  border: 1px solid var(--border);
  border-radius: 1.15rem;
  background: var(--paper);
}

.fees-table {
  width: 100%;
  min-width: 68rem;
  border-collapse: collapse;
  font-variant-numeric: tabular-nums;
}

.fees-table--ib {
  min-width: 68rem;
}

.fees-table th,
.fees-table td {
  padding: 0.85rem 0.75rem;
  border-bottom: 1px solid var(--border);
  text-align: center;
  vertical-align: middle;
  font-size: 0.92rem;
  line-height: 1.35;
}

.fees-table thead th {
  background: var(--primary);
  color: var(--paper);
  font-size: 0.78rem;
  font-weight: 600;
  letter-spacing: 0.01em;
}

.fees-table thead th span {
  display: block;
}

.fees-table thead th span + span {
  margin-top: 0.28rem;
  font-weight: 500;
  opacity: 0.82;
}

.fees-table tbody th {
  color: var(--ink);
  font-weight: 600;
  text-align: left;
  background: rgba(var(--primary-rgb), 0.04);
}

.fees-table tbody tr:nth-child(even) td {
  background: rgba(var(--primary-rgb), 0.035);
}

.fees-table td:nth-last-child(2) {
  color: var(--ink);
  font-weight: 600;
}

.fees-note {
  margin-top: 2.35rem;
}

.fees-steps,
.fees-points {
  margin: 0 0 1.35rem;
  padding: 0;
  list-style: none;
}

.fees-steps {
  display: grid;
  gap: 0.85rem;
}

.fees-steps li {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: 0.9rem;
  align-items: start;
  font-size: clamp(1rem, 1.8vw, 1.1rem);
}

.fees-band--deep .fees-steps li {
  background: none;
}

.fees-steps li::before {
  content: counter(fees-step);
  counter-increment: fees-step;
  display: grid;
  place-items: center;
 
  color: var(--text);
  font-size: 1.05rem;
  font-weight: 400;
}

.fees-steps {
  counter-reset: fees-step;
}

.fees-points {
  display: grid;
  gap: 0.65rem;
  margin-left: 1.5rem;
}

.fees-points li {
  position: relative;
  padding-left: 1.15rem;
  line-height: 1.65;
}

.fees-points li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.7em;
  width: 0.4rem;
  height: 0.4rem;
  border-radius: 999px;
  background: var(--gold);
}

.fees-split {
  display: grid;
  gap: 1rem;
}

@media (min-width: 800px) {
  .fees-split {
    grid-template-columns: 1fr 1fr;
    gap: 1.25rem;
    align-items: stretch;
  }
}

.fees-card {
  padding: 1.6rem 1.4rem 1.35rem;
  border: 1px solid var(--border);
  border-radius: 1.25rem;
  background: var(--paper);
}

.fees-card h2 {
  margin: 0 0 0.8rem;
  color: var(--ink);
  font-size: clamp(1.45rem, 2vw, 1.85rem);
  font-weight: 500;
  letter-spacing: -0.03em;
  line-height: 1.15;
}

.fees-card p:last-child {
  margin-bottom: 0;
}

.fees-card--accent {
  background: var(--primary);
  border-color: transparent;
  color: rgba(255, 255, 255, 0.9);
}

.fees-card--accent h2,
.fees-card--accent p {
  color: var(--paper);
}

.fees-related {
  display: grid;
  gap: 1rem;
  margin: 0;
  padding: 0;
  list-style: none;
}

@media (min-width: 700px) {
  .fees-related {
    grid-template-columns: 1fr 1fr;
  }
}

@media (min-width: 1040px) {
  .fees-related {
    grid-template-columns: repeat(3, 1fr);
  }
}

.fees-related a {
  display: flex;
  flex-direction: column;
  height: 100%;
  overflow: hidden;
  border-radius: 1.15rem;
  background: var(--paper);
  color: inherit;
  border: 1px solid var(--border);
}

.fees-related img {
  display: block;
  width: 100%;
  aspect-ratio: 490 / 400;
  object-fit: cover;
}

.fees-related h3,
.fees-related p {
  margin: 0;
}

.fees-related h3 {
  padding: 1rem 1.05rem 0.35rem;
  color: var(--ink);
  font-size: 1.2rem;
  font-weight: 600;
  letter-spacing: -0.02em;
  line-height: 1.25;
}

.fees-related p {
  padding: 0 1.05rem 1.15rem;
  color: var(--text);
  font-size: 0.98rem;
  line-height: 1.55;
}

.fees-related a:hover h3,
.fees-related a:focus-visible h3 {
  color: var(--primary);
}

.fees-next {
  display: grid;
  gap: 0.75rem;
  margin: 0;
  padding: 0;
  list-style: none;
}

@media (min-width: 760px) {
  .fees-next {
    grid-template-columns: repeat(3, 1fr);
  }
}

.fees-next a {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 4.25rem;
  padding: 0.9rem 1rem;
  border: 1px solid rgba(255, 255, 255, 0.28);
  border-radius: 999px;
  color: var(--paper);
  font-size: 1.05rem;
  font-weight: 600;
  text-align: center;
}

.fees-next a:hover,
.fees-next a:focus-visible {
  background: var(--paper);
  color: var(--primary);
}

@media (max-width: 899px) {
  .fees-table-frame {
    overflow: visible;
    border: 0;
    background: transparent;
  }

  .fees-table,
  .fees-table--ib {
    min-width: 0;
  }

  .fees-table thead {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip: rect(0 0 0 0);
  }

  .fees-table,
  .fees-table tbody,
  .fees-table tr,
  .fees-table th,
  .fees-table td {
    display: block;
    width: auto;
  }

  .fees-table tr {
    margin-bottom: 0.85rem;
    padding: 0.35rem 1rem 0.7rem;
    border: 1px solid var(--border);
    border-radius: 1rem;
    background: var(--paper);
  }

  .fees-table tbody th {
    padding: 0.85rem 0 0.35rem;
    border: 0;
    background: transparent;
    font-size: 1.2rem;
    text-align: left;
  }

  .fees-table td {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    padding: 0.55rem 0;
    border: 0;
    border-top: 1px solid var(--border);
    text-align: right;
    background: transparent;
  }

  .fees-table td::before {
    content: attr(data-label);
    flex: 1 1 auto;
    min-width: 0;
    color: var(--ink);
    font-weight: 600;
    text-align: left;
  }

  .fees-table tbody tr:nth-child(even) td {
    background: transparent;
  }
}

@media (max-width: 640px) {
  .fees-band {
    padding: 3.15rem 0;
  }

  .fees-wrap {
    width: min(1180px, calc(100% - 2rem));
  }

  .fees-display {
    max-width: 100%;
  }

  .fees-steps li {
    grid-template-columns: 1fr;
  }
}

/* --------------------------------------------------------------------------
   Utility pages: 404, 500, thank you, privacy, terms
   -------------------------------------------------------------------------- */
.utility-page {
  background:
    radial-gradient(42% 36% at 100% 0%, rgba(var(--gold-rgb), 0.08), transparent 58%),
    radial-gradient(36% 32% at 0% 100%, rgba(var(--primary-rgb), 0.06), transparent 62%),
    var(--paper);
}

.utility-stage {
  display: grid;
  align-content: center;
  min-height: calc(100vh - 4.5rem);
  min-height: calc(100dvh - 4.5rem);
  max-width: 1400px;
  margin: 0 auto;
  padding: 8.5rem 1.5rem 5rem;
  text-align: center;
}

.utility-kicker {
  margin: 0 0 1.25rem;
  font-size: 0.72rem;
  font-weight: 600;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--primary);
}

.utility-mark {
  margin: 0;
  font-size: clamp(4.5rem, 14vw, 8.5rem);
  font-weight: 500;
  letter-spacing: -0.06em;
  line-height: 0.85;
  color: var(--primary);
}

.utility-title {
  margin: 2rem 0 0;
  font-size: clamp(2.2rem, 5vw, 3.6rem);
  font-weight: 500;
  letter-spacing: -0.04em;
  line-height: 1.05;
  color: var(--ink);
}

.utility-lede {
  margin: 1.1rem 0 0;
  font-size: 1.05rem;
  line-height: 1.7;
  color: rgba(var(--ink-rgb), 0.78);
}

.utility-lede a,
.legal-doc a:not(.solid-cta) {
  color: var(--primary);
  text-decoration: underline;
  text-underline-offset: 0.18em;
}

.utility-actions {
  display: flex;
  justify-content: center;
  flex-wrap: wrap;
  gap: 0.75rem;
  margin-top: 3rem;
}

.legal-hero-type {
   min-height: clamp(24rem, 58vh, 34rem);
   align-items: center;
   color: var(--text);
   background-color: var(--paper);
}

.legal-crumb {
  margin: 0 0 1rem;
    font-size: 0.72rem;
    font-weight: 600;
    letter-spacing: 0.16em;
    text-transform: uppercase;
  color: var(--primary);
}

.legal-page-lede {
  margin: 2rem 0 0;
  font-size: clamp(1rem, 1.5vw, 1.02rem);
  line-height: 1.65;
  color: var(--text);
}

.utility-page .solid-cta:focus-visible,
.utility-page .ghost-cta:focus-visible,
.legal-page a:focus-visible {
  outline: 2px solid var(--primary);
  outline-offset: 3px;
}

.legal-page .page-title {
  max-width: 100ch;
}

.legal-layout {
  display: grid;
  gap: 2.5rem;
}

.legal-toc {
  display: flex;
  gap: 0.5rem;
  margin: 0;
  padding: 0;
  list-style: none;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}

.legal-toc a {
  display: inline-flex;
  padding: 0.45rem 0.85rem;
  border-radius: 999px;
  font-size: 0.78rem;
  font-weight: 600;
  letter-spacing: 0.03em;
  color: rgba(var(--ink-rgb), 0.72);
  text-decoration: none;
  white-space: nowrap;
  background: rgba(var(--primary-rgb), 0.06);
}

.legal-toc a:hover,
.legal-toc a:focus-visible {
  color: var(--primary);
  background: rgba(var(--primary-rgb), 0.12);
}

.legal-doc h2 {
  scroll-margin-top: 7rem;
}

.legal-doc h2:first-child {
  margin-top: 0;
}

.legal-updated {
  margin: 0 0 1.5rem;
  font-size: 0.78rem;
  font-weight: 600;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--primary);
}

@media (min-width: 1024px) {
  .utility-stage {
    padding: 9.5rem 2.5rem 6rem;
  }

  .legal-layout {
    grid-template-columns: 15rem minmax(0, 42rem);
    align-items: start;
    gap: 4rem;
    padding: 0 2.5rem 7rem;
  }

  .legal-toc {
    position: sticky;
    top: 7.5rem;
    display: grid;
    overflow: visible;
  }

  .legal-toc a {
    white-space: normal;
  }
}

@media (prefers-reduced-motion: no-preference) {
  .utility-mark,
  .utility-title,
  .utility-lede,
  .utility-actions {
    animation: utility-rise 0.7s var(--ease-editorial) both;
  }

  .utility-title { animation-delay: 0.06s; }
  .utility-lede { animation-delay: 0.12s; }
  .utility-actions { animation-delay: 0.18s; }

  .utility-page .solid-cta,
  .utility-page .ghost-cta {
    transition: transform 0.35s var(--ease-editorial), background-color 0.35s var(--ease-editorial), box-shadow 0.35s var(--ease-editorial);
  }

  .utility-page .solid-cta:hover,
  .utility-page .ghost-cta:hover {
    transform: translateY(-2px);
  }
}

@keyframes utility-rise {
  from {
    opacity: 0;
    transform: translateY(12px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}
 
/* --------------------------------------------------------------------------
   Thank you
   -------------------------------------------------------------------------- */
.ty-page {
  background: var(--paper);
  color: var(--ink);
}
 
.ty-hero {
  background:
    radial-gradient(70% 80% at 88% 0%, rgba(255, 255, 255, 0.08), transparent 52%),
    linear-gradient(180deg, #15244a 0%, #243d94 100%);
  color: var(--paper);
}
 
.ty-hero-inner,
.ty-wrap,
.ty-tour-inner,
.ty-close {
  width: min(1180px, calc(100% - 2rem));
  margin: 0 auto;
}
 
.ty-hero-inner {
  padding: calc(var(--header-offset) + 3.5rem) 0 4.5rem;
}
 
.ty-check {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 3.25rem;
  height: 3.25rem;
  font-size: 2rem;
  font-weight: 600;
  margin: 0 0 1.75rem;
  border: 1px solid rgba(232, 213, 163, 0.7);
  border-radius: 50%;
  color: var(--gold-secondary);
}
 
.ty-check svg {
  display: block;
}
 
.ty-kicker,
.ty-wait-kicker,
.ty-tour-kicker {
  margin: 0;
  font-size: 0.72rem;
  font-weight: 600;
  letter-spacing: 0.16em;
  text-transform: uppercase;
}
 
.ty-kicker {
  color: var(--gold-secondary);
}
 
.ty-title {
  margin: 0.85rem 0 0;
  max-width: 11em;
  font-size: clamp(2.6rem, 6vw, 4.4rem);
  font-weight: 500;
  letter-spacing: -0.035em;
  line-height: 0.98;
  color: var(--paper);
}
 
.ty-script {
  display: block;
  margin-top: 0.15rem;
  font-family: "Great Vibes", cursive;
  font-size: 1.35em;
  font-weight: 400;
  letter-spacing: 0;
  line-height: 0.9;
}
 
.ty-spark {
  display: inline-block;
  width: 0.42rem;
  height: 0.42rem;
  margin-left: 0.35rem;
  background: var(--gold-primary);
  transform: translateY(-0.28em);
  vertical-align: baseline;
}
 
.ty-lede {
  margin: 1.35rem 0 0;
  max-width: 40rem;
  font-size: 1.02rem;
  line-height: 1.7;
  color: rgba(255, 255, 255, 0.86);
}
 
.ty-wait {
  padding: 4.5rem 0 5rem;
}
 
.ty-wait-kicker {
  color: var(--primary);
}
 
.ty-wait-title {
  margin: 0.7rem 0 0;
  font-size: clamp(2rem, 4.2vw, 3.35rem);
  font-weight: 500;
  letter-spacing: -0.03em;
  line-height: 1.15;
  color: var(--ink);
}
 
.ty-cards {
  display: grid;
  gap: 1rem;
  margin-top: 1.75rem;
}
 
.ty-card {
  display: flex;
  flex-direction: column;
  min-width: 0;
  padding: 1.5rem 1.25rem 1.35rem;
  background: var(--paper);
  border: 1px solid rgba(var(--ink-rgb), 0.1);
  transition:
    border-color 0.35s var(--ease-editorial),
    box-shadow 0.35s var(--ease-editorial);
}
 
.ty-card:hover {
  background-color: var(--primary-light);
  border-color: rgba(var(--primary-rgb), 0.28);
  box-shadow: 0 18px 36px -24px rgba(var(--primary-rgb), 0.55);
}
 
.ty-card-icon {
  display: flex;
  color: var(--primary);
}
 
.ty-card h3 {
  margin: 1.15rem 0 0;
  font-size: clamp(1rem, 1.8vw, 1.1rem);
  font-weight: 600;
  letter-spacing: -0.02em;
  line-height: 1.3;
  color: var(--ink);
}
 
.ty-card p {
  margin: 0.55rem 0 1.25rem;
  font-size: 0.95rem;
  line-height: 1.6;
  color: rgba(var(--ink-rgb), 0.72);
}
 
.ty-card a {
  margin-top: auto;
  color: var(--primary);
  font-size: 0.92rem;
  font-weight: 600;
  text-decoration: underline;
  text-underline-offset: 0.18em;
  text-decoration-thickness: 1px;
  transition:
    color 0.35s var(--ease-editorial),
    text-underline-offset 0.35s var(--ease-editorial),
    text-decoration-color 0.35s var(--ease-editorial);
}
 
.ty-card a:hover,
.ty-card a:focus-visible {
  color: var(--accent);
  text-underline-offset: 0.32em;
  text-decoration-color: var(--accent);
}
 
.ty-tour {
  background: var(--accent);
  color: var(--paper);
  text-align: center;
}
 
.ty-tour-inner {
  padding: 7rem 0;
}
 
.ty-tour-kicker {
  color: rgba(255, 255, 255, 0.88);
}
 
.ty-tour-title {
  margin: 2.5rem auto 0;
  max-width: 16em;
  font-size: clamp(2rem, 4.2vw, 3.35rem);
  font-weight: 500;
  letter-spacing: -0.03em;
  line-height: 1.15;
  color: var(--paper);
}
 
.ty-tour-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin-top: 3rem;
  padding: 0.9rem 1.6rem;
  border-radius: 999px;
  background: var(--primary);
  color: var(--paper);
  font-size: 0.95rem;
  font-weight: 600;
  text-decoration: none;
  transition: transform 0.35s var(--ease-editorial), background-color 0.35s var(--ease-editorial);
}
 
.ty-tour-btn:hover {
  background: #1b2f78;
}
 
.ty-card a:focus-visible,
.ty-tour-btn:focus-visible {
  outline: 2px solid var(--gold-secondary);
  outline-offset: 3px;
}
 
.ty-close {
  padding: 3.25rem 0 3.5rem;
  text-align: center;
}
 
.ty-close p {
  margin: 0 auto;
  max-width: 36rem;
  font-size: clamp(1rem, 1.8vw, 1.1rem);
  line-height: 1.65;
  color: rgba(var(--ink-rgb), 0.78);
}
 
@media (min-width: 700px) {
  .ty-cards {
    grid-template-columns: 1fr 1fr;
  }
}
 
@media (min-width: 1100px) {
  .ty-hero-inner,
  .ty-wrap,
  .ty-tour-inner,
  .ty-close {
    width: min(1180px, calc(100% - 5rem));
  }
 
  .ty-hero-inner {
    padding-top: calc(var(--header-offset) + 7.5rem);
    padding-bottom: 7.5rem;
  }
 
  .ty-cards {
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 0;
  }
 
  .ty-card + .ty-card {
    border-left: 0;
  }
}
 
@media (prefers-reduced-motion: no-preference) {
  .ty-card {
    transition:
      transform 0.35s var(--ease-editorial),
      border-color 0.35s var(--ease-editorial),
      box-shadow 0.35s var(--ease-editorial);
  }
 
  .ty-card:hover {
    transform: translateY(-3px);
  }
 
  .ty-tour-btn:hover {
    transform: translateY(-2px);
  }
}
 
 