:root {
  /* Theme tokens follow Elementor Global Colors (Site Settings). */
  --navy: var(--e-global-color-primary, #002b63);
  --navy-2: var(--e-global-color-gems_navy_2, #0f2643);
  --cream: var(--e-global-color-gems_cream, #f1eee5);
  --paper: var(--e-global-color-gems_paper, #faf8f2);
  --blue: var(--e-global-color-secondary, #4396c9);
  --lime: var(--e-global-color-accent, #c9dc50);
  --coral: var(--e-global-color-gems_coral, #ed6a50);
  --green: var(--e-global-color-gems_green, #354d4d);
  --violet: var(--e-global-color-gems_violet, #3d2133);
  --white: var(--e-global-color-gems_white, #ffffff);
  --muted: var(--e-global-color-gems_muted, #65717c);
  --muted-2: var(--e-global-color-gems_muted_2, #55616b);
  --slate: var(--e-global-color-gems_slate, #a8b7c8);
  --sky: var(--e-global-color-gems_sky, #7192ba);
  --line-tint: var(--e-global-color-gems_line_tint, #e7eef4);
  --facet-coral: var(--e-global-color-gems_facet_coral, #f9bdb1);
  --facet-blue: var(--e-global-color-gems_facet_blue, #9fd8fb);
  --facet-green: var(--e-global-color-gems_facet_green, #a1d9d9);
  --facet-violet: var(--e-global-color-gems_facet_violet, #ddb4cf);
  --coral-light: var(--e-global-color-gems_coral_light, #ff9d89);
  --arts: var(--e-global-color-gems_arts, #c45d8a);
  --research: var(--e-global-color-gems_research, #9aaa3d);
  --line: color-mix(in srgb, var(--navy) 18%, transparent);
  --max: 1440px;
  --pad: clamp(1.25rem, 4vw, 4rem);
  --ease: cubic-bezier(0.22, 1, 0.36, 1);
  --icon-ne: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none'%3E%3Cpath stroke='%23000' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round' d='M4.5 11.5L11.5 4.5M6.2 4.5H11.5V9.8'/%3E%3C/svg%3E");
  --icon-right: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none'%3E%3Cpath stroke='%23000' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round' d='M3.5 8h9M8.5 4.5L12.5 8 8.5 11.5'/%3E%3C/svg%3E");
  --icon-left: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none'%3E%3Cpath stroke='%23000' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round' d='M12.5 8h-9M7.5 4.5L3.5 8l4 3.5'/%3E%3C/svg%3E");
  --icon-down: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none'%3E%3Cpath stroke='%23000' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round' d='M8 3.5v9M4.5 8.5L8 12.5l3.5-4'/%3E%3C/svg%3E");
  --icon-close: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none'%3E%3Cpath stroke='%23000' stroke-width='1.7' stroke-linecap='round' d='M4 4l8 8M12 4L4 12'/%3E%3C/svg%3E");
  --icon-pause: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Crect x='3.2' y='3' width='3.2' height='10' rx='0.6' fill='%23000'/%3E%3Crect x='9.6' y='3' width='3.2' height='10' rx='0.6' fill='%23000'/%3E%3C/svg%3E");
  --icon-play: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath fill='%23000' d='M5.2 3.4v9.2L13 8 5.2 3.4z'/%3E%3C/svg%3E");
}

/* Design-system icons (SVG masks — encoding-safe) */
.icon {
  display: inline-block;
  width: 0.9em;
  height: 0.9em;
  flex: 0 0 auto;
  vertical-align: -0.08em;
  background-color: currentColor;
  -webkit-mask-position: center;
  mask-position: center;
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
  -webkit-mask-size: contain;
  mask-size: contain;
}

.icon--ne {
  -webkit-mask-image: var(--icon-ne);
  mask-image: var(--icon-ne);
}

.icon--right {
  -webkit-mask-image: var(--icon-right);
  mask-image: var(--icon-right);
}

.icon--left {
  -webkit-mask-image: var(--icon-left);
  mask-image: var(--icon-left);
}

.icon--down {
  -webkit-mask-image: var(--icon-down);
  mask-image: var(--icon-down);
}

.icon--close {
  width: 0.85em;
  height: 0.85em;
  -webkit-mask-image: var(--icon-close);
  mask-image: var(--icon-close);
}

.icon--pause {
  width: 0.85em;
  height: 0.85em;
  -webkit-mask-image: var(--icon-pause);
  mask-image: var(--icon-pause);
}

.icon--play {
  width: 0.85em;
  height: 0.85em;
  -webkit-mask-image: var(--icon-play);
  mask-image: var(--icon-play);
}

* {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}
html {
  scroll-behavior: smooth;
  scroll-padding-top: 7.4rem;
  overflow-x: hidden;
  overflow-x: clip;
}
body {
  font-family: Inter, Arial, sans-serif;
  color: var(--navy);
  background: var(--cream);
  overflow-x: hidden;
  overflow-x: clip;
  -webkit-font-smoothing: antialiased;
}
html.menu-open,
body.menu-open {
  overflow: hidden;
  height: 100%;
  overscroll-behavior: none;
  touch-action: none;
}
a {
  color: inherit;
  text-decoration: none;
}
button,
input,
select {
  font: inherit;
}
button {
  border: 0;
  background: none;
  color: inherit;
  cursor: pointer;
}
img {
  display: block;
  max-width: 100%;
}
h1,
h2,
h3 {
  font-weight: 600;
  line-height: 0.94;
  letter-spacing: -0.055em;
}
p {
  line-height: 1.55;
}
.container {
  width: min(
    100% - (var(--pad) + env(safe-area-inset-left)) -
      (var(--pad) + env(safe-area-inset-right)),
    var(--max)
  );
  margin: auto;
}
.skip-link {
  position: fixed;
  z-index: 5000;
  left: 1rem;
  top: 1rem;
  padding: 0.75rem 1rem;
  background: #fff;
  transform: translateY(-160%);
}
.skip-link:focus {
  transform: none;
}
.cream-section {
  background: var(--cream);
}
.paper-section {
  background: var(--paper);
}
.dark-section {
  background: var(--navy);
  color: #fff;
}
.section-tag {
  font-size: 0.69rem;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  margin-bottom: clamp(1.15rem, 2.4vw, 1.75rem);
}
.section-tag--light {
  color: var(--lime);
}
.dot,
.hero-line .dot,
h2 > span {
  color: var(--coral);
}
.concept-tag {
  position: absolute;
  z-index: 8;
  right: var(--pad);
  bottom: 1rem;
  font-size: 0.6rem;
  color: rgba(16, 41, 66, 0.62);
  letter-spacing: 0.04em;
}

/* transition + cursor */
.page-transition {
  position: fixed;
  z-index: 4000;
  inset: 0;
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  pointer-events: none;
}
.page-transition span {
  background: var(--navy);
  transform: scaleY(0);
  transform-origin: bottom;
}
.page-transition.is-loading span {
  animation: curtain-out 1.25s var(--ease) both;
}
.page-transition.is-loading span:nth-child(2) {
  animation-delay: 0.08s;
}
.page-transition.is-loading span:nth-child(3) {
  animation-delay: 0.16s;
}
.page-transition.is-loading span:nth-child(4) {
  animation-delay: 0.24s;
}
@keyframes curtain-out {
  0% {
    transform: scaleY(1);
  }
  100% {
    transform: scaleY(0);
  }
}
/* .cursor {
  position: fixed;
  z-index: 3000;
  width: 74px;
  height: 74px;
  border-radius: 50%;
  display: grid;
  place-items: center;
  background: var(--coral);
  color: #fff;
  font-size: 0.67rem;
  font-weight: 700;
  pointer-events: none;
  transform: translate(-50%, -50%) scale(0);
  transition: transform 0.25s var(--ease), background 0.2s;
  mix-blend-mode: normal;
} */
/* .cursor.visible {
  transform: translate(-50%, -50%) scale(1);
} */
/* .cursor span {
  max-width: 55px;
  text-align: center;
} */
.scroll-progress {
  position: fixed;
  z-index: 2000;
  right: 10px;
  top: 126px;
  width: 2px;
  height: calc(100vh - 146px);
  background: rgba(255, 255, 255, 0.24);
  mix-blend-mode: difference;
}
.scroll-progress span {
  display: block;
  width: 100%;
  height: 100%;
  background: #fff;
  transform: scaleY(0);
  transform-origin: top;
}

/* navigation */
.site-header {
  position: fixed;
  z-index: 1600;
  top: 0;
  left: 0;
  right: 0;
  display: flex;
  flex-direction: column;
  min-height: 0;
  padding: 0;
  gap: 0;
  transition: background 0.3s, color 0.3s, box-shadow 0.3s;
}
.site-header__bar {
  display: grid;
  grid-template-columns: auto 1fr auto;
  align-items: center;
  gap: 2rem;
  min-height: 82px;
  padding: 1.1rem var(--pad);
  padding-top: 1.1rem;
  padding-left: max(var(--pad), env(safe-area-inset-left));
  padding-right: max(var(--pad), env(safe-area-inset-right));
  background: rgba(241, 238, 229, 0.8);
  backdrop-filter: blur(16px);
  box-shadow: 0 6px 24px rgba(16, 41, 66, 0.08);
}
.site-header.scrolled .site-header__bar {
  background: rgba(241, 238, 229, 0.8);
  backdrop-filter: blur(16px);
  box-shadow: 0 6px 24px rgba(16, 41, 66, 0.08);
}
/* Inner pages without a hero: header bar always filled (JS adds .scrolled, CSS as fallback) */
.principal-page .site-header .site-header__bar {
  background: rgba(241, 238, 229, 0.92);
  backdrop-filter: blur(16px);
  box-shadow: 0 2px 16px rgba(16, 41, 66, 0.06);
}
.site-header.hero-contrast {
  color: var(--navy);
 
}
.site-header.hero-contrast .logo img,
.menu-open .site-header .logo img {
  filter: brightness(0) saturate(100%) invert(14%) sepia(28%) saturate(1570%)
    hue-rotate(169deg) brightness(91%) contrast(95%) !important;
}

.site-header.hero-contrast .menu-button {
  color: #fff;
}

.site-header.hero-contrast .nav-cta {
  border-color: var(--navy);
  color: #002b63;
}
.site-header.hero-contrast .nav-cta:hover {
  color: var(--paper);
  background: var(--navy);
}
.logo {
  z-index: 2;
  width: 112px;
}
.logo img {
  width: 100%;
  height: auto;
  filter: brightness(0) saturate(100%) invert(14%) sepia(28%) saturate(1570%)
    hue-rotate(169deg) brightness(91%) contrast(95%);
  transition: filter 0.3s var(--ease);
}
.desktop-nav {
  justify-self: end;
  display: flex;
  font-size: 0.78rem;
  font-weight: 600;
}
.desktop-nav__list {
  display: flex;
  align-items: center;
  gap: 1.5rem;
  margin: 0;
  padding: 0;
  list-style: none;
}
.nav-item {
  position: static;
}
.nav-trigger {
  position: relative;
  display: inline-flex;
  align-items: center;
  gap: 0;
  min-height: 2.75rem;
  padding: 0.4rem 0;
  font-weight: 600;
  letter-spacing: -0.01em;
  transition: color 0.25s var(--ease);
}
.nav-trigger span {
  color: var(--coral);
}
.nav-trigger::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: 0.12rem;
  width: 100%;
  height: 1px;
  background: var(--coral);
  transform: scaleX(0);
  transform-origin: left center;
  transition: transform 0.4s var(--ease), background 0.25s;
}
.nav-trigger:hover,
.nav-item.is-open .nav-trigger,
.nav-item.is-current>.nav-trigger  {
  color: var(--blue);
}

.nav-trigger:hover::after,
.nav-trigger:focus-visible::after,
.nav-item.is-open .nav-trigger::after,
.nav-item.is-current > .nav-trigger::after {
  transform: scaleX(1);
}
.nav-trigger:focus-visible {
  outline: 2px solid var(--blue);
  outline-offset: 6px;
  border-radius: 2px;
}

.site-header.is-nav-open .nav-item.is-current>.nav-trigger {
  color: var(--blue);
}

.site-header.is-nav-open .nav-item.is-current>.nav-trigger::after {
  background: var(--coral);
}

.site-header.is-nav-open {
  color: var(--navy);
  text-shadow: none;
}

.site-header.hero-contrast--solid .nav-trigger:hover,
.site-header.hero-contrast--solid .nav-item.is-open .nav-trigger,
.site-header.hero-contrast--solid .nav-item.is-current>.nav-trigger {
  color: var(--blue);
}

.site-header.hero-contrast--solid .nav-trigger:hover::after,
.site-header.hero-contrast--solid .nav-item.is-open .nav-trigger::after,
.site-header.hero-contrast--solid .nav-item.is-current>.nav-trigger::after {
  background: var(--coral);
  transform: scaleX(1);
}

.site-header.hero-contrast .nav-trigger:hover,
.site-header.hero-contrast .nav-item.is-open .nav-trigger,
.site-header.hero-contrast .nav-item.is-current > .nav-trigger {
 color: var(--blue);
}
.site-header.hero-contrast .nav-trigger::after {
  background: var(--coral);
}

.site-header.hero-contrast--solid {
  text-shadow: none;
}

.site-header.is-nav-open .site-header__bar {
  background: color-mix(in srgb, var(--cream) 88%, transparent);
  backdrop-filter: blur(18px) saturate(1.08);
  -webkit-backdrop-filter: blur(18px) saturate(1.08);
  box-shadow: none;
}
.site-header.is-nav-open .logo img,
.site-header.is-nav-open.hero-contrast .logo img {
  filter: brightness(0) saturate(100%) invert(14%) sepia(28%) saturate(1570%)
    hue-rotate(169deg) brightness(91%) contrast(95%);
}
.site-header.is-nav-open .nav-trigger:hover,
.site-header.is-nav-open .nav-item.is-open .nav-trigger,
.site-header.is-nav-open.hero-contrast .nav-trigger:hover,
.site-header.is-nav-open.hero-contrast .nav-item.is-open .nav-trigger {
  color: var(--blue);
}
.site-header.is-nav-open .nav-trigger::after,
.site-header.is-nav-open.hero-contrast .nav-trigger::after {
  background: var(--coral);
}
.site-header.is-nav-open.hero-contrast .nav-cta {
  border-color: var(--navy);
  color: var(--navy);
}
.site-header.is-nav-open.hero-contrast .nav-cta:hover {
  color: #fff;
  background: var(--navy);
}

.nav-mega {
  position: absolute;
  z-index: 1;
  left: 0;
  right: 0;
  top: 100%;
  isolation: isolate;
  padding: 2.4rem var(--pad) 2.6rem;
  padding-left: max(var(--pad), env(safe-area-inset-left));
  padding-right: max(var(--pad), env(safe-area-inset-right));
  background:
    linear-gradient(
      180deg,
      color-mix(in srgb, var(--cream) 90%, transparent) 0%,
      color-mix(in srgb, var(--paper) 100%, transparent) 100%
    );
  border-top: 1px solid rgba(255, 255, 255, 0.46);
  box-shadow:
    0 28px 56px rgba(7, 27, 45, 0.12),
    inset 0 1px 0 rgba(255, 255, 255, 0.5);
  backdrop-filter: blur(20px) saturate(1.1);
  -webkit-backdrop-filter: blur(20px) saturate(1.1);
  color: var(--navy);
  text-shadow: none;
  max-height: min(72dvh, calc(100dvh - 7.2rem));
  overflow-y: auto;
  overscroll-behavior: contain;
  scrollbar-width: thin;
  visibility: hidden;
  pointer-events: none;
  opacity: 0;
  transform: translate3d(0, -0.7rem, 0);
  transition:
    opacity 0.45s var(--ease),
    transform 0.55s var(--ease),
    visibility 0s linear 0.45s;
}

.nav-item.is-open .nav-mega {
  visibility: visible;
  pointer-events: auto;
  opacity: 1;
  transform: none;
  transition:
    opacity 0.5s var(--ease),
    transform 0.6s var(--ease),
    visibility 0s linear 0s;
}
.nav-item.is-instant .nav-mega {
  transition: none;
}
.nav-mega__inner {
  display: grid;
  grid-template-columns: minmax(16rem, 0.85fr) minmax(0, 1.55fr);
  gap: clamp(2rem, 5vw, 5.5rem);
  width: min(100%, var(--max));
  margin: 0 auto;
  align-items: start;
}
.nav-mega__intro {
  display: grid;
  align-content: start;
  gap: 0.7rem;
  padding-right: 0.5rem;
}
.nav-mega__index {
  color: var(--coral);
  font-size: 0.64rem;
  font-weight: 700;
  letter-spacing: 0.16em;
}
.nav-mega__kicker {
  color: rgba(0, 43, 99, 0.55);
  font-size: 0.64rem;
  font-weight: 700;
  letter-spacing: 0.16em;
  text-transform: uppercase;
}
.nav-mega__title {
  font-size: clamp(2.4rem, 4.2vw, 3.8rem);
  font-weight: 600;
  line-height: 0.92;
  letter-spacing: -0.055em;
}
.nav-mega__title em {
  font-family: "Playfair Display", serif;
  font-weight: 500;
  font-style: italic;
}
.nav-mega__lede {
  max-width: 38ch;
  color: rgba(0, 43, 99, 0.72);
  font-size: 0.92rem;
  font-weight: 500;
  line-height: 1.5;
}
.nav-mega__cta {
  justify-self: start;
  margin-top: 0.55rem;
}
.nav-mega__actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 1rem 1.25rem;
  margin-top: 0.45rem;
}
.nav-mega__groups {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(14.5rem, 1fr));
  gap: 1.5rem 2.75rem;
  min-width: 0;
}
.nav-mega__groups > .nav-mega__links {
  grid-column: 1 / -1;
  grid-template-columns: 1fr 1fr;
  column-gap: 2.5rem;
}
.nav-mega__group-title {
  margin: 0 0 0.55rem;
  color: var(--coral);
  font-size: 0.62rem;
  font-weight: 700;
  letter-spacing: 0.16em;
  text-transform: uppercase;
}
.nav-mega__links {
  display: grid;
  gap: 0;
  margin: 0;
  padding: 0;
  list-style: none;
}
.nav-mega__link {
  position: relative;
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 1rem;
  padding: 0.82rem 0.15rem 0.82rem 0;
  border-bottom: 1px solid var(--line);
  color: var(--navy);
  font-size: 0.98rem;
  font-weight: 600;
  letter-spacing: -0.03em;
  line-height: 1.25;
  text-wrap: pretty;
  opacity: 0;
  transform: translate3d(0, 0.55rem, 0);
}
.nav-mega__link::after {
  content: "";
  display: inline-block;
  width: 0.78em;
  height: 0.78em;
  margin-left: 0.15rem;
  background-color: var(--coral);
  -webkit-mask: var(--icon-ne) center / contain no-repeat;
  mask: var(--icon-ne) center / contain no-repeat;
  opacity: 0;
  transform: translate(-0.3rem, 0.1rem);
  transition: opacity 0.3s var(--ease), transform 0.3s var(--ease);
}
.nav-item.is-open .nav-mega__link {
  animation: nav-link-in 0.55s var(--ease) both;
  animation-delay: calc(0.08s + var(--i, 0) * 0.045s);
}
.nav-mega__link:hover,
.nav-mega__link:focus-visible {
  color: var(--blue);
  outline: none;
}
.nav-mega__link:hover::after,
.nav-mega__link:focus-visible::after {
  opacity: 1;
  transform: none;
}

.nav-mega__link.is-current,
.nav-mega__link[aria-current="page"] {
  color: var(--coral);
}

.nav-mega__link.is-current::after,
.nav-mega__link[aria-current="page"]::after {
  opacity: 1;
  transform: none;
  background-color: var(--coral);
}

.nav-mega__link--feature {
  color: var(--navy);
}

.nav-mega__link--feature.is-current,
.nav-mega__link--feature[aria-current="page"] {
  color: var(--coral);
}

.nav-mega__link--feature::after {
  opacity: 0.85;
  transform: none;
}
.nav-veil {
  position: fixed;
  z-index: 1550;
  inset: 0;
  background: rgba(0, 20, 48, 0.16);
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.45s var(--ease);
}
@supports not (background: color-mix(in srgb, #000 50%, transparent)) {
  .site-header.is-nav-open .site-header__bar {
    background: rgba(241, 238, 229, 0.88);
  }
  .nav-mega {
    background: rgba(241, 238, 229, 0.9);
  }
}
@supports not ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))) {
  .site-header.is-nav-open .site-header__bar,
  .nav-mega {
    background: var(--cream);
  }
}
@media (prefers-reduced-transparency: reduce) {
  .site-header.is-nav-open .site-header__bar,
  .nav-mega {
    background: var(--cream);
    backdrop-filter: none;
    -webkit-backdrop-filter: none;
  }
  .nav-veil {
    background: rgba(0, 20, 48, 0.28);
  }
}
.nav-veil.is-on {
  opacity: 1;
  pointer-events: auto;
}
@keyframes nav-link-in {
  from {
    opacity: 0;
    transform: translate3d(0, 0.55rem, 0);
  }
  to {
    opacity: 1;
    transform: none;
  }
}
.nav-cta {
  padding: 0.7rem 1rem;
  border: 1px solid var(--navy);
  border-radius: 999px;
  font-size: 0.78rem;
  font-weight: 700;
  transition: 0.2s;
}
.nav-cta:hover,
.nav-cta:focus-visible {
  color: #fff;
  background: var(--navy);
  outline: none;
}

.news-ticker {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
  gap: 0.75rem;
  height: calc(2.2rem + env(safe-area-inset-top));
  padding: env(safe-area-inset-top) max(var(--pad), env(safe-area-inset-right)) 0 max(var(--pad), env(safe-area-inset-left));
  background:
    linear-gradient(90deg, #001433 0%, var(--navy) 42%, #04285a 100%);
  color: #fff;
  text-shadow: none;
  overflow: hidden;
}
.site-header.hero-contrast .news-ticker,
.site-header.scrolled .news-ticker {
  color: #fff;
  text-shadow: none;
}
.news-ticker__live {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  margin: 0;
  color: var(--lime);
  font-size: 0.62rem;
  font-weight: 700;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  white-space: nowrap;
}
.news-ticker__pulse {
  width: 0.42rem;
  height: 0.42rem;
  border-radius: 50%;
  background: var(--lime);
  box-shadow: 0 0 0 0 rgba(201, 220, 80, 0.5);
  animation: ticker-pulse 2.4s var(--ease) infinite;
}
.news-ticker__viewport {
  position: relative;
  min-width: 0;
  overflow: hidden;
  mask-image: linear-gradient(90deg, transparent 0%, #000 4%, #000 96%, transparent 100%);
  -webkit-mask-image: linear-gradient(90deg, transparent 0%, #000 4%, #000 96%, transparent 100%);
}
.news-ticker__rail {
  display: flex;
  align-items: center;
  gap: 0;
  width: max-content;
  animation: ticker-scroll 42s linear infinite;
  will-change: transform;
}
.news-ticker.is-paused .news-ticker__rail,
.news-ticker:hover .news-ticker__rail,
.news-ticker:focus-within .news-ticker__rail {
  animation-play-state: paused;
}
.news-ticker.is-static .news-ticker__rail {
  animation: none;
  width: auto;
  max-width: 100%;
  flex-wrap: nowrap;
  overflow: hidden;
}
.news-ticker__item {
  display: inline-flex;
  align-items: baseline;
  gap: 0.55rem;
  padding: 0 1.35rem;
  color: rgba(255, 255, 255, 0.92);
  font-size: 0.74rem;
  font-weight: 560;
  letter-spacing: -0.01em;
  white-space: nowrap;
  position: relative;
}
.news-ticker__item + .news-ticker__item::before {
  content: "";
  position: absolute;
  left: 0;
  top: 50%;
  width: 0.28rem;
  height: 0.28rem;
  border-radius: 50%;
  background: var(--coral);
  transform: translate(-50%, -50%);
}
.news-ticker__item span {
  color: var(--lime);
  font-size: 0.62rem;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}
.news-ticker__item:hover,
.news-ticker__item:focus-visible {
  color: #fff;
}
.news-ticker__item:hover span,
.news-ticker__item:focus-visible span {
  color: var(--coral);
}
.news-ticker__pause {
  width: 1.6rem;
  height: 1.6rem;
  display: grid;
  place-items: center;
  color: rgba(255, 255, 255, 0.78);
  font-size: 0.62rem;
  border-radius: 50%;
  opacity: 0.85;
}
.news-ticker__pause:hover,
.news-ticker__pause:focus-visible {
  color: #fff;
  background: rgba(255, 255, 255, 0.1);
  opacity: 1;
}
.news-ticker__pause[aria-pressed="true"] {
  color: var(--lime);
}

@keyframes ticker-scroll {
  from { transform: translate3d(0, 0, 0); }
  to { transform: translate3d(-50%, 0, 0); }
}
@keyframes ticker-pulse {
  0% { box-shadow: 0 0 0 0 rgba(201, 220, 80, 0.5); }
  70% { box-shadow: 0 0 0 0.45rem rgba(201, 220, 80, 0); }
  100% { box-shadow: 0 0 0 0 rgba(201, 220, 80, 0); }
}

@media (min-width: 992px) and (max-width: 1200px) {
  .logo {
    width: 92px;
  }
  .site-header__bar {
    gap: 1.25rem;
  }
  .desktop-nav,
  .desktop-nav__list {
    gap: 1rem;
    font-size: 0.72rem;
  }
  .nav-cta {
    padding: 0.6rem 0.85rem;
    font-size: 0.72rem;
  }
  .nav-mega {
    padding-top: 1.75rem;
    padding-bottom: 1.85rem;
  }
  .nav-mega__inner {
    grid-template-columns: 1fr;
    gap: 1.75rem;
  }
  .nav-mega__lede {
    max-width: 54ch;
  }
  .nav-mega__title {
    font-size: clamp(2rem, 3.4vw, 2.8rem);
  }
  .nav-mega__link {
    padding: 0.68rem 0.15rem 0.68rem 0;
    font-size: 0.9rem;
  }
}
.menu-button {
  z-index: 1701;
  display: none;
  width: 25px;
  height: 25px;
  padding: 8px;
  margin: -8px;
  box-sizing: content-box;
}
.menu-button.open {
  color: var(--navy);
}
.menu-button span {
  display: block;
  height: 2px;
  margin: 5px 0;
  background: var(--navy);
  transition: 0.25s;
}
.menu-button.open span:nth-child(1) {
  transform: translateY(7px) rotate(45deg);
}
.menu-button.open span:nth-child(2) {
  opacity: 0;
}
.menu-button.open span:nth-child(3) {
  transform: translateY(-7px) rotate(-45deg);
}
.menu-overlay {
  position: fixed;
  z-index: 1500;
  inset: 0;
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  gap: 0;
  padding: 7rem var(--pad) 3rem;
  padding-top: max(7rem, env(safe-area-inset-top) + 4.6rem);
  padding-bottom: max(3rem, env(safe-area-inset-bottom) + 1.5rem);
  overflow-y: auto !important;
  -webkit-overflow-scrolling: touch;
  max-height: calc(100dvh - 80px);
  background: var(--navy);
  color: #fff;
  transform: translateY(-102%);
  transition: transform 0.8s var(--ease);
}
.menu-overlay.open {
  transform: none;
}
@media (min-width: 992px) {
  .menu-overlay {
    display: none;
  }
}
.menu-overlay__nav {
  display: grid;
  gap: 0;
  overflow: auto;
}
.menu-overlay__home,
.menu-acc__trigger {
  display: flex;
  align-items: baseline;
  justify-content: flex-start;
  width: 100%;
  padding: 0.55rem 0;
  border-bottom: 1px solid rgba(255, 255, 255, 0.12);
  font-size: clamp(1.5rem, 3.5vw, 3rem);
  font-weight: 600;
  line-height: 1.05;
  letter-spacing: -0.05em;
  text-align: left;
  color: #fff;
  white-space: normal;
  overflow: visible;
  text-overflow: unset;
  -webkit-tap-highlight-color: transparent;
  touch-action: manipulation;
  transition: color 0.3s var(--ease)
}



.menu-overlay__home span,
.menu-acc__trigger span {
  color: var(--coral);
  flex: 0 0 auto;
}
.menu-overlay__home:hover,
.menu-overlay__home:focus-visible,
.menu-acc__trigger:hover,
.menu-acc__trigger:focus-visible,
.menu-acc.is-open .menu-acc__trigger,
.menu-overlay__home.is-current,
.menu-acc.is-current > .menu-acc__trigger {
   color: var(--lime);
  outline: none;
}

/* Active main section matches the mobile hover treatment */
.menu-overlay__home.is-current,
.menu-acc.is-current>.menu-acc__trigger {
  color: var(--lime);
}


.menu-acc__trigger::after {
  content: "+";
  margin-left: auto;
  padding-left: 1rem;
  color: var(--lime);
  font-size: 0.55em;
  font-weight: 500;
  line-height: 1;
  flex: 0 0 auto;
  transition: transform 0.4s var(--ease);
}


.menu-acc.is-open .menu-acc__trigger::after {
  content: "–";
  transform: rotate(180deg);
}

.menu-acc__panel {
  display: grid;
  grid-template-rows: 0fr;
  transition: grid-template-rows 0.45s var(--ease);
  pointer-events: none;
}
.menu-acc.is-open .menu-acc__panel {
  grid-template-rows: 1fr;
  pointer-events: auto;
}
.menu-acc__inner {
  overflow: hidden;
  display: grid;
  min-height: 0;
  padding: 0.15rem 0 0.55rem;
}

.menu-acc__inner a {
  display: flex;
  align-items: center;
  min-height: 2.75rem;
  padding: 0.55rem 0 0.55rem 0.1rem;
  color: rgba(255, 255, 255, 0.78);
  font-size: clamp(0.98rem, 3.4vw, 1.12rem);
  font-weight: 560;
  letter-spacing: -0.02em;
  line-height: 1.3;
  border-bottom: 1px solid rgba(255, 255, 255, 0.08);
   white-space: normal;
  word-break: break-word;
  -webkit-tap-highlight-color: transparent;
  touch-action: manipulation;
  transition: color 0.25s var(--ease),
    transform 0.25s var(--ease),
    padding-left 0.25s var(--ease);
}
.menu-acc__inner a:hover,
.menu-acc__inner a:focus-visible {
  color: var(--lime);
  padding-left: 0.4rem;
  outline: none;
}

.menu-acc__inner a.is-current,
.menu-acc__inner a[aria-current="page"] {
  color: var(--coral);
  padding-left: 0.4rem;
  font-weight: 600;
}

.menu-acc__inner a:active {
  color: var(--lime);
}

.menu-acc__inner a.is-current:active,
.menu-acc__inner a[aria-current="page"]:active {
  color: var(--coral);
}

.menu-overlay__actions {
  display: grid;
  grid-template-columns: 1fr;
  gap: 0.85rem;
  width: 100%;
  margin-top: 1.35rem;
  padding-top: 0.35rem;
}

.menu-overlay__actions .pill {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  min-height: 3rem;
  text-align: center;
  -webkit-tap-highlight-color: transparent;
  touch-action: manipulation;
}

.menu-overlay__actions .under-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  min-height: 2.75rem;
  padding: 0.35rem 0;
  color: #fff;
  border-color: rgba(255, 255, 255, 0.55);
  font-size: 1rem;
  font-weight: 600;
  -webkit-tap-highlight-color: transparent;
  touch-action: manipulation;
}

.menu-overlay__actions .under-link span {
  color: var(--lime);
}

.menu-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 1.25rem 2rem;
  margin-top: 1.5rem;
  padding-top: 2.5rem;
  font-size: 0.75rem;
  color: rgba(255, 255, 255, 0.65);
}
.menu-meta a:hover,
.menu-meta a:focus-visible {
  color: #fff;
  outline: none;
}


@media (min-width: 640px) and (max-width: 991px) {
  .menu-overlay__home,
  .menu-acc__trigger {
    font-size: clamp(1.85rem, 4.6vw, 2.65rem);
    min-height: 3.5rem;
  }

  .menu-overlay__actions {
    grid-template-columns: auto auto;
    justify-content: start;
    align-items: center;
    gap: 1rem 1.5rem;
  }

  .menu-overlay__actions .pill,
  .menu-overlay__actions .under-link {
    width: auto;
  }

  .menu-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 0.85rem 1.75rem;
  }
}

body.menu-open .site-header {
  z-index: 1700;
}

body.menu-open .site-header .news-ticker {
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
}

body.menu-open .site-header__bar {
  box-shadow: none;
  backdrop-filter: none;
}

body.menu-open .menu-button {
  color: #fff;
}

/* hero */
.hero {
  position: relative;
  height: 100svh;
  min-height: 700px;
  padding: 8.6rem var(--pad) 2.4rem;
  background: var(--navy);
  color: #fff;
  overflow: hidden;
}
.hero:after {
  content: "";
  position: absolute;
  z-index: 4;
  inset: 0;
  background:
    linear-gradient(
      105deg,
      rgba(105, 154, 218, 0.25) 0%,
      rgba(0, 43, 99, 0.52) 42%,
      rgba(15, 38, 67, 0.45) 68%,
      rgba(67, 150, 201, 0.28) 100%
    ),
    linear-gradient(
      180deg,
      rgba(0, 43, 99, 0.35) 0%,
      transparent 28%,
      transparent 62%,
      rgba(0, 43, 99, 0.55) 100%
    );
  pointer-events: none;
}
.hero-label {
  position: absolute;
  z-index: 8;
  top: 6.5rem;
  left: var(--pad);
  font-size: 0.66rem;
  font-weight: 700;
  letter-spacing: 0.14em;
}
.hero-bg {
  position: absolute;
  z-index: 2;
  inset: 0;
  pointer-events: none;
  overflow: hidden;
}
.hero-video {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  transform: translateZ(0);
  backface-visibility: hidden;
}
.hero-content {
  position: relative;
  z-index: 6;
  height: 100%;
  display: flex;
  flex-direction: column;
  justify-content: center;
  pointer-events: none;
}
.hero-content a {
  pointer-events: auto;
}
.hero-kicker {
  display: inline-flex;
  align-items: center;
  gap: 0.85rem;
  margin-bottom: clamp(1.15rem, 2.4vw, 1.75rem);
  color: rgba(255, 255, 255, 0.88);
  font-size: clamp(0.72rem, 1.05vw, 0.82rem);
  font-weight: 700;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  text-shadow: 0 2px 18px rgba(0, 0, 0, 0.35);
}
.hero-kicker__rule {
  display: block;
  width: 2.35rem;
  height: 1px;
  background: var(--lime);
  transform-origin: left center;
}
.hero.js-hero .hero-kicker__rule {
  transform: scaleX(0);
}
.hero.js-hero.is-set .hero-kicker__rule {
  transform: scaleX(1);
  transition: transform 0.9s var(--ease) 0.12s;
}
.hero-kicker__text .char {
  display: inline-block;
}
.hero.js-hero .hero-kicker__text .char {
  opacity: 0;
  transform: translateY(0.45em);
}
.hero.js-hero.is-set .hero-kicker__text .char {
  opacity: 1;
  transform: none;
  transition:
    opacity 0.55s var(--ease),
    transform 0.7s var(--ease);
  transition-delay: calc(0.18s + (var(--char-i, 0) * 18ms));
}
.hero-kicker__text .char.is-space {
  width: 0.35em;
}

.hero-headline {
  display: grid;
  justify-items: start;
  gap: 0.25em;
  max-width: min(22ch, 100%);
  font-size: clamp(2rem, 5vw, 5.40rem);
  font-weight: 600;
  line-height: 1.1;
  letter-spacing: -0.038em;
  text-shadow: 0 2px 24px rgba(0, 0, 0, 0.4);
}
.hero-line {
  display: block;
  overflow: hidden;
  padding-bottom: 0.06em;
  margin-bottom: -0.06em;
 
}
.hero-line__inner {
  display: block;
}
.hero.js-hero .hero-line__inner {
  transform: translate3d(0, 108%, 0);
  will-change: transform;
}
.hero.js-hero.is-set .hero-line__inner {
  transform: none;
  transition: transform 1.2s var(--ease);
}
.hero.js-hero.is-set .hero-line--one .hero-line__inner {
  transition-delay: 0.28s;
}
.hero.js-hero.is-set .hero-line--two .hero-line__inner {
  transition-delay: 0.46s;
}
.hero.js-hero.is-set .hero-line--three .hero-line__inner {
  transition-delay: 0.64s;
}
.hero-line--one {
  color: #fff;
}
.hero-line--two {
  padding-left: clamp(0.35rem, 5.5vw, 4.25rem);
}
.hero-line__bridge {
  display: inline-block;
  color: rgba(255, 255, 255, 0.82);
  font-family: "Playfair Display", serif;
  font-size: 0.42em;
  font-weight: 500;
  font-style: italic;
  letter-spacing: -0.02em;
  line-height: 1;
  transform: translateY(-0.08em);
}
.hero-line--three {
  display: flex;
}
.hero-line--three .hero-line__inner {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 0.12em 0;
  white-space: nowrap;
}
.hero-line em {
  font-family: "Playfair Display", serif;
  font-size: 1.08em;
  font-weight: 500;
  font-style: italic;
  letter-spacing: -0.04em;
  line-height: 0.86;
}
.hero-line__end {
  display: inline-block;
  letter-spacing: -0.055em;
}
.hero-actions {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-top: 4rem;
}
.round-link {
  width: 92px;
  height: 92px;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.55rem;
  border: 1px solid rgba(255, 255, 255, 0.85);
  border-radius: 50%;
  color: #fff;
}
.round-link span.icon,
.round-link .icon {
  width: 1.15rem;
  height: 1.15rem;
  font-size: 1.3rem;
}
.under-link .icon {
  color: var(--lime);
  width: 0.85em;
  height: 0.85em;
}
.round-link small {
  font-size: 0.62rem;
  font-weight: 700;
  line-height: 1.2;
}
.hero-cta-group {
  display: flex;
  align-items: center;
  gap: 1.5rem;
}
.pill {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 48px;
  padding: 0.75rem 1.5rem;
  border: 1px solid currentColor;
  border-radius: 999px;
  font-weight: 700;
  font-size: 0.8rem;
  transition: transform 0.2s, background 0.2s;
}
.pill:hover {
  transform: translateY(-2px);
}
.pill--dark {
  background: var(--navy);
  color: #fff;
  border-color: var(--navy);
}
.hero .pill--dark {
  background: #fff;
  color: var(--navy);
  border-color: #fff;
}
.pill--light {
  background: #fff;
  color: var(--navy);
  border-color: #fff;
}
.under-link {
  display: inline-flex;
  gap: 0.7rem;
  padding-bottom: 0.35rem;
  border-bottom: 1px solid currentColor;
  font-weight: 700;
  font-size: 0.84rem;
}
.under-link span {
  color: var(--lime);
}
.hero .under-link {
  color: #fff;
  border-color: rgba(255, 255, 255, 0.85);
}
.hero .under-link span {
  color: var(--lime);
}
.hero-intro {
  position: absolute;
  right: 0;
  bottom: -1.9rem;
  width: min(40vw, 500px);
  font-size: 0.9rem;
  padding: 1rem 1.1rem;
  text-shadow: none;
}

.hero-dispatch {
  position: fixed;
  z-index: 80;
  top: max(7.85rem, calc(env(safe-area-inset-top) + 6.9rem));
  right: 0;
  left: auto;
  bottom: auto;
  display: flex;
  flex-direction: row;
  align-items: stretch;
  max-width: min(38rem, calc(100vw - 1.25rem));
  color: #fff;
  pointer-events: none;
  opacity: 0;
  transform: translate3d(1.1rem, 0, 0);
  transform-origin: right center;
  filter: drop-shadow(0 18px 36px rgba(0, 10, 24, 0.28));
}
.hero.is-set ~ .hero-dispatch,
.hero-dispatch.is-ready {
  opacity: 1;
  transform: none;
  transition:
    opacity 0.7s var(--ease) 1.2s,
    transform 0.85s var(--ease) 1.2s;
}
body.menu-open .hero-dispatch {
  opacity: 0;
  pointer-events: none;
}
.hero-dispatch__panel {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: start;
  gap: 0.55rem 0.7rem;
  width: min(32rem, calc(100vw - 4.5rem));
  max-height: 12rem;
  padding: 0.75rem 0.7rem 0.7rem 0.95rem;
  overflow: hidden;
  border: 1px solid rgba(255, 255, 255, 0.16);
  border-right: 0;
  background:
    linear-gradient(180deg, rgba(250, 248, 242, 0.12) 0%, rgba(0, 20, 48, 0.18) 100%),
    color-mix(in srgb, var(--navy) 82%, #000 18%);
  backdrop-filter: blur(16px) saturate(1.15);
  -webkit-backdrop-filter: blur(16px) saturate(1.15);
  pointer-events: auto;
  visibility: visible;
  transform-origin: right center;
  transition:
    width 0.62s var(--ease),
    max-height 0.62s var(--ease),
    opacity 0.45s var(--ease),
    padding 0.62s var(--ease),
    border-color 0.4s var(--ease),
    visibility 0s linear 0s;
}
.hero-dispatch.is-min .hero-dispatch__panel {
  width: 0;
  max-height: 0;
  padding: 0;
  opacity: 0;
  visibility: hidden;
  border-color: transparent;
  pointer-events: none;
  transition:
    width 0.62s var(--ease),
    max-height 0.62s var(--ease),
    opacity 0.45s var(--ease),
    padding 0.62s var(--ease),
    border-color 0.4s var(--ease),
    visibility 0s linear 0.62s;
}
.hero-dispatch__tab {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0.55rem;
  width: 2.65rem;
  min-height: 8.4rem;
  padding: 0.95rem 0.35rem;
  border: 1px solid rgba(255, 255, 255, 0.16);
  border-right: 0;
  border-radius: 1.05rem 0 0 1.05rem;
  background: color-mix(in srgb, var(--navy) 88%, #000 12%);
  color: #fff;
  pointer-events: auto;
  transition:
    min-height 0.55s var(--ease),
    background 0.3s var(--ease),
    transform 0.45s var(--ease);
}
.hero-dispatch.is-min .hero-dispatch__tab {
  min-height: 7.2rem;
  background: color-mix(in srgb, var(--navy) 92%, var(--lime) 8%);
}
.hero-dispatch__tab:hover,
.hero-dispatch__tab:focus-visible {
  background: color-mix(in srgb, var(--navy) 78%, var(--lime) 22%);
  transform: translateX(-3px);
}
.hero-dispatch__pulse {
  width: 0.48rem;
  height: 0.48rem;
  border-radius: 50%;
  background: var(--lime);
  box-shadow: 0 0 0 0 rgba(201, 220, 80, 0.55);
  animation: dispatch-pulse 2.4s var(--ease) infinite;
}
.hero-dispatch__tab-live {
  writing-mode: vertical-rl;
  transform: rotate(180deg);
  font-size: 0.62rem;
  font-weight: 700;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--lime);
}
.hero-dispatch__tab-count {
  writing-mode: vertical-rl;
  transform: rotate(180deg);
  color: rgba(255, 255, 255, 0.7);
  font-size: 0.62rem;
  font-weight: 700;
  letter-spacing: 0.12em;
}
.hero-dispatch__stage {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  align-items: center;
  gap: 0.75rem;
  min-width: 0;
  grid-column: 1;
}
.hero-dispatch__folio {
  display: inline-flex;
  align-items: baseline;
  gap: 0.18rem;
  color: rgba(255, 255, 255, 0.55);
  font-size: 0.62rem;
  font-weight: 700;
  letter-spacing: 0.12em;
}
.hero-dispatch__folio b {
  color: var(--lime);
  font-size: 0.78rem;
  letter-spacing: 0.08em;
}
.hero-dispatch__folio i {
  font-style: normal;
  opacity: 0.5;
}
.hero-dispatch__viewport {
  min-width: 0;
  overflow: hidden;
}
.hero-dispatch__track {
  display: flex;
  width: 100%;
  transition: transform 0.7s var(--ease);
  will-change: transform;
}
.hero-dispatch__item {
  flex: 0 0 100%;
  display: grid;
  gap: 0.18rem;
  min-width: 0;
  color: #fff;
  opacity: 0.42;
  transform: translateX(0.55rem);
  transition: opacity 0.55s var(--ease), transform 0.7s var(--ease);
}
.hero-dispatch__item.is-active {
  opacity: 1;
  transform: none;
}
.hero-dispatch__tag {
  color: var(--lime);
  font-size: 0.62rem;
  font-weight: 700;
  letter-spacing: 0.16em;
  text-transform: uppercase;
}
.hero-dispatch__tag--event { color: var(--blue); }
.hero-dispatch__tag--programme { color: #d7e27a; }
.hero-dispatch__tag--deadline { color: var(--coral); }
.hero-dispatch__item strong {
  display: block;
  max-width: 28ch;
  font-size: 0.92rem;
  font-weight: 650;
  line-height: 1.25;
  letter-spacing: -0.02em;
}
.hero-dispatch__meta {
  color: rgba(255, 255, 255, 0.68);
  font-size: 0.7rem;
  font-weight: 500;
  letter-spacing: 0.01em;
}
.hero-dispatch__tools {
  display: flex;
  align-items: center;
  gap: 0.15rem;
  grid-column: 2;
  grid-row: 1;
}
.hero-dispatch__ctrl {
  width: 1.85rem;
  height: 1.85rem;
  display: grid;
  place-items: center;
  border-radius: 50%;
  color: #fff;
  font-size: 0.78rem;
  line-height: 1;
  opacity: 0.72;
  transition: opacity 0.2s, background 0.2s, transform 0.2s;
}
.hero-dispatch__ctrl:hover,
.hero-dispatch__ctrl:focus-visible {
  opacity: 1;
  background: rgba(255, 255, 255, 0.12);
  transform: translateY(-1px);
}
.hero-dispatch__ctrl[aria-pressed="true"] {
  color: var(--lime);
  opacity: 1;
}
.hero-dispatch__ctrl--close {
  font-size: 1.2rem;
}
.hero-dispatch__progress {
  display: block;
  grid-column: 1 / -1;
  height: 2px;
  overflow: hidden;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.12);
}
.hero-dispatch__progress i {
  display: block;
  height: 100%;
  width: 100%;
  transform-origin: left center;
  transform: scaleX(0);
  background: var(--lime);
}
.hero-dispatch.is-playing .hero-dispatch__progress i {
  animation: dispatch-progress 5.6s linear forwards;
}
.hero-dispatch.is-paused .hero-dispatch__progress i,
.hero-dispatch.is-min .hero-dispatch__progress i {
  animation-play-state: paused;
}
@keyframes dispatch-pulse {
  0% { box-shadow: 0 0 0 0 rgba(201, 220, 80, 0.5); }
  70% { box-shadow: 0 0 0 0.55rem rgba(201, 220, 80, 0); }
  100% { box-shadow: 0 0 0 0 rgba(201, 220, 80, 0); }
}
@keyframes dispatch-progress {
  from { transform: scaleX(0); }
  to { transform: scaleX(1); }
}
@supports not (background: color-mix(in srgb, #000 50%, transparent)) {
  .hero-dispatch__panel,
  .hero-dispatch__tab {
    background: rgba(0, 32, 72, 0.94);
  }
}

/* generic runways */
.runway {
  position: relative;
  height: var(--runway-height, 300vw);
}
.sticky-camera {
  position: sticky;
  top: 0;
  height: 100svh;
  min-height: 680px;
  overflow: hidden;
}
[data-track] {
  will-change: transform;
}
.runway-counter {
  position: absolute;
  z-index: 10;
  left: var(--pad);
  bottom: 1.3rem;
  display: flex;
  align-items: center;
  gap: 0.65rem;
  font-size: 0.66rem;
  font-weight: 700;
  color: var(--blue);
}
.runway-counter i {
  display: block;
  width: 100px;
  height: 1px;
  background: rgba(255, 255, 255, 0.35);
  position: relative;
}
.runway-counter i:after {
  content: "";
  position: absolute;
  inset: 0;
  background: var(--blue);
  transform: scaleX(var(--runway-progress, 0));
  transform-origin: left;
}
.runway-counter--dark {
  color: var(--paper);
}
.runway-counter--dark i {
  background: rgba(16, 41, 66, 0.22);
}
.runway-counter--dark i:after {
  background: var(--paper);
}

/* opening horizontal showcase */
.showcase {
  background: var(--cream);
}
.showcase-track {
  height: 100%;
  display: flex;
  width: max-content;
}
.showcase-track > article {
  flex: 0 0 60vw;
  height: 100%;
  position: relative;
}
.showcase-intro-panel,
.showcase-end-panel {
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: 7rem var(--pad);
  background: var(--cream);
}
.showcase-intro-panel h2,
.showcase-end-panel h2 {
  font-size: clamp(2rem, 4vw, 4rem);
  margin: 1rem 0;
  line-height: 1;
}
.showcase-intro-panel h2 span,
.showcase-end-panel h2 span {
  color: var(--coral);
}
.showcase-intro-panel p:last-child,
.showcase-end-panel p {
  max-width: 66ch;
  font-size: 1.1rem;
}
.showcase-end-panel {
  flex-basis: min(100vw, 100%) !important;
  background: var(--navy);
  color: #fff;
}
.showcase-end-panel .pill {
  align-self: flex-start;
  margin-top: 2rem;
}
.showcase-card {
  overflow: hidden;
  background: var(--navy);
}
.showcase-card img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transform: scale(1.04);
  transition: transform 1.2s var(--ease);
}
.showcase-card:hover img {
  transform: scale(1);
}
.showcase-card:after {
  content: "";
  position: absolute;
  inset: 50% 0 0;
  background: linear-gradient(transparent, rgba(7, 27, 45, 0.88));
}
.card-caption {
  position: absolute;
  z-index: 2;
  left: clamp(1.5rem, 4vw, 4rem);
  right: clamp(1.5rem, 4vw, 4rem);
  bottom: 4rem;
  color: #fff;
}
.card-caption > span {
  font-size: 0.7rem;
  color: var(--lime);
}
.card-caption h3 {
  font-size: clamp(1rem, 3vw, 3rem);
  margin: 0.6rem 0;
}
.card-caption p {
  color: rgba(255, 255, 255, 0.7);
}

/* manifesto ??? a pinned continuation of the opening horizontal story */
.manifesto {
  position: relative;
  overflow: visible;
  isolation: isolate;
}
.manifesto-runway {
  height: 300svh;
  min-height: 2100px;
  padding: 0;
}
.manifesto-camera {
  position: sticky;
  top: 0;
  height: 100svh;
  min-height: 680px;
  display: flex;
  align-items: center;
  overflow: hidden;
  isolation: isolate;
}
.manifesto-camera > .container {
  height: 100%;
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding-top: 4rem;
  padding-bottom: 2rem;
}
.wire-field,
.how-wire {
  position: absolute;
  inset: -30% -25% -30% 35%;
  opacity: 0.15;
  background: repeating-radial-gradient(
    ellipse at center,
    transparent 0 64px,
    rgba(213, 226, 92, 0.8) 65px 66px,
    transparent 67px 132px
  );
  transform: rotate(-14deg);
}
.manifesto-title {
  position: relative;
  z-index: 2;
  max-width: 1200px;
  will-change: transform;
}
.manifesto-title h2 {
  font-size: clamp(2.2rem, 5.4vw, 5.5rem);
  margin-top: 1.2rem;
  color: #a8b7c8;
}
.manifesto-title h2 span {
  color: #fff;
}
.manifesto-body {
  position: relative;
  z-index: 2;
  display: grid;
  grid-template-columns: 0.8fr 1.2fr;
  gap: 8vw;
  margin-top: clamp(1.25rem, 3vh, 2.5rem);
  will-change: transform, opacity;
}
.manifesto-copy {
  max-width: 36rem;
  color: rgba(255, 255, 255, 0.7);
  font-size: 1.05rem;
}
.manifesto-copy p + p {
  margin-top: 1.5rem;
}
.proof-stats {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  border-top: 1px solid rgba(255, 255, 255, 0.2);
}
.proof-stats article {
  padding: 2rem 1rem;
  border-right: 1px solid rgba(255, 255, 255, 0.2);
}
.proof-stats strong {
  font-size: clamp(4rem, 8vw, 8rem);
  color: var(--lime);
}
.proof-stats p {
  margin-top: 1rem;
}
.proof-stats small {
  display: block;
  margin-top: 0.5rem;
  color: var(--lime);
  font-size: 0.62rem;
  text-transform: uppercase;
  letter-spacing: 0.08em;
}

/* framework ??? overlaps the close of THE SRI STORY */
.framework-intro {
  position: relative;
  z-index: 2;
  margin: 0;
  padding: clamp(5.5rem, 10vw, 9rem) 0 clamp(4.5rem, 8vw, 7rem);
  overflow: hidden;
  color: var(--navy);
  background: var(--cream);
}
.framework-intro.chapter-overlap__cover {
  box-shadow: 0 -32px 70px rgba(7, 27, 45, 0.12);
}
.chapter-overlap--story .chapter-overlap__depth {
  transform: translate3d(0, calc(var(--overlap-progress) * -2vh), 0)
    scale(calc(1 - var(--overlap-progress) * 0.03));
  opacity: calc(1 - var(--overlap-progress) * 0.35);
}
.chapter-overlap--story .chapter-overlap__base {
  background: var(--cream);
}
.chapter-overlap--story .chapter-overlap__hold {
  background: transparent;
}
@media (min-width: 1025px) and (hover: hover) and (pointer: fine) {
  .chapter-overlap--story .chapter-overlap__hold {
    height: clamp(4rem, 14vh, 8rem);
    background: linear-gradient(180deg, var(--navy) 0%, var(--cream) 100%);
  }
}

.chapter-overlap--campus .chapter-overlap__base {
  background:
    linear-gradient(180deg, #001a3d 0%, var(--navy) 48%, #001433 100%);
}
.chapter-overlap--campus .chapter-overlap__hold {
  background: #001433;
}
.chapter-overlap--campus .chapter-overlap__cover {
  background: var(--navy);
  box-shadow: 0 -36px 80px rgba(0, 8, 22, 0.38);
}
.chapter-overlap--campus .chapter-overlap__depth {
  transform: translate3d(0, calc(var(--overlap-progress) * -1.6vh), 0)
    scale(calc(1 - var(--overlap-progress) * 0.018));
  opacity: calc(1 - var(--overlap-progress) * 0.2);
  transform-origin: center top;
}
.chapter-overlap--campus .campus-motif--a {
  transform: translate3d(0, calc(var(--overlap-progress) * 4vh), 0);
}
.chapter-overlap--campus .campus-motif--b {
  transform: translate3d(0, calc(var(--overlap-progress) * -2.5vh), 0);
}
.chapter-overlap--campus .campus-card__media img {
  transform: translate3d(0, calc(var(--campus-y, 0px) + (var(--overlap-progress) * 8px * var(--campus-z, 1))), 0) scale(1.08);
}
.chapter-overlap--campus .community-glow {
  transform: translate3d(0, calc((1 - var(--overlap-progress, 0)) * 3.5vh), 0);
}
.chapter-overlap--campus .testimonial-media {
  transform: translate3d(0, calc((1 - var(--overlap-progress, 0)) * 2.4vh), 0);
  will-change: transform;
}

@media (min-width: 1025px) and (hover: hover) and (pointer: fine) {
  .chapter-overlap--campus .chapter-overlap__hold {
    height: clamp(6rem, 18vh, 12rem);
    background: linear-gradient(180deg, #001433 0%, var(--navy) 100%);
  }
}
.intro-grid {
  display: grid;
  grid-template-columns: 1.25fr 0.75fr;
  gap: 4vw;
  align-items: end;
}
.intro-grid h2,
.section-head h2 {
  font-size: clamp(3rem, 6.2vw, 6.2rem);
  margin-top: 1rem;
  line-height: 1;
}
.intro-copy {
  max-width: 36rem;
  font-size: 0.95rem;
}
.intro-copy p + p {
  margin-top: 1.15em;
}
.intro-copy .under-link {
  margin-top: 2rem;
}
.facet-runway {
  height: var(--runway-height, 300vw);
}
.facet-track {
  height: 100%;
  display: flex;
  width: max-content;
}
.facet-slide {
  flex: 0 0 92vw;
  height: 100%;
  padding: clamp(5rem, 7vw, 8rem) var(--pad) 3rem;
  display: grid;
  grid-template-columns: 1fr 1fr;
  align-items: center;
  gap: 6vw;
}
.facet-slide--coral {
  --facet-tint: 221, 171, 141;
  background: var(--blue);
}
.facet-slide--blue {
  --facet-tint: 135, 185, 212;
  background: var(--lime);
}
.facet-slide--green {
  --facet-tint: 169, 191, 159;
  background: var(--violet);
}
.facet-slide--violet {
  --facet-tint: 170, 141, 168;
  background: var(--green);
}
.facet-visual {
  position: relative;
  height: 70vh;
  max-height: 680px;
  display: grid;
  place-items: center;
  background: rgba(255, 255, 255, 0.28);
  overflow: hidden;
}
.facet-visual:after {
  content: "";
  position: absolute;
  z-index: 2;
  inset: 0;
  background: rgba(var(--facet-tint), 0.44);
  mix-blend-mode: multiply;
  pointer-events: none;
}
.facet-visual > span {
  position: absolute;
  z-index: 3;
  right: -0.04em;
  top: -0.08em;
  font-size: clamp(8rem, 20vw, 20rem);
  font-weight: 700;
  color: rgba(255, 255, 255, 0.32);
  text-shadow: 0 2px 28px rgba(16, 41, 66, 0.12);
  letter-spacing: -0.09em;
}
.facet-visual img {
  position: relative;
  z-index: 1;
  width: 100%;
  height: 100%;
  object-fit: cover;
  filter: saturate(0.82) contrast(0.96);
  transition: transform 1.1s var(--ease);
}
.facet-slide:hover .facet-visual img {
  transform: scale(1.025);
}
.facet-copy {
  max-width: 42rem;
  color: var(--paper);
}
.facet-copy h2 {
  font-size: clamp(3rem, 6vw, 6rem);
  margin: 1rem 0 2.5rem;
}
.facet-copy p {
  max-width: 60ch;
  font-size: 1rem;
}
.facet-copy ul {
  list-style: none;
  margin: 2rem 0;
  border-top: 1px solid rgba(255, 255, 255, 0.25);
}
.facet-copy li {
  padding: 0.8rem 0;
  border-bottom: 1px solid rgba(255, 255, 255, 0.25);
  font-weight: 600;
}
.facet-copy small {
  font-size: 0.62rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

/* benefits */
.benefits {
  padding: clamp(7rem, 13vw, 13rem) 0;
  overflow: hidden;
}

/* Layered chapters: base pins, cover slides over */
.chapter-overlap {
  position: relative;
  isolation: isolate;
}
.chapter-overlap__base {
  --overlap-progress: 0;
  --sticky-top: 0px;
  z-index: 1;
  background: var(--cream);
}
.chapter-overlap__depth {
  transform: translate3d(0, calc(var(--overlap-progress) * -1.5vh), 0)
    scale(calc(1 - var(--overlap-progress) * 0.025));
  transform-origin: center top;
  opacity: calc(1 - var(--overlap-progress) * 0.28);
  will-change: transform, opacity;
}
.chapter-overlap__cover {
  position: relative;
  z-index: 2;
  background: var(--cream);
  box-shadow: 0 -28px 64px rgba(16, 41, 66, 0.08);
  transform: translateZ(0);
}

.intro-grid h2 em {
  font-family: "Playfair Display", serif;
  font-weight: 500;
}

.chapter-overlap__hold {
  display: none;
}
@media (min-width: 1025px) and (hover: hover) and (pointer: fine) {
  .chapter-overlap__base {
    position: -webkit-sticky;
    position: sticky;
    /* JS sets --sticky-top from the base???s real height (CSS % is parent-based) */
    top: var(--sticky-top, 0px);
  }
  .chapter-overlap__depth {
    transition: none;
  }
  /* Hold the fully revealed base in view before the cover begins */
  .chapter-overlap__hold {
    display: block;
    height: clamp(6rem, 22vh, 12rem);
    pointer-events: none;
    background: var(--cream);
  }
}

.benefit-head {
  display: grid;
  grid-template-columns: 1.5fr 0.5fr;
  gap: 6vw;
  align-items: end;
}
.benefit-head h2 {
  font-size: clamp(2.3rem, 5vw, 5rem);
  margin-top: 1rem;
}
.benefit-head p {
  max-width: 28rem;
}
.benefit-lines {
  margin-top: 7rem;
  border-top: 1px solid var(--line);
}
.benefit-lines > div {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 1.1rem 0;
  border-bottom: 1px solid var(--line);
  font-size: clamp(1rem, 4vw, 4.3rem);
  font-weight: 600;
  letter-spacing: -0.055em;
  white-space: nowrap;
}
.benefit-lines i {
  color: var(--coral);
  font-style: normal;
}

/* experiences */
.experiences {
  padding: 2rem 0 clamp(6rem, 10vw, 10rem);
}
.section-head {
  padding: 3rem 0 5rem;
}
.learning-head {
  display: grid;
  grid-template-columns: 1.45fr 0.55fr;
  gap: 7vw;
  align-items: end;
}
.learning-head h2 {
  font-size: clamp(2.8rem, 5.4vw, 5.4rem);
  line-height: 0.86;
}
.learning-head h2 em {
  font-family: "Playfair Display", serif;
  font-weight: 500;
}
.learning-intro {
  max-width: 29rem;
  padding-bottom: 0.5rem;
}
.learning-intro > p {
  font-size: clamp(1rem, 1.4vw, 1.25rem);
  line-height: 1.55;
}
.learning-intro .under-link {
  margin-top: 2rem;
}

/* Learning in Motion ? sticky horizontal runway (same scroll model as Pioneer Framework) */
.experiences {
  position: relative;
  isolation: isolate;
  padding: clamp(2.5rem, 5vw, 4rem) 0 0;
  overflow: clip;
  background:
    radial-gradient(ellipse 42% 36% at 92% 12%, rgba(67, 150, 201, 0.1), transparent 58%),
    radial-gradient(ellipse 36% 30% at 6% 70%, rgba(237, 106, 80, 0.08), transparent 55%),
    var(--cream);
}
.experiences > .container {
  position: relative;
  z-index: 1;
}
.motion-intro {
  padding-bottom: clamp(2rem, 4vw, 3.25rem);
}
.motion-intro__eyebrow {
  display: flex;
  align-items: center;
  gap: 0.85rem;
  margin-bottom: 1.35rem;
}
.motion-intro__pulse {
  width: 2.75rem;
  height: 2px;
  background: var(--coral);
  transform-origin: left center;
  animation: academic-pulse 2.8s var(--ease) infinite;
}
@keyframes academic-pulse {
  0%,
  100% {
    transform: scaleX(1);
    opacity: 1;
  }
  50% {
    transform: scaleX(0.55);
    opacity: 0.55;
  }
}
.motion-intro__lead {
  display: grid;
  grid-template-columns: minmax(0, 1.2fr) minmax(14rem, 0.8fr);
  gap: clamp(1.5rem, 5vw, 5rem);
  align-items: end;
}
.motion-intro__lead h2 {
  margin: 0;
  max-width: 9ch;
  font-size: clamp(3rem, 6.2vw, 6.2rem);
  line-height: 0.88;
  letter-spacing: -0.055em;
}
.motion-intro__lead h2 em {
  font-family: "Playfair Display", serif;
  font-weight: 500;
}
.motion-intro__lead h2 span {
  color: var(--coral);
}
.motion-intro__aside {
  max-width: 34rem;
  padding-bottom: 0.35rem;
}
.motion-intro__aside p {
  margin-bottom: 1.35rem;
  color: #3d4d5c;
  font-size: clamp(0.98rem, 1.35vw, 0.98rem);
  line-height: 1.55;
}

.motion-runway {
  height: var(--runway-height, 300vw);
  margin: 0;
}
.motion-camera {
  background: #071526;
}
.motion-track {
  height: 100%;
  display: flex;
  width: max-content;
}
.motion-slide {
  flex: 0 0 100vw;
  height: 100%;
  display: grid;
  grid-template-columns: minmax(0, 0.5fr) minmax(0, 0.5fr);
  overflow: hidden;
  background: #f3f0e9;
  color: var(--navy);
}
.motion-slide__media {
  position: relative;
  overflow: hidden;
  height: 100%;
  min-height: 100%;
  background: #061428;
}
.motion-slide__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  transform: scale(1.04);
  filter: saturate(0.94) contrast(1.03);
  transition: transform 1.1s var(--ease), filter 0.7s var(--ease);
  will-change: transform;
}
.motion-slide:hover .motion-slide__media img {
  transform: scale(1.08);
  filter: saturate(1.02) contrast(1.05);
}
.motion-slide__media:after {
  content: "";
  position: absolute;
  inset: 0;
  background:
    linear-gradient(90deg, rgba(6, 20, 40, 0.12), transparent 44%, rgba(243, 240, 233, 0.1)),
    linear-gradient(180deg, transparent 58%, rgba(6, 20, 40, 0.28)),
    linear-gradient(135deg, color-mix(in srgb, var(--motion-accent, var(--coral)) 20%, transparent), transparent 58%);
  pointer-events: none;
}
.motion-slide__ghost {
  position: absolute;
  z-index: 2;
  left: clamp(1.15rem, 2.8vw, 2rem);
  bottom: clamp(0.85rem, 2.4vw, 1.65rem);
  font-size: clamp(5rem, 11vw, 9rem);
  font-weight: 600;
  line-height: 0.8;
  letter-spacing: -0.06em;
  color: #fff;
  opacity: 0.14;
  pointer-events: none;
}
.motion-slide__body {
  position: relative;
  z-index: 2;
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: clamp(1.1rem, 2.2vw, 1.65rem);
  min-width: 0;
  height: 100%;
  padding:
    clamp(5.5rem, 10vh, 7.5rem)
    clamp(2rem, 5.5vw, 5rem)
    clamp(2.5rem, 6vh, 4.5rem);
  background:
    linear-gradient(165deg, rgba(255, 255, 255, 0.62), transparent 42%),
    #f3f0e9;
}
.motion-slide__kicker {
  display: inline-flex;
  align-items: center;
  gap: 0.6rem;
  margin: 0;
  color: #6a7785;
  font-size: 0.7rem;
  font-weight: 700;
  letter-spacing: 0.16em;
  text-transform: uppercase;
}
.motion-slide__kicker span {
  display: inline-grid;
  place-items: center;
  min-width: 1.55rem;
  height: 1.55rem;
  padding: 0 0.3rem;
  border-radius: 0.28rem;
  border: 1px solid color-mix(in srgb, var(--motion-accent, var(--coral)) 55%, transparent);
  color: var(--motion-accent, var(--coral));
  font-size: 0.58rem;
}
.motion-slide__body h3 {
  margin: 0;
  max-width: 20ch;
  color: var(--navy);
  font-size: clamp(1.2rem, 4vw, 3.25rem);
  font-weight: 600;
  line-height: 1.04;
  letter-spacing: -0.042em;
}
.motion-slide__body h3 em {
  font-family: "Playfair Display", serif;
  font-weight: 500;
  font-style: italic;
  color: var(--motion-accent, var(--coral));
}
.motion-slide__body > p {
  margin: 0;
  max-width: 60ch;
  color: #4d5c6b;
  font-size: clamp(1rem, 1.05vw, 1.05rem);
  line-height: 1.65;
}
.motion-slide__cta {
  display: inline-flex;
  align-items: center;
  gap: 0.55rem;
  margin-top: clamp(0.65rem, 1.8vw, 1.35rem);
  width: fit-content;
  color: var(--blue);
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  text-decoration: none;
  transition: color 0.4s var(--ease), gap 0.4s var(--ease);
}
.motion-slide__cta span {
  display: inline-block;
  transition: transform 0.4s var(--ease);
}
.motion-slide__cta:hover,
.motion-slide__cta:focus-visible {
  color: var(--coral);
  gap: 0.8rem;
  outline: none;
}
.motion-slide__cta:hover span,
.motion-slide__cta:focus-visible span {
  transform: translateX(4px);
}
.motion-runway .runway-counter {
  color: rgba(255, 255, 255, 0.92);
}
.motion-runway .runway-counter i {
  background: rgba(255, 255, 255, 0.28);
}
.motion-runway .runway-counter i:after {
  background: var(--coral);
}

@supports not (background: color-mix(in srgb, #000 50%, transparent)) {
  .motion-slide__media:after {
    background:
      linear-gradient(90deg, rgba(6, 20, 40, 0.12), transparent 44%, rgba(243, 240, 233, 0.1)),
      linear-gradient(180deg, transparent 58%, rgba(6, 20, 40, 0.28));
  }
  .motion-slide__kicker span {
    border-color: rgba(237, 106, 80, 0.45);
  }
}

@media (prefers-reduced-motion: reduce) {
  .motion-intro__pulse,
  .motion-slide__media img,
  .motion-slide__cta,
  .motion-slide__cta span {
    animation: none !important;
    transition: none !important;
  }
  .motion-slide__media img {
    transform: none !important;
  }
}

/* Campus & Facilities ? sticky left proof / layered discovery cards */
.campus {
  --campus-sticky-top: 0px;
  position: relative;
  isolation: isolate;
  padding: 0;
  overflow-x: clip;
  overflow-y: visible;
 
  color: #fff;
}
.campus-motif {
  position: absolute;
  z-index: 0;
  border-radius: 50%;
  pointer-events: none;
}
.campus-motif--a {
  inset: auto -8% 18% auto;
  width: min(28vw, 16rem);
  height: min(28vw, 16rem);
 
}
.campus-motif--b {
  inset: 18% auto auto 8%;
  width: min(18vw, 11rem);
  height: min(18vw, 11rem);
  
}

.campus-layout {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: minmax(17rem, 0.86fr) minmax(0, 1.45fr);
  align-items: start;
  padding-left: max(var(--pad), calc((100vw - var(--max)) / 2 + var(--pad)));
}

.campus-layout__copy {
  position: -webkit-sticky;
  position: sticky;
  top: var(--campus-sticky-top, 0px);
  z-index: 2;
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: clamp(1.65rem, 3.2vw, 2.5rem);
  height: 100vh;
  height: 100svh;
  height: 100dvh;
  max-width: 32rem;
  padding: clamp(3rem, 6vw, 5rem) clamp(1.35rem, 3vw, 2.75rem) clamp(3rem, 6vw, 5rem) 0;
  align-self: start;
}

.campus-discover-intro {
  margin: 0;
}
.campus-discover-intro .section-tag {
  margin-bottom: clamp(0.9rem, 1.8vw, 1.25rem);
}
.campus-discover-intro h2 {
  margin: 0;
  font-size: clamp(2.55rem, 4.4vw, 4.5rem);
  line-height: 0.92;
  letter-spacing: -0.055em;
}
.campus-discover-intro h2 em {
  font-family: "Playfair Display", serif;
  font-weight: 500;
}
.campus-discover-intro h2 span {
  color: var(--coral);
}

.campus-proof {
  margin: 0;
  padding: clamp(1.25rem, 2.5vw, 1.75rem) 0 0;
  border-top: 1px solid rgba(255, 255, 255, 0.14);
}
.campus-proof__lead {
  margin: 0 0 clamp(1.35rem, 2.8vw, 1.85rem);
  max-width: 28rem;
  color: rgba(255, 255, 255, 0.72);
  font-size: clamp(0.98rem, 1.25vw, 1.12rem);
  font-weight: 500;
  line-height: 1.5;
  letter-spacing: -0.015em;
}
.campus-proof__scale {
  display: inline;
  color: #fff;
  font-weight: 700;
}
.campus-proof__lead em {
  display: inline;
  color: #fff;
  font-family: "Playfair Display", serif;
  font-style: italic;
  font-weight: 500;
}

.campus-stats {
  display: grid;
  grid-template-columns: 1fr;
  gap: 0.95rem;
  align-items: start;
}
.campus-stats__item {
  position: relative;
  display: grid;
  grid-template-columns: auto 1fr;
  align-items: center;
  gap: 0.85rem;
  padding: 0.15rem 0;
  text-align: left;
}
.campus-stats__item:not(:last-child)::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: -0.48rem;
  height: 1px;
  background: rgba(255, 255, 255, 0.1);
}
.campus-stats__icon {
  display: grid;
  place-items: center;
  width: 1.45rem;
  height: 1.45rem;
  color: var(--lime);
}
.campus-stats__icon svg {
  width: 100%;
  height: 100%;
}
.campus-stats__text {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 0.45rem 0.75rem;
}
.campus-stats__item strong {
  display: block;
  color: #fff;
  font-size: clamp(1.55rem, 2.4vw, 2.1rem);
  font-weight: 650;
  line-height: 0.95;
  letter-spacing: -0.04em;
}
.campus-stats__text > span {
  color: rgba(255, 255, 255, 0.62);
  font-size: clamp(0.66rem, 0.9vw, 0.74rem);
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

.campus-proof .under-link {
  margin-top: clamp(1.35rem, 2.8vw, 1.85rem);
  color: #fff;
  border-color: rgba(255, 255, 255, 0.85);
}
.campus-proof .under-link span {
  color: var(--lime);
}

.campus-discover {
  position: relative;
  min-width: 0;
}

.campus-stack {
  position: relative;
  z-index: 1;
  display: flex;
  flex-direction: column;
  width: 100%;
  isolation: isolate;
}

.campus-spacer {
  flex: none;
  width: 100%;
  height: 100vh;
  height: 100svh;
  height: 100dvh;
  pointer-events: none;
  visibility: hidden;
}

.campus-spacer--end {
  height: 100vh;
  height: 100svh;
  height: 100dvh;
}

.campus-card {
  --campus-cover: 0;
  --campus-rise: 0;
  position: -webkit-sticky;
  position: sticky;
  top: var(--campus-sticky-top, 0px);
  z-index: var(--campus-z, 1);
  flex: none;
  width: 100%;
  height: 100vh;
  height: 100svh;
  height: 100dvh;
  margin: 0;
  padding: 0;
  color: #fff;
  background: transparent;
}

.campus-card__frame {
  position: relative;
  width: 100%;
  height: 100%;
  overflow: hidden;
  border-radius: 0;
  background: #001433;
  isolation: isolate;
  transform:
    translate3d(0, 0, 0)
    scale(calc(1 - var(--campus-cover, 0) * 0.03));
  transform-origin: center top;
  filter: brightness(calc(1 - var(--campus-cover, 0) * 0.2));
  transition: none;
  will-change: transform, filter;
  backface-visibility: hidden;

}

.campus-card__media {
  position: absolute;
  inset: -10% -3%;
  z-index: 0;
  overflow: hidden;
}
.campus-card__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  transform: translate3d(0, var(--campus-y, 0px), 0) scale(1.08);
  will-change: transform;
  backface-visibility: hidden;
}

.campus-card__shade {
  position: absolute;
  inset: 0;
  z-index: 1;
  pointer-events: none;
  background:none
}

.campus-card__depth {
  position: absolute;
  inset: 0;
  z-index: 1;
  pointer-events: none;
  opacity: calc(var(--campus-cover, 0) * 0.55);
  background: rgba(0, 20, 48, 0.55);
}

.campus-card__body {
  position: absolute;
  z-index: 2;
  left: auto;
  right: clamp(1rem, 2.8vw, 2rem);
  bottom: clamp(1rem, 4vw, 2rem);
  display: grid;
  justify-items: end;
  gap: 0.5rem;
  max-width: min(22rem, calc(100% - 2.5rem));
  margin: 0;
  padding: clamp(0.9rem, 2vw, 1.25rem) clamp(1rem, 2.2vw, 1.45rem);
  border: 1px solid rgba(255, 255, 255, 0.1);
  border-radius: 0.85rem;
  background:
    linear-gradient(165deg, rgba(0, 26, 61, 0.72) 0%, rgba(0, 14, 32, 0.82) 100%);
  box-shadow: 0 14px 36px rgba(0, 10, 24, 0.28);
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
  text-align: right;
  opacity: calc(1 - var(--campus-cover, 0) * 0.35);
  transform: translate3d(0, calc(var(--campus-rise, 0) * 1.15rem), 0);
}

.campus-card__subtitle {
  display: block;
  margin: 0;
  color: var(--lime);
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  text-shadow: none;
}

.campus-card__body h3 {
  margin: 0;
  max-width: 11ch;
  color: #fff;
  font-size: clamp(2rem, 3.5vw, 3.05rem);
  line-height: 0.92;
  letter-spacing: -0.045em;
  text-shadow: none;
}
.campus-card__body h3 em {
  font-family: "Playfair Display", serif;
  font-weight: 500;
  font-style: italic;
}
.campus-card__body h3 span {
  color: var(--coral);
}

.campus.is-static-stack .campus-layout__copy {
  position: relative;
  top: auto;
  height: auto;
  padding-top: clamp(3.5rem, 7vw, 5.5rem);
  padding-bottom: clamp(2rem, 4vw, 3rem);
}

.campus-stack.is-static .campus-card {
  position: relative;
  top: auto;
  width: 100%;
  height: min(88svh, 42rem);
  height: min(88dvh, 42rem);
  min-height: 28rem;
  margin-bottom: 1rem;
}
.campus-stack.is-static .campus-spacer {
  display: none;
}
.campus-stack.is-static .campus-card:last-of-type {
  margin-bottom: 0;
}
.campus-stack.is-static .campus-card__frame {
  min-height: inherit;
  transform: none;
  filter: none;
  mask-image: none;
  -webkit-mask-image: none;
  border-radius: 1rem;
}
.campus-stack.is-static .campus-card__media img {
  transform: scale(1.06);
}
.chapter-overlap--campus .campus-stack.is-static .campus-card__media img {
  transform: translate3d(0, calc(var(--overlap-progress) * 5px * var(--campus-z, 1)), 0) scale(1.06);
}
.campus-stack.is-static .campus-card__depth {
  opacity: 0;
}
.campus-stack.is-static .campus-card__body {
  opacity: 1;
  transform: none;
}

@media (max-width: 1200px) {
  .campus-layout {
    grid-template-columns: minmax(15rem, 0.8fr) minmax(0, 1.35fr);
  }
  .campus-card__body h3 {
    font-size: clamp(1.85rem, 3.4vw, 2.7rem);
  }
}

@media (max-width: 1024px) {
  .campus-layout {
    grid-template-columns: 1fr;
    padding-left: var(--pad);
    padding-right: var(--pad);
    padding-bottom: clamp(2.5rem, 6vw, 3.5rem);
  }
  .campus-layout__copy {
    position: relative;
    top: auto;
    height: auto;
    max-width: none;
    padding: clamp(3rem, 7vw, 4.5rem) 0 clamp(1.75rem, 4vw, 2.5rem);
  }
  .campus-discover {
    margin-left: calc(50% - 50vw);
    margin-right: calc(50% - 50vw);
    width: 100vw;
  }
  .campus-card__frame {
    mask-image: linear-gradient(180deg, transparent 0%, #000 8%, #000 92%, transparent 100%);
    -webkit-mask-image: linear-gradient(180deg, transparent 0%, #000 8%, #000 92%, transparent 100%);
  }
  .campus-card__body {
    left: auto;
    right: max(var(--pad), 1.25rem);
    max-width: min(20rem, calc(100% - 2.5rem));
  }
  .campus-stack.is-static .campus-card {
    height: min(78svh, 36rem);
    height: min(78dvh, 36rem);
  }
  .campus-stack.is-static .campus-card__frame {
    border-radius: 0;
  }
}

@media (max-width: 767px) {
  .campus-discover-intro h2 {
    font-size: clamp(2.35rem, 11vw, 3.4rem);
  }
  .campus-proof__lead {
    font-size: 0.98rem;
  }
  .campus-stats__item strong {
    font-size: clamp(1.7rem, 8vw, 2.4rem);
  }
  .campus-card__body h3 {
    max-width: 12ch;
    font-size: clamp(1.85rem, 7vw, 2.55rem);
  }
}

@media (prefers-reduced-motion: reduce) {
  .campus-card__frame,
  .campus-card__media img,
  .campus-card__body {
    transition: none !important;
    transform: none !important;
    animation: none !important;
    will-change: auto !important;
    filter: none !important;
  }
  .campus-card__depth {
    opacity: 0 !important;
  }
}

.experience-grid {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  gap: clamp(2rem, 4vw, 4rem) 2rem;
}
.experience-card {
  min-width: 0;
}
.experience-card--wide {
  grid-column: 1/-1;
}
.experience-image {
  position: relative;
  height: clamp(380px, 48vw, 720px);
  overflow: hidden;
  background: var(--navy);
}
.experience-image:after {
  content: "";
  position: absolute;
  inset: 55% 0 0;
  background: linear-gradient(transparent, rgba(7, 27, 45, 0.18));
  pointer-events: none;
}
.experience-image img {
  width: 100%;
  height: 108%;
  object-fit: cover;
  transition: transform 1s var(--ease);
}
.experience-copy {
  padding: 1.35rem 0;
}
.experience-card p {
  font-size: 0.64rem;
  font-weight: 700;
  letter-spacing: 0.12em;
}
.experience-card h3 {
  margin: 0.5rem 0;
  font-size: clamp(1.65rem, 3vw, 3rem);
  line-height: 1;
}
.experience-card .experience-copy > span {
  display: block;
  max-width: 48ch;
  margin-top: 0.85rem;
  color: #65717c;
  font-size: 0.76rem;
  line-height: 1.55;
}
.curriculum-copy {
  display: grid;
  grid-template-columns: 0.55fr 1.45fr;
  gap: 5vw;
  align-items: end;
  padding-top: 1.6rem;
}
.curriculum-copy h3 {
  max-width: 12ch;
}
.stage-rail {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  list-style: none;
  border-top: 1px solid var(--line);
}
.stage-rail li {
  position: relative;
  padding: 1rem 0.75rem 0;
  border-top: 3px solid transparent;
  transition: border-color 0.45s var(--ease), color 0.45s var(--ease),
    transform 0.45s var(--ease);
}
.stage-rail li:after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  top: -2px;
  height: 3px;
  background: var(--coral);
  transform: scaleX(0);
  transform-origin: left;
  transition: transform 0.55s var(--ease);
}
.stage-rail li.active {
  color: var(--coral);
  transform: translateY(-4px);
}
.stage-rail li.active:after {
  transform: scaleX(1);
}
.stage-rail span {
  display: block;
  color: #65717c;
  font-size: 0.62rem;
  font-weight: 700;
}
.stage-rail strong {
  display: block;
  margin-top: 0.35rem;
  font-size: clamp(0.9rem, 1.3vw, 1.15rem);
}

/* student life & enrichment ? vertical layered sticky storytelling */
.student-life {
  --life-sticky-top: 0px;
  position: relative;
  isolation: isolate;
  padding: clamp(4rem, 8vw, 7rem) 0 clamp(3.5rem, 7vw, 6rem);
  overflow-x: clip;
  overflow-y: visible;
 
}
.life-glow {
  position: absolute;
  z-index: 0;
  inset: auto -12% 18% auto;
  width: min(48vw, 30rem);
  height: min(48vw, 30rem);
  border-radius: 50%;
  background: radial-gradient(circle, rgba(201, 220, 80, 0.18), transparent 70%);
  pointer-events: none;
  transform: translate3d(0, var(--life-layer-y, 0px), 0);
  will-change: transform;
}
.life-motif {
  position: absolute;
  z-index: 0;
  border-radius: 50%;
  pointer-events: none;
  transform: translate3d(0, var(--life-layer-y, 0px), 0);
  will-change: transform;
}
.life-motif--a {
  inset: 8% auto auto -8%;
  width: min(28vw, 18rem);
  height: min(28vw, 18rem);
  
}
.life-motif--b {
  inset: auto 18% 12% auto;
  width: min(18vw, 11rem);
  height: min(18vw, 11rem);
 
}
.student-life > .container {
  position: relative;
  z-index: 1;
}
.life-intro {
  padding-bottom: clamp(2.25rem, 5vw, 4rem);
  transform: translate3d(0, var(--life-layer-y, 0px), 0);
}
.life-intro__eyebrow {
  display: flex;
  align-items: center;
  gap: 0.85rem;
  margin-bottom: 1.35rem;
}
.life-intro__pulse {
  width: 2.75rem;
  height: 2px;
  background: var(--coral);
  transform-origin: left center;
  animation: academic-pulse 2.8s var(--ease) infinite;
}
.life-intro__grid {
  display: grid;
  grid-template-columns: minmax(0, 1.2fr) minmax(14rem, 0.8fr);
  gap: clamp(1.75rem, 5vw, 5rem);
  align-items: end;
}
.life-intro__title h2 {
  margin: 0;
  font-size: clamp(3rem, 6.2vw, 6.2rem);
  line-height: 0.88;
  letter-spacing: -0.055em;
}
.life-intro__title h2 em {
  font-family: "Playfair Display", serif;
  font-weight: 500;
}
.life-intro__title h2 span {
  color: var(--coral);
}
.life-intro__copy {
  padding-bottom: 0.35rem;
}
.life-intro__copy p {
  margin-bottom: 1.35rem;
  color: #3d4d5c;
  font-size: clamp(0.98rem, 1.35vw, 1.08rem);
}

.life-stack {
  position: relative;
  z-index: 2;
  display: flex;
  flex-direction: column;
  width: 100%;
  isolation: isolate;
}

.life-spacer {
  flex: none;
  width: 100%;
  height: 100vh;
  height: 100svh;
  height: 100dvh;
  pointer-events: none;
  visibility: hidden;
}

.life-spacer--end {
  /* Keeps card 03 pinned long enough to fully cover card 02 */
  height: 100vh;
  height: 100svh;
  height: 100dvh;
}

.life-feature {
  --life-cover: 0;
  --life-rise: 0;
  position: -webkit-sticky;
  position: sticky;
  top: var(--life-sticky-top, 0px);
  z-index: var(--life-z, 1);
  flex: none;
  width: 100%;
  height: 100vh;
  height: 100svh;
  height: 100dvh;
  margin: 0;
  padding: 0;
  color: #fff;
  background: transparent;
}

.life-feature__frame {
  position: relative;
  width: 100%;
  height: 100%;
  overflow: hidden;
  border-radius: 0;
  background: var(--navy);
  isolation: isolate;
  
  transform:
    translate3d(0, 0, 0)
    scale(calc(1 - var(--life-cover, 0) * 0.035));
  transform-origin: center top;
  filter: brightness(calc(1 - var(--life-cover, 0) * 0.22));
  transition: none;
  will-change: transform, filter;
  backface-visibility: hidden;
}
.life-feature__media {
  position: absolute;
  inset: -10% -3%;
  z-index: 0;
  overflow: hidden;
}
.life-feature__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  transform: translate3d(0, var(--life-y, 0px), 0) scale(1.1);
  will-change: transform;
  backface-visibility: hidden;
}
.life-feature__shade {
  position: absolute;
  inset: 0;
  z-index: 1;
  pointer-events: none;
  background:
    linear-gradient(105deg, rgba(0, 43, 99, 0.42) 0%, transparent 56%),
    linear-gradient(180deg, rgba(0, 43, 99, 0.12) 0%, transparent 40%, rgba(8, 28, 55, 0.46) 100%),
    radial-gradient(ellipse 70% 55% at 18% 72%, color-mix(in srgb, var(--life-accent, var(--coral)) 22%, transparent), transparent 70%);
}
.life-feature__depth {
  position: absolute;
  inset: 0;
  z-index: 1;
  pointer-events: none;
  opacity: calc(var(--life-cover, 0) * 0.55);
  background: rgba(0, 20, 48, 0.55);
}
.life-feature__panel {
  position: absolute;
  z-index: 2;
  left: max(var(--pad), env(safe-area-inset-left));
  top: 50%;
  transform: translate3d(0, calc(-50% + var(--life-rise, 0) * 1.25rem), 0);
  display: grid;
  gap: clamp(0.85rem, 1.8vw, 1.35rem);
  width: min(32rem, calc(100% - (var(--pad) * 2)));
  padding: clamp(1.55rem, 3.4vw, 2.5rem);
  border-radius: 1.15rem;
  border: 1px solid rgba(255, 255, 255, 0.14);
  background: color-mix(in srgb, var(--navy) 72%, transparent);
  color: #fff;
  box-shadow: 0 22px 48px rgba(0, 20, 48, 0.28);
  backdrop-filter: blur(12px) saturate(1.08);
  -webkit-backdrop-filter: blur(12px) saturate(1.08);
  opacity: calc(1 - var(--life-cover, 0) * 0.35);
}
.life-feature__subtitle {
  display: inline-flex;
  align-items: center;
  gap: 0.55rem;
  margin: 0;
  color: var(--lime);
  font-size: 0.7rem;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}
.life-feature__subtitle span {
  display: inline-grid;
  place-items: center;
  min-width: 1.55rem;
  height: 1.55rem;
  padding: 0 0.3rem;
  border-radius: 0.3rem;
  border: 1px solid color-mix(in srgb, var(--lime) 55%, transparent);
  font-size: 0.62rem;
}
.life-feature__panel h3 {
  margin: 0;
  max-width: 11ch;
  font-size: clamp(2.35rem, 4.6vw, 3.85rem);
  line-height: 0.9;
  letter-spacing: -0.045em;
}
.life-feature__panel h3 em {
  font-family: "Playfair Display", serif;
  font-weight: 500;
  font-style: italic;
}
.life-feature__panel h3 span {
  color: var(--coral);
}
.life-feature__copy {
  margin: 0;
  max-width: 36ch;
  color: rgba(255, 255, 255, 0.88);
  font-size: clamp(0.96rem, 1.3vw, 1.08rem);
  line-height: 1.55;
}

@supports not (background: color-mix(in srgb, #000 50%, transparent)) {
  .life-feature__panel {
    background: rgba(0, 43, 99, 0.78);
  }
  .life-feature__shade {
    background:
      linear-gradient(105deg, rgba(0, 43, 99, 0.42) 0%, transparent 56%),
      linear-gradient(180deg, rgba(0, 43, 99, 0.12) 0%, transparent 40%, rgba(8, 28, 55, 0.46) 100%);
  }
}

@media (min-width: 768px) {
  .life-feature__panel {
    left: max(var(--pad), env(safe-area-inset-left));
    width: min(32rem, calc(100% - (var(--pad) * 2)));
  }
}

@media (max-width: 767px) {
  .life-feature__panel {
    top: auto;
    bottom: max(1.2rem, env(safe-area-inset-bottom));
    transform: translate3d(0, calc(var(--life-rise, 0) * 0.85rem), 0);
    width: min(28rem, calc(100% - 2.4rem));
  }
}

.life-stack.is-static .life-feature {
  position: relative;
  top: auto;
  width: 100%;
  height: 100vh;
  height: 100svh;
  height: 100dvh;
  min-height: 100vh;
  margin-bottom: 1rem;
}
.life-stack.is-static .life-spacer {
  display: none;
}
.life-stack.is-static .life-feature:last-child {
  margin-bottom: 0;
}
.life-stack.is-static .life-feature__frame {
  min-height: inherit;
  transform: none;
  filter: none;
}
.life-stack.is-static .life-feature__media img {
  transform: scale(1.06);
}
.life-stack.is-static .life-feature__depth {
  opacity: 0;
}
.life-stack.is-static .life-feature__panel {
  opacity: 1;
  transform: translate3d(0, -50%, 0);
}
@media (max-width: 767px) {
  .life-stack.is-static .life-feature__panel {
    transform: none;
  }
}

@media (prefers-reduced-motion: reduce) {
  .life-intro__pulse,
  .life-glow,
  .life-motif,
  .life-intro,
  .life-feature__frame,
  .life-feature__media img,
  .life-feature__panel {
    animation: none !important;
    transition: none !important;
    transform: none !important;
    will-change: auto !important;
    filter: none !important;
  }
  .life-feature__depth {
    opacity: 0 !important;
  }
}

/* results + testimonials */






.results {
  padding: clamp(5rem, 9vw, 9rem) 0;
}
.results-head h2 {
  font-size: clamp(3rem, 8vw, 8rem);
  margin-top: 1rem;
}
.results-head em,
.testimonials h2 em {
  font-family: "Playfair Display", serif;
  font-weight: 500;
}
.result-metrics {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  margin-top: 6rem;
  border-top: 1px solid var(--line);
}
.result-metrics article {
  min-height: 340px;
  padding: 2rem;
  border-right: 1px solid var(--line);
}
.result-metrics strong {
  font-size: clamp(5rem, 10vw, 10rem);
  color: var(--coral);
}
.result-metrics h3 {
  font-size: 1.5rem;
  margin: 1.5rem 0 0.5rem;
}
.result-metrics small {
  display: block;
  margin-top: 1.5rem;
  color: #65717c;
  font-size: 0.65rem;
}
.visually-hidden {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}
.testimonials.community {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  padding: clamp(6rem, 12vw, 11rem) 0 clamp(5rem, 9vw, 8rem);
  background:
    radial-gradient(ellipse 70% 55% at 88% 18%, rgba(67, 150, 201, 0.22), transparent 58%),
    radial-gradient(ellipse 50% 45% at 8% 88%, rgba(237, 106, 80, 0.12), transparent 55%),
    var(--navy);
}
.community-glow {
  position: absolute;
  inset: auto -10% -30% auto;
  width: min(52vw, 34rem);
  height: min(52vw, 34rem);
  border-radius: 50%;
  background: radial-gradient(circle, rgba(201, 220, 80, 0.14), transparent 68%);
  pointer-events: none;
  z-index: 0;
}
.community-layout {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: minmax(16rem, 0.65fr) minmax(0, 1.35fr);
  gap: clamp(2.5rem, 6vw, 7rem);
  align-items: start;
}
.community-intro {
  position: sticky;
  top: calc(5.5rem + env(safe-area-inset-top, 0px));
  padding-top: 0.25rem;
}
.testimonials h2 {
  font-size: clamp(3rem, 6vw, 6rem);
  margin-top: 1rem;
}
.community-lede {
  max-width: 22rem;
  margin-top: 1.5rem;
  color: rgba(255, 255, 255, 0.72);
  font-size: clamp(0.98rem, 1.4vw, 1.1rem);
  line-height: 1.55;
}
.community-faces {
  display: grid;
  gap: 0.65rem;
  margin-top: clamp(2rem, 4vw, 3rem);
  max-width: 22rem;
}
.community-face {
  display: grid;
  grid-template-columns: 3.25rem 1fr;
  gap: 0.9rem;
  align-items: center;
  width: 100%;
  min-height: 3.75rem;
  padding: 0.4rem 0.75rem 0.4rem 0.4rem;
  text-align: left;
  border: 1px solid rgba(255, 255, 255, 0.14);
  background: rgba(255, 255, 255, 0.03);
  transition: border-color 0.35s var(--ease), background 0.35s var(--ease),
    transform 0.35s var(--ease);
}
.community-face__photo {
  display: block;
  width: 3.25rem;
  height: 3.25rem;
  overflow: hidden;
  background: rgba(255, 255, 255, 0.08);
}
.community-face__photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 18%;
  filter: grayscale(0.35) contrast(1.02);
  transform: scale(1.06);
  transition: filter 0.45s var(--ease), transform 0.45s var(--ease);
}
.community-face__meta {
  display: grid;
  gap: 0.15rem;
  min-width: 0;
}
.community-face__meta strong {
  font-size: 0.95rem;
  font-weight: 600;
  letter-spacing: -0.02em;
  color: #fff;
}
.community-face__meta span {
  font-size: 0.68rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.5);
}
.community-face.is-active,
.community-face[aria-selected="true"] {
  border-color: rgba(201, 220, 80, 0.55);
  background: rgba(201, 220, 80, 0.08);
}
.community-face.is-active .community-face__photo img,
.community-face[aria-selected="true"] .community-face__photo img {
  filter: none;
  transform: scale(1);
}
.community-face.is-active .community-face__meta span,
.community-face[aria-selected="true"] .community-face__meta span {
  color: var(--lime);
}
@media (hover: hover) and (pointer: fine) {
  .community-face:hover {
    border-color: rgba(255, 255, 255, 0.35);
    background: rgba(255, 255, 255, 0.06);
  }
  .community-face:hover .community-face__photo img {
    filter: none;
  }
  .community-face:focus-visible {
    outline: 2px solid var(--lime);
    outline-offset: 3px;
  }
}
.testimonial-stage {
  position: relative;
  min-height: clamp(30rem, 48vw, 38rem);
  padding: 0 0 5.75rem;
  outline: none;
}
.testimonial-stage:focus-visible {
  box-shadow: 0 0 0 2px rgba(201, 220, 80, 0.55);
}
.testimonial {
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  bottom: 5.75rem;
  display: grid;
  grid-template-columns: minmax(11rem, 1.20fr) minmax(0, 1.02fr);
  grid-template-rows: minmax(0, 1fr);
  gap: clamp(1.35rem, 3.2vw, 2.75rem);
  align-items: stretch;
  opacity: 0;
  visibility: hidden;
  transform: translate3d(0, 32px, 0);
  transition: opacity 0.9s var(--ease), transform 0.9s var(--ease),
    visibility 0.9s;
  pointer-events: none;
}
.testimonial.is-active {
  opacity: 1;
  visibility: visible;
  transform: translate3d(0, 0, 0);
  pointer-events: auto;
  z-index: 1;
}
.testimonial-media {
  position: relative;
  margin: 0;
  overflow: hidden;
  background: rgba(255, 255, 255, 0.06);
  min-height: 0;
  aspect-ratio: 3 / 4;
  align-self: stretch;
  width: 100%;
  max-height: min(34rem, 62vh);
}
.testimonial-media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 16%;
  transform: scale(1.06);
  transition: transform 6.5s var(--ease);
}
.testimonial.is-active .testimonial-media img {
  transform: scale(1);
}
.testimonial-theme {
  display: inline-flex;
  align-items: center;
  gap: 0.55rem;
  margin: 0 0 0.35rem;
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.55);
}
.testimonial-theme span {
  color: var(--lime);
}
.testimonial blockquote {
  position: relative;
  margin: 0;
  display: flex;
  flex-direction: column;
  justify-content: start;
  min-width: 0;
  padding-bottom: 0.35rem;
}
.testimonial-mark {
  display: block;
  margin-bottom: -0.35em;
  font-family: "Playfair Display", serif;
  font-style: italic;
  font-size: clamp(4.5rem, 10vw, 8rem);
  line-height: 0.7;
  color: var(--coral);
  opacity: 0.9;
  transform: translate3d(0, 18px, 0);
  transition: transform 0.9s var(--ease), opacity 0.9s var(--ease);
}
.testimonial.is-active .testimonial-mark {
  transform: translate3d(0, 0, 0);
}
.testimonial blockquote > p:not(.testimonial-theme) {
  font-size: clamp(1.25rem, 2.8vw, 2rem);
  font-weight: 500;
  line-height: 1.22;
  letter-spacing: -0.03em;
}
.testimonial footer {
  display: grid;
  gap: 0.2rem;
  margin-top: 1.75rem;
  padding-top: 1.15rem;
  border-top: 1px solid rgba(255, 255, 255, 0.16);
  color: rgba(255, 255, 255, 0.58);
  font-size: 0.92rem;
}
.testimonial footer strong {
  color: var(--lime);
  font-size: 1rem;
}
.testimonial-controls {
  position: absolute;
  z-index: 2;
  left: 0;
  right: 0;
  bottom: 1.15rem;
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 1rem;
}
.testimonial-index {
  display: inline-flex;
  align-items: baseline;
  gap: 0.35rem;
  font-size: 0.85rem;
  letter-spacing: 0.08em;
  color: rgba(255, 255, 255, 0.55);
}
.testimonial-index i {
  font-style: normal;
  color: #fff;
  font-weight: 600;
}
.testimonial-index b {
  font-weight: 500;
}
.testimonial-controls button {
  width: 48px;
  height: 48px;
  border: 1px solid rgba(255, 255, 255, 0.35);
  border-radius: 50%;
  transition: border-color 0.3s var(--ease), background 0.3s var(--ease),
    transform 0.3s var(--ease);
}
@media (hover: hover) and (pointer: fine) {
  .testimonial-controls button:hover {
    border-color: var(--lime);
    background: rgba(201, 220, 80, 0.1);
  }
  .testimonial-controls button:focus-visible {
    outline: 2px solid var(--lime);
    outline-offset: 3px;
  }
}
.testimonial-progress {
  position: absolute;
  z-index: 2;
  left: 0;
  right: 0;
  bottom: 0;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 0.4rem;
  height: 2px;
}
.testimonial-progress span {
  display: block;
  height: 100%;
  background: rgba(255, 255, 255, 0.18);
  overflow: hidden;
  position: relative;
}
.testimonial-progress span::after {
  content: "";
  position: absolute;
  inset: 0;
  background: var(--lime);
  transform: scaleX(0);
  transform-origin: left center;
}
.testimonial-progress span.is-complete::after {
  transform: scaleX(1);
}
.testimonial-stage.is-playing
  .testimonial-progress
  span.is-active:not(.is-complete)::after {
  animation: testimonial-progress 5.5s linear forwards;
}
@keyframes testimonial-progress {
  from {
    transform: scaleX(0);
  }
  to {
    transform: scaleX(1);
  }
}
@media (prefers-reduced-motion: reduce) {
  .testimonial,
  .testimonial-mark {
    transition: none;
    transform: none;
  }
  .testimonial-media img,
  .community-face__photo img {
    transition: none;
    transform: none;
  }
  .testimonial-stage.is-playing
    .testimonial-progress
    span.is-active:not(.is-complete)::after {
    animation: none;
    transform: scaleX(1);
  }
}

/* connected community ? editorial photo wall */
.collaborations.community-wall {
  position: relative;
  isolation: isolate;
  padding: clamp(2.5rem, 4.5vw, 4rem) 0 clamp(2.75rem, 4.5vw, 4rem);
  overflow: clip;
  background:
    radial-gradient(ellipse 48% 42% at 8% 18%, rgba(67, 150, 201, 0.1), transparent 62%),
    radial-gradient(ellipse 40% 36% at 92% 78%, rgba(237, 106, 80, 0.08), transparent 60%),
    var(--cream);
}
.wall-glow {
  position: absolute;
  z-index: 0;
  inset: auto -8% 8% auto;
  width: min(42vw, 26rem);
  height: min(42vw, 26rem);
  border-radius: 50%;
  background: radial-gradient(circle, rgba(201, 220, 80, 0.16), transparent 72%);
  pointer-events: none;
}
.community-wall > .container {
  position: relative;
  z-index: 1;
}
.wall-intro {
  margin-bottom: clamp(1.15rem, 2.4vw, 1.85rem);
}
.wall-intro .section-tag {
  margin-bottom: 0.75rem;
}
.wall-intro__grid {
  display: grid;
  grid-template-columns: minmax(0, 0.9fr) minmax(12rem, 1.1fr);
  gap: clamp(1.5rem, 4vw, 4rem);
  align-items: end;
}
.wall-intro h2 {
  margin: 0;
  font-size: clamp(2.35rem, 4.6vw, 4.35rem);
  line-height: 0.9;
  letter-spacing: -0.055em;
}
.wall-intro h2 em {
  font-family: "Playfair Display", serif;
  font-weight: 500;
  font-style: italic;
}
.wall-intro h2 span {
  color: var(--coral);
}
.wall-intro__grid > p {
  margin: 0;
  max-width: 35rem;
  padding-bottom: 0.3rem;
  color: #3d4d5c;
  font-size: clamp(0.94rem, 1.25vw, 1.06rem);
  line-height: 1.52;
  justify-self: end;
}

/* Editorial 4Ã3 social photo wall Â matches reference composition */
.photo-wall {
  --wall-gap: clamp(0.6rem, 1.05vw, 0.95rem);
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  grid-template-rows: repeat(3, minmax(0, 1fr));
  gap: var(--wall-gap);
  width: 100%;
  height: 84svh;
  isolation: isolate;
}

.wall-tile {
  --tile-y: 0px;
  position: relative;
  min-height: 0;
  overflow: hidden;
  border-radius: clamp(0.9rem, 1.4vw, 1.35rem);
  background: var(--navy);
  color: #fff;
  isolation: isolate;
  opacity: 0;
  transform: translate3d(0, calc(1.35rem + var(--tile-y)), 0);
  transition:
    opacity 0.75s var(--ease),
    transform 0.85s var(--ease),
    filter 0.45s var(--ease);
  transition-delay: var(--wall-delay, 0ms);
  will-change: transform, opacity;
}
.photo-wall.is-inview .wall-tile,
.wall-tile.is-visible {
  opacity: 1;
  transform: translate3d(0, var(--tile-y), 0);
}

.wall-tile--a { grid-column: 1; grid-row: 1; }
.wall-tile--b { grid-column: 2; grid-row: 1; }
.wall-tile--tall {
  grid-column: 3 / span 2;
  grid-row: 1 / span 2;
}
.wall-tile--c { grid-column: 1; grid-row: 2; }
.wall-tile--d { grid-column: 2; grid-row: 2; }
.wall-tile--quote { grid-column: 1; grid-row: 3; }
.wall-tile--e { grid-column: 2; grid-row: 3; }
.wall-tile--f { grid-column: 3; grid-row: 3; }
.wall-tile--g { grid-column: 4; grid-row: 3; }

.wall-tile__hit {
  position: absolute;
  inset: 0;
  z-index: 4;
  width: 100%;
  height: 100%;
  cursor: pointer;
  background: transparent;
}
.wall-tile__media {
  position: absolute;
  inset: 0;
  z-index: 0;
  overflow: hidden;
}
.wall-tile__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  transform: scale(1.03) translate3d(0, var(--img-y, 0px), 0);
  transition: transform 0.85s var(--ease);
  will-change: transform;
  backface-visibility: hidden;
}
.wall-tile__shade {
  position: absolute;
  inset: 0;
  z-index: 1;
  pointer-events: none;
  background:
    linear-gradient(180deg, transparent 42%, rgba(0, 20, 48, 0.42) 100%);
  opacity: 0.55;
  transition: opacity 0.5s var(--ease), background 0.5s var(--ease);
}
.wall-tile__social {
  position: absolute;
  z-index: 2;
  top: clamp(0.55rem, 1.1vw, 0.95rem);
  right: clamp(0.55rem, 1.1vw, 0.95rem);
  display: grid;
  place-items: center;
  width: clamp(1.55rem, 2vw, 1.9rem);
  height: clamp(1.55rem, 2vw, 1.9rem);
  border-radius: 50%;
  color: #fff;
  box-shadow: 0 6px 14px rgba(0, 20, 48, 0.22);
  pointer-events: none;
  opacity: 0.96;
  transition: opacity 0.35s var(--ease), transform 0.35s var(--ease);
}
.wall-tile__social svg {
  width: 55%;
  height: 55%;
}
.wall-tile__social--instagram {
  background: linear-gradient(135deg, #f58529, #dd2a7b 52%, #8134af);
}
.wall-tile__social--facebook {
  background: #1877f2;
}
.wall-tile__social--linkedin {
  background: #0a66c2;
}
.wall-tile--quote .wall-tile__social {
  top: auto;
  right: auto;
  bottom: clamp(0.9rem, 1.5vw, 1.25rem);
  left: clamp(0.9rem, 1.5vw, 1.25rem);
  box-shadow: 0 4px 10px rgba(0, 20, 48, 0.12);
}

/* Quote / text social card */
.wall-tile--quote {
  background: #eef1f4;
  color: var(--navy);
  box-shadow: inset 0 0 0 1px rgba(0, 43, 99, 0.04);
}
.wall-quote {
  position: relative;
  z-index: 1;
  display: flex;
  flex-direction: column;
  height: 100%;
  padding: clamp(0.95rem, 1.6vw, 1.35rem);
  gap: 0.7rem;
}
.wall-quote__head {
  display: flex;
  align-items: center;
  gap: 0.65rem;
  min-width: 0;
}
.wall-quote__avatar {
  flex: 0 0 auto;
  display: grid;
  place-items: center;
  width: 2.05rem;
  height: 2.05rem;
  border-radius: 50%;
  background: var(--navy);
  color: #fff;
  font-size: 0.58rem;
  font-weight: 700;
  letter-spacing: 0.04em;
}
.wall-quote__name {
  margin: 0;
  font-size: clamp(0.78rem, 1.05vw, 0.92rem);
  font-weight: 700;
  letter-spacing: -0.01em;
  line-height: 1.2;
}
.wall-quote__when {
  margin: 0.1rem 0 0;
  color: #6a7682;
  font-size: 0.68rem;
  line-height: 1.2;
}
.wall-quote__copy {
  margin: 0;
  flex: 1 1 auto;
  max-width: 28ch;
  color: #2c3a48;
  font-size: clamp(0.78rem, 1.05vw, 0.9rem);
  line-height: 1.45;
  display: -webkit-box;
  -webkit-line-clamp: 5;
  -webkit-box-orient: vertical;
  overflow: hidden;
  padding-bottom: 1.75rem;
}

.wall-tile__overlay {
  position: absolute;
  z-index: 3;
  inset: auto 0 0;
  display: grid;
  gap: 0.35rem;
  justify-items: start;
  padding: clamp(0.85rem, 1.7vw, 1.35rem);
  padding-right: clamp(2.2rem, 3.5vw, 3rem);
  pointer-events: none;
  opacity: 0;
  transform: translate3d(0, 0.7rem, 0);
  transition:
    opacity 0.4s var(--ease),
    transform 0.5s var(--ease);
}
.wall-tile__meta {
  margin: 0;
  color: var(--lime);
  font-size: clamp(0.58rem, 0.8vw, 0.68rem);
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}
.wall-tile__overlay h3 {
  margin: 0;
  max-width: 16ch;
  font-size: clamp(1.05rem, 1.7vw, 1.65rem);
  line-height: 0.98;
  letter-spacing: -0.035em;
}
.wall-tile__copy {
  margin: 0;
  max-width: 34ch;
  color: rgba(255, 255, 255, 0.88);
  font-size: clamp(0.78rem, 1vw, 0.92rem);
  line-height: 1.4;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.wall-tile--a .wall-tile__copy,
.wall-tile--b .wall-tile__copy,
.wall-tile--c .wall-tile__copy,
.wall-tile--d .wall-tile__copy,
.wall-tile--e .wall-tile__copy,
.wall-tile--f .wall-tile__copy,
.wall-tile--g .wall-tile__copy {
  -webkit-line-clamp: 1;
}
.wall-tile--tall .wall-tile__overlay {
  padding: clamp(1.15rem, 2.2vw, 1.85rem);
  gap: 0.45rem;
}
.wall-tile--tall .wall-tile__overlay h3 {
  max-width: 14ch;
  font-size: clamp(1.45rem, 2.4vw, 2.15rem);
}
.wall-tile--tall .wall-tile__copy {
  -webkit-line-clamp: 2;
}
.wall-tile__cta {
  position: relative;
  z-index: 5;
  display: inline-flex;
  align-items: center;
  gap: 0.3rem;
  margin-top: 0.1rem;
  width: fit-content;
  color: #fff;
  font-size: clamp(0.72rem, 0.9vw, 0.82rem);
  font-weight: 700;
  letter-spacing: 0.02em;
  pointer-events: auto;
  border-bottom: 1px solid rgba(255, 255, 255, 0.35);
  padding-bottom: 0.08rem;
  transition: color 0.35s var(--ease), border-color 0.35s var(--ease);
}
.wall-tile__cta span {
  color: var(--coral);
  transition: transform 0.35s var(--ease);
}
.wall-tile__cta:hover,
.wall-tile__cta:focus-visible {
  color: var(--lime);
  border-color: color-mix(in srgb, var(--lime) 55%, transparent);
  outline: none;
}
.wall-tile__cta:hover span,
.wall-tile__cta:focus-visible span {
  transform: translate(0.12rem, -0.08rem);
}

@media (hover: hover) and (pointer: fine) {
  .wall-tile__hit {
    pointer-events: none;
  }
  .wall-tile:not(.wall-tile--quote):hover .wall-tile__media img,
  .wall-tile:not(.wall-tile--quote):focus-within .wall-tile__media img {
    transform: scale(1.08) translate3d(0, var(--img-y, 0px), 0);
  }
  .wall-tile:not(.wall-tile--quote):hover .wall-tile__shade,
  .wall-tile:not(.wall-tile--quote):focus-within .wall-tile__shade {
    opacity: 1;
    background:
      linear-gradient(180deg, rgba(0, 20, 48, 0.22) 0%, rgba(0, 20, 48, 0.78) 100%),
      linear-gradient(115deg, rgba(0, 43, 99, 0.25) 0%, transparent 55%);
  }
  .wall-tile:not(.wall-tile--quote):hover .wall-tile__overlay,
  .wall-tile:not(.wall-tile--quote):focus-within .wall-tile__overlay {
    opacity: 1;
    transform: none;
  }
  .wall-tile:hover .wall-tile__social,
  .wall-tile:focus-within .wall-tile__social {
    opacity: 1;
    transform: scale(1.05);
  }
  .wall-tile--quote:hover .wall-tile__social,
  .wall-tile--quote:focus-within .wall-tile__social {
    transform: none;
  }
  .photo-wall:hover .wall-tile:not(:hover):not(:focus-within) {
    filter: brightness(0.9);
  }
  .photo-wall:hover .wall-tile:hover,
  .photo-wall:hover .wall-tile:focus-within {
    filter: none;
    z-index: 2;
  }
}

.wall-tile.is-open .wall-tile__media img {
  transform: scale(1.08) translate3d(0, var(--img-y, 0px), 0);
}
.wall-tile.is-open .wall-tile__shade {
  opacity: 1;
  background:
    linear-gradient(180deg, rgba(0, 20, 48, 0.22) 0%, rgba(0, 20, 48, 0.78) 100%),
    linear-gradient(115deg, rgba(0, 43, 99, 0.25) 0%, transparent 55%);
}
.wall-tile.is-open .wall-tile__overlay {
  opacity: 1;
  transform: none;
}
.wall-tile.is-open .wall-tile__social {
  opacity: 1;
}

@media (max-width: 1024px) {
  .photo-wall {
    height: auto;
    min-height: 0;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    grid-template-rows: none;
    grid-auto-rows: minmax(12rem, 28vw);
  }
  .wall-tile--a,
  .wall-tile--b,
  .wall-tile--c,
  .wall-tile--d,
  .wall-tile--quote,
  .wall-tile--e,
  .wall-tile--f,
  .wall-tile--g {
    grid-column: auto;
    grid-row: auto;
  }
  .wall-tile--tall {
    grid-column: 1 / -1;
    grid-row: span 2;
    min-height: 20rem;
  }
  .wall-quote__copy {
    -webkit-line-clamp: 4;
  }
}

@media (max-width: 720px) {
  .wall-intro__grid {
    grid-template-columns: 1fr;
    gap: 0.95rem;
  }
  .wall-intro h2 {
    font-size: clamp(2.3rem, 11vw, 3.3rem);
  }
  .photo-wall {
    height: auto;
    grid-template-columns: 1fr 1fr;
    grid-auto-rows: minmax(11.5rem, 38vw);
    gap: 0.6rem;
  }
  .wall-tile--tall {
    grid-column: 1 / -1;
    grid-row: span 2;
    min-height: 16.5rem;
  }
  .wall-tile--quote {
    grid-column: 1 / -1;
    min-height: 11.5rem;
  }
  .wall-tile__overlay h3 {
    font-size: clamp(1rem, 4.5vw, 1.25rem);
  }
  .wall-tile__copy {
    display: none;
  }
}

@media (prefers-reduced-motion: reduce) {
  .wall-tile,
  .wall-tile__media img,
  .wall-tile__shade,
  .wall-tile__social,
  .wall-tile__overlay,
  .wall-tile__cta span {
    transition: none !important;
    transform: none !important;
    will-change: auto !important;
  }
  .wall-tile {
    opacity: 1;
  }
}

.recognition {
  padding: 5rem 0 9rem;
}
.recognition-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 4rem;
  border-top: 1px solid var(--line);
}
.recognition-grid article {
  padding-top: 2rem;
  text-align: center;
}
.recognition-mark {
  width: 120px;
  height: 120px;
  margin: 0 auto 1.5rem;
  display: grid;
  place-items: center;
  border: 1px solid var(--line);
  border-radius: 50%;
  font-size: 2rem;
  color: var(--coral);
}
.recognition-grid strong {
  display: block;
  text-transform: uppercase;
  font-size: 0.75rem;
  letter-spacing: 0.08em;
}
.recognition-grid p {
  margin-top: 0.5rem;
  color: #65717c;
  font-size: 0.72rem;
}

/* close and footer */
.how {
  position: relative;
  padding: clamp(5rem, 9vw, 9rem) 0;
  overflow: hidden;
  /* Soft brand-blue wash ??? lifts the section from adjacent cream without darkening type */
  background: #e7eef4;
  background: color-mix(in srgb, var(--blue) 14%, var(--cream));
}
.how-wire {
  inset: -20% -30% -20% 25%;
  opacity: 0.1;
}
.how-grid {
  position: relative;
  z-index: 2;
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  gap: 4vw;
  align-items: center;
}
.how-title h2 {
  font-size: clamp(3rem, 6vw, 6rem);
  text-align: right;
  line-height: 1;
}
.how-image img {
  width: 100%;
  aspect-ratio: 3/4;
  object-fit: cover;
}
.how-image figcaption {
  margin-top: 0.7rem;
  font-size: 0.6rem;
  color: #65717c;
}
.how-copy {
  padding-top: 2rem;
}
.how-copy h3 {
  font-size: 1.5rem;
  line-height: 1.2;
}
.how-copy p {
  margin: 1rem 0 0 0;
  color: #55616b;
  font-size: 0.95rem;
}

.how-principal {
  margin: 1rem 0 1.5rem;
  padding-left: 1.1rem;
  display: grid;
  gap: 0.25rem;
  position: relative;
}
.how-principal:before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.35rem;
  bottom: 0.35rem;
  width: 2px;
  border-radius: 2px;
  background: var(--coral);
}
.how-principal__name {
  color: var(--navy);
  font-size: 1rem;
  font-weight: 650;
  letter-spacing: -0.01em;
}
.how-principal__role {
  color: #65717c;
  font-size: 0.78rem;
  line-height: 1.45;
  font-style: italic;
}

/* editorial break between Welcome and SRI Story */
.section-divider {
  background: var(--cream);
  padding: clamp(0.25rem, 1.5vw, 0.75rem) 0 clamp(0.5rem, 2vw, 1.25rem);
}
.section-divider__inner {
  display: flex;
  align-items: center;
  gap: 1.1rem;
}
.section-divider__accent {
  flex: 0 0 auto;
  width: 2.75rem;
  height: 2px;
  background: var(--coral);
}
.section-divider__rule {
  flex: 1 1 auto;
  height: 1px;
  background: var(--line);
  min-width: 0;
}

/* footer ÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂ editorial closing signature */
.footer {
  position: relative;
  isolation: isolate;
  padding: clamp(4.5rem, 9vw, 7.5rem) 0 clamp(1.75rem, 3vw, 2.5rem);
  overflow: clip;
  border-top: 1px solid rgba(0, 43, 97, 0.12);
  /* Soft brand cream — refined contrast that elevates the blue logo */
  background: #f1eee5;
}

.footer-glow {
  position: absolute;
  z-index: 0;
  width: min(70vw, 42rem);
  height: min(70vw, 42rem);
  right: -28vw;
  top: -32vw;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(74, 155, 200, 0.28), transparent 68%);
  pointer-events: none;
  transform: translate3d(0, var(--footer-layer-y, 0px), 0);
  will-change: transform;
}

.footer-motif {
  position: absolute;
  z-index: 0;
  border-radius: 50%;
  pointer-events: none;
  transform: translate3d(0, var(--footer-layer-y, 0px), 0);
  will-change: transform;
}

.footer-motif--a {
  inset: auto auto 8% -12%;
  width: min(36vw, 22rem);
  height: min(36vw, 22rem);

}

.footer-motif--b {
  inset: 28% -8% auto auto;
  width: min(22vw, 14rem);
  height: min(22vw, 14rem);

}

.footer-grain {
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  opacity: 0.035;
  background-image:
    radial-gradient(circle at 20% 20%, rgba(255, 255, 255, 0.55) 0.6px, transparent 0.7px),
    radial-gradient(circle at 80% 40%, rgba(255, 255, 255, 0.4) 0.5px, transparent 0.6px);
  background-size: 3px 3px, 5px 5px;
  mix-blend-mode: soft-light;
}

.footer>.container {
  position: relative;
  z-index: 2;
}

.footer-signature {
  display: grid;
  grid-template-columns: minmax(0, 1.5fr) minmax(11rem, 0.7fr);
  gap: clamp(1.75rem, 5vw, 5rem);
  align-items: end;
  margin-bottom: clamp(2.75rem, 5.5vw, 4.25rem);
  padding-bottom: clamp(2rem, 4vw, 3rem);
  border-bottom: 1px solid rgba(0, 43, 99, 0.12);
}

.footer-signature__mark {
  margin: 0;
  max-width: 12ch;
  font-size: clamp(3rem, 7.5vw, 6.8rem);
  font-weight: 600;
  line-height: 0.88;
  letter-spacing: -0.055em;
  color: var(--navy);
}

.footer-signature__mark em {
  font-family: "Playfair Display", serif;
  font-weight: 500;
  font-style: italic;
}

.footer-signature__mark span {
  color: var(--coral);
}

.footer-signature__aside {
  display: grid;
  justify-items: end;
  align-content: end;
  gap: 2rem;
}

.footer-signature__aside img {
  width: clamp(7.5rem, 10vw, 9rem);
  filter: brightness(0) saturate(100%) invert(14%) sepia(28%) saturate(1570%) hue-rotate(169deg) brightness(91%) contrast(95%);
}

.footer-gems-logo-link {
  display: block;
  margin-top: 0.15rem;
  padding-top: 0.85rem;
  border-top: 1px solid rgba(0, 43, 99, 0.12);
  line-height: 0;
  transition: opacity 0.35s var(--ease), transform 0.35s var(--ease);
}

.footer-gems-logo-link:hover,
.footer-gems-logo-link:focus-visible {
  opacity: 0.88;
  transform: translateY(-1px);
 
}

.footer-gems-logo,
.footer-signature__aside .footer-gems-logo {
  display: block;
  width: clamp(6.75rem, 9.5vw, 7rem);
  height: auto;
  filter: none;
}

.footer-signature__logos{
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: clamp(1rem, 2.5vw, 2.5rem);
}

.footer-links {
  display: grid;
  grid-template-columns: minmax(0, 1.7fr) minmax(12rem, 0.7fr);
  gap: clamp(2rem, 5vw, 5rem);
  align-items: start;
  margin: 0;
  padding: 0;
  border: 0;
}

.footer-menu {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: clamp(1.25rem, 3vw, 2.75rem);
  align-content: start;
}

.footer-menu__col {
  display: grid;
  align-content: start;
  gap: 0.7rem;
}

.footer-menu__title {
  margin: 0 0 0.45rem;
  color: var(--coral);
  font-size: 0.66rem;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}

.footer-menu__col a {
  position: relative;
  width: fit-content;
  font-size: clamp(0.95rem, 1.15vw, 1.05rem);
  line-height: 1.35;
  color: rgba(0, 43, 99);
  transition: color 0.35s var(--ease), transform 0.35s var(--ease);
}

.footer-menu__col a::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: -0.12rem;
  width: 100%;
  height: 1px;
  background: var(--coral);
  transform: scaleX(0);
  transform-origin: left center;
  transition: transform 0.4s var(--ease);
}

.footer-menu__col a:hover,
.footer-menu__col a:focus-visible {
  color: var(--navy);
  transform: translateX(0.2rem);
  outline: none;
}

.footer-menu__col a:hover::after,
.footer-menu__col a:focus-visible::after {
  transform: scaleX(1);
}

.footer-contact {
  display: grid;
  align-content: start;
  gap: 0.85rem;
  padding-top: 0.15rem;
  justify-items: end;
  text-align: right;
}

.footer-contact__address {
  margin: 0;
  font-style: normal;
  color: rgba(0, 43, 99, 0.72);
  font-size: 0.92rem;
  line-height: 1.45;
}

.footer-contact a {
  color: rgba(0, 43, 99, 0.72);
  font-size: 0.92rem;
  transition: color 0.35s var(--ease);
}

.footer-contact__primary {
  font-size: clamp(1.15rem, 2vw, 1.55rem) !important;
  font-weight: 650;
  letter-spacing: -0.03em;
  color: var(--navy) !important;
}

.footer-contact a:hover,
.footer-contact a:focus-visible {
  color: var(--coral) !important;
  outline: none;
}

.footer-social {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 0.55rem;
  list-style: none;
  margin: 0;
  padding: 0;
}

.footer-social__link {
  display: grid;
  place-items: center;
  width: 2.45rem;
  height: 2.45rem;
  border-radius: 50%;
  border: 1px solid rgba(0, 43, 99, 0.18);
  background: rgba(0, 43, 99, 0.04);
  color: var(--navy);
  transition:
    transform 0.4s var(--ease),
    border-color 0.35s var(--ease),
    background 0.35s var(--ease),
    color 0.35s var(--ease);
}

.footer-social__link:hover,
.footer-social__link:focus-visible {
  transform: translateY(-3px) scale(1.04);
  border-color: var(--coral);
  background: rgba(237, 106, 80, 0.12);
  color: var(--coral);
  outline: none;
}

.gems-values {
  margin-top: clamp(3rem, 6vw, 4.75rem);
  margin-bottom: 0;
  padding-top: clamp(2.25rem, 4.5vw, 3.25rem);
  border-top: 1px solid rgba(0, 43, 99, 0.12);
}

.gems-values__heading {
  margin: 0 0 clamp(1.5rem, 3vw, 2.1rem);
  text-align: left;
  color: var(--navy);
  font-size: clamp(0.68rem, 1.05vw, 0.78rem);
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  line-height: 1.45;
}

.gems-values__grid {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 0.75rem;
  list-style: none;
  margin: 0;
  padding: 0;
}

.gems-value {
  display: grid;
  align-content: start;
  gap: 0.65rem;
  min-height: 100%;
  padding: clamp(1.15rem, 1.9vw, 1.45rem);
  border-radius: 1rem;
  border: 1px solid rgba(0, 43, 99, 0.12);
  background:
  linear-gradient(165deg, rgb(0, 43, 99, 0.75), rgb(0, 43, 99));
  backdrop-filter: blur(6px);
  transition:
    transform 0.45s var(--ease),
    border-color 0.35s var(--ease),
    background 0.4s var(--ease),
    box-shadow 0.45s var(--ease);
}

.gems-value__icon {
  display: grid;
  place-items: center;
  width: 2.55rem;
  height: 2.55rem;
  margin-bottom: 0.15rem;
  border-radius: 50%;
  border: 1px solid color-mix(in srgb, var(--paper) 75%, transparent);
  color: var(--paper);
  background: rgba(67, 150, 201, 0.08);
}

.gems-value h3 {
  margin: 0;
  font-size: clamp(0.95rem, 1.2vw, 1.08rem);
  font-weight: 650;
  letter-spacing: -0.02em;
  line-height: 1.2;
  color: var(--paper);
}

.gems-value p {
  margin: 0;
  color: rgba(255, 255, 255);
  font-size: 0.8rem;
  line-height: 1.45;
}

.gems-value a {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  margin-top: 0.35rem;
  color: var(--blue);
  font-size: 0.78rem;
  font-weight: 650;
  letter-spacing: -0.01em;
  word-break: break-word;
  transition: color 0.3s var(--ease), gap 0.3s var(--ease);
}

.gems-value a span {
  flex: 0 0 auto;
  font-size: 0.85em;
}

.gems-value:hover {
  transform: translateY(-4px);
  border-color: rgba(67, 150, 201, 0.4);
  background:
  linear-gradient(165deg, rgb(0, 43, 99, 0.75), rgb(0, 43, 99));
  box-shadow: 0 18px 36px rgba(0, 43, 99, 0.1);
}

.gems-value a:hover,
.gems-value a:focus-visible {
  color: var(--coral);
  gap: 0.5rem;
  outline: none;
}

.footer-bottom {
  display: flex;
  justify-content: space-between;
  gap: 1rem;
  flex-wrap: wrap;
  margin-top: clamp(2.75rem, 5vw, 4rem);
  padding-top: 1.15rem;
  border-top: 1px solid rgba(0, 43, 99, 0.12);
  color: rgba(0, 43, 99, 0.5);
  font-size: 0.64rem;
  letter-spacing: 0.02em;
}

[data-footer-reveal] {
  opacity: 0;
  transform: translate3d(0, 1.75rem, 0);
  transition:
    opacity 0.85s var(--ease),
    transform 0.95s var(--ease);
  transition-delay: var(--footer-delay, 0ms);
}

.footer.is-inview [data-footer-reveal],
[data-footer-reveal].is-visible {
  opacity: 1;
  transform: none;
}

@media (prefers-reduced-motion: reduce) {

  .footer-glow,
  .footer-motif,
  .gems-value,
  .gems-value a,
  .footer-menu__col a,
  .footer-social__link,
  .footer-gems-logo-link,
  [data-footer-reveal] {
    transition: none !important;
    transform: none !important;
    will-change: auto !important;
  }

  [data-footer-reveal] {
    opacity: 1;
  }
}

/* admissions ? editorial single-viewport journey + enquiry */
.admissions {
  position: relative;
  isolation: isolate;
  min-height: 100svh;
  padding: clamp(5.5rem, 8vh, 6.5rem) 0 clamp(1.75rem, 3vh, 2.5rem);
  overflow: clip;
  color: #fff;
  background:
    radial-gradient(ellipse 65% 50% at 92% 8%, rgba(67, 150, 201, 0.2), transparent 58%),
    radial-gradient(ellipse 45% 40% at 4% 88%, rgba(237, 106, 80, 0.12), transparent 55%),
    radial-gradient(ellipse 35% 30% at 48% 100%, rgba(201, 220, 80, 0.07), transparent 60%),
    var(--navy);
}
.admissions-glow {
  position: absolute;
  z-index: 0;
  inset: auto -10% -20% auto;
  width: min(48vw, 28rem);
  height: min(48vw, 28rem);
  border-radius: 50%;
  background: radial-gradient(circle, rgba(201, 220, 80, 0.12), transparent 68%);
  pointer-events: none;
}
.admissions > .container {
  position: relative;
  z-index: 1;
}
.admissions-shell {
  display: grid;
  grid-template-columns: minmax(0, 1.15fr) minmax(19rem, 0.85fr);
  grid-template-areas:
    "story form"
    "resources resources";
  gap: clamp(1.25rem, 2.5vh, 1.75rem) clamp(1.5rem, 3.5vw, 2.75rem);
  align-content: center;
  align-items: stretch;
}
.admissions-story {
  grid-area: story;
  display: flex;
  flex-direction: column;
  gap: clamp(1rem, 2.2vh, 1.5rem);
  min-width: 0;
}
.admissions-intro__eyebrow {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  margin-bottom: 0.65rem;
}
.admissions-intro__pulse {
  width: 2.25rem;
  height: 2px;
  background: var(--coral);
  transform-origin: left center;
  animation: academic-pulse 2.8s var(--ease) infinite;
}
.admissions-intro h2 {
  margin: 0 0 0.65rem;
  font-size: clamp(2.4rem, 4.8vw, 4.25rem);
  line-height: 0.9;
  letter-spacing: -0.055em;
  color: #fff;
}
.admissions-intro h2 em {
  font-family: "Playfair Display", serif;
  font-weight: 500;
  font-style: italic;
}
.admissions-intro h2 span {
  color: var(--coral);
}
.admissions-lede {
  max-width: 70ch;
  margin: 3rem 0 2rem;
  color: rgba(255, 255, 255, 0.68);
  font-size: 0.95rem;
  line-height: 1.5;
}
.admissions-intro__actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.85rem 1.35rem;
}
.admissions-intro__actions .pill--light {
  background: #fff;
  color: var(--navy);
  border-color: #fff;
}
.admissions-intro__actions .pill--light:hover {
  background: var(--lime);
  border-color: var(--lime);
  color: var(--navy);
}
.admissions-intro__secondary {
  color: rgba(255, 255, 255, 0.88);
  border-bottom-color: rgba(255, 255, 255, 0.35);
}
.admissions-intro__secondary:hover,
.admissions-intro__secondary:focus-visible {
  color: #fff;
  border-bottom-color: var(--lime);
  outline: none;
}

.adm-journey {
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 0.65rem;
  min-height: 0;
}
.adm-journey__label {
  margin: 0;
  color: var(--lime);
  font-size: 0.64rem;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}
.adm-journey__stages {
  display: grid;
  gap: 0.45rem;
  margin: 0;
  padding: 0;
  list-style: none;
  border-top: 1px solid rgba(255, 255, 255, 0.12);
}
.adm-stage {
  --adm-accent: var(--coral);
  border-bottom: 1px solid rgba(255, 255, 255, 0.12);
  transition: background 0.4s var(--ease);
}
.adm-stage.is-active {
  background: color-mix(in srgb, var(--adm-accent) 12%, transparent);
}
.adm-stage__heading {
  margin: 0;
  font-size: inherit;
  font-weight: inherit;
  line-height: inherit;
  letter-spacing: inherit;
}
.adm-stage__trigger {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
  gap: 0.85rem;
  width: 100%;
  padding: 0.95rem 1rem;
  text-align: left;
  color: #fff;
  cursor: pointer;
  border-radius: 0.35rem;
  transition: color 0.35s var(--ease);
}
.adm-stage__trigger:focus-visible {
  outline: 3px solid var(--blue);
  outline-offset: 3px;
}
.adm-stage__icon {
  display: grid;
  place-items: center;
  width: 2.45rem;
  height: 2.45rem;
  flex-shrink: 0;
  border-radius: 0.7rem;
  color: #fff;
  }
.adm-stage__icon svg {
  width: 54%;
  height: 54%;
  display: block;
}
.adm-stage.is-active .adm-stage__icon {
  transform: scale(1.04);
}
.adm-stage__title {
  display: inline-flex;
  align-items: baseline;
  gap: 0.55rem;
  min-width: 0;
  font-size: clamp(1rem, 1.5vw, 1rem);
  font-weight: 650;
  letter-spacing: -0.03em;
  line-height: 1.15;
}
.adm-stage__index {
  color: color-mix(in srgb, var(--adm-accent) 65%, #fff);
  font-size: 0.62rem;
  font-weight: 700;
  letter-spacing: 0.14em;
}
.adm-stage.is-active .adm-stage__index {
  color: var(--lime);
}
.adm-stage__more {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  color: rgba(255, 255, 255, 0.55);
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  white-space: nowrap;
  transition: color 0.35s var(--ease), gap 0.35s var(--ease);
}
.adm-stage__more span {
  color: var(--adm-accent);
  transition: transform 0.35s var(--ease);
}
.adm-stage__trigger:hover .adm-stage__more,
.adm-stage.is-active .adm-stage__more {
  color: rgba(255, 255, 255, 0.9);
  gap: 0.5rem;
}
.adm-stage__trigger:hover .adm-stage__more span,
.adm-stage.is-active .adm-stage__more span {
  transform: translateX(3px);
}
.adm-stage__panel {
  display: grid;
  grid-template-rows: 0fr;
  transition: grid-template-rows 0.55s var(--ease);
}
.adm-stage.is-active .adm-stage__panel {
  grid-template-rows: 1fr;
}
.adm-stage__copy {
  overflow: hidden;
  margin: 0;
  max-width: 90ch;
  padding: 0 2.45rem 0 calc(2.45rem + 0.85rem);
  color: rgba(255, 255, 255, 0.72);
  font-size: 0.9rem;
  line-height: 1.5;
  opacity: 0;
  transform: translateY(-0.35rem);
  transition:
    opacity 0.4s var(--ease) 0.05s,
    transform 0.45s var(--ease) 0.05s,
    padding-bottom 0.55s var(--ease);
}
.adm-stage.is-active .adm-stage__copy {
  opacity: 1;
  transform: none;
  padding-bottom: 1.05rem;
}

.adm-stage__heading {
  display: flex;
  flex-wrap: nowrap;
  align-items: center;
  gap: 0.85rem;
  width: 100%;
  margin: 0;
  font-size: inherit;
  font-weight: inherit;
  line-height: inherit;
  letter-spacing: inherit;
}
 
.adm-stage__trigger {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  align-items: center;
  gap: 0.85rem;
  flex: 1 1 auto;
  min-width: 0;
  width: auto;
  padding: 0.95rem 0 0.95rem 1rem;
  text-align: left;
  color: #fff;
  cursor: pointer;
  border-radius: 0.35rem;
  transition: color 0.35s var(--ease);
}
 
.adm-stage__more {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  flex: 0 0 auto;
  margin-left: auto;
  padding-right: 1rem;
  color: rgba(255, 255, 255, 0.55);
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  white-space: nowrap;
  text-decoration: none;
  transition: color 0.35s var(--ease), gap 0.35s var(--ease);
}

.admissions-help {
  margin: 0;
  color: rgba(255, 255, 255, 0.52);
  font-size: 0.82rem;
  line-height: 1.45;
}
.admissions-help a {
  color: rgba(255, 255, 255, 0.88);
  font-weight: 650;
  text-decoration: underline;
  text-underline-offset: 0.16em;
  transition: color 0.3s var(--ease);
}
.admissions-help a:hover,
.admissions-help a:focus-visible {
  color: var(--lime);
  outline: none;
}

.enquiry-card {
  grid-area: form;
  align-self: stretch;
  display: flex;
  flex-direction: column;
  padding: clamp(1.5rem, 3vw, 2.25rem);
  background:linear-gradient(160deg, rgba(255, 255, 255, 0.08), rgba(255, 255, 255, 0.03));
  color: #fff;
  border: 1px solid rgba(255, 255, 255, 0.12);
}
.enquiry-card__tag {
  margin: 0 0 0.4rem;
  color: var(--coral);
  font-size: 0.64rem;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}
.enquiry-card__intro h3 {
  margin: 0 0 2.5rem;
  font-size: clamp(1.45rem, 2.4vw, 1.95rem);
  line-height: 1.02;
  letter-spacing: -0.035em;
  color: #fff;
}
.enquiry-card__intro h3 em {
  font-family: "Playfair Display", serif;
  font-weight: 500;
  font-style: italic;
}
.enquiry-card__intro h3 span {
  color: var(--coral);
}
.enquiry-card__intro p:last-of-type {
  margin: 0 0 1.1rem;
  color: var(--lime);
  font-size: 0.68rem;
  line-height: 1.45;
  max-width: 32ch;
}
.enquiry-form {
  display: grid;
  gap: 1.5rem;
  flex: 1;
  align-content: start;
}
.enquiry-form__row {
  display: grid;
  grid-template-rows: 1fr 1fr;
  gap: 1.5rem;
}
.enquiry-form label {
  display: grid;
  gap: 0.3rem;
  min-width: 0;
}
.enquiry-form__label {
  font-size: 0.62rem;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--paper);
}
.enquiry-form input,
.enquiry-form select,
.enquiry-form .wpcf7-form-control {
  width: 100%;
  padding: 0.5rem 0.85rem;
  border: 1px solid color-mix(in srgb, var(--navy) 12%, transparent);
  background: rgba(255, 255, 255, 0.08);
  color: #fff;
  font-size: 16px;
  line-height: 1.3;
  transition: border-color 0.3s var(--ease), background 0.3s var(--ease), box-shadow 0.3s var(--ease);
}
.enquiry-form select,
.enquiry-form select.wpcf7-form-control {
  appearance: none;
  -webkit-appearance: none;
  padding-right: 2.25rem;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8' fill='none'%3E%3Cpath d='M1 1.5 6 6.5 11 1.5' stroke='%23ffffff' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 0.85rem center;
  background-size: 0.65rem auto;
}
.enquiry-form select:focus,
.enquiry-form select.wpcf7-form-control:focus {
  outline: none;
  border-color: var(--blue);
  background-color: #fff;
  color: var(--navy);
  box-shadow: 0 0 0 3px rgba(67, 150, 201, 0.22);
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8' fill='none'%3E%3Cpath d='M1 1.5 6 6.5 11 1.5' stroke='%23002863' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 0.85rem center;
  background-size: 0.65rem auto;
}
.enquiry-form .wpcf7-form-control-wrap {
  display: block;
  min-width: 0;
  padding-bottom: 1rem;
  box-sizing: border-box;
}
.enquiry-card > .wpcf7 {
  flex: 1;
  display: flex;
  flex-direction: column;
  min-width: 0;
}
.enquiry-card .wpcf7 form.enquiry-form {
  flex: 1;
}
.enquiry-form .hidden-fields-container {
  display: none;
}
.enquiry-form .wpcf7-spinner {
  display: none;
}
.enquiry-form .wpcf7-not-valid-tip {
  margin: 0.15rem 0 -0.85rem;
  color: var(--coral);
  font-size: 0.7rem;
  line-height: 1.2;
  min-height: 0.85rem;
}
.enquiry-form .wpcf7-not-valid-tip.is-cleared {
  visibility: hidden;
}
.enquiry-form .wpcf7-response-output {
  margin: 0.35rem 0 0;
  padding: 0;
  border: 0;
  color: var(--lime);
  font-size: 0.78rem;
  line-height: 1.45;
  min-height: 1.15rem;
}
.enquiry-submit__loader {
  display: none;
  width: 1rem;
  height: 1rem;
  border: 2px solid color-mix(in srgb, var(--navy) 22%, transparent);
  border-top-color: var(--navy);
  border-radius: 50%;
  flex-shrink: 0;
  animation: enquiry-submit-spin 0.7s linear infinite;
}
 
.enquiry-submit.is-loading .enquiry-submit__loader {
  display: inline-block;
}
.enquiry-form .wpcf7-response-output.wpcf7-validation-errors,
.enquiry-form .wpcf7-response-output.wpcf7-mail-sent-ng {
  color: var(--coral);
}
.enquiry-form select option {
  color: var(--navy);
  background: #fff;
}
.enquiry-form input::placeholder {
  color: #9aa3ac;
}
.enquiry-form input:hover,
.enquiry-form select:hover,
.enquiry-form .wpcf7-form-control:hover {
  border-color: color-mix(in srgb, var(--navy) 24%, transparent);
}
.enquiry-form input:focus,
.enquiry-form .wpcf7-form-control:not(select):focus {
  outline: none;
  border-color: var(--blue);
  background-color: #fff;
  color: var(--navy);
  box-shadow: 0 0 0 3px rgba(67, 150, 201, 0.22);
}
.enquiry-form input[aria-invalid="true"],
.enquiry-form select[aria-invalid="true"],
.enquiry-form .wpcf7-not-valid {
  border-color: var(--coral);
}
.enquiry-form__error {
  min-height: 0.85rem;
  color: var(--coral);
  font-size: 0.7rem;
  line-height: 1.2;
}
.enquiry-submit {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.55rem;
  width: 100%;
  margin-top: 0.25rem;
  min-height: 2.85rem;
  padding: 0.75rem 1.25rem;
  border-radius: 999px;
  background: var(--paper);
  color: var(--navy);
  font-size: 0.8rem;
  font-weight: 700;
  letter-spacing: 0.02em;
  transition: transform 0.35s var(--ease), background 0.35s var(--ease), gap 0.35s var(--ease);
}
.enquiry-submit__icon {
  transition: transform 0.35s var(--ease);
}
.enquiry-submit:hover,
.enquiry-submit:focus-visible {
  background: #fff;
  transform: translateY(-2px);
  gap: 0.75rem;
  outline: none;
}
.enquiry-submit:hover .enquiry-submit__icon,
.enquiry-submit:focus-visible .enquiry-submit__icon {
  transform: translateX(3px);
}
.enquiry-submit:focus-visible {
  box-shadow: 0 0 0 3px rgba(67, 150, 201, 0.35);
}
.form-success {
  display: none;
  margin: 0.15rem 0 0;
  color: #3d6b4f;
  font-size: 0.78rem;
}
.form-success.visible {
  display: block;
}

.parent-resources {
  grid-area: resources;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.75rem 1.25rem;
  padding-top: 0.35rem;
  border-top: 1px solid rgba(255, 255, 255, 0.12);
}
.parent-resources__label {
  margin: 0;
  color: rgba(255, 255, 255, 0.5);
  font-size: 0.62rem;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  white-space: nowrap;
}
.parent-resources__grid {
  display: flex;
  flex-wrap: wrap;
  gap: 0.45rem;
  flex: 1;
}
.parent-resource {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  padding: 0.45rem 0.8rem;
  border-radius: 999px;
  border: 1px solid rgba(255, 255, 255, 0.14);
  background: rgba(255, 255, 255, 0.05);
  color: #fff;
  font-size: 0.78rem;
  font-weight: 650;
  letter-spacing: -0.01em;
  transition: transform 0.35s var(--ease), border-color 0.3s var(--ease), background 0.35s var(--ease);
}
.parent-resource__go {
  color: var(--lime);
  font-size: 0.85rem;
  transition: transform 0.35s var(--ease);
}
.parent-resource:hover,
.parent-resource:focus-visible {
  transform: translateY(-2px);
  border-color: rgba(201, 220, 80, 0.45);
  background: rgba(67, 150, 201, 0.16);
  outline: none;
}
.parent-resource:hover .parent-resource__go,
.parent-resource:focus-visible .parent-resource__go {
  transform: translate(2px, -2px);
}

@media (hover: hover) and (pointer: fine) {
  .adm-journey.is-hover-enabled .adm-stage:hover {
    background: color-mix(in srgb, var(--adm-accent) 12%, transparent);
  }
  .adm-journey.is-hover-enabled .adm-stage:hover .adm-stage__panel {
    grid-template-rows: 1fr;
  }
  .adm-journey.is-hover-enabled .adm-stage:hover .adm-stage__copy {
    opacity: 1;
    transform: none;
    padding-bottom: 1.05rem;
  }
  .adm-journey.is-hover-enabled .adm-stage:hover .adm-stage__icon {
    transform: scale(1.04);
  
  }
  .adm-journey.is-hover-enabled .adm-stage:hover .adm-stage__more {
    color: rgba(255, 255, 255, 0.9);
    gap: 0.5rem;
  }
  .adm-journey.is-hover-enabled .adm-stage:hover .adm-stage__more span {
    transform: translateX(3px);
  }
}

@media (prefers-reduced-motion: reduce) {
  .admissions-intro__pulse,
  .adm-stage,
  .adm-stage__icon,
  .adm-stage__panel,
  .adm-stage__copy,
  .adm-stage__more,
  .adm-stage__more span,
  .enquiry-submit,
  .enquiry-submit__icon,
  .parent-resource,
  .parent-resource__go {
    animation: none !important;
    transition: none !important;
  }
  .enquiry-submit,
  .enquiry-submit__icon,
  .parent-resource,
  .parent-resource__go,
  .adm-stage__icon,
  .adm-stage__more span,
  .adm-stage__copy {
    transform: none !important;
  }
  .adm-stage__panel {
    grid-template-rows: 0fr;
  }
  .adm-stage.is-active .adm-stage__panel {
    grid-template-rows: 1fr;
  }
  .adm-stage.is-active .adm-stage__copy {
    opacity: 1;
    padding-bottom: 1.05rem;
  }
}

/* footer */

.footer-big-link {
  position: relative;
  display: block;
  height: clamp(3rem, 4.6vw, 5rem);
  overflow: hidden;
  border-bottom: 1px solid rgba(255, 255, 255, 0.3);
  font-size: clamp(1rem, 5vw, 4rem);
  font-weight: 600;
  line-height: 1;
}
.footer-big-link span {
  display: block;
  transition: transform 0.6s var(--ease);
}
.footer-big-link span:last-child {
  color: var(--lime);
}
.footer-big-link:hover span {
  transform: translateY(-100%);
}

/* fees structure ? standalone section */
.fees-structure {
  padding: clamp(4.5rem, 8vw, 8.5rem) 0;
  overflow: hidden;
  background: var(--cream);
}
.fees-head {
  display: grid;
  grid-template-columns: minmax(0, 1.35fr) minmax(14rem, 0.85fr);
  gap: clamp(1.5rem, 4vw, 5rem);
  align-items: end;
  margin-bottom: clamp(1.75rem, 3.5vw, 2.5rem);
}
.fees-head h2 {
  margin: 0.85rem 0 0;
  font-size: clamp(2.6rem, 5.8vw, 5.6rem);
  line-height: 0.9;
  letter-spacing: -0.055em;
  color: var(--navy);
}

.fees-head h2 em {
  font-family: "Playfair Display", serif;
  font-weight: 500;
  font-style: italic;
}

.fees-head h2 span {
  color: var(--coral);
}
.fees-head > p {
  margin: 0;
  max-width: 50ch;
  justify-self: start;
  font-size: 0.95rem;
  line-height: 1.55;
}
.fees-toolbar {
  display: flex;
  flex-wrap: wrap;
  gap: 0.65rem;
  margin-bottom: clamp(1.75rem, 3.5vw, 2.5rem);
}
.fees-toolbar button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 2.85rem;
  padding: 0.65rem 1.2rem;
  border: 1px solid rgba(16, 41, 66, 0.22);
  border-radius: 999px;
  color: var(--navy);
  background: rgba(255, 255, 255, 0.55);
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 0.01em;
  transition: color 0.25s var(--ease), background 0.25s var(--ease),
    border-color 0.25s var(--ease), transform 0.25s var(--ease);
}
.fees-toolbar button[aria-selected="true"] {
  color: #fff;
  background: var(--navy);
  border-color: var(--navy);
}
@media (hover: hover) and (pointer: fine) {
  .fees-toolbar button:hover {
    border-color: var(--navy);
  }
  .fees-toolbar button[aria-selected="true"]:hover {
    transform: translateY(-1px);
  }
}
.fees-panel {
  display: grid;
  grid-template-columns: minmax(0, 0.95fr) minmax(0, 1.15fr);
  gap: clamp(2.25rem, 6vw, 6.5rem);
  align-items: stretch;
  min-height: 0;
  padding: clamp(2rem, 4vw, 3rem) 0 clamp(0.25rem, 1vw, 0.75rem);
  border-top: 1px solid var(--line);
}
.fees-panel.is-switching .fees-spotlight,
.fees-panel.is-switching .fees-breakdown {
  opacity: 0;
  transform: translateY(10px);
}
.fees-spotlight,
.fees-breakdown {
  transition: opacity 0.35s var(--ease), transform 0.35s var(--ease);
}
.fees-spotlight {
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  align-self: end;
  gap: 0;
  min-width: 0;
  padding: 0;
  border: 0;
}
.fees-stage-name {
  margin: 0 0 1.35rem;
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--blue);
}
.fees-stage-name [data-fees-index] {
  margin-right: 0.45rem;
  color: var(--blue);
}
.fees-spotlight-label {
  margin: 0;
  font-size: 0.7rem;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: #65717c;
}
.fees-amount {
  margin: 0.45rem 0 0.85rem;
  font-size: clamp(3rem, 7.5vw, 5.75rem);
  font-weight: 600;
  line-height: 0.9;
  letter-spacing: -0.055em;
  color: var(--navy);
}
.fees-amount-note {
  margin: 0;
  color: #65717c;
  font-size: 0.7rem;
  line-height: 1.45;
}
.fees-breakdown {
  list-style: none;
  display: grid;
  margin: 0;
  padding: 0;
  min-width: 0;
  align-content: start;
  align-self: start;
}
.fees-breakdown li {
  display: grid;
  grid-template-columns: minmax(7rem, 10.5rem) minmax(0, 1fr);
  gap: clamp(1rem, 2.5vw, 2rem);
  align-items: start;
  padding: 1.05rem 0;
  border-bottom: 1px solid var(--line);
  background: transparent;
  transition: none;
}
.fees-breakdown li:first-child {
  border-top: 1px solid var(--line);
}
.fees-breakdown span {
  min-width: 0;
  color: var(--navy);
  font-size: 0.95rem;
  font-weight: 400;
  line-height: 1.45;
}
.fees-breakdown strong {
  min-width: 0;
  font-size: 0.95rem;
  font-weight: 700;
  text-align: right;
  color: var(--navy);
  letter-spacing: -0.01em;
  line-height: 1.45;
  white-space: normal;
  overflow-wrap: break-word;
  word-break: normal;
  hyphens: auto;
}
.fees-foot {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 1.25rem 2.5rem;
  margin-top: clamp(1.75rem, 3.5vw, 2.75rem);
  padding-top: 1.65rem;
  border-top: 1px solid var(--line);
}
.fees-foot p {
  margin: 0;
  max-width: 52ch;
  color: #55616b;
  font-size: 0.84rem;
  line-height: 1.55;
}
.fees-foot .under-link {
  flex: 0 0 auto;
  font-weight: 700;
}

@media (max-width: 1199px) and (min-width: 992px) {
  .fees-panel {
    gap: clamp(1.75rem, 4vw, 4rem);
  }

  .fees-breakdown li {
    grid-template-columns: 1fr;
    gap: 0.4rem;
    padding: 0.95rem 0;
  }

  .fees-breakdown strong {
    text-align: left;
  }
}

@media (max-width: 991px) {
  .fees-panel {
    gap: clamp(1.75rem, 4vw, 2.75rem);
  }

  .fees-spotlight {
    align-self: start;
    padding-bottom: clamp(1.25rem, 3vw, 1.75rem);
    margin-bottom: 0;
    border-bottom: 1px solid var(--line);
  }

  .fees-breakdown li {
    grid-template-columns: 1fr;
    gap: 0.4rem;
    padding: 0.95rem 0;
  }

  .fees-breakdown strong {
    text-align: left;
  }
}

/* reveal */
[data-reveal] {
  opacity: 100%;
}

[data-reveal].revealed {
  opacity: 100%;
  transform: none;
}

/* Pinned/scroll-jacked sections (runway, sticky-camera, showcase/facet
   tracks, framework-intro) rely on precise scroll-position math that fights
   iOS/Android momentum scrolling and has no mouse-wheel deltas to key off.
   Disable them for any touch/no-hover pointer (covers iPad landscape at
   1024px and larger iPads like Air/Pro at 1180-1366px, present and future)
   and, as a fallback, for any narrow desktop window down to 1024px. */
@media (max-width: 1024px), (hover: none) and (pointer: coarse) {
  .runway,
  .facet-runway,
  .motion-runway {
    height: auto !important;
  }
  .chapter-overlap__base {
    position: relative;
    top: auto;
  }
  .chapter-overlap__depth {
    transform: none;
    opacity: 1;
    will-change: auto;
  }
  .chapter-overlap__hold {
    display: none;
  }
  .chapter-overlap__cover {
    box-shadow: 0 -16px 36px rgba(16, 41, 66, 0.05);
  }
  .chapter-overlap--campus .chapter-overlap__base {
    position: -webkit-sticky;
    position: sticky;
    top: var(--sticky-top, 0px);
  }
  .chapter-overlap--campus .chapter-overlap__depth {
    will-change: transform, opacity;
  }
  .chapter-overlap--campus .chapter-overlap__hold {
    display: block;
    height: clamp(4.5rem, 16vh, 9rem);
    background: linear-gradient(180deg, #001433 0%, var(--navy) 100%);
  }
  .chapter-overlap--campus .chapter-overlap__cover {
    box-shadow: 0 -28px 64px rgba(0, 8, 22, 0.32);
  }
  .sticky-camera {
    position: relative;
    height: auto;
    min-height: 0;
    overflow: visible;
  }
  .showcase-track,
  .facet-track,
  .motion-track {
    width: auto;
    display: grid;
    transform: none !important;
  }
  .showcase-track > article {
    width: auto;
    height: auto;
    min-height: 65svh;
  }
  .motion-slide {
    width: auto;
    height: auto;
    min-height: min(100svh, 48rem);
    min-height: min(100dvh, 48rem);
    grid-template-columns: 1fr;
  }
  .showcase-card {
    min-height: 70svh !important;
  }
  .showcase-end-panel,
  .showcase-intro-panel {
    padding: 4rem var(--pad);
  }
  .runway-counter {
    display: none;
  }
  .manifesto {
    min-height: 0;
  }
  .manifesto-runway {
    height: auto;
    min-height: 0;
    padding: 0;
  }
  .manifesto-camera {
    position: relative;
    height: auto;
    min-height: 0;
    display: block;
    overflow: hidden;
  }
  .manifesto-camera > .container {
    height: auto;
    display: block;
    padding-top: clamp(7rem, 13vw, 13rem);
    padding-bottom: clamp(7rem, 13vw, 13rem);
  }
  .manifesto-title,
  .manifesto-body {
    transform: none !important;
    opacity: 1 !important;
  }
  [data-manifesto-wire] {
    translate: none !important;
  }
  .framework-intro {
    position: relative;
    inset: auto;
    height: auto;
    display: block;
    margin: 0;
    border-radius: 0;
    box-shadow: 0 -22px 48px rgba(7, 27, 45, 0.1);
    transform: none !important;
  }
  .framework-intro > .container {
    transform: none !important;
  }
}

@media (max-width: 991px) {
  .cursor,
  .scroll-progress,
  .desktop-nav,
  .nav-cta,
  .nav-veil {
    display: none;
  }
  .menu-button {
    display: block;
    justify-self: end;
  }
  .site-header__bar {
    grid-template-columns: auto 1fr;
  }
  .hero {
    height: auto;
    min-height: 100svh;
    padding-top: 9.4rem;
  }
  .hero-headline {
    font-size: clamp(2.7rem, 10vw, 4.6rem);
    line-height: 0.9;
    max-width: none;
  }
  .hero-line--two {
    padding-left: clamp(0.2rem, 4vw, 1.75rem);
  }
  .hero-line--three .hero-line__inner {
    white-space: normal;
  }
  .hero-line em {
    font-size: 1.06em;
  }
  .hero-intro {
    position: relative;
    right: auto;
    bottom: auto;
    width: min(100%, 35rem);
    margin-top: 2rem;
  }
  .news-ticker {
    gap: 0.55rem;
  }
  .news-ticker__item {
    font-size: 0.7rem;
    padding: 0 1.1rem;
  }
  .hero-dispatch {
    top: auto;
    right: 0;
    bottom: max(1.1rem, env(safe-area-inset-bottom));
    align-items: flex-end;
    max-width: min(calc(100vw - 0.8rem), 36rem);
    transform: none;
  }
  .hero-dispatch__panel {
    width: min(26rem, calc(100vw - 4.2rem));
  }
  .hero-dispatch.is-min .hero-dispatch__tab {
    min-height: 5.6rem;
  }
  .hero-actions {
    align-items: flex-start;
  }
  .concept-tag {
    position: relative;
    display: block;
    right: auto;
    bottom: auto;
    margin-top: 1rem;
  }
  .framework-intro {
    position: relative;
    inset: auto;
    height: auto;
    display: block;
    margin: 0;
    border-radius: 0;
    box-shadow: none;
  }
  .manifesto-body,
  .intro-grid,
  .benefit-head,
  .community-layout,
  .wall-intro__grid,
  .how-grid,
  .fees-head,
  .fees-panel {
    grid-template-columns: 1fr;
  }
  .admissions-shell {
    grid-template-columns: 1fr;
    grid-template-areas:
      "story"
      "form"
      "resources";
    min-height: 0;
  }
  .admissions {
    min-height: 0;
    padding: clamp(5rem, 10vw, 6.5rem) 0 clamp(2.5rem, 5vw, 3.5rem);
  }
  .enquiry-card {
    position: relative;
    top: auto;
  }
  .parent-resources {
    flex-direction: column;
    align-items: flex-start;
  }
  .parent-resources__grid {
    width: 100%;
  }
  .footer-signature {
    grid-template-columns: 1fr;
    gap: 1.75rem;
  }
  .footer-signature__aside {
    justify-items: start;
    display: flex;
    gap: 4rem;
  }

 .footer-signature__logos{
    display: flex;
    gap: 4rem;
 }

  .footer-links {
    grid-template-columns: 1fr;
    gap: 2rem;
  }
  .gems-values__grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
  .footer-menu {
    grid-column: 1 / -1;
  }
  .footer-contact {
    justify-items: start;
    text-align: left;
  }
  .footer-social {
    justify-content: flex-start;
  }
  .community-intro {
    position: static;
  }
  .community-faces {
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 0.5rem;
    max-width: none;
  }
  .community-face {
    grid-template-columns: 1fr;
    gap: 0.55rem;
    padding: 0.45rem;
    text-align: center;
    justify-items: center;
    min-height: 0;
  }
  .community-face__photo {
    width: 100%;
    max-width: 4.25rem;
    aspect-ratio: 1;
    height: auto;
  }
  .community-face__meta strong {
    font-size: 0.78rem;
  }
  .community-face__meta span {
    display: none;
  }
  .community-lede {
    max-width: 36rem;
  }
  .proof-stats {
    grid-template-columns: 1fr;
  }
  .proof-stats article {
    border-right: 0;
    border-bottom: 1px solid rgba(255, 255, 255, 0.2);
  }
  .intro-copy {
    margin-top: 2rem;
  }
  .facet-slide,
  .motion-slide {
    width: auto;
    height: auto;
    min-height: 100svh;
    grid-template-columns: 1fr;
    padding: 4rem var(--pad);
  }
  .motion-slide {
    padding: 0;
  }
  .facet-visual {
    height: 42vh;
    min-height: 300px;
  }
  .facet-copy h2 {
    font-size: clamp(3.5rem, 12vw, 7rem);
  }
  .learning-head,
  .curriculum-copy,
  .motion-intro__lead,
  .life-intro__grid {
    grid-template-columns: 1fr;
  }
  .learning-intro {
    padding-bottom: 0;
  }
  .experiences {
    padding-bottom: clamp(1.5rem, 4vw, 2.5rem);
  }
  .motion-slide {
    grid-template-columns: 1fr;
    min-height: min(100svh, 48rem);
    min-height: min(100dvh, 48rem);
    height: auto;
  }
  .motion-slide__media {
    min-height: clamp(16rem, 46vh, 22rem);
    height: auto;
  }
  .motion-slide__body {
    padding: clamp(1.75rem, 5vw, 2.5rem);
    height: auto;
  }
  .motion-slide__body h3 {
    max-width: none;
    font-size: clamp(1.85rem, 6.5vw, 2.6rem);
  }
  .motion-slide__body > p {
    max-width: none;
  }
  .life-stack.is-static .life-feature {
    height: 100vh;
    height: 100svh;
    height: 100dvh;
    min-height: 100vh;
  }
  .life-feature__panel {
    width: min(24rem, calc(100% - 2.3rem));
  }
  .life-feature__panel h3 {
    font-size: clamp(1.85rem, 7vw, 2.6rem);
  }
  .campus-hero {
    min-height: clamp(15rem, 62vw, 24rem);
  }
  .campus-hero__frame {
    inset: 0.75rem;
  }
  .result-metrics {
    grid-template-columns: 1fr;
  }
  .result-metrics article {
    min-height: auto;
    border-right: 0;
    border-bottom: 1px solid var(--line);
  }

.testimonials.community {
   padding: clamp(4rem, 12vw, 11rem) 0 clamp(4rem, 9vw, 8rem);
}

  .testimonial-stage {
    min-height: clamp(34rem, 145vw, 46rem);
  }
  .testimonial {
    grid-template-columns: 1fr;
    grid-template-rows: auto auto;
    gap: 1.35rem;
    align-content: start;
   
  }
  .testimonial-media {
    max-height: none;
    width: 100%;
  }
  .testimonial blockquote > p:not(.testimonial-theme) {
    max-width: none;
  }
  .wall-intro {
    margin-bottom: 2rem;
  }
  .how-title h2 {
    text-align: left;
  }
  .how-image {
    max-width: 100%;
  }
  .how-copy {
    padding-top: 0;
  }
}
@media (max-height: 500px) and (orientation: landscape) {
  .hero {
    height: auto;
    min-height: 0;
    padding-top: 5.5rem;
  }
  .hero-label {
    top: 4.5rem;
  }
}
@media (max-width: 860px) {
  .recognition-grid {
    grid-template-columns: repeat(2, 1fr);
  }
  .gems-values__grid {
    grid-template-columns: 1fr 1fr;
  }
  .enquiry-form__row {
    grid-template-columns: 1fr;
  }
  .adm-stage__trigger {
    gap: 0.7rem;
    padding: 0.9rem 0;
  }
  .adm-stage__copy {
    padding-left: calc(2.45rem + 0.7rem);
  }
  .stage-rail {
    grid-template-columns: repeat(3, 1fr);
    row-gap: 0.5rem;
  }
  .fees-spotlight {
    padding-top: 0;
    padding-bottom: 0;
    margin-bottom: 0;
    border-bottom: 0;
  }
  .fees-breakdown li {
    grid-template-columns: 1fr;
    gap: 0.4rem;
    padding: 0.95rem 0;
  }
  .fees-breakdown strong {
    text-align: left;
  }
  .fees-head > p {
    max-width: 42ch;
    margin-top: 1rem;
    justify-self: start;
  }
}
@media (max-width: 680px) {
  :root {
    --pad: 1.15rem;
  }
  .site-header__bar {
    min-height: 72px;
    padding-block: 0.8rem;
  }
  .logo {
    width: 94px;
  }
  .hero-label {
    top: 5.4rem;
  }
  .hero-actions {
    align-items: flex-start;
    gap: 1rem;
  }
  .round-link {
    width: 76px;
    height: 76px;
  }
  .hero-cta-group {
    flex-direction: column;
    align-items: flex-start;
    gap: 1rem;
  }
  .learning-head h2,
  .motion-intro__lead h2 {
    font-size: clamp(3.2rem, 12vw, 5rem);
  }
  .experience-grid {
    grid-template-columns: 1fr;
  }
  .experience-card {
    grid-column: auto;
  }
  .life-intro__title h2 {
    font-size: clamp(2.8rem, 14vw, 4.4rem);
  }
  .life-stack.is-static .life-feature {
    height: 100vh;
    height: 100svh;
    height: 100dvh;
    min-height: 100vh;
  }
  .life-feature__panel h3 {
    font-size: clamp(1.7rem, 7vw, 2.2rem);
  }
  .stage-rail {
    grid-template-columns: 1fr;
  }
  .stage-rail li {
    display: grid;
    grid-template-columns: 2.5rem 1fr;
    align-items: center;
    padding: 0.8rem 0;
    border-top: 0;
    border-bottom: 1px solid var(--line);
  }
  .stage-rail li:after {
    inset: 0 auto 0 0;
    width: 3px;
    height: auto;
    transform: scaleY(0);
    transform-origin: top;
  }
  .stage-rail li.active {
    padding-left: 0.8rem;
    transform: none;
  }
  .stage-rail li.active:after {
    transform: scaleY(1);
  }
  .stage-rail strong {
    margin-top: 0;
  }
  .recognition-grid,
  .footer-links {
    grid-template-columns: 1fr;
  }
  .footer-menu {
    grid-template-columns: 1fr;
    gap: 1.75rem;
  }
  .gems-values__grid {
    grid-template-columns: 1fr;
  }
  .gems-values__heading {
    text-align: left;
    max-width: 28ch;
  }
  .footer-social {
    justify-content: flex-start;
  }
  .recognition-grid {
    gap: 2rem;
  }
  .admissions-intro h2 {
    font-size: clamp(2.6rem, 12vw, 3.8rem);
  }
  .enquiry-card {
    padding: 1.25rem 1.1rem 1.4rem;
  }
  .adm-stage__title {
    font-size: 1.05rem;
  }
  .adm-stage__more {
    font-size: 0.68rem;
  }
  .fees-structure {
    padding: clamp(4.5rem, 12vw, 8rem) 0;
  }
  .fees-toolbar button {
    flex: 1 1 calc(50% - 0.65rem);
  }
  .fees-foot {
    flex-direction: column;
    align-items: flex-start;
  }
  .fees-breakdown li {
    grid-template-columns: 1fr;
    gap: 0.4rem;
    padding: 0.9rem 0;
  }
  .fees-breakdown strong {
    text-align: left;
    font-size: 0.92rem;
  }
  .fees-breakdown span {
    font-size: 0.92rem;
  }
  .section-divider {
    padding-block: 0.15rem 0.65rem;
  }
  .section-divider__accent {
    width: 1.85rem;
  }
  .footer-signature__aside {
    justify-items: start;
    display: grid;
    gap: 2rem;
  }

 .footer-signature__logos{
    display: flex;
    gap: 2rem;
 }

  .footer-social {
    justify-content: flex-start;
  }
  .footer-bottom {
    flex-direction: column;
  }
}
@media (max-width: 380px) {
  :root {
    --pad: 1rem;
  }
  .hero-headline {
    font-size: clamp(2.35rem, 12vw, 3.4rem);
  }
  .facet-copy h2 {
    font-size: clamp(2.4rem, 14vw, 7rem);
  }
  .proof-stats strong {
    font-size: clamp(2.75rem, 8vw, 8rem);
  }
  .fees-toolbar button {
    flex: 1 1 100%;
  }
  .fees-amount {
    font-size: clamp(2.4rem, 13vw, 3.6rem);
  }
  .facet-visual > span {
    font-size: clamp(5.5rem, 20vw, 20rem);
  }
  .result-metrics strong {
    font-size: clamp(3.25rem, 10vw, 10rem);
  }
  .round-link {
    width: 68px;
    height: 68px;
  }
  .hero-cta-group {
    flex-wrap: wrap;
  }
  .news-ticker__live span:last-child {
    display: none;
  }
  .news-ticker {
    grid-template-columns: auto minmax(0, 1fr);
  }
  .news-ticker__pause {
    display: none;
  }
  .hero-dispatch__panel {
    grid-template-columns: minmax(0, 1fr);
    width: min(22rem, calc(100vw - 3.8rem));
    padding-right: 0.85rem;
  }
  .hero-dispatch__stage {
    grid-column: 1;
    grid-template-columns: minmax(0, 1fr);
    gap: 0.4rem;
  }
  .hero-dispatch__tools {
    grid-column: 1;
    grid-row: 2;
    justify-content: flex-end;
  }
  .hero-dispatch__item strong {
    max-width: none;
    font-size: 0.86rem;
  }
  .footer-big-link {
    font-size: clamp(1rem, 8vw, 4rem);
  }
}
@media (prefers-reduced-motion: reduce) {
  html {
    scroll-behavior: auto;
  }
  *,
  *::before,
  *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
  }
  .hero-video {
    display: none;
  }
  .hero-bg {
    background: center / cover no-repeat url("../assets/photos/hero-brilliance.png");
  }
  .hero-kicker__rule,
  .hero-line__inner,
  .hero-kicker__text .char {
    opacity: 1 !important;
    transform: none !important;
    transition: none !important;
  }
  .news-ticker__rail,
  .news-ticker__pulse {
    animation: none !important;
  }
  .nav-mega,
  .nav-item.is-open .nav-mega,
  .nav-mega__link,
  .nav-item.is-open .nav-mega__link,
  .nav-trigger::after,
  .nav-veil,
  .menu-overlay,
  .menu-acc__panel,
  .menu-acc__inner a {
    animation: none !important;
    transition: none !important;
    transform: none !important;
  }
  .nav-mega {
    opacity: 0;
  }
  .nav-item.is-open .nav-mega {
    opacity: 1;
    visibility: visible;
  }
  .nav-item.is-open .nav-mega__link {
    opacity: 1;
  }
  .hero-dispatch,
  .hero.is-set ~ .hero-dispatch,
  .hero-dispatch.is-ready {
    opacity: 1 !important;
    transform: none !important;
    transition: none !important;
  }
  .hero-dispatch__pulse,
  .hero-dispatch__progress i,
  .hero-dispatch__item,
  .hero-dispatch__track,
  .hero-dispatch__panel,
  .hero-dispatch__tab {
    animation: none !important;
    transition: none !important;
  }
  .footer-social__link,
  .footer-social__link:hover,
  .footer-social__link:focus-visible {
    transition: none !important;
    transform: none !important;
  }
  [data-reveal] {
    opacity: 1;
    transform: none;
  }
  .life-feature,
  .life-feature__media img,
  .life-feature__shade,
  .life-feature__panel,
  .life-feature__depth {
    transition: none;
    transform: none;
    filter: none;
  }
  .life-feature__depth {
    opacity: 0;
  }
  .life-panel__tags li,
  .life-panel.is-active .life-panel__tags li {
    animation: none;
  }
  .runway,
  .manifesto-runway {
    height: auto !important;
    min-height: 0;
  }
  .chapter-overlap__base {
    position: relative;
    top: auto;
  }
  .chapter-overlap__depth {
    transform: none !important;
    opacity: 1 !important;
    will-change: auto;
  }
  .chapter-overlap__hold {
    display: none;
  }
  .chapter-overlap__cover {
    box-shadow: none;
  }
  .sticky-camera,
  .manifesto-camera {
    position: relative;
    height: auto;
    min-height: 0;
    overflow: visible;
  }
  .manifesto-runway {
    padding: 0;
  }
  .manifesto-camera > .container {
    height: auto;
    display: block;
    padding-top: clamp(7rem, 13vw, 13rem);
    padding-bottom: clamp(7rem, 13vw, 13rem);
  }
  .manifesto-title,
  .manifesto-body {
    transform: none !important;
    opacity: 1 !important;
  }
  .framework-intro {
    position: relative;
    inset: auto;
    height: auto;
    display: block;
    margin: 0;
    border-radius: 0;
    box-shadow: none;
    transform: none !important;
  }
  .framework-intro > .container {
    transform: none !important;
  }
  .showcase-track,
  .facet-track,
  .motion-track {
    width: auto;
    display: grid;
    transform: none !important;
  }
  .showcase-track > article,
  .facet-slide,
  .motion-slide {
    width: auto;
    height: auto;
    min-height: 80svh;
  }
  .runway-counter {
    display: none;
  }
}

/* ================================================================
   About page
   ================================================================ */
.about-page .scroll-progress {
  mix-blend-mode: normal;
  background: rgba(0, 43, 99, 0.12);
}
.about-page .scroll-progress span {
  background: var(--coral);
}
.about-hero {
  position: relative;
  min-height: max(100svh, 640px);
  padding: 9.2rem var(--pad) 3rem;
  padding-left: max(var(--pad), env(safe-area-inset-left));
  padding-right: max(var(--pad), env(safe-area-inset-right));
  color: #fff;
  overflow: hidden;
}
.about-hero__bg {
  position: absolute;
  inset: 0;
  z-index: 0;
}
.about-hero__bg img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 0%;
}
.about-hero__shade {
  position: absolute;
  inset: 0;
  z-index: 1;
  background:
    linear-gradient(105deg, rgba(0, 43, 99, 0.72) 0%, rgba(0, 43, 99, 0.48) 45%, rgba(15, 38, 67, 0.62) 100%),
    linear-gradient(180deg, rgba(0, 20, 48, 0.55) 0%, transparent 35%, rgba(0, 43, 99, 0.65) 100%);
}
.about-hero__inner {
  position: relative;
  z-index: 2;
  display: grid;
  grid-template-rows: minmax(0, 1.15fr) minmax(14rem, 0.55fr);
  align-items: center;
  gap: 2.5rem 3rem;
  min-height: calc(100svh - 12rem);
}
.about-page .about-hero__title,
.about-hero__title {
  max-width: 16ch;
  font-size: clamp(2rem, 5vw, 5.40rem);
  font-weight: 600;
  line-height: 1;
  letter-spacing: -0.055em;
}
.about-hero__title em {
  font-family: "Playfair Display", serif;
  font-weight: 500;
  font-style: italic;
}
.about-hero__title span,
.about-hero__title .dot {
  color: var(--coral);
}
.about-hero__aside {
  align-self: start;
  justify-self: start;
  max-width: 60ch;
  color: rgba(255, 255, 255, 0.82);
  font-size: 0.92rem;
  font-weight: 500;
  line-height: 1.55;
}
.about-hero__scroll {
  position: absolute;
  left: 0;
  bottom: 0;
}

.about-chapter {
  position: relative;
  isolation: isolate;
  padding: clamp(4.5rem, 9vw, 7.5rem) 0;
  overflow: hidden;
}
.about-chapter--dark {
  background: var(--navy);
  color: #fff;
}
.about-chapter--light {
  background: var(--cream);
  color: var(--navy);
}
.about-chapter__ghost {
  position: absolute;
  z-index: 0;
  top: clamp(1rem, 3vw, 2.5rem);
  right: max(var(--pad), env(safe-area-inset-right));
  color: currentColor;
  opacity: 0.06;
  font-size: clamp(8rem, 22vw, 18rem);
  font-weight: 600;
  line-height: 0.82;
  letter-spacing: -0.06em;
  pointer-events: none;
  user-select: none;
}
.about-chapter__grid {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: 1.1fr 0.9fr;
  gap: clamp(2rem, 8vw, 6rem);
  align-items: center;
}

.about-chapter__grid--reverse{
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: 0.9fr 1.1fr;
  gap: clamp(2rem, 8vw, 6rem);
  align-items: center;
}

.about-chapter__grid--reverse .about-chapter__copy {
  order: 2;
}
.about-chapter__grid--reverse .about-chapter__media {
  order: 1;
}
.about-chapter__title {
  max-width: 60ch;
  margin-bottom: 2rem;
  font-size: clamp(2.4rem, 5vw, 4.2rem);
  font-weight: 600;
  line-height: 1;
  letter-spacing: -0.055em;
}
.about-chapter__title--light {
  color: #fff;
}
.about-chapter__title em {
  font-family: "Playfair Display", serif;
  font-weight: 500;
  font-style: italic;
}
.about-chapter__media {
  margin: 0;
  overflow: hidden;
  box-shadow: 0 28px 56px rgba(0, 10, 24, 0.22);
}
.about-chapter__media img {
  width: 100%;
  height: 100%;
  min-height: clamp(18rem, 38vw, 60rem);
  object-fit: cover;
  transition: transform 1.1s var(--ease);
}
.about-chapter__media:hover img {
  transform: scale(1.03);
}
#vision .about-chapter__media {
  width: 100%;
  max-width: 100%;
  justify-self: center;
}
#vision .about-chapter__media img {
  min-height: clamp(15.3rem, 38vw, 60rem);
}
.about-chapter__actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 1rem 1.4rem;
  margin-top: 1.8rem;
}
.about-chapter__link {
  color: #fff;
  border-color: rgba(255, 255, 255, 0.75);
}
.about-chapter__link span {
  color: var(--lime);
}
.about-prose {
  display: grid;
  gap: 1rem;
  font-size: 0.95rem;
  line-height: 1.58;
  margin-bottom: 2rem;
   max-width: 100% !important;
}
.about-prose--light {
  color: rgba(255, 255, 255, 0.82);
}
.about-prose__label {
  margin-top: 0.6rem;
  color: var(--coral);
  font-size: 0.64rem;
  font-weight: 700;
  letter-spacing: 0.16em;
  text-transform: uppercase;
}
.about-chapter--dark .about-prose__label {
  color: var(--lime);
}
.about-signature {
  display: grid;
  gap: 0.25rem;
  margin-top: 1.6rem;
  padding-top: 1.2rem;
  border-top: 1px solid rgba(255, 255, 255, 0.16);
}
.about-signature strong {
  font-size: 1rem;
  font-weight: 700;
}
.about-signature span {
  color: rgba(255, 255, 255, 0.62);
  font-size: 0.78rem;
  font-weight: 600;
  letter-spacing: 0.02em;
}
.about-welcome__more {
  display: grid;
  grid-template-rows: 0fr;
  transition: grid-template-rows 0.55s var(--ease);
}
.about-welcome__more-inner {
  overflow: hidden;
  display: grid;
  gap: 1rem;
  min-height: 0;
  opacity: 0;
  transition: opacity 0.45s var(--ease);
}
.about-welcome.is-expanded .about-welcome__more {
  grid-template-rows: 1fr;
}
.about-welcome.is-expanded .about-welcome__more-inner {
  opacity: 1;
  transition-delay: 0.06s;
}
.about-welcome__toggle {
  justify-self: start;
  margin-top: 0.15rem;
  padding-bottom: 0.35rem;
  color: #fff;
  border-color: rgba(255, 255, 255, 0.75);
  font-weight: 700;
  font-size: 0.84rem;
  cursor: pointer;
  transition: color 0.25s var(--ease), border-color 0.25s var(--ease);
}
.about-welcome__toggle:hover,
.about-welcome__toggle:focus-visible {
  color: var(--lime);
  border-color: var(--lime);
  outline: none;
}
.about-welcome__toggle-icon {
  color: var(--lime);
  transition: transform 0.35s var(--ease);
}
.about-welcome.is-expanded .about-welcome__toggle-icon {
  transform: rotate(180deg);
}

.about-quote {
  padding: clamp(3.5rem, 8vw, 6rem) var(--pad);
  background: var(--coral);
  color: var(--navy);
}
.about-quote__inner p {
  max-width: 24ch;
  margin: 0 auto;
  font-size: clamp(3.2rem, 6vw, 6rem);
  font-weight: 600;
  line-height: 1;
  letter-spacing: -0.055em;
  text-align: left;
}
.about-quote__inner em {
  font-family: "Playfair Display", serif;
  font-weight: 500;
  font-style: italic;
}

.about-values {
  display: grid;
  gap: 0;
  margin: 1.5rem 0 1.25rem;
  border-top: 1px solid var(--line);
}
.about-value__trigger {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  padding: 0.95rem 0;
  border-bottom: 1px solid var(--line);
  font-size: 1rem;
  font-weight: 700;
  letter-spacing: -0.02em;
  text-align: left;
  transition: color 0.25s var(--ease);
}
.about-value__trigger i {
  font-style: normal;
  color: var(--coral);
  font-size: 1.2rem;
  line-height: 1;
  transition: transform 0.35s var(--ease);
}
.about-value.is-open .about-value__trigger i {
  transform: rotate(45deg);
}
.about-value__trigger:hover,
.about-value__trigger:focus-visible {
  color: var(--blue);
  outline: none;
}
.about-value__panel {
  padding: 0 0 1rem;
  color: rgba(0, 43, 99, 0.78);
  font-size: 0.92rem;
  line-height: 1.55;
}

.about-pillars {
  padding: clamp(4rem, 8vw, 6.5rem) 0;
}
.about-pillars__head {
  max-width: 20ch;
  margin-bottom: 2.5rem;
}
.about-pillars__title {
  font-size: clamp(2.4rem, 5vw, 4rem);
  font-weight: 600;
  line-height: 0.94;
  letter-spacing: -0.055em;
}
.about-pillars__title em {
  font-family: "Playfair Display", serif;
  font-weight: 500;
  font-style: italic;
}
.about-pillars__list {
  display: grid;
  gap: 0;
  border-top: 1px solid var(--line);
}
.about-pillar {
  border-bottom: 1px solid var(--line);
}
.about-pillar__trigger {
  display: grid;
  grid-template-columns: auto 1fr auto;
  align-items: center;
  gap: 1rem 1.25rem;
  width: 100%;
  padding: 1.15rem 0;
  text-align: left;
  transition: color 0.25s var(--ease);
}
.about-pillar__index {
  color: var(--pillar-accent, var(--coral));
  font-size: 0.64rem;
  font-weight: 700;
  letter-spacing: 0.14em;
}
.about-pillar__name {
  font-size: clamp(1.05rem, 2vw, 1.35rem);
  font-weight: 650;
  letter-spacing: -0.03em;
}
.about-pillar__trigger i {
  font-style: normal;
  color: var(--pillar-accent, var(--coral));
  font-size: 1.25rem;
  transition: transform 0.35s var(--ease);
}
.about-pillar.is-open .about-pillar__trigger i {
  transform: rotate(45deg);
}
.about-pillar__trigger:hover,
.about-pillar__trigger:focus-visible {
  color: var(--blue);
  outline: none;
}
.about-pillar__panel {
  display: grid;
  gap: 0.85rem;
  max-width: 72ch;
  padding: 0 0 1.35rem 2.4rem;
  color: rgba(0, 43, 99, 0.78);
  font-size: 0.92rem;
  line-height: 1.58;
}
.about-pillar__partners {
  padding-top: 0.35rem;
  color: rgba(0, 43, 99, 0.62);
  font-size: 0.82rem;
}

/* About ? Campus story (editorial facilities) */
.about-campus-story {
  padding-bottom: clamp(5rem, 10vw, 8rem);
}
.about-campus-story__head {
  max-width: min(70rem, 100%);
  margin-bottom: clamp(3rem, 6vw, 4.5rem);
}
.about-campus-story__lede {
  margin-top: 1.15rem;
  max-width: 48ch;
  font-size: clamp(0.95rem, 1.05vw, 1.05rem);
  line-height: 1.62;
  color: rgba(0, 43, 99, 0.76);
}
.about-campus-story__cta {
  margin-top: 1.35rem;
  width: fit-content;
  color: var(--navy);
  border-color: rgba(0, 43, 99, 0.28);
  transition: color 0.35s var(--ease), border-color 0.35s var(--ease), gap 0.35s var(--ease);
}
.about-campus-story__cta span {
  display: inline-block;
  color: var(--coral);
  transition: transform 0.35s var(--ease), color 0.35s var(--ease);
}
.about-campus-story__cta:hover,
.about-campus-story__cta:focus-visible {
  color: var(--blue);
  border-color: var(--blue);
  gap: 0.9rem;
  outline: none;
}
.about-campus-story__cta:hover span,
.about-campus-story__cta:focus-visible span {
  color: var(--blue);
  transform: translateX(3px);
}
.about-campus-story__stream {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: clamp(1rem, 1.8vw, 1.5rem);
  align-items: stretch;
  margin-bottom: clamp(2.5rem, 5vw, 4rem);
}

.academic-section-head {
  margin-bottom: clamp(2.25rem, 5vw, 3.75rem);
}
.academic-section-head__grid {
  display: grid;
  grid-template-columns: minmax(0, 1.45fr) minmax(0, 1fr);
  gap: clamp(1.5rem, 4vw, 4rem);
  align-items: end;
}
.academic-section-head__title {
  max-width: 14ch;
  margin: 0;
  font-size: clamp(3.2rem, 6vw, 6rem);
  font-weight: 600;
  line-height: 0.94;
  letter-spacing: -0.05em;
}
.academic-section-head__title em {
  font-family: "Playfair Display", serif;
  font-weight: 500;
  font-style: italic;
}
.academic-section-head__copy {
  max-width: 42rem;
  font-size: 0.95rem;
  line-height: 1.58;
}
.academic-section-head__copy p + p {
  margin-top: 1.5rem;
}

.about-campus-story__actions {
  margin-top: 1.35rem;
}
.about-campus-story__actions .under-link {
  color: var(--navy);
  border-color: rgba(0, 43, 99, 0.28);
}
.about-campus-story__actions .under-link span {
  color: var(--coral);
}
@media (max-width: 767px) {
  .about-campus-story__actions {
    flex-direction: column;
    align-items: center;
    gap: 0.85rem 1rem;
  }
  .about-campus-story__actions .pill {
    width: 100%;
    justify-content: center;
    text-align: center;
  }
  .academic-section-head__grid {
    grid-template-columns: 1fr;
  }
}

.about-campus-carousel {
  --campus-gap: clamp(1rem, 1.8vw, 1.5rem);
  --campus-visible: 3;
  margin-bottom: clamp(2.5rem, 5vw, 4rem);
}
.about-campus-carousel__toolbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1.25rem;
  margin-bottom: clamp(1.15rem, 2.2vw, 1.65rem);
}
.about-campus-carousel__meta {
  display: grid;
  gap: 0.55rem;
  min-width: min(100%, 12rem);
  flex: 1 1 auto;
}
.about-campus-carousel__status {
  color: rgba(0, 43, 99, 0.62);
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.14em;
}
.about-campus-carousel__bar {
  position: relative;
  height: 2px;
  overflow: hidden;
  background: rgba(0, 43, 99, 0.12);
}
.about-campus-carousel__bar > span {
  display: block;
  height: 100%;
  width: 0%;
  background: var(--coral);
  transform-origin: left center;
  transition: width 0.35s linear;
}
.about-campus-carousel.is-paused .about-campus-carousel__bar > span,
.about-campus-carousel.is-static .about-campus-carousel__bar > span {
  transition: width 0.45s var(--ease);
}
.about-campus-carousel__nav {
  display: flex;
  align-items: center;
  gap: 0.55rem;
  flex: 0 0 auto;
}
.about-campus-carousel__nav-btn {
  display: grid;
  place-items: center;
  width: 2.85rem;
  height: 2.85rem;
  border: 1px solid rgba(0, 43, 99, 0.22);
  border-radius: 0;
  color: var(--navy);
  background: transparent;
  line-height: 1;
  cursor: pointer;
  transition: color 0.35s var(--ease), border-color 0.35s var(--ease), background 0.35s var(--ease), opacity 0.3s var(--ease);
}
.about-campus-carousel__nav-btn svg {
  display: block;
}
.about-campus-carousel__nav-btn:hover,
.about-campus-carousel__nav-btn:focus-visible {
  color: #fff;
  border-color: var(--coral);
  background: var(--coral);
  outline: none;
}
.about-campus-carousel__nav-btn:disabled {
  opacity: 0.35;
  cursor: default;
  pointer-events: none;
}
.about-campus-carousel__viewport {
  overflow: hidden;
  touch-action: pan-y;
  outline: none;
}
.about-campus-carousel__viewport:focus-visible {
  outline: 2px solid var(--coral);
  outline-offset: 4px;
}
.about-campus-carousel .about-campus-story__track {
  display: flex;
  gap: var(--campus-gap);
  grid-template-columns: none;
  margin-bottom: 0;
  will-change: transform;
  transform: translate3d(0, 0, 0);
  transition: none;
}
.about-campus-carousel.is-paused .about-campus-story__track,
.about-campus-carousel.is-static .about-campus-story__track {
  transition: transform 0.55s var(--ease);
}
.about-campus-carousel .about-campus-card {
  flex: 0 0 calc((100% - (var(--campus-gap) * (var(--campus-visible) - 1))) / var(--campus-visible));
  min-width: 0;
  height: auto;
  opacity: 1;
  transform: none;
  cursor: pointer;
}
.about-campus-carousel .about-campus-card.is-clone {
  pointer-events: none;
}
.about-campus-carousel .about-campus-card:focus-visible {
  outline: 2px solid var(--coral);
  outline-offset: 3px;
}
.about-campus-carousel .about-campus-card.is-active {
  outline: 1px solid rgba(0, 43, 99, 0.14);
  outline-offset: -1px;
  box-shadow: 0 18px 40px rgba(0, 10, 24, 0.12);
}
#facilities {
  scroll-margin-top: calc(5.75rem + env(safe-area-inset-top, 0px));
}
@media (max-width: 1199px) {
  .about-campus-carousel {
    --campus-visible: 2;
  }
}
@media (max-width: 767px) {
  .about-campus-carousel {
    --campus-visible: 1;
  }
}
.about-campus-card {
  display: flex;
  height: 100%;
  opacity: 0;
  transform: translateY(18px);
  transition: opacity 0.75s var(--ease), transform 0.75s var(--ease);
}
.about-campus-card:nth-child(2) {
  transition-delay: 0.06s;
}
.about-campus-card:nth-child(3) {
  transition-delay: 0.12s;
}
.about-campus-card:nth-child(4) {
  transition-delay: 0.18s;
}
.about-campus-card.is-inview {
  opacity: 1;
  transform: translateY(0);
}
.about-campus-card__frame {
  display: flex;
  flex-direction: column;
  width: 100%;
  height: 100%;
  overflow: hidden;
  border: 1px solid var(--line);
  background: #fff;
}
.about-campus-card__media {
  position: relative;
  flex: none;
  margin: 0;
  overflow: hidden;
  aspect-ratio: 4 / 3;
  background: #061428;
}
.about-campus-card__media img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  transition: transform 0.85s var(--ease);
}
.about-campus-card:hover .about-campus-card__media img,
.about-campus-card:focus-within .about-campus-card__media img {
  transform: scale(1.025);
}
.about-campus-card__body {
  display: flex;
  flex: 1;
  flex-direction: column;
  gap: 0.85rem;
  padding: clamp(1.35rem, 2vw, 1.75rem);
}
.about-campus-card__head {
  display: flex;
  align-items: center;
  gap: 0.65rem;
  padding-bottom: 0.85rem;
  border-bottom: 1px solid var(--line);
}
.about-campus-card__index {
  flex: none;
  color: var(--card-accent, var(--coral));
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.14em;
}
.about-campus-card__label {
  margin: 0;
  color: rgba(0, 43, 99, 0.58);
  font-size: 0.62rem;
  font-weight: 700;
  letter-spacing: 0.12em;
  line-height: 1.35;
  text-transform: uppercase;
}
.about-campus-card__title {
  margin: 0;
  font-size: clamp(1.05rem, 1.15vw, 1.25rem);
  font-weight: 600;
  line-height: 1.12;
  letter-spacing: -0.035em;
  color: var(--navy);
}
.about-campus-card__title em {
  font-family: "Playfair Display", serif;
  font-weight: 500;
  font-style: italic;
  color: var(--card-accent, var(--coral));
}
.about-campus-card__title span {
  color: var(--card-accent, var(--coral));
}
.about-campus-card__lede {
  flex: 1;
  margin: 0;
  font-size: 0.84rem;
  line-height: 1.58;
  color: rgba(0, 43, 99, 0.74);
}
.about-campus-card__traits {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem 0;
  margin: auto 0 0;
  padding: 0.85rem 0 0;
  border-top: 1px solid var(--line);
  list-style: none;
}
.about-campus-card__traits li {
  color: rgba(0, 43, 99, 0.58);
  font-size: 0.72rem;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}
.about-campus-card__traits li + li::before {
  content: "·";
  margin: 0 0.55rem;
  opacity: 0.35;
}
.about-campus-card__traits--facilities {
  flex-direction: column;
  align-items: flex-start;
  gap: 0.42rem;
}
.about-campus-card__traits--facilities li {
  text-transform: none;
  letter-spacing: 0.01em;
  font-size: 0.8rem;
  font-weight: 500;
  line-height: 1.45;
}
.about-campus-card__traits--facilities li + li::before {
  content: none;
  margin: 0;
}
.about-tours {
  display: grid;
  gap: 0.85rem;
  max-width: 58ch;
  padding-top: 1.5rem;
  border-top: 1px solid var(--line);
  font-size: 0.92rem;
  line-height: 1.55;
}
.about-tours--story {
  margin-top: 0;
  padding-top: clamp(1.75rem, 3vw, 2.5rem);
}
.about-tours__eyebrow {
  margin: 0;
  color: var(--coral);
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.16em;
  text-transform: uppercase;
}
.about-tours__actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 1rem 1.25rem;
  margin-top: 0.5rem;
}

.about-team {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  padding: clamp(4.5rem, 9vw, 7.5rem) 0;
}
.about-team .about-chapter__ghost {
  color: #fff;
}
.about-team__inner {
  position: relative;
  z-index: 1;
  width: 100%;
}
.about-team__head {
  display: grid;
  max-width: 100ch;
  margin-bottom: clamp(2.5rem, 5vw, 3.75rem);
}
.about-team__head .section-tag {
  margin-bottom: clamp(1.15rem, 2.4vw, 1.75rem);
}
.about-team__title {
  max-width: 14ch;
  margin: 0;
  color: #fff;
  font-size: clamp(2.4rem, 5vw, 4.2rem);
  font-weight: 600;
  line-height: 1;
  letter-spacing: -0.05em;
}
.about-team__title em {
  font-family: "Playfair Display", serif;
  font-weight: 500;
  font-style: italic;
}
.about-team__carousel {
  --team-gap: clamp(1.1rem, 2vw, 1.75rem);
  --team-visible: 3;
}
.about-team__viewport {
  overflow: hidden;
}
.about-team__track {
  display: flex;
  gap: var(--team-gap);
  will-change: transform;
  transition: transform 0.7s var(--ease);
}

@media (hover: none), (pointer: coarse), (max-width: 1024px) {
  .about-team__viewport {
    touch-action: pan-y;
  }

  .about-team__carousel.is-dragging {
    user-select: none;
    -webkit-user-select: none;
  }

  .about-team__carousel.is-dragging .about-team__track {
    transition: none;
  }
}


.about-team-card {
  flex: 0 0 calc((100% - (var(--team-gap) * (var(--team-visible) - 1))) / var(--team-visible));
  min-width: 0;
}
.about-team-card__card {
  display: block;
  width: 100%;
  padding: 0;
  text-align: left;
  cursor: pointer;
}
.about-team-card__card:focus-visible {
  outline: 2px solid var(--lime);
  outline-offset: 4px;
}
.about-team-card__media {
  position: relative;
  display: block;
  aspect-ratio: 3 / 4;
  overflow: hidden;
  background: #dcd8ce;
}
.about-team-card__photo {
  position: absolute;
  inset: 0;
  display: grid;
  place-items: center;
}
.about-team-card__photo img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center top;
  transition: transform 1.05s var(--ease);
}
.about-team-card__photo--placeholder {
  background: #dcd8ce;
}
.about-team-card__photo--placeholder span {
  color: rgba(0, 43, 99, 0.28);
  font-family: "Playfair Display", serif;
  font-size: clamp(2.4rem, 4vw, 3.6rem);
  font-style: italic;
  font-weight: 500;
  letter-spacing: -0.05em;
  line-height: 1;
}
.about-team-card__overlay {
  position: absolute;
  right: 0.8rem;
  bottom: 0.8rem;
  left: 0.8rem;
  z-index: 1;
  display: grid;
  grid-template-rows: auto 0fr;
  max-height: calc(100% - 1.6rem);
  overflow: hidden;
  padding: 0.95rem 1rem 1.05rem;
  border-radius: 0.9rem;
  background: rgba(0, 21, 48, 0.9);
  color: #fff;
  transition: grid-template-rows 0.7s var(--ease), background 0.5s var(--ease);
}
.about-team-card__identity {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 0.7rem;
}
.about-team-card__copy {
  min-width: 0;
}
.about-team-card__card h3 {
  margin: 0 0 0.28rem;
  color: #fff;
  font-size: 0.98rem;
  font-weight: 700;
  letter-spacing: -0.02em;
  line-height: 1.2;
}
.about-team-card__role {
  margin: 0;
  color: rgba(255, 255, 255, 0.58);
  font-size: 0.62rem;
  font-weight: 700;
  letter-spacing: 0.12em;
  line-height: 1.35;
  text-transform: uppercase;
}
.about-team-card__arrow {
  display: inline-block;
  flex: 0 0 auto;
  width: 0.95rem;
  height: 0.95rem;
  color: var(--team-accent, var(--lime));
  transform: translateY(0.08rem);
}
.about-team-card__story {
  min-height: 0;
  overflow: hidden;
  opacity: 0;
  transform: translateY(0.55rem);
  transition: opacity 0.45s var(--ease) 0.08s, transform 0.55s var(--ease);
}
.about-team-card__story-inner {
  padding-top: 1rem;
  overflow: auto;
  max-height: 100%;
  color: rgba(255, 255, 255, 0.84);
  font-size: 0.78rem;
  line-height: 1.52;
}
.about-team-card__story-inner p + p {
  margin-top: 0.65rem;
}
@media (hover: hover) and (pointer: fine) {
  .about-team-card__card:hover .about-team-card__photo img,
  .about-team-card__card:focus-visible .about-team-card__photo img {
    transform: scale(1.045);
  }
  .about-team-card__card:hover .about-team-card__overlay,
  .about-team-card__card:focus-visible .about-team-card__overlay {
    grid-template-rows: auto 1fr;
    background: rgba(0, 21, 48, 0.94);
  }
  .about-team-card__card:hover .about-team-card__story,
  .about-team-card__card:focus-visible .about-team-card__story {
    opacity: 1;
    transform: none;
  }
}

/* Tap-activated expand (JS sets .is-active on touch / tablet only) */
.about-team-card__card.is-active .about-team-card__photo img {
  transform: scale(1.045);
}

.about-team-card__card.is-active .about-team-card__overlay {
  grid-template-rows: auto 1fr;
  background: rgba(0, 21, 48, 0.94);
}

.about-team-card__card.is-active .about-team-card__story {
  opacity: 1;
  transform: none;
}

@media (hover: none), (pointer: coarse), (max-width: 1024px) {
  .about-team-card__card {
    -webkit-tap-highlight-color: transparent;
    touch-action: manipulation;
  }
}

/* Tap-activated expand (JS sets .is-active on touch / tablet only) */
.about-team-card__card.is-active .about-team-card__photo img {
  transform: scale(1.045);
}

.about-team-card__card.is-active .about-team-card__overlay {
  grid-template-rows: auto 1fr;
  background: rgba(0, 21, 48, 0.94);
}

.about-team-card__card.is-active .about-team-card__story {
  opacity: 1;
  transform: none;
}

@media (hover: none), (pointer: coarse), (max-width: 1024px) {
  .about-team-card__card {
    -webkit-tap-highlight-color: transparent;
    touch-action: manipulation;
  }
}

.about-team__nav {
  display: flex;
  justify-content: flex-end;
  align-items: center;
  gap: 0.55rem;
  margin-top: clamp(1.75rem, 3vw, 2.5rem);
}
.about-team__footer {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 1.25rem 1.5rem;
  margin-top: clamp(1.75rem, 3vw, 2.5rem);
}
.about-team__cta-actions {
  margin-top: 0;
}
.about-team__footer .about-team__nav {
  margin-top: 0;
}
.about-team__nav-btn {
  display: grid;
  place-items: center;
  width: 2.85rem;
  height: 2.85rem;
  border: 1px solid rgba(255, 255, 255, 0.28);
  color: #fff;
  background: transparent;
  line-height: 1;
  transition: color 0.35s var(--ease), border-color 0.35s var(--ease), background 0.35s var(--ease);
}
.about-team__nav-btn svg {
  display: block;
}
.about-team__nav-btn:hover,
.about-team__nav-btn:focus-visible {
  color: var(--navy);
  border-color: var(--lime);
  background: var(--lime);
  outline: none;
}
.about-team-modal {
  width: min(36rem, calc(100vw - 2rem));
  max-height: calc(100svh - 2rem);
  margin: auto;
  padding: 0;
  border: 0;
  background: transparent;
}
.about-team-modal[open] {
  animation: about-patron-modal-in 0.42s var(--ease);
}
.about-team-modal[open]::backdrop {
  animation: about-patron-backdrop-in 0.38s var(--ease);
}
.about-team-modal::backdrop {
  background: rgba(0, 21, 48, 0.62);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
}
.about-team-modal__panel {
  position: relative;
  display: grid;
  justify-items: center;
  gap: 0.75rem;
  width: 100%;
  padding: clamp(2rem, 4vw, 2.6rem) clamp(1.5rem, 3vw, 2.2rem) 2.1rem;
  overflow: auto;
  border: 1px solid rgba(16, 41, 66, 0.1);
  background: var(--paper);
  box-shadow: 0 28px 60px rgba(7, 27, 45, 0.22);
  text-align: center;
}
.about-team-modal__close {
  position: absolute;
  top: 0.7rem;
  right: 0.75rem;
  width: 2.2rem;
  height: 2.2rem;
  color: var(--navy);
  font-size: 1.65rem;
  line-height: 1;
  opacity: 0.55;
  transition: opacity 0.3s var(--ease), color 0.3s var(--ease);
}
.about-team-modal__close:hover,
.about-team-modal__close:focus-visible {
  color: var(--coral);
  opacity: 1;
  outline: none;
}
.about-team-modal__photo {
  display: grid;
  place-items: center;
  width: 7.5rem;
  height: 7.5rem;
  margin-bottom: 0.35rem;
  overflow: hidden;
  background: #061428;
}
.about-team-modal__photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center top;
}
.about-team-modal__photo span {
  color: rgba(255, 255, 255, 0.55);
  font-family: "Playfair Display", serif;
  font-size: 1.7rem;
  font-style: italic;
  font-weight: 500;
  letter-spacing: -0.04em;
}
.about-team-modal__panel h3 {
  margin: 0;
  max-width: 18ch;
  font-size: clamp(1.35rem, 2vw, 1.7rem);
  font-weight: 600;
  letter-spacing: -0.04em;
  line-height: 1.12;
}
.about-team-modal__role {
  margin: 0;
  color: var(--coral);
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}
.about-team-modal__bio {
  display: grid;
  gap: 0.85rem;
  max-width: 46ch;
  margin-top: 0.35rem;
  color: rgba(0, 43, 99, 0.78);
  font-size: 0.94rem;
  line-height: 1.62;
  text-align: left;
}
.about-team-modal.is-open {
  display: block;
  position: fixed;
  inset: 0;
  z-index: 80;
  width: auto;
  max-height: none;
  background: rgba(0, 21, 48, 0.62);
}
.about-team-modal.is-open .about-team-modal__panel {
  position: absolute;
  top: 50%;
  left: 50%;
  width: min(36rem, calc(100vw - 2rem));
  transform: translate(-50%, -50%);
}

.about-patrons {
  position: relative;
  padding: clamp(4.5rem, 8vw, 7rem) 0;
}
.about-patrons__inner {
  width: 100%;
}
.about-patrons__head {
  max-width: 100ch;
  margin-bottom: clamp(2.5rem, 5vw, 3.75rem);
}
.about-patrons__head .section-tag {
  margin-bottom: 0.9rem;
}
.about-patrons__title {
  max-width: 16ch;
  margin-bottom: 0.85rem;
  font-size: clamp(2.4rem, 5vw, 4.2rem);
  font-weight: 600;
  line-height: 1;
  letter-spacing: -0.05em;
}
.about-patrons__title em {
  font-family: "Playfair Display", serif;
  font-weight: 500;
  font-style: italic;
}
.about-patrons__lede {
  margin: 0;
  max-width: 80ch;
  font-size: 0.95rem;
  line-height: 1.58;

}
.about-patrons__row {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: clamp(1.1rem, 2vw, 1.75rem);
  align-items: stretch;
}
.about-patron {
  min-width: 0;
}
.about-patron[data-reveal] {
  transition-delay: calc(var(--patron-i, 0) * 0.08s);
}
.about-patron:nth-child(1) { --patron-i: 0; }
.about-patron:nth-child(2) { --patron-i: 1; }
.about-patron:nth-child(3) { --patron-i: 2; }
.about-patron:nth-child(4) { --patron-i: 3; }
.about-patron__card {
  display: flex;
  flex-direction: column;
  align-items: center;
  width: 100%;
  height: 100%;
  padding: 1.5rem;
  border: 1px solid var(--line);
  background: var(--paper);
  text-align: center;
  cursor: pointer;
  transition:
    transform 0.45s var(--ease),
    border-color 0.45s var(--ease),
    box-shadow 0.45s var(--ease);
}
.about-patron__card:hover,
.about-patron__card:focus-visible {
  transform: translateY(-5px);
  border-color: rgba(237, 106, 80, 0.38);
  box-shadow: 0 18px 36px rgba(7, 27, 45, 0.07);
  outline: none;
}
.about-patron__photo {
  display: grid;
  place-items: center;
  height: clamp(6.5rem, 18vw, 18rem);
  margin-bottom: 1.25rem;
  overflow: hidden;
  border: 1.5px solid var(--coral);
  background:
    linear-gradient(165deg, rgba(237, 106, 80, 0.12), transparent 58%),
    #fff;
  transition: transform 0.7s var(--ease);
}
.about-patron__photo span {
  color: var(--navy);
  font-family: "Playfair Display", serif;
  font-size: clamp(1.55rem, 2vw, 1.95rem);
  font-style: italic;
  font-weight: 500;
  letter-spacing: -0.04em;
  line-height: 1;
}
.about-patron__photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.85s var(--ease);
}
.about-patron__card:hover .about-patron__photo,
.about-patron__card:focus-visible .about-patron__photo {
  transform: scale(1.03);
}
.about-patron__card:hover .about-patron__photo img,
.about-patron__card:focus-visible .about-patron__photo img {
  transform: scale(1.06);
}
.about-patron__card h3 {
  margin: 0 0 0.55rem;
  max-width: 16ch;
  padding-top: 0.95rem;
  border-top: 1px solid var(--line);
  font-size: clamp(1.02rem, 1.1vw, 1.18rem);
  font-weight: 650;
  letter-spacing: -0.03em;
  line-height: 1.2;
}
.about-patron__role {
  margin: 0;
  color: var(--coral);
  font-size: 0.64rem;
  font-weight: 700;
  letter-spacing: 0.12em;
  line-height: 1.4;
  text-transform: uppercase;
}
.about-patron-modal {
  width: min(34rem, calc(100vw - 2rem));
  max-height: calc(100svh - 2rem);
  margin: 2rem auto;
  padding: 0;
  border: 0;
  background: transparent;
}
.about-patron-modal[open] {
  animation: about-patron-modal-in 0.42s var(--ease);
}
.about-patron-modal[open]::backdrop {
  animation: about-patron-backdrop-in 0.38s var(--ease);
}
@keyframes about-patron-modal-in {
  from { opacity: 0; transform: translateY(12px) scale(0.98); }
  to { opacity: 1; transform: none; }
}
@keyframes about-patron-backdrop-in {
  from { opacity: 0; }
  to { opacity: 1; }
}
.about-patron-modal::backdrop {
  background: rgba(0, 21, 48, 0.52);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
}
.about-patron-modal__panel {
  position: relative;
  display: grid;
  justify-items: center;
  gap: 0.75rem;
  width: 100%;
  padding: clamp(2rem, 4vw, 2.6rem) clamp(1.5rem, 3vw, 2.2rem) 2.1rem;
  overflow: auto;
  border: 1px solid rgba(16, 41, 66, 0.1);
  background: var(--paper);
  box-shadow: 0 28px 60px rgba(7, 27, 45, 0.18);
  text-align: center;
}
.about-patron-modal__close {
  position: absolute;
  top: 0.7rem;
  right: 0.75rem;
  width: 2.2rem;
  height: 2.2rem;
  color: var(--navy);
  font-size: 1.65rem;
  line-height: 1;
  opacity: 0.55;
  transition: opacity 0.3s var(--ease), color 0.3s var(--ease);
}
.about-patron-modal__close:hover,
.about-patron-modal__close:focus-visible {
  color: var(--coral);
  opacity: 1;
  outline: none;
}
.about-patron-modal__photo {
  display: grid;
  place-items: center;
  height: 26.5rem;
  margin-bottom: 0.35rem;
  overflow: hidden;
  background:
    linear-gradient(165deg, rgba(237, 106, 80, 0.14), transparent 58%),
    #fff;
}
.about-patron-modal__photo span {
  color: var(--navy);
  font-family: "Playfair Display", serif;
  font-size: 1.7rem;
  font-style: italic;
  font-weight: 500;
  letter-spacing: -0.04em;
}
.about-patron-modal__panel h3 {
  margin: 0;
  font-size: clamp(1.35rem, 2vw, 1.7rem);
  font-weight: 600;
  letter-spacing: -0.04em;
  line-height: 1.12;
}
.about-patron-modal__role {
  margin: 0;
  color: var(--coral);
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}
.about-patron-modal__bio {
  text-align: left;
  margin-top: 0.35rem;
  font-size: 0.94rem;
  line-height: 1.62;
}
.about-patron-modal.is-open {
  display: block;
  position: fixed;
  inset: 0;
  z-index: 80;
  width: auto;
  max-height: none;
  background: rgba(0, 21, 48, 0.52);
}
.about-patron-modal.is-open .about-patron-modal__panel {
  position: absolute;
  top: 50%;
  left: 50%;
  width: min(34rem, calc(100vw - 2rem));
  transform: translate(-50%, -50%);
}

