@charset "UTF-8";

:root { --header-h:84px }

* {
  box-sizing:border-box
}
html {
  scroll-behavior:smooth;
  scroll-padding-top:100px
}
body {
  margin:0;
  background:var(--paper);
  color:var(--ink);
  font-family:var(--body);
  font-size:16px;
  line-height:1.55;
  -webkit-font-smoothing:antialiased
}
body.menu-open {
  overflow:hidden
}
a {
  color:inherit;
  text-decoration:none
}
button {
  font:inherit
}
img {
  max-width:100%;
  display:block
}
.skip-link {
  position:fixed;
  z-index:30;
  top:12px;
  left:12px;
  padding:.7rem 1rem;
  background:var(--white);
  transform:translateY(-150%)
}
.skip-link:focus {
  transform:translateY(0)
}
:focus-visible {
  outline:3px solid var(--forest-dark);
  outline-offset:4px
}
.site-header {
  height:var(--header-h);
  padding:0 var(--gutter);
  display:flex;
  align-items:center;
  justify-content:space-between;
  position:relative;
  z-index:10;
  background:var(--paper)
}
.brand {
  display:flex;
  align-items:center;
  gap:.72rem
}
.brand img {
  width:38px;
  height:44px;
  object-fit:contain
}
.brand-name,.footer-brand {
  font-size:.86rem;
  font-weight:700;
  letter-spacing:.02em;
  line-height:1.15
}
.brand-name span,.footer-brand span {
  display:block;
  font-size:.62rem;
  font-weight:500;
  letter-spacing:.08em;
  color:var(--muted);
  text-transform:uppercase;
  margin-top:.25rem
}
.primary-nav {
  display:flex;
  align-items:center;
  gap:clamp(1.2rem,2.6vw,2.65rem);
  font-size:.76rem;
  font-weight:600
}
.primary-nav>a:not(.nav-visit) {
  color:var(--color-muted);
  transition:color .2s
}
.primary-nav>a:hover {
  color:var(--forest)
}
.nav-visit {
  padding:.7rem 1.05rem;
  border:1px solid var(--forest);
  color:var(--forest)
}
.nav-visit span {
  margin-left:.55rem
}
.menu-toggle {
  display:none
}

.hero {
  min-height:min(760px,calc(100svh - var(--header-h)));
  padding:clamp(4rem,8vh,7rem) var(--gutter) 4.7rem;
  position:relative;
  display:grid;
  grid-template-columns:1.02fr .98fr;
  align-items:center;
  gap:5vw;
  overflow:hidden
}
.hero-copy {
  position:relative;
  z-index:2;
  padding-bottom:2.2rem
}
.eyebrow {
  margin:0 0 1.4rem;
  text-transform:uppercase;
  letter-spacing:.15em;
  font-size:.64rem;
  font-weight:700;
  color:var(--muted)
}
.hero .eyebrow {
  display:flex;
  align-items:center;
  gap:.7rem
}
.eyebrow-line {
  width:27px;
  height:1px;
  background:var(--gold)
}
h1,h2,h3,p {
  margin-top:0
}
.hero h1 {
  font:400 clamp(5rem,10.8vw,10rem)/.84 var(--display);
  letter-spacing:-.075em;
  margin:1.5rem 0 2.4rem;
  color:var(--forest-dark)
}
h1 em,h2 em {
  font-weight:400;
  color:var(--green)
}
.hero-bottom {
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:2rem;
  max-width:610px
}
.hero-intro {
  max-width:285px;
  margin:0;
  color:var(--color-muted);
  font-size:.96rem;
  line-height:1.65
}
.text-link {
  font-size:.73rem;
  font-weight:700;
  white-space:nowrap;
  border-bottom:1px solid var(--forest);
  padding:0 0 .45rem
}
.text-link span {
  font-size:1rem;
  margin-left:.7rem
}
.hero-art {
  position:relative;
  min-height:490px;
  align-self:stretch;
  display:flex;
  align-items:center;
  justify-content:center
}
.art-wash {
  position:absolute;
  inset:5% -12% 3% 8%;
  background:var(--paper-deep);
  clip-path:polygon(22% 0,100% 12%,86% 100%,0 83%)
}
.art-frame {
  position:relative;
  width:min(100%,540px);
  height:430px;
  overflow:hidden;
  background:var(--color-lavender-mid);
  clip-path:polygon(8% 0,100% 8%,93% 100%,0 88%)
}
.art-frame:before {
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(155deg,var(--color-lavender-mid) 0 37%,var(--color-lavender-mid) 37% 60%,var(--color-purple-soft) 60%);
  
}
.art-sun {
  position:absolute;
  width:clamp(120px,18vw,230px);
  aspect-ratio:1;
  border-radius:50%;
  background:var(--color-gold);
  right:14%;
  top:10%;
  opacity:.9
}
.art-arch {
  position:absolute;
  bottom:0;
  border:1px solid rgba(37,33,43,.25);
  border-bottom:0;
  border-radius:50% 50% 0 0
}
.art-arch-back {
  height:83%;
  width:62%;
  left:18%;
  background:rgba(252,250,247,.24);
  
}
.art-arch-front {
  height:69%;
  width:43%;
  left:27.5%;
  background:rgba(75,40,109,.24)
}
.art-ground {
  position:absolute;
  width:130%;
  height:33%;
  left:-8%;
  bottom:-11%;
  background:var(--color-green);
  border-radius:50% 50% 0 0;
  transform:rotate(-4deg)
}
.art-caption {
  position:absolute;
  z-index:2;
  left:9%;
  right:9%;
  bottom:8%;
  display:flex;
  justify-content:space-between;
  color:var(--white);
  font-size:.62rem;
  text-transform:uppercase;
  letter-spacing:.1em
}
.hero-index {
  position:absolute;
  right:0;
  bottom:8%;
  writing-mode:vertical-rl;
  color:var(--muted);
  font-size:.63rem;
  letter-spacing:.13em
}
.hero-scroll {
  position:absolute;
  bottom:1.5rem;
  left:var(--gutter);
  font-size:.62rem;
  text-transform:uppercase;
  letter-spacing:.13em;
  color:var(--muted);
  display:flex;
  align-items:center;
  gap:.75rem
}
.hero-scroll span {
  height:1px;
  width:38px;
  background:var(--gold)
}

.section-pad {
  padding-left:var(--gutter);
  padding-right:var(--gutter)
}
.section-kicker {
  display:flex;
  gap:1rem;
  align-items:center;
  font-size:.65rem;
  letter-spacing:.13em;
  text-transform:uppercase;
  color:var(--muted)
}
.section-kicker span:first-child {
  color:var(--forest);
  font-weight:700
}
.section-kicker span+span:before {
  content:"";
  display:inline-block;
  width:26px;
  height:1px;
  background:var(--line);
  vertical-align:middle;
  margin-right:1rem
}
.philosophy {
  padding-top:8.5rem;
  padding-bottom:8.8rem;
  background:var(--white)
}
.philosophy-content {
  margin:5.5rem 0 0 max(14vw,105px)
}
.philosophy h2 {
  font:400 clamp(2.65rem,5.5vw,5.8rem)/1.1 var(--display);
  letter-spacing:-.05em;
  max-width:1100px;
  margin-bottom:3.5rem
}
.philosophy h2 em {
  color:var(--forest)
}
.philosophy-foot {
  display:flex;
  align-items:center;
  gap:2rem;
  margin-left:10%;
  max-width:900px
}
.philosophy-foot p {
  max-width:850px;
  font-size:.89rem;
  color:var(--muted);
  margin:0
}
.path-mark {
  position:relative;
  width:45px;
  height:45px;
  flex:none;
  border:1px solid var(--gold);
  border-radius:50%
}
.path-mark:after {
  content:"";
  position:absolute;
  left:21px;
  top:-10px;
  height:63px;
  width:1px;
  background:var(--gold);
  transform:rotate(35deg)
}

