.nss-hub,
.resources-index {
  --editorial-ink: oklch(25% 0.025 24);
  --editorial-muted: oklch(46% 0.025 24);
  --editorial-faint: oklch(54% 0.022 24);
  --editorial-line: oklch(88% 0.018 24);
  --editorial-paper: oklch(98.5% 0.008 54);
  --editorial-wash: oklch(95.5% 0.025 38);
  --editorial-accent: oklch(63% 0.205 25);
  --editorial-accent-dark: oklch(48% 0.17 25);
  --editorial-focus: oklch(55% 0.2 25);
  --space-xs: 0.5rem;
  --space-sm: 0.75rem;
  --space-md: 1rem;
  --space-lg: 1.5rem;
  --space-xl: 2rem;
  --space-2xl: 3rem;
  --space-3xl: 4rem;
  color: var(--editorial-ink);
  background: var(--editorial-paper);
  font-kerning: normal;
}

.nss-hub *,
.nss-hub *::before,
.nss-hub *::after,
.resources-index *,
.resources-index *::before,
.resources-index *::after {
  box-sizing: border-box;
}

.nss-hub [hidden],
.resources-index [hidden] {
  display: none !important;
}

.nss-hub a:focus-visible,
.nss-hub button:focus-visible,
.nss-hub input:focus-visible,
.nss-hub summary:focus-visible,
.resources-index a:focus-visible,
.resources-index button:focus-visible,
.resources-index input:focus-visible,
.resources-index summary:focus-visible {
  outline: 3px solid var(--editorial-focus);
  outline-offset: 3px;
}

.nss-hub__shell,
.resources-index__shell {
  width: min(100% - 2rem, 76rem);
  margin-inline: auto;
}

.nss-hub__skip,
.resources-index__skip {
  position: fixed;
  z-index: 100;
  top: var(--space-md);
  left: var(--space-md);
  padding: var(--space-sm) var(--space-md);
  color: var(--editorial-paper);
  background: var(--editorial-ink);
  transform: translateY(-200%);
}

.nss-hub__skip:focus,
.resources-index__skip:focus {
  transform: translateY(0);
}

.nss-hub__masthead,
.resources-index__masthead {
  border-bottom: 1px solid var(--editorial-line);
}

.nss-hub__masthead .nss-hub__shell > nav,
.resources-index__masthead .resources-index__shell > nav {
  padding-block: var(--space-lg);
}

.nss-hub__breadcrumb,
.resources-index__breadcrumb {
  padding-block: var(--space-md);
  color: var(--editorial-muted);
  font-size: 0.875rem;
}

.nss-hub__breadcrumb ol,
.resources-index__breadcrumb ol {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-xs);
  align-items: center;
  margin: 0;
  padding: 0;
  list-style: none;
}

.nss-hub__breadcrumb li,
.resources-index__breadcrumb li {
  display: flex;
  gap: var(--space-xs);
  align-items: center;
}

.nss-hub__breadcrumb a,
.resources-index__breadcrumb a {
  color: inherit;
  text-underline-offset: 0.2em;
}

.nss-hub__hero,
.resources-index__hero {
  display: grid;
  gap: var(--space-2xl);
  padding-block: clamp(2.5rem, 6vw, 4.75rem);
}

.nss-hub__kicker,
.nss-hub__section-label,
.nss-hub__meta-label,
.resources-index__kicker,
.resources-index__section-label,
.resources-index__meta-label {
  margin: 0;
  color: var(--editorial-accent-dark);
  font-size: 0.75rem;
  font-weight: 750;
  letter-spacing: 0.13em;
  line-height: 1.4;
  text-transform: uppercase;
}

.nss-hub__title,
.resources-index__title {
  max-width: 13ch;
  margin: var(--space-md) 0 0;
  font-size: clamp(2.5rem, 7vw, 5rem);
  font-weight: 780;
  letter-spacing: -0.055em;
  line-height: 0.96;
}

.nss-hub__lede,
.resources-index__lede {
  max-width: 63ch;
  margin: var(--space-lg) 0 0;
  color: var(--editorial-muted);
  font-size: 1.125rem;
  line-height: 1.65;
}

.nss-hub__hero-actions,
.nss-hub__utility-actions,
.resources-index__hero-actions,
.resources-index__utility-actions {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-sm);
  margin-top: var(--space-xl);
}

.nss-hub__button,
.nss-hub__text-button,
.resources-index__button,
.resources-index__text-button {
  min-height: 2.75rem;
  border: 1px solid var(--editorial-ink);
  border-radius: 0;
  padding: 0.68rem 1rem;
  font: inherit;
  font-size: 0.875rem;
  font-weight: 700;
  line-height: 1.2;
  cursor: pointer;
}

.nss-hub__button,
.resources-index__button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: var(--editorial-paper);
  background: var(--editorial-ink);
  text-decoration: none;
}

.nss-hub__button:hover,
.resources-index__button:hover {
  color: var(--editorial-paper);
  background: var(--editorial-accent-dark);
  border-color: var(--editorial-accent-dark);
}

.nss-hub__text-button,
.resources-index__text-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: var(--editorial-ink);
  background: transparent;
  text-decoration: none;
}

.nss-hub__text-button:hover,
.resources-index__text-button:hover {
  background: var(--editorial-wash);
}

.nss-hub__section-heading,
.resources-index__section-heading {
  max-width: 22ch;
  margin: var(--space-sm) 0 0;
  font-size: clamp(2rem, 5vw, 3.3rem);
  font-weight: 760;
  letter-spacing: -0.04em;
  line-height: 1.03;
}

.nss-hub__section-intro,
.resources-index__section-intro {
  max-width: 68ch;
  margin: var(--space-lg) 0 0;
  color: var(--editorial-muted);
  font-size: 1rem;
  line-height: 1.7;
}

.nss-hub__link-list,
.resources-index__link-list {
  margin: 0;
  padding: 0;
  list-style: none;
}

.nss-hub__link-list li,
.resources-index__link-list li {
  border-bottom: 1px solid var(--editorial-line);
}

.nss-hub__directory-link,
.resources-index__resource-link {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: var(--space-md);
  align-items: center;
  min-height: 3.25rem;
  margin-inline: calc(var(--space-xs) * -1);
  padding: 0.72rem var(--space-xs);
  color: var(--editorial-ink);
  text-decoration: none;
}

.nss-hub__directory-link:hover,
.resources-index__resource-link:hover {
  color: var(--editorial-accent-dark);
  background: color-mix(in oklch, var(--editorial-wash) 70%, transparent);
}

.nss-hub__directory-link:hover .nss-hub__link-arrow,
.resources-index__resource-link:hover .resources-index__link-arrow {
  transform: translateX(0.2rem);
}

.nss-hub__link-copy,
.resources-index__link-copy {
  display: grid;
  gap: 0.2rem;
}

.nss-hub__link-name,
.resources-index__link-name {
  font-size: 0.9375rem;
  font-weight: 680;
  line-height: 1.35;
}

.nss-hub__link-meta,
.resources-index__link-meta {
  color: var(--editorial-muted);
  font-size: 0.75rem;
  font-variant-numeric: tabular-nums;
  line-height: 1.35;
}

.nss-hub__link-arrow,
.resources-index__link-arrow {
  color: var(--editorial-accent-dark);
  font-size: 1.1rem;
  transition: transform 160ms cubic-bezier(0.22, 1, 0.36, 1);
}