.about-partners {
  padding: clamp(4.5rem, 9vw, 7.5rem) 0;
  background: var(--paper);
  border-top: 1px solid var(--line);
}
.about-partners__head {
  max-width: 150ch;
  margin-bottom: clamp(2.5rem, 5vw, 3.75rem);
}
.about-partners__head .section-tag {
  margin-bottom: 0.9rem;
}
.about-partners__title {
  max-width: 16ch;
  margin-bottom: 0.85rem;
  font-size: clamp(2.2rem, 4.4vw, 3.5rem);
  font-weight: 600;
  line-height: 0.94;
  letter-spacing: -0.05em;
}
.about-partners__title em {
  font-family: "Playfair Display", serif;
  font-weight: 500;
  font-style: italic;
}
.about-partners__lede {
  margin: 0;
  max-width: 130ch;
  font-size: 0.95rem;
  line-height: 1.58;
}
.about-partners__story {
  margin-bottom: clamp(2.5rem, 5vw, 4rem);
}
.about-partners__prose {
  max-width: 68ch;
}
.about-partners__points {
  margin: 1.35rem 0 1.5rem;
  padding: 0;
  list-style: none;
  display: grid;
  gap: 0.85rem;
}
.about-partners__points li {
  position: relative;
  padding-left: 1.35rem;
  color: rgba(0, 43, 99, 0.78);
  line-height: 1.55;
}
.about-partners__points li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.62em;
  width: 0.45rem;
  height: 0.45rem;
  border-radius: 50%;
  background: var(--coral);
}
.about-partners__tags {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem 0;
  margin: 1.15rem 0 0;
  padding: 0.9rem 0 0;
  border-top: 1px solid var(--line);
  list-style: none;
}
.about-partners__tags li {
  color: rgba(0, 43, 99, 0.58);
  font-size: 0.72rem;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}
