/* Hallmark · pre-emit critique: P5 H5 E5 S5 R5 V4 · macrostructure: Marquee Hero · tone: disciplined, cinematic academy · anchor hue: burnished gold
 * enrichment: E2 Full-Bleed Video · ghost overlay; currently a clearly labelled video-ready poster
 * polish: HP2 Marquee-overflow · nav: N7 Sport slab · footer: Ft5 Statement
 */
@import url("tokens.css");

* { box-sizing: border-box; }

html,
body {
  min-width: 0;
  overflow-x: clip;
}

html { scroll-behavior: smooth; }

body {
  min-height: 100vh;
  margin: 0;
  background: var(--color-ink);
  color: var(--color-bone);
  font-family: var(--font-body);
  font-size: var(--text-base);
  line-height: 1.55;
  text-rendering: optimizeLegibility;
}

body::selection {
  background: var(--color-red);
  color: var(--color-ink);
}

img,
svg,
video { display: block; max-width: 100%; }

a { color: inherit; text-decoration: none; }
button,
input,
select,
textarea { font: inherit; }
button,
a { -webkit-tap-highlight-color: var(--color-transparent); }
button { cursor: pointer; }

:focus-visible {
  outline: var(--ring-width) solid var(--color-focus);
  outline-offset: var(--ring-offset);
}

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

.placeholder-copy { color: var(--color-bone-muted); }

.noscript-nav {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-md);
  padding: var(--space-md) var(--page-gutter);
  background: var(--color-ink-soft);
  color: var(--color-bone);
  font-size: var(--text-xs);
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.noscript-nav a { white-space: nowrap; }

.site-header {
  position: absolute;
  z-index: 20;
  top: 0;
  right: 0;
  left: 0;
  border-bottom: var(--rule-hair) solid var(--color-rule);
  background: var(--color-glass);
  backdrop-filter: blur(1rem);
}

.site-header__inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: min(100%, calc(var(--page-max) + (var(--page-gutter) * 2)));
  min-height: 5.25rem;
  margin: 0 auto;
  padding-inline: var(--page-gutter);
}

.brand {
  display: inline-flex;
  flex: none;
  flex-direction: column;
  gap: var(--space-2xs);
  align-items: center;
  min-width: 0;
  padding: var(--space-2xs) var(--space-sm);
}

.brand-logo {
  display: block;
  width: clamp(12rem, 16vw, 15rem);
  height: auto;
}

.brand-disciplines {
  color: var(--color-red);
  font-family: var(--font-body);
  font-size: var(--text-2xs);
  font-weight: 800;
  letter-spacing: 0.09em;
  line-height: 1;
  text-transform: uppercase;
  white-space: nowrap;
}

.site-nav {
  display: flex;
  gap: var(--space-lg);
  align-items: center;
}

.site-nav__links {
  display: flex;
  gap: clamp(0.8rem, 1.55vw, 1.5rem);
  align-items: center;
}

.site-nav__links a,
.footer__nav a,
.footer__contact a {
  color: var(--color-bone-muted);
  font-size: var(--text-xs);
  font-weight: 700;
  letter-spacing: 0.07em;
  text-transform: uppercase;
  white-space: nowrap;
  transition: color var(--dur-base) var(--ease-out);
}

.site-nav__links a:hover,
.site-nav__links a:focus-visible,
.site-nav__links a[aria-current="page"],
.footer__nav a:hover,
.footer__nav a:focus-visible,
.footer__contact a:hover,
.footer__contact a:focus-visible {
  color: var(--color-red-bright);
}

.button {
  display: inline-flex;
  gap: var(--space-xs);
  align-items: center;
  justify-content: center;
  min-height: 2.875rem;
  padding: 0.75rem 1.125rem;
  border: var(--rule-hair) solid var(--color-red);
  border-radius: var(--radius-sm);
  background: var(--color-transparent);
  color: var(--color-red-bright);
  font-family: var(--font-body);
  font-size: var(--text-xs);
  font-weight: 800;
  letter-spacing: 0.08em;
  line-height: 1;
  text-align: center;
  text-transform: uppercase;
  white-space: nowrap;
  transition: color var(--dur-base) var(--ease-out), background-color var(--dur-base) var(--ease-out), transform var(--dur-fast) var(--ease-out), border-color var(--dur-base) var(--ease-out);
}

.button:hover {
  border-color: var(--color-red-bright);
  background: var(--color-red-bright);
  color: var(--color-ink);
  transform: translateY(-0.125rem);
}

