:root {
  --nr-bg: #07111f;
  --nr-bg-deep: #040a12;
  --nr-panel: rgba(14, 30, 48, .88);
  --nr-panel-soft: rgba(16, 35, 55, .72);
  --nr-text: #f4f8fb;
  --nr-muted: #b9c7d1;
  --nr-teal: #5ed6c0;
  --nr-blue: #7fd1ff;
  --nr-line: rgba(185, 199, 209, .18);
  --nr-shadow: 0 18px 48px rgba(0, 0, 0, .34);
  --nr-radius: 18px;
  --nr-sans: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Arial, sans-serif;
}

html { scroll-behavior: smooth; }
body.nr-library-page {
  display: block !important;
  min-height: 100%;
  margin: 0 !important;
  padding: 0 !important;
  background:
    radial-gradient(1000px 620px at 12% -10%, rgba(94, 214, 192, .15), transparent 58%),
    radial-gradient(900px 620px at 95% 5%, rgba(127, 209, 255, .12), transparent 55%),
    var(--nr-bg) !important;
}

.nr-site-header,
.nr-publication-strip,
.nr-publishing-card,
.nr-site-footer,
.nr-print-masthead {
  box-sizing: border-box;
  font-family: var(--nr-sans);
}

.nr-site-header {
  width: min(1080px, calc(100% - 32px));
  margin: 20px auto 0;
  padding: 14px 16px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  border: 1px solid var(--nr-line);
  border-radius: var(--nr-radius);
  background: rgba(7, 17, 31, .86);
  box-shadow: var(--nr-shadow);
  backdrop-filter: blur(12px);
  color: var(--nr-text);
}
.nr-brand {
  display: flex;
  align-items: center;
  gap: 12px;
  color: var(--nr-text) !important;
  text-decoration: none !important;
}
.nr-mark {
  width: 42px;
  height: 42px;
  display: grid;
  place-items: center;
  border-radius: 12px;
  color: #06111c;
  font-weight: 900;
  letter-spacing: -.04em;
  background: linear-gradient(135deg, var(--nr-teal), var(--nr-blue));
  box-shadow: 0 10px 24px rgba(94, 214, 192, .2);
}
.nr-brand-copy strong {
  display: block;
  white-space: nowrap;
  font-size: 17px;
  line-height: 1.1;
  letter-spacing: .01em;
}
.nr-brand-copy span {
  display: block;
  margin-top: 3px;
  color: var(--nr-muted);
  font-size: 12px;
  letter-spacing: .1em;
  text-transform: uppercase;
}
.nr-nav { display: flex; flex-wrap: wrap; gap: 8px; justify-content: flex-end; }
.nr-nav a,
.nr-actions a,
.nr-actions button {
  appearance: none;
  border: 1px solid var(--nr-line);
  border-radius: 999px;
  padding: 8px 12px;
  background: rgba(255, 255, 255, .035);
  color: var(--nr-text) !important;
  font: 700 12px/1 var(--nr-sans);
  text-decoration: none !important;
  cursor: pointer;
}
.nr-nav a:hover,
.nr-actions a:hover,
.nr-actions button:hover {
  border-color: rgba(94, 214, 192, .62);
  background: rgba(94, 214, 192, .1);
}
.nr-publication-strip {
  width: min(1080px, calc(100% - 32px));
  margin: 12px auto 0;
  padding: 12px 16px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  flex-wrap: wrap;
  border: 1px solid var(--nr-line);
  border-radius: 14px;
  background: var(--nr-panel-soft);
  color: var(--nr-muted);
}
.nr-publication-strip strong { color: var(--nr-text); }
.nr-publication-meta { font-size: 13px; }
.nr-publication-meta strong + span::before,
.nr-publication-meta span + span::before { content: " / "; color: rgba(185,199,209,.55); }
.nr-actions { display: flex; gap: 8px; flex-wrap: wrap; }
.nr-print-masthead { display: none; }

/* Keep legacy paper layouts centered beneath the North Rivet shell. */
body.nr-library-page > .page,
body.nr-library-page > .wrap,
body.nr-library-page > main.page {
  position: relative;
  z-index: 1;
}