.journey {
  background:var(--forest-dark);
  color:var(--paper);
  padding:6rem 0 4rem;
}
.journey .section-kicker {
  padding:0 var(--gutter);
  color:var(--color-lavender-mid)
}
.journey .section-kicker span:first-child {
  color:var(--color-gold)
}
.journey-heading {
  margin:4.5rem 0 3rem 14vw
}
.journey-heading .eyebrow {
  color:var(--color-lavender-soft)
}
.journey-heading h2 {
  font:400 clamp(3.5rem,7.8vw,7.7rem)/.97 var(--display);
  letter-spacing:-.06em;
  margin:0
}
.journey-heading h2 em {
  color:var(--color-lavender-soft)
}
.journey-stage {
  display:grid;
  grid-template-columns:1.05fr .95fr;
  min-height:470px;
  border-top:1px solid rgba(255,255,255,.17);
  border-bottom:1px solid rgba(255,255,255,.17)
}
.journey-visual {
  position:relative;
  overflow:hidden;
  min-height:450px;
  background:var(--color-purple-deep);
  display:grid;
  place-items:center
}
.visual-number {
  position:absolute;
  top:2rem;
  left:var(--gutter);
  font:400 1rem var(--display);
  color:var(--color-gold)
}
.visual-orbit {
  position:absolute;
  aspect-ratio:1;
  border:1px solid rgba(217,182,111,.46);
  border-radius:50%;
  transition:transform .65s cubic-bezier(.2,.7,.2,1)
}
.orbit-one {
  width:min(75%,440px)
}
.orbit-two {
  width:min(55%,320px);
  border-color:rgba(242,236,247,.35)
}
.visual-core {
  position:relative;
  width:clamp(80px,13vw,165px);
  aspect-ratio:1;
  border-radius:50%;
  background:var(--color-gold);
  box-shadow:0 0 0 1px rgba(252,250,247,.35);
  transition:transform .7s,background .5s
}
.visual-label {
  position:absolute;
  bottom:2rem;
  left:var(--gutter);
  font-size:.64rem;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:var(--color-lavender-soft)
}
.journey-copy {
  padding:3.2rem clamp(2rem,6vw,6rem) 3rem clamp(2rem,5vw,5rem);
  align-self:center
}
.stage-count {
  display:flex;
  align-items:center;
  gap:.8rem;
  font-size:.66rem;
  letter-spacing:.14em;
  color:var(--color-lavender-mid);
  margin-bottom:2.6rem
}
.stage-count span:first-child {
  color:var(--color-gold)
}
.stage-rule {
  width:60px;
  height:1px;
  background:rgba(255,255,255,.35)
}
.journey-copy h3 {
  font:400 clamp(2.6rem,5vw,4.8rem)/1 var(--display);
  letter-spacing:-.04em;
  margin:0 0 1rem
}
.journey-copy>p:not(.stage-count) {
  max-width:400px;
  color:var(--color-lavender-soft);
  font-size:.87rem;
  min-height:4.3rem
}
.stage-controls {
  margin-top:2rem;
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:0 1.5rem
}
.stage-controls button {
  color:var(--color-muted);
  background:transparent;
  border:0;
  border-top:1px solid rgba(255,255,255,.15);
  text-align:left;
  padding:.8rem 0;
  cursor:pointer;
  font-size:.90rem;
  transition:color .2s
}
.stage-controls button span {
  color:var(--color-muted);
  font-size:.63rem;
  margin-right:.7rem
}
.stage-controls button[aria-pressed="true"] {
  color:var(--paper)
}
.stage-controls button[aria-pressed="true"] span {
  color:var(--color-gold)
}
.journey-note {
  text-align:right;
  margin:1.2rem var(--gutter) 0;
  color:var(--color-lavender-mid);
  font-size:.66rem;
  letter-spacing:.08em
}

.learning {
  padding-top:8rem;
  padding-bottom:9rem;
  background: var(--color-surface);
}
.learning-head {
  display:flex;
  justify-content:space-between;
  align-items:flex-end;
  gap:2rem;
  margin:4rem 0 4.5rem 14vw
}
.learning-head h2,.beyond h2,.campus-caption h2,.visit h2 {
  font:400 clamp(3.25rem,6.5vw,6.6rem)/.98 var(--display);
  letter-spacing:0;
  margin:0
}
.learning-head>p {
  max-width:250px;
  margin:0 8vw 0 0;
  color:var(--muted);
  font-size:.87rem
}
.learning-steps {
  margin-left:14vw;
  border-top:1px solid var(--line)
}
.learning-step {
  min-height:145px;
  border-bottom:1px solid var(--line);
  display:grid;
  grid-template-columns:.6fr 2fr 1.2fr auto;
  align-items:center;
  gap:2rem;
  transition:padding .3s,background .3s
}
.learning-step:hover {
  padding-inline:1.2rem;
  background:rgba(255,255,255,.42)
}
.step-number {
  font-size:.68rem;
  color:var(--green)
}
.step-title {
  font:400 clamp(1.8rem,3vw,3rem)/1.05 var(--display);
  letter-spacing:-.035em
}
.step-meta {
  font-size:1rem;
  color:var(--muted)
}
.step-arrow {
  font-size:1.2rem;
  color:var(--forest)
}

.beyond {
  background:var(--color-background);
  padding-top:7rem;
  padding-bottom:5.5rem
}
.beyond-layout {
  display:grid;
  grid-template-columns:.82fr 1.18fr;
  align-items:center;
  gap:5vw;
  margin:4.5rem 0 4rem 14vw
}
.beyond-title .eyebrow {
  margin-bottom:1.2rem
}
.beyond-title h2 {
  margin-bottom:1.8rem
}
.beyond-title>p:last-child {
  max-width:500px;
  color:var(--muted);
  font-size:.90rem
}
.beyond-art {
  height:390px;
  position:relative;
  overflow:hidden;
  background:var(--color-lavender-mid)
}
.beyond-art:before {
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(150deg,var(--color-lavender-mid),var(--color-purple-soft) 55%,var(--color-purple-soft))
}
.beyond-shape {
  position:absolute;
  bottom:-16%;
  border-radius:50% 50% 0 0
}
.shape-a {
  width:58%;
  height:92%;
  left:5%;
  background:rgba(252,250,247,.55)
}
.shape-b {
  width:45%;
  height:76%;
  left:31%;
  background:rgba(75,40,109,.55)
}
.shape-c {
  width:42%;
  height:60%;
  left:58%;
  background:rgba(242,236,247,.65)
}
.beyond-art span {
  position:absolute;
  z-index:1;
  bottom:1.3rem;
  left:1.5rem;
  text-transform:uppercase;
  letter-spacing:.12em;
  font-size:.62rem;
  color:var(--white)
}
.themes {
  margin-left:14vw;
  border-top:1px solid var(--color-border);
  border-bottom:1px solid var(--color-border);
  display:flex;
  flex-wrap:wrap;
  gap:0
}
.themes span {
  padding:1.2rem 2rem 1.2rem 2.3rem;
  /* margin-right:2rem; */
  font-size:.75rem;
  color:var(--color-muted)
}