.button:active { transform: translateY(0); }
.button:disabled { cursor: not-allowed; border-color: var(--color-bone-deep); color: var(--color-bone-deep); }
.button--gold { background: var(--color-red); color: var(--color-ink); }
.button--gold:hover { background: var(--color-red-bright); }
.button--bone { border-color: var(--color-bone); color: var(--color-bone); }
.button--bone:hover { background: var(--color-bone); color: var(--color-ink); }
.button--full { width: 100%; }

.menu-toggle {
  display: none;
  width: 3rem;
  min-height: 3rem;
  padding: var(--space-sm);
  border: var(--rule-hair) solid var(--color-rule);
  border-radius: var(--radius-sm);
  background: var(--color-transparent);
  color: var(--color-bone);
}

.menu-toggle span:not(.visually-hidden) {
  display: block;
  width: 100%;
  height: var(--rule-hair);
  margin-block: 0.27rem;
  background: currentColor;
}

.hero {
  position: relative;
  isolation: isolate;
  display: grid;
  align-items: end;
  min-height: clamp(44rem, 78dvh, 58rem);
  overflow-x: clip;
  padding: calc(5.25rem + var(--space-3xl)) var(--page-gutter) var(--space-4xl);
  background: var(--color-ink);
}

.hero__video-wrap,
.hero__scrim,
.hero__mesh { position: absolute; inset: 0; z-index: -2; }

.hero__video-wrap { background: var(--color-ink-raised); }

.hero__placeholder {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: var(--space-sm);
  width: 100%;
  height: 100%;
  background: repeating-linear-gradient(135deg, var(--color-ink-raised), var(--color-ink-raised) 1.5rem, var(--color-ink-soft) 1.5rem, var(--color-ink-soft) 3rem);
  border: var(--rule-hair) dashed var(--color-rule);
}

.hero__placeholder-icon {
  display: grid;
  place-items: center;
  width: 3.5rem;
  height: 3.5rem;
  border: var(--rule-hair) solid var(--color-red);
  border-radius: var(--radius-pill);
  color: var(--color-red);
  font-size: var(--text-md);
}

.hero__placeholder-text {
  color: var(--color-bone-muted);
  font-size: var(--text-xs);
  font-weight: 800;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

.hero__scrim {
  z-index: -1;
  background: linear-gradient(90deg, var(--color-hero-scrim), var(--color-hero-scrim-soft)), linear-gradient(0deg, var(--color-hero-scrim), var(--color-hero-scrim-soft));
}

.hero__mesh {
  z-index: -1;
  background: linear-gradient(135deg, var(--color-wash), var(--color-transparent) 42%);
  pointer-events: none;
}

.hero__content {
  width: min(100%, var(--page-max));
  margin-inline: auto;
}

.hero__line {
  display: flex;
  gap: var(--space-md);
  align-items: center;
  margin: 0 0 var(--space-lg);
  color: var(--color-red-bright);
  font-size: var(--text-xs);
  font-weight: 800;
  letter-spacing: 0.17em;
  text-transform: uppercase;
}

.hero__line::before {
  width: clamp(2.5rem, 8vw, 7rem);
  height: var(--rule-hair);
  background: currentColor;
  content: "";
}

.hero h1 {
  max-width: 9ch;
  min-width: 0;
  margin: 0;
  color: var(--color-bone);
  font-family: var(--font-display);
  font-size: var(--text-display);
  font-style: normal;
  font-weight: 700;
  line-height: 0.78;
  letter-spacing: -0.045em;
  text-transform: uppercase;
  overflow-wrap: anywhere;
}

.hero__rotator {
  position: relative;
  display: grid;
  min-height: 2.6rem;
}

.hero__rotator-item {
  grid-area: 1 / 1;
  margin: 0;
  opacity: 0;
  transform: translateY(0.25rem);
  transition: opacity var(--dur-slow) var(--ease-out), transform var(--dur-slow) var(--ease-out);
  pointer-events: none;
}

.hero__rotator-item.is-active {
  opacity: 1;
  transform: translateY(0);
  pointer-events: auto;
}

.hero h1 span { color: var(--color-red); }

.hero__utility {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-lg);
  align-items: end;
  justify-content: space-between;
  max-width: var(--page-max);
  margin: var(--space-2xl) auto 0;
  padding-top: var(--space-lg);
  border-top: var(--rule-hair) solid var(--color-rule);
}

.hero__utility p {
  max-width: 31rem;
  margin: 0;
  color: var(--color-bone-muted);
  font-size: var(--text-sm);
}

