/* The group belongs to the hero scene; all layers retain the source aspect ratio. */
.hero-section {
  --hero-height: min(clamp(600px, 52vw, 820px), 100svh);
  height: var(--hero-height);
  max-height: 100svh;
  background: #000;
}
.hero-section::after { background: none; }
.hero-art.hero-visual {
  inset: 64px auto 0 0;
  z-index: 1;
  width: 100%;
  display: flex;
  direction: ltr;
  align-items: flex-end;
  justify-content: flex-start;
  overflow: visible;
  background: transparent;
}
.hero-art.hero-visual .hero-people {
  width: min(68%, calc((var(--hero-height) - 64px) * 1.5));
  margin: 0;
}
.hero-section .hero-content { padding-block: 64px 32px; }
.hero-section .hero-scroll { left: 72%; transform: none; }
.hero-section .hero-copy { width: 34%; }
.hero-people {
  --people-ease: cubic-bezier(.22, .72, .24, 1);
  position: static;
  isolation: isolate;
  background: transparent;
  line-height: 0;
}
.hero-people__scene {
  position: relative;
  width: 100%;
  aspect-ratio: 3 / 2;
  isolation: isolate;
}
.hero-people__scene::after {
  position: absolute;
  inset: 0;
  z-index: 4;
  background: linear-gradient(180deg, #000 0%, transparent 3%, transparent 94%, #000 100%);
  pointer-events: none;
  content: "";
}
.hero-people__photo,
.hero-person__highlight {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
  aspect-ratio: 3 / 2;
}
.hero-people__photo { position: relative; z-index: 0; }
.hero-people__shade {
  position: absolute;
  inset: 0;
  z-index: 1;
  background: #000;
  opacity: 0;
  pointer-events: none;
  transition: opacity 540ms var(--people-ease);
}
.hero-people.is-person-active .hero-people__shade { opacity: .32; }
.hero-person {
  position: absolute;
  inset: 0;
  z-index: 2;
  display: block;
  width: 100%;
  height: 100%;
  border: 0;
  padding: 0;
  border-radius: 0;
  background: transparent;
  cursor: pointer;
  clip-path: var(--person-shape);
  -webkit-tap-highlight-color: transparent;
  touch-action: pan-y pinch-zoom;
}
/* Visible silhouettes traced from the exact 2026-10-04 01:32 image in 1536 × 1024 source pixels.
   Shared contours exclude foreground people and the red chair. Source anchors:
   academy_content/data/hero-silhouettes-20261004-0132.json. */
.hero-person--1 {
  --person-shape: polygon(22.656% 5.957%, 23.893% 6.152%, 25.260% 6.836%, 26.237% 8.203%, 26.953% 10.254%, 27.148% 12.500%, 27.018% 14.258%, 27.669% 15.039%, 27.734% 16.699%, 27.474% 18.262%, 26.758% 19.629%, 26.432% 21.094%, 26.042% 22.754%, 26.107% 24.902%, 27.344% 26.074%, 29.167% 26.855%, 30.990% 27.734%, 32.487% 28.906%, 33.594% 30.176%, 33.333% 30.859%, 33.138% 32.227%, 33.398% 33.301%, 33.268% 34.375%, 33.008% 35.742%, 33.594% 36.914%, 34.440% 37.988%, 34.766% 39.355%, 34.701% 41.406%, 34.440% 43.457%, 33.594% 44.434%, 32.096% 46.289%, 31.250% 48.047%, 30.404% 50.488%, 29.753% 53.223%, 29.297% 56.055%, 28.711% 59.082%, 28.385% 62.109%, 27.865% 65.137%, 27.865% 67.188%, 28.320% 68.066%, 29.362% 67.969%, 30.208% 68.262%, 30.078% 71.973%, 29.883% 75.391%, 29.622% 78.320%, 29.102% 81.152%, 28.516% 84.082%, 28.451% 85.938%, 28.190% 87.891%, 27.669% 89.355%, 27.344% 90.723%, 25.456% 92.578%, 24.023% 94.531%, 22.591% 96.680%, 20.833% 100.000%, 8.854% 100.000%, 9.245% 95.117%, 9.701% 89.453%, 9.961% 83.984%, 10.286% 79.590%, 10.091% 75.781%, 9.505% 72.266%, 9.505% 68.359%, 10.026% 64.844%, 10.938% 61.621%, 11.589% 58.398%, 11.784% 54.590%, 11.979% 51.855%, 11.719% 49.707%, 11.719% 46.875%, 11.979% 43.750%, 12.174% 40.234%, 12.500% 36.035%, 13.086% 32.812%, 13.607% 30.762%, 14.779% 28.711%, 15.951% 27.637%, 17.643% 26.758%, 19.271% 25.879%, 20.052% 24.414%, 20.117% 22.559%, 19.531% 21.094%, 19.206% 19.434%, 18.750% 18.066%, 18.555% 16.406%, 18.620% 15.039%, 19.010% 14.453%, 19.271% 12.500%, 19.401% 10.645%, 19.987% 8.984%, 20.898% 7.812%, 21.875% 6.836%);
}
.hero-person--2 {
  --person-shape: polygon(38.672% 21.289%, 39.844% 21.484%, 41.081% 21.973%, 42.188% 22.949%, 43.359% 24.414%, 44.206% 26.074%, 44.857% 28.027%, 45.378% 30.078%, 45.898% 32.227%, 46.419% 34.570%, 46.615% 36.719%, 46.159% 38.086%, 46.549% 39.941%, 47.005% 42.090%, 47.526% 44.434%, 47.852% 47.070%, 48.047% 50.000%, 48.112% 53.320%, 48.242% 56.445%, 48.242% 59.570%, 48.307% 62.793%, 48.047% 66.211%, 47.852% 68.555%, 47.266% 71.094%, 46.615% 73.340%, 45.638% 75.781%, 44.466% 77.539%, 43.359% 79.395%, 42.383% 81.836%, 41.536% 84.277%, 40.755% 86.914%, 39.909% 89.355%, 39.388% 92.188%, 39.128% 92.676%, 37.760% 92.773%, 35.807% 93.457%, 34.049% 94.629%, 32.617% 96.191%, 31.510% 98.145%, 30.664% 100.000%, 20.833% 100.000%, 22.591% 96.680%, 24.023% 94.531%, 25.456% 92.578%, 27.344% 90.723%, 27.669% 89.355%, 28.190% 87.891%, 28.451% 85.938%, 28.516% 84.082%, 29.102% 81.152%, 29.622% 78.320%, 29.883% 75.391%, 30.078% 71.973%, 30.208% 68.262%, 29.362% 67.969%, 28.320% 68.066%, 27.865% 67.188%, 27.865% 65.137%, 28.385% 62.109%, 28.711% 59.082%, 29.297% 56.055%, 29.753% 53.223%, 30.404% 50.488%, 31.250% 48.047%, 32.096% 46.289%, 33.594% 44.434%, 34.440% 43.457%, 34.701% 41.406%, 34.766% 39.355%, 34.440% 37.988%, 33.594% 36.914%, 33.008% 35.742%, 33.268% 34.375%, 33.398% 33.301%, 33.138% 32.227%, 33.333% 30.859%, 33.984% 29.688%, 34.570% 28.223%, 34.766% 26.855%, 35.547% 24.805%, 36.523% 23.047%, 37.565% 21.777%);
}
.hero-person--3 {
  --person-shape: polygon(55.990% 7.031%, 57.031% 6.738%, 58.073% 7.227%, 58.854% 7.715%, 59.766% 8.203%, 60.612% 9.570%, 61.003% 11.621%, 61.068% 13.770%, 60.938% 15.137%, 61.458% 16.309%, 61.393% 18.066%, 61.003% 19.434%, 60.482% 20.605%, 60.091% 21.973%, 59.635% 23.242%, 59.505% 24.414%, 60.677% 25.977%, 62.109% 26.758%, 63.802% 27.539%, 65.430% 28.418%, 66.862% 29.590%, 67.969% 31.152%, 68.555% 33.496%, 68.945% 36.035%, 69.010% 37.891%, 68.815% 39.258%, 68.229% 41.406%, 67.578% 43.164%, 67.188% 45.020%, 67.383% 46.191%, 68.034% 46.777%, 66.667% 48.535%, 65.690% 50.586%, 64.714% 52.930%, 64.388% 53.613%, 63.346% 53.320%, 62.109% 52.637%, 60.872% 52.148%, 59.505% 51.855%, 58.203% 52.246%, 56.966% 53.027%, 55.794% 54.297%, 55.078% 55.859%, 54.818% 57.715%, 54.427% 58.691%, 54.297% 60.547%, 54.492% 62.500%, 54.883% 63.965%, 54.948% 65.918%, 55.273% 68.262%, 55.794% 70.215%, 55.729% 71.875%, 55.013% 73.242%, 53.516% 73.633%, 52.083% 73.926%, 50.716% 74.805%, 49.479% 73.926%, 48.828% 72.656%, 48.112% 70.215%, 47.982% 68.164%, 48.177% 66.211%, 48.438% 62.988%, 48.307% 59.570%, 48.242% 56.641%, 48.112% 53.320%, 47.982% 49.902%, 47.591% 47.070%, 47.331% 44.434%, 46.875% 42.090%, 46.549% 39.844%, 46.159% 37.988%, 46.615% 36.719%, 46.419% 34.570%, 45.964% 32.422%, 45.833% 31.152%, 46.745% 29.785%, 48.047% 28.418%, 49.805% 27.539%, 51.432% 26.562%, 52.995% 24.902%, 53.320% 23.242%, 52.995% 21.777%, 52.344% 20.312%, 51.888% 18.555%, 51.758% 17.383%, 51.367% 16.797%, 51.562% 15.332%, 52.083% 14.648%, 52.148% 13.086%, 52.214% 11.035%, 52.734% 9.277%, 53.516% 8.398%, 54.622% 7.617%);
}
.hero-person--4 {
  --person-shape: polygon(74.154% 23.926%, 75.456% 23.926%, 76.823% 23.926%, 78.190% 24.316%, 79.362% 25.098%, 80.208% 26.465%, 80.859% 28.320%, 81.250% 30.176%, 81.185% 32.031%, 81.315% 34.082%, 81.510% 36.523%, 81.641% 38.574%, 82.031% 41.113%, 82.161% 43.359%, 82.812% 44.629%, 83.789% 45.605%, 84.635% 47.070%, 85.221% 48.535%, 85.612% 50.586%, 85.872% 52.930%, 86.068% 55.469%, 86.198% 57.910%, 86.458% 60.449%, 86.784% 63.086%, 87.174% 63.477%, 86.914% 64.648%, 86.784% 66.211%, 87.240% 67.871%, 87.630% 69.727%, 87.695% 71.191%, 87.500% 72.949%, 87.630% 75.684%, 87.891% 78.418%, 87.956% 80.664%, 88.151% 82.227%, 88.672% 83.301%, 89.323% 84.766%, 89.453% 85.742%, 89.062% 86.328%, 89.518% 87.012%, 89.258% 87.891%, 89.714% 89.355%, 90.234% 91.602%, 90.625% 93.945%, 91.081% 96.680%, 91.602% 100.000%, 85.352% 100.000%, 83.984% 96.973%, 82.161% 95.020%, 80.404% 93.555%, 78.971% 92.676%, 77.734% 92.578%, 76.693% 90.039%, 75.586% 87.109%, 74.479% 84.375%, 73.568% 81.641%, 72.786% 79.297%, 71.615% 77.441%, 69.922% 76.172%, 68.229% 75.000%, 66.602% 74.023%, 65.104% 73.340%, 63.997% 72.461%, 63.477% 71.289%, 63.477% 69.336%, 63.997% 67.090%, 64.714% 64.453%, 65.169% 61.719%, 65.430% 59.375%, 65.234% 57.422%, 64.388% 55.078%, 64.714% 52.930%, 65.690% 50.586%, 66.667% 48.535%, 68.034% 46.777%, 67.383% 46.191%, 67.188% 45.020%, 67.578% 43.164%, 68.229% 41.406%, 68.815% 39.258%, 69.531% 37.305%, 69.727% 35.254%, 69.922% 33.203%, 70.638% 31.738%, 70.312% 30.371%, 70.247% 28.906%, 70.833% 27.441%, 71.094% 25.879%, 71.940% 24.902%, 73.047% 24.316%);
}
.hero-person--5 {
  --person-shape: polygon(59.440% 51.855%, 60.807% 52.246%, 62.109% 52.734%, 63.346% 53.516%, 64.258% 54.785%, 64.844% 56.348%, 65.299% 58.105%, 65.430% 59.375%, 65.169% 61.719%, 64.714% 64.453%, 63.997% 67.090%, 63.477% 69.336%, 63.151% 71.387%, 63.281% 73.047%, 64.583% 73.730%, 66.602% 74.414%, 68.229% 75.391%, 69.987% 76.367%, 71.615% 77.441%, 72.786% 79.297%, 73.568% 81.641%, 74.479% 84.375%, 75.586% 87.109%, 76.693% 90.039%, 77.734% 92.578%, 78.385% 94.336%, 78.646% 95.996%, 78.451% 97.559%, 77.214% 97.363%, 75.911% 98.047%, 74.544% 99.023%, 73.242% 100.000%, 43.099% 100.000%, 42.513% 99.023%, 41.667% 97.656%, 40.495% 96.973%, 39.128% 96.191%, 38.411% 95.215%, 38.542% 93.457%, 39.388% 92.090%, 39.909% 89.355%, 40.755% 86.914%, 41.536% 84.277%, 42.383% 81.836%, 43.359% 79.395%, 44.466% 77.539%, 45.638% 75.781%, 47.135% 75.000%, 48.763% 74.512%, 50.586% 74.707%, 52.148% 74.121%, 53.711% 73.828%, 54.948% 73.340%, 55.729% 71.973%, 55.794% 70.215%, 55.273% 68.262%, 55.013% 65.820%, 54.883% 63.965%, 54.362% 63.281%, 54.167% 61.914%, 54.232% 60.059%, 54.362% 58.789%, 54.818% 57.812%, 55.078% 55.957%, 55.794% 54.395%, 56.966% 53.125%, 58.203% 52.344%);
}
.hero-person--6 {
  --person-shape: polygon(13.737% 7.129%, 14.909% 7.227%, 16.016% 7.812%, 16.797% 8.594%, 17.513% 10.059%, 18.099% 11.719%, 18.164% 13.574%, 17.904% 15.332%, 17.578% 17.090%, 17.513% 18.457%, 17.122% 19.824%, 16.341% 20.996%, 15.625% 22.559%, 15.039% 24.219%, 14.844% 25.488%, 15.104% 26.367%, 15.430% 27.246%, 14.779% 28.711%, 13.607% 30.762%, 13.086% 32.812%, 12.500% 36.035%, 12.174% 40.234%, 11.979% 43.750%, 11.719% 46.875%, 11.719% 49.707%, 11.979% 51.855%, 11.784% 54.590%, 11.589% 58.398%, 10.938% 61.621%, 10.026% 64.844%, 9.505% 68.359%, 9.505% 72.266%, 10.091% 75.781%, 10.286% 79.590%, 9.961% 83.984%, 9.701% 89.453%, 9.245% 95.117%, 8.854% 100.000%, 0.000% 100.000%, 0.000% 67.969%, 0.456% 65.039%, 0.781% 62.793%, 0.651% 61.328%, 0.000% 60.742%, 0.000% 33.398%, 0.846% 30.566%, 1.888% 28.320%, 3.320% 26.855%, 5.273% 25.879%, 7.096% 25.098%, 8.854% 24.316%, 9.701% 23.340%, 10.221% 21.875%, 10.026% 20.312%, 9.766% 18.750%, 9.635% 17.188%, 9.245% 16.309%, 8.919% 14.746%, 8.984% 13.184%, 9.310% 11.621%, 9.831% 10.156%, 10.612% 8.887%, 11.654% 7.910%, 12.695% 7.422%);
}
.hero-person--7 {
  --person-shape: polygon(86.914% 8.984%, 88.346% 9.277%, 89.909% 9.961%, 91.211% 11.328%, 91.797% 12.793%, 92.253% 14.453%, 92.318% 16.211%, 92.773% 16.699%, 92.839% 18.164%, 92.578% 19.531%, 91.992% 20.410%, 91.341% 20.898%, 91.146% 22.852%, 91.341% 24.805%, 92.122% 26.074%, 93.164% 27.246%, 95.052% 28.516%, 96.484% 30.078%, 97.656% 32.031%, 98.633% 34.766%, 99.154% 37.891%, 99.479% 41.016%, 99.609% 44.043%, 99.935% 46.582%, 100.000% 48.145%, 98.958% 48.535%, 98.958% 50.488%, 98.438% 52.734%, 98.047% 55.078%, 97.656% 59.863%, 98.698% 63.477%, 99.154% 67.188%, 98.958% 70.703%, 99.089% 74.707%, 99.414% 77.539%, 99.805% 82.422%, 100.000% 87.891%, 100.000% 100.000%, 91.602% 100.000%, 91.081% 96.680%, 90.625% 93.945%, 90.234% 91.602%, 89.714% 89.355%, 89.258% 87.891%, 89.518% 87.012%, 89.062% 86.328%, 89.453% 85.742%, 89.323% 84.766%, 88.672% 83.301%, 88.151% 82.227%, 87.956% 80.664%, 87.891% 78.418%, 87.630% 75.684%, 87.500% 72.949%, 87.695% 71.191%, 87.630% 69.727%, 87.240% 67.871%, 86.784% 66.211%, 86.914% 64.648%, 87.174% 63.477%, 86.784% 63.086%, 86.458% 60.449%, 86.198% 57.910%, 86.068% 55.469%, 85.872% 52.930%, 85.612% 50.586%, 85.221% 48.535%, 84.635% 47.070%, 83.789% 45.605%, 82.812% 44.629%, 82.161% 43.359%, 82.031% 41.113%, 81.641% 38.574%, 81.510% 36.523%, 81.315% 34.082%, 81.185% 32.031%, 81.250% 30.176%, 82.682% 30.371%, 83.919% 29.590%, 85.091% 28.516%, 85.938% 27.344%, 86.263% 26.270%, 85.872% 24.902%, 84.961% 24.219%, 84.440% 22.754%, 83.984% 21.191%, 83.724% 19.434%, 83.333% 18.555%, 82.878% 17.090%, 82.812% 15.430%, 82.552% 14.160%, 82.878% 12.598%, 83.464% 11.230%, 84.440% 10.254%, 85.742% 9.473%);
}
.hero-person--6, .hero-person--7 { z-index: 2; }
.hero-person--1, .hero-person--2, .hero-person--3, .hero-person--4 { z-index: 3; }
.hero-person--5 { z-index: 4; }
.hero-person__highlight {
  position: absolute;
  inset: 0;
  opacity: 0;
  filter: none;
  mask-size: 100% 100%;
  mask-repeat: no-repeat;
  -webkit-mask-size: 100% 100%;
  -webkit-mask-repeat: no-repeat;
  pointer-events: none;
  transition: opacity 540ms var(--people-ease);
}
.hero-person.is-active .hero-person__highlight { opacity: 1; }
.hero-person:focus-visible { outline: none; }
.hero-person:focus-visible .hero-person__highlight { filter: none; }
.hero-person-caption {
  position: relative;
  width: 100%;
  margin: 20px 0 26px;
  color: #fff;
  line-height: 1.5;
  text-align: right;
  pointer-events: none;
}
.hero-person-caption::before {
  display: block;
  width: 42px;
  height: 2px;
  margin: 0 0 13px auto;
  background: #ce2146;
  transition: width 360ms var(--people-ease), background-color 360ms var(--people-ease);
  content: "";
}
.hero-section:has(.hero-person:focus-visible) .hero-person-caption::before { width: 60px; background: #fff; }
.hero-person-caption__heading { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; margin-bottom: 7px; }
.hero-person-caption__eyebrow {
  display: block;
  color: #f0b1bf;
  font-size: 12px;
  font-weight: 600;
  line-height: 1.5;
  text-align: right;
}
.hero-person-caption__content { min-height: 85px; }
.hero-person-caption .hero-person-caption__name {
  margin: 0;
  font-size: clamp(30px, 2.5vw, 38px);
  line-height: 1.45;
  font-weight: 700;
  letter-spacing: 0;
  text-shadow: 0 2px 16px #000;
}
.hero-person-caption__role {
  margin: 4px 0 0;
  color: #ebe2e0;
  font-size: 18px;
  line-height: 1.6;
  text-shadow: 0 2px 12px #000;
}
@media (min-width: 681px) and (max-width: 1000px) {
  .hero-section .hero-copy { width: 35%; }
  .hero-section .hero-copy h1 { font-size: clamp(34px, 4.6vw, 46px); }
  .hero-section .hero-eyebrow { margin-bottom: 18px; }
  .hero-section .hero-lede { font-size: 12px; }
  .hero-section .hero-actions { gap: 7px; }
  .hero-section .hero-actions .button { padding-inline: 9px; gap: 7px; font-size: 9px; }
  .hero-person-caption { margin-block: 15px 21px; }
  .hero-person-caption .hero-person-caption__name { font-size: 30px; }
  .hero-person-caption__role { font-size: 16px; }
  .hero-person-caption__content { min-height: 75px; }
}
@media (max-width: 680px), (max-width: 1000px) and (max-height: 500px) {
  .hero-section {
    display: flex;
    flex-direction: column;
    height: auto;
    max-height: none;
    min-height: 0;
    padding-top: 66px;
  }
  .hero-section .hero-content {
    position: relative;
    order: 1;
    width: 100%;
    height: auto;
    min-height: 0;
    padding-block: 15px 10px;
    padding-inline: var(--page-gutter);
    pointer-events: auto;
  }
  .hero-section .hero-copy { width: 100%; margin: 0; padding: 0; }
  .hero-section .hero-eyebrow { margin-bottom: 14px; font-size: 7px; }
  .hero-section .hero-copy h1 { font-size: clamp(38px, 11.5vw, 58px); margin-bottom: 12px; line-height: 1.18; }
  .hero-section .hero-lede { max-width: 340px; margin-bottom: 17px; font-size: 13px; line-height: 1.8; }
  .hero-section .hero-actions { display: flex; gap: 9px; }
  .hero-section .hero-actions .button { width: auto; min-height: 40px; padding-inline: 13px; font-size: 10px; }
  .hero-section .hero-actions .button--outline { display: inline-flex; }
  .hero-art.hero-visual {
    position: relative;
    inset: auto;
    order: 2;
    width: 100%;
    height: auto;
    margin-top: 2px;
  }
  .hero-art.hero-visual .hero-people { width: 100%; }
  .hero-person-caption {
    position: relative;
    left: auto;
    right: auto;
    bottom: auto;
    width: auto;
    margin: 10px var(--page-gutter) 24px;
    text-align: right;
  }
  .hero-person-caption::before { width: 36px; margin-bottom: 11px; }
  .hero-person-caption__eyebrow { font-size: 12px; }
  .hero-person-caption__content { min-height: 73px; }
  .hero-person-caption .hero-person-caption__name { font-size: 28px; line-height: 1.45; }
  .hero-person-caption__role { font-size: 16px; }
  .hero-section .hero-scroll, .hero-section .hero-index { display: none; }
}
@media (prefers-reduced-motion: reduce) {
  .hero-people__shade, .hero-person__highlight, .hero-person-caption::before { transition: none; }
}
