:root {
  --spectral-base: #12151b;
  --spectral-surface: #171b23;
  --spectral-ink: #ecebe6;
  --spectral-muted: #9aa0a6;
  --spectral-subtle: #5f656d;
  --spectral-sodium: #d8a24a;
  --spectral-cyan: #4fa99b;
  --spectral-rose: #b06a84;
  --spectral-line: rgba(232, 236, 240, .09);

  /* Compatibility aliases: force every historical page onto one palette. */
  --base: #12151b !important;
  --base-2: #171b23 !important;
  --base-3: #1e232d !important;
  --bg-deep: #12151b !important;
  --bg-surface: #171b23 !important;
  --bg-elevated: #1e232d !important;
  --ink: #ecebe6 !important;
  --ink-mut: #9aa0a6 !important;
  --ink-sub: #5f656d !important;
  --text-primary: #ecebe6 !important;
  --text-muted: #9aa0a6 !important;
  --text-subtle: #5f656d !important;
  --cyan: #4fa99b !important;
  --sodium: #d8a24a !important;
  --rose: #b06a84 !important;
  --accent-flow: #4fa99b !important;
  --accent-pulse: #d8a24a !important;
  --accent-tension: #b06a84 !important;
  --accent-emergence: #4fa99b !important;
  --accent-vivant: #4fa99b !important;
  --accent-cadre: #4fa99b !important;
  --accent-psyche: #b06a84 !important;
  --accent-climate: #4fa99b !important;
  --accent-control: #d8a24a !important;
  --accent-system: #4fa99b !important;
  --accent-demo: #d8a24a !important;
  --accent-matiere: #9aa0a6 !important;
  --accent-book: #b06a84 !important;
  --accent-threshold: #d8a24a !important;
  --accent-transitions: #4fa99b !important;
  --accent-coherence: #4fa99b !important;
  --accent-observation: #4fa99b !important;
  --accent-regulation: #d8a24a !important;
  --accent-pression: #b06a84 !important;
  --accent-palm: #4fa99b !important;
  --accent-article: #4fa99b !important;
  --glow: #4fa99b !important;
  --glow-soft: rgba(79,169,155,.32) !important;
  --glow-faint: rgba(79,169,155,.10) !important;
  --border: rgba(232,236,240,.09) !important;
  --border-live: rgba(79,169,155,.28) !important;
  --life-accent: #4fa99b !important;
}

html { scroll-padding-top: 6rem; }
body { background: var(--spectral-base); color: var(--spectral-ink); }
body > .bar,
body > .o-bar,
body > .mobile-menu,
body > .mobile-toggle { display: none !important; }

.spectral-shell-field {
  position: fixed;
  inset: 0;
  z-index: -20;
  pointer-events: none;
  background:
    radial-gradient(ellipse at 48% -12%, rgba(79,169,155,.08), transparent 54%),
    radial-gradient(ellipse at 96% 105%, rgba(216,162,74,.05), transparent 46%),
    var(--spectral-base);
}
.spectral-shell-field::after {
  content: "";
  position: absolute;
  inset: 0;
  opacity: .38;
  background-image: linear-gradient(rgba(232,236,240,.025) 1px, transparent 1px);
  background-size: 100% 3px;
}
.spectral-shell-field::before {
  content: "";
  position: absolute;
  inset: -20%;
  opacity: .7;
  background:
    radial-gradient(circle at 18% 78%, rgba(79,169,155,.08), transparent 28%),
    radial-gradient(circle at 83% 18%, rgba(216,162,74,.05), transparent 24%),
    radial-gradient(circle at 62% 64%, rgba(176,106,132,.035), transparent 22%);
  display: none;
}
@keyframes spectral-breathe {
  from { transform: translate3d(-1.5%,1%,0) scale(1); opacity: .45; }
  to { transform: translate3d(1.5%,-1%,0) scale(1.04); opacity: .8; }
}

html.spectral-motion .spectral-reveal {
  opacity: 0;
  transform: translateY(24px);
  transition: opacity .75s cubic-bezier(.2,.7,.2,1), transform .75s cubic-bezier(.2,.7,.2,1);
}
html.spectral-motion .spectral-reveal.is-visible { opacity: 1; transform: translateY(0); }
html.spectral-motion .spectral-reveal:nth-child(2n) { transition-delay: .06s; }
html.spectral-motion .spectral-reveal:nth-child(3n) { transition-delay: .12s; }
body > .living-bg,
body > .cyber-bg { display: none !important; }

