/* latin */
@font-face {
  font-family: 'Manrope';
  font-style: normal;
  font-weight: 400 800;
  font-display: swap;
  src: url('/fonts/manrope-latin.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/* latin */
/* latin */
/* latin */
/* latin */
/* latin */
@font-face {
  font-family: 'IBM Plex Mono';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url('/fonts/ibm-plex-mono-500-normal-latin.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/* latin */
@font-face {
  font-family: 'IBM Plex Mono';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url('/fonts/ibm-plex-mono-600-normal-latin.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/* Shared element baseline and the four layouts used by these pages. */
*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: 90px; -webkit-text-size-adjust: 100%; -webkit-tap-highlight-color: transparent; }
body { margin: 0; }
button { margin: 0; font: inherit; line-height: inherit; cursor: pointer; }
button:focus:not(:focus-visible) { outline: 0; }
svg { vertical-align: middle; }
address { margin-bottom: 1rem; font-style: normal; line-height: inherit; }
strong { font-weight: bolder; }
.nsc-container { width: 100%; padding-right: 12px; padding-left: 12px; margin-right: auto; margin-left: auto; }
@media (min-width: 576px) { .nsc-container { max-width: 540px; } }
@media (min-width: 768px) { .nsc-container { max-width: 720px; } }
@media (min-width: 992px) { .nsc-container { max-width: 960px; } }
@media (min-width: 1200px) { .nsc-container { max-width: 1140px; } }
@media (min-width: 1400px) { .nsc-container { max-width: 1320px; } }
@media (max-width: 575.98px) { .nsc-container { padding-right: 16px; padding-left: 16px; } }

/* Match the original row math: negative outer gutters, padded columns and row spacing. */
.nsc-report__row, .nsc-engage__row, .nsc-contact__row, .nsc-footer__row { --nsc-gutter-x: 24px; --nsc-gutter-y: 24px; display: flex; flex-wrap: wrap; margin-top: calc(-1 * var(--nsc-gutter-y)); margin-right: calc(-.5 * var(--nsc-gutter-x)); margin-left: calc(-.5 * var(--nsc-gutter-x)); }
.nsc-report__row > *, .nsc-engage__row > *, .nsc-contact__row > *, .nsc-footer__row > * { flex-shrink: 0; width: 100%; max-width: 100%; padding-right: calc(var(--nsc-gutter-x) * .5); padding-left: calc(var(--nsc-gutter-x) * .5); margin-top: var(--nsc-gutter-y); }
.nsc-report__row { align-items: flex-start; }
.nsc-engage__row { align-items: flex-end; }
.nsc-contact__row { align-items: center; }
.nsc-footer__col-explore, .nsc-footer__col-contact { width: 50%; }
@media (min-width: 768px) { .nsc-footer__col-brand { width: 41.66666667%; } .nsc-footer__col-explore { width: 25%; } .nsc-footer__col-contact { width: 33.33333333%; } }
@media (min-width: 992px) { .nsc-report__row, .nsc-engage__row, .nsc-footer__row { --nsc-gutter-x: 48px; --nsc-gutter-y: 48px; } .nsc-report__col { width: 50%; } .nsc-engage__col-main { width: 58.33333333%; } .nsc-engage__col-side { width: 41.66666667%; } .nsc-contact__col { width: 66.66666667%; } .nsc-footer__col-brand { width: 33.33333333%; } .nsc-footer__col-explore { width: 16.66666667%; margin-left: 8.33333333%; } .nsc-footer__col-contact { width: 16.66666667%; } }

body.nsc-scroll-locked { overflow: hidden; }
.nsc-skip { position: fixed; top: 0; left: 16px; z-index: 10001; transform: translateY(-120%); }
.nsc-skip:focus { transform: none; }
.nsc-header { position: sticky; top: 0; z-index: 1000; }
.nsc-mobile { visibility: hidden; opacity: 0; pointer-events: none; }
.nsc-mobile.is-open { visibility: visible; opacity: 1; pointer-events: auto; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } *, *::before, *::after { animation-duration: .01ms !important; transition-duration: .01ms !important; } [data-reveal] { transform: none !important; } }

/* Naiche: a maintained safety case. */

:root {
  --nsc-primary: #15251f;
  --nsc-accent: #c9ff4a;
  --nsc-bg: #f3f5ee;
  --nsc-text: #102019;
  --nsc-paper: #ffffff;
  --nsc-muted: #52625a;
  --nsc-dark-muted: #b8c6be;
  --nsc-ink: #09130f;
  --nsc-line: rgba(16, 32, 25, .18);
  --nsc-line-dark: rgba(243, 245, 238, .2);
  /* Functional severity colours, not brand colours. */
  --nsc-sev-critical-ground: #b00020;
  --nsc-sev-critical-ink: #fffafa;
  --nsc-sev-high-ground: #d40000;
  --nsc-sev-high-ink: #fffafa;
  --nsc-sev-medium-ground: #ffad00;
  --nsc-sev-medium-ink: #102019;
  --nsc-sev-low-ground: #00a63d;
  --nsc-sev-low-ink: #09130f;
  --nsc-sev-none-ground: #e8ece9;
  --nsc-sev-none-ink: #44544c;
  --nsc-fs-micro: .75rem;
  --nsc-fs-micro-lg: .8125rem;
  --nsc-focus: var(--nsc-accent);
  --nsc-radius-sm: 5px;
  --nsc-radius-md: 12px;
  --nsc-radius-lg: 22px;
  --nsc-shadow: 0 26px 70px rgba(9, 19, 15, .12);
  --nsc-ease: cubic-bezier(.22, 1, .36, 1);

  /* Ink that sits ON a dark surface. Constant across themes: dark bands stay
     dark in both, so their text never flips. */
  --nsc-on-dark: #f3f5ee;
  --nsc-line-strong: rgba(16, 32, 25, .35);
  --nsc-header-bg: rgba(243, 245, 238, .98);
  color-scheme: light;
}

/* Dark theme: rhythm by elevation. The paper ground becomes deep green, and
   the bands that were deep green step DOWN to near-black, so the alternation
   that carries the page survives instead of flattening into one dark field.
   The acid band is unchanged — it reads on either ground. */
[data-theme="dark"] {
  --nsc-bg: #15251f;
  --nsc-paper: #1c3029;
  --nsc-text: #f3f5ee;
  --nsc-muted: #a9b9af;
  --nsc-primary: #0b1410;
  --nsc-ink: #050c09;
  --nsc-line: rgba(243, 245, 238, .16);
  --nsc-line-strong: rgba(243, 245, 238, .32);
  --nsc-line-dark: rgba(243, 245, 238, .16);
  /* Functional severity colours, not brand colours. */
  --nsc-sev-critical-ground: #c40020;
  --nsc-sev-critical-ink: #fffafa;
  --nsc-sev-high-ground: #e00000;
  --nsc-sev-high-ink: #fffafa;
  --nsc-sev-medium-ground: #ffb000;
  --nsc-sev-medium-ink: #09130f;
  --nsc-sev-low-ground: #00c853;
  --nsc-sev-low-ink: #09130f;
  --nsc-sev-none-ground: #394a44;
  --nsc-sev-none-ink: #f3f5ee;
  --nsc-header-bg: rgba(21, 37, 31, .98);
  --nsc-shadow: 0 26px 70px rgba(5, 12, 9, .45);
  color-scheme: dark;
}

html {
  background: var(--nsc-bg);
}

body {
  background: var(--nsc-bg);
  color: var(--nsc-text);
  font-family: "Manrope", sans-serif;
  font-size: 16px;
  font-weight: 500;
  line-height: 1.65;
  text-rendering: optimizeLegibility;
}

/* The positional shift is armed by JS, so a JS failure cannot hide content. */
[data-reveal] {
  opacity: 1;
  transform: none;
  transition: transform .45s var(--nsc-ease);
}

html[data-reveal-armed] [data-reveal]:not(.is-visible) {
  transform: translateY(12px);
}

/* Acid grounds invert the focus ring to ink for contrast. */
:focus-visible {
  outline: 3px solid var(--nsc-focus);
  outline-offset: 3px;
}

.nsc-contact,
.nsc-skip {
  --nsc-focus: var(--nsc-ink);
}

a {
  color: inherit;
  text-decoration: none;
}

a:hover {
  color: inherit;
}

p {
  margin-top: 0;
  margin-bottom: 0;
}

h1,
h2,
h3 {
  color: inherit;
  font-family: "Manrope", sans-serif;
  font-weight: 800;
  letter-spacing: -.045em;
  margin-top: 0;
}

h1 {
  font-size: clamp(2.65rem, 5.65vw, 5.125rem);
  line-height: .99;
  margin-bottom: 24px;
}

h2 {
  font-size: clamp(2.15rem, 4vw, 3.9rem);
  line-height: 1.04;
  margin-bottom: 24px;
}

h3 {
  font-size: clamp(1.28rem, 2vw, 1.72rem);
  line-height: 1.15;
  margin-bottom: 16px;
}


::selection {
  background: var(--nsc-accent);
  color: var(--nsc-ink);
}

.nsc-skip {
  background: var(--nsc-accent);
  border-radius: 0 0 var(--nsc-radius-sm) var(--nsc-radius-sm);
  color: var(--nsc-ink);
  font-family: "IBM Plex Mono", monospace;
  font-size: .78rem;
  font-weight: 600;
  padding: 10px 14px;
}

.nsc-header {
  background: var(--nsc-header-bg);
  border-bottom: 1px solid var(--nsc-line);
  color: var(--nsc-text);
  width: 100%;
}

.nsc-header__inner {
  align-items: center;
  display: flex;
  min-height: 92px;
  transition: min-height .3s var(--nsc-ease);
}

.nsc-header__brand {
  align-items: center;
  display: inline-flex;
  flex: 0 0 auto;
}

.nsc-header__mark {
  display: inline-flex;
}

.nsc-header__mark svg {
  height: auto;
  width: 148px;
  transition: width .3s var(--nsc-ease);
}

.nsc-header.is-compact .nsc-header__inner {
  min-height: 68px;
}

.nsc-header.is-compact .nsc-header__mark svg {
  width: 111px;
}

.nsc-nav {
  align-items: center;
  display: flex;
  gap: 34px;
  margin-left: auto;
}

.nsc-nav__link {
  font-family: "IBM Plex Mono", monospace;
  font-size: .78rem;
  font-weight: 500;
  letter-spacing: .03em;
  padding: 12px 0;
  position: relative;
}

.nsc-nav__link::after {
  background: var(--nsc-text);
  bottom: 7px;
  content: "";
  height: 2px;
  left: 0;
  position: absolute;
  transform: scaleX(0);
  transform-origin: right;
  transition: transform .24s var(--nsc-ease);
  width: 100%;
}

.nsc-nav__link:hover::after {
  transform: scaleX(1);
  transform-origin: left;
}

.nsc-nav-toggle {
  align-items: center;
  background: var(--nsc-primary);
  border: 0;
  border-radius: var(--nsc-radius-sm);
  color: var(--nsc-on-dark);
  display: none;
  height: 44px;
  justify-content: center;
  padding: 0;
  width: 44px;
}

.nsc-nav-toggle__close {
  display: none;
}

.nsc-nav-toggle[aria-expanded="true"] .nsc-nav-toggle__open {
  display: none;
}

.nsc-nav-toggle[aria-expanded="true"] .nsc-nav-toggle__close {
  display: inline-flex;
}

.nsc-mobile {
  align-items: stretch;
  /* Preserve the translucent scrim where color-mix() is unavailable. */
  background: rgba(9, 19, 15, .72);
  background: color-mix(in srgb, var(--nsc-ink) 72%, transparent);
  display: flex;
  inset: 0;
  justify-content: flex-end;
  position: fixed;
  transition: opacity .28s ease, visibility .28s ease;
  z-index: 10000;
}

.nsc-mobile__sheet {
  background: var(--nsc-primary);
  color: var(--nsc-on-dark);
  display: flex;
  flex-direction: column;
  max-width: 430px;
  min-height: 100%;
  padding: 24px;
  transform: translateX(100%);
  transition: transform .38s var(--nsc-ease);
  width: min(88vw, 430px);
}

/* visibility is in the transition list so it stays `hidden` for the full .28s
   while opening — which meant the focus trap called .focus() on an unfocusable
   panel and keyboard focus never entered the menu. Opening flips visibility
   immediately; closing keeps the delay so the sheet can slide out. */
.nsc-mobile.is-open {
  transition: opacity .28s ease, visibility 0s;
}

.nsc-mobile.is-open .nsc-mobile__sheet {
  transform: translateX(0);
}

.nsc-mobile__top {
  align-items: center;
  display: flex;
  justify-content: space-between;
}

.nsc-mobile__label {
  color: var(--nsc-accent);
  font-family: "IBM Plex Mono", monospace;
  font-size: var(--nsc-fs-micro);
  letter-spacing: .08em;
}

.nsc-mobile__close {
  align-items: center;
  background: transparent;
  border: 1px solid var(--nsc-line-dark);
  border-radius: var(--nsc-radius-sm);
  color: var(--nsc-on-dark);
  display: inline-flex;
  height: 44px;
  justify-content: center;
  padding: 0;
  width: 44px;
}

.nsc-mobile__nav {
  display: flex;
  flex-direction: column;
  margin-top: 64px;
}

.nsc-mobile__link {
  align-items: center;
  border-bottom: 1px solid var(--nsc-line-dark);
  display: flex;
  font-size: clamp(1.75rem, 8vw, 2.7rem);
  font-weight: 800;
  justify-content: space-between;
  letter-spacing: -.04em;
  padding: 14px 0;
}

.nsc-mobile__link:hover {
  color: var(--nsc-accent);
}

.nsc-eyebrow {
  align-items: center;
  display: flex;
  font-family: "IBM Plex Mono", monospace;
  font-size: var(--nsc-fs-micro);
  font-weight: 600;
  gap: 9px;
  letter-spacing: .075em;
  margin-bottom: 22px;
  text-transform: uppercase;
}

.nsc-eyebrow.nsc-eyebrow--light {
  color: var(--nsc-accent);
}

.nsc-eyebrow {
  color: var(--nsc-muted);
}

.nsc-eyebrow--dark {
  color: var(--nsc-ink);
}

.nsc-section {
  padding: 104px 0;
}

.nsc-intro {
  color: var(--nsc-muted);
  font-size: clamp(1.02rem, 1.5vw, 1.2rem);
  line-height: 1.7;
}


.nsc-text-link {
  align-items: center;
  align-self: flex-start;
  border-bottom: 1px solid currentColor;
  display: inline-flex;
  font-family: "IBM Plex Mono", monospace;
  font-size: var(--nsc-fs-micro);
  gap: 8px;
  margin-top: auto;
  padding-bottom: 4px;
}

.nsc-text-link:hover {
  border-bottom-color: transparent;
}

.nsc-contact {
  background: var(--nsc-accent);
  color: var(--nsc-ink);
}

.nsc-contact p {
  font-size: 1.04rem;
}

.nsc-code-record {
  background: var(--nsc-ink);
  border-radius: var(--nsc-radius-lg);
  box-shadow: var(--nsc-shadow);
  color: var(--nsc-on-dark);
}

.nsc-code-record__head {
  border-bottom: 1px solid var(--nsc-line-dark);
  color: var(--nsc-dark-muted);
  display: flex;
  font-family: "IBM Plex Mono", monospace;
  font-size: var(--nsc-fs-micro);
  justify-content: space-between;
  padding: 14px 20px;
}

/* The record is a file listing, so its lines are the file's own. Never reflow a URL
   mid-address: keep each field on one line and let the block scroll if it must. */
.nsc-code-record p {
  font-family: "IBM Plex Mono", monospace;
  font-size: clamp(.76rem, 1.3vw, .92rem);
  line-height: 1.95;
  -webkit-mask-image: linear-gradient(to right, #000 calc(100% - 34px), transparent);
  mask-image: linear-gradient(to right, #000 calc(100% - 34px), transparent);
  overflow-x: auto;
  padding: clamp(24px, 4vw, 42px);
  white-space: nowrap;
}


.nsc-position-list p {
  align-items: baseline;
  border-top: 1px solid var(--nsc-line-dark);
  display: grid;
  gap: 18px;
  grid-template-columns: 74px 1fr;
  padding: 18px 0;
}

.nsc-position-list span {
  color: var(--nsc-accent);
  font-family: "IBM Plex Mono", monospace;
  font-size: var(--nsc-fs-micro);
}

.nsc-position-list strong {
  color: var(--nsc-on-dark);
  font-size: 1rem;
  font-weight: 600;
}

.nsc-footer {
  background: var(--nsc-bg);
  color: var(--nsc-text);
}

.nsc-footer__main {
  padding-bottom: 52px;
  padding-top: 68px;
}

.nsc-footer__brand {
  display: inline-flex;
  margin-bottom: 20px;
}

.nsc-footer__mark svg {
  height: auto;
  object-fit: contain;
  width: 116px;
}

.nsc-footer__intro {
  color: var(--nsc-muted);
  font-size: .86rem;
}

.nsc-footer__heading {
  font-family: "IBM Plex Mono", monospace;
  font-size: var(--nsc-fs-micro);
  font-weight: 600;
  letter-spacing: .06em;
  margin-bottom: 20px;
  text-transform: uppercase;
}

.nsc-footer__nav,
.nsc-footer__address {
  display: flex;
  flex-direction: column;
  font-size: .84rem;
  font-style: normal;
  gap: 8px;
}

.nsc-footer__nav a:hover {
  color: var(--nsc-muted);
}

.nsc-copyright {
  color: var(--nsc-muted);
  font-size: var(--nsc-fs-micro);
  padding: 14px 0 20px;
}

.nsc-copyright__row {
  align-items: baseline;
  display: flex;
  flex-wrap: wrap;
  gap: 4px 12px;
}

.nsc-copyright__row > nav {
  display: contents;
}

.nsc-copyright a,
.nsc-copyright span {
  color: inherit;
  font-weight: 400;
  text-decoration: none;
  white-space: nowrap;
}

@media (max-width: 1199.98px) {
  .nsc-nav {
    gap: 24px;
  }

}

@media (max-width: 991.98px) {
  .nsc-header__inner {
    min-height: 80px;
  }

  .nsc-header.is-compact .nsc-header__inner {
    min-height: 60px;
  }

  .nsc-header__mark svg {
    width: 109px;
  }

  .nsc-header.is-compact .nsc-header__mark svg {
    width: 90px;
  }

  .nsc-nav {
    display: none;
  }

  .nsc-nav-toggle {
    display: inline-flex;
  }

  .nsc-section {
    padding: 80px 0;
  }

}

@media (max-width: 767.98px) {
  h1 {
    font-size: clamp(2.45rem, 11.5vw, 3.5rem);
  }

  h2 {
    font-size: clamp(2rem, 9.6vw, 2.8rem);
  }

  .nsc-section {
    padding: 64px 0;
  }

  .nsc-eyebrow {
    margin-bottom: 16px;
  }

  .nsc-position-list p {
    grid-template-columns: 64px 1fr;
  }

  .nsc-footer__main {
    padding-bottom: 42px;
    padding-top: 52px;
  }

  .nsc-copyright__row {
    gap: 3px 8px;
  }
}

@media (max-width: 399.98px) {
  .nsc-mobile__sheet {
    padding: 20px;
  }

}

/* ============================================================
   Engagement sequence — pentest / vulnerability testing on request.
   Reuses the disclosure-step rhythm on purpose: the same discipline,
   applied to engagements instead of reports.
   ============================================================ */

/* Near-black separates this band from the other deep-green surfaces. */
.nsc-engage {
  background: var(--nsc-ink);
  color: var(--nsc-on-dark);
}

.nsc-engage .nsc-intro {
  color: var(--nsc-dark-muted);
}

.nsc-engage__gate {
  border: 1px solid var(--nsc-line-dark);
  border-radius: var(--nsc-radius-md);
  color: var(--nsc-on-dark);
  margin-top: 8px;
  padding: 22px 24px;
}

.nsc-engage__gate span {
  color: var(--nsc-accent);
  display: block;
  font-family: "IBM Plex Mono", monospace;
  font-size: var(--nsc-fs-micro);
  letter-spacing: .075em;
  margin-bottom: 10px;
  text-transform: uppercase;
}

.nsc-engage__gate p {
  color: var(--nsc-dark-muted);
  line-height: 1.6;
}

.nsc-engage__steps {
  counter-reset: engage;
  display: grid;
  gap: 24px;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  margin-top: 44px;
}

.nsc-engage-step {
  border-top: 1px solid var(--nsc-line-dark);
  padding-top: 20px;
}

.nsc-engage-step__number {
  color: var(--nsc-accent);
  display: block;
  font-family: "IBM Plex Mono", monospace;
  font-size: var(--nsc-fs-micro);
  letter-spacing: .075em;
  margin-bottom: 18px;
}

.nsc-engage-step h3 {
  color: var(--nsc-on-dark);
  font-size: 1.3rem;
  margin-bottom: 12px;
}

.nsc-engage-step p {
  color: var(--nsc-dark-muted);
  font-size: .95rem;
  line-height: 1.6;
}

.nsc-engage__limits {
  border-top: 1px solid var(--nsc-line-dark);
  display: grid;
  gap: 12px 32px;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  margin-top: 48px;
  padding-top: 26px;
}

.nsc-engage__limits p {
  align-items: baseline;
  color: var(--nsc-dark-muted);
  display: grid;
  gap: 14px;
  grid-template-columns: 42px 1fr;
  line-height: 1.6;
}

.nsc-engage__limits span {
  color: var(--nsc-accent);
  font-family: "IBM Plex Mono", monospace;
  font-size: var(--nsc-fs-micro);
  letter-spacing: .06em;
}

@media (max-width: 991.98px) {
  .nsc-engage__steps {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 767.98px) {
  .nsc-engage__steps {
    gap: 20px;
    grid-template-columns: 1fr;
    margin-top: 34px;
  }

  .nsc-engage__limits {
    grid-template-columns: 1fr;
    margin-top: 36px;
  }
}

/* ============================================================
   Theme toggle
   ============================================================ */

.nsc-theme-toggle {
  align-items: center;
  background: transparent;
  border: 1px solid var(--nsc-line);
  border-radius: var(--nsc-radius-sm);
  color: var(--nsc-text);
  display: inline-flex;
  height: 44px;
  justify-content: center;
  margin-left: 24px;
  padding: 0;
  transition: background-color .18s ease, border-color .18s ease, color .18s ease;
  width: 44px;
}

.nsc-theme-toggle:hover {
  background: var(--nsc-primary);
  border-color: var(--nsc-primary);
  color: var(--nsc-accent);
}

.nsc-theme-toggle__moon {
  display: none;
}

[data-theme="dark"] .nsc-theme-toggle__sun {
  display: none;
}

[data-theme="dark"] .nsc-theme-toggle__moon {
  display: inline-flex;
}

@media (max-width: 991.98px) {
  .nsc-theme-toggle {
    margin-left: auto;
    margin-right: 12px;
  }
}

/* Theme changes cross-fade without overriding reduced motion. */
body,
.nsc-header,
.nsc-section,
.nsc-footer,
.nsc-copyright {
  transition: background-color .25s ease, color .25s ease, border-color .25s ease;
}

/* ============================================================
   Reporting to him — the disclosure sequence pointed inward
   ============================================================ */

.nsc-report {
  background: var(--nsc-paper);
}

.nsc-report__list {
  margin-top: 32px;
}

/* .nsc-position-list was authored for a dark band — its ink, accent numerals
   and hairline all assume one. Re-ground them for this light section. */
.nsc-report__list p {
  border-top-color: var(--nsc-line);
  grid-template-columns: 46px 1fr;
}

.nsc-report__list span {
  color: var(--nsc-muted);
}

.nsc-report__list strong {
  color: var(--nsc-text);
  font-weight: 500;
}

.nsc-report__foot {
  align-items: baseline;
  display: flex;
  flex-wrap: wrap;
  gap: 8px 24px;
  justify-content: space-between;
  margin-top: 20px;
}

.nsc-code-record__head {
  display: flex;
  gap: 16px;
  justify-content: space-between;
}

/* ---- Touch target floors -------------------------------------------------
   WCAG 2.2 AA needs 24x24; these reach the 44x44 comfort target on the widths
   where the pointer is actually a finger. Desktop rhythm is left alone. */
@media (max-width: 991.98px) {

  .nsc-header__brand {
    min-height: 44px;
  }

  .nsc-text-link {
    min-height: 44px;
    align-items: center;
  }

  .nsc-footer__brand {
    align-items: center;
    display: inline-flex;
    min-height: 44px;
  }
}

/* Support-thread quotation. The only third-party corroboration on the page —
   everything else is Naiche describing his own standards. Kept deliberately
   plain: it is a transcript, not a testimonial. */
.nsc-thread {
  border-left: 2px solid var(--nsc-accent);
  margin-top: 26px;
  padding-left: 18px;
}

.nsc-thread__label {
  color: var(--nsc-muted);
  font-family: "IBM Plex Mono", monospace;
  font-size: var(--nsc-fs-micro);
  letter-spacing: .075em;
  margin-bottom: 14px;
  text-transform: uppercase;
}

.nsc-thread__line {
  color: var(--nsc-text);
  display: grid;
  gap: 4px;
  line-height: 1.6;
}

.nsc-thread__line + .nsc-thread__line {
  margin-top: 14px;
}

.nsc-thread__line span {
  color: var(--nsc-muted);
  font-family: "IBM Plex Mono", monospace;
  font-size: var(--nsc-fs-micro);
}

.nsc-thread__line--reply {
  color: var(--nsc-muted);
}

/* Plugin inventory stays scoped to its section. */
#nsc-proof {
  background: var(--nsc-bg);
  padding: clamp(64px, 7vw, 104px) 0;
}

#nsc-proof .nsc-shipping__heading {
  align-items: end;
  display: flex;
  gap: 32px;
  justify-content: space-between;
}

#nsc-proof .nsc-shipping__eyebrow,
#nsc-proof .nsc-shipping__total,
#nsc-proof .nsc-shipping-card__top,
#nsc-proof .nsc-shipping-card__bottom,
#nsc-proof .nsc-shipping-card__destination {
  font-family: "IBM Plex Mono", monospace;
}

#nsc-proof .nsc-shipping__eyebrow {
  align-items: center;
  color: var(--nsc-muted);
  display: flex;
  font-size: var(--nsc-fs-micro-lg);
  font-weight: 500;
  gap: 10px;
  letter-spacing: .09em;
  margin: 0 0 18px;
  text-transform: uppercase;
}

#nsc-proof .nsc-shipping__eyebrow-mark {
  background: var(--nsc-accent);
  border: 1px solid var(--nsc-text);
  height: 9px;
  width: 9px;
}

#nsc-proof h2 {
  font-size: clamp(2.3rem, 5.2vw, 4.8rem);
  font-weight: 800;
  letter-spacing: -.055em;
  line-height: 1.08;
  margin: 0;
  max-width: 860px;
}

#nsc-proof h2 em {
  font-style: normal;
  text-decoration: underline;
  text-decoration-color: var(--nsc-accent);
  text-decoration-thickness: .16em;
  text-underline-offset: .13em;
}