.video-note {
  display: inline-flex;
  gap: var(--space-xs);
  align-items: center;
  margin: 0;
  color: var(--color-bone-muted);
  font-size: var(--text-2xs);
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.video-note::before {
  width: 0.45rem;
  height: 0.45rem;
  border: var(--rule-hair) solid var(--color-red);
  border-radius: var(--radius-pill);
  content: "";
}

.rule-thick {
  height: var(--rule-thick);
  margin: 0;
  border: 0;
  background: var(--color-red);
}

.section { padding: var(--space-5xl) var(--page-gutter); }
.section--bone { background: var(--color-bone); color: var(--color-ink); }
.section--ink { background: var(--color-ink); color: var(--color-bone); }
.section--raised { background: var(--color-ink-raised); color: var(--color-bone); }
.section--gold { background: var(--color-red); color: var(--color-ink); }

.container { width: min(100%, var(--page-max)); margin-inline: auto; }
.container--reading { width: min(100%, var(--content-max)); margin-inline: auto; }

.section-intro { max-width: 43rem; }
.section-intro > p:first-child,
.kicker,
.meta-label {
  margin: 0 0 var(--space-sm);
  color: var(--color-red-deep);
  font-size: var(--text-xs);
  font-weight: 800;
  letter-spacing: 0.16em;
  text-transform: uppercase;
}

.section--ink .section-intro > p:first-child,
.section--raised .section-intro > p:first-child,
.section--ink .kicker,
.section--raised .kicker,
.section--ink .meta-label,
.section--raised .meta-label { color: var(--color-red-bright); }

.section-title {
  max-width: 13ch;
  min-width: 0;
  margin: 0;
  color: inherit;
  font-family: var(--font-display);
  font-size: clamp(3rem, 6.2vw, 6.3rem);
  font-style: normal;
  font-weight: 700;
  line-height: 0.86;
  letter-spacing: -0.035em;
  text-transform: uppercase;
  overflow-wrap: anywhere;
}

.section-copy {
  max-width: 41rem;
  margin: var(--space-lg) 0 0;
  color: inherit;
  font-size: var(--text-md);
}

.section--ink .section-copy,
.section--raised .section-copy { color: var(--color-bone-muted); }

.section-head {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 0.82fr);
  gap: var(--space-3xl);
  align-items: end;
  margin-bottom: var(--space-3xl);
}

.section-head__aside { align-self: end; }
.section-head__aside p { margin: 0; color: inherit; font-size: var(--text-sm); }

.home-intro {
  display: grid;
  grid-template-columns: minmax(0, 0.85fr) minmax(0, 1.15fr);
  gap: clamp(2.5rem, 8vw, 9rem);
  align-items: start;
}

.home-intro__manifesto {
  margin: 0;
  color: var(--color-ink);
  font-family: var(--font-display);
  font-size: clamp(3rem, 5.5vw, 5.75rem);
  font-style: normal;
  font-weight: 700;
  line-height: 0.88;
  letter-spacing: -0.035em;
  text-transform: uppercase;
}

.home-intro__body { padding-top: var(--space-lg); }
.home-intro__body p { max-width: 35rem; margin: 0; font-size: var(--text-md); }
.home-intro__body p + p { margin-top: var(--space-lg); }

.program-list { border-top: var(--rule-hair) solid var(--color-rule); }

.program-link {
  display: grid;
  grid-template-columns: minmax(0, 0.3fr) minmax(0, 1fr) auto;
  gap: var(--space-lg);
  align-items: center;
  min-height: 6.25rem;
  border-bottom: var(--rule-hair) solid var(--color-rule);
  color: var(--color-bone);
  transition: color var(--dur-base) var(--ease-out), background-color var(--dur-base) var(--ease-out), border-color var(--dur-base) var(--ease-out), box-shadow var(--dur-base) var(--ease-out), transform var(--dur-base) var(--ease-out);
}

.program-link:focus,
.program-link:focus-visible {
  background: var(--color-wash);
  box-shadow: var(--shadow-red);
  color: var(--color-red-bright);
  transform: translateX(var(--space-sm));
}

.program-link:hover {
  background: var(--color-wash);
  box-shadow: var(--shadow-red);
  color: var(--color-red-bright);
  transform: translateX(var(--space-sm));
}