/* Editorial icon sizing: inline SVGs must never inherit the content width. */
.contact-row > svg {
  width: 20px !important;
  height: 20px !important;
  min-width: 20px;
  flex: 0 0 20px;
}
.links-grid {
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1px !important;
  background: var(--spectral-line);
  border: 1px solid var(--spectral-line);
}
.link-card {
  min-width: 0;
  display: grid !important;
  grid-template-columns: 32px minmax(0, 1fr);
  align-items: center;
  gap: 1rem !important;
  padding: 1.2rem 1.35rem !important;
  background: var(--spectral-surface) !important;
  border: 0 !important;
}
.link-card > svg {
  display: block;
  width: 28px !important;
  height: 28px !important;
  max-width: 28px !important;
  max-height: 28px !important;
}
.link-card-content { min-width: 0; }
.link-card-title,
.link-card-desc { overflow-wrap: anywhere; }
.book-link {
  display: inline-flex !important;
  align-items: center;
  gap: .65rem;
}
.book-link > svg {
  display: block;
  width: 16px !important;
  height: 16px !important;
  min-width: 16px;
  max-width: 16px !important;
  max-height: 16px !important;
}
.book-meta svg {
  width: 14px !important;
  height: 14px !important;
  min-width: 14px;
}

/* Professional data tables used by long-form framework pages. */
.mapping-table {
  display: table !important;
  width: 100% !important;
  max-width: 100% !important;
  margin: 1.5rem 0 2.5rem !important;
  border-collapse: collapse !important;
  table-layout: auto !important;
  background: var(--spectral-surface) !important;
  border: 1px solid var(--spectral-line) !important;
  font-size: .96rem !important;
}
.mapping-table th,
.mapping-table td {
  padding: .9rem 1rem !important;
  border: 0 !important;
  border-bottom: 1px solid var(--spectral-line) !important;
  text-align: left !important;
  vertical-align: top !important;
  line-height: 1.55 !important;
  overflow-wrap: anywhere;
}
.mapping-table th {
  color: var(--spectral-cyan) !important;
  background: #141820 !important;
  font: 500 .68rem/1.4 'IBM Plex Mono', monospace !important;
  letter-spacing: .06em !important;
  text-transform: uppercase;
}
.mapping-table td { color: var(--spectral-muted) !important; }
.mapping-table td:first-child { color: var(--spectral-ink) !important; font-weight: 500; }
.mapping-table tr:last-child td { border-bottom: 0 !important; }
.spectral-wide-tables .content { grid-template-columns: 150px minmax(0,1fr) !important; }
.spectral-wide-tables .prose { max-width: none !important; min-width: 0; }
.spectral-wide-tables .prose > p,
.spectral-wide-tables .prose > h2,
.spectral-wide-tables .prose > h3,
.spectral-wide-tables .prose > ul,
.spectral-wide-tables .prose > ol,
.spectral-wide-tables .prose > .definition-box,
.spectral-wide-tables .prose > .formula-box { max-width: 68ch; }
@media(max-width:720px){
  .mapping-table { display: block !important; overflow-x: auto !important; white-space: normal; }
  .mapping-table th,.mapping-table td { min-width: 150px; }
  .spectral-wide-tables .content { grid-template-columns: 1fr !important; }
}

