:root {
  color-scheme: light dark;
  --ink: light-dark(#1b2430, #e8eef6);
  --muted: light-dark(#647386, #a7b4c5);
  --soft: light-dark(#f5f7fa, #0f141b);
  --panel: light-dark(#ffffff, #151c25);
  --chrome: light-dark(#fbfcfe, #111820);
  --line: light-dark(#d8e0ea, #2a3442);
  --green: light-dark(#116b5f, #5cc1aa);
  --blue: light-dark(#244f86, #8bb7f0);
  --rust: light-dark(#a44631, #e18a72);
  --code: light-dark(#edf2f7, #202a36);
  --callout: light-dark(#fffaf7, #281b18);
  --callout-ink: light-dark(#55342d, #f0c1b4);
  --code-block: light-dark(#16202c, #070b10);
  --code-block-ink: light-dark(#e9f0f7, #e5edf6);
  --shadow: 0 16px 34px light-dark(rgba(23, 32, 43, 0.08), rgba(0, 0, 0, 0.35));
}
:root[data-theme="light"] { color-scheme: light; }
:root[data-theme="dark"] { color-scheme: dark; }
    * {
      box-sizing: border-box;
    }

    html {
      scroll-behavior: smooth;
    }

    body {
      margin: 0;
      color: var(--ink);
      background: var(--soft);
      font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
      line-height: 1.55;
    }

    a {
      color: var(--green);
      text-decoration-thickness: 1px;
      text-underline-offset: 3px;
    }

    code {
      padding: 2px 5px;
      border-radius: 4px;
      background: var(--code);
      font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
      font-size: 0.92em;
    }

    .shell {
      width: min(1120px, calc(100% - 32px));
      margin: 0 auto;
    }

    .topbar {
      border-bottom: 1px solid var(--line);
      background: var(--chrome);
    }

    .topbar .shell {
      display: grid;
      grid-template-columns: auto minmax(0, 1fr) auto;
      align-items: center;
      gap: 18px;
      min-height: 66px;
    }

    .brand {
      color: var(--ink);
      font-weight: 800;
      text-decoration: none;
    }

    .topbar nav {
      justify-self: end;
      align-items: center;
      display: flex;
      flex-wrap: wrap;
      gap: 14px;
      font-size: 0.94rem;
    }

    .topbar nav a {
      display: inline-flex;
      align-items: center;
      min-height: 32px;
      color: var(--muted);
      text-decoration: none;
    }

    [hidden] { display: none !important; }

    .theme-toggle {
      position: relative;
      display: inline-grid;
      grid-template-columns: 1fr 1fr;
      place-items: center;
      width: 66px;
      height: 34px;
      padding: 0 7px;
      border: 1px solid var(--line);
      border-radius: 999px;
      background: var(--panel);
      color: var(--ink);
      font: inherit;
      font-size: 0.92rem;
      cursor: pointer;
      box-shadow: inset 0 1px 2px rgba(23, 32, 43, 0.08);
    }

    .theme-toggle:hover {
      border-color: var(--green);
    }

    .theme-toggle:focus-visible {
      outline: 3px solid color-mix(in srgb, var(--green), transparent 68%);
      outline-offset: 2px;
    }

    .theme-toggle::before {
      content: "";
      position: absolute;
      top: 3px;
      left: 3px;
      width: 28px;
      height: 28px;
      border-radius: 999px;
      background: var(--green);
      box-shadow: 0 4px 10px rgba(17, 107, 95, 0.25);
      transition: transform 160ms ease;
    }

    .theme-toggle[data-theme-state="dark"]::before {
      transform: translateX(32px);
    }

    .theme-toggle span {
      position: relative;
      z-index: 1;
      line-height: 1;
      color: var(--muted);
    }

    .theme-toggle[data-theme-state="light"] .theme-sun,
    .theme-toggle[data-theme-state="dark"] .theme-moon {
      color: #ffffff;
    }

    header {
      padding: 56px 0 44px;
      background: var(--chrome);
      border-bottom: 1px solid var(--line);
    }

    .hero {
      display: grid;
      grid-template-columns: minmax(0, 1.1fr) minmax(320px, 0.75fr);
      gap: 34px;
      align-items: center;
    }

    h1 {
      margin: 0;
      max-width: 800px;
      font-size: clamp(2.5rem, 7vw, 5.4rem);
      line-height: 0.98;
      letter-spacing: 0;
    }

    .lede {
      max-width: 760px;
      margin: 22px 0 0;
      color: var(--muted);
      font-size: clamp(1.06rem, 2vw, 1.28rem);
    }

    .actions {
      display: flex;
      flex-wrap: wrap;
      gap: 12px;
      margin-top: 28px;
    }

    .button {
      display: inline-flex;
      align-items: center;
      min-height: 42px;
      padding: 9px 14px;
      border: 1px solid var(--line);
      border-radius: 6px;
      background: var(--panel);
      color: var(--ink);
      font-weight: 700;
      text-decoration: none;
    }

    .button.primary {
      border-color: var(--green);
      background: var(--green);
      color: #ffffff;
    }

    .protocol-panel {
      padding: 18px;
      border: 1px solid var(--line);
      border-radius: 8px;
      background: var(--panel);
      box-shadow: var(--shadow);
    }

    .protocol-panel h2 {
      margin: 0 0 14px;
      font-size: 1rem;
    }

    .rail {
      display: grid;
      gap: 10px;
    }

    .rail-row {
      display: grid;
      grid-template-columns: 28px 1fr;
      gap: 10px;
      align-items: start;
    }

    .rail-row span {
      display: grid;
      place-items: center;
      width: 28px;
      height: 28px;
      border-radius: 999px;
      background: var(--code);
      color: var(--blue);
      font-size: 0.8rem;
      font-weight: 800;
    }

    .rail-row strong {
      display: block;
      margin-bottom: 2px;
      font-size: 0.95rem;
    }

    .rail-row p {
      margin: 0;
      color: var(--muted);
      font-size: 0.9rem;
    }

    main {
      padding: 34px 0 60px;
    }

    section {
      margin-top: 40px;
    }

    h2 {
      margin: 0 0 14px;
      font-size: 1.55rem;
      letter-spacing: 0;
    }

    h3 {
      margin: 0 0 8px;
      font-size: 1rem;
    }

    p {
      margin: 0 0 14px;
    }

    .narrow {
      max-width: 820px;
    }

    .grid {
      display: grid;
      grid-template-columns: repeat(3, minmax(0, 1fr));
      gap: 14px;
      margin-top: 18px;
    }

    .two {
      grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .card {
      padding: 18px;
      border: 1px solid var(--line);
      border-radius: 8px;
      background: var(--panel);
    }

    .card p,
    li {
      color: var(--muted);
    }

    .status-list {
      display: grid;
      grid-template-columns: repeat(2, minmax(0, 1fr));
      gap: 10px;
      margin-top: 18px;
      padding: 0;
      list-style: none;
    }

    .status-list li {
      padding: 12px 14px;
      border: 1px solid var(--line);
      border-radius: 8px;
      background: var(--panel);
    }

    .callout {
      padding: 16px 18px;
      border-left: 4px solid var(--rust);
      background: var(--callout);
      color: var(--callout-ink);
    }

    .callout p {
      margin-bottom: 0;
      color: inherit;
    }

    .code-block {
      overflow-x: auto;
      margin: 18px 0 0;
      padding: 16px;
      border: 1px solid var(--line);
      border-radius: 8px;
      background: var(--code-block);
      color: var(--code-block-ink);
      font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
      font-size: 0.92rem;
      line-height: 1.55;
    }

    .split {
      display: grid;
      grid-template-columns: minmax(0, 0.9fr) minmax(320px, 1fr);
      gap: 22px;
      align-items: start;
    }

    @media (max-width: 860px) {
      .hero,
      .split,
      .grid,
      .two,
      .status-list {
        grid-template-columns: 1fr;
      }

      .topbar .shell {
        grid-template-columns: minmax(0, 1fr) auto;
        gap: 12px 18px;
        padding: 14px 0;
      }

    }
  .registry-panel,.component-card,.flow-step {padding:18px;border:1px solid var(--line);border-radius:8px;background:var(--panel)}
.serial {font-family:ui-monospace,monospace;font-weight:700}
.status-row {display:flex;justify-content:space-between;gap:16px;margin:10px 0}
.chips {display:flex;flex-wrap:wrap;gap:8px}.chip {padding:4px 8px;background:var(--code);border-radius:6px}
.flow {display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.flow-step strong {display:block;color:var(--green);margin-bottom:6px}
.route-table {overflow-x:auto;border:1px solid var(--line);border-radius:8px;background:var(--panel)}
table {width:100%;min-width:700px;border-collapse:collapse}th,td {padding:11px 12px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}th {color:var(--muted)}
pre {overflow-x:auto}pre code {padding:0;background:none;color:inherit}.card,.hero > * {min-width:0}
a:focus-visible {outline:3px solid var(--green);outline-offset:3px}.skip-link {position:absolute;left:16px;top:-80px;background:var(--panel);padding:12px;z-index:10}.skip-link:focus {top:8px}
@media(max-width:860px){.flow{grid-template-columns:1fr}.status-row{flex-wrap:wrap}h1{overflow-wrap:anywhere}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.theme-toggle::before{transition:none}}
/* Long protocol names wrap in prose; code examples retain horizontal scrolling. */
code {overflow-wrap:anywhere}pre code {overflow-wrap:normal}

@media(max-width:860px){
  .topbar nav {grid-column:1/-1;grid-row:2;justify-self:start}
  .topbar .theme-toggle {grid-column:2;grid-row:1}
}

.document > .deployment-guide { margin-top: 40px; }
.deployment-guide h2 { margin-top: 40px; }
.deployment-guide h3 { margin-top: 28px; }
.deployment-guide pre { padding: 16px; border: 1px solid var(--line); border-radius: 8px; background: var(--panel); }
.deployment-guide li { margin-block: 6px; }
.document-header { padding-block: 28px; }
.document-header h1 { font-size: clamp(2rem, 4vw, 3rem); line-height: 1.12; }
.document-header .lede { margin-top: 12px; }
.document { padding-top: 24px; }
.document > section:first-child { margin-top: 0; }
