/* Landing page only. Shared styles and inner pages retain their existing design. */
:root { --landing-gutter: clamp(1.25rem, 4vw, 4rem); }
main > section:not(#home) > .relative,
body > footer > .max-w-7xl { padding-inline: var(--landing-gutter); }
main > section[id], #about, #vision, #news, #events, #collections { scroll-margin-top: 8rem; }

/* A consistent reading rhythm, with photography carrying the visual emphasis. */
.team-heading, .process-heading {
    max-width: 20ch;
    font-size: clamp(2.25rem, 4.4vw, 4rem);
    font-weight: 700;
    letter-spacing: -.045em;
    text-wrap: balance;
}
.team-heading.ink-underline::after,
.process-heading.ink-underline::after { width: 3.5rem; height: 3px; }
.team-section { background-color: #e9edf1; background-size: 100% auto; }
.team-grid { gap: clamp(1.1rem, 2.3vw, 2rem); }
.team-photo { border-radius: .45rem; box-shadow: none; }
.team-name { text-transform: none; font-size: clamp(1.2rem, 1.7vw, 1.5rem); }
.team-role { font-weight: 400; line-height: 1.6; }
.team-info { padding-top: 1.25rem; }
.team-member:not(:first-child) .team-info { padding-left: 0; border-left: 0; }
.team-member:not(:first-child) .team-info::before { left: 0; }

/* Keep the court arcs at their designed scale, away from long paragraphs. */
.hero-followup { background-color: #f5f6f7; background-size: 100% auto; background-position: center top; }
.process-block { padding-bottom: clamp(3.5rem, 7vw, 6rem); }
.process-title { text-transform: none; font-size: clamp(1.25rem, 1.8vw, 1.6rem); line-height: 1.25; letter-spacing: -.025em; }
.process-copy, .process-list { font-weight: 400; }
.process-number { color: rgba(15,41,66,.45); }
.process-step { border-top-color: rgba(15,41,66,.18); }
.about-block { grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); gap: clamp(2rem, 6vw, 5.5rem); }
.about-side { gap: 1rem; }
.about-heading, .vision-heading { font-size: clamp(2.6rem, 4.2vw, 4rem); letter-spacing: -.045em; }
.about-lede { font-size: clamp(1.6rem, 2.55vw, 2.55rem); line-height: 1.22; letter-spacing: -.035em; }
.about-body, .vision-copy { font-size: 1.0625rem; font-weight: 400; line-height: 1.8; }
.about-photo { margin-top: 1.25rem; overflow: hidden; border-radius: .45rem; aspect-ratio: 4 / 3; }
.about-photo img { width: 100%; height: 100%; object-fit: cover; }
.about-highlight { font-size: 1.05rem; }
.vision-block { grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); gap: clamp(2rem, 6vw, 5.5rem); }
.vision-belief { font-size: clamp(1.25rem, 1.9vw, 1.6rem); line-height: 1.5; }
.vision-tagline { padding: 1.75rem 0 0; border-top: 2px solid var(--gold); font-size: clamp(1.6rem, 2.5vw, 2.2rem); }

/* Wider frames reveal the people and context in the photographs. */
.gallery-title { max-width: 18ch; font-size: clamp(2.6rem, 4.5vw, 4.25rem); line-height: 1; letter-spacing: -.045em; }
.gallery-header { gap: 2rem; }
.gallery-track { --gallery-gap: 1.25rem; gap: var(--gallery-gap); }
.gallery-card { flex-basis: calc((100% - var(--gallery-gap)) / 2); aspect-ratio: 4 / 3; border-radius: .45rem; }
.gallery-card::before { background: linear-gradient(to top, rgba(4,16,31,.48), transparent 26%); }
.gallery-card::after { bottom: 1rem; left: 1.25rem; font-weight: 600; }
.gallery-arrow { backdrop-filter: none; }
.gallery-count { min-width: 5rem; color: rgba(255,255,255,.75); font-size: .8rem; letter-spacing: .08em; }
.gallery-explore { color: rgba(255,255,255,.66); }

/* Feed headings should introduce their content, not overpower it. */
.updates-section .updates-news, .updates-section .updates-events { min-height: 0; padding: clamp(1.75rem, 3.5vw, 3rem); }
.updates-panel-head { margin-bottom: 2.5rem; }
.updates-section .updates-heading { font-size: clamp(1.9rem, 3vw, 2.8rem); text-transform: none; letter-spacing: -.035em; }
.updates-section .updates-news-item { grid-template-columns: 1fr; gap: .75rem; }
.updates-news-item .updates-item-title { font-size: clamp(1.75rem, 2.8vw, 2.6rem); }
a.updates-news-item .updates-item-title::after { content: ' ↗'; color: var(--accent-blue); font-size: .65em; }
.updates-date { font-weight: 500; letter-spacing: .03em; }
.updates-event-meta { font-weight: 500; }
.updates-section .updates-collections { min-height: 0; grid-template-columns: minmax(0, .75fr) minmax(0, 1.25fr); }
.updates-collections-heading { font-size: clamp(1.5rem, 2.4vw, 2.2rem); line-height: 1.12; text-transform: none; padding: 2rem; }
.updates-section .updates-empty { flex-wrap: wrap; padding: 2rem; gap: 1.25rem; }
.updates-empty p { font-weight: 500; }
.updates-section .updates-archive { font-size: .72rem; border-width: 1px; }

.support-section { padding-top: 1rem; background-size: 100% auto; }
.support-heading { font-size: clamp(2.2rem, 3.5vw, 3.4rem); line-height: 1.06; letter-spacing: -.04em; text-wrap: balance; }
.support-copy { font-weight: 400; }
.contact-heading { font-size: clamp(3.2rem, 6vw, 5.5rem); letter-spacing: -.045em; }
.contact-lead { color: rgba(255,255,255,.78); font-weight: 400; }
.contact-row dt { color: rgba(255,255,255,.65); }
.contact-form-card { border-radius: .65rem; }
.contact-form-intro h3 { text-wrap: balance; }
.contact-shell { width: min(100% - 2 * var(--landing-gutter), 80rem); }
.contact-section { background-size: 80rem auto; background-position: right top; }
a:focus-visible, button:focus-visible { outline: 3px solid var(--gold); outline-offset: 5px; }

@media (max-width: 900px) {
    .about-block, .vision-block { grid-template-columns: 1fr; gap: 2rem; }
    .about-side { display: grid; grid-template-columns: auto 1fr; align-items: baseline; }
    .about-photo { grid-column: 1 / -1; width: 100%; max-height: 22rem; }
    .vision-copy { max-width: none; }
    .updates-section .updates-collections { grid-template-columns: 1fr; }
    .updates-collections-heading { border-right: 0; }
}
@media (max-width: 639px) {
    main > section[id], #about, #vision, #news, #events, #collections { scroll-margin-top: 6rem; }
    .hero-classic-main { font-size: clamp(1.35rem, 5.8vw, 1.8rem); line-height: 1.24; }
    .hero-classic { padding-top: 9rem; gap: 1.25rem; }
    .hero-photo { animation: none; transform: scale(1.5); }
    .team-grid { gap: 2.5rem; }
    .team-photo { aspect-ratio: 5 / 4; }
    .team-member { padding: 0; }
    .team-name { font-size: 1.35rem; }
    .team-role { font-size: .95rem; }
    .about-lede { font-size: 1.6rem; }
    .about-body, .vision-copy { font-size: 1rem; line-height: 1.75; }
    .hero-followup { background-size: 70rem auto; background-position: right top; }
    .gallery-title { max-width: 13ch; font-size: 2.65rem; }
    .gallery-controls { grid-template-columns: 1fr auto; width: 100%; align-items: center; }
    .gallery-explore { font-size: .62rem; max-width: 12ch; }
    .gallery-progress { grid-column: 1 / -1; max-width: none; }
    .gallery-card { flex-basis: 100%; aspect-ratio: 4 / 3; }
    .updates-section .updates-news, .updates-section .updates-events { padding: 1.6rem; }
    .updates-panel-head { margin-bottom: 1.75rem; }
    .updates-collections-heading, .updates-section .updates-empty { padding: 1.6rem; }
    .contact-heading { font-size: 3.5rem; }
}
@media (prefers-reduced-motion: reduce) {
    .gallery-progress span { transition: none; }
}
