:root {
  --color-black: #050505;
  --color-near-black: #111111;
  --color-white: #f5f5f2;
  --color-light-gray: #f2f2f2;
  --color-gray-100: #d8d8d3;
  --color-gray-500: #858585;
  --color-gray-copy: #5e5c57;
  --color-gray-800: #242424;
  --color-method: #282828;
  --color-method-copy: #b9b9b3;
  --color-method-muted: #62625f;
  --color-technology: #000000;
  --color-technology-copy: #b8b8b3;
  --color-technology-map: #242424;
  --color-tutors: #f2f2f2;
  --color-tutors-copy: #5e5c57;
  --color-tutors-line: #b9b9b4;
  --color-tutoring: #e8e8e5;
  --color-footer: #0c0c0c;
  --color-gold: #d4a33a;

  --font-sans: "Manrope", "Helvetica Neue", Arial, sans-serif;

  --space-page: clamp(1.5rem, 4vw, 4.5rem);
  --ease-out-quart: cubic-bezier(0.22, 1, 0.36, 1);
  --ease-hero-reveal: cubic-bezier(0.37, 0, 0.63, 1);
  --hero-reveal: 2000ms;
}

*,
*::before,
*::after {
  box-sizing: border-box;
}

html {
  min-width: 320px;
  background: var(--color-black);
  scroll-behavior: smooth;
}

