/* Joint-celebration additions. This deliberately preserves the site's original
   ivory, blush, champagne, serif and script design language. */

body { font-weight: 400; }
.nav__links a { font-weight: 500; }
.reveal,
.reveal--delay { opacity: 1 !important; transform: none !important; }
.nav__brand,
.nav.is-scrolled .nav__brand {
  display: inline-flex;
  align-items: baseline;
  gap: .45rem;
  color: #fff;
  font-family: var(--serif);
  font-size: 1.16rem;
  font-weight: 600;
  letter-spacing: .08em;
  text-transform: none;
}
.nav.is-scrolled .nav__brand { color: var(--ink); }
.brand__pam b,
.brand__buife b { color: var(--gold-soft); font-size: 1.2em; }
.nav.is-scrolled .brand__pam b,
.nav.is-scrolled .brand__buife b { color: var(--gold); }
.brand__plus { color: var(--blush); font-family: var(--script); font-size: 1.25rem; }

.skip-link {
  position: fixed;
  z-index: 200;
  top: .75rem;
  left: .75rem;
  padding: .7rem 1rem;
  color: var(--ink);
  background: var(--paper);
  border: 1px solid var(--gold);
  transform: translateY(-160%);
}
.skip-link:focus { transform: none; }

/* The paired milestone treatment borrows only the number hierarchy from the
   owner's reference image; the flowers, warmth and typography remain ours. */