.about-partners__tags li + li::before {
  content: "·";
  margin: 0 0.55rem;
  opacity: 0.35;
}
.about-partners__tag {
  position: relative;
  margin: 0;
  padding: 0 0 0.15rem;
  border: 0;
  background: none;
  color: inherit;
  font: inherit;
  letter-spacing: inherit;
  text-transform: inherit;
  cursor: pointer;
  transition: color 0.35s var(--ease);
}
.about-partners__tag::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  height: 2px;
  background: var(--coral);
  transform: scaleX(0);
  transform-origin: left center;
  transition: transform 0.45s var(--ease);
}
.about-partners__tag:hover,
.about-partners__tag:focus-visible {
  color: var(--navy);
}
.about-partners__tag:focus-visible {
  outline: 2px solid var(--lime);
  outline-offset: 3px;
}
.about-partners__tag.is-active,
.about-partners__tag[aria-selected="true"] {
  color: var(--navy);
}
.about-partners__tag.is-active::after,
.about-partners__tag[aria-selected="true"]::after {
  transform: scaleX(1);
}
.about-partners__empty {
  margin: 0 0 clamp(1.25rem, 2.5vw, 1.75rem);
  max-width: 52rem;
  margin-inline: auto;
  font-size: 0.88rem;
  line-height: 1.5;
  color: rgba(0, 43, 99, 0.58);
  text-align: center;
}
.about-partners__list {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: clamp(1.1rem, 2vw, 1.75rem);
  margin: 0;
  padding: 0;
  list-style: none;
}
.about-partners__item {
  display: grid;
  place-items: center;
  aspect-ratio: 5 / 5;
  padding: clamp(0.9rem, 1.6vw, 1.35rem);
  background: #fff;
  border: 1px solid var(--line);
  box-shadow: 0 8px 20px rgba(0, 21, 48, 0.04);
  transition:
    opacity 0.5s var(--ease),
    transform 0.5s var(--ease),
    box-shadow 0.5s var(--ease),
    border-color 0.5s var(--ease);
}
.about-partners__item.is-filtered-out {
  opacity: 0;
  transform: scale(0.94);
  pointer-events: none;
}
.about-partners__item img {
  width: 100%;
  height: 100%;
  max-width: none;
  object-fit: contain;
  object-position: center;
  transition: transform 0.55s var(--ease);
}
@media (hover: hover) and (pointer: fine) {
  .about-partners__item:hover,
  .about-partners__item:focus-visible {
    transform: translateY(-4px);
    border-color: rgba(0, 43, 99, 0.22);
    box-shadow: 0 16px 32px rgba(0, 21, 48, 0.08);
  }
  .about-partners__item:hover img,
  .about-partners__item:focus-visible img {
    transform: scale(1.05);
  }
}