.program-link__index,
.program-link__detail {
  color: var(--color-bone-muted);
  font-size: var(--text-xs);
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

.program-link__name {
  min-width: 0;
  font-family: var(--font-display);
  font-size: clamp(1.8rem, 3vw, 3rem);
  font-weight: 700;
  line-height: 0.9;
  letter-spacing: -0.02em;
  text-transform: uppercase;
  overflow-wrap: anywhere;
}

.arrow-link {
  display: inline-flex;
  gap: var(--space-sm);
  align-items: center;
  color: var(--color-red-deep);
  font-size: var(--text-xs);
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  white-space: nowrap;
}

.arrow-link::after { content: "→"; font-size: var(--text-md); transition: transform var(--dur-base) var(--ease-out); }
.arrow-link:hover::after,
.arrow-link:focus-visible::after { transform: translateX(0.25rem); }
.section--ink .arrow-link,
.section--raised .arrow-link { color: var(--color-red); }

.trust-panel {
  display: grid;
  grid-template-columns: minmax(0, 0.78fr) minmax(0, 1.22fr);
  border: var(--rule-hair) solid var(--color-rule);
}

.trust-panel__aside {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  min-height: 20rem;
  padding: var(--space-xl);
  border-right: var(--rule-hair) solid var(--color-rule);
  background: var(--color-ink-soft);
}

.trust-panel__aside h3,
.contact-block h2,
.form-panel h2,
.article-card h2,
.profile-card h2 {
  margin: 0;
  font-family: var(--font-display);
  font-size: var(--text-2xl);
  font-style: normal;
  font-weight: 700;
  line-height: 0.9;
  letter-spacing: -0.02em;
  text-transform: uppercase;
}

.trust-panel__aside p { margin: var(--space-md) 0 0; color: var(--color-bone-muted); font-size: var(--text-sm); }

.trust-panel__body {
  display: grid;
  place-items: center;
  min-height: 20rem;
  padding: var(--space-2xl);
  text-align: center;
}

.empty-proof { max-width: 34rem; }
.empty-proof__mark { display: block; color: var(--color-red); font-family: var(--font-display); font-size: var(--text-4xl); line-height: 0.7; }
.empty-proof p { margin: var(--space-lg) 0 0; color: var(--color-bone-muted); font-size: var(--text-md); }

.schedule-preview {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  border-top: var(--rule-hair) solid var(--color-rule-dark);
  border-left: var(--rule-hair) solid var(--color-rule-dark);
}

.schedule-preview__cell {
  min-height: 12rem;
  padding: var(--space-lg);
  border-right: var(--rule-hair) solid var(--color-rule-dark);
  border-bottom: var(--rule-hair) solid var(--color-rule-dark);
}

.schedule-preview__cell span { color: var(--color-red-deep); font-size: var(--text-xs); font-weight: 800; letter-spacing: 0.12em; text-transform: uppercase; }
.schedule-preview__cell h3 { margin: var(--space-3xl) 0 0; font-family: var(--font-display); font-size: var(--text-xl); line-height: 0.9; text-transform: uppercase; }
.schedule-preview__cell p { margin: var(--space-xs) 0 0; color: var(--color-ink-soft); font-size: var(--text-sm); }

.cta-band { display: flex; flex-wrap: wrap; gap: var(--space-xl); align-items: center; justify-content: space-between; }
.cta-band h2 { max-width: 12ch; margin: 0; font-family: var(--font-display); font-size: clamp(2.75rem, 5vw, 5rem); font-style: normal; font-weight: 700; line-height: 0.86; letter-spacing: -0.035em; text-transform: uppercase; }
.cta-band p { max-width: 32rem; margin: 0; color: var(--color-ink); }
.cta-band .button { flex: none; border-color: var(--color-ink); background: var(--color-ink); color: var(--color-bone); }
.cta-band .button:hover { background: var(--color-ink-soft); color: var(--color-bone); }

.page-hero {
  display: grid;
  align-items: end;
  min-height: clamp(27rem, 52dvh, 41rem);
  padding: calc(5.25rem + var(--space-3xl)) var(--page-gutter) var(--space-3xl);
  background: linear-gradient(135deg, var(--color-ink), var(--color-ink-soft));
}

.page-hero__inner { width: min(100%, var(--page-max)); margin-inline: auto; }
.page-hero p { max-width: 40rem; margin: var(--space-lg) 0 0; color: var(--color-bone-muted); font-size: var(--text-md); }
.page-hero h1 { max-width: 11ch; min-width: 0; margin: 0; font-family: var(--font-display); font-size: var(--text-display-s); font-style: normal; font-weight: 700; line-height: 0.8; letter-spacing: -0.045em; text-transform: uppercase; overflow-wrap: anywhere; }
.page-hero .kicker { color: var(--color-red-bright); }

.program-grid,
.profile-grid,
.blog-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--space-md); }