.joint-hero__frame {
  position: relative;
  z-index: 2;
  width: min(64rem, calc(100% - 2rem));
  margin: auto;
  padding: clamp(7.5rem, 14vh, 10rem) 1rem clamp(5rem, 10vh, 7rem);
  text-align: center;
}
.joint-hero__intro {
  width: fit-content;
  max-width: 100%;
  margin: 0 auto clamp(1.3rem, 3vw, 2rem);
  padding: .62rem 1rem .58rem;
  color: #3b3028;
  background: rgba(255, 249, 238, .90);
  border: 1px solid rgba(255, 255, 255, .68);
  border-radius: 999px;
  box-shadow: 0 8px 28px rgba(24, 20, 26, .16);
  backdrop-filter: blur(8px);
  font-size: .76rem;
  font-weight: 700;
  letter-spacing: .32em;
  line-height: 1.35;
  text-shadow: none;
  text-transform: uppercase;
}
.joint-hero__numbers {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: clamp(1rem, 4vw, 3rem);
  margin: 0 auto;
}
.joint-milestone { min-width: min(34vw, 15rem); }
.joint-milestone__name {
  display: block;
  margin-bottom: -.35rem;
  color: #fff;
  font-family: var(--script);
  font-size: clamp(1.6rem, 3.4vw, 2.6rem);
  line-height: 1;
}
.joint-milestone__age {
  display: block;
  color: var(--gold-soft);
  font-family: var(--serif);
  font-size: clamp(5.2rem, 13vw, 9rem);
  font-weight: 500;
  letter-spacing: -.04em;
  line-height: .88;
  text-shadow: 0 8px 36px rgba(0,0,0,.3);
  white-space: nowrap;
}
.joint-milestone--buife .joint-milestone__age { color: #f2d4cf; }
.joint-hero__amp {
  color: #fff;
  font-family: var(--script);
  font-size: clamp(2.5rem, 6vw, 4.7rem);
  line-height: 1;
}
.joint-hero__headline {
  max-width: 55rem;
  margin: 1.5rem auto 0;
  color: #fff;
  font-family: var(--serif);
  font-size: clamp(2.25rem, 5.6vw, 4.6rem);
  font-weight: 500;
  letter-spacing: .005em;
  line-height: 1;
  text-shadow: 0 8px 38px rgba(0,0,0,.35);
  text-wrap: balance;
}
.joint-hero__headline em { color: var(--gold-soft); font-weight: 400; }
.joint-hero__meta {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: .4rem 1.1rem;
  margin-top: 1.2rem;
  color: rgba(255,255,255,.9);
  font-size: .8rem;
  font-weight: 500;
  letter-spacing: .12em;
  text-transform: uppercase;
}
.joint-hero__meta span + span::before { content: "\00B7"; margin-right: 1.1rem; color: var(--gold-soft); }
.joint-hero__frame .hero__actions { margin-top: 1.8rem; }

.status-strip {
  display: grid;
  grid-template-columns: auto 1fr auto;
  align-items: center;
  gap: 1rem 2rem;
  padding: 1rem clamp(1.25rem, 6vw, 5rem);
  color: var(--ink);
  background: var(--blush-soft);
  border-bottom: 1px solid rgba(176,133,66,.28);
}
.status-strip__label,
.status-strip a { color: #7f5a24; font-weight: 600; }
.status-strip__label { letter-spacing: .14em; text-transform: uppercase; }
.status-strip p { margin: 0; font-size: .9rem; }

.section-shell { padding: clamp(5rem, 10vw, 9rem) clamp(1.25rem, 6vw, 6rem); }
.section-shell__inner { width: min(70rem, 100%); margin: 0 auto; }
.section--dark { color: var(--cream-text); background: var(--dusk); }
.section--forest { color: var(--cream-text); background: var(--dusk-2); }
.section--warm { background: var(--paper-warm); }
.section--dark .lede,
.section--forest .lede { color: rgba(247,241,230,.78); }
.story-split,
.route-split,
.feature-split {
  display: grid;
  grid-template-columns: minmax(0, 1.08fr) minmax(18rem, .92fr);
  gap: clamp(2.5rem, 7vw, 7rem);
  align-items: center;
}
.story-split__copy p { max-width: 66ch; margin-top: 1.1rem; }
.story-split--top { align-items: start; }
.countdown-split { align-items: center; }
.story-split.countdown-split > figure {
  height: auto;
  overflow: visible;
  border-radius: 0;
  box-shadow: none;
}
.story-split > figure {
  height: clamp(24rem, 46vw, 36rem);
  overflow: hidden;
  border-radius: 2px 28px 2px 28px;
  box-shadow: var(--shadow-soft);
}
.story-split > figure img { width: 100%; height: 100%; object-fit: cover; }
.portrait-placeholder {
  display: grid;
  width: 100%;
  height: 100%;
  min-height: 24rem;
  place-content: center;
  gap: .8rem;
  padding: 2rem;
  color: var(--cream);
  background:
    linear-gradient(145deg, rgba(28, 24, 31, .88), rgba(20, 76, 72, .86)),
    url('../assets/img/stage.webp') center / cover;
  text-align: center;
}
.portrait-placeholder span {
  color: var(--gold-soft);
  font-family: var(--serif);
  font-size: clamp(4.5rem, 10vw, 8rem);
  font-weight: 500;
  line-height: .9;
}
.portrait-placeholder small {
  font-size: .78rem;
  font-weight: 700;
  letter-spacing: .14em;
  text-transform: uppercase;
}
.story-split__quote {
  padding: clamp(2rem, 5vw, 3.5rem);
  color: var(--ink);
  background: linear-gradient(145deg, var(--blush-soft), #fff9f3);
  border: 1px solid rgba(176,133,66,.28);
  border-radius: 2px 26px 2px 26px;
  box-shadow: var(--shadow-soft);
  text-align: center;
}
.story-split__quote strong { display: block; color: var(--gold); font-family: var(--serif); font-size: clamp(2.4rem,5vw,4.2rem); font-weight: 500; line-height: .98; }
.story-split__quote span { display: block; margin-top: 1rem; color: var(--ink-soft); font-family: var(--serif); font-size: 1.15rem; font-style: italic; }

.milestone-ledger { margin-top: 3rem; border-top: 1px solid rgba(176,133,66,.28); }
.milestone-ledger__row,
.info-row {
  display: grid;
  grid-template-columns: minmax(8rem, .36fr) minmax(0, 1.64fr);
  gap: 1.5rem;
  padding: 1.55rem 0;
  border-bottom: 1px solid rgba(176,133,66,.24);
}
.milestone-ledger__row b,
.info-row h3 { color: var(--gold); font-family: var(--serif); font-size: 1.45rem; font-weight: 600; }
.milestone-ledger__row p,
.info-row p { margin: 0; max-width: 66ch; }

.recommendation-row { padding-block: clamp(1.65rem, 3vw, 2.25rem); }
.recommendation-row h4 {
  margin: .35rem 0 .35rem;
  color: var(--ink);
  font-family: var(--serif);
  font-size: clamp(1.45rem, 2.4vw, 1.9rem);
  font-weight: 600;
  line-height: 1.15;
  text-wrap: balance;
}
.planning-links {
  display: flex;
  flex-wrap: wrap;
  gap: .25rem 1.35rem;
  margin-top: .75rem !important;
}
.planning-links .link-arrow {
  display: inline-flex;
  align-items: center;
  min-height: 44px;
  font-size: .875rem;
}
.source-note {
  max-width: 72ch;
  margin: 1.35rem 0 0;
  color: var(--ink-soft);
  font-size: .875rem;
}
.source-note a { color: var(--gold-text); text-decoration: underline; text-underline-offset: 3px; }
.planning-pending {
  margin-top: clamp(3.5rem, 7vw, 5.5rem);
  padding-top: 1.5rem;
  border-top: 1px solid rgba(176,133,66,.35);
}
.planning-pending__title {
  margin: 0;
  color: var(--ink);
  font-family: var(--serif);
  font-size: clamp(1.35rem, 2.5vw, 1.75rem);
  font-weight: 600;
}
.planning-pending .info-stack { margin-top: .8rem; }
.parking-note {
  margin-top: clamp(2.5rem, 5vw, 4rem);
  padding: clamp(1.35rem, 3vw, 2rem);
  color: var(--cream-text);
  background: var(--dusk);
  border-radius: 2px 18px 2px 18px;
}
.parking-note strong { display: block; font-family: var(--serif); font-size: 1.5rem; font-weight: 600; }
.parking-note p { max-width: 72ch; margin: .45rem 0 .75rem; color: rgba(247,241,230,.82); }
.parking-note .link-arrow { display: inline-flex; align-items: center; min-height: 44px; color: var(--gold-soft); }

/* Day-of Memory Wall preview - explanatory until the celebration launch. */
.memory-preview { width: min(70rem, calc(100% - 2.5rem)); margin: 0 auto; }
.memory-preview__intro { max-width: 54rem; }
.memory-status {
  display: inline-flex;
  align-items: center;
  gap: .65rem;
  margin-bottom: 1.25rem;
  padding: .55rem .85rem;
  color: #704a18;
  background: #f4e3c4;
  border-radius: 999px;
  font-size: .875rem;
  font-weight: 600;
  letter-spacing: .05em;
}
.memory-status i { width: .55rem; height: .55rem; border-radius: 50%; background: var(--gold); }
.memory-preview__now {
  max-width: 62ch;
  margin-top: 1.3rem;
  padding: 1rem 0;
  color: var(--ink-soft);
  border-top: 1px solid rgba(176,133,66,.32);
  border-bottom: 1px solid rgba(176,133,66,.32);
}
.memory-preview__now strong { color: var(--ink); }
.memory-flow {
  margin: clamp(3rem, 7vw, 5rem) 0;
  padding: 0;
  list-style: none;
  border-top: 1px solid rgba(176,133,66,.3);
}
.memory-flow li {
  display: grid;
  grid-template-columns: 3.5rem minmax(0, 1fr);
  gap: clamp(1rem, 3vw, 2.25rem);
  padding: clamp(1.5rem, 3vw, 2.15rem) 0;
  border-bottom: 1px solid rgba(176,133,66,.3);
}
.memory-flow__number {
  color: var(--gold);
  font-family: var(--serif);
  font-size: 2.4rem;
  font-weight: 600;
  line-height: 1;
}
.memory-flow h3 { color: var(--ink); font-family: var(--serif); font-size: clamp(1.45rem, 2.4vw, 1.9rem); font-weight: 600; }
.memory-flow p { max-width: 68ch; margin: .35rem 0 0; color: var(--ink-soft); }
.memory-feature {
  display: grid;
  grid-template-columns: minmax(18rem, .95fr) minmax(0, 1.05fr);
  align-items: center;
  gap: clamp(2rem, 6vw, 5rem);
  color: var(--cream-text);
  background: var(--dusk);
}
.memory-feature figure { height: 100%; min-height: 30rem; overflow: hidden; }
.memory-feature img { width: 100%; height: 100%; object-fit: cover; }
.memory-feature > div { padding: clamp(2rem, 5vw, 4rem) clamp(1.5rem, 5vw, 4rem) clamp(2rem, 5vw, 4rem) 0; }
.memory-feature__label { color: var(--gold-soft); font-size: .875rem; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; }
.memory-feature h3 { margin-top: .7rem; font-family: var(--serif); font-size: clamp(2.2rem, 4vw, 3.4rem); font-weight: 600; line-height: 1.05; }
.memory-feature ul { margin: 1.5rem 0 0; padding: 0; list-style: none; }
.memory-feature li { position: relative; padding: .9rem 0 .9rem 1.5rem; color: rgba(247,241,230,.82); border-top: 1px solid rgba(247,241,230,.18); }
.memory-feature li::before { content: "✦"; position: absolute; left: 0; color: var(--gold-soft); }
.memory-feature li:last-child { border-bottom: 1px solid rgba(247,241,230,.18); }
.memory-privacy {
  display: grid;
  grid-template-columns: minmax(10rem, .35fr) minmax(0, 1.65fr);
  gap: 1.5rem;
  margin-top: 1.5rem;
  padding: 1.35rem 0;
  border-bottom: 1px solid rgba(176,133,66,.3);
}
.memory-privacy strong { color: var(--gold-text); font-family: var(--serif); font-size: 1.3rem; }
.memory-privacy p { max-width: 70ch; margin: 0; color: var(--ink-soft); }

@media (max-width: 760px) {
  .memory-preview { width: min(100% - 2rem, 70rem); }
  .memory-flow li { grid-template-columns: 2.5rem minmax(0, 1fr); }
  .memory-flow__number { font-size: 2rem; }
  .memory-feature { grid-template-columns: 1fr; }
  .memory-feature figure { min-height: 19rem; height: 19rem; }
  .memory-feature > div { padding: 0 1.5rem 2rem; }
  .memory-privacy { grid-template-columns: 1fr; gap: .45rem; }
}

.weekend-lineup { margin-top: 3rem; }
.weekend-lineup__day {
  display: grid;
  grid-template-columns: minmax(7rem, .35fr) minmax(0, 1.65fr) auto;
  gap: 1.5rem;
  align-items: start;
  padding: 1.6rem 0;
  border-top: 1px solid rgba(247,241,230,.2);
}
.weekend-lineup__day:last-child { border-bottom: 1px solid rgba(247,241,230,.2); }
.weekend-lineup__day h3 { color: var(--gold-soft); font-family: var(--serif); font-size: 1.65rem; }
.weekend-lineup__day p { color: rgba(247,241,230,.76); }
.weekend-lineup__status { color: var(--blush); font-size: .7rem; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; white-space: nowrap; }

.gateway { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); }
.gateway__panel {
  position: relative;
  display: flex;
  align-items: flex-end;
  min-height: 34rem;
  padding: clamp(2rem,6vw,5rem);
  overflow: hidden;
  color: #fff;
}
.gateway__panel img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; filter: saturate(.82) brightness(.58); transition: transform .6s var(--ease-out); }
.gateway__panel::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg,transparent 30%,rgba(33,29,36,.86)); }
.gateway__panel:hover img { transform: scale(1.035); }
.gateway__copy { position: relative; z-index: 1; max-width: 30rem; }
.gateway__copy h2 { font-family: var(--serif); font-size: clamp(2.7rem,5vw,4.8rem); font-weight: 500; line-height: 1; }
.gateway__copy p { margin: 1rem 0 1.5rem; }