body {
  margin: 0;
  min-width: 320px;
  background: var(--color-black);
  color: var(--color-white);
  font-family: var(--font-sans);
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

body.menu-open {
  overflow: hidden;
}

a {
  color: inherit;
  text-decoration: none;
}

.visually-hidden {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

.site-header {
  position: fixed;
  z-index: 100;
  top: 0;
  left: 0;
  display: grid;
  grid-template-columns: minmax(7rem, 1fr) auto minmax(12rem, 1fr);
  align-items: center;
  gap: clamp(2rem, 4vw, 5rem);
  width: 100%;
  min-height: clamp(5.25rem, 9vh, 7rem);
  padding: 0 var(--space-page);
  color: var(--color-white);
  opacity: 0;
  animation: site-header-reveal 1200ms cubic-bezier(0.33, 0, 0.15, 1) 2400ms forwards;
  transition: color 700ms cubic-bezier(0.33, 0, 0.15, 1);
  pointer-events: none;
}

.site-header[data-nav-state="light"] {
  color: var(--color-near-black);
}

.site-header > * {
  pointer-events: auto;
}

.site-header__brand {
  justify-self: start;
  font-size: clamp(0.95rem, 1vw, 1.08rem);
  font-weight: 500;
  letter-spacing: 0.28em;
}

.site-header__nav {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: clamp(1.35rem, 2.3vw, 2.8rem);
  white-space: nowrap;
}

.site-header__nav a,
.site-header__start,
.site-header__menu-button {
  font-size: clamp(0.76rem, 0.76vw, 0.86rem);
  font-weight: 500;
  letter-spacing: 0.06em;
}

.site-header__nav a {
  opacity: 0.76;
  transition: opacity 300ms ease;
}

.site-header__nav a:hover,
.site-header__nav a:focus-visible {
  opacity: 1;
}

.site-header__start {
  display: inline-flex;
  align-items: center;
  justify-self: end;
  gap: 0.65rem;
  color: var(--color-gold);
  letter-spacing: 0.13em;
  text-transform: uppercase;
}

.site-header__start span,
.mobile-menu__start span {
  transition: transform 400ms var(--ease-out-quart);
}

.site-header__start:hover span,
.site-header__start:focus-visible span,
.mobile-menu__start:hover span,
.mobile-menu__start:focus-visible span {
  transform: translateX(0.35rem);
}

.site-header a:focus-visible,
.site-header__menu-button:focus-visible,
.mobile-menu a:focus-visible {
  outline: 1px solid var(--color-gold);
  outline-offset: 0.55rem;
}

.site-header__menu-button {
  display: none;
  justify-self: end;
  padding: 0;
  border: 0;
  background: transparent;
  color: inherit;
  font-family: inherit;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  cursor: pointer;
}

.mobile-menu {
  position: fixed;
  z-index: 99;
  inset: 0;
  display: grid;
  grid-template-rows: 1fr auto;
  align-items: center;
  padding: clamp(8rem, 16vh, 11rem) var(--space-page) clamp(3rem, 7vh, 5rem);
  background: var(--color-black);
  color: var(--color-white);
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition:
    opacity 700ms cubic-bezier(0.33, 0, 0.15, 1),
    visibility 0s linear 700ms;
}

.mobile-menu.is-open {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
  transition-delay: 0s;
}

.mobile-menu__nav {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: clamp(1.1rem, 2.8vh, 2rem);
}

.mobile-menu__nav a {
  font-size: clamp(2rem, 8.5vw, 4rem);
  font-weight: 400;
  letter-spacing: -0.045em;
  line-height: 1.08;
  opacity: 0;
  transform: translate3d(0, 8px, 0);
  transition:
    opacity 800ms cubic-bezier(0.33, 0, 0.15, 1),
    transform 900ms cubic-bezier(0.33, 0, 0.15, 1);
}

.mobile-menu.is-open .mobile-menu__nav a {
  opacity: 1;
  transform: translate3d(0, 0, 0);
}

.mobile-menu.is-open .mobile-menu__nav a:nth-child(1) { transition-delay: 120ms; }
.mobile-menu.is-open .mobile-menu__nav a:nth-child(2) { transition-delay: 180ms; }
.mobile-menu.is-open .mobile-menu__nav a:nth-child(3) { transition-delay: 240ms; }
.mobile-menu.is-open .mobile-menu__nav a:nth-child(4) { transition-delay: 300ms; }
.mobile-menu.is-open .mobile-menu__nav a:nth-child(5) { transition-delay: 360ms; }

.mobile-menu__start {
  display: inline-flex;
  align-items: center;
  justify-self: start;
  gap: 0.7rem;
  color: var(--color-gold);
  font-size: 0.9rem;
  font-weight: 500;
  letter-spacing: 0.16em;
  text-transform: uppercase;
}

.menu-open .site-header {
  color: var(--color-white);
}

@keyframes site-header-reveal {
  to { opacity: 1; }
}

@media (max-width: 1060px) {
  .site-header {
    grid-template-columns: 1fr auto;
  }

  .site-header__nav,
  .site-header__start {
    display: none;
  }

  .site-header__menu-button {
    display: block;
  }
}

@media (prefers-reduced-motion: reduce) {
  .site-header {
    opacity: 1;
    animation: none;
    transition: none;
  }

  .mobile-menu,
  .mobile-menu__nav a,
  .site-header__start span,
  .mobile-menu__start span {
    transition: none;
  }
}

.hero {
  position: relative;
  display: grid;
  min-height: 100vh;
  min-height: 100svh;
  overflow: hidden;
  background: var(--color-black);
  padding: var(--space-page);
}

.hero__content {
  display: grid;
  place-items: center;
  width: 100%;
  min-height: 100%;
  padding: clamp(4rem, 11vh, 8rem) 0;
}

.hero__title {
  width: min(18ch, 88vw);
  margin: 0;
  color: var(--color-white);
  font-size: clamp(2.2rem, 5.625vw, 6.75rem);
  font-weight: 400;
  line-height: 1.04;
  letter-spacing: -0.055em;
  text-align: center;
  text-wrap: balance;
}

.hero__title span {
  display: block;
  white-space: nowrap;
  opacity: 0;
  transform: translateY(7px);
}

.hero.is-ready .hero__title span {
  animation: hero-title-reveal var(--hero-reveal) var(--ease-hero-reveal) forwards;
}

.hero.is-ready .hero__title span:nth-child(1) {
  animation-delay: 500ms;
}

.hero.is-ready .hero__title span:nth-child(2) {
  animation-delay: 580ms;
}

.hero.is-ready .hero__title span:nth-child(3) {
  animation-delay: 660ms;
}

.hero__discover {
  position: absolute;
  left: 50%;
  bottom: clamp(1.75rem, 5vh, 3.5rem);
  color: var(--color-gold);
  font-size: clamp(0.75rem, 0.86vw, 0.9rem);
  font-weight: 500;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  opacity: 0;
  transform: translateX(-50%);
}

.hero.is-ready .hero__discover {
  animation: discover-reveal 1100ms var(--ease-hero-reveal) 2300ms forwards;
}

.hero__discover:focus-visible {
  outline: 1px solid var(--color-gold);
  outline-offset: 0.75rem;
}

@keyframes hero-title-reveal {
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

@keyframes discover-reveal {
  to {
    opacity: 0.78;
  }
}

@media (max-width: 620px) {
  .hero__content {
    padding: 4.5rem 0 7rem;
  }

  .hero__title {
    width: min(12ch, 92vw);
    font-size: clamp(2rem, 9.9vw, 3.6rem);
    line-height: 1.08;
  }

  .hero__title span {
    white-space: normal;
  }
}

@media (prefers-reduced-motion: reduce) {
  html {
    scroll-behavior: auto;
  }

  .hero__title span,
  .hero.is-ready .hero__title span,
  .hero__discover,
  .hero.is-ready .hero__discover {
    animation: none;
    opacity: 1;
    transform: none;
  }

  .hero__discover,
  .hero.is-ready .hero__discover {
    opacity: 0.78;
    transform: translateX(-50%);
  }
}

.origin {
  position: relative;
  min-height: 130vh;
  min-height: 130svh;
  background: var(--color-light-gray);
  color: var(--color-near-black);
}

.origin__stage {
  position: sticky;
  top: 0;
  display: grid;
  grid-template-columns: minmax(0, 1.18fr) minmax(18rem, 0.82fr);
  align-items: center;
  column-gap: clamp(2.5rem, 4vw, 5.5rem);
  width: 100%;
  min-height: 100vh;
  min-height: 100svh;
  margin: 0 auto;
  padding: clamp(7rem, 13vh, 10rem) 15vw;
}

.origin__heading {
  align-self: center;
  transform: translateX(clamp(2.5rem, 3.5vw, 3.75rem));
}

.origin__label {
  margin: 0 0 clamp(2rem, 4vh, 3.5rem);
  color: var(--color-gold);
  font-size: clamp(0.94rem, 1.02vw, 1.1rem);
  font-weight: 500;
  letter-spacing: 0.21em;
  line-height: 1.2;
  text-transform: uppercase;
}

.origin__title {
  margin: 0;
  color: var(--color-near-black);
  font-size: clamp(3.6rem, 6.72vw, 8rem);
  font-weight: 400;
  letter-spacing: -0.065em;
  line-height: 0.95;
}

.origin__title span,
.origin__copy span {
  display: block;
}

.origin__story {
  align-self: center;
  padding-top: clamp(2rem, 5vh, 4.5rem);
  transform: translateX(clamp(-3.75rem, -3.5vw, -2.5rem));
}

.origin__copy {
  max-width: 31rem;
  margin: 0;
  color: var(--color-gray-copy);
  font-size: clamp(1.15rem, 1.47vw, 1.52rem);
  font-weight: 400;
  letter-spacing: -0.022em;
  line-height: 1.58;
}

.origin__copy span + span {
  margin-top: 1.05em;
}

.origin__link {
  display: inline-flex;
  align-items: center;
  gap: 0.8rem;
  margin-top: clamp(2.6rem, 5vh, 4rem);
  color: var(--color-gold);
  font-size: clamp(0.9rem, 0.96vw, 1.04rem);
  font-weight: 500;
  letter-spacing: 0.16em;
  line-height: 1.2;
  text-transform: uppercase;
}

.origin__link span {
  transition: transform 400ms var(--ease-out-quart);
}

.origin__link:hover span,
.origin__link:focus-visible span {
  transform: translateX(0.35rem);
}

.origin__link:focus-visible {
  outline: 1px solid var(--color-gold);
  outline-offset: 0.65rem;
}

.origin__reveal {
  opacity: 0;
  transform: translate3d(0, 8px, 0);
}

@media (max-width: 900px) {
  .origin {
    min-height: auto;
  }

  .origin__stage {
    position: relative;
    grid-template-columns: 1fr;
    align-content: center;
    gap: clamp(4.5rem, 10vh, 7rem);
    min-height: 115vh;
    min-height: 115svh;
    padding-right: var(--space-page);
    padding-left: var(--space-page);
    padding-top: clamp(8rem, 16vh, 11rem);
    padding-bottom: clamp(8rem, 16vh, 11rem);
  }

  .origin__title {
    font-size: clamp(3.2rem, 11.2vw, 6.4rem);
  }

  .origin__story {
    justify-self: end;
    width: min(100%, 34rem);
    padding-top: 0;
    transform: none;
  }

  .origin__heading {
    transform: none;
  }
}

@media (max-width: 620px) {
  .origin__stage {
    gap: 4.25rem;
    min-height: 110vh;
    min-height: 110svh;
    padding-top: 7rem;
    padding-bottom: 7rem;
  }

  .origin__label {
    margin-bottom: 1.75rem;
  }

  .origin__title {
    font-size: clamp(2.9rem, 14.4vw, 4.2rem);
    line-height: 0.98;
  }

  .origin__copy {
    max-width: 28rem;
    font-size: 1.15rem;
    line-height: 1.65;
  }
}

@media (prefers-reduced-motion: reduce) {
  .origin__reveal {
    opacity: 1;
    transform: none;
  }

  .origin__link span {
    transition: none;
  }
}

.method,
.technology,
.tutors,
.tutoring,
.final-cta,
.site-footer {
  isolation: isolate;
}

.method::before,
.technology::before,
.tutors::before,
.tutoring::before,
.final-cta::before,
.site-footer::before {
  content: "";
  position: absolute;
  z-index: 0;
  top: 0;
  right: 0;
  left: 0;
  height: 34vh;
  height: 34svh;
  background: linear-gradient(to bottom, var(--transition-from), var(--transition-to));
  pointer-events: none;
}

.method {
  --transition-from: var(--color-light-gray);
  --transition-to: var(--color-method);
}

.technology {
  --transition-from: var(--color-method);
  --transition-to: var(--color-technology);
}

.tutors {
  --transition-from: var(--color-technology);
  --transition-to: var(--color-tutors);
}

.tutoring {
  --transition-from: var(--color-tutors);
  --transition-to: var(--color-tutoring);
}

.final-cta {
  --transition-from: var(--color-tutoring);
  --transition-to: var(--color-black);
}

.site-footer {
  --transition-from: var(--color-black);
  --transition-to: var(--color-footer);
}

.method__stage,
.technology__stage,
.tutors__content,
.tutoring__content,
.final-cta__content,
.site-footer__content {
  position: relative;
  z-index: 1;
}

@media (max-width: 620px) {
  .method::before,
  .technology::before,
  .tutors::before,
  .tutoring::before,
  .final-cta::before,
  .site-footer::before {
    height: 26vh;
    height: 26svh;
  }
}

.method {
  position: relative;
  background: var(--color-method);
  color: var(--color-white);
}

.method__stage {
  width: 100%;
  background: var(--color-method);
}

.method__scene {
  position: relative;
  min-height: 100vh;
  min-height: 100svh;
  padding: clamp(5.5rem, 11vh, 8.5rem) clamp(2rem, 8vw, 9rem);
  opacity: 0;
  transform: translate3d(0, 8px, 0);
  transition:
    opacity 1500ms cubic-bezier(0.33, 0, 0.15, 1),
    transform 1700ms cubic-bezier(0.33, 0, 0.15, 1);
}

.method__scene.is-active {
  opacity: 1;
  transform: translate3d(0, 0, 0);
}

.method__intro {
  min-height: 92vh;
  min-height: 92svh;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: flex-start;
  padding-left: clamp(2rem, 14vw, 14rem);
}

.method__eyebrow,
.method-chapter__label,
.method-chapter__source,
.method__link {
  color: var(--color-gold);
  font-weight: 500;
  line-height: 1.25;
  text-transform: uppercase;
}

.method__eyebrow {
  margin: 0 0 clamp(2.25rem, 5vh, 4rem);
  font-size: clamp(0.9rem, 1vw, 1.06rem);
  letter-spacing: 0.2em;
}

.method__intro-title {
  max-width: 13ch;
  margin: 0;
  color: var(--color-white);
  font-size: clamp(3.7rem, 6.3vw, 7.5rem);
  font-weight: 400;
  letter-spacing: -0.065em;
  line-height: 0.97;
}

.method__intro-title span,
.method-chapter__title span {
  display: block;
}

.method__intro-title span {
  white-space: nowrap;
}

.method-chapter {
  display: grid;
  grid-template-columns: minmax(20rem, 0.82fr) minmax(24rem, 1.18fr);
  align-items: center;
  gap: clamp(3rem, 7vw, 9rem);
}

.method-chapter__copy {
  width: min(100%, 34rem);
  justify-self: end;
}

.method-chapter__label {
  margin: 0 0 clamp(1.8rem, 3.5vh, 3rem);
  font-size: clamp(0.82rem, 0.9vw, 0.98rem);
  letter-spacing: 0.18em;
}

.method-chapter__title {
  margin: 0;
  color: var(--color-white);
  font-size: clamp(3rem, 4.6vw, 5.7rem);
  font-weight: 400;
  letter-spacing: -0.06em;
  line-height: 0.98;
}

.method-chapter__body {
  max-width: 31rem;
  margin: clamp(2.25rem, 4.5vh, 3.75rem) 0 0;
  color: var(--color-method-copy);
  font-size: clamp(1.05rem, 1.25vw, 1.32rem);
  font-weight: 400;
  letter-spacing: -0.02em;
  line-height: 1.58;
}

.method-chapter__source {
  margin: clamp(2rem, 4vh, 3.25rem) 0 0;
  font-size: clamp(0.75rem, 0.78vw, 0.85rem);
  letter-spacing: 0.18em;
}

.method-chapter__visual {
  width: min(100%, 48rem);
  justify-self: start;
}

.method-chapter__visual svg {
  display: block;
  width: 100%;
  height: auto;
  overflow: visible;
}

.method__link {
  display: inline-flex;
  align-items: center;
  gap: 0.75rem;
  margin-top: clamp(4.75rem, 9vh, 7rem);
  font-size: clamp(0.9rem, 0.96vw, 1.04rem);
  letter-spacing: 0.16em;
  opacity: 0;
  transform: translate3d(0, 5px, 0);
  transition:
    opacity 1100ms cubic-bezier(0.33, 0, 0.15, 1) 4000ms,
    transform 1200ms cubic-bezier(0.33, 0, 0.15, 1) 4000ms;
}

.method-structure.is-active .method__link {
  opacity: 1;
  transform: translate3d(0, 0, 0);
}

.method__link span {
  transition: transform 400ms var(--ease-out-quart);
}

.method__link:hover span,
.method__link:focus-visible span {
  transform: translateX(0.35rem);
}

.method__link:focus-visible {
  outline: 1px solid var(--color-gold);
  outline-offset: 0.65rem;
}

@media (max-width: 900px) {
  .method__scene {
    padding-right: var(--space-page);
    padding-left: var(--space-page);
  }

  .method__intro {
    padding-left: clamp(2rem, 10vw, 6rem);
  }

  .method__intro-title {
    font-size: clamp(3.3rem, 10.5vw, 6rem);
  }

  .method__intro-title span {
    white-space: normal;
  }

  .method-chapter {
    grid-template-columns: 1fr;
    grid-template-rows: auto minmax(14rem, 0.9fr);
    align-content: center;
    gap: clamp(2rem, 5vh, 3.5rem);
  }

  .method-chapter__copy {
    width: min(100%, 40rem);
    justify-self: start;
  }

  .method-chapter__title {
    font-size: clamp(2.8rem, 8.2vw, 4.8rem);
  }

  .method-chapter__body {
    max-width: 36rem;
  }

  .method-chapter__visual {
    width: min(100%, 38rem);
    max-height: 42vh;
    justify-self: center;
  }

  .method-chapter__visual svg {
    max-height: 42vh;
  }

}

@media (max-width: 620px) {
  .method__scene {
    padding-top: 4.5rem;
    padding-bottom: 3.5rem;
  }

  .method__intro-title {
    max-width: 12ch;
    font-size: clamp(2.9rem, 13vw, 4.6rem);
    line-height: 1;
  }

  .method-chapter {
    grid-template-rows: auto minmax(11rem, 0.75fr);
    gap: 1.75rem;
  }

  .method-chapter__label {
    margin-bottom: 1.4rem;
  }

  .method-chapter__title {
    font-size: clamp(2.45rem, 10.7vw, 3.6rem);
  }

  .method-chapter__body {
    margin-top: 1.65rem;
    font-size: 1rem;
    line-height: 1.52;
  }

  .method-chapter__source {
    margin-top: 1.45rem;
    font-size: 0.75rem;
  }

  .method__link {
    margin-top: 3rem;
  }

  .method-chapter__visual,
  .method-chapter__visual svg {
    max-height: 33vh;
  }
}

@media (prefers-reduced-motion: reduce) {
  .method__scene {
    opacity: 1;
    transform: none;
    transition: none;
  }

  .method__link {
    opacity: 1;
    transform: none;
    transition: none;
  }

  .method__link span {
    transition: none;
  }
}

.method-understanding__visual {
  overflow: hidden;
  color: var(--color-method-muted);
}

.method-understanding__visual svg {
  overflow: hidden;
}

.understanding-connections path {
  fill: none;
  stroke: currentColor;
  stroke-width: 1;
  stroke-dasharray: 1;
  stroke-dashoffset: 1;
  opacity: 0.5;
  vector-effect: non-scaling-stroke;
  transition: stroke-dashoffset 2500ms cubic-bezier(0.33, 0, 0.15, 1) 900ms;
}

.understanding-connections path:nth-child(2) { transition-delay: 1020ms; }
.understanding-connections path:nth-child(3) { transition-delay: 1140ms; }
.understanding-connections path:nth-child(4) { transition-delay: 1260ms; }
.understanding-connections path:nth-child(5) { transition-delay: 1380ms; }
.understanding-connections path:nth-child(6) { transition-delay: 1500ms; }

.method-understanding.is-active .understanding-connections path {
  stroke-dashoffset: 0;
}

.understanding-connections .understanding-connection--accent {
  stroke: var(--color-gold);
  opacity: 0.38;
}

.understanding-node {
  --node-opacity: 0.52;
  color: #8d8d87;
  opacity: 0;
  transition: opacity 1700ms cubic-bezier(0.33, 0, 0.15, 1) 350ms;
}

.method-understanding.is-active .understanding-node {
  opacity: var(--node-opacity);
}

.understanding-node circle {
  fill: var(--color-method);
  stroke: currentColor;
  stroke-width: 1;
  vector-effect: non-scaling-stroke;
}

.understanding-node text {
  fill: currentColor;
  font-family: var(--font-sans);
  font-size: 22px;
  font-weight: 400;
}

.understanding-node--center {
  --node-opacity: 0.68;
  color: var(--color-gold);
}

.understanding-node--center .understanding-node__core {
  fill: var(--color-gold);
  stroke: none;
}

@media (prefers-reduced-motion: reduce) {
  .understanding-connections path {
    stroke-dashoffset: 0;
    transition: none;
  }

  .understanding-node {
    opacity: var(--node-opacity);
    transition: none;
  }
}

.structure-path {
  fill: none;
  stroke-width: 1;
  vector-effect: non-scaling-stroke;
}

.structure-path--guide {
  stroke: var(--color-method-muted);
  opacity: 0.28;
}

.structure-path--progress {
  stroke: var(--color-gold);
  stroke-dasharray: 1;
  stroke-dashoffset: 1;
  opacity: 0.76;
  transition: stroke-dashoffset 3200ms cubic-bezier(0.33, 0, 0.15, 1) 700ms;
}

.method-structure.is-active .structure-path--progress {
  stroke-dashoffset: 0;
}

.structure-step {
  color: var(--color-method-copy);
  opacity: 0;
  transition: opacity 1100ms cubic-bezier(0.33, 0, 0.15, 1) var(--step-delay, 2400ms);
}

.method-structure.is-active .structure-step {
  opacity: 1;
}

.structure-step circle {
  fill: var(--color-method);
  stroke: var(--color-gold);
  stroke-width: 1;
  vector-effect: non-scaling-stroke;
}

.structure-step text {
  fill: currentColor;
  font-family: var(--font-sans);
  font-size: 13px;
  font-weight: 500;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

@media (prefers-reduced-motion: reduce) {
  .structure-path--progress {
    stroke-dashoffset: 0;
    transition: none;
  }

  .structure-step {
    opacity: 1;
    transition: none;
  }
}

.technology {
  position: relative;
  background: var(--color-technology);
  color: var(--color-white);
}

.technology__stage {
  position: relative;
  z-index: 1;
  width: 100%;
}

.technology__scene {
  position: relative;
  min-height: 100vh;
  min-height: 100svh;
  padding: clamp(5rem, 10vh, 8rem) clamp(2rem, 7vw, 8rem);
  opacity: 0;
  transform: translate3d(0, 8px, 0);
  transition:
    opacity 1600ms cubic-bezier(0.33, 0, 0.15, 1),
    transform 1800ms cubic-bezier(0.33, 0, 0.15, 1);
}

.technology__scene.is-active {
  opacity: 1;
  transform: translate3d(0, 0, 0);
}

@media (max-width: 900px) {
  .technology__scene {
    padding-right: var(--space-page);
    padding-left: var(--space-page);
  }
}

@media (prefers-reduced-motion: reduce) {
  .technology__scene {
    opacity: 1;
    transform: none;
    transition: none;
  }
}

.technology-map {
  display: grid;
  place-items: center;
}

.technology-map__canvas {
  position: relative;
  width: min(92vw, 75rem);
  aspect-ratio: 2 / 1;
}

.technology-map__outline,
.technology-map__overlay {
  position: absolute;
  inset: 0;
  display: block;
  width: 100%;
  height: 100%;
}

.technology-map__outline {
  opacity: 0;
  transition: opacity 1800ms cubic-bezier(0.33, 0, 0.15, 1) 350ms;
}

.technology-map.is-active .technology-map__outline {
  opacity: 0.72;
}

.technology-map__route {
  fill: none;
  stroke: var(--color-gold);
  stroke-width: 1;
  stroke-dasharray: 1;
  stroke-dashoffset: 1;
  opacity: 0.84;
  vector-effect: non-scaling-stroke;
  transition: stroke-dashoffset 2900ms cubic-bezier(0.33, 0, 0.15, 1) 2050ms;
}

.technology-map.is-active .technology-map__route {
  stroke-dashoffset: 0;
}

.technology-map__location,
.technology-map__distance,
.technology-map__signature {
  opacity: 0;
  translate: 0 4px;
  transition:
    opacity 1000ms cubic-bezier(0.33, 0, 0.15, 1),
    translate 1200ms cubic-bezier(0.33, 0, 0.15, 1);
}

.technology-map.is-active .technology-map__location,
.technology-map.is-active .technology-map__distance,
.technology-map.is-active .technology-map__signature {
  opacity: 1;
  translate: 0 0;
}

.technology-map__location[data-tech-map-warsaw] {
  transition-delay: 1250ms;
}

.technology-map__location[data-tech-map-new-york] {
  transition-delay: 1550ms;
}

.technology-map__distance {
  transition-delay: 4200ms;
}

.technology-map__signature {
  transition-delay: 4900ms;
}

.technology-map__location circle {
  fill: var(--color-gold);
}

.technology-map__location text,
.technology-map__distance text,
.technology-map__signature text {
  font-family: var(--font-sans);
  font-weight: 500;
  text-transform: uppercase;
}

.technology-map__location text {
  fill: #999994;
  font-size: 14px;
  letter-spacing: 0.15em;
}

.technology-map__distance text {
  fill: var(--color-white);
  font-size: 15px;
  letter-spacing: 0.18em;
}

.technology-map__signature text {
  fill: var(--color-gold);
  font-size: 13px;
  letter-spacing: 0.2em;
}

@media (max-width: 620px) {
  .technology-map__canvas {
    width: 190vw;
  }

  .technology-map__location text {
    font-size: 20px;
  }

  .technology-map__distance text {
    font-size: 21px;
  }

  .technology-map__signature text {
    font-size: 19px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .technology-map__outline,
  .technology-map__location,
  .technology-map__distance,
  .technology-map__signature {
    opacity: 1;
    translate: 0 0;
    transition: none;
  }

  .technology-map__route {
    stroke-dashoffset: 0;
    transition: none;
  }
}

.technology-message {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  padding-left: clamp(2rem, 14vw, 14rem);
}

.technology-message__title {
  margin: 0;
  color: var(--color-white);
  font-size: clamp(3.7rem, 6.25vw, 7.5rem);
  font-weight: 400;
  letter-spacing: -0.065em;
  line-height: 0.98;
}

.technology-message__title span {
  display: block;
  white-space: nowrap;
}

@media (max-width: 900px) {
  .technology-message {
    padding-left: clamp(2rem, 10vw, 6rem);
  }

  .technology-message__title {
    max-width: 12ch;
    font-size: clamp(3.1rem, 10vw, 5.8rem);
  }

  .technology-message__title span {
    white-space: normal;
  }
}

@media (max-width: 620px) {
  .technology-message__title {
    font-size: clamp(2.85rem, 12.6vw, 4.4rem);
    line-height: 1;
  }
}

.technology-showcase {
  display: grid;
  grid-template-columns: minmax(18rem, 0.72fr) minmax(32rem, 1.28fr);
  align-items: center;
  gap: clamp(3rem, 6vw, 7rem);
}

.technology-showcase__copy {
  width: min(100%, 31rem);
  justify-self: end;
}

.technology-showcase__title {
  margin: 0;
  color: var(--color-white);
  font-size: clamp(3rem, 4.25vw, 5.3rem);
  font-weight: 400;
  letter-spacing: -0.06em;
  line-height: 0.99;
}

.technology-showcase__title span {
  display: block;
}

.technology-showcase__body {
  max-width: 29rem;
  margin: clamp(2.25rem, 4.5vh, 3.75rem) 0 0;
  color: var(--color-technology-copy);
  font-size: clamp(1.02rem, 1.15vw, 1.24rem);
  letter-spacing: -0.02em;
  line-height: 1.58;
}

.technology-showcase__link {
  display: inline-flex;
  align-items: center;
  gap: 0.75rem;
  margin-top: clamp(2.1rem, 4vh, 3.25rem);
  color: var(--color-gold);
  font-size: clamp(0.9rem, 0.96vw, 1.04rem);
  font-weight: 500;
  letter-spacing: 0.16em;
  line-height: 1.2;
  text-transform: uppercase;
  opacity: 0;
  transform: translate3d(0, 5px, 0);
  transition:
    opacity 1100ms cubic-bezier(0.33, 0, 0.15, 1) 1900ms,
    transform 1200ms cubic-bezier(0.33, 0, 0.15, 1) 1900ms;
}

.technology-showcase.is-active .technology-showcase__link {
  opacity: 1;
  transform: translate3d(0, 0, 0);
}

.technology-showcase__link span {
  transition: transform 400ms var(--ease-out-quart);
}

.technology-showcase__link:hover span,
.technology-showcase__link:focus-visible span {
  transform: translateX(0.35rem);
}

.technology-showcase__link:focus-visible {
  outline: 1px solid var(--color-gold);
  outline-offset: 0.65rem;
}

.technology-showcase__interface {
  width: min(100%, 61rem);
  height: min(66vh, 42rem);
  min-height: 29rem;
  justify-self: start;
  border: 1px solid #252525;
  background: #080808;
  opacity: 0;
  transform: translate3d(0, 8px, 0);
  transition:
    opacity 1700ms cubic-bezier(0.33, 0, 0.15, 1) 450ms,
    transform 1900ms cubic-bezier(0.33, 0, 0.15, 1) 450ms;
}

.technology-showcase.is-active .technology-showcase__interface {
  opacity: 1;
  transform: translate3d(0, 0, 0);
}

.showcase-ui {
  display: grid;
  grid-template-rows: 3.25rem 1fr;
  width: 100%;
  height: 100%;
  color: #8e8e89;
  font-size: 0.75rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.showcase-ui__topbar {
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  gap: 1rem;
  padding: 0 1.25rem;
  border-bottom: 1px solid #222222;
}

.showcase-ui__brand span {
  margin-right: 0.6rem;
  color: var(--color-gold);
  letter-spacing: 0.18em;
}

.showcase-ui__session {
  color: #b4b4af;
  text-align: center;
}

.showcase-ui__status {
  justify-self: end;
}

.showcase-ui__status span {
  display: inline-block;
  width: 0.35rem;
  height: 0.35rem;
  margin-right: 0.45rem;
  border-radius: 50%;
  background: var(--color-gold);
}

.showcase-ui__body {
  display: grid;
  grid-template-columns: 22% 56% 22%;
  min-height: 0;
}

.showcase-ui__path,
.showcase-ui__workspace,
.showcase-ui__notes {
  min-width: 0;
  opacity: 0;
  transform: translate3d(0, 5px, 0);
  transition:
    opacity 1300ms cubic-bezier(0.33, 0, 0.15, 1),
    transform 1500ms cubic-bezier(0.33, 0, 0.15, 1);
}

.technology-showcase.is-active .showcase-ui__path,
.technology-showcase.is-active .showcase-ui__workspace,
.technology-showcase.is-active .showcase-ui__notes {
  opacity: 1;
  transform: translate3d(0, 0, 0);
}

.showcase-ui__path {
  transition-delay: 900ms;
}

.showcase-ui__workspace {
  transition-delay: 1080ms;
}

.showcase-ui__notes {
  transition-delay: 1260ms;
}

.showcase-ui__path,
.showcase-ui__notes {
  padding: clamp(1rem, 2vw, 1.75rem);
}

.showcase-ui__path {
  border-right: 1px solid #202020;
}

.showcase-ui__notes {
  border-left: 1px solid #202020;
}

.showcase-ui__caption {
  margin: 0 0 1.75rem;
  color: #666662;
  font-size: 0.68rem;
  letter-spacing: 0.16em;
}

.showcase-ui__path ol {
  display: grid;
  gap: 1.5rem;
  margin: 0;
  padding: 0;
  list-style: none;
}

.showcase-ui__path li {
  position: relative;
  display: grid;
  grid-template-columns: 2rem 1fr;
  color: #585855;
  line-height: 1.4;
}

.showcase-ui__path li::before {
  content: "";
  position: absolute;
  top: -0.55rem;
  right: 0;
  left: 2rem;
  height: 1px;
  background: #1e1e1e;
}

.showcase-ui__path li:first-child::before {
  display: none;
}

.showcase-ui__path li.is-complete {
  color: #777773;
}

.showcase-ui__path li.is-current {
  color: var(--color-white);
}

.showcase-ui__path li.is-current span {
  color: var(--color-gold);
}

.showcase-ui__workspace {
  display: grid;
  grid-template-rows: 3rem 1fr;
  background: #0b0b0b;
}

.showcase-ui__workspace-meta {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0 1.25rem;
  border-bottom: 1px solid #202020;
  color: #666662;
}

.showcase-ui__problem {
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: clamp(1.25rem, 3vw, 3rem);
  text-transform: none;
}

.showcase-ui__problem p {
  margin: 0 0 1.5rem;
  color: #777773;
  font-size: clamp(0.72rem, 0.82vw, 0.88rem);
  letter-spacing: 0;
}

.showcase-ui__formula {
  color: var(--color-white);
  font-size: clamp(1.45rem, 2.25vw, 2.6rem);
  font-weight: 400;
  letter-spacing: -0.035em;
}

.showcase-ui__problem svg {
  width: 100%;
  margin-top: clamp(1.5rem, 4vh, 3rem);
}

.showcase-ui__axis,
.showcase-ui__curve {
  fill: none;
  vector-effect: non-scaling-stroke;
}

.showcase-ui__axis {
  stroke: #242424;
  stroke-width: 1;
}

.showcase-ui__curve {
  stroke: var(--color-gold);
  stroke-width: 1;
  opacity: 0.72;
}

.showcase-ui__notes > p:not(.showcase-ui__caption) {
  margin: 0 0 2rem;
  color: #83837e;
  font-size: 0.76rem;
  letter-spacing: 0;
  line-height: 1.65;
  text-transform: none;
}

.showcase-ui__note-line {
  width: 100%;
  height: 1px;
  margin-top: 1rem;
  background: #272727;
}

.showcase-ui__note-line--short {
  width: 62%;
}

@media (max-width: 1100px) {
  .technology-showcase {
    grid-template-columns: minmax(17rem, 0.7fr) minmax(28rem, 1.3fr);
    gap: 3rem;
  }

  .showcase-ui__body {
    grid-template-columns: 24% 76%;
  }

  .showcase-ui__notes {
    display: none;
  }
}

@media (max-width: 900px) {
  .technology-showcase {
    grid-template-columns: 1fr;
    grid-template-rows: auto minmax(18rem, 0.95fr);
    align-content: center;
    gap: clamp(2rem, 5vh, 3.5rem);
  }

  .technology-showcase__copy {
    width: min(100%, 40rem);
    justify-self: start;
  }

  .technology-showcase__title {
    font-size: clamp(2.8rem, 8vw, 4.7rem);
  }

  .technology-showcase__body {
    max-width: 38rem;
  }

  .technology-showcase__interface {
    width: min(100%, 48rem);
    height: min(42vh, 29rem);
    min-height: 18rem;
    justify-self: center;
  }
}

@media (max-width: 620px) {
  .technology-showcase {
    grid-template-rows: auto minmax(14rem, 0.85fr);
    gap: 1.75rem;
  }

  .technology-showcase__title {
    font-size: clamp(2.45rem, 10.5vw, 3.5rem);
  }

  .technology-showcase__body {
    margin-top: 1.6rem;
    font-size: 1rem;
    line-height: 1.52;
  }

  .technology-showcase__interface {
    height: 34vh;
    min-height: 14rem;
  }

  .showcase-ui {
    grid-template-rows: 2.7rem 1fr;
    font-size: 0.58rem;
  }

  .showcase-ui__topbar {
    grid-template-columns: 1fr auto;
    padding: 0 0.8rem;
  }

  .showcase-ui__session {
    display: none;
  }

  .showcase-ui__body {
    grid-template-columns: 29% 71%;
  }

  .showcase-ui__path {
    padding: 0.85rem 0.65rem;
  }

  .showcase-ui__caption {
    margin-bottom: 1rem;
    font-size: 0.52rem;
  }

  .showcase-ui__path ol {
    gap: 1rem;
  }

  .showcase-ui__path li {
    grid-template-columns: 1.35rem 1fr;
  }

  .showcase-ui__path li::before {
    left: 1.35rem;
  }

  .showcase-ui__workspace {
    grid-template-rows: 2.3rem 1fr;
  }

  .showcase-ui__workspace-meta {
    padding: 0 0.75rem;
  }

  .showcase-ui__problem {
    padding: 0.9rem;
  }

  .showcase-ui__problem p {
    margin-bottom: 0.75rem;
    font-size: 0.58rem;
  }

  .showcase-ui__formula {
    font-size: 1.15rem;
  }

  .showcase-ui__problem svg {
    margin-top: 0.75rem;
  }
}

@media (prefers-reduced-motion: reduce) {
  .technology-showcase__link,
  .technology-showcase__interface,
  .showcase-ui__path,
  .showcase-ui__workspace,
  .showcase-ui__notes {
    opacity: 1;
    transform: none;
    transition: none;
  }

  .technology-showcase__link span {
    transition: none;
  }
}

.tutors {
  position: relative;
  min-height: 100vh;
  min-height: 100svh;
  display: grid;
  place-items: center;
  overflow: hidden;
  background: var(--color-tutors);
  color: var(--color-near-black);
}

.tutors__content {
  width: min(100%, 100rem);
  min-height: 100vh;
  min-height: 100svh;
  display: grid;
  grid-template-columns: minmax(22rem, 0.88fr) minmax(30rem, 1.12fr);
  align-items: center;
  gap: clamp(3rem, 7vw, 9rem);
  padding: clamp(5rem, 10vh, 8rem) clamp(2rem, 8vw, 9rem);
}

.tutors__copy {
  width: min(100%, 36rem);
  justify-self: end;
}

.tutors__eyebrow,
.tutors__title,
.tutors__body,
.tutors__link {
  opacity: 0;
  transform: translate3d(0, 7px, 0);
  transition:
    opacity 1400ms cubic-bezier(0.33, 0, 0.15, 1),
    transform 1600ms cubic-bezier(0.33, 0, 0.15, 1);
}

.tutors.is-active .tutors__eyebrow,
.tutors.is-active .tutors__title,
.tutors.is-active .tutors__body,
.tutors.is-active .tutors__link {
  opacity: 1;
  transform: translate3d(0, 0, 0);
}

.tutors__eyebrow {
  margin: 0 0 clamp(2rem, 4vh, 3.25rem);
  color: var(--color-gold);
  font-size: clamp(0.88rem, 0.95vw, 1.02rem);
  font-weight: 500;
  letter-spacing: 0.19em;
  line-height: 1.25;
  text-transform: uppercase;
}

.tutors__title {
  margin: 0;
  font-size: clamp(3.25rem, 5.05vw, 6rem);
  font-weight: 400;
  letter-spacing: -0.062em;
  line-height: 0.98;
  transition-delay: 120ms;
}

.tutors__title span {
  display: block;
  white-space: nowrap;
}

.tutors__body {
  max-width: 32rem;
  margin: clamp(2.25rem, 4.5vh, 3.75rem) 0 0;
  color: var(--color-tutors-copy);
  font-size: clamp(1.05rem, 1.2vw, 1.28rem);
  letter-spacing: -0.02em;
  line-height: 1.58;
  transition-delay: 260ms;
}

.tutors__link {
  display: inline-flex;
  align-items: center;
  gap: 0.75rem;
  margin-top: clamp(2.25rem, 4.5vh, 3.5rem);
  color: var(--color-gold);
  font-size: clamp(0.9rem, 0.96vw, 1.04rem);
  font-weight: 500;
  letter-spacing: 0.16em;
  line-height: 1.2;
  text-transform: uppercase;
  transition-delay: 440ms;
}

.tutors__link span {
  transition: transform 400ms var(--ease-out-quart);
}

.tutors__link:hover span,
.tutors__link:focus-visible span {
  transform: translateX(0.35rem);
}

.tutors__link:focus-visible {
  outline: 1px solid var(--color-gold);
  outline-offset: 0.65rem;
}

.tutors-system {
  width: min(100%, 47.5rem);
  justify-self: start;
}

.tutors-system svg {
  display: block;
  width: 100%;
  height: auto;
  overflow: visible;
}

.tutors-system text {
  fill: #565651;
  font-family: var(--font-sans);
  font-size: 14px;
  font-weight: 500;
  letter-spacing: 0.15em;
  text-transform: uppercase;
}

.tutors-system__connections path {
  fill: none;
  stroke: var(--color-tutors-line);
  stroke-width: 1;
  stroke-dasharray: 1;
  stroke-dashoffset: 1;
  vector-effect: non-scaling-stroke;
  transition: stroke-dashoffset 1500ms cubic-bezier(0.33, 0, 0.15, 1) 900ms;
}

.tutors-system__connections path:nth-child(2) { transition-delay: 1020ms; }
.tutors-system__connections path:nth-child(3) { transition-delay: 1140ms; }
.tutors-system__connections path:nth-child(4) { transition-delay: 1260ms; }

.tutors.is-active .tutors-system__connections path,
.tutors.is-active .tutors-system__student-line {
  stroke-dashoffset: 0;
}

.tutors-system__support,
.tutors-system__tutor,
.tutors-system__student {
  opacity: 0;
  translate: 0 5px;
  transition:
    opacity 1000ms cubic-bezier(0.33, 0, 0.15, 1),
    translate 1200ms cubic-bezier(0.33, 0, 0.15, 1);
}

.tutors-system__tutor {
  transition-delay: 260ms;
}

.tutors-system__support--method { transition-delay: 580ms; }
.tutors-system__support--materials { transition-delay: 690ms; }
.tutors-system__support--quality { transition-delay: 800ms; }
.tutors-system__support--technology { transition-delay: 910ms; }

.tutors.is-active .tutors-system__support,
.tutors.is-active .tutors-system__tutor,
.tutors.is-active .tutors-system__student {
  opacity: 1;
  translate: 0 0;
}

.tutors-system__support circle {
  fill: #777772;
}

.tutors-system__tutor circle {
  fill: var(--color-near-black);
}

.tutors-system__tutor text {
  fill: var(--color-near-black);
  font-size: 19px;
  letter-spacing: 0.2em;
}

.tutors-system__student-line {
  fill: none;
  stroke: var(--color-gold);
  stroke-width: 1.25;
  stroke-dasharray: 1;
  stroke-dashoffset: 1;
  vector-effect: non-scaling-stroke;
  transition: stroke-dashoffset 1200ms cubic-bezier(0.33, 0, 0.15, 1) 1750ms;
}

.tutors-system__student {
  transition-delay: 2350ms;
}

.tutors-system__student circle {
  fill: var(--color-gold);
}

.tutors-system__student text {
  fill: var(--color-gold);
  font-size: 15px;
  letter-spacing: 0.2em;
}

@media (max-width: 1050px) {
  .tutors__content {
    grid-template-columns: minmax(19rem, 0.8fr) minmax(27rem, 1.2fr);
    gap: 3rem;
  }

  .tutors__title span {
    white-space: normal;
  }
}

@media (max-width: 820px) {
  .tutors__content {
    grid-template-columns: 1fr;
    align-content: center;
    gap: clamp(2rem, 5vh, 3.5rem);
    padding-right: var(--space-page);
    padding-left: var(--space-page);
  }

  .tutors__copy {
    width: min(100%, 42rem);
    justify-self: start;
  }

  .tutors__title {
    font-size: clamp(3rem, 9.5vw, 5.2rem);
  }

  .tutors-system {
    width: min(100%, 39rem);
    max-height: 43vh;
    justify-self: center;
  }

  .tutors-system svg {
    max-height: 43vh;
  }
}

@media (max-width: 620px) {
  .tutors__content {
    gap: 1.25rem;
    padding-top: 4rem;
    padding-bottom: 3rem;
  }

  .tutors__eyebrow {
    margin-bottom: 1.5rem;
    font-size: 0.78rem;
  }

  .tutors__title {
    font-size: clamp(2.55rem, 11.7vw, 3.65rem);
  }

  .tutors__body {
    margin-top: 1.6rem;
    font-size: 1rem;
    line-height: 1.52;
  }

  .tutors__link {
    margin-top: 1.6rem;
    font-size: 0.78rem;
  }

  .tutors-system {
    width: 118%;
    margin-left: -9%;
  }

  .tutors-system text {
    font-size: 15px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .tutors__eyebrow,
  .tutors__title,
  .tutors__body,
  .tutors__link,
  .tutors-system__support,
  .tutors-system__tutor,
  .tutors-system__student {
    opacity: 1;
    translate: 0 0;
    transform: none;
    transition: none;
  }

  .tutors-system__connections path,
  .tutors-system__student-line {
    stroke-dashoffset: 0;
    transition: none;
  }

  .tutors__link span {
    transition: none;
  }
}

.tutoring {
  position: relative;
  min-height: 100vh;
  min-height: 100svh;
  display: grid;
  align-items: center;
  overflow: hidden;
  background: var(--color-tutoring);
  color: var(--color-near-black);
}

.tutoring__content {
  width: min(100%, 94rem);
  margin: 0 auto;
  padding: clamp(9rem, 16vh, 13rem) clamp(2rem, 8vw, 9rem) clamp(7rem, 12vh, 10rem);
}

.tutoring__eyebrow {
  margin: 0 0 clamp(3rem, 7vh, 5.5rem);
  color: var(--color-gold);
  font-size: clamp(0.9rem, 0.98vw, 1.05rem);
  font-weight: 500;
  letter-spacing: 0.2em;
  text-transform: uppercase;
}

.tutoring__row {
  display: grid;
  grid-template-columns: minmax(15rem, 0.72fr) minmax(20rem, 1.28fr);
  align-items: baseline;
  gap: clamp(2rem, 6vw, 7rem);
  padding: clamp(1.6rem, 3vh, 2.4rem) 0;
  border-top: 1px solid #c6c6c1;
}

.tutoring__row:last-child {
  border-bottom: 1px solid #c6c6c1;
}

.tutoring__row h3,
.tutoring__row p {
  margin: 0;
}

.tutoring__row h3 {
  font-size: clamp(1.4rem, 1.75vw, 2rem);
  font-weight: 400;
  letter-spacing: -0.025em;
  line-height: 1.25;
  text-transform: uppercase;
}

.tutoring__row p {
  color: var(--color-gray-copy);
  font-size: clamp(1rem, 1.1vw, 1.18rem);
  letter-spacing: -0.015em;
  line-height: 1.55;
}

.tutoring__link {
  display: inline-flex;
  align-items: center;
  gap: 0.75rem;
  margin-top: clamp(3.5rem, 7vh, 5.5rem);
  color: var(--color-gold);
  font-size: clamp(0.9rem, 0.96vw, 1.04rem);
  font-weight: 500;
  letter-spacing: 0.16em;
  text-transform: uppercase;
}

.tutoring__link span {
  transition: transform 400ms var(--ease-out-quart);
}

.tutoring__link:hover span,
.tutoring__link:focus-visible span {
  transform: translateX(0.35rem);
}

.tutoring__link:focus-visible {
  outline: 1px solid var(--color-gold);
  outline-offset: 0.65rem;
}

.tutoring__eyebrow,
.tutoring__row,
.tutoring__link {
  opacity: 0;
  transform: translate3d(0, 7px, 0);
  transition:
    opacity 1300ms cubic-bezier(0.33, 0, 0.15, 1),
    transform 1500ms cubic-bezier(0.33, 0, 0.15, 1);
}

.tutoring.is-active .tutoring__eyebrow,
.tutoring.is-active .tutoring__row,
.tutoring.is-active .tutoring__link {
  opacity: 1;
  transform: translate3d(0, 0, 0);
}

.tutoring__row:nth-child(1) { transition-delay: 120ms; }
.tutoring__row:nth-child(2) { transition-delay: 190ms; }
.tutoring__row:nth-child(3) { transition-delay: 260ms; }
.tutoring__row:nth-child(4) { transition-delay: 330ms; }
.tutoring__row:nth-child(5) { transition-delay: 400ms; }
.tutoring__link { transition-delay: 520ms; }

@media (max-width: 760px) {
  .tutoring__content {
    padding-right: var(--space-page);
    padding-left: var(--space-page);
  }

  .tutoring__row {
    grid-template-columns: 1fr;
    gap: 0.65rem;
  }
}

@media (prefers-reduced-motion: reduce) {
  .tutoring__eyebrow,
  .tutoring__row,
  .tutoring__link {
    opacity: 1;
    transform: none;
    transition: none;
  }

  .tutoring__link span {
    transition: none;
  }
}

.final-cta {
  position: relative;
  min-height: 100vh;
  min-height: 100svh;
  display: grid;
  align-items: center;
  overflow: hidden;
  background: var(--color-black);
  color: var(--color-white);
}

.final-cta__content {
  width: 100%;
  padding: clamp(8rem, 14vh, 11rem) clamp(2rem, 14vw, 14rem);
}

.final-cta__title {
  max-width: 14ch;
  margin: 0;
  font-size: clamp(3.5rem, 6.15vw, 7.35rem);
  font-weight: 400;
  letter-spacing: -0.065em;
  line-height: 0.98;
}

.final-cta__title span {
  display: block;
  white-space: nowrap;
}

.final-cta__link {
  display: inline-flex;
  align-items: center;
  gap: 0.8rem;
  margin-top: clamp(3.5rem, 7vh, 5.5rem);
  color: var(--color-gold);
  font-size: clamp(0.94rem, 1vw, 1.08rem);
  font-weight: 500;
  letter-spacing: 0.17em;
  text-transform: uppercase;
}

.final-cta__link span {
  transition: transform 400ms var(--ease-out-quart);
}

.final-cta__link:hover span,
.final-cta__link:focus-visible span {
  transform: translateX(0.35rem);
}

.final-cta__link:focus-visible {
  outline: 1px solid var(--color-gold);
  outline-offset: 0.65rem;
}

.final-cta__title,
.final-cta__link {
  opacity: 0;
  transform: translate3d(0, 8px, 0);
  transition:
    opacity 1600ms cubic-bezier(0.33, 0, 0.15, 1),
    transform 1800ms cubic-bezier(0.33, 0, 0.15, 1);
}

.final-cta__link {
  transition-delay: 220ms;
}

.final-cta.is-active .final-cta__title,
.final-cta.is-active .final-cta__link {
  opacity: 1;
  transform: translate3d(0, 0, 0);
}

@media (max-width: 900px) {
  .final-cta__content {
    padding-right: var(--space-page);
    padding-left: var(--space-page);
  }

  .final-cta__title {
    max-width: 12ch;
    font-size: clamp(3.1rem, 9.8vw, 5.8rem);
  }

  .final-cta__title span {
    white-space: normal;
  }
}

@media (max-width: 620px) {
  .final-cta__title {
    font-size: clamp(2.75rem, 12.4vw, 4.2rem);
    line-height: 1;
  }
}

@media (prefers-reduced-motion: reduce) {
  .final-cta__title,
  .final-cta__link {
    opacity: 1;
    transform: none;
    transition: none;
  }

  .final-cta__link span {
    transition: none;
  }
}

.site-footer {
  position: relative;
  min-height: 72vh;
  overflow: hidden;
  background: var(--color-footer);
  color: var(--color-white);
}

.site-footer__content {
  display: grid;
  grid-template-columns: minmax(20rem, 1.15fr) minmax(24rem, 0.85fr);
  align-content: space-between;
  gap: clamp(6rem, 14vh, 10rem) clamp(4rem, 10vw, 12rem);
  width: min(100%, 100rem);
  min-height: 72vh;
  margin: 0 auto;
  padding: clamp(9rem, 16vh, 13rem) clamp(2rem, 8vw, 9rem) clamp(2.5rem, 5vh, 4rem);
}

.site-footer__brand,
.site-footer__statement,
.site-footer__label,
.site-footer__contact p,
.site-footer__bottom p {
  margin: 0;
}

.site-footer__brand {
  color: var(--color-gold);
  font-size: 1rem;
  font-weight: 500;
  letter-spacing: 0.28em;
}

.site-footer__statement {
  max-width: 17ch;
  margin-top: clamp(2rem, 4vh, 3.25rem);
  color: #d1d1cc;
  font-size: clamp(1.65rem, 2.45vw, 2.8rem);
  font-weight: 400;
  letter-spacing: -0.045em;
  line-height: 1.16;
}

.site-footer__contact {
  display: grid;
  grid-template-columns: minmax(12rem, 1fr) minmax(8rem, 0.65fr);
  gap: 3rem;
  align-self: start;
}

.site-footer__label {
  margin-bottom: 1.35rem;
  color: var(--color-gold);
  font-size: 0.76rem;
  font-weight: 500;
  letter-spacing: 0.18em;
  text-transform: uppercase;
}

.site-footer__contact a,
.site-footer__contact div > p:last-child {
  color: #b7b7b2;
  font-size: clamp(1rem, 1.12vw, 1.2rem);
  line-height: 1.5;
}

.site-footer__contact a {
  transition: color 300ms ease;
}

.site-footer__contact a:hover,
.site-footer__contact a:focus-visible {
  color: var(--color-white);
}

.site-footer__bottom {
  grid-column: 1 / -1;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 2rem;
  padding-top: 1.75rem;
  border-top: 1px solid #242424;
  color: #73736f;
  font-size: 0.82rem;
  letter-spacing: 0.04em;
}

.site-footer__bottom nav {
  display: flex;
  gap: clamp(1.5rem, 3vw, 3rem);
}

.site-footer__bottom a {
  transition: color 300ms ease;
}

.site-footer__bottom a:hover,
.site-footer__bottom a:focus-visible {
  color: var(--color-white);
}

.site-footer a:focus-visible {
  outline: 1px solid var(--color-gold);
  outline-offset: 0.5rem;
}

.site-footer__brand-block,
.site-footer__contact,
.site-footer__bottom {
  opacity: 0;
  transform: translate3d(0, 7px, 0);
  transition:
    opacity 1400ms cubic-bezier(0.33, 0, 0.15, 1),
    transform 1600ms cubic-bezier(0.33, 0, 0.15, 1);
}

.site-footer__contact { transition-delay: 140ms; }
.site-footer__bottom { transition-delay: 280ms; }

.site-footer.is-active .site-footer__brand-block,
.site-footer.is-active .site-footer__contact,
.site-footer.is-active .site-footer__bottom {
  opacity: 1;
  transform: translate3d(0, 0, 0);
}

@media (max-width: 820px) {
  .site-footer__content {
    grid-template-columns: 1fr;
    gap: 5rem;
    padding-right: var(--space-page);
    padding-left: var(--space-page);
  }

  .site-footer__contact {
    grid-template-columns: 1fr 1fr;
  }

  .site-footer__bottom {
    grid-column: 1;
  }
}

@media (max-width: 560px) {
  .site-footer__contact {
    grid-template-columns: 1fr;
  }

  .site-footer__bottom {
    align-items: flex-start;
    flex-direction: column;
  }
}

@media (prefers-reduced-motion: reduce) {
  .site-footer__brand-block,
  .site-footer__contact,
  .site-footer__bottom {
    opacity: 1;
    transform: none;
    transition: none;
  }
}