.program-card,
.profile-card,
.article-card {
  display: flex;
  flex-direction: column;
  min-height: 20rem;
  padding: var(--space-xl);
  border: var(--rule-hair) solid var(--color-rule);
  background: var(--color-ink-raised);
}

.program-card {
  justify-content: space-between;
  transition: border-color var(--dur-base) var(--ease-out), box-shadow var(--dur-base) var(--ease-out), transform var(--dur-base) var(--ease-out);
}

.program-card:focus-within {
  border-color: var(--color-red);
  box-shadow: var(--shadow-red);
  transform: translateY(calc(var(--space-xs) * -1));
}

.program-card:hover {
  border-color: var(--color-red);
  box-shadow: var(--shadow-red);
  transform: translateY(calc(var(--space-xs) * -1));
}
.program-card__index { color: var(--color-red); font-size: var(--text-xs); font-weight: 800; letter-spacing: 0.13em; }
.program-card h2 { max-width: 10ch; margin: var(--space-4xl) 0 var(--space-md); font-family: var(--font-display); font-size: var(--text-2xl); font-style: normal; font-weight: 700; line-height: 0.88; letter-spacing: -0.02em; text-transform: uppercase; }
.program-card p { margin: 0; color: var(--color-bone-muted); font-size: var(--text-sm); }
.program-card .arrow-link { margin-top: var(--space-lg); }

.program-card--image {
  position: relative;
  isolation: isolate;
  overflow: clip;
}

.program-card--image::after {
  position: absolute;
  z-index: 1;
  inset: 0;
  background: linear-gradient(0deg, var(--color-ink), var(--color-hero-scrim-soft));
  content: "";
}

.program-card--image > :not(.program-card__photo) {
  position: relative;
  z-index: 2;
}

.program-card__photo {
  position: absolute;
  z-index: 0;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  filter: saturate(0.72) contrast(1.08);
  transition: transform var(--dur-slow) var(--ease-out);
}

.program-card--image:hover .program-card__photo { transform: scale(1.045); }

.value-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-lg); }
.value-card { padding: var(--space-xl); border: var(--rule-hair) solid var(--color-rule); background: var(--color-ink-raised); }
.value-card__icon { width: 2.25rem; height: 2.25rem; margin-bottom: var(--space-lg); color: var(--color-red); }
.value-card h3 { margin: 0 0 var(--space-md); font-family: var(--font-display); font-size: var(--text-xl); font-weight: 700; line-height: 0.9; letter-spacing: -0.01em; text-transform: uppercase; }
.value-card ul { display: grid; gap: var(--space-sm); margin: 0 0 var(--space-lg); padding: 0; list-style: none; }
.value-card li { position: relative; padding-left: var(--space-lg); color: var(--color-bone-muted); font-size: var(--text-sm); }
.value-card li::before { position: absolute; top: 0.6em; left: 0; width: 0.5rem; height: var(--rule-hair); background: var(--color-red); content: ""; }

.notice {
  display: flex;
  gap: var(--space-md);
  align-items: flex-start;
  margin-top: var(--space-2xl);
  padding: var(--space-lg);
  border-left: var(--rule-thick) solid var(--color-red);
  background: var(--color-wash);
}
.notice p { margin: 0; color: var(--color-bone-muted); font-size: var(--text-sm); }
.notice strong { color: var(--color-bone); }

.profile-card { min-height: 27rem; justify-content: flex-start; }
.profile-card__photo {
  display: grid;
  place-items: center;
  aspect-ratio: 1;
  margin: calc(var(--space-xl) * -1) calc(var(--space-xl) * -1) var(--space-lg);
  border-bottom: var(--rule-hair) dashed var(--color-rule);
  background: linear-gradient(135deg, var(--color-ink-soft), var(--color-ink));
  color: var(--color-bone-deep);
  font-size: var(--text-xs);
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}
.profile-card .meta-label { margin: 0 0 var(--space-xs); }
.profile-card h2 { margin: 0 0 var(--space-xs); font-family: var(--font-display); font-size: var(--text-xl); font-weight: 700; line-height: 0.9; text-transform: uppercase; }
.profile-card__role { margin: 0 0 var(--space-md); color: var(--color-red); font-size: var(--text-sm); font-weight: 700; }
.profile-card__role em { color: var(--color-red-bright); font-style: italic; }
.profile-card p:not(.meta-label):not(.profile-card__role) { margin: 0; color: var(--color-bone-muted); font-size: var(--text-sm); }
.profile-card__social { margin-top: auto; padding-top: var(--space-lg); color: var(--color-bone-deep); font-size: var(--text-2xs); font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; border-top: var(--rule-hair) solid var(--color-rule); }

