@font-face {
  font-family: "Hanken";
  src: url("/fonts/HankenGrotesk.woff2") format("woff2");
  font-display: swap;
}

/* MW50 water-equivalent flow sensitivity / native semantic table */
.flow-sensitivity-table {
  width: min(100%, 90rem);
  margin: clamp(2.5rem, 5vw, 4.5rem) auto 0;
  color: var(--white);
  border: 1px solid #36574e;
  border-collapse: collapse;
  table-layout: fixed;
  background: var(--green-black);
}

.flow-sensitivity-table caption {
  padding: 1rem 1.25rem;
  color: #a9beb4;
  border: 1px solid #36574e;
  border-bottom: 0;
  background: #0a2a25;
  text-align: left;
  caption-side: top;
  font: 500 0.68rem/1.65 var(--mono);
}

.flow-sensitivity-table th,
.flow-sensitivity-table td {
  padding: 1.2rem 1rem;
  border-right: 1px solid #36574e;
  border-bottom: 1px solid #36574e;
  text-align: left;
  vertical-align: top;
}

.flow-sensitivity-table tr > :last-child { border-right: 0; }
.flow-sensitivity-table tbody tr:last-child > * { border-bottom: 0; }

.flow-sensitivity-table thead th {
  color: var(--gold);
  background: #102f29;
  font: 700 0.62rem/1.4 var(--mono);
  letter-spacing: 0.055em;
  text-transform: uppercase;
}

.flow-sensitivity-table tbody th {
  color: var(--gold-light);
  font: 650 1rem/1.25 var(--display);
}

.flow-sensitivity-table tbody td {
  color: #d1ddd7;
  font: 550 0.82rem/1.45 var(--mono);
}