#nsc-proof .nsc-shipping__total {
  align-items: end;
  border-top: 1px solid var(--nsc-line-strong);
  color: var(--nsc-muted);
  display: flex;
  flex: 0 0 110px;
  flex-direction: column;
  font-size: var(--nsc-fs-micro);
  letter-spacing: .09em;
  line-height: 1;
  padding-top: 12px;
}

#nsc-proof .nsc-shipping__total strong {
  color: var(--nsc-text);
  font-family: "Manrope", sans-serif;
  font-size: 2.65rem;
  font-weight: 800;
  letter-spacing: -.07em;
  line-height: 1;
  margin-bottom: 6px;
}

#nsc-proof .nsc-shipping__grid {
  display: grid;
  gap: 14px;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  margin-top: 42px;
}

#nsc-proof .nsc-shipping-card {
  background: var(--nsc-paper);
  border: 1px solid var(--nsc-line);
  border-radius: var(--nsc-radius-md);
  color: var(--nsc-text);
  display: flex;
  flex-direction: column;
  min-width: 0;
  padding: clamp(22px, 2.3vw, 30px);
  position: relative;
  transition: border-color .2s ease, box-shadow .2s ease, transform .2s var(--nsc-ease);
}

#nsc-proof .nsc-shipping-card:hover {
  border-color: var(--nsc-line-strong);
  box-shadow: var(--nsc-shadow);
  color: var(--nsc-text);
  transform: translateY(-3px);
}