.nr-publishing-card {
  width: min(980px, calc(100% - 36px));
  margin: 22px auto 0;
  padding: 20px;
  border: 1px solid var(--nr-line);
  border-radius: var(--nr-radius);
  background: linear-gradient(180deg, rgba(16,35,55,.86), rgba(10,24,40,.86));
  box-shadow: var(--nr-shadow);
  color: var(--nr-muted);
}
.nr-publishing-card h2 {
  margin: 0 0 8px !important;
  padding: 0 !important;
  border: 0 !important;
  color: var(--nr-text) !important;
  font: 800 18px/1.25 var(--nr-sans) !important;
}
.nr-publishing-card p {
  margin: 7px 0 !important;
  color: var(--nr-muted) !important;
  font: 14px/1.55 var(--nr-sans) !important;
}
.nr-publishing-card strong { color: var(--nr-text); }
.nr-publishing-card a { color: var(--nr-blue) !important; }
.nr-site-footer {
  width: min(1080px, calc(100% - 32px));
  margin: 16px auto 0;
  padding: 22px 4px 34px;
  display: flex;
  justify-content: space-between;
  gap: 16px;
  flex-wrap: wrap;
  color: var(--nr-muted);
  font-size: 12px;
}
.nr-site-footer a { color: var(--nr-blue) !important; text-decoration: none; }
.nr-site-footer strong { color: var(--nr-text); }

/* Mobile containment for legacy content. */
body.nr-library-page pre,
body.nr-library-page table,
body.nr-library-page .table-wrap { max-width: 100%; }
body.nr-library-page pre { overflow-x: auto; white-space: pre; }
body.nr-library-page img, body.nr-library-page svg { max-width: 100%; height: auto; }
@media (max-width: 700px) {
  .nr-site-header { align-items: flex-start; }
  .nr-nav { justify-content: flex-start; }
  .nr-site-header, .nr-publication-strip { width: min(100% - 20px, 1080px); }
  .nr-brand-copy span { letter-spacing: .06em; }
  body.nr-library-page > .page,
  body.nr-library-page > .wrap,
  body.nr-library-page > main.page { margin-top: 14px !important; }
}

@page { size: letter; margin: .55in; }
@media print {
  html, body.nr-library-page {
    margin: 0 !important;
    padding: 0 !important;
    background: #fff !important;
  }
  body.nr-library-page {
    --bg: #fff; --panel: #fff; --panel2: #fff; --paper: #fff;
    --ink: #111827; --text: #111827; --muted: #374151; --muted2: #4b5563;
    --line: #aeb6bf; --line2: #9ca3af; --accent: #111827; --accent2: #111827;
    --brand: #111827; --brand2: #111827; --codebg: #f3f4f6;
    color: #111827 !important;
  }
  .nr-site-header,
  .nr-publication-strip,
  .nr-publishing-card,
  .nr-site-footer { display: none !important; }
  .nr-print-masthead {
    display: block !important;
    margin: 0 0 .18in;
    padding: 0 0 .10in;
    border-bottom: 1px solid #7b8791;
    color: #111827;
    font-size: 9pt;
    line-height: 1.35;
  }
  .nr-print-masthead strong { font-size: 11pt; }
  body.nr-library-page > .page,
  body.nr-library-page > .wrap,
  body.nr-library-page > main.page {
    margin: 0 auto !important;
    box-shadow: none !important;
    border-radius: 0 !important;
  }
  body.nr-library-page > .page,
  body.nr-library-page > .wrap,
  body.nr-library-page > main.page,
  body.nr-library-page > .page *,
  body.nr-library-page > .wrap *,
  body.nr-library-page > main.page * {
    color: #111827 !important;
    text-shadow: none !important;
  }
  body.nr-library-page > .page header,
  body.nr-library-page > .page nav,
  body.nr-library-page > .page section,
  body.nr-library-page > .page footer,
  body.nr-library-page > .page .card,
  body.nr-library-page > .page .box,
  body.nr-library-page > .page .callout,
  body.nr-library-page > .page .panel,
  body.nr-library-page > .page .header,
  body.nr-library-page > .page .hero,
  body.nr-library-page > .wrap header,
  body.nr-library-page > .wrap nav,
  body.nr-library-page > .wrap section,
  body.nr-library-page > .wrap footer,
  body.nr-library-page > .wrap .card,
  body.nr-library-page > .wrap .box,
  body.nr-library-page > .wrap .callout,
  body.nr-library-page > .wrap .panel,
  body.nr-library-page > .wrap .header,
  body.nr-library-page > .wrap .hero {
    background: #fff !important;
    border-color: #aeb6bf !important;
    box-shadow: none !important;
  }
  body.nr-library-page pre,
  body.nr-library-page code,
  body.nr-library-page .code {
    background: #f3f4f6 !important;
    color: #111827 !important;
    border-color: #c7cdd3 !important;
  }
  pre, code { white-space: pre-wrap !important; overflow-wrap: anywhere; }
  a[href^="http"]::after { content: none !important; }
}