.flow-sensitivity-table tbody tr:nth-child(even) { background: #0b302a; }

.flow-scenario-status {
  color: var(--gold-light);
  font: 700 0.68rem/1.4 var(--mono);
  letter-spacing: 0.025em;
  text-transform: uppercase;
}

.flow-mobile-label { display: none; }

@media (max-width: 52rem) {
  .flow-sensitivity-table {
    width: calc(100% + 1rem);
    display: block;
    margin-right: -0.5rem;
    margin-left: -0.5rem;
    border: 0;
    background: transparent;
  }

  .flow-sensitivity-table caption {
    display: block;
    padding: 0.9rem;
    border-bottom: 1px solid #36574e;
    font-size: 0.62rem;
  }

  .flow-sensitivity-table thead {
    position: absolute;
    width: 1px;
    height: 1px;
    margin: -1px;
    padding: 0;
    overflow: hidden;
    clip: rect(0 0 0 0);
    clip-path: inset(50%);
    white-space: nowrap;
    border: 0;
  }

  .flow-sensitivity-table tbody {
    display: grid;
    gap: 0.75rem;
    margin-top: 0.75rem;
  }

  .flow-sensitivity-table tbody tr {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    border: 1px solid #36574e;
    background: #092b25;
  }

  .flow-sensitivity-table tbody tr:nth-child(even) { background: #0b302a; }

  .flow-sensitivity-table tbody th,
  .flow-sensitivity-table tbody td {
    min-width: 0;
    display: block;
    padding: 0.8rem 0.9rem;
    border: 0;
  }

  .flow-sensitivity-table tbody th {
    grid-column: 1 / -1;
    border-bottom: 1px solid #36574e;
  }

  .flow-sensitivity-table tbody td:nth-of-type(2) { border-left: 1px solid #36574e; }

  .flow-sensitivity-table tbody td:last-child {
    grid-column: 1 / -1;
    border-top: 1px solid #36574e;
  }

  .flow-mobile-label {
    display: block;
    margin-bottom: 0.35rem;
    color: #8fa69b;
    font: 700 0.58rem/1.35 var(--mono);
    letter-spacing: 0.055em;
    text-transform: uppercase;
  }
}

@media print {
  .flow-sensitivity-table {
    width: 100%;
    display: table;
    margin: 1rem 0 0;
    color: #000;
    border-color: #000;
    border-collapse: collapse;
    background: #fff;
  }

  .flow-sensitivity-table caption {
    display: table-caption;
    color: #000;
    border-color: #000;
    background: #fff;
  }

  .flow-sensitivity-table thead {
    position: static;
    width: auto;
    height: auto;
    display: table-header-group;
    margin: 0;
    overflow: visible;
    clip: auto;
    clip-path: none;
    white-space: normal;
  }

  .flow-sensitivity-table tbody { display: table-row-group; }
  .flow-sensitivity-table tr { display: table-row; }
  .flow-sensitivity-table th,
  .flow-sensitivity-table td { display: table-cell; color: #000; border-color: #000; background: #fff; }
  .flow-mobile-label { display: none; }
}

@media (forced-colors: active) {
  .flow-sensitivity-table,
  .flow-sensitivity-table caption,
  .flow-sensitivity-table thead th,
  .flow-sensitivity-table tbody tr,
  .flow-sensitivity-table tbody th,
  .flow-sensitivity-table tbody td {
    color: CanvasText;
    border-color: CanvasText;
    background: Canvas;
  }

  .flow-sensitivity-table .flow-mobile-label,
  .flow-sensitivity-table .flow-scenario-status { color: CanvasText; }
}

@font-face {
  font-family: "Jet Mono";
  src: url("/fonts/JetBrainsMono.woff2") format("woff2");
  font-display: swap;
}

@font-face {
  font-family: "Space";
  src: url("/fonts/SpaceGrotesk.woff2") format("woff2");
  font-display: swap;
}

:root {
  --green: #092f2a;
  --green-2: #0e3d36;
  --green-3: #164a40;
  --green-black: #071f1c;
  --ink: #0e3d36;
  --paper: #ffffff;
  --paper-2: #f2f6f3;
  --white: #f7faf8;
  --gold: #d4af37;
  --gold-light: #e3c65d;
  --gold-deep: #7e631a;
  --live: #57d8a7;
  --muted: #a9beb4;
  --muted-dark: #586e64;
  --line: rgba(230, 239, 233, 0.18);
  --line-strong: rgba(230, 239, 233, 0.31);
  --line-dark: #dce6e0;
  --mono: "Jet Mono", ui-monospace, "Cascadia Code", monospace;
  --sans: "Hanken", "Helvetica Neue", Arial, sans-serif;
  --display: "Space", "Hanken", "Helvetica Neue", Arial, sans-serif;
  --page-x: max(1.5rem, calc((100vw - 96rem) / 2 + 3.25rem));
}

* { box-sizing: border-box; }

html {
  scroll-behavior: smooth;
  overflow-x: clip;
  background: var(--green);
}

body {
  margin: 0;
  overflow-x: hidden;
  color: var(--white);
  background: var(--green);
  font-family: var(--sans);
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

::selection { color: #06251f; background: var(--gold-light); }
a { color: inherit; text-decoration: none; }
a:focus-visible { outline: 2px solid var(--gold); outline-offset: 5px; }

.skip-link {
  position: fixed;
  z-index: 100;
  top: 0.75rem;
  left: 0.75rem;
  padding: 0.75rem 1rem;
  color: #06251f;
  background: var(--gold);
  font: 700 0.7rem/1 var(--mono);
  transform: translateY(-180%);
}

.skip-link:focus { transform: none; }

.site-header {
  min-height: 5rem;
  padding: 0 3.25rem;
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  color: var(--ink);
  border-bottom: 1px solid var(--line-dark);
  background: rgba(242, 246, 243, 0.98);
}

.wordmark { display: flex; align-items: baseline; gap: 0.85rem; }
.wordmark strong { font: 600 1.35rem/1 var(--display); letter-spacing: -0.05em; }

.wordmark span,
.site-header nav,
.header-cta {
  font: 600 0.65rem/1 var(--mono);
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

.wordmark span { color: var(--muted-dark); }
.site-header nav { display: flex; gap: 2.1rem; color: #52685d; }
.site-header nav a:hover,
.header-cta:hover { color: var(--gold-deep); }
.header-cta { justify-self: end; color: var(--gold-deep); }

.product-hero {
  min-height: calc(100svh - 5rem);
  padding: clamp(4.5rem, 8vw, 8rem) var(--page-x) clamp(5rem, 8vw, 8rem);
  display: grid;
  grid-template-columns: minmax(0, 0.84fr) minmax(38rem, 1.16fr);
  gap: clamp(3rem, 6vw, 7rem);
  align-items: center;
  position: relative;
  isolation: isolate;
  overflow: hidden;
  background-color: var(--green);
  background-image:
    linear-gradient(rgba(255,255,255,0.022) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,0.022) 1px, transparent 1px),
    radial-gradient(circle at 85% 62%, rgba(212,175,55,0.12), transparent 36rem);
  background-size: 52px 52px, 52px 52px, auto;
}

.product-hero::before {
  content: "";
  position: absolute;
  z-index: -1;
  right: -17rem;
  bottom: -29rem;
  width: 56rem;
  height: 56rem;
  border: 1px solid rgba(212,175,55,0.15);
  border-radius: 50%;
  box-shadow: 0 0 0 7rem rgba(212,175,55,0.016), 0 0 0 14rem rgba(212,175,55,0.009);
}

.eyebrow,
.section-code {
  margin: 0;
  color: var(--gold);
  font: 600 0.66rem/1.4 var(--mono);
  letter-spacing: 0.11em;
  text-transform: uppercase;
}

.concept-status {
  width: fit-content;
  margin: 1.25rem 0 0;
  padding: 0.72rem 0.85rem;
  color: #f0d66f;
  border: 1px solid rgba(212,175,55,0.65);
  background: rgba(212,175,55,0.08);
  font: 700 0.6rem/1.35 var(--mono);
  letter-spacing: 0.075em;
  text-transform: uppercase;
}

.hero-copy h1 {
  max-width: 10.8ch;
  margin: 1.7rem 0 0;
  font: 500 clamp(4rem, 6.3vw, 7.4rem)/0.88 var(--display);
  letter-spacing: -0.068em;
}

.hero-copy h1 em { color: var(--gold); font-style: normal; }

.hero-deck {
  max-width: 38rem;
  margin: 2.1rem 0 0;
  color: #ccdad3;
  font-size: clamp(1.03rem, 1.45vw, 1.25rem);
  line-height: 1.55;
}

.hero-deck strong { color: var(--white); font-weight: 650; }

.hero-actions {
  margin-top: 2.3rem;
  display: flex;
  align-items: center;
  gap: 1.8rem;
  flex-wrap: wrap;
}

.hero-actions > a:not(.button) {
  color: #d3dfd8;
  font: 700 0.68rem/1 var(--mono);
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

.button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.7rem;
  padding: 1rem 1.2rem;
  color: #082722;
  background: var(--gold);
  font: 700 0.69rem/1 var(--mono);
  letter-spacing: 0.06em;
  text-transform: uppercase;
  transition: background 160ms ease, transform 160ms ease;
}

.button:hover { background: var(--gold-light); transform: translateY(-2px); }

.hero-notice {
  max-width: 39rem;
  margin: 2.7rem 0 0;
  padding-top: 1rem;
  color: #91a99d;
  border-top: 1px solid var(--line);
  font: 500 0.58rem/1.58 var(--mono);
  letter-spacing: 0.035em;
  text-transform: uppercase;
}

.hero-notice strong { color: var(--gold); }

.campus-instrument {
  min-width: 0;
  margin: 0;
  border: 1px solid #3b6257;
  background: rgba(6, 31, 27, 0.9);
  box-shadow: 0 2rem 7rem rgba(0,0,0,0.34);
}

.instrument-head,
.drawing-head {
  min-height: 5rem;
  padding: 1.2rem 1.4rem;
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 2rem;
  border-bottom: 1px solid var(--line-strong);
  background: rgba(12, 54, 47, 0.9);
}

.instrument-head span,
.instrument-head > strong,
.drawing-head span,
.drawing-head > strong {
  color: #8fa69a;
  font: 600 0.53rem/1.3 var(--mono);
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.instrument-head > strong,
.drawing-head > strong { color: var(--gold); text-align: right; }

.instrument-head h2,
.drawing-head h3 {
  margin: 0.55rem 0 0;
  font: 550 clamp(1.15rem, 1.8vw, 1.75rem)/1 var(--display);
  letter-spacing: -0.035em;
}

.instrument-body {
  padding: clamp(1.2rem, 2.5vw, 2.2rem);
  background-color: #071e1c;
  background-image:
    linear-gradient(rgba(157,182,172,0.055) 1px, transparent 1px),
    linear-gradient(90deg, rgba(157,182,172,0.055) 1px, transparent 1px);
  background-size: 2.3rem 2.3rem;
}

.campus-map-shell { overflow: hidden; }

.campus-boundary-topology {
  display: block;
  width: 100%;
  height: auto;
  overflow: visible;
}

.campus-boundary-topology--compact { display: none; }

.campus-boundary-topology * {
  animation: none !important;
  transition: none !important;
}

.campus-map-boundary,
.campus-map-card,
.campus-map-heat,
.campus-map-open-rail,
.campus-map-legend-marker,
.campus-map-rule,
.campus-map-flow {
  vector-effect: non-scaling-stroke;
}

.campus-map-boundary,
.campus-map-card,
.campus-map-heat,
.campus-map-open-rail,
.campus-map-legend-marker {
  fill: rgba(10, 42, 37, 0.9);
  stroke: #55756a;
  stroke-width: 1;
}

.campus-map-boundary--open {
  fill: rgba(7, 30, 28, 0.55);
  stroke: #7a9187;
  stroke-dasharray: 7 5;
}

.campus-map-card--declared { stroke: var(--gold); stroke-width: 1.35; }
.campus-map-card--reference { stroke: #8fa69a; }
.campus-map-card--target { stroke: var(--live); }
.campus-map-heat { fill: rgba(52, 34, 25, 0.58); stroke: #b08a68; }
.campus-map-open-rail { fill: rgba(4, 22, 20, 0.86); stroke: #55756a; stroke-dasharray: 5 4; }

.campus-map-legend-marker { fill: transparent; }
.campus-map-legend-marker--declared { stroke: var(--gold); }
.campus-map-legend-marker--open { stroke-dasharray: 3 2; }

.campus-map-kicker,
.campus-map-stage,
.campus-map-value,
.campus-map-status,
.campus-map-legend,
.campus-map-note,
.campus-map-flow-label,
.campus-map-open-text {
  font-family: var(--mono);
  text-transform: uppercase;
}

.campus-map-kicker { fill: #e5eee9; font-size: 11px; font-weight: 700; letter-spacing: 1.15px; }
.campus-map-stage { fill: #c2d1ca; font-size: 9.3px; font-weight: 700; letter-spacing: 0.45px; }
.campus-map-value { fill: var(--gold-light); font-family: var(--display); font-size: 25px; font-weight: 560; letter-spacing: -1.05px; text-transform: none; }
.campus-map-value--target { fill: var(--live); }
.campus-map-value--heat { fill: #dfb683; font-family: var(--mono); font-size: 24px; letter-spacing: -0.7px; }
.campus-map-status { fill: #91a99d; font-size: 7.7px; font-weight: 700; letter-spacing: 0.34px; }
.campus-map-status--gold { fill: var(--gold); }
.campus-map-legend { fill: #a9beb4; font-size: 7.7px; font-weight: 650; letter-spacing: 0.28px; }
.campus-map-note { fill: #a9beb4; font-size: 7.35px; font-weight: 620; letter-spacing: 0.18px; }
.campus-map-note--guard { fill: #d7e0dc; }
.campus-map-flow-label { fill: #82998e; font-size: 6.4px; font-weight: 700; letter-spacing: 0.18px; }
.campus-map-open-text { fill: #c0cec7; font-size: 7.35px; font-weight: 700; letter-spacing: 0.17px; }

.campus-map-rule,
.campus-map-flow { fill: none; stroke: #718b80; stroke-width: 1; }
.campus-map-rule--declared,
.campus-map-flow--declared { stroke: var(--gold); }
.campus-map-rule--target,
.campus-map-flow--accepted { stroke: var(--live); }
.campus-map-flow--conditional { stroke: #b08a68; stroke-dasharray: 5 4; }
.campus-map-arrow { fill: #718b80; }
.campus-map-arrow--declared { fill: var(--gold); }
.campus-map-arrow--accepted { fill: var(--live); }
.campus-map-arrow--conditional { fill: #b08a68; }

.campus-map-kicker--compact { font-size: 15px; letter-spacing: 0.75px; }
.campus-map-stage--compact { font-size: 14px; letter-spacing: 0.2px; }
.campus-map-value--compact { font-size: 31px; letter-spacing: -0.8px; }
.campus-map-status--compact,
.campus-map-legend--compact,
.campus-map-note--compact,
.campus-map-flow-label--compact,
.campus-map-open-text--compact { font-size: 13.5px; letter-spacing: 0; }

.system-flow {
  min-height: 17rem;
  display: grid;
  grid-template-columns: minmax(7.5rem, 0.95fr) minmax(2.2rem, 0.35fr) minmax(8.4rem, 1.05fr) minmax(2.2rem, 0.35fr) minmax(8.4rem, 1.05fr) minmax(2.2rem, 0.35fr) minmax(7rem, 0.85fr);
  align-items: center;
  margin: 0;
  padding: 0;
  list-style: none;
}

.system-flow > li:not(.flow-link) {
  min-width: 0;
  min-height: 12rem;
  padding: 1rem;
  display: flex;
  flex-direction: column;
  border: 1px solid #45675c;
  background: rgba(16,55,47,0.94);
}

.system-flow > li > span,
.system-flow small {
  color: #93aa9f;
  font: 600 0.49rem/1.45 var(--mono);
  letter-spacing: 0.055em;
  text-transform: uppercase;
}

.system-flow strong {
  margin: auto 0 0;
  color: var(--gold);
  font: 560 clamp(1.35rem, 2.6vw, 2.65rem)/1 var(--display);
  letter-spacing: -0.05em;
}

.system-flow small { margin-top: 0.55rem; }
.meter-node { border-color: rgba(212,175,55,0.65) !important; }
.output-node { border-color: rgba(87,216,167,0.55) !important; }
.output-node strong { color: var(--live); }

.flow-link { position: relative; display: grid; place-items: center; }
.flow-link i { width: 100%; height: 1px; display: block; background: var(--gold); }
.flow-link i::after { content: ">"; float: right; color: var(--gold); font: 600 0.65rem/1 var(--mono); transform: translate(0,-0.3rem); }
.flow-link span { position: absolute; top: calc(50% + 0.8rem); white-space: nowrap; color: #728b80 !important; font-size: 0.42rem !important; }
.output-link i { background: var(--live); }
.output-link i::after { color: var(--live); }

.hall-lines,
.allocation-lines {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 0.2rem;
  margin-top: 1rem;
}

.allocation-lines { grid-template-columns: repeat(5, 1fr); }
.hall-lines i,
.allocation-lines i { height: 1rem; border: 1px solid #5b776d; background: #0a2a25; }
.allocation-lines i { border-color: rgba(212,175,55,0.45); }

.heat-path {
  min-height: 4.6rem;
  display: grid;
  grid-template-columns: auto minmax(2rem, 1fr) auto auto;
  align-items: center;
  gap: 1rem;
  margin-top: 1.5rem;
  padding: 0.9rem 1rem;
  border: 1px solid #3f6157;
  background: rgba(5,25,22,0.82);
}

.heat-path > span,
.heat-path small { color: #95aa9f; font: 600 0.49rem/1.4 var(--mono); text-transform: uppercase; }
.heat-path i { height: 1px; background: #9c795a; }
.heat-path strong { color: #dfb683; font: 550 clamp(1.25rem, 2vw, 2rem)/1 var(--mono); white-space: nowrap; }
.heat-path small { max-width: 12rem; }

.instrument-ledger {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  margin: 0;
  border-top: 1px solid var(--line);
}

.instrument-ledger > div { min-width: 0; padding: 1rem 1.1rem; border-left: 1px solid var(--line); }
.instrument-ledger > div:first-child { border-left: 0; }
.instrument-ledger dt { color: #82998e; font: 600 0.48rem/1.4 var(--mono); text-transform: uppercase; }
.instrument-ledger dd { margin: 0.6rem 0 0; color: #e4ece7; font: 550 0.82rem/1.2 var(--mono); }

.campus-instrument figcaption {
  padding: 0.8rem 1.4rem;
  color: #7e958a;
  border-top: 1px solid var(--line);
  font: 500 0.52rem/1.55 var(--mono);
}

.concept-caveat,
.final-caveat {
  padding: 1.2rem var(--page-x);
  display: grid;
  grid-template-columns: minmax(14rem, 0.4fr) minmax(0, 1.6fr);
  gap: 2rem;
  color: #b4c4bc;
  border-top: 1px solid rgba(212,175,55,0.35);
  border-bottom: 1px solid rgba(212,175,55,0.35);
  background: #0a2924;
}

.concept-caveat strong,
.final-caveat strong { color: var(--gold); font: 600 0.57rem/1.5 var(--mono); text-transform: uppercase; }
.concept-caveat p,
.final-caveat p { max-width: 73rem; margin: 0; font: 500 0.63rem/1.6 var(--mono); }

.light-section,
.dark-section,
.contact-section {
  padding: clamp(6rem, 10vw, 10rem) var(--page-x);
}

.light-section { color: var(--ink); background: var(--paper); }
.dark-section { color: var(--white); background: var(--green); }

.section-head {
  width: min(100%, 90rem);
  display: grid;
  grid-template-columns: 0.42fr 1.25fr 0.75fr;
  gap: clamp(2rem, 5vw, 6rem);
  align-items: start;
  margin-inline: auto;
}

.section-code { color: var(--gold-deep); }
.light-head .section-code { color: var(--gold); }

.section-head h2,
.contact-section h2 {
  margin: 0;
  font: 520 clamp(3rem, 5.6vw, 6.4rem)/0.93 var(--display);
  letter-spacing: -0.062em;
}

.section-head > p:last-child {
  margin: 0;
  color: var(--muted-dark);
  font-size: 1.03rem;
  line-height: 1.6;
}

.light-head > p:last-child { color: #afc1b8; }

.equation-ledger {
  width: min(100%, 90rem);
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  margin: clamp(4rem, 7vw, 7rem) auto 0;
  border-top: 1px solid var(--ink);
  border-bottom: 1px solid var(--line-dark);
}

.equation-ledger article {
  min-height: 18rem;
  padding: 1.4rem clamp(1.2rem, 2.5vw, 2.5rem) 2rem;
  border-left: 1px solid var(--line-dark);
}

.equation-ledger article:first-child { padding-left: 0; border-left: 0; }
.equation-ledger article:last-child { padding-right: 0; }
.equation-ledger article > span { color: var(--gold-deep); font: 600 0.57rem/1.45 var(--mono); text-transform: uppercase; }
.equation { margin: 4.5rem 0 0; color: var(--ink); font: 520 clamp(1.55rem, 2.6vw, 2.7rem)/1.1 var(--mono); letter-spacing: -0.055em; }
.equation-ledger small { display: block; margin-top: 1.3rem; color: var(--muted-dark); font-size: 0.77rem; line-height: 1.55; }

.boundary-register,
.engineering-register {
  width: min(100%, 90rem);
  margin: 1.2rem auto 0;
  border-top: 1px solid var(--line-dark);
}

.boundary-register > div,
.engineering-register > div {
  display: grid;
  grid-template-columns: minmax(10rem, 0.4fr) minmax(0, 1.6fr);
  gap: 2rem;
  padding: 1rem 0;
  border-bottom: 1px solid var(--line-dark);
}

.boundary-register dt,
.engineering-register dt { color: var(--gold-deep); font: 600 0.58rem/1.45 var(--mono); text-transform: uppercase; }
.boundary-register dd,
.engineering-register dd { margin: 0; color: var(--muted-dark); font-size: 0.9rem; line-height: 1.5; }

.oem-reference {
  width: min(100%, 90rem);
  display: grid;
  grid-template-columns: 0.7fr 1.25fr 0.75fr;
  gap: clamp(2rem, 4vw, 4rem);
  margin: clamp(4rem, 6vw, 6rem) auto 0;
  padding: clamp(1.5rem, 3vw, 2.7rem);
  color: var(--white);
  background: var(--green-2);
}

.oem-reference > div > span { color: var(--gold); font: 600 0.56rem/1.45 var(--mono); text-transform: uppercase; }
.oem-reference h3 { margin: 1.2rem 0 0; font: 540 clamp(1.8rem, 3vw, 3.3rem)/1 var(--display); letter-spacing: -0.05em; }
.oem-reference dl { margin: 0; }
.oem-reference dl > div { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; padding: 0.75rem 0; border-bottom: 1px solid var(--line); }
.oem-reference dt { color: #91a99d; font: 600 0.54rem/1.4 var(--mono); text-transform: uppercase; }
.oem-reference dd { margin: 0; text-align: right; color: #e4ece7; font: 550 0.7rem/1.4 var(--mono); }
.oem-reference > p { margin: 0; color: #a9bdb3; font-size: 0.8rem; line-height: 1.55; }

.oem-reference .source-line {
  grid-column: 2 / -1;
  padding-top: 1rem;
  border-top: 1px solid var(--line);
  color: #81988d;
  font: 500 0.54rem/1.55 var(--mono);
  text-transform: uppercase;
}

.source-line a,
.electrical-drawing > footer a { color: var(--gold); border-bottom: 1px solid rgba(212,175,55,0.42); }

.rack-sensitivity {
  width: min(100%, 90rem);
  margin: 1.2rem auto 0;
  border-top: 1px solid var(--line-dark);
  border-left: 1px solid var(--line-dark);
}

.rack-sensitivity > div {
  min-height: 4.8rem;
  display: grid;
  grid-template-columns: 1fr 0.8fr 0.65fr 0.65fr;
  border-bottom: 1px solid var(--line-dark);
}

.rack-sensitivity > div > * { margin: 0; padding: 1rem 1.2rem; border-right: 1px solid var(--line-dark); }
.rack-sensitivity .table-head { min-height: 2.8rem; color: var(--gold); background: var(--green); font: 600 0.54rem/1 var(--mono); letter-spacing: 0.08em; text-transform: uppercase; }
.rack-sensitivity strong { color: var(--ink); font-size: 0.88rem; }
.rack-sensitivity > div > span { color: var(--muted-dark); font: 550 0.72rem/1.4 var(--mono); }
.rack-sensitivity b { color: var(--green-2); font: 600 0.78rem/1.4 var(--mono); }
.rack-sensitivity p { color: var(--gold-deep); font: 600 0.78rem/1.4 var(--mono); }

.rack-note,
.electrical-note,
.pue-note {
  width: min(100%, 90rem);
  margin: 1rem auto 0;
  color: var(--muted-dark);
  font: 500 0.61rem/1.65 var(--mono);
}

.rack-note span,
.electrical-note span,
.pue-note span { margin-right: 0.8rem; color: var(--gold-deep); text-transform: uppercase; }

.allocation-section { background: var(--green-black); }

.product-chain {
  width: min(100%, 90rem);
  margin: clamp(4rem, 7vw, 7rem) auto 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  border-top: 1px solid #42655a;
  border-bottom: 1px solid #42655a;
  list-style: none;
}

.product-chain li {
  position: relative;
  min-height: 17rem;
  padding: 1.25rem;
  display: flex;
  flex-direction: column;
  border-left: 1px solid #36574e;
  background: rgba(10,43,37,0.42);
}

.product-chain li:first-child { border-left: 0; }
.product-chain li::after {
  content: "→";
  position: absolute;
  z-index: 2;
  top: 50%;
  right: -0.65rem;
  width: 1.3rem;
  height: 1.3rem;
  display: grid;
  place-items: center;
  color: var(--gold);
  background: var(--green-black);
  font: 600 0.72rem/1 var(--mono);
}

.product-chain li:last-child::after { display: none; }
.product-chain li > span { color: #91a99d; font: 600 0.54rem/1.4 var(--mono); letter-spacing: 0.06em; text-transform: uppercase; }
.product-chain li strong { margin: auto 0 0; color: var(--white); font: 540 clamp(2.5rem, 4.2vw, 4.6rem)/0.9 var(--display); letter-spacing: -0.06em; }
.product-chain li small { margin-top: 1rem; color: #8fa69a; font: 500 0.56rem/1.5 var(--mono); }
.product-chain .chain-product { background: rgba(212,175,55,0.1); }
.product-chain .chain-product > span,
.product-chain .chain-product strong { color: var(--gold-light); }
.product-chain .chain-concept { border: 1px solid rgba(212,175,55,0.58); border-bottom: 0; border-top: 0; background: rgba(212,175,55,0.055); }

.hall-instrument,
.electrical-drawing,
.thermal-drawing {
  width: min(100%, 90rem);
  margin: clamp(4rem, 7vw, 7rem) auto 0;
  border: 1px solid #42655a;
  background-color: #071e1c;
  background-image:
    linear-gradient(rgba(157,182,172,0.055) 1px, transparent 1px),
    linear-gradient(90deg, rgba(157,182,172,0.055) 1px, transparent 1px);
  background-size: 2.3rem 2.3rem;
}

.hall-instrument > header,
.hall-instrument > footer {
  min-height: 4rem;
  padding: 1rem 1.4rem;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 2rem;
  color: #8fa69a;
  border-bottom: 1px solid #3b5d53;
  background: rgba(8,36,31,0.9);
  font: 600 0.53rem/1.4 var(--mono);
  text-transform: uppercase;
}

.hall-instrument > header strong,
.hall-instrument > footer b { color: var(--gold); }
.hall-instrument > footer { border-top: 1px solid #3b5d53; border-bottom: 0; }

.hall-list {
  display: grid;
  grid-template-columns: 1fr;
  margin: 0;
  padding: clamp(1rem, 2.5vw, 2.5rem);
  list-style: none;
}

.hall-list li {
  min-width: 0;
  display: grid;
  grid-template-columns: minmax(12rem, 0.8fr) repeat(5, minmax(1rem, 1fr));
  align-items: center;
  gap: 0.35rem;
  padding: 1.15rem;
  border-bottom: 1px solid #3b5d53;
  background: rgba(10,43,37,0.72);
}

.hall-list li:last-child { border-bottom: 0; }
.hall-list li > div { display: grid; grid-template-columns: auto 1fr; gap: 0.25rem 0.75rem; align-items: baseline; }
.hall-list li span { color: var(--gold); font: 600 0.55rem/1.3 var(--mono); text-transform: uppercase; }
.hall-list li strong { font: 550 1.25rem/1 var(--display); }
.hall-list li small { grid-column: 1 / -1; color: #81978c; font: 500 0.46rem/1.3 var(--mono); text-transform: uppercase; }
.hall-list li > i { height: 2.25rem; border: 1px solid rgba(212,175,55,0.5); background: rgba(212,175,55,0.07); }

.allocation-note,
.thermal-caveat {
  width: min(100%, 90rem);
  margin: 1.2rem auto 0;
  color: #9fb4aa;
  font: 500 0.63rem/1.65 var(--mono);
}

.allocation-note span,
.thermal-caveat span { margin-right: 0.8rem; color: var(--gold); text-transform: uppercase; }

.electrical-drawing,
.thermal-drawing { color: var(--white); }
.electrical-body { padding: clamp(1.2rem, 3vw, 3rem); }

.electrical-svg-shell {
  padding: clamp(0.75rem, 2vw, 1.5rem);
}

.electrical-topology {
  width: 100%;
  height: auto;
  display: block;
}

.electrical-topology--compact {
  display: none;
}

.electrical-topology .topology-background {
  fill: #071e1c;
}

.electrical-topology .topology-grid-line {
  fill: none;
  stroke: rgba(157, 182, 172, 0.065);
  stroke-width: 1;
  vector-effect: non-scaling-stroke;
}

.electrical-topology .topology-box,
.electrical-topology .topology-open-marker,
.electrical-topology .topology-lock-marker,
.electrical-topology .topology-transformer-ring,
.electrical-topology .topology-cell,
.electrical-topology .topology-local-band,
.electrical-topology .topology-reference-line,
.electrical-topology .topology-open-line,
.electrical-topology .topology-locked-line {
  vector-effect: non-scaling-stroke;
}

.electrical-topology .topology-box {
  fill: rgba(14, 61, 54, 0.94);
  stroke: rgba(230, 239, 233, 0.31);
  stroke-width: 1;
}

.electrical-topology .topology-box--locked {
  fill: rgba(22, 74, 64, 0.88);
  stroke: var(--gold);
  stroke-width: 1.35;
}

.electrical-topology .topology-box--reference {
  fill: rgba(14, 61, 54, 0.9);
  stroke: rgba(230, 239, 233, 0.34);
}

.electrical-topology .topology-box--open {
  fill: rgba(9, 47, 42, 0.78);
  stroke: rgba(169, 190, 180, 0.76);
  stroke-dasharray: 7 5;
}

.electrical-topology .topology-study-band {
  fill: rgba(88, 110, 100, 0.08);
}

.electrical-topology .topology-lock-marker {
  fill: var(--gold);
  stroke: var(--gold-light);
  stroke-width: 1;
}

.electrical-topology .topology-open-marker {
  fill: #071e1c;
  stroke: var(--muted);
  stroke-width: 1.3;
  stroke-dasharray: 3 2;
}

.electrical-topology .topology-reference-line,
.electrical-topology .topology-open-line,
.electrical-topology .topology-locked-line,
.electrical-topology .topology-transformer-ring {
  fill: none;
  stroke-linecap: square;
  stroke-linejoin: miter;
}

.electrical-topology .topology-reference-line {
  stroke: rgba(230, 239, 233, 0.72);
  stroke-width: 1.2;
}

.electrical-topology .topology-open-line {
  stroke: var(--muted);
  stroke-width: 1.2;
}

.electrical-topology .topology-locked-line,
.electrical-topology .topology-transformer-ring {
  stroke: var(--gold);
  stroke-width: 1.5;
}

.electrical-topology .topology-bus-line {
  stroke-width: 2;
}

.electrical-topology .topology-bus-coupler {
  stroke-width: 1.4;
}

.electrical-topology .topology-cell {
  fill: rgba(212, 175, 55, 0.12);
  stroke: rgba(227, 198, 93, 0.72);
  stroke-width: 1;
}

.electrical-topology .topology-local-band {
  fill: rgba(6, 28, 25, 0.92);
  stroke: rgba(230, 239, 233, 0.31);
  stroke-width: 1;
}

.electrical-topology .topology-legend,
.electrical-topology .topology-id,
.electrical-topology .topology-status,
.electrical-topology .topology-note,
.electrical-topology .topology-bus-label {
  fill: #a9beb4;
  font-family: var(--mono);
  font-size: 13px;
  font-weight: 600;
  letter-spacing: 0.7px;
}

.electrical-topology .topology-id {
  font-size: 14px;
}

.electrical-topology .topology-id--gold,
.electrical-topology .topology-bus-label,
.electrical-topology .topology-status--locked,
.electrical-topology .topology-nfc {
  fill: var(--gold-light);
}

.electrical-topology .topology-status {
  font-size: 12px;
}

.electrical-topology .topology-status--open {
  fill: #a9beb4;
}

.electrical-topology .topology-note {
  fill: #8fa69a;
  font-size: 11px;
  font-weight: 560;
  letter-spacing: 0.45px;
}

.electrical-topology .topology-value,
.electrical-topology .topology-hall-value {
  fill: var(--white);
  font-family: var(--display);
  font-size: 26px;
  font-weight: 560;
  letter-spacing: -0.5px;
}

.electrical-topology .topology-value--gold {
  fill: var(--gold-light);
}

.electrical-topology .topology-hall-value {
  font-size: 18px;
}

.electrical-topology--compact .topology-bus-label {
  font-size: 12px;
}

.poc-node {
  width: min(25rem, 100%);
  margin-inline: auto;
  padding: 1rem 1.2rem;
  display: grid;
  grid-template-columns: 0.7fr 1.3fr;
  gap: 0.4rem 1rem;
  border: 1px solid rgba(212,175,55,0.55);
  background: #10372f;
}

.poc-node span,
.poc-node small { color: #8fa69a; font: 600 0.53rem/1.4 var(--mono); text-transform: uppercase; }
.poc-node b { text-align: right; font: 600 0.75rem/1.4 var(--mono); }
.poc-node small { grid-column: 1 / -1; text-align: right; }

.vertical-link { width: 1px; height: 2rem; display: block; margin-inline: auto; background: var(--gold); }

.meter-boundary {
  width: min(38rem, 100%);
  margin-inline: auto;
  padding: 0.9rem 1rem;
  display: flex;
  justify-content: space-between;
  gap: 2rem;
  border: 1px solid var(--gold);
  background: #0c302a;
}

.meter-boundary span { color: #9fb4aa; font: 600 0.53rem/1.4 var(--mono); text-transform: uppercase; }
.meter-boundary strong { color: var(--gold); font: 600 0.63rem/1.4 var(--mono); text-align: right; }

.main-transformers {
  width: min(47rem, 100%);
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 0.75rem;
  margin: 2rem auto 0;
  padding: 0;
  list-style: none;
}

.main-transformers li {
  position: relative;
  min-height: 7.5rem;
  padding: 0.9rem;
  display: flex;
  flex-direction: column;
  text-align: center;
  border: 1px solid rgba(212,175,55,0.48);
  background: rgba(16,55,47,0.92);
}

.main-transformers li::before {
  content: "";
  position: absolute;
  top: -2rem;
  left: 50%;
  width: 1px;
  height: 2rem;
  background: var(--gold);
}

.main-transformers span,
.main-transformers small { color: #92aa9e; font: 600 0.49rem/1.4 var(--mono); text-transform: uppercase; }
.main-transformers b { margin: auto 0 0; color: var(--gold); font: 560 1.2rem/1 var(--mono); }
.main-transformers small { margin-top: 0.45rem; }

.transformer-basis {
  width: min(47rem, 100%);
  margin: 0.75rem auto 0;
  color: #82998d;
  font: 500 0.5rem/1.55 var(--mono);
  text-align: center;
  text-transform: uppercase;
}

.hv-buses {
  margin-top: 2rem;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1rem;
}

.hv-buses > div { min-height: 3.2rem; display: grid; place-items: center; border-top: 1px solid var(--gold); }
.hv-buses span { padding: 0 0.8rem; color: var(--gold); background: #071e1c; font: 600 0.55rem/1 var(--mono); }

.hall-feeders {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 0.75rem;
  margin: 0;
  padding: 0;
  list-style: none;
}

.hall-feeders li {
  position: relative;
  min-height: 12rem;
  padding: 1rem 0.8rem;
  display: flex;
  flex-direction: column;
  text-align: center;
  border: 1px solid #42655a;
  background: rgba(16,55,47,0.92);
}

.hall-feeders li::before { content: ""; position: absolute; top: -3.2rem; left: 50%; width: 1px; height: 3.2rem; background: var(--gold); }
.hall-feeders span,
.hall-feeders small { color: #92aa9e; font: 600 0.5rem/1.4 var(--mono); text-transform: uppercase; }
.hall-feeders b { margin: auto 0 0; font-size: 0.75rem; line-height: 1.35; }
.hall-feeders small { margin-top: 0.7rem; color: var(--gold); }

.local-distribution {
  margin-top: 1.2rem;
  padding: 1rem 1.2rem;
  display: flex;
  justify-content: space-between;
  gap: 2rem;
  color: #9eb1a8;
  border: 1px solid #3b5c52;
  background: rgba(6,28,25,0.82);
}

.local-distribution span { color: var(--gold); font: 600 0.53rem/1.4 var(--mono); }
.local-distribution strong { font: 550 0.6rem/1.4 var(--mono); text-align: right; }
.electrical-drawing > footer,
.thermal-drawing > footer { padding: 1.1rem 1.4rem; color: #93aa9f; border-top: 1px solid #3b5d53; background: rgba(8,36,31,0.9); font: 500 0.61rem/1.6 var(--mono); }

.electrical-math {
  width: min(100%, 90rem);
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  margin: 1.2rem auto 0;
  border-top: 1px solid var(--line-dark);
  border-left: 1px solid var(--line-dark);
}

.electrical-math article {
  min-height: 12rem;
  padding: 1.15rem;
  display: flex;
  flex-direction: column;
  border-right: 1px solid var(--line-dark);
  border-bottom: 1px solid var(--line-dark);
}

.electrical-math span { color: var(--gold-deep); font: 600 0.54rem/1.45 var(--mono); text-transform: uppercase; }
.electrical-math strong { margin: auto 0 0; color: var(--ink); font: 550 clamp(1.05rem, 1.6vw, 1.5rem)/1.25 var(--mono); letter-spacing: -0.04em; }
.electrical-math small { margin-top: 0.8rem; color: var(--muted-dark); font: 500 0.54rem/1.45 var(--mono); }

.engineering-register { display: grid; grid-template-columns: repeat(2, 1fr); border-left: 1px solid var(--line-dark); }
.engineering-register > div { min-height: 7rem; grid-template-columns: 0.7fr 1.3fr; padding: 1rem; border-right: 1px solid var(--line-dark); }

.thermal-section { background: var(--green-2); }

.thermal-equation {
  width: min(100%, 90rem);
  display: grid;
  grid-template-columns: 1.15fr 0.85fr;
  margin: clamp(4rem, 7vw, 7rem) auto 0;
  border-top: 1px solid var(--line-strong);
  border-bottom: 1px solid var(--line);
}

.thermal-equation > div { min-height: 17rem; padding: 1.5rem clamp(1.3rem, 3vw, 3rem) 2rem; border-left: 1px solid var(--line); }
.thermal-equation > div:first-child { padding-left: 0; border-left: 0; }
.thermal-equation span { color: var(--gold); font: 600 0.57rem/1.4 var(--mono); text-transform: uppercase; }
.thermal-equation p { margin: 5rem 0 0; color: var(--white); font: 530 clamp(1.8rem, 3.6vw, 4rem)/1.05 var(--mono); letter-spacing: -0.055em; }
.thermal-equation small { display: block; margin-top: 1.2rem; color: #91a79c; font-size: 0.75rem; line-height: 1.55; }

.thermal-drawing { margin-top: 2rem; }

.thermal-svg-shell {
  padding: clamp(0.75rem, 2vw, 1.5rem);
  background: #071e1c;
}

.thermal-topology {
  width: 100%;
  height: auto;
  display: block;
}

.thermal-topology--compact { display: none; }

.thermal-topology .thermal-background { fill: #071e1c; }

.thermal-topology .thermal-grid-line {
  fill: none;
  stroke: rgba(157, 182, 172, 0.065);
  stroke-width: 1;
  vector-effect: non-scaling-stroke;
}

.thermal-topology .thermal-box,
.thermal-topology .thermal-row,
.thermal-topology .thermal-band,
.thermal-topology .thermal-no-claim-rail,
.thermal-topology .thermal-declared-marker,
.thermal-topology .thermal-physics-marker,
.thermal-topology .thermal-scenario-marker,
.thermal-topology .thermal-open-marker,
.thermal-topology .thermal-rule,
.thermal-topology .thermal-physics-line,
.thermal-topology .thermal-flow-line,
.thermal-topology .thermal-flow-arrow {
  vector-effect: non-scaling-stroke;
}

.thermal-topology .thermal-box {
  fill: rgba(14, 61, 54, 0.9);
  stroke-width: 1;
}

.thermal-topology .thermal-box--declared {
  fill: rgba(22, 74, 64, 0.9);
  stroke: var(--gold);
  stroke-width: 1.35;
}

.thermal-topology .thermal-box--physics {
  fill: rgba(14, 61, 54, 0.94);
  stroke: rgba(230, 239, 233, 0.56);
}

.thermal-topology .thermal-box--scenario {
  fill: rgba(19, 58, 52, 0.8);
  stroke: rgba(169, 190, 180, 0.62);
}

.thermal-topology .thermal-box--open {
  fill: rgba(9, 47, 42, 0.76);
  stroke: rgba(169, 190, 180, 0.78);
  stroke-dasharray: 7 5;
}

.thermal-topology .thermal-row {
  fill: rgba(5, 31, 27, 0.42);
  stroke: rgba(169, 190, 180, 0.23);
  stroke-width: 1;
}

.thermal-topology .thermal-band {
  fill: rgba(5, 31, 27, 0.56);
  stroke-width: 1;
}

.thermal-topology .thermal-band--declared {
  fill: rgba(212, 175, 55, 0.08);
  stroke: rgba(212, 175, 55, 0.58);
}

.thermal-topology .thermal-band--open {
  stroke: rgba(169, 190, 180, 0.64);
  stroke-dasharray: 5 4;
}

.thermal-topology .thermal-no-claim-rail {
  fill: rgba(5, 31, 27, 0.86);
  stroke: rgba(212, 175, 55, 0.42);
  stroke-width: 1;
}

.thermal-topology .thermal-declared-marker {
  fill: var(--gold);
  stroke: var(--gold-light);
  stroke-width: 1;
}

.thermal-topology .thermal-physics-marker {
  fill: rgba(230, 239, 233, 0.1);
  stroke: rgba(230, 239, 233, 0.8);
  stroke-width: 1;
}

.thermal-topology .thermal-scenario-marker {
  fill: rgba(169, 190, 180, 0.13);
  stroke: rgba(169, 190, 180, 0.72);
  stroke-width: 1;
}

.thermal-topology .thermal-open-marker {
  fill: #071e1c;
  stroke: rgba(169, 190, 180, 0.82);
  stroke-width: 1.2;
  stroke-dasharray: 3 2;
}

.thermal-topology .thermal-rule,
.thermal-topology .thermal-physics-line,
.thermal-topology .thermal-flow-line {
  fill: none;
  stroke-linecap: square;
  stroke-linejoin: miter;
}

.thermal-topology .thermal-rule {
  stroke: rgba(169, 190, 180, 0.28);
  stroke-width: 1;
}

.thermal-topology .thermal-physics-line,
.thermal-topology .thermal-flow-line {
  stroke: rgba(230, 239, 233, 0.78);
  stroke-width: 1.25;
}

.thermal-topology .thermal-flow-arrow { fill: rgba(230, 239, 233, 0.82); }

.thermal-topology text {
  fill: #e6efe9;
  font-family: var(--mono);
  text-rendering: geometricPrecision;
}

.thermal-topology .thermal-legend text,
.thermal-topology .thermal-compact-legend {
  fill: #91a79c;
  font-size: 13px;
  font-weight: 600;
  letter-spacing: 0.055em;
}

.thermal-topology .thermal-nfc {
  fill: var(--gold);
  font-size: 12px;
  font-weight: 650;
  letter-spacing: 0.055em;
}

.thermal-topology .thermal-id {
  fill: #dce8e1;
  font-size: 15px;
  font-weight: 650;
  letter-spacing: 0.035em;
}

.thermal-topology .thermal-id--gold { fill: var(--gold); }

.thermal-topology .thermal-value,
.thermal-topology .thermal-scenario-value,
.thermal-topology .thermal-formula,
.thermal-topology .thermal-compact-value,
.thermal-topology .thermal-compact-formula {
  font-family: var(--display);
  font-weight: 560;
  letter-spacing: -0.035em;
}

.thermal-topology .thermal-value { font-size: 34px; }
.thermal-topology .thermal-value--gold { fill: var(--gold-light); }
.thermal-topology .thermal-scenario-value { font-size: 29px; }
.thermal-topology .thermal-formula { font-size: 30px; }
.thermal-topology .thermal-compact-value { font-size: 27px; }
.thermal-topology .thermal-compact-formula { font-size: 23px; }

.thermal-topology .thermal-label {
  fill: #dce8e1;
  font-size: 14px;
  font-weight: 620;
  letter-spacing: 0.025em;
}

.thermal-topology .thermal-note {
  fill: #91a79c;
  font-size: 13px;
  font-weight: 540;
  letter-spacing: 0.022em;
}

.thermal-topology .thermal-status {
  fill: #b8cbc1;
  font-size: 13px;
  font-weight: 650;
  letter-spacing: 0.03em;
}

.thermal-topology .thermal-status--declared { fill: var(--gold-light); }
.thermal-topology .thermal-status--open { fill: #b6c8bf; }

.thermal-topology .thermal-arrow-label {
  fill: #91a79c;
  font-size: 13px;
  font-weight: 650;
  letter-spacing: 0.025em;
}

.thermal-topology .thermal-sub { font-size: 0.62em; }

.flow-table,
.pue-sensitivity,
.failure-table {
  width: min(100%, 90rem);
  margin: 1.2rem auto 0;
  border-top: 1px solid var(--line);
  border-left: 1px solid var(--line);
}

.flow-table > div,
.pue-sensitivity > div,
.failure-table > div {
  min-height: 5rem;
  display: grid;
  grid-template-columns: 0.45fr 0.7fr 1.1fr 0.55fr;
  border-bottom: 1px solid var(--line);
}

.flow-table > div > *,
.pue-sensitivity > div > *,
.failure-table > div > * { margin: 0; padding: 1rem 1.2rem; border-right: 1px solid var(--line); }
.flow-table .table-head,
.pue-sensitivity .table-head,
.failure-table .table-head { min-height: 2.8rem; color: var(--gold); background: var(--green); font: 600 0.54rem/1 var(--mono); letter-spacing: 0.08em; text-transform: uppercase; }
.flow-table strong,
.pue-sensitivity strong,
.failure-table strong { color: #e3ebe6; font-size: 0.9rem; }
.flow-table > div > span,
.pue-sensitivity > div > span,
.failure-table > div > span { color: #d6e2dc; font: 550 0.72rem/1.4 var(--mono); }
.flow-table p,
.pue-sensitivity p,
.failure-table p { color: #9fb4aa; font-size: 0.78rem; line-height: 1.45; }

.pue-sensitivity { margin-top: 2.2rem; }
.pue-sensitivity b { color: var(--gold-light); font: 600 0.78rem/1.4 var(--mono); }
.pue-note { color: #92a79d; }
.pue-note span { color: var(--gold); }

.acceptance-method-figure {
  width: min(100%, 90rem);
  margin: clamp(4rem, 7vw, 7rem) auto 0;
  color: var(--white);
  border: 1px solid #36574e;
  background: var(--green-black);
}

.acceptance-method-shell {
  padding: clamp(0.75rem, 2vw, 1.5rem);
  overflow: hidden;
  background: #071e1c;
}

.acceptance-method {
  display: block;
  width: 100%;
  height: auto;
}

.acceptance-method--compact { display: none; }

.acceptance-method * {
  animation: none !important;
  transition: none !important;
}

.acceptance-method-bg { fill: #071e1c; }
.acceptance-method-frame { fill: none; stroke: #36574e; }
.acceptance-method-statement { fill: #0a2a25; stroke: #42655a; }
.acceptance-method-card { fill: #0e3730; stroke: #56766b; }
.acceptance-method-card--open { stroke-dasharray: 7 5; }
.acceptance-method-card--formula { fill: #123a32; stroke: var(--gold-deep); }
.acceptance-method-status-box { fill: #071e1c; stroke: #58766b; stroke-dasharray: 4 3; }
.acceptance-method-no-claim { fill: #0a2924; stroke: var(--gold-deep); stroke-dasharray: 7 5; }

.acceptance-method-frame,
.acceptance-method-statement,
.acceptance-method-card,
.acceptance-method-status-box,
.acceptance-method-no-claim,
.acceptance-method-rule,
.acceptance-method-flow {
  vector-effect: non-scaling-stroke;
}

.acceptance-method-kicker,
.acceptance-method-status,
.acceptance-method-note,
.acceptance-method-stage,
.acceptance-method-title,
.acceptance-method-flow-label,
.acceptance-method-formula-label,
.acceptance-method-formula-equals,
.acceptance-method-formula-term,
.acceptance-method-no-claim-title,
.acceptance-method-no-claim-text {
  font-family: var(--mono);
  text-transform: uppercase;
}

.acceptance-method-kicker { fill: #e5eee9; font-size: 12px; font-weight: 700; letter-spacing: 0.8px; }
.acceptance-method-status { fill: #a9beb4; font-size: 9.2px; font-weight: 700; letter-spacing: 0.12px; }
.acceptance-method-status--guard { fill: var(--gold-light); }
.acceptance-method-note { fill: #b8c9c0; font-size: 9.2px; font-weight: 600; letter-spacing: 0.08px; }
.acceptance-method-note--guard { fill: #e0e8e4; }
.acceptance-method-stage { fill: var(--gold); font-size: 11px; font-weight: 700; letter-spacing: 0.4px; }
.acceptance-method-title { fill: #f0f5f2; font-size: 14px; font-weight: 700; letter-spacing: 0.12px; }
.acceptance-method-flow-label { fill: #869e93; font-size: 7.2px; font-weight: 700; }
.acceptance-method-formula-label { fill: var(--gold-light); font-family: var(--display); font-size: 21px; font-weight: 560; letter-spacing: -0.65px; text-transform: none; }
.acceptance-method-formula-equals { fill: #d9e3de; font-size: 13px; font-weight: 700; }
.acceptance-method-formula-term { fill: #d9e3de; font-size: 7.7px; font-weight: 700; }
.acceptance-method-no-claim-title { fill: var(--gold); font-size: 11px; font-weight: 700; letter-spacing: 0.35px; }
.acceptance-method-no-claim-text { fill: #d5e0da; font-size: 9.2px; font-weight: 700; letter-spacing: 0.08px; }

.acceptance-method-rule,
.acceptance-method-flow { fill: none; stroke: #6e897e; stroke-width: 1; }
.acceptance-method-rule--formula { stroke: var(--gold); }
.acceptance-method-arrow { fill: #6e897e; }

.acceptance-method-kicker--compact { font-size: 15px; letter-spacing: 0.35px; }
.acceptance-method-stage--compact { font-size: 14px; letter-spacing: 0.08px; }
.acceptance-method-title--compact { font-size: 14px; letter-spacing: -0.1px; }
.acceptance-method-status--compact,
.acceptance-method-note--compact { font-size: 13.5px; letter-spacing: -0.1px; }
.acceptance-method-formula-label--compact { font-size: 22px; }
.acceptance-method-formula-equals--compact { font-size: 15px; }
.acceptance-method-formula-term--compact { font-size: 11.5px; letter-spacing: -0.12px; }
.acceptance-method-no-claim-title--compact { font-size: 14px; }
.acceptance-method-no-claim-text--compact { font-size: 12.5px; letter-spacing: -0.08px; }

.acceptance-method-figure figcaption {
  padding: 0.9rem 1.4rem;
  color: #8fa69a;
  border-top: 1px solid var(--line);
  font: 500 0.61rem/1.65 var(--mono);
}

.acceptance-method-figure figcaption strong { color: var(--gold); text-transform: uppercase; }

.acceptance-instrument {
  width: min(100%, 90rem);
  display: grid;
  grid-template-columns: 0.8fr 1.2fr;
  margin: clamp(4rem, 7vw, 7rem) auto 0;
  color: var(--white);
  background: var(--green-2);
}

.acceptance-instrument > article,
.lcuc-equation { min-height: 22rem; padding: clamp(1.5rem, 3vw, 3rem); }
.acceptance-instrument > article { border-right: 1px solid var(--line); }
.acceptance-instrument article > span,
.lcuc-equation > span { color: var(--gold); font: 600 0.56rem/1.4 var(--mono); text-transform: uppercase; }
.acceptance-instrument h3 { margin: 4.5rem 0 0; font: 540 clamp(2rem, 3.6vw, 4rem)/1 var(--display); letter-spacing: -0.055em; }
.acceptance-instrument article p { max-width: 32rem; margin: 1.2rem 0 0; color: #a9bdb3; font-size: 0.88rem; line-height: 1.6; }

.lcuc-equation > p { display: flex; align-items: center; gap: clamp(1rem, 2.5vw, 2.5rem); margin: 5rem 0 0; }
.lcuc-equation > p > b { color: var(--gold); font: 520 clamp(2.3rem, 4vw, 4.5rem)/1 var(--display); letter-spacing: -0.06em; }
.lcuc-equation > p > span { display: grid; color: #e5ece8; font: 550 clamp(0.76rem, 1.2vw, 1.05rem)/1.5 var(--mono); text-align: center; }
.lcuc-equation strong { padding: 0.2rem 0.8rem 0.55rem; border-bottom: 1px solid var(--gold); }
.lcuc-equation i { padding: 0.55rem 0.8rem 0.2rem; color: #a9bdb3; font-style: normal; }
.lcuc-equation small { display: block; margin-top: 2rem; color: #849c90; font: 500 0.56rem/1.5 var(--mono); }

.acceptance-steps {
  width: min(100%, 90rem);
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  margin: 1.2rem auto 0;
  padding: 0;
  border-top: 1px solid var(--line-dark);
  list-style: none;
}

.acceptance-steps li { min-height: 14rem; padding: 1.2rem; border-right: 1px solid var(--line-dark); }
.acceptance-steps li:last-child { border-right: 0; }
.acceptance-steps span { color: var(--gold-deep); font: 600 0.55rem/1.4 var(--mono); }
.acceptance-steps h3 { margin: 3rem 0 0; font: 550 1.4rem/1 var(--display); }
.acceptance-steps p { margin: 0.9rem 0 0; color: var(--muted-dark); font-size: 0.78rem; line-height: 1.5; }

.resilience-section { background: var(--green-black); }
.failure-table { margin-top: clamp(4rem, 7vw, 7rem); }
.failure-table > div { grid-template-columns: 0.65fr 0.85fr 1.5fr; }

.gate-list {
  width: min(100%, 90rem);
  margin: clamp(4rem, 7vw, 7rem) auto 0;
  padding: 0;
  border-top: 1px solid var(--ink);
  list-style: none;
}

.gate-list li {
  min-height: 7rem;
  display: grid;
  grid-template-columns: 3rem minmax(0, 1fr) auto;
  gap: clamp(1rem, 3vw, 3rem);
  align-items: center;
  padding: 1.2rem 0;
  border-bottom: 1px solid var(--line-dark);
}

.gate-list li > span { color: var(--gold-deep); font: 600 0.57rem/1.4 var(--mono); }
.gate-list h3 { margin: 0; font: 550 clamp(1.2rem, 2vw, 1.8rem)/1.1 var(--display); }
.gate-list p { max-width: 60rem; margin: 0.55rem 0 0; color: var(--muted-dark); font-size: 0.82rem; line-height: 1.5; }
.gate-list b { padding: 0.45rem 0.65rem; color: var(--gold-deep); border: 1px solid rgba(126,99,26,0.42); font: 600 0.52rem/1 var(--mono); }

.contact-section {
  display: grid;
  grid-template-columns: 0.35fr 1.3fr 0.75fr;
  gap: clamp(2rem, 5vw, 6rem);
  align-items: end;
  background: var(--green);
}

.appendix-callout {
  padding: clamp(4rem, 7vw, 7rem) var(--page-x);
  display: grid;
  grid-template-columns: minmax(15rem, 0.8fr) minmax(20rem, 1.25fr) auto;
  gap: clamp(2rem, 5vw, 6rem);
  align-items: center;
  color: var(--white);
  border-top: 1px solid rgba(212,175,55,0.35);
  border-bottom: 1px solid rgba(212,175,55,0.35);
  background: var(--green-black);
}

.appendix-callout h2 {
  margin: 1.2rem 0 0;
  font: 530 clamp(2.6rem, 4.5vw, 5.2rem)/0.95 var(--display);
  letter-spacing: -0.06em;
}

.appendix-callout > p { max-width: 46rem; margin: 0; color: #a9bdb3; font-size: 0.95rem; line-height: 1.6; }

.appendix-hero {
  padding: clamp(5.5rem, 10vw, 10rem) var(--page-x) clamp(4.5rem, 8vw, 8rem);
  color: var(--white);
  background:
    radial-gradient(circle at 85% 50%, rgba(212,175,55,0.12), transparent 34rem),
    var(--green);
}

.appendix-hero h1 {
  max-width: 12ch;
  margin: 1.7rem 0 0;
  font: 500 clamp(4rem, 7.5vw, 8rem)/0.89 var(--display);
  letter-spacing: -0.068em;
}

.appendix-hero h1 em { color: var(--gold); font-style: normal; }
.appendix-hero > p:not(.eyebrow) { max-width: 55rem; margin: 2rem 0 0; color: #c5d4cc; font-size: clamp(1.05rem, 1.5vw, 1.28rem); line-height: 1.6; }
.appendix-hero dl {
  width: min(100%, 90rem);
  margin: clamp(3rem, 6vw, 6rem) 0 0;
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  border-top: 1px solid var(--line-strong);
}
.appendix-hero dl > div { min-height: 8rem; padding: 1rem 1.2rem; border-left: 1px solid var(--line); }
.appendix-hero dl > div:first-child { padding-left: 0; border-left: 0; }
.appendix-hero dt { color: #8fa69a; font: 600 0.53rem/1.4 var(--mono); text-transform: uppercase; }
.appendix-hero dd { margin: 2.4rem 0 0; color: var(--white); font: 560 0.85rem/1.4 var(--mono); }

.contact-section h2 em { color: var(--gold); font-style: normal; }
.contact-section > div p { margin: 0 0 2rem; color: #afc1b8; font-size: 1.03rem; line-height: 1.55; }

.final-caveat { border-bottom: 0; }

footer {
  min-height: 5rem;
  padding: 1.5rem var(--page-x);
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 2rem;
  color: #94aa9f;
  border-top: 1px solid var(--line);
  background: var(--green);
  font: 500 0.58rem/1.4 var(--mono);
}

footer strong { color: var(--white); font-family: var(--sans); font-size: 0.88rem; }
footer a { color: var(--gold); text-transform: uppercase; }

@media (max-width: 70rem) {
  .product-hero { grid-template-columns: 1fr; }
  .hero-copy { max-width: 58rem; }
  .hero-copy h1 { max-width: 11ch; }
  .campus-instrument { width: min(100%, 72rem); }
  .system-flow { grid-template-columns: minmax(7rem, 0.95fr) minmax(1.6rem, 0.25fr) minmax(7rem, 1fr) minmax(1.6rem, 0.25fr) minmax(7rem, 1fr) minmax(1.6rem, 0.25fr) minmax(6.5rem, 0.8fr); }
  .hall-list { grid-template-columns: 1fr; }
}

@media (max-width: 72rem) {
  .acceptance-method--wide { display: none; }
  .acceptance-method--compact {
    display: block;
    width: min(100%, 32rem);
    margin-inline: auto;
  }
}

@media (max-width: 66rem) {
  .site-header {
    min-height: auto;
    padding: 1rem 1.5rem 0;
    grid-template-columns: 1fr auto;
    row-gap: 0.8rem;
  }

  .site-header nav {
    grid-column: 1 / -1;
    width: 100%;
    padding: 0.8rem 0 0.95rem;
    overflow-x: auto;
    border-top: 1px solid var(--line-dark);
    scrollbar-width: none;
  }

  .header-cta { grid-column: 2; grid-row: 1; }

  .site-header nav::-webkit-scrollbar { display: none; }
  .section-head { grid-template-columns: 0.35fr 1.05fr; }
  .section-head > p:last-child { grid-column: 2; }
  .oem-reference { grid-template-columns: 0.55fr 1.45fr; }
  .oem-reference > p { grid-column: 2; }
  .oem-reference .source-line { grid-column: 2; }
  .hall-feeders { grid-template-columns: repeat(5, 1fr); }
  .engineering-register { grid-template-columns: 1fr; }
  .electrical-math { grid-template-columns: repeat(2, 1fr); }
  .thermal-equation { grid-template-columns: 1fr; }
  .thermal-equation > div { padding-left: 0; border-top: 1px solid var(--line); border-left: 0; }
  .thermal-equation > div:first-child { border-top: 0; }
  .thermal-equation p { margin-top: 3.5rem; }
  .acceptance-instrument { grid-template-columns: 1fr; }
  .acceptance-instrument > article { border-right: 0; border-bottom: 1px solid var(--line); }
  .acceptance-steps { grid-template-columns: repeat(2, 1fr); }
  .acceptance-steps li:nth-child(2) { border-right: 0; }
  .acceptance-steps li:nth-child(-n+2) { border-bottom: 1px solid var(--line-dark); }
  .contact-section { grid-template-columns: 0.35fr 1.05fr; }
  .contact-section > div { grid-column: 2; }
  .product-chain { grid-template-columns: repeat(2, 1fr); }
  .product-chain li { min-height: 13rem; border-top: 1px solid #36574e; }
  .product-chain li:nth-child(-n+2) { border-top: 0; }
  .product-chain li::after { display: none; }
  .product-chain .chain-concept { grid-column: 1 / -1; min-height: 11rem; }
  .appendix-callout { grid-template-columns: 0.8fr 1.2fr; }
  .appendix-callout .button { grid-column: 2; justify-self: start; }
  .appendix-hero dl { grid-template-columns: repeat(2, 1fr); }
  .appendix-hero dl > div:nth-child(3) { padding-left: 0; border-left: 0; }
}

@media (max-width: 52rem) {
  .wordmark span { display: none; }
  .product-hero { min-height: auto; padding: 5rem 1.5rem; }
  .hero-copy h1 { font-size: clamp(3.35rem, 13vw, 5.5rem); }
  .hero-actions { align-items: flex-start; flex-direction: column; }

  .instrument-head,
  .drawing-head { align-items: flex-start; flex-direction: column; gap: 0.7rem; }
  .instrument-head > strong,
  .drawing-head > strong { text-align: left; }

  .campus-boundary-topology--wide { display: none; }
  .campus-boundary-topology--compact {
    display: block;
    width: min(100%, 32rem);
    margin-inline: auto;
  }

  .system-flow {
    min-height: 0;
    grid-template-columns: 1fr;
    gap: 0;
  }

  .system-flow > li:not(.flow-link) { min-height: 9rem; }
  .flow-link { min-height: 2rem; }
  .flow-link i { width: 1px; height: 2rem; }
  .flow-link i::after { transform: translate(-0.29rem,1.55rem) rotate(90deg); }
  .flow-link span { top: 0.75rem; left: calc(50% + 0.9rem); }

  .heat-path { grid-template-columns: 1fr auto; }
  .heat-path i { display: none; }
  .heat-path small { max-width: none; grid-column: 1 / -1; }
  .instrument-ledger { grid-template-columns: repeat(2, 1fr); }
  .instrument-ledger > div:nth-child(n+3) { border-top: 1px solid var(--line); }
  .instrument-ledger > div:nth-child(odd) { border-left: 0; }

  .concept-caveat,
  .final-caveat { grid-template-columns: 1fr; gap: 0.8rem; padding: 1.2rem 1.5rem; }
  .light-section,
  .dark-section,
  .contact-section,
  .appendix-callout,
  .appendix-hero { padding: 5rem 1.5rem; }
  .section-head,
  .contact-section { grid-template-columns: 1fr; gap: 2rem; }
  .section-head > p:last-child,
  .contact-section > div { grid-column: auto; }
  .section-head h2,
  .contact-section h2 { font-size: clamp(3rem, 15vw, 5rem); }

  .equation-ledger { grid-template-columns: 1fr; }
  .equation-ledger article,
  .equation-ledger article:first-child,
  .equation-ledger article:last-child { min-height: 0; padding: 1.3rem 0 2rem; border-top: 1px solid var(--line-dark); border-left: 0; }
  .equation-ledger article:first-child { border-top: 0; }
  .equation { margin-top: 2.8rem; }
  .boundary-register > div,
  .engineering-register > div { grid-template-columns: 1fr; gap: 0.45rem; }
  .oem-reference { grid-template-columns: 1fr; }
  .oem-reference > p { grid-column: auto; }
  .oem-reference .source-line { grid-column: auto; }
  .oem-reference dl > div { grid-template-columns: 1fr; }
  .oem-reference dd { text-align: left; }

  .hall-instrument { margin-inline: -0.75rem; width: auto; }
  .hall-instrument > header,
  .hall-instrument > footer { align-items: flex-start; flex-direction: column; gap: 0.6rem; }
  .hall-list { padding: 0.8rem; }
  .hall-list li { grid-template-columns: repeat(5, 1fr); padding: 1rem 0.2rem; }
  .hall-list li > div { grid-column: 1 / -1; margin-bottom: 0.8rem; padding-inline: 0.5rem; }
  .hall-list li > i { height: 1.8rem; }
  .hall-instrument > footer { align-items: flex-start; }

  .electrical-drawing,
  .thermal-drawing { margin-inline: -0.75rem; width: auto; }
  .electrical-body { padding: 1rem 0.75rem; }
  .electrical-svg-shell { padding: 0.6rem; }
  .electrical-topology--wide { display: none; }
  .electrical-topology--compact { display: block; width: min(100%, 32rem); margin-inline: auto; }
  .thermal-svg-shell { padding: 0.6rem; }
  .thermal-topology--wide { display: none; }
  .thermal-topology--compact { display: block; width: min(100%, 32rem); margin-inline: auto; }
  .poc-node { grid-template-columns: 1fr; }
  .poc-node b,
  .poc-node small { grid-column: auto; text-align: left; }
  .meter-boundary { align-items: flex-start; flex-direction: column; }
  .meter-boundary strong { text-align: left; }
  .main-transformers { grid-template-columns: 1fr; gap: 0.7rem; }
  .main-transformers li { min-height: 6rem; }
  .main-transformers li::before { display: none; }
  .hv-buses { grid-template-columns: 1fr; gap: 0.4rem; }
  .hall-feeders { grid-template-columns: 1fr; row-gap: 1rem; }
  .hall-feeders li { min-height: 8.5rem; }
  .hall-feeders li::before,
  .hall-feeders li::after { display: none; }
  .local-distribution { align-items: flex-start; flex-direction: column; }
  .local-distribution strong { text-align: left; }
  .electrical-math { grid-template-columns: 1fr; }
  .electrical-math article { min-height: 9rem; }

  .flow-table > div,
  .pue-sensitivity > div,
  .rack-sensitivity > div,
  .failure-table > div { grid-template-columns: 1fr; }
  .flow-table .table-head,
  .pue-sensitivity .table-head,
  .rack-sensitivity .table-head,
  .failure-table .table-head { display: none; }
  .flow-table > div > *,
  .pue-sensitivity > div > *,
  .rack-sensitivity > div > *,
  .failure-table > div > * { border-right: 0; }
  .flow-table > div > strong,
  .pue-sensitivity > div > strong,
  .rack-sensitivity > div > strong,
  .failure-table > div > strong { padding-bottom: 0.3rem; }
  .flow-table > div > span,
  .pue-sensitivity > div > span,
  .rack-sensitivity > div > span,
  .failure-table > div > span { padding-top: 0.3rem; padding-bottom: 0.3rem; }
  .flow-table p,
  .pue-sensitivity p,
  .rack-sensitivity p,
  .failure-table p { padding-top: 0.3rem; }

  .thermal-equation > div { min-height: 14rem; }
  .thermal-equation p { margin-top: 3rem; font-size: clamp(1.55rem, 8.5vw, 2.7rem); }
  .acceptance-method-figure { margin-inline: -0.75rem; width: auto; }
  .acceptance-instrument { margin-inline: -0.75rem; width: auto; }
  .acceptance-instrument > article,
  .lcuc-equation { min-height: 18rem; padding: 1.5rem; }
  .lcuc-equation > p { align-items: flex-start; flex-direction: column; margin-top: 3rem; }
  .acceptance-steps { grid-template-columns: 1fr; }
  .acceptance-steps li { min-height: 0; padding: 1.2rem 0 1.8rem; border-right: 0; border-bottom: 1px solid var(--line-dark); }
  .acceptance-steps h3 { margin-top: 1rem; }

  .gate-list li { grid-template-columns: 2rem 1fr; }
  .gate-list b { grid-column: 2; justify-self: start; }
  .product-chain { grid-template-columns: 1fr; }
  .product-chain li,
  .product-chain li:nth-child(-n+2),
  .product-chain .chain-concept { min-height: 10rem; grid-column: auto; border-top: 1px solid #36574e; border-left: 0; }
  .product-chain li:first-child { border-top: 0; }
  .appendix-callout { grid-template-columns: 1fr; }
  .appendix-callout .button { grid-column: auto; }
  .appendix-hero h1 { font-size: clamp(3.35rem, 13vw, 5.5rem); }
  .appendix-hero dl { grid-template-columns: 1fr; }
  .appendix-hero dl > div,
  .appendix-hero dl > div:nth-child(3) { min-height: 6.5rem; padding-left: 0; border-top: 1px solid var(--line); border-left: 0; }
  .appendix-hero dl > div:first-child { border-top: 0; }
  .appendix-hero dd { margin-top: 1.6rem; }
  footer { padding: 1.5rem; align-items: flex-start; flex-direction: column; }
}

@media (max-width: 25rem) {
  .site-header { padding-inline: 1rem; }
  .header-cta { font-size: 0.53rem; }
  .site-header nav {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.85rem 1rem;
    overflow-x: visible;
  }
  .product-hero,
  .light-section,
  .dark-section,
  .contact-section { padding-left: 1rem; padding-right: 1rem; }
  .hero-copy h1 { font-size: clamp(3rem, 15vw, 4.3rem); }
  .instrument-body { padding: 0.75rem; }
  .system-flow > li:not(.flow-link) { padding: 0.8rem; }
  .instrument-ledger { grid-template-columns: 1fr; }
  .instrument-ledger > div,
  .instrument-ledger > div:nth-child(4) { border-top: 1px solid var(--line); border-left: 0; }
  .instrument-ledger > div:first-child { border-top: 0; }
  .concept-caveat,
  .final-caveat { padding-inline: 1rem; }
  .hall-instrument,
  .electrical-drawing,
  .thermal-drawing,
  .acceptance-method-figure,
  .acceptance-instrument { margin-inline: 0; }
}

/* MW50 allocation accounting hierarchy: static status map, not physical topology. */
.allocation-accounting-figure {
  width: min(100%, 90rem);
  min-width: 0;
  margin: clamp(4rem, 7vw, 7rem) auto 0;
  color: var(--white);
  border: 1px solid #31544b;
  background: #071e1c;
}

.allocation-accounting-shell {
  padding: clamp(0.45rem, 1vw, 0.8rem);
  overflow: hidden;
  background: #071e1c;
}

.allocation-accounting-svg {
  display: block;
  width: 100%;
  height: auto;
  overflow: visible;
}

.allocation-accounting-svg--compact { display: none; }

.allocation-accounting-svg * {
  animation: none !important;
  transition: none !important;
}

.allocation-accounting-svg text {
  font-family: var(--mono);
  text-rendering: geometricPrecision;
}

.allocation-accounting-svg .aam-bg { fill: #071e1c; }

.allocation-accounting-svg .aam-frame,
.allocation-accounting-svg .aam-header,
.allocation-accounting-svg .aam-card,
.allocation-accounting-svg .aam-card-rule,
.allocation-accounting-svg .aam-divider,
.allocation-accounting-svg .aam-equation-tile,
.allocation-accounting-svg .aam-summary,
.allocation-accounting-svg .aam-guardrail {
  vector-effect: non-scaling-stroke;
}

.allocation-accounting-svg .aam-frame {
  fill: none;
  stroke: rgba(230, 239, 233, 0.25);
  stroke-width: 1;
}

.allocation-accounting-svg .aam-header {
  fill: #0b2925;
  stroke: rgba(230, 239, 233, 0.2);
  stroke-width: 1;
}

.allocation-accounting-svg .aam-card {
  stroke-width: 1;
}

.allocation-accounting-svg .aam-card--operating {
  fill: #0d302a;
  stroke: rgba(212, 175, 55, 0.7);
}

.allocation-accounting-svg .aam-card--reference {
  fill: #0a2925;
  stroke: rgba(159, 184, 173, 0.42);
}

.allocation-accounting-svg .aam-card--boundary {
  fill: #102e29;
  stroke: #d4af37;
  stroke-width: 1.5;
}

.allocation-accounting-svg .aam-card-rule {
  stroke-width: 3;
}

.allocation-accounting-svg .aam-card-rule--operating,
.allocation-accounting-svg .aam-card-rule--boundary { stroke: #d4af37; }
.allocation-accounting-svg .aam-card-rule--reference { stroke: #6f897e; }

.allocation-accounting-svg .aam-divider {
  stroke: rgba(230, 239, 233, 0.18);
  stroke-width: 1;
}

.allocation-accounting-svg .aam-equation-tile {
  fill: #102a26;
  stroke: #a68d3f;
  stroke-width: 1;
}

.allocation-accounting-svg .aam-summary {
  fill: #0c302a;
  stroke: rgba(212, 175, 55, 0.62);
  stroke-width: 1;
}

.allocation-accounting-svg .aam-guardrail {
  fill: #102622;
  stroke: rgba(212, 175, 55, 0.65);
  stroke-width: 1;
}

.allocation-accounting-svg .aam-kicker {
  fill: var(--gold-light);
  font-size: 13px;
  font-weight: 700;
  letter-spacing: 0.55px;
}

.allocation-accounting-svg .aam-stamp,
.allocation-accounting-svg .aam-note {
  fill: #a9beb4;
  font-size: 12px;
  font-weight: 650;
  letter-spacing: 0.2px;
}

.allocation-accounting-svg .aam-heading {
  fill: var(--white);
  font-family: var(--display);
  font-size: 16px;
  font-weight: 620;
  letter-spacing: -0.15px;
}

.allocation-accounting-svg .aam-status {
  fill: #d9c36c;
  font-size: 10.5px;
  font-weight: 700;
  letter-spacing: -0.08px;
}

.allocation-accounting-svg .aam-code {
  fill: var(--white);
  font-family: var(--display);
  font-size: 42px;
  font-weight: 560;
  letter-spacing: -1.7px;
}

.allocation-accounting-svg .aam-label,
.allocation-accounting-svg .aam-summary-label {
  fill: var(--gold-light);
  font-size: 10.5px;
  font-weight: 700;
  letter-spacing: 0.3px;
}

.allocation-accounting-svg .aam-copy {
  fill: #bfd0c8;
  font-size: 11.5px;
  font-weight: 560;
  letter-spacing: -0.08px;
}

.allocation-accounting-svg .aam-multiplier {
  fill: var(--gold-light);
  font-family: var(--display);
  font-size: 18px;
  font-weight: 650;
}

.allocation-accounting-svg .aam-accounting {
  fill: #a9beb4;
  font-size: 8.5px;
  font-weight: 700;
  letter-spacing: -0.15px;
}

.allocation-accounting-svg .aam-summary-equation {
  fill: var(--white);
  font-family: var(--display);
  font-size: 17px;
  font-weight: 620;
  letter-spacing: -0.2px;
}

.allocation-accounting-svg .aam-summary-boundary {
  fill: var(--gold-light);
  font-size: 12px;
  font-weight: 700;
}

.allocation-accounting-svg .aam-guardrail-text {
  fill: #a9beb4;
  font-size: 12px;
  font-weight: 650;
}

.allocation-accounting-svg .aam-guardrail-status {
  fill: var(--gold-light);
  font-size: 12px;
  font-weight: 700;
}

.allocation-accounting-svg .aam-kicker--compact { font-size: 15px; letter-spacing: 0.1px; }
.allocation-accounting-svg .aam-stamp--compact { font-size: 13px; letter-spacing: 0; }
.allocation-accounting-svg .aam-heading--compact { font-size: 15px; }
.allocation-accounting-svg .aam-status--compact { font-size: 13px; letter-spacing: -0.12px; }
.allocation-accounting-svg .aam-code--compact { font-size: 38px; letter-spacing: -1.2px; }
.allocation-accounting-svg .aam-label--compact { font-size: 12.5px; }
.allocation-accounting-svg .aam-copy--compact { font-size: 13.5px; letter-spacing: -0.16px; }

.allocation-accounting-svg .aam-equation-compact {
  fill: var(--gold-light);
  font-size: 13.5px;
  font-weight: 700;
  letter-spacing: -0.15px;
}

.allocation-accounting-svg .aam-summary-label--compact,
.allocation-accounting-svg .aam-summary-equation--compact,
.allocation-accounting-svg .aam-summary-boundary--compact,
.allocation-accounting-svg .aam-guardrail-text--compact,
.allocation-accounting-svg .aam-guardrail-status--compact {
  font-size: 13px;
  letter-spacing: -0.16px;
}

.allocation-accounting-figure figcaption {
  margin: 0;
  padding: 0.8rem 1rem;
  color: #8ea49a;
  border-top: 1px solid var(--line);
  font: 550 0.6rem/1.58 var(--mono);
}

.allocation-accounting-native {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  margin: -1px !important;
  padding: 0 !important;
  overflow: hidden !important;
  clip: rect(0 0 0 0) !important;
  clip-path: inset(50%) !important;
  white-space: normal !important;
  border: 0 !important;
}

.allocation-accounting-native ol {
  width: 1px;
  min-width: 0;
  margin: 0;
  padding: 0;
  display: block;
}

@media (max-width: 72rem) {
  .allocation-accounting-svg--wide { display: none; }

  .allocation-accounting-svg--compact {
    display: block;
    width: min(100%, 32rem);
    margin-inline: auto;
  }
}

@media (max-width: 52rem) {
  .allocation-accounting-figure {
    width: auto;
    margin-inline: -0.75rem;
  }

  .allocation-accounting-shell { padding: 0.35rem; }
  .allocation-accounting-figure figcaption { padding: 0.8rem 1rem; font-size: 0.63rem; }
}

@media print {
  .allocation-accounting-figure { display: none; }

  .allocation-accounting-native {
    position: static !important;
    width: 100% !important;
    height: auto !important;
    margin: 1rem 0 0 !important;
    overflow: visible !important;
    clip: auto !important;
    clip-path: none !important;
  }

  .allocation-accounting-native ol {
    width: 100%;
    padding-left: 1.5rem;
  }

  .allocation-accounting-native li { margin-bottom: 0.75rem; }
}

@media (forced-colors: active) {
  .allocation-accounting-figure { display: none; }

  .allocation-accounting-native {
    position: static !important;
    width: 100% !important;
    height: auto !important;
    margin: 1rem 0 0 !important;
    overflow: visible !important;
    clip: auto !important;
    clip-path: none !important;
    color: CanvasText;
    background: Canvas;
  }

  .allocation-accounting-native ol {
    width: 100%;
    padding-left: 1.5rem;
  }
}

@media print {
  .campus-boundary-topology--wide { display: block; }
  .campus-boundary-topology--compact { display: none; }
  .acceptance-method--wide { display: block; }
  .acceptance-method--compact { display: none; }
}

@media (forced-colors: active) {
  .acceptance-method .acceptance-method-bg,
  .acceptance-method .acceptance-method-statement,
  .acceptance-method .acceptance-method-card,
  .acceptance-method .acceptance-method-status-box,
  .acceptance-method .acceptance-method-no-claim { fill: Canvas; stroke: CanvasText; }
  .acceptance-method .acceptance-method-frame,
  .acceptance-method .acceptance-method-rule,
  .acceptance-method .acceptance-method-flow { stroke: CanvasText; }
  .acceptance-method .acceptance-method-card--formula,
  .acceptance-method .acceptance-method-no-claim,
  .acceptance-method .acceptance-method-rule--formula { stroke: Highlight; }
  .acceptance-method .acceptance-method-arrow { fill: Highlight; }
  .acceptance-method text { fill: CanvasText !important; }

  .campus-boundary-topology .campus-map-boundary,
  .campus-boundary-topology .campus-map-card,
  .campus-boundary-topology .campus-map-heat,
  .campus-boundary-topology .campus-map-open-rail { fill: Canvas; stroke: CanvasText; }
  .campus-boundary-topology .campus-map-boundary--open,
  .campus-boundary-topology .campus-map-open-rail { stroke: CanvasText; }
  .campus-boundary-topology .campus-map-card--declared,
  .campus-boundary-topology .campus-map-legend-marker--declared,
  .campus-boundary-topology .campus-map-rule--declared,
  .campus-boundary-topology .campus-map-flow--declared { stroke: Highlight; }
  .campus-boundary-topology .campus-map-card--target,
  .campus-boundary-topology .campus-map-rule--target,
  .campus-boundary-topology .campus-map-flow--accepted { stroke: Highlight; }
  .campus-boundary-topology .campus-map-arrow--declared,
  .campus-boundary-topology .campus-map-arrow--accepted,
  .campus-boundary-topology .campus-map-arrow--conditional { fill: Highlight; }
  .campus-boundary-topology text { fill: CanvasText !important; }

  .electrical-topology .topology-background,
  .electrical-topology .topology-box,
  .electrical-topology .topology-local-band { fill: Canvas; }
  .electrical-topology .topology-grid-line,
  .electrical-topology .topology-reference-line,
  .electrical-topology .topology-open-line,
  .electrical-topology .topology-locked-line,
  .electrical-topology .topology-transformer-ring,
  .electrical-topology .topology-box,
  .electrical-topology .topology-local-band { stroke: CanvasText; }
  .electrical-topology .topology-box--locked,
  .electrical-topology .topology-lock-marker,
  .electrical-topology .topology-cell { stroke: Highlight; }
  .electrical-topology .topology-lock-marker,
  .electrical-topology .topology-cell { fill: Highlight; }
  .electrical-topology text { fill: CanvasText !important; }

  .thermal-topology .thermal-background,
  .thermal-topology .thermal-box,
  .thermal-topology .thermal-row,
  .thermal-topology .thermal-band,
  .thermal-topology .thermal-no-claim-rail { fill: Canvas; }
  .thermal-topology .thermal-grid-line,
  .thermal-topology .thermal-box,
  .thermal-topology .thermal-row,
  .thermal-topology .thermal-band,
  .thermal-topology .thermal-no-claim-rail,
  .thermal-topology .thermal-rule,
  .thermal-topology .thermal-physics-line,
  .thermal-topology .thermal-flow-line,
  .thermal-topology .thermal-physics-marker,
  .thermal-topology .thermal-scenario-marker,
  .thermal-topology .thermal-open-marker { stroke: CanvasText; }
  .thermal-topology .thermal-box--declared,
  .thermal-topology .thermal-declared-marker { stroke: Highlight; }
  .thermal-topology .thermal-declared-marker,
  .thermal-topology .thermal-flow-arrow { fill: Highlight; }
  .thermal-topology text { fill: CanvasText !important; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { transition-duration: 0.01ms !important; }
}

/* Failure-domain screening register: status comparison, never a topology. */
.failure-domain-figure {
  width: min(100%, 90rem);
  margin: clamp(4rem, 7vw, 7rem) auto 0;
  color: var(--white);
  border: 1px solid var(--line-strong);
  background: #071e1c;
}

.failure-domain-shell {
  padding: clamp(0.75rem, 2vw, 1.5rem);
  overflow: hidden;
  background: #071e1c;
}

.failure-domain-svg {
  display: block;
  width: 100%;
  height: auto;
  overflow: visible;
}

.failure-domain-svg--compact { display: none; }

.failure-domain-svg * {
  animation: none !important;
  transition: none !important;
}

.failure-domain-figure figcaption {
  margin: 0;
  padding: 0.9rem clamp(1rem, 2.5vw, 1.6rem);
  color: var(--muted);
  border-top: 1px solid var(--line);
  background: #091f1c;
  font: 500 0.64rem/1.62 var(--mono);
  letter-spacing: 0.025em;
}

.failure-domain-svg text {
  font-family: var(--mono);
  text-rendering: geometricPrecision;
}

.failure-domain-svg .failure-bg { fill: #071e1c; }

.failure-domain-svg .failure-frame,
.failure-domain-svg .failure-row,
.failure-domain-svg .failure-card,
.failure-domain-svg .failure-guardrail,
.failure-domain-svg .failure-rule,
.failure-domain-svg .failure-divider {
  vector-effect: non-scaling-stroke;
}

.failure-domain-svg .failure-frame {
  fill: none;
  stroke: #36574e;
  stroke-width: 1;
}

.failure-domain-svg .failure-row,
.failure-domain-svg .failure-card {
  fill: #0d2925;
  stroke: rgba(169, 190, 180, 0.25);
  stroke-width: 1;
}

.failure-domain-svg .failure-row--alt,
.failure-domain-svg .failure-card--alt { fill: #102f2b; }

.failure-domain-svg .failure-divider,
.failure-domain-svg .failure-rule {
  fill: none;
  stroke: rgba(169, 190, 180, 0.22);
  stroke-width: 1;
}

.failure-domain-svg .failure-rule--header { stroke: rgba(227, 198, 93, 0.58); }

.failure-domain-svg .failure-guardrail {
  fill: #151f1d;
  stroke: rgba(227, 198, 93, 0.72);
  stroke-width: 1;
}

.failure-domain-svg .failure-kicker {
  fill: var(--gold-light);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 1.35px;
}

.failure-domain-svg .failure-top-status {
  fill: var(--white);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.72px;
}

.failure-domain-svg .failure-top-note {
  fill: var(--muted);
  font-size: 10.5px;
  font-weight: 600;
  letter-spacing: 0.62px;
}

.failure-domain-svg .failure-column,
.failure-domain-svg .failure-id,
.failure-domain-svg .failure-card-label {
  fill: var(--gold-light);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.9px;
}

.failure-domain-svg .failure-domain {
  fill: var(--white);
  font-family: var(--display);
  font-size: 14.5px;
  font-weight: 650;
  letter-spacing: 0.2px;
}

.failure-domain-svg .failure-posture {
  fill: #dce8e2;
  font-size: 12.5px;
  font-weight: 650;
  letter-spacing: 0.22px;
}

.failure-domain-svg .failure-closure {
  fill: var(--muted);
  font-size: 12px;
  font-weight: 560;
  letter-spacing: 0.12px;
}

.failure-domain-svg .failure-status {
  fill: var(--gold-light);
  font-size: 10.5px;
  font-weight: 700;
  letter-spacing: 0.42px;
}

.failure-domain-svg .failure-guardrail-title {
  fill: var(--white);
  font-size: 13px;
  font-weight: 700;
  letter-spacing: 0.52px;
}

.failure-domain-svg .failure-guardrail-method {
  fill: var(--gold-light);
  font-size: 11.5px;
  font-weight: 700;
  letter-spacing: 0.44px;
}

.failure-domain-svg .failure-no-claim {
  fill: var(--muted);
  font-size: 11px;
  font-weight: 650;
  letter-spacing: 0.34px;
}

.failure-domain-svg .failure-kicker--compact {
  font-size: 14px;
  letter-spacing: 0.72px;
}

.failure-domain-svg .failure-top-status--compact {
  font-size: 12.5px;
  letter-spacing: 0.24px;
}

.failure-domain-svg .failure-top-note--compact {
  font-size: 12px;
  letter-spacing: 0.18px;
}

.failure-domain-svg .failure-id--compact,
.failure-domain-svg .failure-card-label {
  font-size: 12.5px;
  letter-spacing: 0.46px;
}

.failure-domain-svg .failure-domain--compact {
  font-size: 15px;
  letter-spacing: 0;
}

.failure-domain-svg .failure-posture--compact,
.failure-domain-svg .failure-closure--compact {
  font-size: 13.5px;
  letter-spacing: -0.18px;
}

.failure-domain-svg .failure-status--compact {
  font-size: 12.5px;
  letter-spacing: 0.08px;
}

.failure-domain-svg .failure-guardrail-title--compact {
  font-size: 13.5px;
  letter-spacing: 0;
}

.failure-domain-svg .failure-guardrail-method--compact,
.failure-domain-svg .failure-no-claim--compact {
  font-size: 12.5px;
  letter-spacing: -0.1px;
}

/* Keep the exact native register in the accessibility tree without duplicating it visually. */
.failure-domain-native {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important;
  clip-path: inset(50%) !important;
  white-space: nowrap !important;
  border: 0 !important;
}

.failure-domain-native .table-head { display: grid !important; }

@media (max-width: 72rem) {
  .failure-domain-svg--wide { display: none; }
  .failure-domain-svg--compact {
    display: block;
    width: min(100%, 32rem);
    margin-inline: auto;
  }
}

@media (max-width: 52rem) {
  .failure-domain-figure {
    width: auto;
    margin-inline: -0.75rem;
  }

  .failure-domain-shell { padding: 0.5rem 0.25rem; }

  .failure-domain-figure figcaption {
    padding: 0.85rem 1rem;
    font-size: 0.62rem;
  }
}

@media (max-width: 25rem) {
  .failure-domain-figure { margin-inline: -1rem; }
}

@media print {
  .failure-domain-svg--wide { display: block; }
  .failure-domain-svg--compact { display: none; }
}

@media (forced-colors: active) {
  .failure-domain-figure,
  .failure-domain-shell,
  .failure-domain-figure figcaption { color: CanvasText; background: Canvas; border-color: CanvasText; }
  .failure-domain-svg .failure-bg,
  .failure-domain-svg .failure-row,
  .failure-domain-svg .failure-card,
  .failure-domain-svg .failure-guardrail { fill: Canvas; stroke: CanvasText; }
  .failure-domain-svg .failure-frame,
  .failure-domain-svg .failure-divider,
  .failure-domain-svg .failure-rule { stroke: CanvasText; }
  .failure-domain-svg .failure-rule--header,
  .failure-domain-svg .failure-guardrail { stroke: Highlight; }
  .failure-domain-svg text { fill: CanvasText !important; }
}

/* MW50 rack-side arithmetic screening register */
.rack-arithmetic-figure {
  width: min(100%, 90rem);
  margin: 1.5rem auto 0;
  color: var(--white);
  border: 1px solid #36574e;
  background: var(--green-black);
}

.rack-arithmetic-shell {
  padding: clamp(0.65rem, 1.6vw, 1.25rem);
  overflow: hidden;
  background: #071e1c;
}

.rack-arithmetic-svg {
  display: block;
  width: 100%;
  height: auto;
  overflow: visible;
}

.rack-arithmetic-svg--compact { display: none; }

.rack-arithmetic-svg * {
  animation: none !important;
  transition: none !important;
}

.rack-arithmetic-svg text {
  font-family: var(--mono);
  text-rendering: geometricPrecision;
}

.rack-arithmetic-svg .ras-bg { fill: #071e1c; }

.rack-arithmetic-svg .ras-frame,
.rack-arithmetic-svg .ras-row,
.rack-arithmetic-svg .ras-card,
.rack-arithmetic-svg .ras-open,
.rack-arithmetic-svg .ras-bar-track,
.rack-arithmetic-svg .ras-bar-rack,
.rack-arithmetic-svg .ras-bar-split {
  vector-effect: non-scaling-stroke;
}

.rack-arithmetic-svg .ras-frame {
  fill: none;
  stroke: rgba(230, 239, 233, 0.27);
  stroke-width: 1;
}

.rack-arithmetic-svg .ras-row,
.rack-arithmetic-svg .ras-card {
  fill: #0c2d29;
  stroke: rgba(230, 239, 233, 0.25);
  stroke-width: 1;
}

.rack-arithmetic-svg .ras-open {
  fill: #0b2824;
  stroke: #a28b3d;
  stroke-width: 1;
  stroke-dasharray: 7 6;
}

.rack-arithmetic-svg .ras-bar-track {
  fill: #162e2a;
  stroke: #6f827a;
  stroke-width: 1;
}

.rack-arithmetic-svg .ras-bar-rack {
  fill: #62776f;
  stroke: #d7e2dc;
  stroke-width: 1;
}

.rack-arithmetic-svg .ras-bar-split {
  stroke: var(--gold);
  stroke-width: 2;
}

.rack-arithmetic-svg .ras-kicker,
.rack-arithmetic-svg .ras-stage,
.rack-arithmetic-svg .ras-card-status {
  fill: var(--gold-light);
  font-size: 15px;
  font-weight: 700;
  letter-spacing: 1.15px;
}

.rack-arithmetic-svg .ras-stamp,
.rack-arithmetic-svg .ras-status,
.rack-arithmetic-svg .ras-row-status {
  fill: #a9beb4;
  font-size: 13px;
  font-weight: 650;
  letter-spacing: 0.45px;
}

.rack-arithmetic-svg .ras-heading {
  fill: var(--white);
  font-family: var(--display);
  font-size: 24px;
  font-weight: 620;
  letter-spacing: -0.35px;
}

.rack-arithmetic-svg .ras-note,
.rack-arithmetic-svg .ras-guard,
.rack-arithmetic-svg .ras-guard-copy {
  fill: #a9beb4;
  font-size: 12.5px;
  font-weight: 600;
  letter-spacing: 0.2px;
}

.rack-arithmetic-svg .ras-guard {
  fill: var(--gold-light);
  font-weight: 700;
}

.rack-arithmetic-svg .ras-row-title,
.rack-arithmetic-svg .ras-guard-title {
  fill: var(--white);
  font-family: var(--display);
  font-size: 18px;
  font-weight: 620;
  letter-spacing: -0.15px;
}

.rack-arithmetic-svg .ras-row-note {
  fill: #a9beb4;
  font-size: 12.5px;
  font-weight: 600;
}

.rack-arithmetic-svg .ras-equation {
  fill: var(--white);
  font-family: var(--display);
  font-size: 17px;
  font-weight: 650;
}

.rack-arithmetic-svg .ras-bar-label {
  fill: var(--white);
  font-size: 13.5px;
  font-weight: 650;
}

.rack-arithmetic-svg .ras-bar-label--right { fill: var(--gold-light); }

.rack-arithmetic-svg .ras-label {
  fill: #a9beb4;
  font-size: 14.5px;
  font-weight: 650;
  letter-spacing: 0.05px;
}

.rack-arithmetic-svg .ras-value-small {
  fill: var(--gold-light);
  font-family: var(--display);
  font-size: 19px;
  font-weight: 650;
}

.rack-arithmetic-svg .ras-kicker--compact {
  font-size: 15px;
  letter-spacing: 0.45px;
}

.rack-arithmetic-svg .ras-stamp--compact,
.rack-arithmetic-svg .ras-status--compact,
.rack-arithmetic-svg .ras-note--compact {
  font-size: 13.5px;
  letter-spacing: 0;
}

.rack-arithmetic-svg .ras-heading--compact {
  font-size: 17px;
  letter-spacing: -0.2px;
}

.rack-arithmetic-svg .ras-stage--compact,
.rack-arithmetic-svg .ras-card-status {
  font-size: 14px;
  letter-spacing: 0.35px;
}

.rack-arithmetic-svg .ras-row-title--compact {
  font-size: 16px;
  letter-spacing: -0.2px;
}

.rack-arithmetic-svg .ras-row-note--compact { font-size: 14px; }

.rack-arithmetic-svg .ras-equation--compact { font-size: 18px; }

.rack-arithmetic-svg .ras-guard-title--compact { font-size: 14.5px; }

.rack-arithmetic-svg .ras-guard-copy--compact {
  font-size: 13px;
  letter-spacing: -0.1px;
}

.rack-arithmetic-svg .ras-guard--compact { font-size: 14px; }

.rack-arithmetic-figure figcaption {
  margin: 0;
  padding: 0.9rem 1.35rem;
  color: #8da299;
  border-top: 1px solid var(--line);
  font: 550 0.62rem/1.6 var(--mono);
}

.rack-arithmetic-figure figcaption strong {
  color: var(--white);
  font-weight: 700;
}

.rack-arithmetic-native {
  position: absolute;
  width: 1px;
  height: 1px;
  margin: -1px;
  padding: 0;
  overflow: hidden;
  clip: rect(0 0 0 0);
  clip-path: inset(50%);
  white-space: normal;
}

.rack-arithmetic-native table {
  width: 1px;
  table-layout: fixed;
  border-collapse: collapse;
}

.rack-arithmetic-native caption,
.rack-arithmetic-native th,
.rack-arithmetic-native td {
  white-space: normal;
}

@media (max-width: 72rem) {
  .rack-arithmetic-svg--wide { display: none; }

  .rack-arithmetic-svg--compact {
    display: block;
    width: min(100%, 32rem);
    margin-inline: auto;
  }
}

@media (max-width: 52rem) {
  .rack-arithmetic-figure {
    width: auto;
    margin-inline: -0.5rem;
  }

  .rack-arithmetic-shell { padding: 0.5rem 0.25rem; }

  .rack-arithmetic-figure figcaption {
    padding: 0.85rem 1rem;
    font-size: 0.63rem;
  }
}

@media (max-width: 25rem) {
  .rack-arithmetic-figure { margin-inline: -1rem; }
}

@media print {
  .rack-arithmetic-svg--wide { display: block; }
  .rack-arithmetic-svg--compact { display: none; }
}

@media (forced-colors: active) {
  .rack-arithmetic-shell { display: none; }

  .rack-arithmetic-figure,
  .rack-arithmetic-figure figcaption {
    color: CanvasText;
    background: Canvas;
    border-color: CanvasText;
  }

  .rack-arithmetic-native {
    position: static;
    width: min(100%, 90rem);
    height: auto;
    margin: 1rem auto 0;
    overflow: visible;
    clip: auto;
    clip-path: none;
  }

  .rack-arithmetic-native table {
    width: 100%;
    table-layout: auto;
    color: CanvasText;
    border-collapse: collapse;
  }

  .rack-arithmetic-native caption,
  .rack-arithmetic-native th,
  .rack-arithmetic-native td {
    padding: 0.5rem;
    border: 1px solid CanvasText;
    text-align: left;
  }
}

/* MW50 PUE division sensitivity / static scenario arithmetic */
.pue-division-figure {
  width: min(100%, 90rem);
  margin: 2.2rem auto 0;
  color: var(--white);
  border: 1px solid #36574e;
  background: var(--green-black);
}

.pue-division-shell {
  padding: clamp(0.65rem, 1.7vw, 1.35rem);
  overflow: hidden;
  background: #071e1c;
}

.pue-division-svg {
  display: block;
  width: 100%;
  height: auto;
}

.pue-division-svg--compact { display: none; }

.pue-division-svg *,
.pue-division-figure * {
  animation: none !important;
  transition: none !important;
}

.pue-division-svg text {
  font-family: var(--mono);
  text-rendering: geometricPrecision;
}

.pue-division-svg rect,
.pue-division-svg line,
.pue-division-svg circle {
  vector-effect: non-scaling-stroke;
}

.pds-bg { fill: #071e1c; }
.pds-frame { fill: none; stroke: #36574e; }
.pds-header { fill: #0a2a25; stroke: #42655a; }
.pds-formula-rail { fill: #0e3730; stroke: #56766b; }
.pds-plot { fill: #08251f; stroke: #42655a; }
.pds-open-panel { fill: #0a3029; stroke: #8b782f; stroke-dasharray: 7 5; }
.pds-no-claim { fill: #102c27; stroke: #6f796f; }
.pds-mini-row { fill: #092b25; stroke: #42655a; }
.pds-grid { stroke: rgba(230, 239, 233, 0.19); stroke-dasharray: 3 5; }
.pds-guide { stroke: #8b782f; stroke-dasharray: 4 5; }
.pds-open-rule { stroke: rgba(227, 198, 93, 0.45); }
.pds-point { fill: #071e1c; stroke: var(--gold-light); stroke-width: 2; }

.pds-kicker { fill: var(--gold); font-size: 13px; font-weight: 700; letter-spacing: 0.11em; }
.pds-stamp { fill: #a9beb4; font-size: 12px; font-weight: 600; letter-spacing: 0.04em; }
.pds-heading { fill: #f7faf8; font-family: var(--display) !important; font-size: 17px; font-weight: 650; letter-spacing: 0.025em; }
.pds-boundary { fill: #d9e4df; font-size: 12.5px; font-weight: 650; letter-spacing: 0.025em; }
.pds-guard { fill: #a9beb4; font-size: 11.5px; font-weight: 550; letter-spacing: 0.015em; }
.pds-equation { fill: var(--gold-light); font-family: var(--display) !important; font-size: 16px; font-weight: 650; letter-spacing: 0.01em; }
.pds-condition { fill: #b6c8bf; font-size: 11.5px; font-weight: 600; letter-spacing: 0.025em; }
.pds-axis-title { fill: #d4af37; font-size: 12px; font-weight: 700; letter-spacing: 0.045em; }
.pds-tick { fill: #a9beb4; font-size: 10px; font-weight: 600; }
.pds-scenario { fill: #f0f5f2; font-size: 12.5px; font-weight: 650; }
.pds-status { fill: var(--gold-light); font-size: 10.5px; font-weight: 700; letter-spacing: 0.06em; }
.pds-axis-label { fill: #a9beb4; font-size: 11.5px; font-weight: 600; letter-spacing: 0.025em; }
.pds-open-title { fill: var(--gold); font-size: 13px; font-weight: 700; letter-spacing: 0.055em; }
.pds-open-copy { fill: #d4dfda; font-size: 12px; font-weight: 550; }
.pds-no-claim-title { fill: #c7d4ce; font-size: 12.5px; font-weight: 700; letter-spacing: 0.045em; }
.pds-no-claim-copy { fill: #e2e9e5; font-size: 12.5px; font-weight: 600; }

.pue-division-figure figcaption {
  margin: 0;
  padding: 1rem 1.25rem 1.15rem;
  color: #a9beb4;
  border-top: 1px solid #36574e;
  font: 500 0.68rem/1.65 var(--mono);
}

.pue-division-native {
  position: absolute;
  width: 1px;
  height: 1px;
  margin: -1px;
  padding: 0;
  overflow: hidden;
  clip: rect(0 0 0 0);
  clip-path: inset(50%);
  white-space: normal;
  border: 0;
}

.pue-division-native table {
  width: 1px;
  table-layout: fixed;
  border-collapse: collapse;
}

@media (max-width: 72rem) {
  .pue-division-svg--wide { display: none; }
  .pue-division-svg--compact {
    display: block;
    max-width: 32rem;
    margin-inline: auto;
  }

  .pds-kicker--compact { font-size: 15px; }
  .pds-stamp--compact { font-size: 12.5px; }
  .pds-heading--compact { font-size: 14.5px; }
  .pds-boundary--compact { font-size: 13px; }
  .pds-guard--compact { font-size: 12.5px; }
  .pds-equation--compact { font-size: 12.5px; }
  .pds-condition--compact { font-size: 11.5px; }
  .pds-axis-title--compact { font-size: 12.5px; }
  .pds-scenario--compact { font-size: 13px; }
  .pds-status--compact { font-size: 11.5px; }
  .pds-tick--compact { font-size: 11px; }
  .pds-axis-label--compact { font-size: 12.5px; }
  .pds-open-title--compact { font-size: 13px; }
  .pds-open-copy--compact { font-size: 13px; }
  .pds-no-claim-title--compact,
  .pds-no-claim-copy--compact { font-size: 13px; }
}

@media (max-width: 52rem) {
  .pue-division-figure {
    width: calc(100% + 1rem);
    margin-right: -0.5rem;
    margin-left: -0.5rem;
  }

  .pue-division-shell { padding: 0.3rem; }

  .pue-division-figure figcaption {
    padding: 0.85rem 0.9rem 1rem;
    font-size: 0.62rem;
    line-height: 1.6;
  }
}

@media print {
  .pue-division-figure { display: none !important; }

  .pue-division-native {
    position: static;
    width: 100%;
    height: auto;
    margin: 1rem 0 0;
    overflow: visible;
    clip: auto;
    clip-path: none;
  }

  .pue-division-native table {
    width: 100%;
    table-layout: auto;
    color: #000;
    border-collapse: collapse;
  }

  .pue-division-native caption,
  .pue-division-native th,
  .pue-division-native td {
    padding: 0.45rem;
    border: 1px solid #000;
    text-align: left;
  }
}

@media (forced-colors: active) {
  .pue-division-figure { display: none !important; }

  .pue-division-native {
    position: static;
    width: 100%;
    height: auto;
    margin: 1rem 0 0;
    overflow: visible;
    clip: auto;
    clip-path: none;
  }

  .pue-division-native table {
    width: 100%;
    table-layout: auto;
    color: CanvasText;
    border-collapse: collapse;
  }

  .pue-division-native caption,
  .pue-division-native th,
  .pue-division-native td {
    padding: 0.5rem;
    border: 1px solid CanvasText;
    text-align: left;
  }
}

/* MW50 project-basis closure map / five parallel open families */
.project-basis-figure {
  width: min(100%, 90rem);
  margin: clamp(3.5rem, 6vw, 6rem) auto 0;
  color: var(--white);
  border: 1px solid #36574e;
  background: var(--green-black);
}

.project-basis-shell {
  padding: clamp(0.7rem, 1.8vw, 1.4rem);
  overflow: hidden;
  background: #071e1c;
}

.project-basis-map {
  display: block;
  width: 100%;
  height: auto;
}

.project-basis-map--compact { display: none; }

.project-basis-map *,
.project-basis-figure * {
  animation: none !important;
  transition: none !important;
}

.project-basis-map text {
  font-family: var(--mono);
  text-rendering: geometricPrecision;
}

.project-basis-map rect,
.project-basis-map line {
  vector-effect: non-scaling-stroke;
}

.pbm-bg { fill: #071e1c; }
.pbm-frame { fill: none; stroke: #36574e; }
.pbm-header { fill: #0a2a25; stroke: #42655a; }
.pbm-column-head { fill: #102f29; stroke: #4f695f; }
.pbm-rule { stroke: rgba(230, 239, 233, 0.22); }
.pbm-row rect { fill: #092b25; stroke: #42655a; }
.pbm-row--alt rect { fill: #0b302a; }
.pbm-card rect { fill: #092b25; stroke: #42655a; }
.pbm-card--alt rect { fill: #0b302a; }
.pbm-card-rule { stroke: rgba(230, 239, 233, 0.2); }
.pbm-outcome { fill: #12362f; stroke: var(--gold-deep); stroke-dasharray: 7 5; }
.pbm-no-claim { fill: #102c27; stroke: #6f796f; }

.pbm-kicker { fill: var(--gold); font-size: 13px; font-weight: 700; letter-spacing: 0.1em; }
.pbm-stamp { fill: #a9beb4; font-size: 11.5px; font-weight: 650; letter-spacing: 0.035em; }
.pbm-heading { fill: #f7faf8; font-family: var(--display) !important; font-size: 17px; font-weight: 650; letter-spacing: 0.025em; }
.pbm-guard { fill: #a9beb4; font-size: 11px; font-weight: 600; letter-spacing: 0.025em; }
.pbm-column-label { fill: var(--gold); font-size: 10.5px; font-weight: 700; letter-spacing: 0.075em; }
.pbm-index { fill: #8fa69b; font-size: 10.5px; font-weight: 650; letter-spacing: 0.045em; }
.pbm-family { fill: #f2f6f4; font-family: var(--display) !important; font-size: 14.5px; font-weight: 650; letter-spacing: 0.02em; }
.pbm-evidence { fill: #d1ddd7; font-size: 11.5px; font-weight: 550; letter-spacing: 0.012em; }
.pbm-status { fill: var(--gold-light); font-size: 11.5px; font-weight: 700; letter-spacing: 0.025em; }
.pbm-required { fill: #8fa69b; font-size: 10.5px; font-weight: 700; letter-spacing: 0.065em; }
.pbm-outcome-label { fill: #dce7e1; font-size: 11.5px; font-weight: 650; letter-spacing: 0.02em; }
.pbm-outcome-status { fill: var(--gold-light); font-size: 13px; font-weight: 700; letter-spacing: 0.025em; }
.pbm-no-claim-copy { fill: #c4d1cb; font-size: 10.5px; font-weight: 600; letter-spacing: 0.018em; }

.project-basis-figure figcaption {
  margin: 0;
  padding: 1rem 1.25rem 1.15rem;
  color: #a9beb4;
  border-top: 1px solid #36574e;
  font: 500 0.68rem/1.65 var(--mono);
}

.gate-list--native {
  position: absolute;
  width: 1px;
  height: 1px;
  margin: -1px;
  padding: 0;
  overflow: hidden;
  clip: rect(0 0 0 0);
  clip-path: inset(50%);
  white-space: normal;
  border: 0;
}

.gate-list--native > li {
  min-width: 0;
  max-width: 1px;
}

@media (max-width: 72rem) {
  .project-basis-map--wide { display: none; }

  .project-basis-map--compact {
    display: block;
    max-width: 32rem;
    margin-inline: auto;
  }

  .pbm-kicker--compact { font-size: 14.5px; }
  .pbm-stamp--compact { font-size: 11.5px; }
  .pbm-heading--compact { font-size: 12.5px; }
  .pbm-guard--compact { font-size: 11px; }
  .pbm-index--compact { font-size: 10.5px; }
  .pbm-family--compact { font-size: 14px; }
  .pbm-status--compact { font-size: 11.5px; }
  .pbm-evidence--compact { font-size: 11.5px; }
  .pbm-outcome-label--compact { font-size: 11px; }
  .pbm-outcome-status--compact { font-size: 12.5px; }
  .pbm-no-claim-copy--compact { font-size: 10.5px; }
}

@media (max-width: 52rem) {
  .project-basis-figure {
    width: calc(100% + 1rem);
    margin-right: -0.5rem;
    margin-left: -0.5rem;
  }

  .project-basis-shell { padding: 0.3rem; }

  .project-basis-figure figcaption {
    padding: 0.85rem 0.9rem 1rem;
    font-size: 0.62rem;
    line-height: 1.6;
  }
}

@media print {
  .project-basis-figure { display: none !important; }

  .gate-list--native {
    position: static;
    width: 100%;
    height: auto;
    margin: 1rem 0 0;
    padding: 0 0 0 1.5rem;
    overflow: visible;
    clip: auto;
    clip-path: none;
    color: #000;
    border-top: 1px solid #000;
  }

  .gate-list--native > li {
    min-height: 0;
    min-width: 0;
    max-width: none;
    display: list-item;
    margin: 0;
    padding: 0.7rem;
    color: #000;
    border-right: 1px solid #000;
    border-bottom: 1px solid #000;
    border-left: 1px solid #000;
  }

  .gate-list--native h3,
  .gate-list--native p,
  .gate-list--native span,
  .gate-list--native b,
  .gate-list--native strong {
    color: #000;
  }

  .gate-list--native b {
    display: inline-block;
    margin-top: 0.5rem;
    border: 1px solid #000;
  }
}

@media (forced-colors: active) {
  .project-basis-figure { display: none !important; }

  .gate-list--native {
    position: static;
    width: 100%;
    height: auto;
    margin: 1rem 0 0;
    padding: 0 0 0 1.5rem;
    overflow: visible;
    clip: auto;
    clip-path: none;
    color: CanvasText;
    border-top: 1px solid CanvasText;
  }

  .gate-list--native > li {
    min-height: 0;
    min-width: 0;
    max-width: none;
    display: list-item;
    margin: 0;
    padding: 0.7rem;
    color: CanvasText;
    border-right: 1px solid CanvasText;
    border-bottom: 1px solid CanvasText;
    border-left: 1px solid CanvasText;
  }

  .gate-list--native h3,
  .gate-list--native p,
  .gate-list--native span,
  .gate-list--native b,
  .gate-list--native strong {
    color: CanvasText;
  }

  .gate-list--native b {
    display: inline-block;
    margin-top: 0.5rem;
    border: 1px solid CanvasText;
  }
}