.article-card { justify-content: flex-end; min-height: 24rem; background: var(--color-ink-soft); }
.article-card:nth-child(2n) { background: var(--color-ink-raised); }
.article-card h2 { max-width: 12ch; margin-top: var(--space-4xl); }
.article-card p { margin: var(--space-md) 0 0; color: var(--color-bone-muted); font-size: var(--text-sm); }
.article-card .arrow-link { margin-top: var(--space-xl); }

.article-card--shot { position: relative; isolation: isolate; overflow: clip; }
.article-card--shot::after { position: absolute; z-index: 1; inset: 0; background: linear-gradient(0deg, var(--color-ink), var(--color-hero-scrim-soft)); content: ""; }
.article-card--shot > :not(.card-shot) { position: relative; z-index: 2; }
.card-shot { position: absolute; z-index: 0; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: top; }

.article { padding-block: var(--space-4xl); }
.article + .article { border-top: var(--rule-hair) solid var(--color-rule); }
.article__meta { color: var(--color-red); font-size: var(--text-xs); font-weight: 800; letter-spacing: 0.14em; text-transform: uppercase; }
.article h2 { max-width: 15ch; margin: var(--space-md) 0 var(--space-lg); font-family: var(--font-display); font-size: clamp(2.5rem, 5vw, 4.5rem); font-style: normal; font-weight: 700; line-height: 0.88; letter-spacing: -0.03em; text-transform: uppercase; }
.article p { max-width: var(--content-max); margin: var(--space-md) 0 0; color: var(--color-bone-muted); }

.review-placeholder {
  display: grid;
  grid-template-columns: minmax(0, 0.8fr) minmax(0, 1.2fr);
  gap: var(--space-3xl);
  align-items: center;
  padding: var(--space-3xl);
  border: var(--rule-hair) solid var(--color-rule);
  background: var(--color-ink-raised);
}
.review-placeholder__large { margin: 0; color: var(--color-red); font-family: var(--font-display); font-size: clamp(5rem, 13vw, 11rem); line-height: 0.62; }
.review-placeholder p { margin: 0; color: var(--color-bone-muted); font-size: var(--text-md); }
.review-placeholder .button { margin-top: var(--space-xl); }

.review-summary { display: flex; gap: var(--space-lg); align-items: center; padding: var(--space-lg) var(--space-xl); margin-bottom: var(--space-3xl); border: var(--rule-hair) solid var(--color-rule); background: var(--color-ink-raised); }
.review-summary__score { display: inline-flex; align-items: baseline; gap: 0.25rem; font-family: var(--font-display); font-size: var(--text-2xl); font-weight: 700; line-height: 1; color: var(--color-red); }
.review-summary__score-unit { color: var(--color-bone-muted); font-family: var(--font-body); font-size: var(--text-sm); font-weight: 700; }
.review-summary__detail p { margin: var(--space-xs) 0 0; color: var(--color-bone-muted); font-size: var(--text-sm); }
.stars { display: inline-flex; gap: 0.2rem; }
.star { width: 1.1rem; height: 1.1rem; }
.star--filled { fill: var(--color-red); }
.star--empty { fill: none; stroke: var(--color-bone-deep); stroke-width: 1.2px; }
.review-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--space-md); }
.review-card { display: flex; flex-direction: column; gap: var(--space-md); padding: var(--space-xl); border: var(--rule-hair) dashed var(--color-rule); background: var(--color-ink-raised); }
.review-card__tag { align-self: flex-start; padding: 0.2rem var(--space-sm); border: var(--rule-hair) solid var(--color-red); color: var(--color-red); font-size: var(--text-2xs); font-weight: 800; letter-spacing: 0.1em; text-transform: uppercase; }
.review-card__quote { margin: 0; color: var(--color-bone-muted); font-size: var(--text-sm); }
.review-card__meta { margin: 0; color: var(--color-bone-deep); font-size: var(--text-xs); }
.review-card__meta strong { color: var(--color-bone); }