#nsc-proof .nsc-shipping-card:focus-visible {
  outline: 3px solid var(--nsc-text);
  outline-offset: 4px;
}

#nsc-proof .nsc-shipping-card--featured {
  min-height: 340px;
}

#nsc-proof .nsc-shipping-card--dark {
  background: var(--nsc-primary);
  border-color: var(--nsc-line-dark);
  color: var(--nsc-on-dark);
}

#nsc-proof .nsc-shipping-card--dark:hover {
  border-color: var(--nsc-accent);
  color: var(--nsc-on-dark);
}

#nsc-proof .nsc-shipping-card--dark:focus-visible {
  outline-color: var(--nsc-accent);
}

#nsc-proof .nsc-shipping-card__top {
  align-items: center;
  color: var(--nsc-muted);
  display: flex;
  font-size: var(--nsc-fs-micro);
  gap: 16px;
  justify-content: space-between;
  letter-spacing: .045em;
  line-height: 1.4;
  text-transform: uppercase;
}

#nsc-proof .nsc-shipping-card--dark .nsc-shipping-card__top {
  color: var(--nsc-dark-muted);
}

#nsc-proof .nsc-shipping-card__number {
  color: var(--nsc-text);
  white-space: nowrap;
}

#nsc-proof .nsc-shipping-card--dark .nsc-shipping-card__number {
  color: var(--nsc-accent);
}