.pending,
.confirmed {
  display: inline-flex;
  width: fit-content;
  margin-bottom: .65rem;
  padding: .28rem .6rem;
  border-radius: 999px;
  font-size: .66rem;
  font-weight: 600;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.pending { color: #704a18; background: #f4e3c4; }
.confirmed { color: #355344; background: #dce8de; }

@media (max-width: 1040px) {
  .nav__links { display: none; }
  .menu-btn { display: flex; }
}
@media (max-width: 760px) {
  .nav__cta { display: none; }
  .joint-hero__frame { padding-top: 7.5rem; }
  .joint-hero__numbers { gap: .55rem; }
  .joint-milestone { min-width: 0; }
  .joint-milestone__name { font-size: 1.45rem; }
  .joint-milestone__age { font-size: clamp(3.6rem,19vw,5.6rem); }
  .joint-hero__amp { font-size: 2.3rem; }
  .joint-hero__headline { font-size: clamp(2rem,10vw,3.2rem); }
  .joint-hero__meta { display: grid; gap: .2rem; }
  .joint-hero__meta span + span::before { display: none; }
  .status-strip { grid-template-columns: 1fr; gap: .35rem; }
  .story-split,
  .route-split,
  .feature-split,
  .milestone-ledger__row,
  .info-row,
  .weekend-lineup__day { grid-template-columns: 1fr; gap: .5rem; }
  .weekend-lineup__status { white-space: normal; }
  .gateway { grid-template-columns: 1fr; }
  .gateway__panel { min-height: 28rem; }
}

/* Formal type and motion refinement - keeps the established floral layout. */
:root {
  --serif: "Cormorant Garamond", Georgia, serif;
  --sans: "Jost", "Segoe UI", sans-serif;
  --script: "Great Vibes", "Segoe Script", cursive;
  --type-caption: .8125rem;
  --type-label: .875rem;
  --type-body: 1rem;
  --type-lead: 1.25rem;
  --gold-text: #80591f;
  --motion-fast: 160ms;
  --motion-base: 300ms;
  --motion-slow: 560ms;
  --ease-formal: cubic-bezier(.22, 1, .36, 1);
}

html { font-kerning: normal; }
body {
  font-family: var(--sans);
  font-size: var(--type-body);
  font-weight: 400;
  font-optical-sizing: auto;
  line-height: 1.65;
}
p, li { text-wrap: pretty; }
h1, h2, h3, .h2, .page-hero__title, .joint-hero__headline {
  font-family: var(--serif);
  font-optical-sizing: auto;
  text-wrap: balance;
}
.h2 {
  font-size: clamp(2.4rem, 4vw, 3.5rem);
  font-weight: 600;
  letter-spacing: -.01em;
  line-height: 1.12;
}
.h2 em,
.page-hero__title em,
.joint-hero__headline em { font-weight: 500; }
.page-hero__title {
  font-size: clamp(3rem, 6vw, 4.75rem);
  font-weight: 600;
  letter-spacing: -.015em;
  line-height: 1.05;
}
.page-hero__sub { max-width: 58ch; font-size: 1rem; letter-spacing: 0; line-height: 1.65; }
.hero__script {
  font-family: var(--serif);
  font-size: clamp(1.25rem, 2.5vw, 1.75rem);
  font-style: italic;
  font-weight: 500;
  letter-spacing: .01em;
}
.eyebrow,
.hero__kicker,
.details__kicker,
.page-hero__label,
.status-strip__label {
  color: var(--gold-text);
  font-family: var(--sans);
  font-size: var(--type-label);
  font-weight: 600;
  letter-spacing: .09em;
  line-height: 1.35;
}
.section--dark .eyebrow,
.section--forest .eyebrow { color: var(--gold-soft); }
.btn,
.btn--small,
.nav__links a,
.weekend-lineup__status,
.pending,
.confirmed {
  font-size: var(--type-label);
  letter-spacing: .08em;
}
.footer__tiny { color: rgba(247,241,230,.72); font-size: var(--type-caption); }
.lede { max-width: 65ch; font-size: var(--type-lead); }

.nav { padding-block: .9rem; transition: background-color var(--motion-base), box-shadow var(--motion-base), backdrop-filter var(--motion-base); }
.nav.is-scrolled { padding-block: .9rem; }
.nav__links a { font-weight: 600; }
.nav__links a::after {
  width: 100%;
  transform: scaleX(0);
  transform-origin: right center;
  transition: transform var(--motion-base) var(--ease-formal);
}
.nav__links a:hover::after,
.nav__links a:focus-visible::after,
.nav__links a[aria-current="page"]::after { transform: scaleX(1); transform-origin: left center; }
.menu-btn { width: 44px; height: 44px; }
.menu-btn span { transition: transform var(--motion-base) var(--ease-formal), opacity var(--motion-fast), background-color var(--motion-base); }
.mobile-menu { transition: opacity var(--motion-base) var(--ease-formal); }
.mobile-menu a { transform: translateY(8px); opacity: 0; transition: opacity var(--motion-base), transform var(--motion-base) var(--ease-formal), color var(--motion-fast); }
.mobile-menu.is-open a { transform: none; opacity: 1; }
.mobile-menu.is-open a:nth-child(2) { transition-delay: 35ms; }
.mobile-menu.is-open a:nth-child(3) { transition-delay: 70ms; }
.mobile-menu.is-open a:nth-child(4) { transition-delay: 105ms; }
.mobile-menu.is-open a:nth-child(5) { transition-delay: 140ms; }
.mobile-menu.is-open a:nth-child(6) { transition-delay: 175ms; }
.mobile-menu.is-open a:nth-child(7) { transition-delay: 210ms; }

.joint-hero__intro { font-size: var(--type-label); font-weight: 600; letter-spacing: .1em; }
.joint-milestone__name,
.joint-hero__amp,
.brand__plus {
  font-family: var(--serif);
  font-style: italic;
  font-weight: 600;
}
.joint-milestone__name { font-size: clamp(1.55rem, 3vw, 2.25rem); letter-spacing: .02em; }
.joint-milestone__age {
  font-size: clamp(4.25rem, 10vw, 6rem);
  font-weight: 600;
  letter-spacing: -.025em;
  line-height: .95;
}
.joint-hero__amp { font-size: clamp(2.25rem, 5vw, 3.75rem); }
.joint-hero__headline { font-size: clamp(2.75rem, 5.5vw, 4.6rem); font-weight: 600; letter-spacing: -.015em; line-height: 1.02; }
.joint-hero__meta { font-size: var(--type-label); letter-spacing: .08em; }

.btn {
  transition: transform var(--motion-fast) var(--ease-formal), box-shadow var(--motion-base), background-color var(--motion-base), border-color var(--motion-base), color var(--motion-base);
}
.btn:hover { transform: translateY(-2px); }
.btn:active { transform: translateY(0) scale(.98); }
.gateway__panel img { transition: transform var(--motion-slow) var(--ease-formal), filter var(--motion-base); }
.gateway__panel:hover img { filter: saturate(.9) brightness(.62); transform: scale(1.035); }
input, select, textarea { transition: border-color var(--motion-fast), box-shadow var(--motion-fast), background-color var(--motion-fast); }
input[aria-invalid="true"], select[aria-invalid="true"], textarea[aria-invalid="true"] { border-color: #9d3f36; box-shadow: 0 0 0 3px rgba(157,63,54,.13); }
.field-error { margin: .45rem 0 0; color: #8a3029; font-size: var(--type-caption); font-weight: 500; }
.form-section-label { margin: 1.8rem 0 1rem; }
.facts-deck__progress i { width: 100%; transform: scaleX(.02); transform-origin: left center; transition: transform var(--motion-base) var(--ease-formal); }

/* Owner annotations are an explicit review mode, never guest-facing by default. */
[data-owner-needed].owner-copy::after,
[data-owner-needed].owner-box::after { display: none; }
.owner-review [data-owner-needed].owner-copy::after { display: inline-block; }
.owner-review [data-owner-needed].owner-box::after { display: grid; }

/* One signature load choreography instead of repeated section animations. */
@keyframes formalReveal {
  from { opacity: 0; transform: translateY(16px); }
  to { opacity: 1; transform: none; }
}
@keyframes milestoneSettle {
  from { opacity: 0; transform: translateY(18px) scale(.975); }
  to { opacity: 1; transform: none; }
}
.hero .joint-hero__intro { animation: formalReveal var(--motion-slow) var(--ease-formal) both 120ms; }
.hero .joint-hero__numbers { animation: milestoneSettle 700ms var(--ease-formal) both 230ms; }
.hero .joint-hero__headline { animation: formalReveal var(--motion-slow) var(--ease-formal) both 390ms; }
.hero .joint-hero__meta { animation: formalReveal var(--motion-slow) var(--ease-formal) both 500ms; }
.hero .hero__actions { animation: formalReveal var(--motion-slow) var(--ease-formal) both 590ms; }

@media (max-width: 760px) {
  .joint-milestone__name { font-size: 1.35rem; }
  .joint-milestone__age { font-size: clamp(3.35rem, 18vw, 5rem); }
  .joint-hero__headline { font-size: clamp(2.25rem, 9.5vw, 3.15rem); }
  .section-shell { padding-block: clamp(4rem, 16vw, 6rem); }
  .story-split > figure { height: 22rem; }
}

@media (prefers-reduced-motion: reduce) {
  .hero .joint-hero__intro,
  .hero .joint-hero__numbers,
  .hero .joint-hero__headline,
  .hero .joint-hero__meta,
  .hero .hero__actions { animation: none; }
  .mobile-menu a { opacity: 1; transform: none; transition: none; }
  .btn, .gateway__panel img, input, select, textarea { transition: none; }
}