.page-crumb {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.5rem;
  margin: 0 0 2.35rem;
  color: rgba(0, 43, 99, 0.48);
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}
.page-crumb a {
  color: inherit;
  transition: color 0.3s var(--ease);
}
.page-crumb a:hover,
.page-crumb a:focus-visible {
  color: var(--coral);
  outline: none;
}
.page-crumb [aria-current="page"] {
  color: var(--navy);
}
.page-crumb__sep {
  opacity: 0.45;
}

.principal-intro {
  padding: 10.4rem 0 clamp(2rem, 3vw, 3rem);
}
.principal-intro__head .section-tag {
  margin-bottom: 0.9rem;
}
.principal-intro__title {
  max-width: 14ch;
  margin: 0;
  font-size: clamp(2.6rem, 5.4vw, 4.4rem);
  font-weight: 600;
  line-height: 0.94;
  letter-spacing: -0.05em;
}
.principal-intro__title em {
  font-family: "Playfair Display", serif;
  font-weight: 500;
  font-style: italic;
}

.principal-letter {
  padding: clamp(2rem, 4vw, 4.5rem) 0 clamp(4rem, 6vw, 6rem);
  background: var(--cream);
  margin: 0;
}
.principal-letter__grid {
  display: grid;
  grid-template-columns: minmax(0, 0.82fr) minmax(0, 1.18fr);
  gap: clamp(2rem, 6vw, 5.5rem);
  align-items: start;
}
.principal-letter__identity {
  position: sticky;
  top: 8.6rem;
}
.principal-letter__photo {
  margin: 0 0 1.25rem;
  overflow: hidden;
  box-shadow: 0 24px 48px rgba(0, 10, 24, 0.16);
}
.principal-letter__photo img {
  width: 100%;
  height: auto;
  aspect-ratio: 4 / 5;
  object-fit: cover;
  object-position: center top;
  transition: transform 1.1s var(--ease);
}
@media (hover: hover) and (pointer: fine) {
  .principal-letter__photo:hover img {
    transform: scale(1.03);
  }
}
.principal-letter__name {
  margin: 0 0 0.3rem;
  font-size: clamp(1.35rem, 2vw, 1.7rem);
  font-weight: 600;
  letter-spacing: -0.04em;
  line-height: 1.12;
}
.principal-letter__role {
  margin: 0;
  max-width: 28ch;
  color: var(--coral);
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.14em;
  line-height: 1.4;
  text-transform: uppercase;
}
.principal-letter__body {
  display: grid;
  gap: 1.15rem;
  max-width: 70ch;
  padding-top: 0.2rem;
  font-size: 1rem;
  line-height: 1.68;
  color: rgba(0, 43, 99, 0.82);
}
.principal-letter__greeting {
  margin: 0;
  color: var(--navy);
  font-family: "Playfair Display", serif;
  font-size: clamp(1.45rem, 2.4vw, 1.85rem);
  font-style: italic;
  font-weight: 500;
  letter-spacing: -0.03em;
}
.principal-letter__sign {
  margin-top: 0.85rem;
  border-top-color: var(--line);
}
.principal-letter__sign span {
  color: rgba(0, 43, 99, 0.55);
}