#nsc-proof .nsc-shipping-card__category {
  text-align: right;
}

#nsc-proof .nsc-shipping-card__body {
  margin-top: 30px;
}

#nsc-proof .nsc-shipping-card h3 {
  font-size: clamp(1.4rem, 2.2vw, 2rem);
  font-weight: 800;
  letter-spacing: -.04em;
  line-height: 1.18;
  margin: 0 0 12px;
}

#nsc-proof .nsc-shipping-card--featured h3 {
  font-size: clamp(2rem, 3.1vw, 2.7rem);
}

#nsc-proof .nsc-shipping-card p {
  color: var(--nsc-muted);
  font-size: .94rem;
  line-height: 1.58;
  margin: 0;
}

#nsc-proof .nsc-shipping-card p + p {
  margin-top: 12px;
}

#nsc-proof .nsc-shipping-card--dark p {
  color: var(--nsc-dark-muted);
}

#nsc-proof .nsc-shipping-card__detail strong {
  color: var(--nsc-text);
  font-weight: 800;
}

#nsc-proof .nsc-shipping-card--dark .nsc-shipping-card__detail strong {
  color: var(--nsc-on-dark);
}

#nsc-proof .nsc-shipping-card__bottom {
  align-items: end;
  border-top: 1px solid var(--nsc-line);
  color: var(--nsc-muted);
  display: flex;
  font-size: var(--nsc-fs-micro);
  gap: 16px;
  justify-content: space-between;
  line-height: 1.5;
  margin-top: auto;
  padding-top: 17px;
}

