/* v1.2.1 responsive recovery: content-led breakpoints and device-native layouts. */

:where(.site-header__inner, .hero__grid, .page-hero__grid, .editorial-section, .longform__section, .footer-grid, .orcid-form__instrument, .recognition-list article, .timeline-entry, .timeline-content, .timeline-record, .founders-grid, .legal-document section) > * {
  min-width: 0;
}

:where(h1, h2, h3, p, a, span, strong, small, blockquote) {
  overflow-wrap: break-word;
}

main,
section,
article,
header,
footer,
nav,
form {
  max-width: 100%;
}

body.menu-open {
  overflow: hidden;
  touch-action: none;
}

.site-header.is-scrolled {
  background: rgba(251, 248, 241, .985);
}

/* Compact desktop and all tablets use the Index navigation. */
@media (max-width: 1180px) {
  html { scroll-padding-top: 82px; }

  .site-header__inner {
    min-height: 72px;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 1rem;
  }

  .brand__text strong {
    overflow: visible;
    text-overflow: clip;
  }

  .menu-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 52px;
  }

  .site-nav {
    position: fixed;
    inset: 72px 0 0;
    z-index: 120;
    display: none;
    width: 100%;
    max-height: calc(100dvh - 72px);
    overflow-y: auto;
    overscroll-behavior: contain;
    padding: 1rem max(24px, env(safe-area-inset-right)) max(2rem, env(safe-area-inset-bottom)) max(24px, env(safe-area-inset-left));
    flex-direction: column;
    align-items: stretch;
    gap: 0;
    border-bottom: 1px solid var(--rule);
    background: var(--paper-light);
    box-shadow: 0 22px 50px rgba(21, 25, 29, .12);
  }

  .site-nav.is-open { display: flex; }

  .site-nav a,
  .site-nav .nav-cta {
    display: grid;
    gap: .25rem;
    min-height: 64px;
    align-content: center;
    padding: .9rem 0;
    border: 0;
    border-bottom: 1px solid var(--rule);
    background: transparent;
  }

  .site-nav a span {
    padding: 0;
    border: 0;
    font-size: .78rem;
  }

  .site-nav a small {
    display: block;
    color: var(--ink-muted);
    font-family: var(--serif-text);
    font-size: .96rem;
    font-weight: 400;
    letter-spacing: 0;
    line-height: 1.35;
    text-transform: none;
  }

  .site-nav .nav-cta:hover { background: transparent; }
  .site-nav .nav-cta:hover span { color: var(--dark-gold); }

  .founders-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .founders-grid article { border-left: 1px solid var(--rule); }

  .footer-grid {
    grid-template-columns: minmax(0, 1.4fr) minmax(150px, .8fr) minmax(120px, .6fr);
    gap: 2.5rem;
  }
}

/* Tablet and small laptop composition. */
@media (max-width: 1023px) {
  :root {
    --shell: min(100% - 40px, 1280px);
    --section-xl: clamp(5.5rem, 9vw, 7rem);
    --section-lg: clamp(4.5rem, 8vw, 6rem);
    --section-md: clamp(3.25rem, 6vw, 4.5rem);
  }

  .hero {
    min-height: auto;
    padding-block: clamp(4.25rem, 8vw, 6rem);
  }

  .hero__grid { grid-template-columns: 1fr; gap: 0; }
  .hero h1 { max-width: 15ch; }
  .hero__lead { max-width: 42ch; }
  .scientific-trajectory { display: none; }
  .hero .orcid-form { max-width: 760px; }

  .page-hero__grid {
    grid-template-columns: 1fr;
    align-items: start;
    gap: 1.5rem;
  }

  .page-hero h1 { max-width: 18ch; }
  .page-hero p:last-child { max-width: 48ch; }

  .editorial-section { grid-template-columns: 1fr; gap: 2.25rem; }
  .margin-note { max-width: 42ch; }

  .longform__section,
  .longform__section--wide {
    grid-template-columns: 52px minmax(0, 1fr);
    gap: 1.5rem 2rem;
  }

  .longform__section > .margin-note {
    grid-column: 2;
    max-width: 46ch;
  }

  .wide-content { grid-column: 2; }

  .section-heading {
    align-items: flex-start;
    flex-wrap: wrap;
  }

  .recognition-list article,
  .recognition-page .recognition-list article {
    grid-template-columns: 62px minmax(0, 1fr);
  }

  .horizon-sequence {
    grid-template-columns: 1fr;
    gap: 0;
    padding-left: 2rem;
  }

  .horizon-sequence::before {
    left: 6px;
    right: auto;
    top: 6px;
    bottom: 6px;
    width: 1px;
    height: auto;
  }

  .horizon-sequence li {
    padding: 0 0 2.1rem 1.5rem;
  }

  .horizon-sequence li:last-child { padding-bottom: 0; }
  .horizon-sequence li::before { top: 4px; left: -2rem; }
  .horizon-sequence strong { max-width: none; font-size: 1.25rem; }

  .memorandum-extract { max-width: 100%; }

  .footer-grid {
    grid-template-columns: 1fr 1fr;
    gap: 2.5rem 3rem;
  }

  .footer-identity { grid-column: 1 / -1; }
}