.principal-support {
  padding: clamp(3.25rem, 6vw, 4.75rem) 0;
  border-top: 1px solid var(--line);
}
.principal-support [data-reveal] {
  opacity: 1;
  transform: none;
}
.principal-support__grid {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 1.5rem 2.5rem;
}
.principal-support__lede {
  margin: 0;
  max-width: 42ch;
  font-size: 0.95rem;
  line-height: 1.58;
}
.principal-support__actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 1rem 1.4rem;
}

.about-accreditations {
  padding: clamp(3rem, 6vw, 4.5rem) 0;
  background: var(--paper);
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
}
.about-accreditations__inner {
  max-width: 48ch;
}
.about-accreditations__title {
  margin: 0.75rem 0;
  font-size: clamp(1.8rem, 3.5vw, 2.6rem);
  font-weight: 600;
  line-height: 0.95;
  letter-spacing: -0.05em;
}
.about-accreditations__title em {
  font-family: "Playfair Display", serif;
  font-weight: 500;
  font-style: italic;
}

.about-gems {
  padding: clamp(3.25rem, 6.5vh, 5.25rem) 0;
}
.about-gems__grid {
  display: grid;
  grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr);
  gap: clamp(2rem, 8vw, 6rem);
  align-items: center;
  width: 100%;
}
.about-gems__copy {
  display: grid;
  justify-items: start;
}