#nsc-proof .nsc-shipping-card--dark .nsc-shipping-card__bottom {
  border-color: var(--nsc-line-dark);
  color: var(--nsc-dark-muted);
}

#nsc-proof .nsc-shipping-card__name-note {
  max-width: 60%;
}

#nsc-proof .nsc-shipping-card__out {
  align-items: center;
  color: var(--nsc-text);
  display: inline-flex;
  gap: 8px;
  white-space: nowrap;
}

#nsc-proof .nsc-shipping-card--dark .nsc-shipping-card__out {
  color: var(--nsc-accent);
}

#nsc-proof .nsc-shipping-card--small {
  min-height: 210px;
}

#nsc-proof .nsc-shipping-card--small .nsc-shipping-card__body {
  margin-top: 21px;
}

#nsc-proof .nsc-shipping-card--small h3 {
  margin-bottom: 8px;
}

#nsc-proof .nsc-shipping-card__destination {
  border-bottom: 1px solid var(--nsc-line-strong);
  color: var(--nsc-text);
  font-size: var(--nsc-fs-micro);
  line-height: 1.4;
  margin-top: auto;
  padding-top: 18px;
  width: max-content;
}

@media (max-width: 767.98px) {
  #nsc-proof .nsc-shipping__grid {
    grid-template-columns: 1fr;
    margin-top: 34px;
  }

  #nsc-proof .nsc-shipping-card--featured,
  #nsc-proof .nsc-shipping-card--small {
    min-height: 0;
  }

  #nsc-proof .nsc-shipping-card--featured .nsc-shipping-card__bottom {
    margin-top: 28px;
  }

  #nsc-proof .nsc-shipping-card--small .nsc-shipping-card__destination {
    margin-top: 22px;
  }
}

@media (max-width: 575.98px) {
  #nsc-proof .nsc-shipping__heading {
    align-items: start;
  }

  #nsc-proof .nsc-shipping__total {
    flex-basis: 55px;
    font-size: var(--nsc-fs-micro);
  }

  #nsc-proof .nsc-shipping__total strong {
    font-size: 1.9rem;
  }

  #nsc-proof h2 {
    font-size: clamp(2.05rem, 8.4vw, 2.75rem);
  }

  #nsc-proof .nsc-shipping-card__bottom {
    align-items: start;
  }
}

@media (max-width: 399.98px) {
  #nsc-proof .nsc-shipping__heading {
    gap: 12px;
  }

  #nsc-proof .nsc-shipping-card__bottom {
    flex-wrap: wrap;
    gap: 10px;
  }

  #nsc-proof .nsc-shipping-card__name-note {
    max-width: none;
  }
}