/* Wide phones and narrow tablets. */
@media (max-width: 767px) {
  :root {
    --shell: min(100% - 30px, 1280px);
    --display-xl: clamp(2.8rem, 11.5vw, 4.05rem);
    --display-lg: clamp(2.25rem, 9vw, 3.3rem);
    --display-md: clamp(1.7rem, 6.7vw, 2.45rem);
    --body-lg: clamp(1.06rem, 4.4vw, 1.2rem);
  }

  html { scroll-padding-top: 76px; }
  body { font-size: 16.5px; line-height: 1.58; }

  .site-header__inner { min-height: 68px; gap: .65rem; }
  .brand { gap: .62rem; }
  .brand__seal { width: 42px; height: 42px; flex-basis: 42px; }
  .brand__text strong { font-size: .76rem; letter-spacing: .014em; }
  .brand__text small { display: none; }
  .menu-button { min-width: 46px; padding-inline: 0; font-size: .68rem; }

  .site-nav {
    inset-top: 68px;
    inset: 68px 0 0;
    max-height: calc(100dvh - 68px);
    padding-inline: max(16px, env(safe-area-inset-left)) max(16px, env(safe-area-inset-right));
  }

  .hero {
    min-height: auto;
    padding-block: 3.25rem max(4rem, env(safe-area-inset-bottom));
  }

  .hero h1 {
    max-width: 12ch;
    font-size: var(--display-xl);
    line-height: .99;
    text-wrap: pretty;
  }

  .hero__lead {
    max-width: 36ch;
    margin-top: 1.35rem;
    font-size: var(--body-lg);
  }

  .hero__motto { margin-bottom: 1.45rem; }
  .section { padding-block: var(--section-md); }

  .page-hero { padding-block: 3.5rem; }
  .page-hero h1 { max-width: 100%; }

  .longform { padding-top: .5rem; }
  .longform__section,
  .longform__section--wide {
    grid-template-columns: 1fr;
    gap: .75rem;
    padding-block: 3.2rem;
  }
  .longform__index { font-size: 1.85rem; }
  .longform__section > .margin-note,
  .wide-content { grid-column: 1; }

  .founders-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .founders-grid article { min-height: 0; padding: 1.5rem 1.2rem; }

  .section-heading { flex-direction: column; gap: 1.25rem; margin-bottom: 2.4rem; }
  .recognition-list article,
  .recognition-page .recognition-list article {
    grid-template-columns: 44px minmax(0, 1fr);
    gap: 1rem;
    align-items: start;
    padding-block: 1.5rem;
  }

  .recognition-list h3 { font-size: 1.68rem; }
  .recognition-question { font-size: .98rem !important; }

  .memorandum-extract { padding: 2.25rem 1.5rem; }
  .memorandum-extract blockquote { max-width: 17ch; font-size: clamp(2.15rem, 9vw, 3rem); }
  .memorandum-edition { padding-top: 2rem; }
  .memorandum-article { padding-block: 2.7rem; }

  .history-preview__inner h2 { max-width: 17ch; }

  .nomination-shell { padding-block: 3.75rem 4.75rem; }
  .nomination-shell h1 { max-width: 12ch; }
  .orcid-form__instrument { grid-template-columns: 1fr; }
  .orcid-form input,
  .orcid-form .button { width: 100%; min-height: 54px; }

  .legal-header { padding-block: 3.5rem; }
  .legal-document section { grid-template-columns: 1fr; gap: .45rem; }

  .site-footer { padding-top: 3.25rem; }
  .footer-grid { grid-template-columns: 1fr; gap: 2rem; padding-bottom: 2.5rem; }
  .footer-identity { grid-column: 1; }
  .footer-nav { gap: .75rem; }
  .footer-nav a { display: flex; min-height: 42px; align-items: center; border-bottom: 1px solid rgba(255, 255, 255, .09); }
  .footer-base { flex-direction: column; gap: .55rem; }

  .receipt-page,
  .error-page__inner { min-height: auto; padding-block: 4.5rem 5.5rem; }
}

/* Compact phones. */
@media (max-width: 479px) {
  :root { --shell: min(100% - 24px, 1280px); }

  .brand__seal { width: 38px; height: 38px; flex-basis: 38px; }
  .brand__text strong { font-size: clamp(.66rem, 3.1vw, .73rem); }
  .menu-button { min-width: 42px; font-size: .64rem; letter-spacing: .08em; }

  .hero { padding-top: 2.85rem; }
  .hero h1 { max-width: 11ch; font-size: clamp(2.72rem, 12.2vw, 3.45rem); }
  .hero__lead { font-size: 1.04rem; }

  .eyebrow { font-size: .64rem; letter-spacing: .14em; }
  .button { width: 100%; }
  .text-link { width: auto; }

  .founders-grid { grid-template-columns: 1fr; }
  .recognition-list article,
  .recognition-page .recognition-list article { grid-template-columns: 36px minmax(0, 1fr); }

  .memorandum-extract { padding: 2rem 1.25rem; }
  .memorandum-extract blockquote { font-size: clamp(2rem, 9.4vw, 2.65rem); }
  .memorandum-closing { letter-spacing: .18em; }

  .timeline-content h2 { max-width: 100%; }
  .nomination-meta { grid-template-columns: 1fr; }
}

/* Landscape phones and short browser windows. */
@media (max-height: 650px) and (orientation: landscape) {
  .hero { min-height: auto; padding-block: 2.5rem 3rem; }
  .hero h1 { max-width: 17ch; font-size: clamp(2.7rem, 7vw, 4.1rem); }
  .hero__lead { margin-top: 1rem; }
  .site-nav a,
  .site-nav .nav-cta { min-height: 54px; padding-block: .65rem; }
}

@media (hover: none) and (pointer: coarse) {
  .menu-button,
  .button,
  .orcid-form input { min-height: 48px; }
}

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