.schedule-grid { border-top: var(--rule-hair) solid var(--color-rule); }
.schedule-row { display: grid; grid-template-columns: minmax(7rem, 0.33fr) minmax(0, 1fr); gap: var(--space-xl); align-items: start; min-height: 9rem; padding-block: var(--space-xl); border-bottom: var(--rule-hair) solid var(--color-rule); }
.schedule-row h2 { margin: 0; color: var(--color-red); font-family: var(--font-display); font-size: var(--text-2xl); line-height: 0.8; text-transform: uppercase; }
.schedule-row p { max-width: 38rem; margin: 0; color: var(--color-bone-muted); }

.contact-layout { display: grid; grid-template-columns: minmax(0, 0.75fr) minmax(0, 1.25fr); gap: var(--space-xl); align-items: start; }
.contact-block,
.form-panel { padding: clamp(1.5rem, 4vw, 3rem); border: var(--rule-hair) solid var(--color-rule); background: var(--color-ink-raised); }
.contact-block { min-height: 34rem; }
.contact-block > p { max-width: 26rem; margin: var(--space-lg) 0 0; color: var(--color-bone-muted); }
.contact-details { display: grid; gap: var(--space-lg); margin-top: var(--space-3xl); }
.contact-details div { padding-bottom: var(--space-lg); border-bottom: var(--rule-hair) solid var(--color-rule); }
.contact-details span { display: block; margin-bottom: var(--space-xs); color: var(--color-red); font-size: var(--text-xs); font-weight: 800; letter-spacing: 0.12em; text-transform: uppercase; }
.contact-details a,
.contact-details p { margin: 0; color: var(--color-bone); font-size: var(--text-sm); }
.contact-details a:hover,
.contact-details a:focus-visible { color: var(--color-red-bright); }

.form-panel h2 { max-width: 15ch; }
.form-panel > p { margin: var(--space-md) 0 0; color: var(--color-bone-muted); font-size: var(--text-sm); }
.form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-lg); margin-top: var(--space-2xl); }
.form-field { display: grid; gap: var(--space-xs); }
.form-field--full { grid-column: 1 / -1; }
.form-field label { color: var(--color-bone); font-size: var(--text-xs); font-weight: 800; letter-spacing: 0.08em; text-transform: uppercase; }
.form-field input,
.form-field select,
.form-field textarea {
  width: 100%;
  min-height: 3.125rem;
  padding: var(--space-sm) var(--space-md);
  border: var(--rule-hair) solid var(--color-rule);
  border-radius: var(--radius-sm);
  background: var(--color-ink);
  color: var(--color-bone);
  transition: border-color var(--dur-base) var(--ease-out), background-color var(--dur-base) var(--ease-out);
}
.form-field textarea { min-height: 8rem; resize: vertical; }
.form-field input::placeholder,
.form-field textarea::placeholder { color: var(--color-bone-deep); }
.form-field input:hover,
.form-field select:hover,
.form-field textarea:hover { border-color: var(--color-bone-deep); }
.form-field input:focus,
.form-field select:focus,
.form-field textarea:focus { border-color: var(--color-red); }
.form-status { margin: var(--space-md) 0 0; padding: var(--space-md); border-left: var(--rule-thick) solid var(--color-red); background: var(--color-wash); color: var(--color-bone-muted); font-size: var(--text-sm); }
.form-note { margin: var(--space-md) 0 0; color: var(--color-bone-muted); font-size: var(--text-xs); }

.site-footer { position: relative; padding: var(--space-4xl) var(--page-gutter) var(--space-xl); background: linear-gradient(180deg, oklch(16% 0.014 78 / 0.86), oklch(16% 0.014 78 / 0.95)), url("assets/wade.jpg") center 30% / cover no-repeat, var(--color-ink-soft); }
.footer__top { display: grid; grid-template-columns: minmax(0, 1.6fr) minmax(0, 0.65fr) minmax(0, 0.75fr); gap: var(--space-2xl); width: min(100%, var(--page-max)); margin-inline: auto; }
.footer__statement .brand { width: fit-content; margin-bottom: var(--space-xl); }
.footer__statement > p { max-width: 22rem; margin: 0; font-family: var(--font-display); font-size: var(--text-2xl); font-style: normal; font-weight: 700; line-height: 0.92; letter-spacing: -0.02em; text-transform: uppercase; }
.footer__nav,
.footer__contact { display: grid; align-content: start; gap: var(--space-sm); }
.footer__nav > span,
.footer__contact > span { margin-bottom: var(--space-xs); color: var(--color-red); font-size: var(--text-xs); font-weight: 800; letter-spacing: 0.14em; text-transform: uppercase; }
.footer__contact p { margin: 0 0 var(--space-md); font-size: var(--text-sm); }
.footer__bottom { display: flex; flex-wrap: wrap; gap: var(--space-md); align-items: center; justify-content: space-between; width: min(100%, var(--page-max)); margin: var(--space-3xl) auto 0; padding-top: var(--space-lg); border-top: var(--rule-hair) solid var(--color-rule); }
.footer__bottom p { margin: 0; font-size: var(--text-2xs); }
.footer__social { margin: 0; color: var(--color-bone-muted); font-size: var(--text-2xs); font-weight: 700; letter-spacing: 0.04em; transition: color var(--dur-base) var(--ease-out); }
.footer__social:hover, .footer__social:focus-visible { color: var(--color-red-bright); }