@media (prefers-reduced-motion: reduce) {
  #nsc-proof .nsc-shipping-card {
    transition: none;
  }

  #nsc-proof .nsc-shipping-card:hover {
    transform: none;
  }
}

/* ============================================================
   Opening section (#nsc-findings): short intro, then the
   advisory listing. All classes are nsc-opening*.
   ============================================================ */
.nsc-opening {
  background: var(--nsc-bg);
  color: var(--nsc-text);
  padding: 0 0 clamp(72px, 8vw, 124px);
}

.nsc-opening__intro {
  padding: clamp(38px, 5.5vw, 74px) 0 0;
}

.nsc-opening__copy {
  min-width: 0;
}

/* The divider under the intro separates it from the advisory listing. While the listing sits
   parked in the <template> on the page, nothing follows the intro, so the line and its bottom
   spacing apply only when a listing is actually there. */
.nsc-opening__intro:has(+ .nsc-opening__listing) {
  border-bottom: 1px solid var(--nsc-line-strong);
  padding-bottom: clamp(42px, 5vw, 68px);
}

.nsc-opening__eyebrow,
.nsc-opening__index,
.nsc-opening__notice-label,
.nsc-opening__filter-status,
.nsc-opening__date,
.nsc-opening__record-id,
.nsc-opening__eyebrow {
  align-items: center;
  color: var(--nsc-muted);
  display: flex;
  font-size: .78rem;
  gap: 10px;
  letter-spacing: .085em;
  margin-bottom: 24px;
  text-transform: uppercase;
}

.nsc-opening__eyebrow-mark {
  background: var(--nsc-accent);
  border: 1px solid var(--nsc-text);
  border-radius: 50%;
  flex: 0 0 9px;
  height: 9px;
}

.nsc-opening h1 {
  font-size: clamp(2.35rem, 4.45vw, 4rem);
  letter-spacing: -.055em;
  line-height: 1.06;
  margin-bottom: 22px;
  max-width: 960px;
  text-wrap: balance;
}

/* The second line of the opening headline carries the acid accent. Acid text is
   unreadable on the light ground, so light mode marks it with an acid highlight
   behind dark text; dark mode sets the words themselves in acid. */
.nsc-opening h1 span {
  -webkit-box-decoration-break: clone;
  box-decoration-break: clone;
  background-image: linear-gradient(transparent 60%, var(--nsc-accent) 60%, var(--nsc-accent) 94%, transparent 94%);
  color: var(--nsc-text);
  padding: 0 .06em;
}

[data-theme="dark"] .nsc-opening h1 span {
  background-image: none;
  color: var(--nsc-accent);
  padding: 0;
}

.nsc-opening__lead {
  color: var(--nsc-muted);
  font-size: clamp(1rem, 1.4vw, 1.125rem);
  line-height: 1.7;
  max-width: 780px;
}

/* A single large target lets the rank read as an achievement, not a utility chip. */
.nsc-opening__leaderboard {
  margin-top: clamp(36px, 8vw, 56px);
  min-width: 0;
}

.nsc-opening__leaderboard-link {
  animation: nsc-rank-card-in .78s .12s var(--nsc-ease) backwards;
  background: var(--nsc-primary);
  border-radius: var(--nsc-radius-lg);
  box-shadow: var(--nsc-shadow);
  color: var(--nsc-on-dark);
  display: flex;
  flex-direction: column;
  isolation: isolate;
  min-height: clamp(16rem, 68vw, 21rem);
  overflow: hidden;
  padding: clamp(22px, 6vw, 32px);
  position: relative;
  transition: transform .32s var(--nsc-ease);
}

.nsc-opening__leaderboard-link::before {
  animation: nsc-rank-rule-in .85s .34s var(--nsc-ease) backwards;
  background: var(--nsc-accent);
  content: "";
  height: 8px;
  inset: 0 0 auto;
  position: absolute;
  transform: scaleX(1);
  transform-origin: left;
  z-index: 2;
}

.nsc-opening__leaderboard-link::after {
  animation: nsc-rank-ring-in .95s .28s var(--nsc-ease) backwards;
  aspect-ratio: 1;
  border: 1px solid var(--nsc-accent);
  border-radius: 50%;
  content: "";
  opacity: .18;
  position: absolute;
  right: -25%;
  top: -22%;
  width: min(16rem, 72%);
  z-index: -1;
}

.nsc-opening__leaderboard-link:hover {
  color: var(--nsc-on-dark);
}

.nsc-opening__leaderboard-scope {
  align-self: flex-start;
  animation: nsc-rank-label-in .5s .48s var(--nsc-ease) backwards;
  background: var(--nsc-accent);
  border-radius: var(--nsc-radius-sm);
  color: var(--nsc-ink);
  font-family: "IBM Plex Mono", monospace;
  font-size: .75rem;
  font-weight: 600;
  letter-spacing: .075em;
  line-height: 1.25;
  padding: 7px 9px;
  text-transform: uppercase;
}

.nsc-opening__leaderboard-rank-frame {
  display: block;
  margin-top: auto;
  overflow: hidden;
  padding: .12em 0 .06em;
  width: 100%;
}

.nsc-opening__leaderboard-rank {
  animation: nsc-rank-figure-in 1s .38s var(--nsc-ease) backwards;
  color: var(--nsc-accent);
  display: block;
  font-size: clamp(5.5rem, 25vw, 8.75rem);
  font-variant-numeric: tabular-nums;
  font-weight: 800;
  letter-spacing: -.085em;
  line-height: .82;
  transform-origin: left bottom;
  transition: transform .32s var(--nsc-ease);
  white-space: nowrap;
}

.nsc-opening__leaderboard-label {
  align-items: center;
  animation: nsc-rank-label-in .58s .92s var(--nsc-ease) backwards;
  display: flex;
  font-family: "IBM Plex Mono", monospace;
  font-size: clamp(.75rem, 1.6vw, .875rem);
  font-weight: 600;
  gap: 16px;
  justify-content: space-between;
  letter-spacing: .07em;
  line-height: 1.4;
  margin-top: 24px;
  padding-top: 18px;
  position: relative;
  text-transform: uppercase;
}

.nsc-opening__leaderboard-label::before {
  background: var(--nsc-on-dark);
  content: "";
  height: 1px;
  inset: 0 0 auto;
  opacity: .28;
  position: absolute;
}

.nsc-opening__leaderboard-name {
  min-width: 0;
}

.nsc-opening__leaderboard-label svg {
  animation: nsc-rank-arrow-in .58s 1.04s var(--nsc-ease) backwards;
  flex: 0 0 auto;
  transition: transform .28s var(--nsc-ease);
}

@media (hover: hover) {
  .nsc-opening__leaderboard-link:hover {
    transform: translateY(-4px);
  }

  .nsc-opening__leaderboard-link:hover .nsc-opening__leaderboard-rank {
    transform: translateX(4px);
  }

  .nsc-opening__leaderboard-link:hover .nsc-opening__leaderboard-label svg {
    transform: translate(3px, -3px);
  }
}