.campus {
  padding-top:8rem;
  padding-bottom:8rem
}
.campus .section-kicker {
  margin-bottom:3.4rem
}
.campus-frame {
  height:clamp(300px,48vw,610px);
  position:relative;
  overflow:hidden;
  background:var(--color-lavender-mid)
}
.campus-sky {
  position:absolute;
  inset:0;
  background:linear-gradient(var(--color-lavender-mid) 0 64%,var(--color-lavender-mid) 64%)
}
.campus-sun {
  position:absolute;
  width:150px;
  aspect-ratio:1;
  border-radius:50%;
  background:var(--color-gold);
  right:16%;
  top:11%
}
.campus-building {
  position:absolute;
  left:12%;
  right:9%;
  bottom:15%;
  height:52%;
  background:var(--color-lavender-soft);
  display:grid;
  grid-template-columns:repeat(6,1fr);
  gap:3%;
  padding:4% 4% 0;
  box-shadow:0 17px 0 var(--color-line)
}
.campus-building span {
  background:var(--color-green);
  height:62%;
  align-self:start
}
.campus-building span:nth-child(even) {
  height:80%;
  background:var(--color-purple-soft)
}
.campus-steps {
  position:absolute;
  left:7%;
  right:4%;
  height:14%;
  bottom:0;
  background:repeating-linear-gradient(0deg,var(--color-green) 0 5px,var(--color-lavender-mid) 5px 10px)
}
.image-note {
  position:absolute;
  bottom:1rem;
  left:1.2rem;
  margin:0;
  color:#fff;
  font-size:.62rem;
  text-transform:uppercase;
  letter-spacing:.12em
}
.campus-caption {
  display:grid;
  grid-template-columns:1fr .55fr;
  gap:4rem;
  align-items:end;
  margin:3rem 8vw 0 14vw
}
.campus-caption p {
  margin:0 0 .5rem;
  color:var(--muted);
  max-width:320px;
  font-size:.87rem
}

.visit {
  padding-top:6.5rem;
  padding-bottom:7rem;
  background:var(--forest);
  color:var(--paper);
  display:grid;
  grid-template-columns:1fr auto;
  gap:2rem
}
.visit .section-kicker {
  grid-column:1/-1;
  color:var(--color-lavender-soft)
}
.visit .section-kicker span:first-child {
  color:var(--color-gold)
}
.visit-content {
  margin:3.5rem 0 0 14vw
}
.visit .eyebrow {
  color:var(--color-lavender-soft)
}
.visit h2 {
  font-size:clamp(3.6rem,7vw,7rem)
}
.visit h2 em {
  color:var(--color-lavender-soft)
}
.visit-actions {
  display:flex;
  gap:.9rem;
  margin-top:2.5rem;
  flex-wrap:wrap
}
.button {
  min-height:48px;
  display:inline-flex;
  align-items:center;
  gap:1.4rem;
  padding:.7rem 1.1rem;
  font-size:.74rem;
  font-weight:700;
  transition:background .2s,color .2s,transform .2s
}
.button:hover {
  transform:translateY(-2px)
}
.button-primary {
  background:var(--paper);
  color:var(--forest-dark)
}
.button-primary:hover {
  background:var(--color-lavender-mid)
}
.button-secondary {
  border:1px solid rgba(255,255,255,.5);
  color:var(--paper)
}
.button-secondary:hover {
  background:rgba(255,255,255,.1)
}
.visit-aside {
  align-self:end;
  display:flex;
  align-items:center;
  gap:1.4rem;
  margin:0 3vw 1.2rem 0
}
.visit-aside p {
  font-size:.76rem;
  color:var(--color-lavender-soft);
  max-width:170px;
  margin:0
}
.site-footer {
  background:var(--forest-dark);
  color:var(--color-lavender-soft);
  padding:2.1rem var(--gutter);
  display:grid;
  grid-template-columns:1fr 1fr auto;
  align-items:center;
  gap:1rem
}
.footer-brand {
  color:#fff
}
.footer-brand span {
  color:var(--color-lavender-mid)
}
.site-footer p,.site-footer>a:not(.footer-brand) {
  font-size:.68rem;
  color:var(--color-lavender-mid);
  margin:0
}
.site-footer small {
  grid-column:1/-1;
  border-top:1px solid rgba(255,255,255,.15);
  padding-top:1.2rem;
  color:var(--color-muted);
  font-size:.62rem
}
.site-footer nav {grid-column:1/-1;display:flex;gap:1.5rem;flex-wrap:wrap}
.site-footer nav a {font-size:.66rem;color:var(--color-lavender-mid);text-decoration:underline;text-decoration-color:transparent;text-underline-offset:4px}
.site-footer nav a:hover {text-decoration-color:currentColor}
.site-footer>a:last-of-type {grid-column:3;grid-row:1;justify-self:end}

.enquiry-form {
  margin-top:2.5rem;
  padding-top:1.5rem;
  border-top:1px solid rgba(255,255,255,.3);
  max-width:680px
}
.form-title {
  font:400 1.7rem var(--display);
  margin-bottom:1rem
}
.form-fields {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:1rem
}
.form-fields label {
  display:grid;
  gap:.4rem;
  font-size:.68rem;
  color:var(--color-lavender-soft)
}
.form-interest {
  grid-column:1/-1
}
.form-fields input,.form-fields select {
  width:100%;
  min-height:46px;
  border:1px solid rgba(255,255,255,.45);
  padding:.7rem;
  background:rgba(255,255,255,.06);
  color:var(--white);
  font:inherit;
  border-radius:0
}
.form-fields select option {
  color:var(--ink)
}
.form-submit {
  display:flex;
  align-items:center;
  gap:1.2rem;
  margin-top:1rem
}
.form-status {
  font-size:.66rem;
  color:var(--color-lavender-soft);
  margin:0
}
.field-error {
  display:none;
  color:var(--color-gold);
  font-size:.68rem;
  margin-right:1rem
}
.field-error:not(:empty) {
  display:inline-block
}

.text-link {
  min-height:44px;
  display:inline-flex;
  align-items:center
}
.stage-controls button {
  min-height:44px
}

.leadership {
  padding-top:7rem;
  padding-bottom:8rem;
  background:var(--white)
}
.leadership-layout {
  display:grid;
  grid-template-columns:.8fr 1.2fr;
  align-items:center;
  gap:10vw;
  margin:4rem 7vw 0 14vw
}
.leadership-portrait {
  height:390px;
  position:relative;
  overflow:hidden;
  background:var(--color-lavender-mid);
  display:flex;
  align-items:flex-end;
  padding:1rem
}
.leadership-portrait:before {
  content:"";
  position:absolute;
  inset:12% 15% -10%;
  border-radius:50% 50% 0 0;
  background:linear-gradient(140deg,var(--color-lavender-mid),var(--color-lavender-mid) 70%)
}
.leadership-portrait span {
  position:relative;
  color:#fff;
  font-size:.6rem;
  text-transform:uppercase;
  letter-spacing:.12em
}
.leadership-copy h2 {
  font:400 clamp(3rem,5.7vw,5.6rem)/1 var(--display);
  letter-spacing:-.055em;
  max-width:640px;
  margin-bottom:1.6rem
}
.leadership-copy>p:not(.eyebrow) {
  max-width:390px;
  color:var(--muted);
  font-size:.88rem;
  margin-bottom:1.7rem
}
.leadership-copy .text-link {
  display:inline-block
}

