/* A white topic index, then a full-bleed black base. */
.discovery-footer { margin-top: clamp(32px, 4vw, 64px); color: var(--color-text); scroll-margin-top: calc(var(--site-header-height) + 24px); }
.footer-discovery { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: clamp(64px, 6vw, 112px); margin: 0 var(--site-gutter); padding: clamp(80px, 7.5vw, 128px) 0; border-top: 1px solid var(--color-border); }

/* Tokens are re-scoped so every child of the base inverts. */
.footer-base {
  --color-bg: var(--color-bg-inverse);
  --color-text: var(--color-text-inverse);
  --color-text-secondary: var(--color-text-inverse-secondary);
  --color-border: var(--color-text-inverse);
  --color-border-subtle: var(--color-border-inverse-subtle);
  padding: 0 var(--site-gutter); background: var(--color-bg); color: var(--color-text);
}
.footer-base ::selection { background: var(--color-accent); color: var(--color-text); }
.footer-label { margin: 0 0 32px; color: var(--color-text-secondary); font-size: 11px; font-weight: 500; letter-spacing: .12em; line-height: 1.5; text-transform: uppercase; }
.footer-introduction h2 { margin: 0 0 0 -.045em; font-family: var(--font-heading); font-size: clamp(64px, 7.3vw, 120px); font-weight: 600; letter-spacing: -.055em; line-height: .95; overflow-wrap: anywhere; }
.footer-period { color: var(--color-accent); }
.footer-browse { display: inline-flex; align-items: center; gap: 24px; min-height: 44px; margin-top: 40px; color: var(--color-accent); font-size: 18px; font-weight: 500; }
.footer-arrow { display: inline-block; transition: transform var(--transition-base); }
.footer-browse:hover .footer-arrow { transform: translateX(5px); }
.footer-topics { min-width: 0; }
.footer-topics .footer-label { margin-bottom: 16px; }
.footer-categories { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 48px; list-style: none; margin: 0; padding: 0; }
.footer-category { display: flex; align-items: baseline; gap: 12px; min-height: 72px; padding: 20px 0; border-top: 1px solid var(--color-border-subtle); transition: color var(--transition-base), border-color var(--transition-base); }
.footer-category-name { min-width: 0; font-family: var(--font-heading); font-size: clamp(18px, 1.7vw, 26px); font-weight: 500; letter-spacing: -.035em; line-height: 1.3; overflow-wrap: anywhere; }
.footer-topic-count { margin-left: auto; color: var(--color-text-secondary); font-size: 12px; font-variant-numeric: tabular-nums; }
.footer-category .footer-arrow { align-self: center; font-size: 18px; }
.footer-category:hover { color: var(--color-accent); border-color: var(--color-accent); }
.footer-category:hover .footer-arrow { transform: translateX(3px); }
.footer-tag-index { margin-top: 56px; }
.footer-tags { display: flex; flex-wrap: wrap; gap: 0 24px; list-style: none; margin: 0; padding: 0; }
.footer-tags a { display: inline-flex; align-items: center; min-height: 44px; color: var(--color-text-secondary); font-size: 15px; }
.footer-tags a, .footer-links a, .footer-creator-links a { text-decoration-color: transparent; text-underline-offset: 5px; transition: color var(--transition-base), text-decoration-color var(--transition-base); }
.footer-tags a:hover, .footer-links a:hover, .footer-creator-links a:hover { color: var(--color-accent); text-decoration: underline; }

/* The curator's note: one personal paragraph, set large and light. */
.footer-creator { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: clamp(64px, 6vw, 112px); padding: clamp(96px, 9vw, 160px) 0 clamp(80px, 7.5vw, 128px); }
.footer-creator .footer-label { margin: 0; }
.footer-creator-note { max-width: 24em; margin: 0; font-size: clamp(24px, 2.35vw, 38px); font-weight: 300; letter-spacing: -.02em; line-height: 1.3; text-wrap: pretty; }
.footer-creator-links { display: flex; flex-wrap: wrap; gap: 0 32px; list-style: none; margin: 40px 0 0; padding: 0; }
.footer-creator-links a { display: inline-flex; align-items: center; min-height: 44px; font-size: 15px; font-weight: 500; }

.footer-directory { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: clamp(64px, 6vw, 112px); padding: 56px 0; border-top: 1px solid var(--color-border-subtle); }
.footer-navigation { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 48px; }
.footer-brand .site-logo { font-size: 40px; }
.footer-brand p { margin: 20px 0 0; color: var(--color-text-secondary); font-size: 13px; }
.footer-directory .footer-label { margin-bottom: 12px; }
.footer-links { display: flex; flex-wrap: wrap; gap: 0 24px; list-style: none; margin: 0; padding: 0; }
.footer-links a { display: inline-flex; align-items: center; min-height: 44px; font-size: 14px; }
.footer-colophon { display: flex; justify-content: space-between; gap: 24px; padding: 28px 0 48px; border-top: 1px solid var(--color-border-subtle); }
.footer-colophon p { margin: 0; color: var(--color-text-secondary); font-size: 12px; }
.discovery-footer a:focus-visible { outline: 2px solid var(--color-accent); outline-offset: 4px; }

@media (max-width: 1099px) {
  .footer-discovery, .footer-creator, .footer-directory { gap: 48px; }
  .footer-categories { column-gap: 32px; }
  .footer-category { gap: 8px; }
}

@media (max-width: 899px) {
  .footer-discovery { grid-template-columns: 1fr; gap: 64px; padding: 88px 0 72px; }
  .footer-introduction h2 { font-size: clamp(64px, 10vw, 88px); }
  .footer-introduction h2 br { display: none; }
  .footer-category-name { font-size: 24px; }
  .footer-creator { grid-template-columns: 1fr; gap: 24px; padding: 88px 0 72px; }
  .footer-creator-note { font-size: clamp(24px, 3.6vw, 32px); }
  .footer-directory { grid-template-columns: 1fr; gap: 40px; }
}

@media (max-width: 599px) {
  .discovery-footer { margin-top: 24px; }
  .footer-discovery { gap: 48px; padding: 72px 0 56px; }
  .footer-label { margin-bottom: 24px; font-size: 10px; }
  .footer-introduction h2 { font-size: clamp(56px, 16vw, 80px); }
  .footer-introduction h2 br { display: initial; }
  .footer-browse { margin-top: 28px; font-size: 16px; }
  .footer-categories { grid-template-columns: 1fr; }
  .footer-category { min-height: 60px; padding: 14px 0; gap: 16px; }
  .footer-category-name { font-size: 22px; }
  .footer-category .footer-arrow { margin-left: 8px; }
  .footer-tag-index { margin-top: 40px; }
  .footer-tags { column-gap: 20px; }
  .footer-tags a { font-size: 14px; }
  .footer-creator { padding: 72px 0 56px; }
  .footer-creator-note { font-size: 22px; line-height: 1.35; }
  .footer-creator-links { margin-top: 28px; column-gap: 28px; }
  .footer-directory { padding: 48px 0; }
  .footer-brand { margin-bottom: 8px; }
  .footer-links { display: block; }
  .footer-colophon { flex-direction: column; gap: 8px; padding-bottom: 40px; }
}