.about-gems__copy .about-gems__sign span {
  color: rgba(0, 43, 99, 0.55);
}


.about-gems__copy .section-tag {
  margin-bottom: 0.85rem;
}
.about-gems__title {
  max-width: 12ch;
  margin: 0 0 1rem;
  font-size: clamp(2.4rem, 5vw, 4.2rem);
  font-weight: 600;
  line-height: 0.94;
  letter-spacing: -0.05em;
}
.about-gems__title em {
  font-family: "Playfair Display", serif;
  font-weight: 500;
  font-style: italic;
}
.about-gems__copy p:not(.section-tag) {
  margin: 0;
  font-size: 0.95rem;
  line-height: 1.58;
}
.about-gems__copy .under-link {
  margin-top: 1.35rem;
}
.about-gems__media {
  margin: 0;
  justify-self: end;
  width: auto;
  aspect-ratio: 4 / 5;
  overflow: hidden;
  box-shadow: 0 24px 48px rgba(0, 10, 24, 0.16);
}
.about-gems__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 14%;
  transition: transform 1.1s var(--ease);
}
.about-gems__media:hover img {
  transform: scale(1.03);
}

.about-cta-band {
  padding: clamp(4rem, 8vw, 6rem) 0;
}
.about-cta-band__grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 0.85fr);
  gap: 2rem 3rem;
  align-items: end;
}
.about-cta-band__title {
  font-size: clamp(2.8rem, 6vw, 5.5rem);
  font-weight: 600;
  line-height: 0.92;
  letter-spacing: -0.055em;
  color: #fff;
}
.about-cta-band__title span {
  color: var(--coral);
}
.about-cta-band__aside p {
  max-width: 34ch;
  margin-bottom: 1.25rem;
  color: rgba(255, 255, 255, 0.78);
  font-size: 0.92rem;
  line-height: 1.55;
}
.about-cta-band__actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 1rem 1.25rem;
}
.about-cta-band__link {
  color: #fff;
  border-color: rgba(255, 255, 255, 0.72);
}
.about-cta-band__link span {
  color: var(--lime);
}