.spectral-shell {
  position: fixed;
  inset: 0 0 auto;
  z-index: 10000;
  min-height: 64px;
  display: flex;
  align-items: center;
  gap: 1.5rem;
  padding: .85rem 2rem;
  border-bottom: 1px solid var(--spectral-line);
  background: rgba(18,21,27,.88);
  -webkit-backdrop-filter: blur(16px);
  backdrop-filter: blur(16px);
  font-family: 'IBM Plex Mono', monospace;
}
.spectral-shell__brand {
  flex: none;
  display: inline-flex;
  align-items: center;
  gap: .58rem;
  color: var(--spectral-ink) !important;
  text-decoration: none !important;
  border: 0 !important;
  font-family: 'Instrument Serif', Georgia, serif;
  font-size: 1.55rem;
  line-height: 1;
}
.spectral-shell__tick {
  width: 9px;
  height: 9px;
  border-radius: 50%;
  background: var(--spectral-sodium);
  box-shadow: 0 0 10px rgba(216,162,74,.8);
}
.spectral-shell__nav {
  margin-left: auto;
  display: flex;
  align-items: center;
  gap: clamp(.72rem, 1.3vw, 1.42rem);
}
.spectral-shell__nav a {
  color: var(--spectral-muted) !important;
  text-decoration: none !important;
  border: 0 !important;
  font-size: .69rem;
  line-height: 1;
  letter-spacing: .055em;
  text-transform: uppercase;
  white-space: nowrap;
  transition: color .2s ease;
}
.spectral-shell__nav a:hover,
.spectral-shell__nav a:focus-visible,
.spectral-shell__nav a[aria-current="page"] { color: var(--spectral-ink) !important; }
.spectral-shell__nav a[data-accent="lab"] { color: var(--spectral-sodium) !important; }
.spectral-shell__language {
  padding-left: .85rem;
  border-left: 1px solid var(--spectral-line) !important;
  color: var(--spectral-cyan) !important;
}
.spectral-shell__toggle {
  display: none;
  width: 42px;
  height: 42px;
  margin-left: auto;
  border: 1px solid var(--spectral-line);
  background: transparent;
  color: var(--spectral-ink);
  cursor: pointer;
}
.spectral-shell__toggle span,
.spectral-shell__toggle::before,
.spectral-shell__toggle::after {
  content: "";
  display: block;
  width: 18px;
  height: 1px;
  margin: 5px auto;
  background: currentColor;
  transition: transform .2s ease, opacity .2s ease;
}
.spectral-shell.is-open .spectral-shell__toggle span { opacity: 0; }
.spectral-shell.is-open .spectral-shell__toggle::before { transform: translateY(6px) rotate(45deg); }
.spectral-shell.is-open .spectral-shell__toggle::after { transform: translateY(-6px) rotate(-45deg); }

/* Replace the two remaining legacy landing treatments with the spectral register. */
.page-hero {
  max-width: 1120px !important;
  padding: 9rem 2.2rem 3rem !important;
  text-align: left !important;
}
.page-hero .marker { color: var(--spectral-cyan) !important; letter-spacing: .24em !important; }
.page-hero h1 { font-family: 'Instrument Serif', Georgia, serif !important; letter-spacing: -.01em !important; }
.page-hero p { margin-left: 0 !important; color: var(--spectral-muted) !important; }
.cyber-light-source, .cyber-grid-floor { opacity: .25; }

/* Identity and motion must remain consistent on every section. */
.hero-subtitle a[href*="contact"],
.lead a[href*="contact"] {
  color: var(--spectral-ink) !important;
  border-color: rgba(236,235,230,.35) !important;
}
body > canvas[aria-hidden="true"] {
  display: none !important;
}
.spectral-shell-field { display: none !important; }
body.spectral-articles-page,
body.spectral-framework-page { background: #12151b !important; }
body.spectral-articles-page *,
body.spectral-articles-page *::before,
body.spectral-articles-page *::after,
body.spectral-framework-page *,
body.spectral-framework-page *::before,
body.spectral-framework-page *::after { animation: none !important; }
body.spectral-articles-page .spectral-reveal,
body.spectral-framework-page .spectral-reveal { opacity: 1 !important; transform: none !important; transition: none !important; }

@media (max-width: 1080px) {
  .spectral-shell { padding: .72rem 1.2rem; }
  .spectral-shell__toggle { display: block; }
  .spectral-shell__nav {
    position: absolute;
    top: 100%;
    left: 0;
    right: 0;
    display: none;
    max-height: calc(100vh - 64px);
    overflow-y: auto;
    padding: 1.2rem;
    background: rgba(18,21,27,.98);
    border-bottom: 1px solid var(--spectral-line);
  }
  .spectral-shell.is-open .spectral-shell__nav { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); }
  .spectral-shell__nav a { padding: .7rem .35rem; }
  .spectral-shell__language { border-left: 0 !important; padding-left: .35rem; color: var(--spectral-cyan) !important; }
}

@media (max-width: 560px) {
  .spectral-shell.is-open .spectral-shell__nav { grid-template-columns: 1fr; }
  .page-hero { padding: 7.5rem 1.3rem 2rem !important; }
  .links-grid { grid-template-columns: 1fr; }
}

@media (prefers-reduced-motion: reduce) {
  .spectral-shell *, .spectral-shell *::before, .spectral-shell *::after { transition: none !important; }
  .spectral-shell-field::before { animation: none !important; }
  html.spectral-motion .spectral-reveal { opacity: 1 !important; transform: none !important; transition: none !important; }
}