/* Only compositor-friendly properties move; the card's footprint is final from first paint. */
@keyframes nsc-rank-card-in {
  from {
    opacity: 0;
    transform: translateY(24px) scale(.97);
  }
}

@keyframes nsc-rank-rule-in {
  from {
    transform: scaleX(0);
  }
}

@keyframes nsc-rank-ring-in {
  from {
    opacity: 0;
    transform: translate(24px, -24px) scale(.72);
  }
}

@keyframes nsc-rank-label-in {
  from {
    opacity: 0;
    transform: translateY(12px);
  }
}

@keyframes nsc-rank-figure-in {
  from {
    opacity: 0;
    transform: translateY(58%) scaleY(.72);
  }

  62% {
    opacity: 1;
    transform: translateY(-2%) scaleY(1.025);
  }
}

@keyframes nsc-rank-arrow-in {
  from {
    opacity: 0;
    transform: translate(-8px, 8px);
  }
}

@media (min-width: 992px) {
  .nsc-opening__intro {
    align-items: stretch;
    column-gap: clamp(28px, 2.5vw, 48px);
    display: grid;
    grid-template-columns: minmax(0, 1fr) clamp(18rem, 24vw, 24rem);
  }

  .nsc-opening__copy {
    align-self: center;
  }

  .nsc-opening__leaderboard {
    margin-top: 0;
  }

  .nsc-opening__leaderboard-link {
    height: 100%;
    min-height: 24rem;
    padding: clamp(24px, 2.4vw, 36px);
  }

  .nsc-opening__leaderboard-rank {
    font-size: clamp(6rem, 8.5vw, 8.5rem);
  }
}

.nsc-opening__links {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: 10px 14px;
  margin-top: 27px;
}

.nsc-opening__link {
  align-items: center;
  display: inline-flex;
  font-size: .85rem;
  font-weight: 800;
  gap: 14px;
  justify-content: space-between;
  line-height: 1.2;
  min-height: 46px;
  transition: background-color .18s ease, border-color .18s ease, color .18s ease, transform .18s ease;
}

.nsc-opening__link {
  border: 1px solid var(--nsc-line-strong);
  border-radius: var(--nsc-radius-sm);
  padding: 10px 15px;
}

.nsc-opening__link--primary {
  background: var(--nsc-primary);
  border-color: var(--nsc-primary);
  color: var(--nsc-on-dark);
}

.nsc-opening__link--primary:hover {
  background: var(--nsc-ink);
  border-color: var(--nsc-ink);
  color: var(--nsc-on-dark);
}

.nsc-opening__link--secondary {
  background: var(--nsc-paper);
  color: var(--nsc-text);
}

.nsc-opening__link--secondary:hover {
  border-color: var(--nsc-text);
}

.nsc-opening__link svg {
  flex: 0 0 auto;
}

.nsc-opening__listing {
  padding-top: clamp(44px, 5vw, 72px);
}

.nsc-opening__heading-row {
  align-items: end;
  display: flex;
  gap: 24px;
  justify-content: space-between;
}

.nsc-opening__index {
  color: var(--nsc-muted);
  font-size: .78rem;
  letter-spacing: .075em;
  margin-bottom: 12px;
  text-transform: uppercase;
}

.nsc-opening h2 {
  font-size: clamp(2rem, 3.7vw, 3.4rem);
  line-height: 1.08;
  margin: 0;
}

.nsc-opening__heading-aside {
  color: var(--nsc-muted);
  font-size: .9rem;
  padding-bottom: 5px;
  text-align: right;
}

.nsc-opening__notice {
  align-items: baseline;
  background: var(--nsc-paper);
  border: 1px solid var(--nsc-line);
  border-left: 4px solid var(--nsc-accent);
  border-radius: var(--nsc-radius-sm);
  display: flex;
  gap: 12px 22px;
  margin-top: 28px;
  padding: 15px 18px;
}

.nsc-opening__notice-label {
  color: var(--nsc-text);
  flex: 0 0 auto;
  /* The shared eyebrow rule adds a 24px bottom margin, which left a lopsided gap here. */
  margin-bottom: 0;
  font-size: .76rem;
  letter-spacing: .07em;
  text-transform: uppercase;
}

.nsc-opening__notice p {
  color: var(--nsc-muted);
  font-size: .87rem;
  line-height: 1.55;
}

.nsc-opening__thanks {
  color: var(--nsc-muted);
  font-size: .8125rem;
  margin-top: 26px;
}

.nsc-opening__filters {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 26px;
}

.nsc-opening__filter {
  background: transparent;
  border: 1px solid var(--nsc-line-strong);
  border-radius: 999px;
  color: var(--nsc-text);
  font-family: "IBM Plex Mono", monospace;
  font-size: .76rem;
  line-height: 1.35;
  min-height: 38px;
  padding: 8px 13px;
  transition: background-color .18s ease, border-color .18s ease, color .18s ease;
}

.nsc-opening__filter:hover {
  background: var(--nsc-paper);
  border-color: var(--nsc-text);
}

.nsc-opening__filter--active,
.nsc-opening__filter--active:hover {
  background: var(--nsc-accent);
  border-color: var(--nsc-accent);
  color: var(--nsc-ink);
}

.nsc-opening__filter-status {
  /* the highlighted chip already shows the active filter; this stays as the
     live region that announces the change to screen readers */
  clip: rect(0 0 0 0);
  clip-path: inset(50%);
  height: 1px;
  margin: -1px;
  overflow: hidden;
  position: absolute;
  white-space: nowrap;
  width: 1px;
}

.nsc-opening__grid {
  display: grid;
  gap: 20px;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  margin-top: 28px;
}

.nsc-opening__card {
  background: var(--nsc-paper);
  border: 1px solid var(--nsc-line);
  border-radius: var(--nsc-radius-md);
  display: flex;
  flex-direction: column;
  min-width: 0;
  padding: clamp(20px, 2.2vw, 28px);
  transition: border-color .18s ease, transform .18s ease;
}

.nsc-opening__card:hover {
  border-color: var(--nsc-line-strong);
  transform: translateY(-2px);
}

.nsc-opening__card[hidden] {
  display: none;
}

.nsc-opening__card-top {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: 8px 12px;
  justify-content: space-between;
  margin-bottom: 24px;
}

.nsc-opening__severity {
  align-items: center;
  background: var(--nsc-sev-none-ground);
  border: 0;
  border-radius: var(--nsc-radius-sm);
  color: var(--nsc-sev-none-ink);
  display: inline-flex;
  font-family: "IBM Plex Mono", monospace;
  font-size: var(--nsc-fs-micro-lg);
  font-weight: 800;
  letter-spacing: .015em;
  line-height: 1.2;
  padding: 8px 12px;
  white-space: nowrap;
}

.nsc-opening__severity[data-severity="critical"] {
  background: var(--nsc-sev-critical-ground);
  color: var(--nsc-sev-critical-ink);
}