@media (max-width: 72rem) {
  .site-nav__links { gap: var(--space-md); }
  .site-nav__links a { font-size: var(--text-2xs); }
  .site-nav__cta { padding-inline: var(--space-sm); font-size: var(--text-2xs); }
  .program-grid,
  .profile-grid,
  .blog-grid,
  .review-grid,
  .value-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 56rem) {
  .menu-toggle { display: block; }
  .site-nav { position: absolute; top: calc(100% + var(--rule-hair)); right: 0; left: 0; display: none; gap: var(--space-lg); padding: var(--space-lg) var(--page-gutter) var(--space-xl); border-bottom: var(--rule-hair) solid var(--color-rule); background: var(--color-glass-strong); backdrop-filter: blur(1rem); }
  .site-nav.is-open { display: grid; }
  .site-nav__links { display: grid; gap: 0; border-top: var(--rule-hair) solid var(--color-rule); }
  .site-nav__links a { min-height: 3rem; display: flex; align-items: center; border-bottom: var(--rule-hair) solid var(--color-rule); font-size: var(--text-xs); }
  .site-nav__cta { width: 100%; }
  .hero { min-height: clamp(40rem, 78dvh, 48rem); }
  .hero h1 { font-size: clamp(4rem, 16vw, 7.5rem); }
  .hero__utility { align-items: start; }
  .section-head,
  .home-intro,
  .trust-panel,
  .review-placeholder,
  .contact-layout { grid-template-columns: minmax(0, 1fr); }
  .section-head { gap: var(--space-lg); }
  .trust-panel__aside { min-height: auto; border-right: 0; border-bottom: var(--rule-hair) solid var(--color-rule); }
  .trust-panel__body { min-height: auto; }
  .schedule-preview { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .footer__top { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
  .footer__statement { grid-column: 1 / -1; }
}

@media (max-width: 38rem) {
  .site-header__inner { min-height: 4.75rem; }
  .brand { padding: var(--space-2xs); }
  .brand-logo { width: 10rem; }
  .brand-disciplines { font-size: 0.5rem; letter-spacing: 0.06em; }
  .hero { min-height: clamp(36rem, 82dvh, 43rem); padding-top: calc(4.75rem + var(--space-xl)); padding-bottom: var(--space-3xl); }
  .hero h1 { max-width: 8ch; font-size: clamp(3.75rem, 17vw, 5.5rem); }
  .hero__utility { gap: var(--space-md); margin-top: var(--space-xl); }
  .hero__utility p { font-size: var(--text-xs); }
  .section { padding-block: var(--space-4xl); }
  .section-title { font-size: clamp(2.8rem, 15vw, 4.5rem); }
  .program-link { grid-template-columns: minmax(0, 1fr) auto; min-height: 5rem; gap: var(--space-sm); }
  .program-link__index { display: none; }
  .program-link__detail { font-size: var(--text-2xs); }
  .program-grid,
  .profile-grid,
  .blog-grid,
  .review-grid,
  .value-grid,
  .schedule-preview,
  .form-grid { grid-template-columns: minmax(0, 1fr); }
  .form-field--full { grid-column: auto; }
  .schedule-preview__cell { min-height: 10rem; }
  .schedule-row { grid-template-columns: minmax(0, 1fr); gap: var(--space-sm); }
  .review-placeholder { padding: var(--space-xl); }
  .review-summary { flex-direction: column; align-items: flex-start; gap: var(--space-sm); }
  .footer__top { grid-template-columns: minmax(0, 1fr); }
  .footer__statement { grid-column: auto; }
  .footer__bottom { align-items: flex-start; flex-direction: column; }
}

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