.stu {
  --stu-gold-lite: var(--accent-dark, #C2AA7E);
  --stu-gold: var(--accent, #6D583B);
  --stu-dark: #141413;
  --stu-card: rgba(255, 253, 247, .62);
}
.stu-hero { --stu-gold: var(--stu-gold-lite); }
.stu-hero {
  position: relative;
  overflow: hidden;
  background: var(--stu-dark);
  min-height: 100svh;
  display: flex;
  flex-direction: column;
  isolation: isolate;
}
.stu-hero__media,
.stu-hero.stu-hero .hero__film {
  position: absolute;
  inset: -130px 0;
  width: auto;
  height: auto;
  z-index: 0;
  overflow: hidden;
  pointer-events: none;
}
.stu-hero__media video,
.stu-hero__media img {
  width: 100%; height: 100%;
  object-fit: cover;
  object-position: center 42%;
  display: block;
  transform: translateZ(0);
  backface-visibility: hidden;
}
.stu-hero__media { will-change: auto; }
.stu-hero__media.is-settling { will-change: transform; }
.stu-hero__media.is-flat { transform: translate3d(0, var(--hp, 0px), 0) !important; }
@media (max-width: 759px) {
  .stu-hero__media video,
  .stu-hero__media img { object-position: center center; }
}
.stu-hero__media img {
  width: 100%; height: 100%;
  object-fit: cover;
  object-position: center 38%;
  display: block;
}
.stu-hero__veil {
  position: absolute; inset: 0; z-index: 1; pointer-events: none;
  background:
    linear-gradient(to bottom, rgba(10,10,10,.55) 0%, rgba(10,10,10,.28) 38%, rgba(10,10,10,.72) 100%),
    rgba(10, 10, 10, .18);
}
.stu-hero__grid {
  position: absolute; inset: 0; z-index: 2; pointer-events: none;
  opacity: .28;
  background-image: radial-gradient(rgba(255,255,255,.08) 1px, transparent 1px);
  background-size: 32px 32px;
}
@media (max-width: 640px) { .stu-hero__grid { display: none; } }
.stu-hero__status {
  position: absolute; left: 0; right: 0; top: 96px; z-index: 5;
  display: flex; justify-content: center; padding: 0 24px;
}
.stu-pill {
  display: inline-flex; align-items: center; gap: 9px;
  border: 1px solid rgba(255,255,255,.15);
  background: rgba(255,255,255,.03);
  border-radius: 999px;
  padding: 7px 15px;
  font-size: .75rem;
  letter-spacing: .02em;
  color: rgba(240,238,230,.8);
}
.stu-pill__dot { position: relative; display: inline-flex; width: 6px; height: 6px; flex: none; }
.stu-pill__dot::before,
.stu-pill__dot::after {
  content: ""; position: absolute; inset: 0; border-radius: 999px; background: var(--stu-gold);
}
.stu-pill__dot::before { animation: stu-ping 2.4s cubic-bezier(0,0,.2,1) infinite; opacity: .7; }
@keyframes stu-ping { 75%, 100% { transform: scale(2.6); opacity: 0; } }
.stu-hero__inner {
  position: relative; z-index: 4;
  flex: 1;
  display: flex; flex-direction: column; align-items: center; justify-content: center;
  text-align: center;
  padding: 140px 24px 120px;
}
.stu-eyebrow-row {
  display: flex; align-items: center; justify-content: center; gap: 14px;
  margin-bottom: 34px;
}
.stu-eyebrow-row .stu-rule { width: 26px; height: 1px; background: rgba(255,255,255,.25); }
.stu-eyebrow-row .stu-key {
  font-family: var(--f-mono, ui-monospace, monospace);
  font-size: .68rem; text-transform: uppercase; letter-spacing: .32em;
  color: rgba(240,238,230,.6);
}
.stu-hero__h1 {
  font-family: var(--f-display, Georgia, serif);
  font-weight: 300;
  font-size: clamp(1.75rem, 5.5vw, 5rem);
  line-height: 1.06;
  letter-spacing: -.02em;
  color: #FFFDF7;
  margin: 0;
}
.stu-hero__h1 em { font-style: italic; color: var(--stu-gold); }
.stu-hero__sub {
  margin-top: 30px;
  font-family: var(--f-mono, ui-monospace, monospace);
  font-size: clamp(.72rem, 1.1vw, .84rem);
  text-transform: uppercase;
  letter-spacing: .2em;
  color: var(--stu-gold);
}
.stu-hero__act { margin-top: 42px; }
.stu-btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 9px;
  border-radius: 999px;
  border: 0;
  padding: 14px 26px;
  font-size: .88rem;
  font-weight: 500;
  cursor: pointer;
  background: #FFFDF7;
  color: #141413;
  text-decoration: none;
  transition: background-color .35s var(--ease), color .35s var(--ease), transform .35s var(--ease);
}
.stu-btn:hover { background: var(--stu-gold-lite); color: #141413; }
.stu-btn svg { transition: transform .35s var(--ease); }
.stu-btn:hover svg { transform: translateX(3px); }
.stu-btn--ink { background: var(--ink); color: var(--sand); }
.stu-btn--ink:hover { background: var(--stu-gold-lite); color: #141413; }
.stu-hero__sig {
  position: absolute; bottom: 40px; left: 0; right: 0; z-index: 4;
  display: flex; flex-direction: column; align-items: center; gap: 12px;
  pointer-events: none;
}
.stu-hero__sig p {
  font-family: var(--f-mono, ui-monospace, monospace);
  font-size: .62rem; text-transform: uppercase; letter-spacing: .3em;
  color: rgba(240,238,230,.5);
  margin: 0;
}
.stu-hero__tick {
  width: 1px; height: 32px;
  background: linear-gradient(to bottom, var(--stu-gold), transparent);
}
@media (max-width: 640px) { .stu-hero__sig { display: none; } }
.stu-sec { position: relative; overflow: hidden; padding: clamp(72px, 11vw, 160px) 0; }
.stu-sec--tint { background: var(--sand-2); border-block: 1px solid var(--rule); }
.stu-wrap { position: relative; width: min(1180px, 100% - 48px); margin-inline: auto; }
.stu-wrap--narrow { width: min(980px, 100% - 48px); }
.stu-glow {
  position: absolute; inset: 0; z-index: 0; pointer-events: none;
  background: radial-gradient(ellipse 80% 50% at 50% 0%, rgba(194,170,126,.16) 0%, transparent 70%);
}

.stu-head { margin-bottom: clamp(40px, 5vw, 66px); }
.stu-head--split {
  display: flex; flex-direction: column; gap: 22px;
}
@media (min-width: 860px) {
  .stu-head--split { flex-direction: row; align-items: flex-end; justify-content: space-between; }
  .stu-head--split .stu-head__aside { max-width: 27rem; }
}
.stu-head--centre { text-align: center; }
.stu-head--centre .stu-key-row { justify-content: center; }

.stu-key-row { display: flex; align-items: center; gap: 12px; margin-bottom: 14px; }
.stu-key {
  font-family: var(--f-mono, ui-monospace, monospace);
  font-size: .68rem; text-transform: uppercase; letter-spacing: .3em;
  color: var(--stu-gold);
  margin: 0;
}
.stu-h2 {
  font-family: var(--f-display, Georgia, serif);
  font-weight: 300;
  font-size: clamp(2rem, 4.5vw, 3.25rem);
  line-height: 1.05;
  letter-spacing: -.02em;
  color: var(--ink);
  margin: 0;
}
.stu-h2--big { font-size: clamp(2rem, 5vw, 3.5rem); }
.stu-h2 em { font-style: italic; color: var(--stu-gold); }
.stu-head__aside {
  font-size: .95rem; font-weight: 300; line-height: 1.7; color: var(--ink-mute);
  margin: 0;
}
.stu-lede {
  margin: 24px auto 0; max-width: 36rem;
  font-size: .95rem; font-weight: 300; line-height: 1.7; color: var(--ink-mute);
}
.stu-card {
  position: relative;
  border-radius: 16px;
  border: 1px solid var(--rule);
  background: var(--stu-card);
  padding: clamp(22px, 2.4vw, 32px);
  overflow: hidden;
  transition: border-color .5s var(--ease), background-color .5s var(--ease);
}
.stu-card::before {
  content: ""; position: absolute; inset: 0; pointer-events: none;
  opacity: 0; transition: opacity .5s var(--ease);
  background: radial-gradient(ellipse 60% 50% at 50% 0%, rgba(194,170,126,.14) 0%, transparent 70%);
}
.stu-card:hover { border-color: rgba(194,170,126,.45); }
.stu-card:hover::before { opacity: 1; }
.stu-card__t {
  font-family: var(--f-display, Georgia, serif);
  font-weight: 400;
  font-size: clamp(1.1rem, 1.7vw, 1.4rem);
  letter-spacing: -.01em;
  color: var(--ink);
  margin: 0;
}
.stu-card__d {
  margin: 12px 0 0;
  font-size: .92rem; font-weight: 300; line-height: 1.65; color: var(--ink-mute);
}

.stu-grid3 { display: grid; gap: 18px; }
.stu-grid2 { display: grid; gap: 18px; }
@media (min-width: 860px) {
  .stu-grid3 { grid-template-columns: repeat(3, 1fr); }
  .stu-grid2 { grid-template-columns: repeat(2, 1fr); }
}
.stu-ico {
  display: inline-flex; align-items: center; justify-content: center;
  width: 46px; height: 46px; margin-bottom: 20px;
  border-radius: 12px;
  background: rgba(194,170,126,.12);
  box-shadow: inset 0 0 0 1px rgba(194,170,126,.2);
  color: var(--stu-gold);
}
.stu-panel {
  margin-top: clamp(34px, 4vw, 60px);
  border: 1px solid var(--rule);
  border-radius: 16px;
  background: var(--marble);
  padding: clamp(24px, 3.4vw, 48px);
}
.stu-panel__grid { display: grid; gap: 26px; }
@media (min-width: 860px) { .stu-panel__grid { grid-template-columns: repeat(2, 1fr); gap: 34px; } }
.stu-panel p {
  margin: 0 0 14px;
  font-size: .9rem; font-weight: 300; line-height: 1.7; color: var(--ink-mute);
}
.stu-panel p:last-child { margin-bottom: 0; }
.stu-h3 {
  font-family: var(--f-display, Georgia, serif);
  font-weight: 300;
  font-size: clamp(1.25rem, 2.5vw, 1.75rem);
  line-height: 1.2; letter-spacing: -.02em; color: var(--ink);
  margin: 0;
}
.stu-h3 em { font-style: italic; color: var(--stu-gold); }
.stu-principles { display: grid; gap: clamp(44px, 6vw, 84px); }
.stu-prin { display: grid; gap: 14px; }
@media (min-width: 860px) {
  .stu-prin { grid-template-columns: 2fr 10fr; gap: 40px; }
}
.stu-prin__n {
  font-family: var(--f-mono, ui-monospace, monospace);
  font-size: .84rem; font-weight: 500; letter-spacing: .2em;
  color: var(--stu-gold);
}
.stu-prin__t {
  font-family: var(--f-display, Georgia, serif);
  font-weight: 300;
  font-size: clamp(1.5rem, 3vw, 2rem);
  line-height: 1.15; letter-spacing: -.02em; color: var(--ink);
  margin: 0;
}
.stu-prin__b {
  margin: 16px 0 0; max-width: 44rem;
  font-size: 1rem; font-weight: 300; line-height: 1.72; color: var(--ink-mute);
}
.stu-closing {
  margin-top: clamp(46px, 6vw, 90px);
  padding-top: clamp(30px, 3.4vw, 48px);
  border-top: 1px solid var(--rule);
  text-align: center;
}
.stu-closing p {
  margin: 0 auto; max-width: 40rem;
  font-family: var(--f-display, Georgia, serif);
  font-weight: 300; font-style: italic;
  font-size: clamp(1.2rem, 2.5vw, 1.7rem);
  line-height: 1.42; letter-spacing: -.02em;
  color: var(--ink-soft);
}
.stu-metric { border: 1px solid var(--rule); border-radius: 16px; background: var(--marble); padding: clamp(22px, 2.6vw, 34px); }
.stu-metric__v {
  font-family: var(--f-display, Georgia, serif);
  font-weight: 300; font-size: clamp(2.4rem, 5vw, 3.4rem); line-height: 1;
  color: var(--stu-gold); margin: 0;
}
.stu-metric__l { margin: 12px 0 0; font-size: .92rem; font-weight: 500; letter-spacing: -.01em; color: var(--ink); }
.stu-metric__t { margin: 8px 0 0; font-size: .82rem; font-weight: 300; line-height: 1.6; color: var(--ink-mute); }

.stu-track { position: relative; margin-top: clamp(46px, 6vw, 84px); }
.stu-track::before {
  content: ""; position: absolute; top: 0; bottom: 0; left: 7px; width: 1px;
  background: var(--rule);
}
@media (min-width: 860px) { .stu-track::before { left: calc(16.666% - .5px); } }
.stu-areas { display: grid; gap: clamp(34px, 4.4vw, 64px); }
.stu-area { display: grid; gap: 12px; }
@media (min-width: 860px) { .stu-area { grid-template-columns: 2fr 10fr; gap: 40px; } }
.stu-area__mark { position: relative; }
.stu-area__mark::before {
  content: ""; position: absolute; left: 0; top: 7px;
  width: 15px; height: 15px; border-radius: 999px;
  background: var(--stu-gold);
  box-shadow: 0 0 0 4px var(--sand-2);
}
@media (min-width: 860px) { .stu-area__mark::before { left: auto; right: -7.5px; } }
@media (max-width: 859px) {
  .stu-track .stu-area {
    grid-template-columns: 16px minmax(0, 1fr);
    gap: clamp(16px, 4.5vw, 22px);
    align-items: start;
  }
  .stu-area__mark { min-height: 22px; }
  .stu-area > :last-child { min-width: 0; }
}
.stu-area__t {
  font-family: var(--f-display, Georgia, serif);
  font-weight: 300; font-size: clamp(1.2rem, 2.5vw, 1.7rem);
  line-height: 1.2; letter-spacing: -.02em; color: var(--ink); margin: 0;
}
.stu-area__b { margin: 12px 0 0; max-width: 42rem; font-size: .95rem; font-weight: 300; line-height: 1.7; color: var(--ink-mute); }
.stu-depts { display: grid; gap: clamp(54px, 8vw, 128px); }
.stu-dept { display: grid; gap: 26px; align-items: center; }
@media (min-width: 860px) {
  .stu-dept { grid-template-columns: repeat(2, 1fr); gap: 64px; }
  .stu-dept--flip .stu-dept__fig { order: 2; }
  .stu-dept--flip .stu-dept__txt { order: 1; }
}
.stu-dept__t {
  font-family: var(--f-display, Georgia, serif);
  font-weight: 300; font-size: clamp(1.5rem, 3vw, 2.25rem);
  line-height: 1.15; letter-spacing: -.02em; color: var(--ink); margin: 0;
}
.stu-dept__b { margin: 16px 0 0; font-size: 1rem; font-weight: 300; line-height: 1.72; color: var(--ink-mute); }
.stu-plate {
  position: relative;
  margin: 0;
  aspect-ratio: 4 / 3;
  border-radius: 16px;
  border: 1px solid rgba(239, 234, 220, .10);
  background:
    radial-gradient(ellipse 60% 60% at 50% 46%, rgba(194,170,126,.13), transparent 68%),
    linear-gradient(160deg, #1A1815 0%, #131211 55%, #0E0D0C 100%);
  overflow: hidden;
  display: grid;
  place-items: center;
  isolation: isolate;
}
.stu-plate { padding-bottom: 34px; }
.stu-plate svg { width: 62%; height: 62%; display: block; overflow: visible; margin-top: -10px; }
.stu-plate__cap {
  position: absolute;
  left: 0; right: 0; bottom: 16px;
  text-align: center;
  font-family: var(--f-mono, ui-monospace, monospace);
  font-size: .58rem;
  letter-spacing: .16em;
  text-transform: uppercase;
  color: var(--stu-gold);
  padding: 0 14px;
  opacity: 0;
  transform: translateY(8px);
  transition: opacity .9s var(--ease, cubic-bezier(.16,1,.3,1)) .8s,
              transform .9s var(--ease, cubic-bezier(.16,1,.3,1)) .8s;
}
.stu-dept.is-bench .stu-plate__cap,
html:not(.js-reveal) .stu-plate__cap { opacity: 1; transform: none; }
@media (max-width: 620px) {
  .stu-plate { padding-bottom: 40px; aspect-ratio: 5 / 4; }
  .stu-plate svg { width: 54%; height: 54%; margin-top: -14px; }
  .stu-plate__cap {
    font-size: 9px;
    letter-spacing: .07em;
    line-height: 1.35;
    bottom: 9px;
    padding: 0 6px;
    text-wrap: balance;
  }
  .stu-plate__n { font-size: 1.6rem; right: 9px; bottom: 4px; }
}
.stu-ring {
  fill: none;
  stroke: rgba(194, 170, 126, .34);
  stroke-width: .7;
  stroke-linecap: round;
  transform-box: view-box;
  transform-origin: 50% 50%;
}
.stu-plate--armed .stu-ring { stroke-dashoffset: var(--len); }
.stu-dept.is-bench .stu-ring,
html:not(.js-reveal) .stu-ring {
  stroke-dashoffset: 0;
  transition: stroke-dashoffset 1.7s cubic-bezier(.22,.61,.36,1) var(--rd, 0s);
}
.stu-dept.is-bench .stu-ring--turn { animation: stu-ring-turn 64s linear infinite; }
.stu-dept.is-bench .stu-ring--turn-back { animation: stu-ring-turn 88s linear infinite reverse; }
@keyframes stu-ring-turn { to { transform: rotate(360deg); } }
.stu-glyph {
  fill: none;
  stroke: var(--stu-gold);
  stroke-width: 1.15;
  stroke-linecap: round;
  stroke-linejoin: round;
  opacity: 0;
  transform-box: view-box;
  transform-origin: 50% 50%;
}
.stu-dept.is-bench .stu-glyph,
html:not(.js-reveal) .stu-glyph {
  opacity: 1;
  transition: opacity 1.1s var(--ease, cubic-bezier(.16,1,.3,1)) .55s;
}
.stu-glyph-fill { fill: var(--stu-gold); stroke: none; opacity: 0; }
.stu-dept.is-bench .stu-glyph-fill { opacity: .9; transition: opacity 1.1s ease .7s; }
.stu-plate__bloom {
  position: absolute; left: 50%; top: 46%;
  width: 46%; aspect-ratio: 1;
  transform: translate(-50%, -50%);
  border-radius: 999px;
  background: radial-gradient(circle, rgba(194,170,126,.30) 0%, rgba(194,170,126,.08) 42%, transparent 70%);
  opacity: 0;
  transition: opacity 1.4s var(--ease, cubic-bezier(.16,1,.3,1)) .5s;
  pointer-events: none;
}
.stu-dept.is-bench .stu-plate__bloom { opacity: 1; animation: stu-bloom 7s ease-in-out infinite alternate 2s; }
@keyframes stu-bloom {
  from { transform: translate(-50%, -50%) scale(1); opacity: .82; }
  to   { transform: translate(-50%, -50%) scale(1.16); opacity: 1; }
}
.stu-plate__n {
  position: absolute; right: 16px; bottom: 10px;
  font-family: var(--f-display, Georgia, serif);
  font-weight: 300;
  font-size: clamp(2.2rem, 5vw, 3.6rem);
  line-height: 1;
  letter-spacing: -.04em;
  color: rgba(36, 31, 24, .07);
  pointer-events: none;
}
.stu-globe { position: relative; width: min(280px, 62vw); aspect-ratio: 1; margin: 0 auto clamp(34px, 4vw, 60px); }
.stu-globe__ring { position: absolute; inset: 0; animation: stu-spin 34s linear infinite; }
.stu-globe__ring svg { width: 100%; height: 100%; display: block; }
@keyframes stu-spin { to { transform: rotate(360deg); } }
.stu-globe__halo {
  position: absolute; inset: -14%; z-index: -1; border-radius: 999px;
  background: radial-gradient(circle, rgba(194,170,126,.2) 0%, transparent 66%);
}

.stu-countries { display: grid; grid-template-columns: repeat(2, 1fr); gap: 16px; }
@media (min-width: 860px) { .stu-countries { grid-template-columns: repeat(3, 1fr); } }
.stu-country { text-align: center; display: flex; flex-direction: column; align-items: center; }
.stu-country__f { font-size: 1.9rem; line-height: 1; }
.stu-country__n {
  margin: 12px 0 0;
  font-family: var(--f-display, Georgia, serif);
  font-weight: 400; font-size: 1.06rem; letter-spacing: -.01em; color: var(--ink);
}
.stu-country__v { margin: 4px 0 0; font-family: var(--f-mono, ui-monospace, monospace); font-weight: 300; font-size: 1.2rem; color: var(--stu-gold); }
.stu-country__d { margin: 4px 0 0; font-size: .76rem; font-weight: 300; color: var(--ink-mute); }

.stu-stats {
  margin-top: clamp(30px, 3.4vw, 48px);
  padding-top: clamp(22px, 2.6vw, 34px);
  border-top: 1px solid var(--rule);
  display: flex; flex-direction: column; align-items: center; gap: 24px;
}
@media (min-width: 640px) { .stu-stats { flex-direction: row; justify-content: center; gap: 48px; } }
.stu-stat { text-align: center; }
.stu-stat__v {
  font-family: var(--f-display, Georgia, serif);
  font-weight: 300; font-size: clamp(2rem, 4vw, 3rem); line-height: 1; color: var(--stu-gold); margin: 0;
}
.stu-stat__l {
  margin: 8px 0 0;
  font-family: var(--f-mono, ui-monospace, monospace);
  font-size: .62rem; text-transform: uppercase; letter-spacing: .2em; color: var(--ink-mute);
}
.stu-stat__bar { display: none; width: 1px; height: 46px; background: var(--rule); }
@media (min-width: 640px) { .stu-stat__bar { display: block; } }
.stu-contact { text-align: center; }
.stu-contact__rule { display: flex; align-items: center; justify-content: center; gap: 14px; margin-bottom: 30px; }
.stu-contact__rule span.stu-rule { width: 32px; height: 1px; background: rgba(194,170,126,.4); }
.stu-contact__sub {
  margin: 0 0 clamp(30px, 3.6vw, 50px);
  font-family: var(--f-mono, ui-monospace, monospace);
  font-size: .74rem; text-transform: uppercase; letter-spacing: .2em; color: var(--ink-mute);
}
.stu-ways { display: grid; gap: 16px; max-width: 42rem; margin-inline: auto; }
@media (min-width: 640px) { .stu-ways { grid-template-columns: repeat(2, 1fr); } }
.stu-way {
  display: flex; flex-direction: column; align-items: center; gap: 12px;
  text-decoration: none; text-align: center;
}
.stu-way__i {
  display: inline-flex; align-items: center; justify-content: center;
  width: 46px; height: 46px; border-radius: 999px;
  background: rgba(194,170,126,.12);
  box-shadow: inset 0 0 0 1px rgba(194,170,126,.24);
  color: var(--stu-gold);
  transition: background-color .35s var(--ease), box-shadow .35s var(--ease);
}
.stu-way:hover .stu-way__i { background: rgba(194,170,126,.2); box-shadow: inset 0 0 0 1px rgba(194,170,126,.44); }
.stu-way__k {
  font-family: var(--f-mono, ui-monospace, monospace);
  font-size: .62rem; text-transform: uppercase; letter-spacing: .2em; color: var(--ink-mute); margin: 0;
}
.stu-way__v {
  margin: 5px 0 0;
  font-family: var(--f-display, Georgia, serif);
  font-size: 1rem; letter-spacing: -.01em; color: var(--ink);
  transition: color .35s var(--ease);
}
.stu-way:hover .stu-way__v { color: var(--stu-gold); }
.stu-hair {
  width: 96px; height: 1px; margin: clamp(38px, 4.4vw, 64px) auto 0;
  background: linear-gradient(to right, transparent, var(--stu-gold), transparent);
}

@media (prefers-reduced-motion: reduce) {
  .stu-pill__dot::before,
  .stu-globe__ring { animation: none; }
}
.stu-hero--armed .stu-in {
  opacity: 0;
  transform: translate3d(0, 34px, 0);
}
.stu-hero--armed .stu-hero__status.stu-in { transform: translate3d(0, -22px, 0); }
.stu-mask {
  display: block;
  overflow: hidden;
  padding-block: .54em .44em;
  margin-block: -.54em -.44em;
}
.stu-mask > span { display: block; }
.stu-hero--armed .stu-mask > span { transform: translate3d(0, 112%, 0); }

.stu-hero--open .stu-in {
  opacity: 1;
  transform: none;
  transition:
    opacity .9s var(--ease, cubic-bezier(.16,1,.3,1)) var(--rd, 0s),
    transform 1.15s var(--ease, cubic-bezier(.16,1,.3,1)) var(--rd, 0s);
}
.stu-hero--open .stu-mask > span {
  transform: none;
  transition: transform 1.25s var(--ease, cubic-bezier(.16,1,.3,1)) var(--rd, 0s);
}
.stu-hero__media {
  transform: translate3d(0, var(--hp, 0px), 0) scale(var(--hs, 1));
  will-change: transform;
}
.stu-hero__media.is-settling {
  transition: transform 2.4s cubic-bezier(.16, 1, .3, 1);
}
.stu-hero--open .stu-pill { animation: stu-pill-in 1s var(--ease, cubic-bezier(.16,1,.3,1)) both .1s; }
@keyframes stu-pill-in {
  from { letter-spacing: .16em; opacity: 0; }
  to   { letter-spacing: .02em; opacity: 1; }
}
.stu-hero--open .stu-hero__tick {
  animation: stu-tick 1.1s cubic-bezier(.16,1,.3,1) both 1.05s;
  transform-origin: top;
}
@keyframes stu-tick { from { transform: scaleY(0); } to { transform: scaleY(1); } }
.stu-card { transform: translateZ(0); }
.stu-card.is-in { animation: stu-card-in 1s var(--ease, cubic-bezier(.16,1,.3,1)) both; }
@keyframes stu-card-in {
  from { opacity: 0; transform: translate3d(0, 44px, 0) scale(.97); }
  to   { opacity: 1; transform: none; }
}
.stu-track::before { transform-origin: top; transform: scaleY(0); transition: transform 1.6s cubic-bezier(.22,.61,.36,1) .2s; }
.stu-track.is-in::before,
html:not(.js-reveal) .stu-track::before { transform: scaleY(1); }
.stu-area .stu-area__mark::before { transform: scale(0); transition: transform .7s var(--ease, cubic-bezier(.16,1,.3,1)) var(--rd, 0s); }
.stu-area.is-in .stu-area__mark::before,
html:not(.js-reveal) .stu-area__mark::before { transform: scale(1); }
@media (hover: hover) and (pointer: fine) {
  .stu-card { transition: border-color .5s var(--ease), background-color .5s var(--ease), transform .6s var(--ease), box-shadow .6s var(--ease); }
  .stu-card:hover {
    transform: translate3d(0, -7px, 0);
    box-shadow: 13px 26px 60px -40px rgba(36, 31, 24, .5);
  }
}
.stu-plate::after {
  content: ""; position: absolute; inset: 0; pointer-events: none;
  opacity: 0; transition: opacity 1.2s var(--ease, cubic-bezier(.16,1,.3,1));
  background: radial-gradient(ellipse 60% 60% at 70% 80%, rgba(194,170,126,.26), transparent 70%);
}
.stu-dept.is-bench .stu-plate::after { opacity: 1; }
.stu-hero--calm.stu-hero--armed .stu-in { transform: none; }
.stu-hero--calm.stu-hero--armed .stu-mask > span { transform: none; }
.stu-hero--calm .stu-in {
  transition: opacity .8s ease var(--rd, 0s) !important;
}
.stu-hero--calm .stu-mask { overflow: visible; }
.stu-hero--calm .stu-mask > span {
  opacity: 0;
  transition: opacity .8s ease var(--rd, 0s);
}
.stu-hero--calm.stu-hero--open .stu-mask > span { opacity: 1; }
.stu-hero--calm .stu-hero__media { transform: none !important; }
.stu-hero--calm .stu-hero__tick { animation: none; }

@media (prefers-reduced-motion: reduce) {
  .stu-card.is-in { animation: stu-card-calm .8s ease both; }
  @keyframes stu-card-calm { from { opacity: 0; } to { opacity: 1; } }
  .stu-track::before { transform: none; opacity: 0; transition: opacity 1s ease .2s; }
  .stu-track.is-in::before { opacity: 1; }
  .stu-area .stu-area__mark::before { transform: none; opacity: 0; transition: opacity .7s ease var(--rd, 0s); }
  .stu-area.is-in .stu-area__mark::before { opacity: 1; }
  .stu-hero--open .stu-pill { animation: stu-pill-calm .9s ease both .1s; }
  @keyframes stu-pill-calm { from { opacity: 0; } to { opacity: 1; } }
}
.stu-mark {
  position: absolute;
  left: 50%; top: 50%;
  width: min(74vw, 620px);
  aspect-ratio: 1;
  margin: -1px;
  transform: translate(-50%, -50%);
  z-index: 1;
  pointer-events: none;
  opacity: .07;
  color: #FFFDF7;
}
.stu-mark svg {
  width: 100%; height: 100%; display: block;
  animation: stu-mark-turn 96s linear infinite;
  will-change: transform;
  transform: translateZ(0);
}
@keyframes stu-mark-turn { to { transform: rotate(360deg); } }
@media (max-width: 640px) { .stu-mark { width: 86vw; opacity: .05; } }
.stu-drift {
  position: absolute; inset: -20%;
  z-index: 0; pointer-events: none;
  background: radial-gradient(ellipse 42% 38% at 50% 50%,
              rgba(194, 170, 126, .20) 0%, rgba(194, 170, 126, .07) 45%, transparent 72%);
  animation: stu-drift 34s ease-in-out infinite alternate;
  will-change: transform;
}
@keyframes stu-drift {
  from { transform: translate3d(-14%, -8%, 0) scale(1); }
  to   { transform: translate3d(14%, 10%, 0) scale(1.18); }
}
.stu-sec--tint > .stu-wrap { position: relative; z-index: 1; }
.stu-grain {
  position: absolute; inset: -60px;
  z-index: 3; pointer-events: none;
  opacity: .13;
  background-image: var(--stu-grain);
  background-size: 180px 180px;
  animation: stu-grain 1.2s steps(6) infinite;
  will-change: transform;
  transform: translateZ(0);
  backface-visibility: hidden;
}
@keyframes stu-grain {
  0%   { transform: translate3d(0, 0, 0); }
  20%  { transform: translate3d(-24px, 12px, 0); }
  40%  { transform: translate3d(18px, -20px, 0); }
  60%  { transform: translate3d(-14px, -12px, 0); }
  80%  { transform: translate3d(22px, 16px, 0); }
  100% { transform: translate3d(0, 0, 0); }
}
.stu-hero__inner {
  opacity: 1;
  transform: none;
}
.stu-hero__sig { opacity: 1; }
.stu-sec--tint.is-rest .stu-drift,
.stu-globe.is-rest .stu-globe__ring { animation-play-state: paused; }
@media (max-width: 640px) {
  .stu-grain {
    display: block;
    animation: none;
    opacity: .055;
    will-change: auto;
  }
  .stu-mark { display: block; width: 86vw; opacity: .045; }
}
@media (max-width: 900px) and (pointer: coarse) {
  .stu-grain { animation: none; opacity: .08; }
}
.stu-hero .hero__film::after { content: none; }
.stu-hero .stu-hero__media > video {
  position: absolute;
  inset: 0;
  display: block;
  width: 100%;
  height: 100%;
}
.stu-hero .stu-hero__media > video { z-index: 0; }
.stu-hero .stu-hero__media > picture { display: none !important; }
.stu-hero .stu-hero__media > picture > img.hero__film-poster {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  opacity: 1;
  transition: opacity .5s ease;
}
.stu-hero .stu-hero__media > picture > img.hero__film-poster.is-hidden {
  display: block;
  opacity: 0;
  visibility: hidden;
  transition: opacity .5s ease, visibility 0s linear .5s;
}
.stu-hero .stu-hero__media { --stu-focal: 50% 42%; }
@media (max-width: 759px) {
  .stu-hero .stu-hero__media { --stu-focal: 50% 50%; }
}
.stu-hero .stu-hero__media > video {
  object-position: var(--stu-focal);
}
.stu-hero--open .stu-hero__status.stu-in { transform: none; }
.stu-hero.stu-hero .stu-hero__media,
.stu-hero.stu-hero .hero__film { inset: 0; }

.stu-hero .stu-hero__media,
.stu-hero .stu-hero__media.is-settling,
.stu-hero .stu-hero__media.is-flat {
  transform: none !important;
  transition: none !important;
  will-change: auto;
}
.stu-hero .stu-hero__media > video {
  transform: none;
  backface-visibility: visible;
  background: var(--stu-dark);
}
@keyframes stu-film-failsafe {
  to { opacity: 1; }
}
.stu-hero .stu-hero__media > video {
  opacity: 0;
  transition: opacity .48s cubic-bezier(.22,.61,.36,1);
  animation: stu-film-failsafe .48s cubic-bezier(.22,.61,.36,1) .7s forwards;
}
.stu-hero .stu-hero__media.is-film-ready > video {
  opacity: 1;
  animation: none;
}
.stu-sec .stu-key {
  color: #665136;
  font-weight: 600;
}
.stu-hero .stu-grain {
  animation: none;
  will-change: auto;
}
.stu-depts .stu-dept:not(.is-bench) .stu-plate__cap,
.stu-depts .stu-dept:not(.is-bench) .stu-plate__bloom,
.stu-depts .stu-dept:not(.is-bench) .stu-plate::after,
.stu-depts .stu-dept:not(.is-bench) .stu-ring,
.stu-depts .stu-dept:not(.is-bench) .stu-glyph,
.stu-depts .stu-dept:not(.is-bench) .stu-glyph-fill {
  transition: none;
  animation: none;
}
@media (hover: none) and (pointer: coarse) {
  .stu-dept.is-bench .stu-ring--turn,
  .stu-dept.is-bench .stu-ring--turn-back,
  .stu-dept.is-bench .stu-plate__bloom { animation: none; }
}
html.no-flag-emoji .stu-country__f[data-code] {
  font-size: 0;
  line-height: 0;
}
html.no-flag-emoji .stu-country__f[data-code]::before {
  content: attr(data-code);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 2.6em;
  height: 1.75em;
  padding: 0 .5em;
  border: 1px solid rgba(194, 170, 126, .55);
  border-radius: 3px;
  background: rgba(194, 170, 126, .07);
  font-family: var(--f-mono, ui-monospace, monospace);
  font-size: .82rem;
  font-weight: 400;
  letter-spacing: .14em;
  text-indent: .14em;
  line-height: 1;
  color: var(--stu-gold);
}