.nsc-opening__severity[data-severity="high"] {
  background: var(--nsc-sev-high-ground);
  color: var(--nsc-sev-high-ink);
}

.nsc-opening__severity[data-severity="medium"] {
  background: var(--nsc-sev-medium-ground);
  color: var(--nsc-sev-medium-ink);
}

.nsc-opening__severity[data-severity="low"] {
  background: var(--nsc-sev-low-ground);
  color: var(--nsc-sev-low-ink);
}

.nsc-opening__severity[data-severity="none"],
.nsc-opening__severity[data-severity="unscored"] {
  background: var(--nsc-sev-none-ground);
  color: var(--nsc-sev-none-ink);
}

/* Scored severity reaches across the card; none and unscored keep the quiet neutral border. */
.nsc-opening__card:has(.nsc-opening__severity[data-severity="critical"]) {
  border-top: 8px solid var(--nsc-sev-critical-ground);
}

.nsc-opening__card:has(.nsc-opening__severity[data-severity="high"]) {
  border-top: 8px solid var(--nsc-sev-high-ground);
}

.nsc-opening__card:has(.nsc-opening__severity[data-severity="medium"]) {
  border-top: 8px solid var(--nsc-sev-medium-ground);
}

.nsc-opening__card:has(.nsc-opening__severity[data-severity="low"]) {
  border-top: 8px solid var(--nsc-sev-low-ground);
}

.nsc-opening__date {
  color: var(--nsc-muted);
  font-size: var(--nsc-fs-micro);
  white-space: nowrap;
}

.nsc-opening__card h3 {
  font-size: clamp(1.25rem, 1.7vw, 1.55rem);
  line-height: 1.2;
  margin: 0 0 10px;
}

.nsc-opening__tags {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: 6px 12px;
  margin-bottom: 16px;
}

.nsc-opening__tag {
  color: var(--nsc-muted);
  font-family: "IBM Plex Mono", monospace;
  font-size: var(--nsc-fs-micro);
  line-height: 1.3;
  padding: 5px 0;
}

.nsc-opening__tag--class {
  background: var(--nsc-bg);
  border: 1px solid var(--nsc-line-strong);
  border-radius: var(--nsc-radius-sm);
  color: var(--nsc-text);
  padding: 5px 8px;
}

.nsc-opening__summary {
  color: var(--nsc-muted);
  font-size: .9rem;
  line-height: 1.65;
  margin: 0 0 24px;
}

.nsc-opening__card-foot {
  align-items: baseline;
  border-top: 1px solid var(--nsc-line);
  display: flex;
  flex-wrap: wrap;
  gap: 8px 14px;
  justify-content: space-between;
  margin-top: auto;
  padding-top: 16px;
}

.nsc-opening__record-id {
  color: var(--nsc-text);
  font-size: .76rem;
  font-weight: 600;
  letter-spacing: .02em;
  overflow-wrap: anywhere;
}

.nsc-opening__record-links {
  display: flex;
  flex-wrap: wrap;
  gap: 6px 14px;
}

.nsc-opening__record-link {
  align-items: center;
  color: var(--nsc-muted);
  display: inline-flex;
  font-family: "IBM Plex Mono", monospace;
  font-size: var(--nsc-fs-micro);
  gap: 7px;
  text-transform: uppercase;
  transition: color .18s ease;
}

.nsc-opening__record-link:hover {
  color: var(--nsc-text);
}

.nsc-opening__record-link svg {
  flex: 0 0 auto;
}

.nsc-opening a:focus-visible,
.nsc-opening button:focus-visible {
  outline: 3px solid var(--nsc-text);
  outline-offset: 3px;
}

@media (max-width: 991.98px) {
  .nsc-opening__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 699.98px) {
  .nsc-opening__grid {
    grid-template-columns: minmax(0, 1fr);
  }

  .nsc-opening__heading-row,
  .nsc-opening__notice {
    align-items: flex-start;
    flex-direction: column;
  }

  .nsc-opening__heading-aside {
    max-width: none;
    text-align: left;
  }
}

@media (max-width: 399.98px) {
  .nsc-opening__eyebrow {
    font-size: var(--nsc-fs-micro);
    letter-spacing: .045em;
  }

  .nsc-opening__link {
    width: 100%;
  }
}

@media (prefers-reduced-motion: reduce) {
  .nsc-opening__leaderboard-link,
  .nsc-opening__leaderboard-link::before,
  .nsc-opening__leaderboard-link::after,
  .nsc-opening__leaderboard-scope,
  .nsc-opening__leaderboard-rank,
  .nsc-opening__leaderboard-label,
  .nsc-opening__leaderboard-label svg {
    animation: none;
  }

  .nsc-opening__leaderboard-link,
  .nsc-opening__leaderboard-rank,
  .nsc-opening__leaderboard-label svg,
  .nsc-opening__link,
  .nsc-opening__filter,
  .nsc-opening__card {
    transition: none;
  }

  .nsc-opening__leaderboard-link:hover,
  .nsc-opening__leaderboard-link:hover .nsc-opening__leaderboard-rank,
  .nsc-opening__leaderboard-link:hover .nsc-opening__leaderboard-label svg,
  .nsc-opening__card:hover {
    transform: none;
  }
}

@media (max-width: 991.98px) {
  .nsc-opening__filter {
    min-height: 44px;
  }
}

/* Legal copy has no markup-specific classes, so replacement text inherits one rhythm. */
.nsc-legal,
.nsc-not-found {
  padding-top: 104px;
  padding-bottom: 104px;
}

.nsc-legal {
  font-size: 1rem;
  line-height: 1.75;
}

.nsc-legal h1,
.nsc-not-found h1 {
  font-size: clamp(2.65rem, 5.65vw, 5.125rem);
  line-height: 1.06;
  margin-bottom: 24px;
}

.nsc-legal h2 {
  font-size: clamp(1.75rem, 3vw, 2.5rem);
  line-height: 1.15;
  margin: 48px 0 18px;
}

.nsc-legal p {
  margin: 0 0 20px;
}

.nsc-legal h1 + p {
  color: var(--nsc-muted);
  font-family: "IBM Plex Mono", monospace;
  font-size: .8125rem;
}

.nsc-legal a,
.nsc-not-found a {
  color: var(--nsc-text);
  text-decoration: underline;
  text-decoration-color: currentColor;
  text-underline-offset: .16em;
}

.nsc-legal a:hover,
.nsc-not-found a:hover {
  color: var(--nsc-muted);
}

.nsc-not-found p {
  margin: 0 0 24px;
}

.nsc-copyright [aria-current="page"] {
  text-decoration: underline;
  text-underline-offset: .18em;
}

@media (max-width: 991.98px) {
  .nsc-legal,
  .nsc-not-found {
    padding-top: 80px;
    padding-bottom: 80px;
  }
}

@media (max-width: 767.98px) {
  .nsc-legal,
  .nsc-not-found {
    padding-top: 64px;
    padding-bottom: 64px;
  }
}