@media(max-width:900px) {
  :root {
    --header-h:72px
  }
  .hero {
    gap:2vw;
    grid-template-columns:1fr 1fr
  }
  .hero-art {
    min-height:410px
  }
  .art-frame {
    height:365px
  }
  .hero h1 {
    font-size:clamp(5rem,12vw,8rem)
  }
  .hero-bottom {
    display:block
  }
  .hero-intro {
    margin-bottom:1.4rem
  }
  .journey-stage {
    grid-template-columns:1fr 1fr
  }
  .journey-copy {
    padding:2.5rem 1.7rem
  }
  .beyond-layout {
    gap:4vw
  }
  .learning-head>p {
    margin-right:0
  }
  .site-footer {
    grid-template-columns:1fr auto
  }
  .site-footer p {
    grid-row:2
  }
  .site-footer small {
    grid-column:1/-1
  }
  
}

@media(max-width:680px) {
  :root {
    --gutter:1.25rem;
    --header-h:68px
  }
  html {
    scroll-padding-top:76px
  }
  .site-header {
    padding-inline:var(--gutter)
  }
  .brand img {
    width:34px;
    height:40px
  }
  .brand-name {
    font-size:.8rem
  }
  .brand-name span {
    font-size:.56rem
  }
  .menu-toggle {
    display:flex;
    z-index:12;
    width:46px;
    height:46px;
    align-items:center;
    justify-content:center;
    flex-direction:column;
    gap:6px;
    border:1px solid var(--line);
    background:transparent;
    cursor:pointer
  }
  .menu-toggle span {
    width:17px;
    height:1px;
    background:var(--ink);
    transition:transform .2s
  }
  .menu-toggle[aria-expanded=true] span:first-child {
    transform:translateY(3.5px) rotate(45deg)
  }
  .menu-toggle[aria-expanded=true] span:last-child {
    transform:translateY(-3.5px) rotate(-45deg)
  }
  .primary-nav {
    position:fixed;
    inset:0;
    background:var(--paper);
    z-index:11;
    display:flex;
    flex-direction:column;
    justify-content:center;
    align-items:flex-start;
    padding:5rem var(--gutter);
    gap:1.2rem;
    font:400 2.1rem/1.2 var(--display);
    visibility:hidden;
    opacity:0;
    transition:opacity .22s,visibility .22s
  }
  .primary-nav.is-open {
    visibility:visible;
    opacity:1
  }
  .primary-nav>a:not(.nav-visit) {
    color:var(--ink)
  }
  .nav-visit {
    font:600 .8rem var(--body);
    margin-top:1rem
  }
  .hero {
    min-height:auto;
    padding:4.3rem var(--gutter) 4.5rem;
    display:flex;
    flex-direction:column;
    align-items:stretch;
    gap:2rem
  }
  .hero-copy {
    padding:0
  }
  .hero .eyebrow {
    font-size:.55rem;
    letter-spacing:.12em
  }
  .hero h1 {
    font-size:clamp(5rem,24vw,8.2rem);
    margin:1.5rem 0 1.8rem
  }
  .hero-bottom {
    display:block
  }
  .hero-intro {
    font-size:.9rem;
    margin-bottom:1.2rem;
    max-width:300px
  }
  .hero-art {
    min-height:340px;
    margin:0 1rem 0 0
  }
  .art-frame {
    height:315px;
    width:100%
  }
  .hero-index {
    right:-.9rem
  }
  .hero-scroll {
    bottom:1.2rem
  }
  .philosophy {
    padding-top:5rem;
    padding-bottom:5rem
  }
  .philosophy-content {
    margin:3rem 0 0
  }
  .philosophy h2 {
    font-size:clamp(2.65rem,12vw,4rem);
    margin-bottom:2.4rem
  }
  .philosophy-foot {
    margin:0;
    gap:1.3rem;
    align-items:flex-start
  }
  .philosophy-foot p {
    font-size:.82rem
  }
  .journey {
    padding-top:4.5rem
  }
  .journey-heading {
    margin:3.5rem var(--gutter) 2.5rem
  }
  .journey-heading h2 {
    font-size:clamp(3.35rem,14vw,5rem)
  }
  .journey-stage {
    display:flex;
    flex-direction:column
  }
  .journey-visual {
    min-height:280px
  }
  .visual-number {
    left:var(--gutter);
    top:1.4rem
  }
  .orbit-one {
    width:220px
  }
  .orbit-two {
    width:155px
  }
  .journey-copy {
    padding:2.5rem var(--gutter) 2rem
  }
  .stage-count {
    margin-bottom:1.7rem
  }
  .journey-copy h3 {
    font-size:3.4rem
  }
  .journey-copy>p:not(.stage-count) {
    min-height:0
  }
  .stage-controls {
    grid-template-columns:1fr;
    gap:0;
    margin-top:1.4rem
  }
  .stage-controls button {
    padding:.72rem 0
  }
  .journey-note {
    font-size:.58rem
  }
  .learning {
    padding-top:5rem;
    padding-bottom:5.5rem
  }
  .learning-head {
    display:block;
    margin:3rem 0
  }
  .learning-head h2 {
    font-size:clamp(3.1rem,13vw,4.8rem)
  }
  .learning-head>p {
    margin:1.5rem 0 0;
    max-width:280px
  }
  .learning-steps {
    margin:0
  }
  .learning-step {
    min-height:122px;
    grid-template-columns:2.1rem 1fr auto;
    gap:.8rem
  }
  .step-title {
    font-size:1.7rem
  }
  .step-meta {
    grid-column:2;
    grid-row:2;
    margin-top:-1rem;
    font-size:.67rem
  }
  .step-arrow {
    grid-column:3;
    grid-row:1/3
  }
  .learning-step:hover {
    padding-inline:.4rem
  }
  .beyond {
    padding-top:4.5rem;
    padding-bottom:4rem
  }
  .beyond-layout {
    display:flex;
    flex-direction:column;
    align-items:stretch;
    margin:3rem 0 2.5rem;
    gap:1.5rem
  }
  .beyond-title h2 {
    font-size:clamp(3.2rem,14vw,5rem)
  }
  .beyond-title>p:last-child {
    max-width:310px
  }
  .beyond-art {
    height:280px
  }
  .themes {
    margin:0;
    display:grid;
    grid-template-columns:1fr 1fr
  }
  .themes span {
    padding:.9rem 0;
    margin:0;
    border-bottom:1px solid var(--color-line);
    font-size:.7rem
  }
  .campus {
    padding-top:5rem;
    padding-bottom:5rem
  }
  .campus .section-kicker {
    margin-bottom:2.3rem
  }
  .campus-frame {
    height:330px;
    margin-inline:-.25rem
  }
  .campus-sun {
    width:90px;
    right:12%
  }
  .campus-building {
    left:7%;
    right:4%;
    height:42%;
    bottom:18%;
    grid-template-columns:repeat(4,1fr);
    gap:4%;
    padding:7% 5% 0
  }
  .campus-building span:nth-child(n+5) {
    display:none
  }
  .campus-caption {
    display:block;
    margin:2.2rem 0 0
  }
  .campus-caption h2 {
    font-size:clamp(3.2rem,13vw,4.8rem)
  }
  .campus-caption p {
    margin-top:1.3rem
  }
  .visit {
    padding-top:4.5rem;
    padding-bottom:4.5rem;
    display:block
  }
  .visit .section-kicker {
    margin-bottom:0
  }
  .visit-content {
    margin:3rem 0 0
  }
  .visit h2 {
    font-size:clamp(3.55rem,15vw,5.8rem)
  }
  .visit-actions {
    display:grid;
    grid-template-columns:1fr;
    max-width:280px
  }
  .visit-actions .button {
    justify-content:space-between
  }
  .visit-aside {
    margin:2.8rem 0 0
  }
  .site-footer {
    padding:1.8rem var(--gutter);
    grid-template-columns:1fr auto;
    gap:.9rem
  }
  .site-footer p {
    grid-column:1/-1;
    grid-row:auto
  }
  .site-footer>a:not(.footer-brand) {
    grid-column:2;
    grid-row:1
  }
  .site-footer small {
    margin-top:.5rem
  }
  
}