@media (max-width: 991px) {
  .about-hero__inner {
    grid-template-columns: 1fr;
    min-height: auto;
    gap: 1.5rem;
  }
  .about-hero__aside {
    justify-self: start;
    max-width: none;
  }
  .about-hero__scroll {
    position: relative;
    margin-top: 1.5rem;
  }
  .about-chapter__grid,
  .about-chapter__grid--reverse {
    grid-template-columns: 1fr;
  }
  .about-chapter__grid--reverse .about-chapter__copy,
  .about-chapter__grid--reverse .about-chapter__media {
    order: unset;
  }
  #vision .about-chapter__media {
    justify-self: center;
  }
  .about-campus-story__stream {
    grid-template-columns: 1fr;
    gap: clamp(1.25rem, 3vw, 1.75rem);
  }
  .about-campus-carousel {
    margin-bottom: clamp(2rem, 4vw, 3rem);
  }
  .about-campus-carousel .about-campus-story__track {
    gap: clamp(1.25rem, 3vw, 1.75rem);
  }
  .about-campus-card:nth-child(2),
  .about-campus-card:nth-child(3),
  .about-campus-card:nth-child(4) {
    transition-delay: 0s;
  }
  .about-campus-card__media {
    aspect-ratio: 16 / 10;
  }
  .about-campus-card__title {
    font-size: clamp(1.15rem, 4vw, 1.35rem);
  }
  .about-campus-card__lede {
    font-size: 0.88rem;
  }
  .about-campus-card__label {
    font-size: 0.68rem;
  }
  .about-patrons {
    padding: clamp(4rem, 8vw, 6rem) 0;
  }
  .about-patrons__row {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .about-team__carousel {
    --team-visible: 2;
  }
  .about-team-card:nth-child(n) {
    --team-i: 0;
  }
  .about-cta-band__grid {
    grid-template-columns: 1fr;
  }
  .about-gems__grid {
    grid-template-columns: 1fr;
    gap: clamp(1.75rem, 4vw, 2.5rem);
  }
  .about-gems__copy {
    max-width: 46ch;
  }
  .about-gems__media {
    justify-self: start;
    width: min(100%, 28rem);
    height: auto;
    aspect-ratio: 4 / 5;
  }
  .about-partners__list {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
  .principal-letter__grid {
    grid-template-columns: 1fr;
    gap: clamp(1.75rem, 4vw, 2.5rem);
  }
  .principal-letter__identity {
    position: static;
    display: grid;
    grid-template-columns: minmax(0, 10.5rem) minmax(0, 1fr);
    gap: 1rem 1.25rem;
    align-items: end;
  }
  .principal-letter__photo {
    grid-row: span 2;
    margin: 0;
  }
  .about-pillar__panel {
    padding-left: 0;
  }
}
@media (max-width: 680px) {
  .about-hero {
    min-height: auto;
    padding-top: 8.8rem;
  }
  .about-hero__title {
    max-width: none;
  }
  .about-quote__inner p {
    max-width: none;
    text-align: left;
  }
  .about-team__carousel {
    --team-visible: 1;
  }
  .about-team__footer {
    flex-direction: column;
    align-items: stretch;
    gap: 1.5rem;
  }
  .about-team__footer .about-team__nav {
    justify-content: flex-end;
  }
  .about-patrons__row {
    grid-template-columns: 1fr;
    max-width: 22rem;
  }
  .about-partners__list {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .principal-letter__identity {
    grid-template-columns: 1fr;
  }
  .principal-letter__photo {
    grid-row: auto;
  }
}
@media (prefers-reduced-motion: reduce) {
  .about-chapter__media img,
  .about-gems__media img,
  .principal-letter__photo img,
  .about-campus-card,
  .about-campus-card__media img,
  .about-team-card__card,
  .about-team-card__photo,
  .about-team-card__photo img,
  .about-team-card__overlay,
  .about-team-card__story,
  .about-team__track,
  .about-team__nav-btn,
  .about-team-modal[open],
  .about-team-modal[open]::backdrop,
  .about-welcome__more,
  .about-welcome__more-inner,
  .about-welcome__toggle-icon,
  .about-patron__card,
  .about-patron__photo,
  .about-patron-modal[open],
  .about-patron-modal[open]::backdrop {
    transition: none !important;
  }
  .about-chapter__media:hover img,
  .about-gems__media:hover img,
  .principal-letter__photo:hover img,
  .about-campus-card:hover .about-campus-card__media img,
  .about-campus-card:focus-within .about-campus-card__media img,
  .about-team-card__card:hover,
  .about-team-card__card:focus-visible,
   .about-team-card__card.is-active,
  .about-team-card__card:hover .about-team-card__photo,
  .about-team-card__card:focus-visible .about-team-card__photo,
    .about-team-card__card.is-active .about-team-card__photo,
  .about-team-card__card:hover .about-team-card__photo img,
  .about-team-card__card:focus-visible .about-team-card__photo img,
   .about-team-card__card.is-active .about-team-card__photo img,
  .about-team-card__card:hover .about-team-card__story,
  .about-team-card__card:focus-visible .about-team-card__story,
   .about-team-card__card.is-active .about-team-card__story,
  .about-patron__card:hover,
  .about-patron__card:focus-visible,
  .about-patron__card:hover .about-patron__photo,
  .about-patron__card:focus-visible .about-patron__photo,
  .about-campus-story__cta:hover span,
  .about-campus-story__cta:focus-visible span {
    transform: none !important;
  }
  .about-partners__item,
  .about-partners__item img {
    transform: none !important;
  }
  .about-partners__item.is-filtered-out {
    opacity: 0 !important;
  }
  .about-patron-modal[open],
  .about-patron-modal[open]::backdrop,
  .about-team-modal[open],
  .about-team-modal[open]::backdrop {
    animation: none !important;
  }
  .about-campus-card {
    opacity: 1;
    transform: none;
  }
  .about-welcome.is-expanded .about-welcome__more-inner {
    opacity: 1;
    transform: none;
    transition-delay: 0s;
  }
}

/* Meet the Team ? flip card grid */
:is(.about-team-page, .about-patrons-page) .team-leaders {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  padding: clamp(4.5rem, 9vw, 7.5rem) 0;
  background: var(--cream);
  color: var(--navy);
}

:is(.about-team-page, .about-patrons-page) .team-leaders__glow {
  position: absolute;
  inset: -15% -8% auto;
  height: 65%;
  background:
    radial-gradient(ellipse 42% 48% at 18% 22%, rgba(237, 106, 80, 0.07), transparent 72%),
    radial-gradient(ellipse 38% 44% at 82% 28%, rgba(201, 220, 80, 0.06), transparent 74%);
  pointer-events: none;
  z-index: 0;
}

:is(.about-team-page, .about-patrons-page) .team-leaders__inner {
  position: relative;
  z-index: 1;
}

:is(.about-team-page, .about-patrons-page) .team-leaders__head {
  max-width: 70ch;
  margin-bottom: clamp(2.5rem, 5vw, 4rem);
}

:is(.about-team-page, .about-patrons-page) .team-leaders__head .section-tag {
  margin-bottom: clamp(1.15rem, 2.4vw, 1.75rem);
}

:is(.about-team-page, .about-patrons-page) .team-leaders__title {
  margin: 0;
  color: var(--navy);
  font-size: clamp(2.4rem, 5.5vw, 4.5rem);
  font-weight: 600;
  line-height: 0.95;
  letter-spacing: -0.05em;
}

:is(.about-team-page, .about-patrons-page) .team-leaders__title em {
  font-family: "Playfair Display", serif;
  font-weight: 500;
  font-style: italic;
}

:is(.about-team-page, .about-patrons-page) .team-leaders__title span {
  color: var(--coral);
}

:is(.about-team-page, .about-patrons-page) .team-leaders__grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: clamp(1.15rem, 2.2vw, 1.85rem);
  align-items: stretch;
  counter-reset: team-leader;
}

:is(.about-team-page, .about-patrons-page) .team-flip {
  min-width: 0;
  height: 100%;
  counter-increment: team-leader;
}

:is(.about-team-page, .about-patrons-page) .team-flip[data-reveal] {
  transition-delay: calc(var(--team-i, 0) * 0.09s);
}

:is(.about-team-page, .about-patrons-page) .team-flip__scene {
  perspective: 1400px;
  height: 100%;
  min-height: clamp(22rem, 34vw, 40rem);
  transition: transform 0.5s var(--ease);
}

:is(.about-team-page, .about-patrons-page) .team-flip__card {
  position: relative;
  width: 100%;
  height: 100%;
  min-height: inherit;
  transform-style: preserve-3d;
  transition: transform 0.65s var(--ease);
  will-change: transform;
}

:is(.about-team-page, .about-patrons-page) .team-flip.is-flipped .team-flip__card {
  transform: rotateY(180deg);
}

:is(.about-team-page, .about-patrons-page) .team-flip__face {
  position: absolute;
  inset: 0;
  display: flex;
  flex-direction: column;
  overflow: hidden;
  backface-visibility: hidden;
  -webkit-backface-visibility: hidden;
}

:is(.about-team-page, .about-patrons-page) .team-flip__face--front {
  border: 1px solid var(--line);
  background: #fff;
  box-shadow:
    0 1px 0 rgba(255, 255, 255, 0.8) inset,
    0 14px 36px rgba(0, 43, 99, 0.07);
  transition: box-shadow 0.5s var(--ease), border-color 0.45s var(--ease);
}

:is(.about-team-page, .about-patrons-page) .team-flip__face--front::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  z-index: 2;
  height: 3px;
 
  pointer-events: none;
}

:is(.about-team-page, .about-patrons-page) .team-flip__face--front::after {
   display: none;
  content: counter(team-leader, decimal-leading-zero);
  position: absolute;
  top: clamp(0.85rem, 1.6vw, 1.1rem);
  right: clamp(0.85rem, 1.6vw, 1.1rem);
  z-index: 2;
  color: var(--team-accent, var(--coral));
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.14em;
  line-height: 1;
  opacity: 0.72;
  pointer-events: none;
}

:is(.about-team-page, .about-patrons-page) .team-flip__face--back {
  transform: rotateY(180deg);
  padding: clamp(1.35rem, 2.4vw, 1.75rem);
  border: 1px solid rgba(0, 43, 99, 0.12);
  background:
    linear-gradient(165deg, rgba(255, 255, 255, 0.04), transparent 42%),
    var(--navy);
  box-shadow: 0 16px 40px rgba(0, 43, 99, 0.14);
}

:is(.about-team-page, .about-patrons-page) .team-flip__face--back::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0;
  bottom: 0;
  width: 3px;
  pointer-events: none;
}

:is(.about-team-page, .about-patrons-page) .team-flip__photo {
  position: relative;
  flex: 1 1 auto;
  min-height: 0;
  margin: clamp(0.9rem, 1.8vw, 1.15rem) clamp(0.9rem, 1.8vw, 1.15rem) 0;
  overflow: hidden;
  aspect-ratio: 4 / 5;
  max-height: 68%;
  background: #e8e4da;
}

:is(.about-team-page, .about-patrons-page) .team-flip__photo::after {
  content: "";
  position: absolute;
  inset: 0.6rem;
  pointer-events: none;
  opacity: 0;
  transition: opacity 0.45s var(--ease);
}

:is(.about-team-page, .about-patrons-page) .team-flip__photo img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center top;
  transition: transform 1.05s var(--ease);
}

:is(.about-team-page, .about-patrons-page) .team-flip__photo--placeholder {
  display: grid;
  place-items: center;
  background:
    linear-gradient(165deg, rgba(237, 106, 80, 0.08), transparent 58%),
    #e8e4da;
}

:is(.about-team-page, .about-patrons-page) .team-flip__photo--placeholder span {
  color: rgba(0, 43, 99, 0.24);
  font-family: "Playfair Display", serif;
  font-size: clamp(2.2rem, 4vw, 3.2rem);
  font-style: italic;
  font-weight: 500;
  letter-spacing: -0.05em;
  line-height: 1;
}

:is(.about-team-page, .about-patrons-page) .team-flip__meta {
  position: relative;
  display: flex;
  flex: 0 0 auto;
  flex-direction: column;
  align-items: flex-start;
  gap: 0.45rem;
  margin-top: 1.5rem;
  padding: clamp(1.1rem, 2vw, 1.35rem) clamp(1.15rem, 2vw, 1.4rem) clamp(1.25rem, 2.2vw, 1.5rem);
  padding-left: calc(clamp(1.15rem, 2vw, 1.4rem) + 0.55rem);
  border-top: 1px solid var(--line);
}

:is(.about-team-page, .about-patrons-page) .team-flip__meta::before {
 
  content: "";
  position: absolute;
  left: clamp(1.15rem, 2vw, 1.4rem);
  top: clamp(1.1rem, 2vw, 1.35rem);
  bottom: clamp(1.25rem, 2.2vw, 1.5rem);
  width: 2px;
  background: linear-gradient(180deg, var(--team-accent, var(--coral)), color-mix(in srgb, var(--team-accent, var(--coral)) 35%, transparent));
  pointer-events: none;
}

:is(.about-team-page, .about-patrons-page) .team-flip__name {
  margin: 0;
  color: var(--navy);
  font-size: clamp(1.05rem, 1.6vw, 1.2rem);
  font-weight: 700;
  letter-spacing: -0.03em;
  line-height: 1.2;
}

:is(.about-team-page, .about-patrons-page) .team-flip__role {
  margin: 0;
  color: rgba(0, 43, 99, 0.58);
  font-size: 0.62rem;
  font-weight: 700;
  letter-spacing: 0.11em;
  line-height: 1.4;
  text-transform: uppercase;
}

:is(.about-team-page, .about-patrons-page) .team-flip__cta {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  margin-top: 0.55rem;
  padding: 0;
  border: 0;
  background: transparent;
  color: var(--navy);
  font-size: 0.78rem;
  font-weight: 600;
  letter-spacing: 0.02em;
  cursor: pointer;
  transition: color 0.35s var(--ease), gap 0.35s var(--ease);
}

:is(.about-team-page, .about-patrons-page) .team-flip__cta .icon {
  width: 0.85rem;
  height: 0.85rem;
  transition: transform 0.35s var(--ease);
}

:is(.about-team-page, .about-patrons-page) .team-flip__cta:hover,
:is(.about-team-page, .about-patrons-page) .team-flip__cta:focus-visible {
  color: var(--team-accent, var(--coral));
  outline: none;
}

:is(.about-team-page, .about-patrons-page) .team-flip__cta:hover .icon,
:is(.about-team-page, .about-patrons-page) .team-flip__cta:focus-visible .icon {
  transform: translate(2px, -2px);
}

:is(.about-team-page, .about-patrons-page) .team-flip__cta:focus-visible {
  outline: 2px solid var(--coral);
  outline-offset: 3px;
}

:is(.about-team-page, .about-patrons-page) .team-flip__bio {
  flex: 1 1 auto;
  min-height: 0;
  overflow-y: auto;
  padding-right: 0.25rem;
  color: rgba(255, 255, 255, 0.78);
  font-size: 1rem;
  line-height: 1.58;
  scrollbar-width: thin;
  scrollbar-color: rgba(255, 255, 255, 0.22) transparent;
}

:is(.about-team-page, .about-patrons-page) .team-flip__bio p {
  margin: 0;
}

:is(.about-team-page, .about-patrons-page) .team-flip__bio p + p {
  margin-top: 0.85rem;
}

:is(.about-team-page, .about-patrons-page) .team-flip__back {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  flex: 0 0 auto;
  margin-top: 1rem;
  padding: 0.55rem 0;
  border: 0;
  background: transparent;
  color: rgba(255, 255, 255, 0.88);
  font-size: 0.78rem;
  font-weight: 600;
  letter-spacing: 0.02em;
  cursor: pointer;
  transition: color 0.35s var(--ease);
}

:is(.about-team-page, .about-patrons-page) .team-flip__back-icon {
  display: inline-block;
  transition: transform 0.35s var(--ease);
}

:is(.about-team-page, .about-patrons-page) .team-flip__back:hover,
:is(.about-team-page, .about-patrons-page) .team-flip__back:focus-visible {
  color: var(--team-accent, var(--coral));
  outline: none;
}

:is(.about-team-page, .about-patrons-page) .team-flip__back:hover .team-flip__back-icon,
:is(.about-team-page, .about-patrons-page) .team-flip__back:focus-visible .team-flip__back-icon {
  transform: translateX(-3px);
}

:is(.about-team-page, .about-patrons-page) .team-flip__back:focus-visible {
  outline: 2px solid var(--lime);
  outline-offset: 3px;
}

@media (hover: hover) and (pointer: fine) {
  :is(.about-team-page, .about-patrons-page) .team-flip:not(.is-flipped):hover .team-flip__scene {
    transform: translateY(-4px);
  }

  :is(.about-team-page, .about-patrons-page) .team-flip:not(.is-flipped):hover .team-flip__face--front {
    border-color: color-mix(in srgb, var(--team-accent, var(--coral)) 28%, var(--line));
    box-shadow:
      0 1px 0 rgba(255, 255, 255, 0.9) inset,
      0 22px 48px rgba(0, 43, 99, 0.11);
  }

  :is(.about-team-page, .about-patrons-page) .team-flip:not(.is-flipped):hover .team-flip__photo::after {
    opacity: 1;
  }

  :is(.about-team-page, .about-patrons-page) .team-flip:not(.is-flipped):hover .team-flip__photo img {
    transform: scale(1.045);
  }
}

@media (max-width: 991px) {
  :is(.about-team-page, .about-patrons-page) .team-leaders__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  :is(.about-team-page, .about-patrons-page) .team-flip__scene {
    min-height: clamp(20rem, 52vw, 26rem);
  }
}

@media (max-width: 680px) {
  :is(.about-team-page, .about-patrons-page) .team-leaders__grid {
    grid-template-columns: 1fr;
    max-width: 22rem;
    margin-inline: auto;
  }

  :is(.about-team-page, .about-patrons-page) .team-flip__scene {
    min-height: clamp(22rem, 88vw, 28rem);
  }

  :is(.about-team-page, .about-patrons-page) .team-flip__photo {
    max-height: 62%;
  }
}

@media (prefers-reduced-motion: reduce) {
  :is(.about-team-page, .about-patrons-page) .team-flip__card,
  :is(.about-team-page, .about-patrons-page) .team-flip__scene,
  :is(.about-team-page, .about-patrons-page) .team-flip__face--front,
  :is(.about-team-page, .about-patrons-page) .team-flip__photo img,
  :is(.about-team-page, .about-patrons-page) .team-flip__cta,
  :is(.about-team-page, .about-patrons-page) .team-flip__cta .icon,
  :is(.about-team-page, .about-patrons-page) .team-flip__back,
  :is(.about-team-page, .about-patrons-page) .team-flip__back-icon {
    transition: none !important;
  }

  :is(.about-team-page, .about-patrons-page) .team-flip:not(.is-flipped):hover .team-flip__scene,
  :is(.about-team-page, .about-patrons-page) .team-flip:not(.is-flipped):hover .team-flip__photo img {
    transform: none !important;
  }
}

/* Patrons & Advisors — editorial council */
.about-patrons-page .pa-hero {
  position: relative;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  min-height: min(92svh, 54rem);
  overflow: hidden;
  isolation: isolate;
  background: var(--navy);
}
.about-patrons-page .pa-hero .about-hero__bg {
  z-index: 0;
  overflow: hidden;
}
.about-patrons-page .pa-hero .about-hero__bg img {
  object-position: center 42%;
  will-change: transform;
}
.about-patrons-page .pa-hero .about-hero__shade {
  z-index: 1;
  background:
    linear-gradient(180deg, rgba(0, 20, 48, 0.38) 0%, rgba(0, 43, 99, 0.22) 38%, rgba(0, 21, 48, 0.78) 100%),
    linear-gradient(105deg, rgba(0, 43, 99, 0.62) 0%, rgba(0, 43, 99, 0.18) 52%, rgba(15, 38, 67, 0.42) 100%);
}
.about-patrons-page .pa-hero .pp-hero__glow {
  z-index: 2;
}
.about-patrons-page .pa-hero .container {
  position: relative;
  z-index: 3;
  padding-bottom: 1.25rem;
}
.about-patrons-page .pa-hero .pp-hero__head {
  max-width: 46rem;
}
.about-patrons-page .pa-hero .pp-hero__title {
  max-width: 13ch;
  margin-bottom: 1.35rem;
}
.about-patrons-page .pa-hero .pp-hero__lede {
  max-width: 46ch;
}
.about-patrons-page .pa-hero .pp-hero__scroll {
  margin-top: clamp(2rem, 4vw, 3.25rem);
}
.about-patrons-page .pa-council {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  padding: clamp(4.5rem, 9vw, 7.5rem) 0 clamp(3.5rem, 7vw, 5.5rem);
  background: var(--cream);
  color: var(--navy);
}
.about-patrons-page .pa-council__glow {
  position: absolute;
  inset: -18% -10% auto;
  height: 58%;
  background:
    radial-gradient(ellipse 42% 48% at 12% 20%, rgba(237, 106, 80, 0.07), transparent 72%),
    radial-gradient(ellipse 38% 44% at 88% 18%, rgba(201, 220, 80, 0.06), transparent 74%);
  pointer-events: none;
  z-index: 0;
}
.about-patrons-page .pa-council__inner {
  position: relative;
  z-index: 1;
}
.about-patrons-page .pa-council__intro {
  max-width: 70ch;
  margin-bottom: clamp(2.5rem, 5vw, 4rem);
}
.about-patrons-page .pa-council__intro .section-tag {
  margin-bottom: clamp(1.15rem, 2.4vw, 1.75rem);
}
.about-patrons-page .pa-council__title {
  max-width: 14ch;
  margin: 0 0 1rem;
  font-size: clamp(2.4rem, 5.5vw, 4.5rem);
  font-weight: 600;
  line-height: 0.95;
  letter-spacing: -0.05em;
}
.about-patrons-page .pa-council__title em {
  font-family: "Playfair Display", serif;
  font-weight: 500;
  font-style: italic;
}
.about-patrons-page .pa-council__title span {
  color: var(--coral);
}
.about-patrons-page .pa-council__lede {
  max-width: 60ch;
  margin: 0;
  color: rgba(0, 43, 99, 0.78);
  font-size: clamp(0.95rem, 1.1vw, 1.05rem);
  line-height: 1.58;
}
.about-patrons-page .pa-council__layout {
  min-width: 0;
}
.about-patrons-page .team-flip__name,
.about-patrons-page .team-flip__role {
  overflow-wrap: break-word;
}
@media (max-width: 680px) {
  .about-patrons-page .pa-hero {
    min-height: min(86svh, 44rem);
  }
  .about-patrons-page .pa-hero .about-hero__bg img {
    object-position: 62% center;
  }
  .about-patrons-page .pa-hero .pp-hero__head,
  .about-patrons-page .pa-hero .pp-hero__title {
    max-width: none;
  }
  .about-patrons-page .pa-council__title {
    max-width: 12ch;
  }
}

/* Vision & Mission ? editorial page */
.about-vision-page .vm-manifesto {
  position: relative;
  overflow: hidden;
  padding: clamp(4.5rem, 9vw, 7.5rem) 0;
}

.about-vision-page .vm-manifesto__layout {
  display: grid;
  grid-template-columns: minmax(0, 1.05fr) minmax(0, 0.9fr);
  gap: clamp(2rem, 5vw, 5rem);
  align-items: center;
}

.about-vision-page .vm-manifesto__index {
  display: block;
  margin-bottom: 1rem;
  color: var(--coral);
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.16em;
}

.about-vision-page .vm-manifesto__title {
  margin: 0 0 1.5rem;
  max-width: 12ch;
  font-size: clamp(2.2rem, 4.8vw, 3.8rem);
  font-weight: 600;
  line-height: 0.95;
  letter-spacing: -0.05em;
  color: var(--navy);
}

.about-vision-page .vm-manifesto__title em {
  font-family: "Playfair Display", serif;
  font-weight: 500;
  font-style: italic;
}

.about-vision-page .vm-manifesto__title span {
  color: var(--coral);
}

.about-vision-page .vm-pullquote {
  margin: 0 0 1.5rem;
  padding: 0 0 0 1.1rem;
  border-left: 3px solid var(--coral);
}

.about-vision-page .vm-pullquote p {
  margin: 0;
  font-family: "Playfair Display", serif;
  font-size: clamp(1.5rem, 3vw, 2.15rem);
  font-weight: 500;
  font-style: italic;
  line-height: 1.15;
  letter-spacing: -0.02em;
  color: var(--navy);
}

.about-vision-page .vm-manifesto__prose {
  max-width: 100%;
}

.about-vision-page .vm-manifesto__media {
  position: relative;
  margin: 0;
  overflow: hidden;
  aspect-ratio: 4 / 5;
  justify-self: end;
  background: #0a1a33;
}

.about-vision-page .vm-manifesto__media img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 1.2s var(--ease);
}

.about-vision-page .vm-manifesto__frame {
  position: absolute;
  inset: 1.1rem;
  pointer-events: none;
}

@media (hover: hover) and (pointer: fine) {
  .about-vision-page .vm-manifesto__media:hover img {
    transform: scale(1.04);
  }
}

.about-vision-page .vm-mission__statement {
 line-height: 1.6;
}

.about-vision-page .vm-bridge {
  position: relative;
  overflow: hidden;
  padding: clamp(4rem, 8vw, 6.5rem) 0 clamp(2rem, 4vw, 3rem);
  background: var(--cream);
  color: var(--navy);
}

.about-vision-page .vm-bridge__glow {
  position: absolute;
  inset: -15% -8% auto;
  height: 65%;
  background:
    radial-gradient(ellipse 42% 48% at 18% 22%, rgba(237, 106, 80, 0.07), transparent 72%),
    radial-gradient(ellipse 38% 44% at 82% 28%, rgba(201, 220, 80, 0.06), transparent 74%);
  pointer-events: none;
}

.about-vision-page .vm-bridge__layout {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: minmax(0, 1.05fr) minmax(0, 0.88fr);
  gap: clamp(2rem, 5vw, 4.5rem);
  align-items: center;
}

.about-vision-page .vm-bridge__inner {
  max-width: 100%;
}

.about-vision-page .vm-bridge__title {
  margin: 0.85rem 0 1.25rem;
  font-size: clamp(2rem, 4.5vw, 3.4rem);
  font-weight: 600;
  line-height: 0.96;
  letter-spacing: -0.05em;
  color: var(--navy);
}

.about-vision-page .vm-bridge__title em {
  font-family: "Playfair Display", serif;
  font-weight: 500;
  font-style: italic;
}

.about-vision-page .vm-bridge__title span {
  color: var(--coral);
}

.about-vision-page .vm-bridge__lede {
  margin: 0;
  font-size: 1rem;
  line-height: 1.6;
}

.about-vision-page .vm-bridge__media {
  position: relative;
  margin: 0;
  overflow: hidden;
  aspect-ratio: 4 / 5;
  justify-self: end;
  background: #0a1a33;
}

.about-vision-page .vm-bridge__media img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 1.2s var(--ease);
}

.about-vision-page .vm-bridge__frame {
  position: absolute;
  inset: 1.1rem;
  pointer-events: none;
}

@media (hover: hover) and (pointer: fine) {
  .about-vision-page .vm-bridge__media:hover img {
    transform: scale(1.04);
  }
}

.about-vision-page .vm-bridge + .vm-practice {
  margin-top: 0;
}

.about-vision-page .vm-practice .academic-element__body p + p {
  margin-top: 1rem;
}

.about-vision-page .vm-practice .academic-element__body p em {
  color: rgba(255, 255, 255, 0.82);
}

.about-vision-page .pp-next {
  border-top: 1px solid var(--line);
}

@media (max-width: 991px) {
  .about-vision-page .vm-manifesto__layout,
  .about-vision-page .vm-bridge__layout {
    grid-template-columns: 1fr;
  }

  .about-vision-page .vm-manifesto__media,
  .about-vision-page .vm-bridge__media {
    max-width: none;
    justify-self: stretch;
  }

  .about-vision-page .vm-manifesto__title {
    max-width: none;
  }

  .about-vision-page .vm-bridge__inner {
    max-width: none;
  }
}

@media (max-width: 680px) {
  .about-vision-page .vm-pullquote p {
    font-size: 1.35rem;
  }
}

@media (prefers-reduced-motion: reduce) {
  .about-vision-page .vm-manifesto__media img,
  .about-vision-page .vm-bridge__media img {
    transition: none !important;
  }

  .about-vision-page .vm-manifesto__media:hover img,
  .about-vision-page .vm-bridge__media:hover img {
    transform: none !important;
  }
}

/* Why SRI ? editorial page */
.about-why-page .pp-open__title {
  max-width: min(30ch, 100%);
}

.about-why-page .why-open__actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 1rem 1.25rem;
  grid-column: 1 / -1;
  margin-top: 0.25rem;
}

.about-why-page .why-pillars .academic-element__body p + p {
  margin-top: 1rem;
}

.about-why-page .why-pillars .academic-element__body .about-pillar__partners {
  margin-top: 1rem;
  padding-top: 0.85rem;
  border-top: 1px solid rgba(255, 255, 255, 0.12);
  color: rgba(255, 255, 255, 0.68);
  font-size: 0.82rem;
}

.about-why-page .why-pillars .academic-element__body .about-pillar__partners strong {
  color: rgba(201, 220, 80, 0.88);
}

/* Campus & Facilities ? editorial exploration */
.about-campus-page .campus-intro {
  position: relative;
  overflow: hidden;
  padding: clamp(3.5rem, 7vw, 5.5rem) 0 clamp(2rem, 4vw, 3rem);
}

.about-campus-page .campus-intro__glow {
  position: absolute;
  inset: -15% -8% auto;
  height: 65%;
  background:
    radial-gradient(ellipse 42% 48% at 18% 22%, rgba(237, 106, 80, 0.07), transparent 72%),
    radial-gradient(ellipse 38% 44% at 82% 28%, rgba(201, 220, 80, 0.06), transparent 74%);
  pointer-events: none;
}