.reading-progress {
  position:fixed;
  z-index:20;
  inset:0 0 auto;
  height:2px;
  pointer-events:none;
}
.reading-progress span {
  display:block;
  width:100%;
  height:100%;
  background:var(--gold);
  transform:scaleX(0);
}
.site-header {
  position:sticky;
  top:0;
  margin-bottom:calc(-1 * var(--header-h));
  background:transparent;
  transition:background-color .25s,box-shadow .25s;
}
.site-header.is-scrolled {
  background:rgba(252,250,247,.97);
  box-shadow:0 1px 0 rgba(37,33,43,.08);
}
.primary-nav>a {
  min-height:44px;
  display:inline-flex;
  align-items:center;
  position:relative;
}
.primary-nav>a:not(.nav-visit):not(.nav-enquire):after {
  content:"";
  position:absolute;
  inset:auto 0 8px;
  height:1px;
  background:var(--green);
  transform:scaleX(0);
  transform-origin:left;
  transition:transform .25s ease;
}
.primary-nav>a:not(.nav-visit):not(.nav-enquire):hover:after,
.primary-nav>a.is-current:after {transform:scaleX(1)}
.nav-enquire {
  min-height:44px;
  padding:.65rem .9rem;
  background:var(--forest);
  color:var(--white);
  transition:background-color .2s;
}
.nav-enquire:hover {background:var(--forest-dark);color:var(--white)}
.nav-enquire span {margin-left:.55rem}
.hero h1 span,.hero h1 em {display:inline-block;overflow:hidden}
.journey-stage {
  grid-template-columns:minmax(0,1fr) minmax(0,1fr);
  align-items:stretch;
  min-height:0;
}
.journey-visual {
  position:sticky;
  top:calc(var(--header-h) + 1.5rem);
  align-self:start;
  height:calc(100svh - var(--header-h) - 3rem);
  min-height:450px;
}
.journey-copy {padding:2.5rem clamp(1.5rem,5vw,5rem)}
.stage-controls {
  position:sticky;
  top:calc(var(--header-h) + .7rem);
  z-index:2;
  display:flex;
  flex-wrap:wrap;
  gap:0 .9rem;
  margin:0 -0.5rem 2.5rem;
  padding:.3rem .5rem;
  background:var(--forest-dark);
}
.stage-controls button {
  min-height:44px;
  padding:.45rem .2rem;
  border-top:0;
  border-bottom:1px solid rgba(255,255,255,.18);
  white-space:nowrap;
}
.stage-controls button[aria-pressed="true"] {border-color:var(--color-gold)}
.journey-panels {position:relative}
.journey-panel {
  min-height:clamp(330px,62vh,620px);
  display:flex;
  flex-direction:column;
  justify-content:center;
  padding:1.5rem 0;
  border-bottom:1px solid rgba(255,255,255,.14);
  scroll-margin-top:15vh;
}
.journey-panel .stage-count {margin-bottom:2rem}
.journey-panel h3 {
  font:400 clamp(2.8rem,5.3vw,5rem)/.98 var(--display);
  letter-spacing:-.05em;
  margin:0 0 1rem;
  transition:color .3s,transform .4s;
}
.journey-panel>p:last-child {
  max-width:390px;
  color:var(--color-lavender-soft);
  font-size:1rem;
  margin:0;
}
.journey-panel:not(.is-active) h3 {color:var(--color-lavender-mid)}
.visual-progress {
  position:absolute;
  top:18%;
  bottom:18%;
  right:9%;
  width:1px;
  background:rgba(255,255,255,.25);
}
.visual-progress span {
  display:block;
  width:2px;
  height:100%;
  background:var(--color-gold);
  transform:scaleY(.2);
  transform-origin:top;
  transition:transform .35s;
}
.journey-note {padding-top:1rem}
.learning-steps {position:relative}
.learning-steps:before {
  content:"";
  position:absolute;
  left:23px;
  top:0;
  bottom:0;
  width:1px;
  background:var(--line);
}
.learning-step {
  position:relative;
  min-height:190px;
  grid-template-columns:48px minmax(120px,.58fr) minmax(190px,1.1fr) minmax(150px,.9fr) 28px;
  grid-template-rows:1fr auto;
  gap:.25rem 1.4rem;
  padding:1.25rem 0;
  border-bottom-color:var(--color-line);
}
.learning-step.is-active .step-number {color:var(--gold)}
.step-number {align-self:start;z-index:1;background:#f2ecf7;padding:.35rem 0}
.step-media {
  grid-column:2;
  grid-row:1 / span 2;
  align-self:center;
  width:100%;
  aspect-ratio:1.35;
  overflow:hidden;
  position:relative;
  background:var(--color-lavender-mid);
}
.step-media:before,.step-media:after,.step-media span {
  content:"";
  position:absolute;
  display:block;
  transition:transform .5s ease;
}
.step-media:before {inset:15% 16% 0;border:1px solid rgba(37,33,43,.28);border-bottom:0;border-radius:50% 50% 0 0}
.step-media:after {width:38%;aspect-ratio:1;border-radius:50%;background:var(--color-gold);right:13%;top:12%}
.step-media span {left:-8%;bottom:-27%;width:116%;height:47%;border-radius:50% 50% 0 0;background:var(--color-green)}
.media-middle {background:var(--color-lavender-mid)}
.media-middle:after {background:var(--color-lavender-mid)}
.media-middle span {background:var(--color-green)}
.media-senior {background:var(--color-lavender-mid)}
.media-senior:after {background:var(--color-gold)}
.media-senior span {background:var(--color-green)}
.learning-step:hover .step-media:before {transform:scale(1.035)}
.learning-step:hover .step-media span {transform:translateY(-5px)}
.step-title {grid-column:3;grid-row:1;align-self:end}
.step-meta {grid-column:4;grid-row:1;align-self:end}
.step-arrow {grid-column:5;grid-row:1;align-self:center;transition:transform .2s}
.learning-step:hover .step-arrow {transform:translate(3px,-3px)}
.step-action {grid-column:3 / 5;grid-row:2;align-self:start;font-size:.66rem;color:var(--forest);text-decoration:underline;text-underline-offset:4px}
.learning-step:focus-visible {outline-offset:-3px}
.expression {padding-top:7rem;padding-bottom:7rem;background:var(--color-surface);}
.expression-layout {
  display:grid;
  grid-template-columns:1.12fr .88fr;
  gap:9vw;
  align-items:center;
  margin:4rem 5vw 0 14vw;
}
.expression-art {
  min-height:430px;
  position:relative;
  overflow:hidden;
  background:var(--color-lavender-mid);
  clip-path:polygon(3% 0,100% 8%,93% 100%,0 91%);
}
.expression-field {
  position:absolute;
  inset:0;
  background:linear-gradient(145deg,var(--color-lavender-mid) 0 38%,var(--color-purple-soft) 38% 63%,var(--color-green) 63%);
}
.expression-ribbon {
  position:absolute;
  width:72%;
  height:58%;
  top:22%;
  left:13%;
  border:1px solid rgba(252,250,247,.72);
  border-radius:50%;
  transform:rotate(-21deg);
}
.expression-ribbon:after {
  content:"";
  position:absolute;
  inset:13% -8%;
  border:1px solid rgba(252,250,247,.42);
  border-radius:50%;
}
.expression-art>span {
  position:absolute;
  left:8%;
  bottom:7%;
  color:white;
  font-size:.62rem;
  letter-spacing:.13em;
  text-transform:uppercase;
}
.expression-copy h2 {
  font:400 clamp(3.2rem,6vw,6rem)/.98 var(--display);
  letter-spacing:-.06em;
  margin:0 0 1.5rem;
}
.expression-copy>p:not(.eyebrow):not(.content-note) {max-width:340px;color:var(--muted);font-size:.86rem}
.activity-list {
  list-style:none;
  padding:0;
  margin:1.5rem 0 1rem;
  border-top:1px solid var(--color-line);
}
.activity-list li {padding:.6rem 0;border-bottom:1px solid var(--color-line);font-size:.74rem;color:var(--color-muted)}
.content-note,.principal-note {font-size:.62rem!important;color:var(--muted)!important;font-style:italic}
.campus-frame,.beyond-art,.expression-art,.leadership-portrait {contain:paint}
.hero-art,.campus-frame,.beyond-art,.expression-art,.leadership-portrait {transition:filter .25s ease}
.button:hover span,.text-link:hover span {transform:translate(3px,-2px)}
.button span,.text-link span {display:inline-block;transition:transform .2s ease}
.principal-note {margin:.8rem 0}
.form-fields input[aria-invalid="true"] {border-color:var(--color-gold)}
.button:disabled {opacity:.55;cursor:not-allowed;transform:none}

@media(max-width:1100px) and (min-width:901px) {
  .primary-nav {gap:.8rem;font-size:.66rem}
  .nav-visit,.nav-enquire {padding:.55rem .65rem}
  .brand {gap:.45rem}
  .brand-name {font-size:.75rem}
  .brand-name span {font-size:.53rem}
}
@media(max-width:900px) {
  .menu-toggle {display:flex;z-index:12;width:46px;height:46px;align-items:center;justify-content:center;flex-direction:column;gap:6px;border:1px solid var(--line);background:var(--paper);cursor:pointer}
  .menu-toggle span {width:17px;height:1px;background:var(--ink);transition:transform .2s}
  .menu-toggle[aria-expanded="true"] span:first-child {transform:translateY(3.5px) rotate(45deg)}
  .menu-toggle[aria-expanded="true"] span:last-child {transform:translateY(-3.5px) rotate(-45deg)}
  .primary-nav {position:fixed;inset:0;background:var(--paper);z-index:11;display:flex;flex-direction:column;justify-content:center;align-items:flex-start;padding:5rem var(--gutter);gap:.55rem;font:400 clamp(1.55rem,4vw,2.2rem)/1.1 var(--display);visibility:hidden;opacity:0;transition:opacity .22s,visibility .22s}
  .primary-nav.is-open {visibility:visible;opacity:1}
  .primary-nav>a:not(.nav-visit):not(.nav-enquire) {color:var(--ink);min-height:44px}
  .primary-nav .nav-visit,.primary-nav .nav-enquire {font:600 .76rem var(--body);margin-top:.6rem;min-height:48px}
  .journey-stage {grid-template-columns:.9fr 1.1fr}
  .journey-visual {min-height:400px}
  .journey-copy {padding-inline:1.5rem}
  .stage-controls {gap:0 .55rem}
  .stage-controls button {font-size:.68rem}
  .expression-layout {gap:5vw}
}
@media(min-width:681px) and (max-width:900px) {
  .learning-step {column-gap:.8rem}
}
@media(max-width:680px) {
  .site-header {padding-inline:var(--gutter)}
  .journey-stage {display:flex;flex-direction:column}
  .journey-visual {position:relative;top:auto;height:280px;min-height:280px}
  .journey-copy {padding:1.5rem var(--gutter) 2rem}
  .stage-controls {position:relative;top:auto;flex-wrap:wrap;overflow:visible;margin:0 -.3rem 1.6rem;gap:.25rem .4rem;padding:.4rem .3rem}
  .stage-controls button {flex:0 0 auto;font-size:.68rem}
  .journey-panel {min-height:0;padding:2.4rem 0 2.8rem;scroll-margin-top:6rem}
  .journey-panel h3 {font-size:3rem}
  .journey-panel .stage-count {margin-bottom:1.2rem}
  .learning-step {min-height:130px;grid-template-columns:34px 78px minmax(0,1fr) 20px;grid-template-rows:auto auto auto;gap:.3rem .7rem;padding:.8rem 0}
  .learning-steps:before {left:16px}
  .step-number {grid-column:1;grid-row:1 / span 3}
  .step-media {grid-column:2;grid-row:1 / span 3;aspect-ratio:1;min-width:0}
  .step-title {grid-column:3;grid-row:1;font-size:1.45rem;align-self:end}
  .step-meta {grid-column:3;grid-row:2;align-self:start;margin:0;font-size:.61rem}
  .step-arrow {grid-column:4;grid-row:1;align-self:start}
  .step-action {grid-column:3 / 5;grid-row:3;font-size:.62rem}
  .expression {padding-top:4.5rem;padding-bottom:4.5rem}
  .expression-layout {display:flex;flex-direction:column-reverse;align-items:stretch;gap:2rem;margin:3rem 0 0}
  .expression-art {min-height:270px}
  .expression-copy h2 {font-size:clamp(3.2rem,13vw,4.8rem)}
}

@media(prefers-reduced-motion:reduce) {
  html {
    scroll-behavior:auto
  }
  *,*::before,*::after {
    animation-duration:.01ms!important;
    animation-iteration-count:1!important;
    scroll-behavior:auto!important;
    transition-duration:.01ms!important
  }
  
}

/* Phase 11A: editorial photographs occupy existing visual slots. */
.home-photo {position:absolute;inset:0;width:100%;height:100%;display:block;object-fit:cover;object-position:center}
.art-frame:before,.art-sun,.art-arch,.art-ground {display:none}
.art-frame>.home-photo {z-index:0}
.art-caption {position:absolute;z-index:2;inset:auto 10% 12% 12%;padding:.4rem .5rem;display:flex;justify-content:space-between;align-items:flex-end;gap:.65rem;background:rgba(75,40,109,.78);color:#fff;font-size:.62rem;line-height:1.35;letter-spacing:.035em;text-shadow:none}
.art-caption span:last-child {flex:none;white-space:nowrap}
.journey-visual>.home-photo,.beyond-art>.home-photo,.expression-art>.home-photo,.campus-frame>.home-photo {z-index:0}
.journey-visual:before,.beyond-art:before,.campus-sky,.expression-field,.expression-ribbon {display:none}
.journey-visual>.visual-number,.journey-visual>.visual-progress,.journey-visual>.visual-label {z-index:1}
.visual-number,.visual-label,.beyond-art>span,.expression-art>span,.campus-frame>.image-note {background:rgba(75,40,109,.72);padding:.45rem .65rem;color:#fff;text-shadow:none}
.step-media:before,.step-media:after,.step-media>span:not(.photo-note) {display:none}
.step-media>img {position:absolute;inset:0;width:100%;height:100%;object-fit:cover}

@media(max-width:680px) {
  .form-fields {
    grid-template-columns:1fr
  }
  .form-interest {
    grid-column:auto
  }
  .form-submit {
    align-items:flex-start;
    flex-direction:column
  }
  .form-status {
    max-width:270px
  }
  .enquiry-form {
    margin-top:2rem
  }
  .leadership {
    padding-top:4.5rem;
    padding-bottom:5rem
  }
  .leadership-layout {
    display:flex;
    flex-direction:column-reverse;
    align-items:stretch;
    gap:2rem;
    margin:3rem 0 0
  }
  .leadership-copy h2 {
    font-size:clamp(3rem,13vw,4.6rem)
  }
  .leadership-portrait {
    height:300px
  }
  
}

/* Phase 11C: cinematic five-stage opening, composed as one full-bleed scene. */
.hero {isolation:isolate;display:flex;align-items:center;min-height:clamp(760px,calc(100dvh - var(--header-h)),900px);padding:clamp(6rem,15vh,14rem) var(--gutter) 3rem;overflow:hidden;color:var(--paper);background:var(--forest-dark)}
.site-header {margin-bottom:0}
.hero-slides,.hero-slide {position:absolute;inset:0;margin:0}
.hero-slides {z-index:-2;overflow:hidden;background:var(--color-purple-deep)}
.hero-slide {opacity:0;visibility:hidden;transition:opacity 650ms ease,visibility 650ms ease}
.hero-slide.is-active {opacity:1;visibility:visible}
.hero-slide img {display:block;width:100%;height:100%;object-fit:cover;object-position:center 44%;transform:scale(1.015);transition:transform 7s ease}
.hero-slide.is-active img {transform:scale(1.045)}
.hero-slide:nth-child(2) img {object-position:center 46%}
.hero-slide:nth-child(3) img {object-position:center 48%}
.hero-slide:nth-child(4) img {object-position:center 46%}
.hero-slide:nth-child(5) img {object-position:center 44%}
.hero-slides:after {content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(36,19,51,.88) 0%,rgba(50,25,71,.69) 36%,rgba(96,56,135,.14) 76%,rgba(36,19,51,.28) 100%),linear-gradient(0deg,rgba(36,19,51,.64) 0%,transparent 38%);pointer-events:none}
.hero-slide figcaption {position:absolute;z-index:1;right:var(--gutter);bottom:1.5rem;color:rgba(255,255,255,.88);font-size:.75rem;letter-spacing:.06em}
.hero-copy {z-index:1;width:min(850px,72vw);padding:0 0 1rem}
.hero .eyebrow {color:var(--color-background);font-size:.78rem;letter-spacing:.14em;margin-bottom:2rem}
.hero .eyebrow-line {background:var(--gold)}
.hero h1 {color:var(--color-surface);font-size:clamp(5.5rem,7.2vw,6.5rem);line-height:1;letter-spacing:0;margin:0 0 2.1rem}
.hero h1 em {color:var(--color-lavender-soft)}
.hero-bottom {display:block;max-width:600px}
.hero-intro {color:rgba(255,255,255,.88);font-size:clamp(1.05rem,1.2vw,1.2rem);line-height:1.6;max-width:47ch;margin:0 0 1.7rem}
.hero-actions {display:flex;flex-wrap:wrap;gap:.75rem}
.hero .button {min-height:52px;padding:.85rem 1.2rem;font-size:.88rem;letter-spacing:.02em}
.hero .button-primary {background:var(--color-background);border-color:var(--color-background);color:var(--forest-dark)}
.hero .button-primary:hover {background:var(--color-lavender-soft);border-color:var(--color-lavender-soft)}
.hero .button-secondary {border-color:rgba(255,255,255,.75);color:#fff}
.hero .button-secondary:hover {background:rgba(255,255,255,.12)}
.hero-carousel {position:absolute;z-index:2;right:var(--gutter);bottom:4.7rem;width:min(430px,40vw);color:#fff}
.hero-stage-label,.hero-carousel-controls {display:flex;align-items:center;justify-content:space-between;gap:1rem}
.hero-stage-label {margin-bottom:.8rem;font-size:.75rem;letter-spacing:.11em;text-transform:uppercase}
.hero-stage-label span:last-child {color:rgba(255,255,255,.7);font-variant-numeric:tabular-nums}
.hero-carousel-controls {gap:.65rem}
.hero-arrow {flex:0 0 40px;width:40px;height:40px;border:1px solid rgba(255,255,255,.55);background:transparent;color:#fff;font-size:1.1rem;cursor:pointer;transition:background var(--transition-fast),border-color var(--transition-fast)}
.hero-arrow:hover,.hero-arrow:focus-visible {background:rgba(255,255,255,.16);border-color:#fff}
.hero-progress {display:flex;flex:1;align-items:center;gap:clamp(.3rem,1vw,.7rem)}
.hero-progress button {position:relative;display:flex;flex:1;flex-direction:column;gap:.5rem;min-width:26px;min-height:44px;justify-content:center;padding:0;border:0;background:transparent;color:rgba(255,255,255,.68);text-align:left;font-size:.68rem;font-variant-numeric:tabular-nums;cursor:pointer}
.hero-progress button[aria-pressed="true"] {color:#fff}
.hero-progress i {position:relative;display:block;width:100%;height:2px;overflow:hidden;background:rgba(255,255,255,.38)}
.hero-progress i:after {content:"";position:absolute;inset:0;background:var(--color-gold);transform:scaleX(0);transform-origin:left}
.hero-progress i.is-running:after {animation:hero-progress var(--progress-duration,6500ms) linear forwards}
@keyframes hero-progress {to {transform:scaleX(1)}}
.hero-scroll {z-index:2;bottom:1.65rem;color:rgba(255,255,255,.78);font-size:.7rem}
.hero .button:focus-visible {outline-color:var(--color-gold)}
.hero-carousel :focus-visible {outline-color:var(--color-purple-deep)}
.hero-scroll span {background:var(--gold)}
@media (max-width:1120px) {
  .hero {min-height:clamp(700px,calc(100dvh - var(--header-h)),820px);padding-bottom:8.5rem}
  .hero-copy {width:min(750px,78vw)}
  .hero-carousel {width:min(420px,52vw);bottom:4.4rem}
}
@media (max-width:680px) {
  .hero {min-height:min(790px,max(680px,calc(100dvh - var(--header-h))));padding:calc(var(--header-h) + 1.25rem) var(--gutter) 10.5rem;align-items:flex-start}
  .hero-slides:after {background:linear-gradient(0deg,rgba(36,19,51,.92) 0%,rgba(50,25,71,.74) 39%,rgba(96,56,135,.12) 100%),linear-gradient(90deg,rgba(36,19,51,.25),transparent 70%)}
  .hero-slide img {object-position:60% center}
  .hero-slide:nth-child(1) img {object-position:58% center}
  .hero-slide:nth-child(2) img {object-position:62% center}
  .hero-slide:nth-child(3) img {object-position:65% center}
  .hero-slide:nth-child(4) img {object-position:64% center}
  .hero-slide:nth-child(5) img {object-position:59% center}
  .hero-slide figcaption {left:var(--gutter);right:auto;bottom:8.6rem;font-size:.67rem}
  .hero-copy {width:100%;padding:0}
  .hero .eyebrow {font-size:.68rem;line-height:1.5;letter-spacing:.105em;gap:.5rem;margin-bottom:1.1rem}
  .hero h1 {font-size:clamp(3.4rem,12.8vw,3.625rem);line-height:.96;margin:0 0 1.1rem;letter-spacing:-.055em}
  .hero-bottom {max-width:42rem}
  .hero-intro {max-width:43ch;font-size:1rem;line-height:1.55;margin-bottom:1.2rem}
  .hero-actions {gap:.55rem}
  .hero .button {min-height:48px;padding:.72rem .9rem;font-size:.79rem}
  .hero-carousel {left:var(--gutter);right:var(--gutter);bottom:2.25rem;width:auto}
  .hero-stage-label {font-size:.68rem;margin-bottom:.25rem}
  .hero-carousel-controls {gap:.45rem}
  .hero-arrow {flex-basis:36px;width:36px;height:36px}
  .hero-progress {gap:.36rem}
  .hero-progress button {font-size:.62rem;min-height:40px;gap:.4rem}
  .hero-scroll {display:none}
}
@media (prefers-reduced-motion:reduce) {
  .hero-slide,.hero-slide img {transition:none}
  .hero-slide.is-active img {transform:none}
  .hero-progress i.is-running:after {animation:none}
}

/* Colour composition: keep the journey's plum introduction, then open its long stage area into light editorial surfaces. */
.journey-stage {background:var(--color-purple-100);color:var(--color-text);border-color:var(--color-border)}
.journey-visual {background:var(--color-purple-900)}
.journey-copy {background:var(--color-purple-100)}
.journey-stage .stage-controls {background:var(--color-purple-50)}
.journey-stage .stage-controls button {color:var(--color-text);border-color:var(--color-border)}
.journey-stage .stage-controls button span {color:var(--color-muted)}
.journey-stage .stage-controls button[aria-pressed="true"] {color:var(--color-purple-800)}
.journey-stage .stage-controls button[aria-pressed="true"] span {color:var(--color-forest-accent)}
.journey-stage .stage-controls button[aria-pressed="true"] {border-color:var(--color-purple-600)}
.journey-stage .journey-panel {min-height:clamp(260px,34vh,380px);background:transparent;border-color:var(--color-purple-300)}
.journey-stage .journey-panel h3 {color:var(--color-purple-800)}
.journey-stage .journey-panel:not(.is-active) h3 {color:var(--color-purple-600)}
.journey-stage .journey-panel .stage-count {color:var(--color-muted)}
.journey-stage .journey-panel .stage-count span:first-child {color:var(--color-forest-accent)}
.journey-stage .journey-panel .stage-rule {background:var(--color-purple-300)}
.journey-stage .journey-panel>p:last-child {color:var(--color-muted)}
.journey-stage .visual-number {color:var(--color-ved-yellow)}
.journey-stage .visual-core {background:var(--color-ved-green)}
.journey-stage .visual-progress span {background:var(--color-ved-yellow)}
.learning {background:var(--color-purple-100)}
/* .learning-step:nth-child(odd) {background:var(--color-surface)}
.learning-step:nth-child(even) {background:var(--color-purple-50)} */
.learning-step:hover {background:var(--color-purple-200)}
.learning-step:hover .step-number {background:var(--color-purple-200)}
.step-media:after {background:var(--color-ved-yellow)}
.step-media span,.media-middle span,.media-senior span {background:var(--color-ved-green)}
.expression {background:var(--color-warm-gray)}
.campus {background:var(--color-purple-50)}
.leadership {background:var(--color-purple-100)}
.visit {background:var(--color-purple-800)}
.site-footer {background:var(--color-purple-900)}
@media(max-width:680px) {
  .journey-stage .journey-panel {min-height:0;background:transparent}
}

/* Homepage composition corrections: restore page-level type above shared inner-page rules. */
.home-page #main .philosophy h2:not(.component-section-header__title):not(.component-heading--section) {
  font-size:clamp(2.65rem,5.5vw,5.8rem);
  line-height:1.1;
  letter-spacing:-.05em
}
.home-page #main .journey-heading h2:not(.component-section-header__title):not(.component-heading--section) {
  font-size:clamp(3.5rem,7.8vw,7.7rem);
  line-height:.97;
  letter-spacing:-.06em
}
.home-page #main .learning-head h2:not(.component-section-header__title):not(.component-heading--section),
.home-page #main .beyond-title h2:not(.component-section-header__title):not(.component-heading--section),
.home-page #main .campus-caption h2:not(.component-section-header__title):not(.component-heading--section),
.home-page #main .visit-content h2:not(.component-section-header__title):not(.component-heading--section) {
  font-size:clamp(3.25rem,6.5vw,6.6rem);
  line-height:.98;
  letter-spacing:-.06em
}
.home-page #main .leadership-copy h2:not(.component-section-header__title):not(.component-heading--section) {
  font-size:clamp(3rem,5.7vw,5.6rem);
  line-height:1;
  letter-spacing:-.055em
}

/* Pair the belief statement and its supporting paragraph as one editorial unit. */
.philosophy-content {
  display:grid;
  grid-template-columns:minmax(0,1.25fr) minmax(280px,.75fr);
  align-items:end;
  column-gap:clamp(3rem,8vw,8rem);
  margin-left:9vw
}
.philosophy h2 {margin:0;max-width:15ch}
.philosophy-foot {margin:0 0 .45rem;max-width:unset}
.philosophy-foot p {max-width:46ch;font-size:1rem;line-height:1.75}

/* Give the existing abstract leadership illustration a clear focal shape and legible caption. */
.leadership-portrait {
  background:linear-gradient(145deg,var(--color-purple-700),var(--color-purple-900));
  isolation:isolate
}
.leadership-portrait:before {
  inset:11% 14% -12%;
  border:1px solid rgba(255,255,255,.32);
  background:linear-gradient(155deg,var(--color-purple-300) 0%,var(--color-purple-600) 45%,var(--color-purple-800) 100%);
  box-shadow:0 24px 55px rgba(25,12,37,.22)
}
.leadership-portrait span {
  max-width:16ch;
  padding:.8rem 1rem;
  background:rgba(35,17,49,.76);
  font:500 clamp(1rem,1.45vw,1.2rem)/1.35 var(--display);
  letter-spacing:.015em;
  text-transform:none
}
@media(max-width:900px) {
  .philosophy-content {grid-template-columns:1fr;gap:2rem;margin-left:0}
  .philosophy h2 {max-width:14ch}
  .philosophy-foot {margin-left:8%;max-width:48rem}
}
@media(max-width:680px) {
  .philosophy-foot {margin:0;max-width:none}
  .philosophy h2 {font-size:clamp(2.65rem,12vw,4rem);margin:0}
  .leadership-portrait span {font-size:1.05rem}
}

/* Balance the carousel's variable headline lengths so its final word is not stranded. */
.home-page #main .hero h1 {text-wrap:balance}
.home-page #main .journey-copy .journey-panel h3:not(.component-section-header__title):not(.component-card__title):not(.component-process__title):not(.component-contact__title):not(.component-heading--feature) {
  font-size:clamp(1.65rem,2.3vw,2.1rem);
  line-height:1.04;
  letter-spacing:-.04em
}
@media(max-width:680px) {
  .home-page #main .hero h1 {font-size:clamp(2.8rem,11.5vw,3.15rem)}
  .home-page #main .journey-copy .journey-panel h3:not(.component-section-header__title):not(.component-card__title):not(.component-process__title):not(.component-contact__title):not(.component-heading--feature) {font-size:1.65rem}
}