.about-campus-page .campus-intro .academic-section-head {
  position: relative;
  z-index: 1;
}

.about-campus-page .campus-intro__actions {
  margin-top: 1.25rem;
}

.about-campus-page .campus-zone {
  scroll-margin-top: 5.5rem;
}

.about-campus-page .campus-zone__media {
  position: relative;
}

.about-campus-page .campus-zone__frame {
  position: absolute;
  inset: 1rem;
  pointer-events: none;
  opacity: 0;
  transition: opacity 0.45s var(--ease);
}

.about-campus-page .campus-zone__frame--light {
  border-color: rgba(255, 255, 255, 0.18);
}

@media (hover: hover) and (pointer: fine) {
  .about-campus-page .campus-zone__media:hover .campus-zone__frame {
    opacity: 1;
  }
}

.about-campus-page .campus-zone__index {
  display: inline-block;
  margin-right: 0.55rem;
  color: var(--zone-accent, var(--coral));
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.12em;
}

.about-campus-page .campus-zone__index--light {
  color: var(--lime);
}

.about-campus-page .campus-zone__traits {
  margin-top: 1.5rem;
}

.about-campus-page .campus-zone__traits li {
  opacity: 0;
  transform: translateY(10px);
  transition: opacity 0.55s var(--ease), transform 0.55s var(--ease);
  transition-delay: calc(var(--i, 0) * 70ms + 120ms);
}

.about-campus-page .campus-zone__copy.revealed .campus-zone__traits li,
.about-campus-page [data-reveal].revealed .campus-zone__traits li {
  opacity: 1;
  transform: none;
}

.about-campus-page .campus-zone__traits--light {
  border-top-color: rgba(255, 255, 255, 0.14);
}

.about-campus-page .campus-zone__traits--light li {
  color: rgba(255, 255, 255, 0.72);
}

.about-campus-page .campus-zone .sr-reading__marks {
  margin-top: 1.75rem;
}

.about-campus-page .campus-tours {
  position: relative;
  overflow: hidden;
  padding: clamp(3.5rem, 7vw, 5.5rem) 0;
  border-top: 1px solid var(--line);
}

.about-campus-page .campus-tours__glow {
  position: absolute;
  inset: auto -8% -20%;
  height: 70%;
  background:
    radial-gradient(ellipse 40% 46% at 82% 72%, rgba(237, 106, 80, 0.06), transparent 72%),
    radial-gradient(ellipse 38% 42% at 14% 68%, rgba(67, 150, 201, 0.05), transparent 74%);
  pointer-events: none;
}

.about-campus-page .campus-tours__inner {
  position: relative;
  z-index: 1;
  max-width: 62ch;
}

@media (max-width: 991px) {
  .about-campus-page .fp-story__layout,
  .about-campus-page .sr-reading__layout {
    grid-template-columns: 1fr;
  }

  .about-campus-page .fp-story__media,
  .about-campus-page .sr-reading__media {
    max-width: none;
    justify-self: stretch;
  }
}

@media (prefers-reduced-motion: reduce) {
  .about-campus-page .campus-zone__traits li,
  .about-campus-page .campus-zone__frame {
    transition: none !important;
  }

  .about-campus-page .campus-zone__traits li {
    opacity: 1 !important;
    transform: none !important;
  }
}


/* ============================================================
   The GEMS Story page
   ============================================================ */
.about-gems-page .gs-origin {
  padding: clamp(4rem, 8vw, 7rem) 0;
}

.about-gems-page .gs-origin__copy {
  max-width: none;
  width: 100%;
}

.about-gems-page .gs-origin__title {
  max-width: 28ch;
  margin: 0 0 2.25rem;
  color: var(--navy);
  font-size: clamp(2.4rem, 4.4vw, 3.8rem);
  font-weight: 600;
  line-height: 0.94;
  letter-spacing: -0.05em;
}

.about-gems-page .gs-origin__title em {
  font-family: "Playfair Display", serif;
  font-weight: 500;
  font-style: italic;
}

.about-gems-page .gs-origin__title span {
  color: var(--coral);
}

.about-gems-page .gs-origin .about-prose {
  max-width: none;
}

.about-gems-page .gs-quote {
  margin: 1.75rem 0 0;
  padding: 1.25rem 0 0;
  border-top: 1px solid rgba(0, 43, 99, 0.14);
}

.about-gems-page .gs-quote p {
  margin: 0;
  max-width: min(42rem, 100%);
  color: var(--navy);
  font-family: "Playfair Display", serif;
  font-size: clamp(1.45rem, 2.4vw, 2rem);
  font-style: italic;
  font-weight: 500;
  line-height: 1.2;
  letter-spacing: -0.03em;
}

.about-gems-page .gs-letter {
  padding: clamp(4.5rem, 9vw, 7.5rem) 0;
  background: var(--paper);
}

.about-gems-page .gs-letter__layout {
  display: grid;
  grid-template-columns: minmax(0, 1.35fr) minmax(0, 0.75fr);
  grid-template-areas:
    "head aside"
    "body aside";
  gap: clamp(2rem, 4vw, 3.5rem) clamp(2rem, 5vw, 4.5rem);
  align-items: start;
}

.about-gems-page .gs-letter__head {
  grid-area: head;
}

.about-gems-page .gs-letter__body {
  grid-area: body;
  max-width: 68ch;
}

.gs-letter__layout span {
  color: rgba(0, 43, 99, 0.55);
  font-size: 0.78rem;
  font-weight: 600;
  letter-spacing: 0.02em;
}

.about-gems-page .gs-letter__aside {
  grid-area: aside;
  position: sticky;
  top: 6.5rem;
  margin: 0;
  overflow: hidden;
  aspect-ratio: 3 / 4;
  background: #0a1a33;
  box-shadow: 0 20px 44px rgba(0, 10, 24, 0.14);
}

.about-gems-page .gs-letter__aside img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center top;
}

.about-gems-page .gs-letter__title {
  max-width: 14ch;
  margin: 0;
  color: var(--navy);
  font-size: clamp(2.4rem, 4.6vw, 3.9rem);
  font-weight: 600;
  line-height: 0.94;
  letter-spacing: -0.05em;
}

.about-gems-page .gs-letter__title em {
  font-family: "Playfair Display", serif;
  font-weight: 500;
  font-style: italic;
}

.about-gems-page .gs-letter__title span {
  color: var(--coral);
}

.about-gems-page .gs-letter__sign {
  margin-top: 0;
}

.about-gems-page .gs-foundation {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  padding: clamp(4.5rem, 9vw, 7.5rem) 0;
}

.about-gems-page .gs-foundation__glow {
  position: absolute;
  inset: -18% -10% auto;
  height: 70%;
  background:
    radial-gradient(ellipse 46% 52% at 12% 18%, rgba(237, 106, 80, 0.11), transparent 70%),
    radial-gradient(ellipse 42% 48% at 90% 26%, rgba(201, 220, 80, 0.09), transparent 72%);
  pointer-events: none;
  z-index: 0;
}

.about-gems-page .gs-foundation__grid {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: minmax(0, 1.1fr) minmax(0, 0.9fr);
  gap: clamp(2rem, 5vw, 4.5rem);
  align-items: center;
}

.about-gems-page .gs-foundation__title {
  max-width: 14ch;
  margin: 0 0 1.25rem;
  color: #fff;
  font-size: clamp(2.3rem, 4.4vw, 3.7rem);
  font-weight: 600;
  line-height: 0.94;
  letter-spacing: -0.05em;
}

.about-gems-page .gs-foundation__title em {
  font-family: "Playfair Display", serif;
  font-weight: 500;
  font-style: italic;
}

.about-gems-page .gs-foundation__title span {
  color: var(--lime);
}

.about-gems-page .gs-foundation__media {
  margin: 0;
  overflow: hidden;
  aspect-ratio: 4 / 5;
  max-width: 28rem;
  justify-self: end;
  background: #061428;
}

.about-gems-page .gs-foundation__media img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 1.15s var(--ease);
}

.about-gems-page .gs-foundation__media:hover img {
  transform: scale(1.035);
}

.about-gems-page .gs-legacy {
  padding: clamp(4.5rem, 9vw, 7.5rem) 0;
}

.about-gems-page .gs-legacy__head {
  max-width: 52rem;
  margin-bottom: clamp(2rem, 4.5vw, 3.25rem);
}

.about-gems-page .gs-legacy__title {
  max-width: 12ch;
  margin: 0 0 1.15rem;
  color: var(--navy);
  font-size: clamp(2.4rem, 4.6vw, 3.9rem);
  font-weight: 600;
  line-height: 0.94;
  letter-spacing: -0.05em;
}

.about-gems-page .gs-legacy__title em {
  font-family: "Playfair Display", serif;
  font-weight: 500;
  font-style: italic;
}

.about-gems-page .gs-legacy__title span {
  color: var(--coral);
}

.about-gems-page .gs-legacy__lede {
  margin: 0;
  max-width: 68ch;
  color: rgba(0, 43, 99, 0.82);
  font-size: 0.98rem;
  line-height: 1.58;
}

.about-gems-page .gs-stats {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0;
  margin: 0 0 clamp(2rem, 4vw, 3rem);
  padding: 0;
  list-style: none;
  border-top: 1px solid rgba(0, 43, 99, 0.12);
}

.about-gems-page .gs-stats > li {
  padding: clamp(1.25rem, 2.2vw, 1.75rem) clamp(1rem, 1.6vw, 1.35rem);
  border-bottom: 1px solid rgba(0, 43, 99, 0.12);
  border-right: 1px solid rgba(0, 43, 99, 0.12);
  transition-delay: calc(var(--i, 0) * 55ms);
}

.about-gems-page .gs-stats > li:nth-child(3n) {
  border-right: 0;
}

.about-gems-page .gs-stats__value {
  margin: 0 0 0.4rem;
  color: var(--navy);
  font-size: clamp(2rem, 3.6vw, 3rem);
  font-weight: 600;
  letter-spacing: -0.045em;
  line-height: 1;
}

.about-gems-page .gs-stats__label {
  margin: 0;
  max-width: 22ch;
  color: rgba(0, 43, 99, 0.68);
  font-size: 0.82rem;
  line-height: 1.4;
}

.about-gems-page .gs-legacy__close {
  max-width: 72ch;
  margin: 0;
}

.about-gems-page .gs-timeline {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  padding: clamp(4.5rem, 9vw, 7rem) 0 clamp(3.5rem, 7vw, 5.5rem);
}

.about-gems-page .gs-timeline__glow {
  position: absolute;
  inset: -20% -8% auto;
  height: 65%;
  background:
    radial-gradient(ellipse 42% 48% at 18% 20%, rgba(237, 106, 80, 0.1), transparent 70%),
    radial-gradient(ellipse 40% 46% at 82% 30%, rgba(67, 150, 201, 0.1), transparent 72%);
  pointer-events: none;
  z-index: 0;
}

.about-gems-page .gs-timeline .container {
  position: relative;
  z-index: 1;
}

.about-gems-page .gs-timeline__head {
  max-width: 28rem;
  margin-bottom: clamp(1.75rem, 3.5vw, 2.75rem);
}

.about-gems-page .gs-timeline__title {
  margin: 0;
  color: #fff;
  font-size: clamp(2.3rem, 4.4vw, 3.7rem);
  font-weight: 600;
  line-height: 0.94;
  letter-spacing: -0.05em;
}

.about-gems-page .gs-timeline__title em {
  font-family: "Playfair Display", serif;
  font-weight: 500;
  font-style: italic;
}

.about-gems-page .gs-timeline__title span {
  color: var(--lime);
}

.about-gems-page .gs-timeline__rail-wrap {
  position: relative;
  z-index: 1;
  overflow-x: hidden;
  overflow-y: hidden;
  padding: 0.5rem 0 1.25rem;
  -webkit-overflow-scrolling: touch;
  scroll-behavior: auto;
  scrollbar-width: thin;
  scrollbar-color: rgba(201, 220, 80, 0.45) transparent;
  overscroll-behavior-x: contain;
}

.about-gems-page .gs-timeline__rail-wrap.is-autoplaying {
  scrollbar-color: rgba(201, 220, 80, 0.28) transparent;
}

.about-gems-page .gs-timeline__rail-wrap--loop .gs-timeline__item[data-gs-clone] {
  pointer-events: none;
}

.about-gems-page .gs-timeline__rail {
  display: flex;
  gap: 0;
  width: max-content;
  min-width: 100%;
  margin: 0;
  padding: 1.5rem clamp(1.25rem, 4vw, 4rem) 0.5rem;
  list-style: none;
  border-top: 1px solid rgba(255, 255, 255, 0.16);
}

.about-gems-page .gs-timeline__item {
  position: relative;
  flex: 0 0 clamp(11.5rem, 16vw, 14rem);
  padding: 1.35rem 1.15rem 0 0;
  opacity: 0.42;
  transform: translateY(0.35rem);
  transition:
    opacity 0.45s var(--ease),
    transform 0.45s var(--ease),
    color 0.35s var(--ease);
}

.about-gems-page .gs-timeline__item::before {
  content: "";
  position: absolute;
  top: -0.35rem;
  left: 0;
  width: 0.55rem;
  height: 0.55rem;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.35);
  box-shadow: 0 0 0 4px rgba(0, 43, 99, 0.35);
  transition: background 0.35s var(--ease), transform 0.35s var(--ease);
}

.about-gems-page .gs-timeline__item.is-active,
.about-gems-page .gs-timeline__item:hover,
.about-gems-page .gs-timeline__item:focus-within {
  opacity: 1;
  transform: none;
}

.about-gems-page .gs-timeline__item.is-active::before,
.about-gems-page .gs-timeline__item:hover::before {
  background: var(--lime);
  transform: scale(1.15);
}

.about-gems-page .gs-timeline__year {
  margin: 0 0 0.45rem;
  color: var(--lime);
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

.about-gems-page .gs-timeline__event {
  margin: 0;
  max-width: 16ch;
  color: rgba(255, 255, 255, 0.86);
  font-size: 0.95rem;
  line-height: 1.35;
  letter-spacing: -0.02em;
}

.about-gems-page .gs-curricula {
  padding: clamp(4rem, 8vw, 6.5rem) 0;
}

.about-gems-page .gs-curricula__grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1.05fr);
  gap: clamp(2rem, 5vw, 4.5rem);
  align-items: center;
}

.about-gems-page .gs-curricula__title {
  max-width: 14ch;
  margin: 0 0 1rem;
  color: var(--navy);
  font-size: clamp(2.3rem, 4.4vw, 3.6rem);
  font-weight: 600;
  line-height: 0.94;
  letter-spacing: -0.05em;
}

.about-gems-page .gs-curricula__title em {
  font-family: "Playfair Display", serif;
  font-weight: 500;
  font-style: italic;
}

.about-gems-page .gs-curricula__title span {
  color: var(--coral);
}

.about-gems-page .gs-curricula__lede {
  margin: 0 0 1.35rem;
  max-width: 42ch;
  color: rgba(0, 43, 99, 0.8);
  font-size: 0.98rem;
  line-height: 1.55;
}

.about-gems-page .gs-curricula__list {
  display: flex;
  flex-wrap: wrap;
  gap: 0.55rem;
  margin: 0 0 1.75rem;
  padding: 0;
  list-style: none;
}

.about-gems-page .gs-curricula__list li {
  display: inline-flex;
  align-items: center;
  min-height: 2.75rem;
  padding: 0.55rem 1rem;
  color: var(--navy);
  font-size: 0.84rem;
  font-weight: 700;
  letter-spacing: 0.02em;
  border: 1px solid rgba(0, 43, 99, 0.18);
  background: rgba(255, 255, 255, 0.45);
}

.about-gems-page .gs-curricula__cta {
  color: var(--navy);
  border-color: rgba(0, 43, 99, 0.35);
  transition: color 0.25s var(--ease), border-color 0.25s var(--ease);
}

.about-gems-page .gs-curricula__cta:hover,
.about-gems-page .gs-curricula__cta:focus-visible {
  color: var(--coral);
  border-color: var(--coral);
  outline: none;
}

.about-gems-page .gs-curricula__cta:focus-visible {
  outline: 2px solid var(--coral);
  outline-offset: 4px;
}

.about-gems-page .gs-curricula__media {
  margin: 0;
  overflow: hidden;
  aspect-ratio: 5 / 4;
  background: #0a1a33;
  box-shadow: 0 22px 46px rgba(0, 10, 24, 0.14);
}

.about-gems-page .gs-curricula__media img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 30%;
  transition: transform 1.15s var(--ease);
}

.about-gems-page .gs-curricula__media:hover img {
  transform: scale(1.035);
}

.about-gems-page .gs-advantage {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  padding: clamp(4.5rem, 9vw, 7.5rem) 0;
}

.about-gems-page .gs-advantage__glow {
  position: absolute;
  inset: -18% -10% auto;
  height: 68%;
  background:
    radial-gradient(ellipse 46% 52% at 14% 20%, rgba(237, 106, 80, 0.1), transparent 70%),
    radial-gradient(ellipse 42% 48% at 88% 28%, rgba(201, 220, 80, 0.08), transparent 72%);
  pointer-events: none;
  z-index: 0;
}

.about-gems-page .gs-advantage .container {
  position: relative;
  z-index: 1;
}

.about-gems-page .gs-advantage__head {
  max-width: 28rem;
  margin-bottom: clamp(2rem, 4vw, 3rem);
}

.about-gems-page .gs-advantage__title {
  margin: 0;
  color: #fff;
  font-size: clamp(2.3rem, 4.4vw, 3.7rem);
  font-weight: 600;
  line-height: 0.94;
  letter-spacing: -0.05em;
}

.about-gems-page .gs-advantage__title em {
  font-family: "Playfair Display", serif;
  font-weight: 500;
  font-style: italic;
}

.about-gems-page .gs-advantage__title span {
  color: var(--lime);
}

.about-gems-page .gs-advantage__grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: clamp(1rem, 2vw, 1.5rem);
  margin: 0;
  padding: 0;
  list-style: none;
  align-items: stretch;
}

.about-gems-page .gs-advantage__grid > li {
  display: flex;
  min-width: 0;
  transition-delay: calc(var(--i, 0) * 80ms);
}

.about-gems-page .gs-card {
  display: flex;
  flex-direction: column;
  width: 100%;
  overflow: hidden;
  background: rgba(255, 255, 255, 0.03);
  outline: 1px solid rgba(255, 255, 255, 0.1);
  transition:
    transform 0.55s var(--ease),
    outline-color 0.35s var(--ease),
    background 0.35s var(--ease),
    box-shadow 0.55s var(--ease);
}

.about-gems-page .gs-card__media {
  margin: 0;
  overflow: hidden;
  aspect-ratio: 4 / 4;
  background: #061428;
}

.about-gems-page .gs-card__media img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 1.15s var(--ease);
}

.about-gems-page .gs-card__body {
  display: flex;
  flex-direction: column;
  flex: 1;
  padding: clamp(1.15rem, 2vw, 1.45rem);
  gap: 0.75rem;
}

.about-gems-page .gs-card__title {
  margin: 0;
  color: #fff;
  font-size: clamp(1.15rem, 1.5vw, 1.35rem);
  font-weight: 600;
  letter-spacing: -0.03em;
  line-height: 1.15;
}

.about-gems-page .gs-card__copy {
  margin: 0;
  flex: 1;
  color: rgba(255, 255, 255, 0.72);
  font-size: 0.86rem;
  line-height: 1.5;
}

.about-gems-page .gs-card .under-link {
  justify-self: start;
  margin-top: 0.35rem;
}

@media (hover: hover) and (pointer: fine) {
  .about-gems-page .gs-card:hover {
    transform: translateY(-6px);
    outline-color: rgba(201, 220, 80, 0.45);
    background: rgba(255, 255, 255, 0.05);
    box-shadow: 0 18px 40px rgba(0, 0, 0, 0.28);
  }

  .about-gems-page .gs-card:hover .gs-card__media img {
    transform: scale(1.05);
  }

  .about-gems-page .gs-card:hover .gs-card__title {
    color: var(--lime);
  }
}

@media (max-width: 1100px) {
  .about-gems-page .gs-foundation__grid,
  .about-gems-page .gs-curricula__grid {
    grid-template-columns: 1fr;
    gap: clamp(1.75rem, 4vw, 2.5rem);
  }

  .about-gems-page .gs-foundation__media {
    max-width: 24rem;
    justify-self: start;
  }

  .about-gems-page .gs-letter__layout {
    grid-template-columns: 1fr;
    grid-template-areas:
      "head"
      "aside"
      "body";
  }

  .about-gems-page .gs-letter__aside {
    position: static;
    max-width: 18rem;
  }

  .about-gems-page .gs-stats {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .about-gems-page .gs-stats > li:nth-child(3n) {
    border-right: 1px solid rgba(0, 43, 99, 0.12);
  }

  .about-gems-page .gs-stats > li:nth-child(2n) {
    border-right: 0;
  }

  .about-gems-page .gs-advantage__grid {
    grid-template-columns: 1fr;
    max-width: 28rem;
  }
}

@media (max-width: 640px) {
  .about-gems-page .gs-stats {
    grid-template-columns: 1fr;
  }

  .about-gems-page .gs-stats > li {
    border-right: 0;
  }

  .about-gems-page .gs-timeline__item {
    flex-basis: 11rem;
  }

  .about-gems-page .gs-curricula__list li {
    flex: 1 1 calc(50% - 0.55rem);
    justify-content: center;
  }
}

@media (prefers-reduced-motion: reduce) {
  .about-gems-page .gs-foundation__media img,
  .about-gems-page .gs-curricula__media img,
  .about-gems-page .gs-card,
  .about-gems-page .gs-card__media img,
  .about-gems-page .gs-timeline__item {
    transition: none !important;
  }

  .about-gems-page .gs-foundation__media:hover img,
  .about-gems-page .gs-curricula__media:hover img,
  .about-gems-page .gs-card:hover,
  .about-gems-page .gs-card:hover .gs-card__media img {
    transform: none !important;
  }
}

/* ==========================================================================
   Error pages (404 / 500) — from premium-plus-template/css/site.css
   Must live in site.css so body cream + .logo filter cannot leak through.
   ========================================================================== */

body.error-page,
body.error404 {
  min-height: 100vh;
  background: var(--navy) !important;
  color: #fff;
}

body.error-page .logo {
  width: auto;
  max-width: 126px;
}

.error-page .error-header {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  z-index: 20;
  padding: 0 clamp(1.25rem, 4vw, 2.5rem);
}

.error-page .error-header__bar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  max-width: 1440px;
  margin: 0 auto;
  min-height: 5.25rem;
  padding: 1rem 0;
}

.error-page .error-header .logo img {
  display: block;
  width: auto !important;
  max-width: 126px;
  height: 2.75rem !important;
}

.error-page .error-header .nav-cta {
  flex: 0 0 auto;
  color: #fff;
  border-color: #fff;
  background: transparent;
}

.error-page .error-header .nav-cta:hover,
.error-page .error-header .nav-cta:focus-visible {
  color: var(--navy);
  background: #fff;
}

.error-page #main {
  padding: 0;
  margin: 0;
  min-height: 0;
  background: transparent;
}

.error-page .error-stage {
  position: relative;
  display: flex;
  align-items: center;
  min-height: 100vh;
  padding: clamp(7.5rem, 14vw, 9.5rem) 0 clamp(4rem, 8vw, 6rem);
  overflow: hidden;
  isolation: isolate;
  background: var(--navy);
  color: #fff;
}

.error-page .error-stage__glow {
  position: absolute;
  inset: -20% -10% auto;
  height: 75%;
  background:
    radial-gradient(ellipse 55% 50% at 18% 30%, rgba(201, 220, 80, 0.16), transparent 70%),
    radial-gradient(ellipse 45% 45% at 88% 22%, rgba(237, 106, 80, 0.14), transparent 70%);
  pointer-events: none;
  z-index: 0;
  animation: error-glow-drift 14s var(--ease) infinite alternate;
}

.error-page .error-stage__motif {
  position: absolute;
  right: -8%;
  bottom: -18%;
  width: min(58vw, 34rem);
  height: min(58vw, 34rem);
  border-radius: 50%;
  border: 1px solid rgba(255, 255, 255, 0.08);
  pointer-events: none;
  z-index: 0;
  animation: error-motif-pulse 10s var(--ease) infinite alternate;
}

.error-page .error-stage__motif::before {
  content: "";
  position: absolute;
  inset: 12%;
  border-radius: 50%;
  border: 1px solid rgba(201, 220, 80, 0.12);
}

.error-page .error-stage__inner {
  position: relative;
  z-index: 1;
  max-width: 46rem;
}

.error-page .error-stage__code {
  margin: 0 0 1.15rem;
  color: color-mix(in srgb, var(--lime) 55%, transparent);
  font-size: clamp(4.5rem, 14vw, 9.5rem);
  font-weight: 600;
  line-height: 0.85;
  letter-spacing: -0.07em;
  user-select: none;
}

.error-page--500 .error-stage__code {
  color: color-mix(in srgb, var(--coral) 50%, transparent);
}

.error-page .error-stage__title {
  margin: 0.85rem 0 1.25rem;
  color: #fff;
  font-size: clamp(2.4rem, 5.8vw, 4.8rem);
  font-weight: 600;
  line-height: 0.94;
  letter-spacing: -0.05em;
}

.error-page .error-stage__title em {
  font-family: "Playfair Display", serif;
  font-weight: 500;
  font-style: italic;
}

.error-page .error-stage__title span {
  color: var(--coral);
}

.error-page .error-stage__lede {
  margin: 0 0 clamp(1.75rem, 3.5vw, 2.5rem);
  max-width: 42ch;
  color: rgba(255, 255, 255, 0.72);
  font-size: clamp(0.98rem, 1.2vw, 1.08rem);
  line-height: 1.55;
}

.error-page .error-stage__actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 1rem 1.5rem;
}

.error-page .error-stage__actions .pill {
  cursor: pointer;
  font: inherit;
  font-weight: 700;
  font-size: 0.8rem;
}

.error-page .error-stage__actions .pill:focus-visible,
.error-page .error-stage__actions .under-link:focus-visible,
.error-page .error-header .nav-cta:focus-visible,
.error-page .error-header .logo:focus-visible {
  outline: 2px solid var(--lime);
  outline-offset: 4px;
}

@keyframes error-glow-drift {
  from {
    transform: translate3d(0, 0, 0) scale(1);
  }

  to {
    transform: translate3d(2%, 3%, 0) scale(1.04);
  }
}

@keyframes error-motif-pulse {
  from {
    transform: translate3d(0, 0, 0) scale(1);
    opacity: 0.7;
  }

  to {
    transform: translate3d(-2%, -3%, 0) scale(1.06);
    opacity: 1;
  }
}

@media (max-width: 639px) {
  .error-page .error-header .nav-cta {
    display: none;
  }

  .error-page .error-stage__actions {
    flex-direction: column;
    align-items: flex-start;
  }
}

@media (prefers-reduced-motion: reduce) {
  .error-page .error-stage__glow,
  .error-page .error-stage__motif {
    animation: none !important;
  }
}

.pp-chapter__media img,

.pp-play__media img,

.pp-independence__media img,

.pp-subjects__media img {

  display: block;

  width: 100%;

  height: 100%;

  object-fit: cover;

  transition: transform 1.2s var(--ease);

}

/* —— Privacy Policy page —— */
.privacy-page {
  background: var(--cream);
}

.privacy-page #main {
  padding: clamp(2.5rem, 6vw, 4.5rem) 0 clamp(4rem, 8vw, 6rem);
  background:
    linear-gradient(180deg, color-mix(in srgb, var(--paper) 72%, var(--cream)) 0%, var(--cream) 42%, var(--cream) 100%);
}

.privacy-shell {
  display: block;
  width: 100%;
  margin-top: 5.5rem;
}

.privacy-doc {
  width: 100%;
  max-width: none;
  margin-top: 5rem !important;
  padding: 0 4rem 4rem !important;
  background: var(--paper);
  
  box-shadow: 0 18px 48px color-mix(in srgb, var(--navy) 5%, transparent);
}

.privacy-doc__head {
  margin-bottom: clamp(1.5rem, 3vw, 2.25rem);
  padding-bottom: clamp(1.25rem, 2.5vw, 1.75rem);
  border-bottom: 1px solid var(--line);
  padding: 4rem 0 0 !important;
}

.privacy-doc__head .section-tag {
  margin-bottom: 0.85rem;
}

.privacy-doc__head h1 {
  margin: 0 0 1rem 0;
  font-size: clamp(2.1rem, 4.2vw, 3rem);
  font-weight: 500;
  line-height: 1.15;
  color: var(--navy);
}

.privacy-doc__intro,
.privacy-section {
  color: var(--navy);
  font-size: 1rem;
  line-height: 1.7;
  margin-top: 1rem !important;
}

.privacy-doc__intro p,
.privacy-section > p {
  margin: 0 0 1rem;
}

.privacy-section {
  margin-top: clamp(2rem, 4vw, 2.75rem);
  padding-top: clamp(1.5rem, 3vw, 2rem);
  border-top: 1px solid var(--line);
  scroll-margin-top: 7.5rem;
}

.privacy-section h2 {
  margin: 1rem 0 1rem;
  font-size: clamp(1.25rem, 2.2vw, 1.55rem);
  font-weight: 700;
  line-height: 1.3;
  color: var(--navy);
  scroll-margin-top: 8rem;
}

.privacy-section h3 {
  margin: 1.35rem 0 0.7rem;
  font-size: 1.05rem;
  font-weight: 600;
  line-height: 1.45;
  color: var(--navy);
}

.privacy-clauses {
  margin: 0 0 1rem;
  padding: 0;
  list-style: none;
}

.privacy-clauses > li {
  position: relative;
  margin: 0 0 0.75rem;
  padding-left: 0.9rem;
}

.privacy-clauses > li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.72em;
  width: 0.28rem;
  height: 0.28rem;
  border-radius: 50%;
  background: color-mix(in srgb, var(--coral) 80%, var(--navy));
}

.privacy-clauses--sub {
  margin-left: 0.35rem;
  padding-left: 0.85rem;
  border-left: 1px solid var(--line);
}

.privacy-doc a {
  color: var(--blue);
  text-decoration-thickness: 1px;
  text-underline-offset: 0.18em;
  word-break: break-word;
}

.privacy-doc a:hover,
.privacy-doc a:focus-visible {
  color: var(--navy);
  outline: none;
}

.privacy-address {
  display: block;
  margin: 0 0 1.15rem;
  font-style: normal;
  line-height: 1.65;
  color: color-mix(in srgb, var(--navy) 82%, #000);
}

.privacy-top {
  position: fixed;
  right: max(1rem, env(safe-area-inset-right));
  bottom: max(1.25rem, env(safe-area-inset-bottom));
  z-index: 40;
  padding: 0.7rem 1rem;
  border: 1px solid color-mix(in srgb, var(--navy) 16%, transparent);
  background: color-mix(in srgb, var(--paper) 92%, transparent);
  color: var(--navy);
  text-decoration: none;
  font-size: 0.82rem;
  font-weight: 600;
  letter-spacing: 0.02em;
  box-shadow: 0 10px 28px color-mix(in srgb, var(--navy) 12%, transparent);
  backdrop-filter: blur(8px);
  transition: opacity 0.25s var(--ease), transform 0.25s var(--ease);
}

.privacy-top:hover,
.privacy-top:focus-visible {
  transform: translateY(-2px);
  outline: none;
  border-color: var(--coral);
}

.privacy-top[hidden] {
  display: none !important;
}

@media (max-width: 991px) {
  .privacy-doc {
    padding: clamp(1.25rem, 4vw, 1.75rem);
  }
}

@media (prefers-reduced-motion: reduce) {
  .privacy-top {
    transition: none;
  }
}
 
/* —— Terms page —— */
.terms-page {
  background: var(--cream);
}

.terms-page #main {
  padding: clamp(2.5rem, 6vw, 4.5rem) 0 clamp(4rem, 8vw, 6rem);
  background:
    linear-gradient(180deg, color-mix(in srgb, var(--paper) 72%, var(--cream)) 0%, var(--cream) 42%, var(--cream) 100%);
}

.terms-shell {
  display: block;
  width: 100%;
  margin-top: 5.5rem;
}

.terms-doc {
  width: 100%;
  max-width: none;
  margin-top: 5rem !important;
  padding: 0 4rem 4rem !important;
  background: var(--paper);
  
  box-shadow: 0 18px 48px color-mix(in srgb, var(--navy) 5%, transparent);
}

.terms-doc__head {
  margin-bottom: clamp(1.5rem, 3vw, 2.25rem);
  padding-bottom: clamp(1.25rem, 2.5vw, 1.75rem);
  border-bottom: 1px solid var(--line);
  padding: 4rem 0 0 !important;
}

.terms-doc__head .section-tag {
  margin-bottom: 0.85rem;
}

.terms-doc__head h1 {
  margin: 0 0 1rem 0;
  font-size: clamp(2.1rem, 4.2vw, 3rem);
  font-weight: 500;
  line-height: 1.15;
  color: var(--navy);
}

.terms-doc__intro,
.terms-section {
  color: var(--navy);
  font-size: 1rem;
  line-height: 1.7;
  margin-top: 1rem !important;
}

.terms-doc__intro p,
.terms-section > p {
  margin: 0 0 1rem;
}

.terms-section {
  margin-top: clamp(2rem, 4vw, 2.75rem);
  padding-top: clamp(1.5rem, 3vw, 2rem);
  border-top: 1px solid var(--line);
  scroll-margin-top: 7.5rem;
}

.terms-section h2 {
  margin: 1rem 0 1rem;
  font-size: clamp(1.25rem, 2.2vw, 1.55rem);
  font-weight: 700;
  line-height: 1.3;
  color: var(--navy);
  scroll-margin-top: 8rem;
}

.terms-section h3 {
  margin: 1.35rem 0 0.7rem;
  font-size: 1.05rem;
  font-weight: 600;
  line-height: 1.45;
  color: var(--navy);
}

.terms-clauses {
  margin: 0 0 1rem;
  padding: 0;
  list-style: none;
}

.terms-clauses > li {
  position: relative;
  margin: 0 0 0.75rem;
  padding-left: 0.9rem;
}

.terms-clauses > li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.72em;
  width: 0.28rem;
  height: 0.28rem;
  border-radius: 50%;
  background: color-mix(in srgb, var(--coral) 80%, var(--navy));
}

.terms-clauses--sub {
  margin-left: 0.35rem;
  padding-left: 0.85rem;
  border-left: 1px solid var(--line);
}

.terms-doc a {
  color: var(--blue);
  text-decoration-thickness: 1px;
  text-underline-offset: 0.18em;
  word-break: break-word;
}

.terms-doc a:hover,
.terms-doc a:focus-visible {
  color: var(--navy);
  outline: none;
}

.terms-address {
  display: block;
  margin: 0 0 1.15rem;
  font-style: normal;
  line-height: 1.65;
  color: color-mix(in srgb, var(--navy) 82%, #000);
}

.terms-top {
  position: fixed;
  right: max(1rem, env(safe-area-inset-right));
  bottom: max(1.25rem, env(safe-area-inset-bottom));
  z-index: 40;
  padding: 0.7rem 1rem;
  border: 1px solid color-mix(in srgb, var(--navy) 16%, transparent);
  background: color-mix(in srgb, var(--paper) 92%, transparent);
  color: var(--navy);
  text-decoration: none;
  font-size: 0.82rem;
  font-weight: 600;
  letter-spacing: 0.02em;
  box-shadow: 0 10px 28px color-mix(in srgb, var(--navy) 12%, transparent);
  backdrop-filter: blur(8px);
  transition: opacity 0.25s var(--ease), transform 0.25s var(--ease);
}

.terms-top:hover,
.terms-top:focus-visible {
  transform: translateY(-2px);
  outline: none;
  border-color: var(--coral);
}

.terms-top[hidden] {
  display: none !important;
}

@media (max-width: 991px) {
  .terms-doc {
    padding: clamp(1.25rem, 4vw, 1.75rem);
  }
}

@media (prefers-reduced-motion: reduce) {
  .terms-top {
    transition: none;
  }
}
 
