:root {
  --ir3-canvas: #090c10;
  --ir3-surface: #f2f0e6;
  --ir3-panel: #f2f0e6;
  --ir3-ink: #171815;
  --ir3-muted: #62645e;
  --ir3-line: #c9c6ba;
  --ir3-line-strong: #30312c;
  --ir3-accent: #b14832;
  --ir3-accent-soft: #ead7cf;
  --ir3-accent-light: #d98672;
  --ir3-accent-fill: rgba(177, 72, 50, .12);
  --ir3-detail-accent: #7a2e62;
  --ir3-detail-accent-soft: #eadbe4;
  --ir3-detail-accent-light: #c47cad;
  --ir3-detail-accent-fill: rgba(122, 46, 98, .12);
  --ir3-strip: #ebe8dc;
  --ir3-raised: #f6f4eb;
  --ir3-selected: #e7e3d7;
  --ir3-year-band: #ece9dc;
  --content-max: 1024px;
  --archive-strip-height: 44px;
}

body[data-revolution="ir1"] {
  --ir3-canvas: #121014;
  --ir3-surface: #f1eef0;
  --ir3-panel: #f1eef0;
  --ir3-ink: #191619;
  --ir3-muted: #655e63;
  --ir3-line: #cbc4c9;
  --ir3-line-strong: #332e32;
  --ir3-accent: #705565;
  --ir3-accent-soft: #e8dfe4;
  --ir3-accent-light: #b58a9f;
  --ir3-accent-fill: rgba(112, 85, 101, .13);
  --ir3-detail-accent: #a13d51;
  --ir3-detail-accent-soft: #eedde1;
  --ir3-detail-accent-light: #d47787;
  --ir3-detail-accent-fill: rgba(161, 61, 81, .12);
  --ir3-strip: #e8e3e6;
  --ir3-raised: #f8f5f7;
  --ir3-selected: #e6dfe3;
  --ir3-year-band: #ebe5e8;
}

body[data-revolution="ir2"] {
  --ir3-canvas: #170f1d;
  --ir3-surface: #f3eff4;
  --ir3-panel: #f3eff4;
  --ir3-ink: #1b171d;
  --ir3-muted: #665f69;
  --ir3-line: #cec6d0;
  --ir3-line-strong: #352e38;
  --ir3-accent: #7d4a9d;
  --ir3-accent-soft: #e9e0ee;
  --ir3-accent-light: #b47ac6;
  --ir3-accent-fill: rgba(125, 74, 157, .12);
  --ir3-detail-accent: #a43d6b;
  --ir3-detail-accent-soft: #eedfe6;
  --ir3-detail-accent-light: #d37396;
  --ir3-detail-accent-fill: rgba(164, 61, 107, .12);
  --ir3-strip: #e9e3eb;
  --ir3-raised: #faf7fa;
  --ir3-selected: #e6deea;
  --ir3-year-band: #ece6ee;
}

*, *::before, *::after { box-sizing: border-box; }

html { margin: 0; background: var(--ir3-canvas); }

body {
  min-width: 320px;
  margin: 0;
  background: var(--ir3-canvas);
  color: var(--ir3-ink);
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
  font-size: 13px;
  line-height: 1.5;
}

button, input, select { font: inherit; }
button, select { cursor: pointer; }
button:focus-visible, input:focus-visible, select:focus-visible, a:focus-visible {
  outline: 2px solid var(--ir3-accent);
  outline-offset: 2px;
}

.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

.skip-link {
  position: fixed;
  z-index: 1000;
  top: 8px;
  left: 8px;
  padding: 8px 10px;
  transform: translateY(-160%);
  border: 1px solid var(--ir3-line);
  background: var(--ir3-surface);
  color: var(--ir3-ink);
}
.skip-link:focus { transform: none; }

.back-to-top {
  position: fixed;
  z-index: 70;
  right: max(16px, calc((100vw - var(--content-max)) / 2 + 16px));
  bottom: calc(18px + var(--archive-footer-overlap, 0px));
  display: inline-flex;
  min-width: 62px;
  min-height: 44px;
  padding: 0 13px;
  align-items: center;
  justify-content: center;
  gap: 7px;
  border: 1px solid var(--ir3-line-strong);
  border-radius: 0;
  background: var(--ir3-ink);
  color: var(--ir3-surface);
  font-size: 11px;
  font-weight: 800;
  letter-spacing: .04em;
  text-transform: uppercase;
}
.back-to-top[hidden] { display: none; }
.back-to-top:hover { border-color: var(--ir3-accent); background: var(--ir3-accent); color: #fff; }
.back-to-top svg { width: 14px; height: 14px; fill: none; stroke: currentColor; stroke-linecap: square; stroke-linejoin: miter; stroke-width: 1.8; }

.archive-nav {
  position: relative;
  z-index: 60;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  min-height: 58px;
  max-width: var(--content-max);
  margin: 0 auto;
  padding: 10px 20px;
  align-items: center;
  gap: 18px;
  border-right: 1px solid #293039;
  border-bottom: 1px solid #293039;
  border-left: 1px solid #293039;
  background: #0d1117;
  color: #e6edf3;
}
.archive-brand {
  display: inline-flex;
  min-width: 0;
  align-items: center;
  justify-self: start;
  gap: 8px;
  color: #e6edf3;
  font-size: 13px;
  font-weight: 700;
  text-decoration: none;
}
.archive-mark {
  display: grid;
  min-width: 27px;
  height: 22px;
  padding: 0 6px;
  place-items: center;
  border-radius: 3px;
  background: var(--ir3-accent);
  color: #fff;
  font-size: 9px;
  letter-spacing: .03em;
}
.archive-strip {
  position: sticky;
  z-index: 55;
  top: 0;
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  width: 100%;
  min-height: var(--archive-strip-height);
  max-width: var(--content-max);
  margin: 0 auto;
  border-right: 1px solid var(--ir3-line);
  border-bottom: 1px solid var(--ir3-line);
  border-left: 1px solid var(--ir3-line);
  background: var(--ir3-strip);
  color: var(--ir3-ink);
}
.archive-strip[hidden] { display: none; }
.archive-strip-back,
.archive-strip-context {
  min-width: 0;
  min-height: var(--archive-strip-height);
  display: inline-flex;
  padding: 0 14px;
  align-items: center;
}
.archive-strip-back {
  max-width: clamp(88px, 34vw, 220px);
  overflow: hidden;
  border: 0;
  border-right: 1px solid var(--ir3-line);
  border-radius: 0;
  background: transparent;
  color: var(--ir3-ink);
  font-size: 10px;
  font-weight: 750;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.archive-strip-back:hover { background: var(--ir3-raised); color: var(--ir3-accent); }
.archive-strip-context {
  overflow: hidden;
  color: var(--ir3-accent);
  font-size: 9.5px;
  font-weight: 800;
  letter-spacing: .08em;
  text-overflow: ellipsis;
  text-transform: uppercase;
  white-space: nowrap;
}

.split {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 1px minmax(0, 1fr);
  width: 100%;
  max-width: var(--content-max);
  margin: 0 auto;
  border-right: 1px solid var(--ir3-line);
  border-left: 1px solid var(--ir3-line);
  background: var(--ir3-surface);
}
.tree-pane {
  position: sticky;
  top: var(--archive-strip-height);
  height: calc(100vh - var(--archive-strip-height));
  min-width: 0;
  overflow-y: auto;
  background: var(--ir3-panel);
  scrollbar-color: #8f9089 var(--ir3-panel);
  scrollbar-width: thin;
}
.pane-divider { width: 1px; background: var(--ir3-line); }
.detail-pane {
  min-width: 0;
  min-height: 100vh;
  padding: 0;
  background: var(--ir3-surface);
  color: var(--ir3-ink);
}

.archive-footer {
  --archive-footer-surface: #0e1319;
  --archive-footer-ink: #f3f0e7;
  --archive-footer-muted: #adb1af;
  --archive-footer-line: #343a40;
  --archive-footer-line-strong: #454b51;
  --archive-footer-raised: #161c22;
  width: 100%;
  max-width: var(--content-max);
  margin: 0 auto;
  border: 1px solid var(--archive-footer-line);
  border-top: 2px solid var(--archive-footer-line-strong);
  background: var(--archive-footer-surface);
  color: var(--archive-footer-ink);
  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
}
.archive-footer-meta {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto auto;
  align-items: stretch;
}
.archive-footer-meta > * {
  display: flex;
  min-height: 46px;
  margin: 0;
  padding: 12px 16px;
  align-items: center;
}
.archive-footer-meta > strong { font-size: 11px; font-weight: 800; letter-spacing: .01em; }
.archive-footer-meta > span {
  border-left: 1px solid var(--archive-footer-line);
  color: var(--archive-footer-muted);
  font-size: 9.5px;
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
}
.archive-footer-meta b,
.archive-footer-meta time { margin-left: 4px; color: var(--archive-footer-ink); font-weight: 750; }
.archive-footer-revolutions {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  border-top: 1px solid var(--archive-footer-line);
}
.archive-footer-revolutions a {
  display: grid;
  min-width: 0;
  min-height: 66px;
  padding: 13px 16px;
  grid-template-columns: auto minmax(0, 1fr);
  align-items: start;
  gap: 11px;
  border-right: 1px solid var(--archive-footer-line);
  color: var(--archive-footer-ink);
  text-decoration: none;
}
.archive-footer-revolutions a:last-child { border-right: 0; }
.archive-footer-revolutions a:hover,
.archive-footer-revolutions a[aria-current="page"] { background: var(--archive-footer-raised); }
.archive-footer-revolutions a[aria-current="page"] { box-shadow: inset 0 3px 0 var(--ir3-accent-light); }
.archive-footer-revolutions a:focus-visible { outline-color: var(--ir3-accent-light); }
.archive-footer-revolutions a > b { color: var(--ir3-accent-light); font-size: 10px; letter-spacing: .06em; }
.archive-footer-revolutions span { min-width: 0; font-size: 10.5px; font-weight: 750; line-height: 1.25; }
.archive-footer-revolutions small { display: block; margin-top: 4px; color: var(--archive-footer-muted); font-size: 9.5px; font-variant-numeric: tabular-nums; font-weight: 500; }
.loading-state { padding: 27px 30px; color: var(--ir3-muted); }

@media (max-width: 960px) {
  .archive-nav, .archive-strip, .split { border-right: 0; border-left: 0; }
}

@media (max-width: 720px) {
  .archive-nav { min-height: 48px; padding: 8px 14px; }
}

@media (max-width: 480px) {
  .back-to-top { right: 12px; bottom: calc(12px + var(--archive-footer-overlap, 0px)); min-width: 58px; min-height: 42px; padding: 0 11px; }
  .archive-footer-meta { grid-template-columns: 112px minmax(0, 1fr); }
  .archive-footer-meta > strong { grid-column: 1 / -1; min-height: 42px; border-bottom: 1px solid var(--archive-footer-line); }
  .archive-footer-meta > span { display: block; min-height: 42px; border-left: 0; white-space: normal; }
  .archive-footer-meta > span + span { border-left: 1px solid var(--archive-footer-line); }
  .archive-footer-meta b, .archive-footer-meta time { display: block; margin: 2px 0 0; }
  .archive-footer-revolutions { grid-template-columns: 1fr; }
  .archive-footer-revolutions a { min-height: 54px; border-right: 0; border-bottom: 1px solid var(--archive-footer-line); }
  .archive-footer-revolutions a:last-child { border-bottom: 0; }
  .archive-nav { grid-template-columns: minmax(0, 1fr); min-height: 48px; padding: 4px 10px; gap: 10px; }
  .archive-strip-back, .archive-strip-context { padding-right: 10px; padding-left: 10px; }
  .archive-strip-context { font-size: 8.5px; }
}

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

/* Core timeline directory. Kept in the primary stylesheet so navigation never
   waits on a second Walrus resource. */
.archive-strip-current {
  display: inline-flex;
  min-width: 0;
  min-height: var(--archive-strip-height);
  max-width: clamp(104px, 24vw, 180px);
  padding: 0 14px;
  overflow: hidden;
  align-items: center;
  border-left: 1px solid var(--ir3-line);
  color: var(--ir3-ink);
  font-size: 10px;
  font-weight: 750;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.archive-strip-current[hidden] { display: none; }
/* IR4 Section 01 production catalogue extensions.
   The approved IR3 stylesheet above remains byte-for-byte intact. */
/* Section 01 v0.5 catalogue: compact dark product browser and reference datasheets. */
body.ir4-catalogue-body {
  --content-max: 1366px;
  --catalogue-canvas: #08111b;
  --catalogue-shell: #0f1e2c;
  --catalogue-panel: #183247;
  --catalogue-panel-strong: #213f55;
  --catalogue-row: #315873;
  --catalogue-row-hover: #396680;
  --catalogue-detail: #112838;
  --catalogue-line: #65a9d1;
  --catalogue-line-soft: #385b72;
  --catalogue-text: #f4f7fb;
  --catalogue-muted: #b4c8d7;
  --catalogue-blue: #9dcbff;
  --catalogue-blue-ink: #07111b;
  --catalogue-green: #83efb0;
  --catalogue-green-ink: #052515;
  --catalogue-grey: #d7e2ec;
  --catalogue-grey-ink: #142333;
  --catalogue-yellow: #ffd66d;
  --catalogue-yellow-ink: #2d2100;
  min-width: 0;
  min-height: 100vh;
  background: var(--catalogue-canvas);
  color: var(--catalogue-text);
}

.ir4-catalogue-body .archive-nav,
.ir4-catalogue-body .archive-strip,
.ir4-catalogue-body .archive-footer,
.ir4-catalogue-shell {
  width: min(100%, var(--content-max));
  max-width: var(--content-max);
}

.ir4-catalogue-body .archive-nav {
  border-color: #263c4d;
  background: #091722;
}

.ir4-catalogue-body .archive-strip {
  border-color: var(--catalogue-line-soft);
  background: #0c1c29;
  color: var(--catalogue-text);
}

.ir4-catalogue-body .archive-strip-back,
.ir4-catalogue-body .archive-strip-context {
  border-color: var(--catalogue-line-soft);
  color: var(--catalogue-muted);
}

.ir4-catalogue-body .archive-strip-back:hover {
  background: #173144;
  color: var(--catalogue-text);
}

.ir4-catalogue-body .archive-strip-context {
  color: #75d2ff;
}

.ir4-catalogue-shell {
  min-height: calc(100vh - 102px);
  margin: 0 auto;
  border-right: 1px solid var(--catalogue-line-soft);
  border-left: 1px solid var(--catalogue-line-soft);
  background: var(--catalogue-shell);
}

.ir4-catalogue-header {
  padding: 26px 28px 22px;
  border-bottom: 1px solid var(--catalogue-line-soft);
}

.ir4-catalogue-header p {
  margin: 0 0 6px;
  color: #75d2ff;
  font-size: 12px;
  font-weight: 750;
}

.ir4-catalogue-header h1 {
  margin: 0;
  color: var(--catalogue-text);
  font-size: clamp(30px, 3.1vw, 44px);
  font-weight: 780;
  letter-spacing: -.035em;
  line-height: 1.05;
}

.ir4-catalogue-header > span {
  display: block;
  margin-top: 9px;
  color: var(--catalogue-muted);
  font-size: 13px;
}

.ir4-catalogue-controls {
  display: grid;
  grid-template-columns: minmax(150px, .8fr) minmax(0, 1.1fr) minmax(0, 1.2fr) minmax(150px, .55fr);
  min-width: 0;
  padding: 14px 28px 16px;
  align-items: center;
  gap: 12px 10px;
  border-bottom: 1px solid var(--catalogue-line-soft);
  background: #0b1a27;
}

.ir4-country-control,
.ir4-category-control,
.ir4-leader-control,
.ir4-sort-control {
  display: block;
  width: 100%;
  min-width: 0;
}

.ir4-search-control {
  display: block;
  width: 100%;
  min-width: 0;
  grid-column: 1 / -1;
}

.ir4-filter-control {
  grid-column: 1 / -1;
  min-width: 0;
}

.ir4-leader-picker {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 40px;
  min-width: 0;
  gap: 6px;
}

.ir4-country-control select,
.ir4-category-control select,
.ir4-leader-control select,
.ir4-sort-control select,
.ir4-search-control input {
  display: block;
  width: 100%;
  min-width: 0;
  height: 40px;
  padding: 0 36px 0 12px;
  border: 1px solid var(--catalogue-line);
  border-radius: 8px;
  background: #152c3e;
  color: var(--catalogue-text);
  font-size: 13px;
  font-weight: 700;
}

.ir4-search-control input {
  padding: 0 12px;
  color-scheme: dark;
}

.ir4-search-control input::placeholder {
  color: var(--catalogue-muted);
  opacity: 1;
}

.ir4-star-company {
  display: grid;
  width: 40px;
  height: 40px;
  padding: 0;
  border: 1px solid var(--catalogue-line);
  border-radius: 8px;
  place-items: center;
  background: #152c3e;
  color: var(--catalogue-muted);
  cursor: pointer;
}

.ir4-star-company svg {
  width: 17px;
  height: 17px;
  fill: none;
  stroke: currentColor;
  stroke-linejoin: round;
  stroke-width: 1.35;
}

.ir4-star-company:hover { color: var(--catalogue-text); }
.ir4-star-company[aria-pressed="true"] {
  border-color: #58a6ff;
  color: #58a6ff;
}
.ir4-star-company[aria-pressed="true"] svg { fill: currentColor; }
.ir4-star-company:disabled { opacity: .4; cursor: not-allowed; }

.ir4-country-control select:focus-visible,
.ir4-category-control select:focus-visible,
.ir4-leader-control select:focus-visible,
.ir4-sort-control select:focus-visible,
.ir4-search-control input:focus-visible,
.ir4-star-company:focus-visible,
.ir4-filter-button:focus-visible,
.ir4-product-summary:focus-visible {
  outline: 2px solid #75d2ff;
  outline-offset: 2px;
}

.ir4-filter-list {
  display: flex;
  flex-wrap: wrap;
  width: 100%;
  min-width: 0;
  align-items: center;
  justify-content: flex-start;
  gap: 7px 6px;
  overflow: visible;
}

#product-filters.ir4-filter-list {
  display: grid;
  gap: 10px;
}

.ir4-filter-section {
  display: grid;
  grid-template-columns: 104px minmax(0, 1fr);
  min-width: 0;
  align-items: start;
  gap: 7px 10px;
}

.ir4-filter-label {
  padding-top: 8px;
  color: var(--catalogue-muted);
  font-size: 11px;
  font-weight: 600;
  letter-spacing: .06em;
  line-height: 1;
  text-transform: uppercase;
}

.ir4-topic-overflow {
  display: grid;
  grid-column: 2;
  min-width: 0;
  padding: 10px;
  gap: 9px;
  border: 1px solid var(--catalogue-line-soft);
  background: #0b1016;
}

.ir4-topic-search { display: block; max-width: 320px; }

.ir4-topic-search input {
  width: 100%;
  height: 34px;
  padding: 0 10px;
  border: 1px solid var(--catalogue-line);
  border-radius: 3px;
  background: #080d13;
  color: var(--catalogue-text);
  font: inherit;
  font-size: 12px;
}

.ir4-topic-search input:focus-visible {
  outline: 2px solid #75d2ff;
  outline-offset: 2px;
}

.ir4-filter-button {
  min-height: 30px;
  padding: 4px 12px;
  border: 1px solid var(--catalogue-line);
  border-radius: 999px;
  background: transparent;
  color: var(--catalogue-text);
  font-size: 12px;
  font-weight: 700;
  white-space: nowrap;
}

.ir4-filter-button:hover { background: #18384d; }
.ir4-filter-button:disabled {
  cursor: not-allowed;
  opacity: .42;
}
.ir4-filter-button:disabled:hover { background: transparent; }
.ir4-filter-button.is-active {
  background: var(--catalogue-blue);
  color: var(--catalogue-blue-ink);
}

.ir4-product-groups {
  display: grid;
  padding: 20px 28px 42px;
  gap: 13px;
}

.ir4-product-groups:focus { outline: 0; }

.ir4-product-group {
  overflow: hidden;
  border: 1px solid var(--catalogue-line);
  background: var(--catalogue-panel);
}

.ir4-group-header {
  display: flex;
  min-height: 50px;
  padding: 0 14px;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  border-bottom: 1px solid var(--catalogue-line);
  background: var(--catalogue-panel-strong);
}

.ir4-group-header h2 {
  margin: 0;
  color: var(--catalogue-text);
  font-size: 18px;
  font-weight: 760;
}

.ir4-group-header span {
  color: var(--catalogue-muted);
  font-size: 12px;
}

.ir4-product-list {
  margin: 0;
  padding: 0 14px 14px;
}

.ir4-vendor-group {
  border-top: 1px solid var(--catalogue-line);
}

.ir4-vendor-group:first-child { border-top: 0; }

.ir4-vendor-header {
  display: flex;
  min-height: 44px;
  padding: 10px 2px 9px;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  border-bottom: 1px solid var(--catalogue-line-soft);
}

.ir4-vendor-header h3 {
  display: flex;
  min-width: 0;
  margin: 0;
  align-items: center;
  gap: 10px;
}

.ir4-vendor-header > span {
  color: var(--catalogue-muted);
  font-size: 11px;
  text-align: right;
}

.ir4-vendor-products {
  padding-left: 16px;
}

.ir4-product-record {
  display: block;
  overflow: hidden;
  border: 0;
  border-bottom: 1px solid var(--catalogue-line-soft);
  border-radius: 0;
  background: transparent;
}

.ir4-product-record + .ir4-product-record { margin-top: 0; }
.ir4-product-record[open] { background: var(--catalogue-detail); }

.ir4-product-summary {
  display: grid;
  min-height: 48px;
  padding: 9px 8px 9px 14px;
  grid-template-columns: minmax(220px, 1fr) 100px minmax(150px, .65fr) 100px 24px;
  align-items: center;
  gap: 12px;
  background: transparent;
  color: var(--catalogue-text);
  cursor: pointer;
  list-style: none;
  scroll-margin-top: calc(var(--archive-strip-height) + 12px);
  text-decoration: none;
}

.ir4-product-summary::-webkit-details-marker { display: none; }
.ir4-product-summary:hover { background: var(--catalogue-row-hover); }
.ir4-product-summary time {
  color: #d7e9f6;
  font-size: 12px;
  font-variant-numeric: tabular-nums;
  font-weight: 700;
  line-height: 1.2;
  white-space: normal;
}

.ir4-product-summary > strong {
  min-width: 0;
  color: var(--catalogue-text);
  font-size: 15px;
  font-weight: 760;
  line-height: 1.25;
}

.ir4-country-code {
  display: inline-flex;
  min-height: 0;
  margin-left: 0;
  padding: 1px 0 1px 9px;
  align-items: center;
  justify-content: center;
  border: 0;
  border-left: 1px solid #5aaed4;
  border-radius: 0;
  color: #8bd8ff;
  font-size: 9.5px;
  font-weight: 800;
  letter-spacing: .055em;
  line-height: 1;
  vertical-align: 1px;
  white-space: nowrap;
}

.ir4-product-vendor {
  display: inline-block;
  margin-right: 0;
  color: #75d2ff;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: .04em;
  text-transform: uppercase;
  white-space: nowrap;
}

.ir4-row-tags {
  display: flex;
  min-width: 0;
  flex-wrap: wrap;
  gap: 6px;
}

.ir4-product-tag,
.ir4-status {
  display: inline-flex;
  min-height: 24px;
  padding: 3px 9px;
  align-items: center;
  justify-content: center;
  border-radius: 999px;
  font-size: 10.5px;
  font-weight: 760;
  line-height: 1;
  white-space: nowrap;
}

.ir4-product-tag {
  background: var(--catalogue-blue);
  color: var(--catalogue-blue-ink);
}

.ir4-status { justify-self: start; }
.ir4-status.is-current {
  background: var(--catalogue-green);
  color: var(--catalogue-green-ink);
}
.ir4-status.is-historical,
.ir4-status.is-legacy {
  background: var(--catalogue-grey);
  color: var(--catalogue-grey-ink);
}
.ir4-status.is-roadmap,
.ir4-status.is-sampling {
  background: var(--catalogue-yellow);
  color: var(--catalogue-yellow-ink);
}
.ir4-status.is-research {
  background: var(--catalogue-blue);
  color: var(--catalogue-blue-ink);
}
.ir4-status.is-unconfirmed {
  background: var(--catalogue-yellow);
  color: var(--catalogue-yellow-ink);
}

.ir4-row-chevron {
  display: grid;
  width: 24px;
  height: 24px;
  place-items: center;
}

.ir4-row-chevron::before {
  width: 7px;
  height: 7px;
  border-right: 2px solid #75d2ff;
  border-bottom: 2px solid #75d2ff;
  content: "";
  transform: rotate(-45deg);
  transition: transform 120ms ease;
}

.ir4-product-record[open] .ir4-row-chevron::before {
  transform: rotate(45deg) translate(-2px, -2px);
}

.ir4-product-detail {
  display: block;
  padding: 18px 22px 22px;
  border-top: 1px solid var(--catalogue-line);
  background: var(--catalogue-detail);
  color: var(--catalogue-text);
}

.ir4-availability {
  margin: 0 0 15px;
  color: var(--catalogue-muted);
  font-size: 12px;
}

.ir4-detail-section + .ir4-detail-section { margin-top: 18px; }
.ir4-detail-section h3 {
  margin: 0 0 8px;
  color: var(--catalogue-text);
  font-size: 13px;
}

.ir4-model-spec-control {
  display: grid;
  margin: 0 0 14px;
  padding: 10px;
  grid-template-columns: auto minmax(240px, 1fr) auto;
  align-items: center;
  gap: 10px;
  border: 1px solid var(--catalogue-line-soft);
  background: #0d2130;
}

.ir4-model-spec-control label {
  color: var(--catalogue-muted);
  font-size: 12px;
  font-weight: 700;
  white-space: nowrap;
}

.ir4-model-spec-control select {
  width: 100%;
  min-width: 0;
  height: 34px;
  padding: 0 32px 0 10px;
  border: 1px solid var(--catalogue-line);
  border-radius: 7px;
  background: #152c3e;
  color: var(--catalogue-text);
}

.ir4-model-spec-control a {
  color: #75d2ff;
  font-size: 11px;
  white-space: nowrap;
}

.ir4-spec-sections {
  display: grid;
  gap: 14px;
}

.ir4-spec-category h4 {
  margin: 0;
  padding: 8px 11px;
  border: 1px solid var(--catalogue-line-soft);
  border-bottom: 0;
  background: #173247;
  color: var(--catalogue-text);
  font-size: 12px;
  letter-spacing: .02em;
}

.ir4-spec-list {
  margin: 0;
  border: 1px solid var(--catalogue-line-soft);
  background: #0d2130;
}

.ir4-spec-list > div {
  display: grid;
  grid-template-columns: minmax(150px, .28fr) minmax(0, 1fr);
}

.ir4-spec-list > div + div { border-top: 1px solid var(--catalogue-line-soft); }

.ir4-spec-list dt,
.ir4-spec-list dd {
  min-width: 0;
  margin: 0;
  padding: 8px 11px;
  font-size: 12px;
  line-height: 1.4;
}

.ir4-spec-list dt {
  color: var(--catalogue-muted);
  font-weight: 700;
}

.ir4-spec-list dd {
  border-left: 1px solid var(--catalogue-line-soft);
  color: var(--catalogue-text);
}

.ir4-spec-list [data-value-state="not-published"] dd,
.ir4-spec-list [data-value-state="not-applicable"] dd {
  color: var(--catalogue-muted);
  font-style: italic;
}

.ir4-model-note {
  margin: -1px 0 10px;
  color: var(--catalogue-muted);
  font-size: 12px;
  line-height: 1.5;
}

.ir4-model-table-wrap {
  overflow-x: auto;
  border: 1px solid var(--catalogue-line-soft);
  background: #0d2130;
}

.ir4-model-table {
  width: 100%;
  min-width: 850px;
  border: 0;
  border-collapse: collapse;
  color: var(--catalogue-text);
  font-size: 11px;
  font-variant-numeric: tabular-nums;
}

.ir4-model-table caption {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

.ir4-model-table th,
.ir4-model-table td {
  padding: 8px 9px;
  border-right: 1px solid var(--catalogue-line-soft);
  border-bottom: 1px solid var(--catalogue-line-soft);
  text-align: left;
  vertical-align: middle;
}

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

.ir4-model-table thead th {
  background: #1d3a4f;
  color: var(--catalogue-muted);
  font-weight: 700;
  white-space: nowrap;
}

.ir4-model-table .is-numeric { text-align: right; }

.ir4-model-group th {
  padding-block: 7px;
  background: #173247;
  color: var(--catalogue-text);
  font-size: 11px;
  letter-spacing: .015em;
}

.ir4-model-group span {
  margin-left: 6px;
  color: var(--catalogue-muted);
  font-size: 10px;
  font-weight: 400;
}

.ir4-model-row:hover > * { background: #122b3d; }

.ir4-model-table a {
  min-width: 0;
  color: #75d2ff;
  font-weight: 700;
  overflow-wrap: anywhere;
  text-underline-offset: 3px;
}

.ir4-model-row > * { overflow-wrap: anywhere; }

.ir4-detail-empty-copy {
  margin: 0;
  padding: 12px;
  border: 1px solid var(--catalogue-line-soft);
  color: var(--catalogue-muted);
}

.ir4-source-section ul {
  margin: 0;
  padding: 0;
  list-style: none;
}

.ir4-source-section li {
  display: flex;
  padding: 7px 0;
  align-items: baseline;
  justify-content: space-between;
  gap: 16px;
  border-top: 1px solid var(--catalogue-line-soft);
}

.ir4-source-section a {
  color: #75d2ff;
  font-size: 12px;
  overflow-wrap: anywhere;
  text-underline-offset: 3px;
}

.ir4-source-section small {
  flex: 0 0 auto;
  color: var(--catalogue-muted);
  font-size: 10px;
}

.ir4-no-results,
.loading-state {
  margin: 0;
  padding: 42px 20px;
  border: 1px solid var(--catalogue-line-soft);
  color: var(--catalogue-muted);
  text-align: center;
}

.ir4-catalogue-body .archive-footer { border-color: #344c5f; }
.ir4-catalogue-body .back-to-top {
  border-color: var(--catalogue-line);
  border-radius: 8px;
  background: #173247;
  color: var(--catalogue-text);
}

@media (max-width: 960px) {
  .ir4-model-table-wrap { overflow: visible; border: 0; background: transparent; }
  .ir4-model-table { min-width: 0; border: 0; }
  .ir4-model-table thead { display: none; }
  .ir4-model-table,
  .ir4-model-table tbody { display: block; }
  .ir4-model-table tbody + tbody { margin-top: 12px; }
  .ir4-model-group,
  .ir4-model-row { display: grid; }
  .ir4-model-group th {
    display: block;
    border: 1px solid var(--catalogue-line-soft);
  }
  .ir4-model-row {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    border-right: 1px solid var(--catalogue-line-soft);
    border-left: 1px solid var(--catalogue-line-soft);
  }
  .ir4-model-row:last-child { border-bottom: 1px solid var(--catalogue-line-soft); }
  .ir4-model-row > * {
    display: flex;
    min-width: 0;
    padding: 7px 8px;
    align-items: baseline;
    justify-content: space-between;
    gap: 9px;
    border-right: 0;
    text-align: right;
  }
  .ir4-model-row > *::before {
    content: attr(data-label);
    flex: 0 1 48%;
    color: var(--catalogue-muted);
    text-align: left;
  }
  .ir4-model-row > :nth-child(odd) { background: #10293a; }
  .ir4-model-row > :last-child { grid-column: 1 / -1; }
  .ir4-product-summary {
    grid-template-columns: minmax(190px, 1fr) 88px minmax(130px, .65fr) 92px 24px;
    gap: 9px;
  }
}

@media (max-width: 680px) {
  .ir4-catalogue-header { padding: 20px 15px 17px; }
  .ir4-catalogue-controls {
    grid-template-columns: minmax(0, 1.2fr) minmax(0, .8fr);
    padding: 12px 15px 14px;
    gap: 8px;
  }
  .ir4-country-control { grid-column: 1 / -1; }
  .ir4-category-control { grid-column: 1 / -1; }
  .ir4-leader-control { grid-column: 1; }
  .ir4-sort-control { grid-column: 2; }
  .ir4-country-control select,
  .ir4-category-control select,
  .ir4-leader-control select,
  .ir4-sort-control select {
    max-width: none;
    padding-right: 28px;
    padding-left: 10px;
    font-size: 12px;
  }
  .ir4-product-groups { padding: 14px 10px 30px; }
  .ir4-group-header { padding-inline: 11px; }
  .ir4-product-list { padding: 0 10px 10px; }
  .ir4-vendor-header { padding-inline: 2px; }
  .ir4-vendor-products { padding-left: 8px; }
  .ir4-product-summary {
    min-height: 68px;
    padding: 8px 9px;
    grid-template-columns: minmax(0, 1fr) 76px 24px;
    gap: 7px 8px;
  }
  .ir4-product-summary > strong { grid-column: 1; grid-row: 1; }
  .ir4-product-summary time { grid-column: 2; grid-row: 1; text-align: right; }
  .ir4-row-tags { grid-column: 1; grid-row: 2; }
  .ir4-status { grid-column: 2; grid-row: 2; justify-self: end; }
  .ir4-row-chevron { grid-column: 3; grid-row: 1 / 3; }
  .ir4-product-detail { padding: 15px 12px 17px; }
  .ir4-model-spec-control {
    grid-template-columns: 1fr;
    align-items: stretch;
    gap: 7px;
  }
  .ir4-model-spec-control a { justify-self: start; }
  .ir4-spec-list > div { grid-template-columns: 112px minmax(0, 1fr); }
  .ir4-spec-list dt,
  .ir4-spec-list dd { padding: 8px; font-size: 11px; }
  .ir4-model-table-wrap { overflow: visible; border: 0; background: transparent; }
  .ir4-model-table { min-width: 0; border: 0; }
  .ir4-model-table thead { display: none; }
  .ir4-model-table,
  .ir4-model-table tbody { display: block; }
  .ir4-model-table tbody + tbody { margin-top: 12px; }
  .ir4-model-group,
  .ir4-model-row { display: grid; }
  .ir4-model-group th {
    display: block;
    border: 1px solid var(--catalogue-line-soft);
  }
  .ir4-model-row {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    border-right: 1px solid var(--catalogue-line-soft);
    border-left: 1px solid var(--catalogue-line-soft);
  }
  .ir4-model-row:last-child { border-bottom: 1px solid var(--catalogue-line-soft); }
  .ir4-model-row > * {
    display: flex;
    min-width: 0;
    padding: 7px 8px;
    align-items: baseline;
    justify-content: space-between;
    gap: 9px;
    border-right: 0;
    text-align: right;
  }
  .ir4-model-row > :nth-child(even) { border-right: 1px solid var(--catalogue-line-soft); }
  .ir4-model-row > :first-child {
    grid-column: 1 / -1;
    border-right: 0;
    background: #112b3d;
    text-align: left;
  }
  .ir4-model-row > :last-child:nth-child(even) {
    grid-column: 1 / -1;
    border-right: 0;
  }
  .ir4-model-row > *::before {
    content: attr(data-label);
    flex: 0 0 auto;
    color: var(--catalogue-muted);
    font-size: 10px;
    font-weight: 700;
    text-align: left;
  }
  .ir4-source-section li { align-items: flex-start; flex-direction: column; gap: 2px; }
}

@media (max-width: 380px) {
  .ir4-catalogue-body .archive-strip-context { display: none; }
  .ir4-catalogue-body .archive-strip { grid-template-columns: auto minmax(0, 1fr); }
  .ir4-group-header {
    min-height: 58px;
    padding-block: 7px;
    align-items: flex-start;
    flex-direction: column;
    justify-content: center;
    gap: 1px;
  }
  .ir4-vendor-header {
    padding-block: 10px 8px;
    align-items: flex-start;
    flex-direction: column;
    gap: 4px;
  }
  .ir4-vendor-header > span { text-align: left; }
  .ir4-spec-list > div { grid-template-columns: 1fr; }
  .ir4-spec-list dd { padding-top: 0; border-left: 0; }
  .ir4-model-row { grid-template-columns: 1fr; }
  .ir4-model-row > *,
  .ir4-model-row > :nth-child(even) { border-right: 0; }
  .ir4-model-row > :first-child { grid-column: 1; }
}

@media (prefers-reduced-motion: reduce) {
  .ir4-row-chevron::before { transition: none; }
}

.ir4-pagination {
  display: grid;
  min-height: 58px;
  padding: 9px 12px;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
  gap: 12px;
  border: 1px solid var(--catalogue-line);
  background: var(--catalogue-panel-strong);
}

.ir4-pagination p {
  margin: 0;
  color: var(--catalogue-muted);
  font-size: 12px;
  text-align: center;
}

.ir4-pagination p strong {
  color: var(--catalogue-text);
  font-variant-numeric: tabular-nums;
}

.ir4-pagination p span {
  margin-left: 8px;
  white-space: nowrap;
}

.ir4-pagination-button,
.ir4-detail-retry {
  min-height: 36px;
  padding: 6px 14px;
  border: 1px solid var(--catalogue-line);
  border-radius: 7px;
  background: #173247;
  color: var(--catalogue-text);
  font-size: 12px;
  font-weight: 750;
}

.ir4-pagination-button:hover:not(:disabled),
.ir4-detail-retry:hover {
  background: #234b64;
}

.ir4-pagination-button:disabled {
  cursor: not-allowed;
  opacity: .48;
}

.ir4-pagination-button:focus-visible,
.ir4-detail-retry:focus-visible {
  outline: 2px solid #75d2ff;
  outline-offset: 2px;
}

.ir4-detail-state {
  display: flex;
  min-height: 72px;
  padding: 14px;
  align-items: center;
  justify-content: center;
  gap: 14px;
  border: 1px solid var(--catalogue-line-soft);
  background: #0d2130;
  color: var(--catalogue-muted);
  text-align: center;
}

.ir4-detail-state p { margin: 0; }

.ir4-detail-state.is-error {
  flex-wrap: wrap;
  border-color: var(--catalogue-yellow);
  color: var(--catalogue-text);
}

@media (max-width: 540px) {
  .ir4-pagination {
    grid-template-columns: 1fr 1fr;
  }

  .ir4-pagination p {
    grid-column: 1 / -1;
    grid-row: 1;
  }

  .ir4-detail-state {
    align-items: stretch;
    flex-direction: column;
  }
}

/* IR4 research-terminal design system (v0.248.7).
   Shared by the home page and product catalogue. */
body[data-revolution="ir4"] {
  --ir4-canvas: #080a0e;
  --ir4-surface: #0e1116;
  --ir4-nav: #0c0f14;
  --ir4-inset: #0b1016;
  --ir4-search: #080d13;
  --ir4-raised: #161b22;
  --ir4-row-hover: #151b23;
  --ir4-hover: #11161d;
  --ir4-detail: #0e141c;
  --ir4-text: #e6edf3;
  --ir4-text-mid: #c9d1d9;
  --ir4-text-subtle: #adbac7;
  --ir4-muted: #8b949e;
  --ir4-faint: #6e7681;
  --ir4-line: #2a313c;
  --ir4-line-soft: #21262d;
  --ir4-line-strong: #3d4755;
  --ir4-line-blue: #2d4d6e;
  --ir4-accent: #58a6ff;
  --ir4-accent-light: #79b8ff;
  --ir4-accent-soft: #111f2f;
  --ir4-accent-hover: #1c3552;
  --ir4-positive: #3fb950;
  --ir4-positive-soft: #0f2a19;
  --ir4-trust: #bc8cff;
  --ir4-trust-soft: #24183b;
  --ir3-canvas: var(--ir4-canvas);
  --ir3-surface: var(--ir4-surface);
  --ir3-panel: var(--ir4-surface);
  --ir3-ink: var(--ir4-text);
  --ir3-muted: var(--ir4-muted);
  --ir3-line: var(--ir4-line);
  --ir3-line-strong: var(--ir4-line-strong);
  --ir3-accent: var(--ir4-accent);
  --ir3-accent-soft: var(--ir4-accent-soft);
  --ir3-accent-light: var(--ir4-accent-light);
  --ir3-accent-fill: rgba(88, 166, 255, .1);
  --ir3-detail-accent: var(--ir4-accent);
  --ir3-detail-accent-soft: var(--ir4-accent-soft);
  --ir3-detail-accent-light: var(--ir4-accent-light);
  --ir3-detail-accent-fill: rgba(88, 166, 255, .1);
  --ir3-strip: var(--ir4-nav);
  --ir3-raised: var(--ir4-raised);
  --ir3-selected: var(--ir4-accent-soft);
  --ir3-year-band: var(--ir4-raised);
  --content-max: 1320px;
  color-scheme: dark;
  background: var(--ir3-canvas);
  color: var(--ir3-ink);
  font-size: 13px;
}

:root[data-theme="light"] body[data-revolution="ir4"] {
  --ir4-canvas: #eef1f5;
  --ir4-surface: #ffffff;
  --ir4-nav: #f7f8fa;
  --ir4-inset: #f8fafc;
  --ir4-search: #ffffff;
  --ir4-raised: #eef2f6;
  --ir4-row-hover: #f1f6fc;
  --ir4-hover: #edf4fc;
  --ir4-detail: #f7f9fc;
  --ir4-text: #172033;
  --ir4-text-mid: #344054;
  --ir4-text-subtle: #475467;
  --ir4-muted: #667085;
  --ir4-faint: #98a2b3;
  --ir4-line: #d0d5dd;
  --ir4-line-soft: #e4e7ec;
  --ir4-line-strong: #98a2b3;
  --ir4-line-blue: #9ecbff;
  --ir4-accent: #0969da;
  --ir4-accent-light: #0550ae;
  --ir4-accent-soft: #eaf3ff;
  --ir4-accent-hover: #dbeafe;
  --ir4-positive: #1a7f37;
  --ir4-positive-soft: #eaf8ef;
  --ir4-trust: #8250df;
  --ir4-trust-soft: #f3efff;
  --ir3-accent-fill: rgba(9, 105, 218, .09);
  --ir3-detail-accent-fill: rgba(9, 105, 218, .09);
  color-scheme: light;
}

body[data-revolution="ir4"] .archive-nav {
  display: grid;
  width: min(100%, var(--content-max));
  min-height: 44px;
  padding: 0 18px;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: stretch;
  gap: 18px;
  border-color: var(--ir3-line);
  background: var(--ir4-nav);
}

body[data-revolution="ir4"] .archive-brand {
  gap: 7px;
  align-self: center;
  color: var(--ir3-ink);
  font-size: 12px;
  font-weight: 600;
}

body[data-revolution="ir4"] .archive-mark {
  min-width: 27px;
  height: 20px;
  border: 1px solid var(--ir4-line-blue);
  border-radius: 3px;
  background: var(--ir4-accent-soft);
  color: var(--ir4-accent-light);
  font-size: 8px;
}

.archive-tabs {
  display: flex;
  min-width: 0;
  align-items: stretch;
  gap: 2px;
}

.archive-tabs a {
  display: inline-flex;
  min-width: 0;
  padding: 0 12px;
  align-items: center;
  border-bottom: 2px solid transparent;
  color: var(--ir3-muted);
  font-size: 12px;
  font-weight: 500;
  text-decoration: none;
  white-space: nowrap;
}

.archive-tabs a:hover {
  background: var(--ir4-hover);
  color: var(--ir4-text);
}

.archive-tabs a[aria-current="page"] {
  border-bottom-color: var(--ir4-accent);
  background: var(--ir4-accent-soft);
  color: var(--ir4-text);
}

body[data-revolution="ir4"] .archive-footer {
  --archive-footer-surface: var(--ir4-nav);
  --archive-footer-ink: var(--ir4-text);
  --archive-footer-muted: var(--ir4-muted);
  --archive-footer-line: var(--ir4-line);
  --archive-footer-line-strong: var(--ir4-line-strong);
  --archive-footer-raised: var(--ir4-raised);
  border-top-width: 1px;
}

body[data-revolution="ir4"] .archive-footer-meta > * { min-height: 40px; padding: 9px 14px; }
body[data-revolution="ir4"] .archive-footer-revolutions a { min-height: 58px; padding: 10px 14px; }
body[data-revolution="ir4"] .archive-footer-revolutions a[aria-current="page"] { box-shadow: inset 0 2px 0 var(--ir4-accent); }

/* Compact company profile embedded in the catalogue header */
.ir4-inline-profile {
  display: grid;
  margin-top: 16px;
  grid-template-columns: minmax(0, 1.25fr) minmax(360px, .75fr);
  border: 1px solid var(--ir3-line);
  background: var(--ir4-inset);
  color: var(--ir3-ink);
}

.ir4-inline-profile[hidden] { display: none; }

.ir4-inline-profile-overview {
  min-width: 0;
  padding: 14px 16px 15px;
  border-right: 1px solid var(--ir3-line);
}

.ir4-inline-profile .ir4-inline-profile-heading {
  display: flex;
  margin-bottom: 9px;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
}

.ir4-inline-profile .ir4-inline-profile-heading p,
.ir4-inline-profile-facts dt,
.ir4-inline-profile-focus > span {
  margin: 0;
  color: var(--ir3-muted);
  font-size: 10px;
  font-weight: 600;
  letter-spacing: .06em;
  text-transform: uppercase;
}

.ir4-inline-profile-heading p span { margin-left: 5px; }

.ir4-inline-profile-heading a {
  color: var(--ir3-accent-light);
  font-size: 11px;
  font-weight: 600;
  text-decoration: none;
}

.ir4-inline-profile-heading a:hover,
.ir4-inline-profile-heading a:focus-visible { color: var(--ir4-text); text-decoration: underline; text-underline-offset: 3px; }

.ir4-inline-profile .ir4-inline-profile-summary {
  max-width: 880px;
  margin: 0;
  color: var(--ir3-ink);
  font-size: 14px;
  font-weight: 400;
  line-height: 1.5;
  text-transform: none;
}

.ir4-inline-profile-facts {
  display: grid;
  min-width: 0;
  margin: 0;
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.ir4-inline-profile-facts > div {
  min-width: 0;
  padding: 11px 13px;
  border-right: 1px solid var(--ir3-line);
  border-bottom: 1px solid var(--ir3-line);
}

.ir4-inline-profile-facts > div:nth-child(2n) { border-right: 0; }
.ir4-inline-profile-facts > div:nth-last-child(-n + 2) { border-bottom: 0; }
.ir4-inline-profile-facts dd { margin: 4px 0 0; overflow-wrap: anywhere; color: var(--ir3-ink); font-size: 12px; line-height: 1.4; }
.ir4-inline-profile-facts dd.is-unavailable { color: var(--ir3-muted); }

.ir4-inline-profile-focus {
  display: flex;
  min-width: 0;
  padding: 9px 10px 9px 16px;
  grid-column: 1 / -1;
  align-items: center;
  gap: 14px;
  border-top: 1px solid var(--ir3-line);
  background: var(--ir4-detail);
}

.ir4-inline-profile-focus > span { flex: 0 0 auto; }

.ir4-inline-profile-focus ul { display: flex; min-width: 0; margin: 0; padding: 0; flex-wrap: wrap; gap: 6px; list-style: none; }

.ir4-inline-profile-focus a {
  display: inline-flex;
  min-height: 30px;
  padding: 6px 9px;
  align-items: baseline;
  gap: 7px;
  border: 1px solid var(--ir4-line-blue);
  background: var(--ir4-accent-soft);
  color: var(--ir3-accent-light);
  text-decoration: none;
}

.ir4-inline-profile-focus a:hover,
.ir4-inline-profile-focus a:focus-visible { border-color: var(--ir4-accent); background: var(--ir4-row-hover); color: var(--ir4-text); }
.ir4-inline-profile-focus strong { font-size: 11px; font-weight: 600; }
.ir4-inline-profile-focus small { color: var(--ir3-muted); font-size: 10px; font-weight: 400; }

@media (max-width: 900px) {
  .ir4-inline-profile { grid-template-columns: 1fr; }
  .ir4-inline-profile-overview { border-right: 0; border-bottom: 1px solid var(--ir3-line); }
}

@media (max-width: 560px) {
  .ir4-inline-profile { margin-top: 13px; }
  .ir4-inline-profile-overview { padding: 13px; }
  .ir4-inline-profile .ir4-inline-profile-heading { align-items: flex-start; }
  .ir4-inline-profile .ir4-inline-profile-summary { font-size: 13px; }
  .ir4-inline-profile-facts { grid-template-columns: 1fr; }
  .ir4-inline-profile-facts > div,
  .ir4-inline-profile-facts > div:nth-child(2n),
  .ir4-inline-profile-facts > div:nth-last-child(-n + 2) { border-right: 0; border-bottom: 1px solid var(--ir3-line); }
  .ir4-inline-profile-facts > div:last-child { border-bottom: 0; }
  .ir4-inline-profile-focus { padding: 11px 13px; align-items: flex-start; flex-direction: column; gap: 8px; }
}

body[data-revolution="ir4"] .back-to-top {
  min-width: 58px;
  min-height: 34px;
  border-color: var(--ir4-line-strong);
  border-radius: 3px;
  background: var(--ir4-accent-soft);
  color: var(--ir4-text);
  font-size: 9px;
}

body[data-revolution="ir4"] .back-to-top:hover {
  border-color: var(--ir4-accent);
  background: var(--ir4-accent-hover);
}

/* Home overview panels and compact section directory. */
body.is-home {
  --home-accent: var(--ir4-accent);
  --home-ink: var(--ir4-text);
  --home-muted: var(--ir4-muted);
  --home-line: var(--ir4-line);
}

.is-home .archive-mark { border-radius: 3px; background: var(--ir4-accent-soft); }
.is-home .archive-strip,
.is-home .tree-pane,
.is-home .pane-divider { display: none; }

.is-home .split {
  display: block;
  width: min(100%, var(--content-max));
  max-width: var(--content-max);
  border-right: 1px solid var(--home-line);
  border-left: 1px solid var(--home-line);
  background: var(--ir4-surface);
}

.home-page {
  min-height: 100vh;
  background: var(--ir4-surface);
  color: var(--home-ink);
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
}

.home-hero {
  padding: 24px 24px 0;
  border-bottom: 1px solid var(--home-line);
  background: var(--ir4-surface);
}

.home-hero-grid {
  display: block;
  border: 1px solid var(--home-line);
  background: var(--ir4-surface);
}

.home-hero-copy {
  min-width: 0;
  padding: 32px 30px 28px;
  background: var(--ir4-surface);
}

.home-eyebrow {
  margin: 0 0 12px;
  color: var(--ir4-accent);
  font-size: 9px;
  font-weight: 800;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.home-page .home-hero h1 {
  max-width: 900px;
  margin: 0;
  color: var(--ir4-text);
  font-size: clamp(40px, 5vw, 64px);
  font-weight: 760;
  letter-spacing: -.045em;
  line-height: 1;
}

.home-intro {
  max-width: 820px;
  margin: 18px 0 0;
  color: var(--ir4-text-subtle);
  font-size: 15px;
  line-height: 1.5;
}

.home-archive-search { max-width: 920px; margin-top: 28px; }
.home-archive-search > label {
  display: block;
  margin-bottom: 8px;
  color: var(--ir4-muted);
  font-size: 9px;
  font-weight: 800;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.home-search-shell { position: relative; z-index: 10; }
.home-search-shell input {
  width: 100%;
  height: 48px;
  padding: 0 14px;
  border: 1px solid var(--ir4-line-strong);
  border-radius: 0;
  outline: 0;
  background: var(--ir4-search);
  color: var(--ir4-text);
  font: inherit;
  font-size: 13px;
}
.home-search-shell input::placeholder { color: var(--ir4-faint); }
.home-search-shell input:focus { border-color: var(--ir4-accent); box-shadow: inset 3px 0 0 var(--ir4-accent); }
.home-search-results { z-index: 12; }
.home-search-status { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }

.home-signal-graphic {
  width: 100%;
  min-width: 0;
  min-height: 0;
  margin: 0;
  padding: 0;
  border-left: 0;
  background: var(--ir4-inset);
}

.home-signal-caption { display: none; }
.home-system-map {
  display: block;
  width: 100%;
  height: auto;
  max-height: none;
  background: var(--ir4-inset);
}

.home-system-map text {
  fill: var(--ir4-text);
  font-family: ui-monospace, "SFMono-Regular", Consolas, "Liberation Mono", monospace;
}

.home-architecture-panel {
  fill: var(--ir4-raised);
  fill-opacity: .58;
  stroke: var(--ir4-line);
  stroke-width: 1;
  vector-effect: non-scaling-stroke;
}

.home-architecture-stage {
  fill: var(--ir4-accent);
  font-size: 13px;
  font-weight: 700;
  letter-spacing: 1px;
}

.home-architecture-node rect {
  fill: var(--ir4-surface);
  stroke: var(--ir4-line-strong);
  stroke-width: 1;
  vector-effect: non-scaling-stroke;
}

.home-system-node:hover .home-architecture-node rect,
.home-system-node:focus-visible .home-architecture-node rect {
  fill: var(--ir4-accent-soft);
  stroke: var(--ir4-accent);
  stroke-width: 2;
}

.home-system-node:focus-visible { outline: none; }
.home-architecture-number { fill: var(--ir4-accent); font-size: 13px; font-weight: 750; }
.home-architecture-title { font-size: 14px; font-weight: 750; }
.home-architecture-function { fill: var(--ir4-text-subtle); font-size: 11px; }

.home-architecture-flow,
.home-architecture-flow-soft,
.home-architecture-trust-link,
.home-architecture-feedback {
  fill: none;
  pointer-events: none;
  vector-effect: non-scaling-stroke;
}

.home-architecture-flow { stroke: var(--ir4-accent); stroke-width: 2; }
.home-architecture-flow-soft { stroke: var(--ir4-accent); stroke-width: 1.25; opacity: .62; }
.home-architecture-trust-link { stroke: var(--ir4-trust); stroke-width: 1.5; stroke-dasharray: 5 5; }
.home-architecture-feedback { stroke: var(--ir4-positive); stroke-width: 2; }
#ir4-map-arrow-accent path { fill: var(--ir4-accent); }
#ir4-map-arrow-trust path { fill: var(--ir4-trust); }
#ir4-map-arrow-feedback path { fill: var(--ir4-positive); }

.home-architecture-capacity {
  fill: var(--ir4-accent-soft);
  stroke: var(--ir4-accent);
  stroke-width: 1;
  vector-effect: non-scaling-stroke;
}

.home-architecture-trust-rail {
  fill: var(--ir4-trust-soft);
  stroke: var(--ir4-trust);
  stroke-width: 1;
  vector-effect: non-scaling-stroke;
}

.home-architecture-rail-label { fill: var(--ir4-text); font-size: 12px; font-weight: 750; letter-spacing: .6px; }
.home-architecture-secondary { fill: var(--ir4-text-subtle); font-size: 11px; }
.home-architecture-feedback-label { fill: var(--ir4-positive); font-size: 12px; font-weight: 750; letter-spacing: .6px; }
.home-architecture-value { fill: var(--ir4-text); font-size: 12px; font-weight: 650; }
.home-architecture-mobile { display: none; }

.home-architecture-legend {
  display: flex;
  margin: 0;
  padding: 12px 18px;
  align-items: center;
  flex-wrap: wrap;
  gap: 10px 24px;
  border-top: 1px solid var(--ir4-line);
  color: var(--ir4-muted);
  font: 10.5px/1.4 ui-monospace, "SFMono-Regular", Consolas, "Liberation Mono", monospace;
}

.home-architecture-legend span { display: inline-flex; align-items: center; gap: 8px; }
.home-architecture-legend i { width: 22px; height: 2px; background: var(--ir4-accent); }
.home-architecture-legend i.is-trust { background: var(--ir4-trust); }
.home-architecture-legend i.is-feedback { background: var(--ir4-positive); }

.home-facts {
  display: grid;
  margin: 0;
  padding: 0;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 0;
  border-top: 1px solid var(--home-line);
  border-right: 1px solid var(--home-line);
  border-left: 1px solid var(--home-line);
  color: var(--ir4-muted);
  font-size: 10px;
}

.home-facts span {
  min-height: 62px;
  padding: 11px 14px;
  border-top: 0;
  background: var(--ir4-raised);
}

.home-facts span + span { padding-left: 14px; border-left: 1px solid var(--home-line); }
.home-facts strong { display: block; margin-bottom: 2px; color: var(--ir4-text); font-size: 17px; font-variant-numeric: tabular-nums; }

.home-zone-card:hover {
  background: var(--ir4-accent-soft);
  color: var(--ir4-text);
  box-shadow: inset 3px 0 0 var(--ir4-accent);
}

.home-worlds {
  padding: 0 24px 36px;
  background: var(--ir4-surface);
}

.home-world { padding-top: 28px; scroll-margin-top: 18px; }

.home-world-header {
  display: grid;
  grid-template-columns: 86px minmax(0, 1fr);
  gap: 16px;
  margin-bottom: 12px;
  padding-top: 14px;
  align-items: start;
  border-top: 1px solid var(--home-line);
}

.home-world-number { color: var(--ir4-accent); font-size: 52px; font-weight: 760; letter-spacing: -.065em; line-height: .82; font-variant-numeric: tabular-nums; }
.home-world-copy h2,
.home-articles-head h2 { margin: 0; color: var(--ir4-text); font-size: 23px; font-weight: 760; letter-spacing: -.025em; line-height: 1; }
.home-world-copy p { max-width: 660px; margin: 7px 0 0; color: var(--ir4-muted); font-size: 12px; line-height: 1.45; }

.home-zone-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1px; padding: 1px; background: var(--home-line); }

.home-zone-card {
  display: flex;
  min-width: 0;
  min-height: 158px;
  padding: 15px 16px 13px;
  flex-direction: column;
  border: 0;
  background: var(--ir4-inset);
  color: var(--ir4-text);
  text-decoration: none;
  text-align: left;
  transition: background-color .16s ease, color .16s ease;
}

.home-zone-number { margin-bottom: auto; color: var(--ir4-accent); font-size: 10px; font-weight: 800; font-variant-numeric: tabular-nums; }
.home-zone-card > strong { font-size: 15px; font-weight: 760; letter-spacing: -.01em; line-height: 1.1; }
.home-zone-text { margin-top: 8px; color: var(--ir4-muted); font-size: 11.5px; line-height: 1.45; }
.home-zone-memory { margin-top: 10px; color: var(--ir4-accent-light); font-size: 10px; font-weight: 700; line-height: 1.4; }
.home-zone-card:hover .home-zone-text,
.home-zone-card:hover .home-zone-memory { color: var(--ir4-text-subtle); }

.home-system-section {
  margin: 0 24px 36px;
  padding-top: 22px;
  border-top: 1px solid var(--home-line);
  background: var(--ir4-surface);
}
.home-system-section > header { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 24px; align-items: end; }
.home-system-section h2 { margin: 0; color: var(--ir4-text); font-size: 22px; letter-spacing: -.025em; }
.home-system-section .home-system-kicker { margin: 0 0 5px; color: var(--ir4-accent); font-size: 9px; font-weight: 750; letter-spacing: .12em; text-transform: uppercase; }
.home-system-section .home-system-meta { margin: 0 0 2px; color: var(--ir4-muted); font-size: 10.5px; line-height: 1.5; text-align: right; }
#home-system-map-slot { margin-top: 16px; border: 1px solid var(--home-line); background: var(--ir4-inset); }

.home-articles {
  padding: 0 24px 38px;
  background: var(--ir4-surface);
}

.home-articles-head {
  display: grid;
  grid-template-columns: 150px minmax(0, 1fr) auto;
  padding: 18px 0 16px;
  gap: 10px 22px;
  align-items: baseline;
  border-top: 1px solid var(--ir4-accent);
}

.home-articles-kicker { margin: 0; color: var(--ir4-accent); font-size: 9px; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; }
.home-articles-head > p { max-width: 720px; margin: 0; color: var(--ir4-muted); font-size: 11.5px; line-height: 1.45; }
.home-articles-head > a { color: var(--ir4-accent); font-size: 11px; font-weight: 700; text-decoration: none; white-space: nowrap; }
.home-articles-head > a:hover,
.home-articles-head > a:focus-visible { color: var(--ir4-text); text-decoration: underline; text-underline-offset: 3px; }
.home-articles-layout { display: grid; grid-template-columns: minmax(0, 2fr) minmax(260px, 1fr); border: 1px solid var(--home-line); }
.home-article-index { min-width: 0; background: var(--ir4-inset); }
.home-article-index > header { display: flex; min-height: 34px; padding: 7px 11px; align-items: center; justify-content: space-between; border-bottom: 1px solid var(--home-line); }
.home-article-index > header strong { color: var(--ir4-text); font-size: 12px; }
.home-article-index > header span { color: var(--ir4-muted); font-size: 10px; }
.home-article-index ol { margin: 0; padding: 0; list-style: none; }
.home-article-index li + li { border-top: 1px solid var(--home-line); }
.home-article-index li > a { display: grid; min-width: 0; padding: 9px 11px; grid-template-columns: 38px minmax(0, 1fr) 140px; gap: 10px; align-items: center; color: var(--ir4-text); text-decoration: none; }
.home-article-index li > a:hover { background: var(--ir4-row-hover); }
.home-article-index li > a > b { color: var(--ir4-accent); font-size: 10px; font-variant-numeric: tabular-nums; }
.home-article-index li > a > span { min-width: 0; }
.home-article-index li > a > span:nth-child(2) strong,
.home-article-index li > a > span:nth-child(2) small { display: block; }
.home-article-index li > a > span:nth-child(2) strong { font-size: 14px; line-height: 1.3; }
.home-article-index li > a > span:nth-child(2) small { margin-top: 2px; color: var(--ir4-muted); font-size: 11px; line-height: 1.4; }
.home-article-index li > a > span:last-child { color: var(--ir4-muted); font-size: 10px; text-align: right; }
.home-article-index-all { display: block; padding: 8px 11px; border-top: 1px solid var(--home-line); color: var(--ir4-accent); font-size: 11px; font-weight: 700; text-decoration: none; }
.home-article-index-all:hover,
.home-article-index-all:focus-visible { color: var(--ir4-text); text-decoration: underline; text-underline-offset: 3px; }
.home-articles-reserved { min-width: 0; border-left: 1px solid var(--home-line); background: var(--ir4-surface); }

/* Catalogue: dense, flat evidence table with expandable detail rows. */
body.ir4-catalogue-body {
  --content-max: 1320px;
  --catalogue-canvas: var(--ir4-canvas);
  --catalogue-shell: var(--ir4-surface);
  --catalogue-panel: var(--ir4-surface);
  --catalogue-panel-strong: var(--ir4-raised);
  --catalogue-row: var(--ir4-surface);
  --catalogue-row-hover: var(--ir4-row-hover);
  --catalogue-detail: var(--ir4-inset);
  --catalogue-line: var(--ir4-line-strong);
  --catalogue-line-soft: var(--ir4-line);
  --catalogue-text: var(--ir4-text);
  --catalogue-muted: var(--ir4-muted);
  --catalogue-blue: var(--ir4-accent);
  --catalogue-blue-ink: #07111b;
  --catalogue-green: #3fb950;
  --catalogue-green-ink: #06140b;
  --catalogue-grey: var(--ir4-faint);
  --catalogue-grey-ink: #f0f3f6;
  --catalogue-yellow: #d29922;
  --catalogue-yellow-ink: #160d00;
}

.ir4-catalogue-body .archive-nav { border-color: var(--catalogue-line-soft); background: var(--ir4-nav); }

.ir4-catalogue-body .archive-strip {
  grid-template-columns: auto minmax(0, 1fr);
  min-height: 38px;
  border-color: var(--catalogue-line-soft);
  background: var(--ir4-surface);
}

.ir4-catalogue-body .archive-strip-back,
.ir4-catalogue-body .archive-strip-context {
  min-height: 38px;
  padding: 0 12px;
  border-color: var(--catalogue-line-soft);
  color: var(--ir4-muted);
  font-size: 9px;
}

.ir4-catalogue-body .archive-strip-context { color: var(--ir4-accent); }
.ir4-catalogue-body .archive-strip-back:hover { background: var(--ir4-accent-soft); color: var(--ir4-text); }

.ir4-catalogue-shell { border-color: var(--catalogue-line-soft); background: var(--ir4-surface); }

.ir4-catalogue-header {
  padding: 20px 24px 18px;
  border-color: var(--catalogue-line-soft);
  background: var(--ir4-surface);
}

.ir4-catalogue-header p {
  margin-bottom: 4px;
  color: var(--ir3-accent);
  font-size: 11px;
  font-weight: 600;
  letter-spacing: .05em;
  text-transform: uppercase;
}

.ir4-catalogue-header h1 { font-size: clamp(30px, 2.7vw, 38px); font-weight: 700; letter-spacing: -.025em; }
.ir4-catalogue-header > span { margin-top: 6px; color: var(--ir3-muted); font-size: 12px; }

.ir4-catalogue-controls {
  padding: 12px 24px 13px;
  gap: 9px 8px;
  border-color: var(--catalogue-line-soft);
  background: var(--ir4-nav);
}

.ir4-country-control select,
.ir4-category-control select,
.ir4-leader-control select,
.ir4-sort-control select,
.ir4-search-control input,
.ir4-model-spec-control select {
  height: 34px;
  padding-right: 32px;
  border-color: var(--ir4-line);
  border-radius: 4px;
  background: var(--ir4-inset);
  color: var(--ir3-ink);
  font-size: 13px;
  font-weight: 500;
}

.ir4-leader-picker { grid-template-columns: minmax(0, 1fr) 34px; gap: 5px; }
.ir4-star-company {
  width: 34px;
  height: 34px;
  border-color: var(--ir4-line);
  border-radius: 4px;
  background: var(--ir4-inset);
}

.ir4-search-control input { padding: 0 11px; }
.ir4-search-control input::placeholder { color: var(--ir4-faint); }

.ir4-search-shell {
  position: relative;
  z-index: 12;
  grid-column: 1 / -1;
  min-width: 0;
}

.ir4-search-shell .ir4-search-control { grid-column: auto; }

.ir4-search-results {
  position: absolute;
  top: calc(100% + 4px);
  right: 0;
  left: 0;
  max-height: min(430px, 60vh);
  overflow-y: auto;
  border: 1px solid var(--ir4-line-strong);
  background: var(--ir4-search);
}

.ir4-search-results-summary,
.ir4-search-empty {
  margin: 0;
  padding: 9px 11px;
  border-bottom: 1px solid var(--ir4-line-soft);
  color: var(--ir4-muted);
  font-size: 11px;
}

.ir4-search-results-summary { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.ir4-search-results-summary button {
  padding: 0;
  border: 0;
  background: transparent;
  color: var(--ir4-accent);
  font: inherit;
  white-space: nowrap;
}
.ir4-search-results-summary button:hover,
.ir4-search-results-summary button:focus-visible { color: var(--ir4-text); text-decoration: underline; text-underline-offset: 3px; }

.ir4-search-result {
  display: grid;
  width: 100%;
  min-height: 42px;
  padding: 7px 11px;
  align-items: center;
  grid-template-columns: 76px minmax(0, 1fr) auto;
  gap: 8px;
  border: 0;
  border-bottom: 1px solid var(--ir4-line-soft);
  background: transparent;
  color: var(--ir4-text-mid);
  text-align: left;
}

.ir4-search-result:last-child { border-bottom: 0; }
.ir4-search-result:hover,
.ir4-search-result.is-active { background: var(--ir4-accent-soft); }
.ir4-search-result > span { color: var(--ir4-accent); font-size: 10px; letter-spacing: .05em; text-transform: uppercase; }
.ir4-search-result > strong { overflow: hidden; font-size: 12px; font-weight: 600; text-overflow: ellipsis; white-space: nowrap; }
.ir4-search-result > small { color: var(--ir4-muted); font-size: 10px; white-space: nowrap; }

.ir4-filter-list { gap: 7px 6px; }

.ir4-filter-button {
  min-height: 32px;
  padding: 5px 11px;
  border-color: var(--ir4-line);
  border-radius: 3px;
  background: var(--ir4-inset);
  color: var(--ir3-muted);
  font-size: 12px;
  font-weight: 500;
}

.ir4-filter-button:hover { border-color: var(--ir4-line-strong); background: var(--ir4-raised); color: var(--ir4-text); }
.ir4-filter-button.is-active { border-color: var(--ir4-line-blue); background: var(--ir4-accent-soft); color: var(--ir4-text); }
.ir4-more-filter-button { border-style: dashed; color: var(--ir4-accent); }
.ir4-topic-overflow .ir4-filter-button { display: inline-flex; align-items: center; gap: 7px; }
.ir4-topic-overflow .ir4-filter-button small { color: var(--ir4-faint); font-size: 10px; font-weight: 400; }
.ir4-topic-overflow .ir4-filter-button.is-active small { color: var(--ir4-muted); }

.ir4-product-groups { padding: 14px 24px 30px; gap: 10px; }

.ir4-product-group {
  border-color: var(--ir4-line);
  background: var(--ir4-surface);
}

.ir4-group-header {
  min-height: 40px;
  padding: 0 12px;
  border-color: var(--ir4-line);
  background: var(--ir4-raised);
}

.ir4-group-header h2 { font-size: 15px; font-weight: 600; }
.ir4-group-header span { color: var(--ir3-muted); font-size: 11px; }

.ir4-column-header {
  display: grid;
  min-height: 30px;
  padding: 0 22px 0 46px;
  grid-template-columns: minmax(260px, 1fr) 96px minmax(150px, .65fr) 82px 18px;
  align-items: center;
  gap: 10px;
  border-bottom: 1px solid var(--ir4-line);
  background: var(--ir4-inset);
  color: var(--ir3-muted);
  font-size: 10px;
  font-weight: 600;
  letter-spacing: .05em;
  text-transform: uppercase;
}

.ir4-product-list { padding: 0 12px 10px; }
.ir4-vendor-group { border-color: var(--ir4-line); }

.ir4-vendor-header {
  min-height: 34px;
  padding: 7px 2px 6px;
  border-color: var(--ir4-line);
}

.ir4-vendor-header h3 { gap: 8px; }
.ir4-vendor-header > span { color: var(--ir3-muted); font-size: 10px; }
.ir4-vendor-products { padding-left: 14px; }

.ir4-product-vendor {
  color: var(--ir3-accent-light);
  font-size: 10px;
  font-weight: 600;
  letter-spacing: .05em;
}

.ir4-country-code {
  padding-left: 7px;
  border-color: var(--ir4-line-blue);
  color: var(--ir3-accent);
  font-size: 9px;
  font-weight: 600;
}

.ir4-product-record { border-bottom-color: var(--ir4-line); }
.ir4-product-record[open] { background: var(--ir4-inset); }

.ir4-product-summary {
  min-height: 40px;
  padding: 7px 6px 7px 12px;
  grid-template-columns: minmax(260px, 1fr) 96px minmax(150px, .65fr) 82px 18px;
  gap: 10px;
}

.ir4-product-summary:hover { background: var(--ir4-row-hover); }
.ir4-product-summary > strong { font-size: 13px; font-weight: 600; }
.ir4-product-summary time { color: var(--ir3-muted); font-size: 11px; font-weight: 400; }

.ir4-row-tags { gap: 4px; }

.ir4-product-tag,
.ir4-status {
  min-height: 0;
  border-radius: 2px;
  font-size: 10px;
  font-weight: 600;
}

.ir4-product-tag {
  padding: 0;
  background: transparent;
  color: var(--ir3-muted);
  letter-spacing: .02em;
  text-transform: uppercase;
}

.ir4-product-tag + .ir4-product-tag::before { margin-right: 4px; color: var(--ir3-line-strong); content: "\00b7"; }

.ir4-status {
  min-width: 48px;
  min-height: 18px;
  padding: 2px 6px;
}

.ir4-status.is-current { background: #238636; color: #f0fff4; }
.ir4-status.is-historical,
.ir4-status.is-legacy { background: #30363d; color: var(--ir4-text-subtle); }
.ir4-status.is-roadmap,
.ir4-status.is-sampling,
.ir4-status.is-unconfirmed { background: #9e6a03; color: #fff8c5; }
.ir4-status.is-research { background: #1f6feb; color: #f0f6fc; }

.ir4-row-chevron { width: 18px; height: 18px; }
.ir4-row-chevron::before { width: 6px; height: 6px; border-color: var(--ir4-accent); border-width: 1px; }

.ir4-product-detail {
  padding: 16px 18px 19px;
  border-color: var(--ir4-line-strong);
  background: var(--ir4-inset);
}

.ir4-model-spec-control,
.ir4-spec-list,
.ir4-model-table-wrap,
.ir4-detail-state {
  border-color: var(--ir4-line);
  background: var(--ir4-surface);
}

.ir4-model-spec-control { padding: 8px; }
.ir4-spec-category h4,
.ir4-model-group th { border-color: var(--ir4-line); background: var(--ir4-raised); }
.ir4-spec-list > div + div,
.ir4-spec-list dd,
.ir4-model-table th,
.ir4-model-table td,
.ir4-source-section li { border-color: var(--ir4-line); }
.ir4-model-table thead th { background: var(--ir4-raised); color: var(--ir4-muted); }
.ir4-model-row:hover > * { background: var(--ir4-row-hover); }
.ir4-model-table a,
.ir4-source-section a,
.ir4-model-spec-control a { color: var(--ir4-accent); }

.ir4-pagination {
  min-height: 46px;
  padding: 7px 10px;
  border-color: var(--ir4-line);
  background: var(--ir4-raised);
}

.ir4-pagination-button,
.ir4-detail-retry {
  min-height: 30px;
  padding: 4px 11px;
  border-color: var(--ir4-line);
  border-radius: 3px;
  background: var(--ir4-inset);
  color: var(--ir4-text-subtle);
  font-size: 10px;
}

.ir4-pagination-button:hover:not(:disabled),
.ir4-detail-retry:hover { border-color: var(--ir4-line-blue); background: var(--ir4-accent-soft); color: var(--ir4-text); }

.ir4-catalogue-body .back-to-top {
  border-color: var(--ir4-line-strong);
  border-radius: 3px;
  background: var(--ir4-accent-soft);
}

@media (max-width: 900px) {
  .home-facts { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .home-zone-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .ir4-column-header,
  .ir4-product-summary {
    grid-template-columns: minmax(210px, 1fr) 82px minmax(120px, .55fr) 72px 18px;
  }
}

@media (max-width: 760px) {
  .home-system-map { display: none; }

  .home-architecture-mobile {
    display: block;
    padding: 14px;
    background: var(--ir4-inset);
  }

  .home-architecture-mobile section + section {
    margin-top: 16px;
    padding-top: 16px;
    border-top: 1px solid var(--ir4-line);
  }

  .home-architecture-mobile h3 {
    margin: 0 0 8px;
    color: var(--ir4-accent);
    font: 700 10px/1.4 ui-monospace, "SFMono-Regular", Consolas, "Liberation Mono", monospace;
    letter-spacing: .08em;
    text-transform: uppercase;
  }

  .home-architecture-mobile-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1px;
    background: var(--ir4-line);
  }

  .home-architecture-mobile-grid a {
    display: grid;
    min-height: 96px;
    padding: 12px;
    grid-template-columns: 25px minmax(0, 1fr);
    align-content: start;
    gap: 5px 7px;
    background: var(--ir4-surface);
    color: var(--ir4-text);
    text-decoration: none;
  }

  .home-architecture-mobile-grid a:hover,
  .home-architecture-mobile-grid a:focus-visible { background: var(--ir4-accent-soft); outline: 1px solid var(--ir4-accent); outline-offset: -1px; }
  .home-architecture-mobile-grid a:last-child:nth-child(odd) { grid-column: 1 / -1; }
  .home-architecture-mobile-grid b { color: var(--ir4-accent); font: 750 11px/1.35 ui-monospace, "SFMono-Regular", Consolas, "Liberation Mono", monospace; }
  .home-architecture-mobile-grid strong { font-size: 12px; line-height: 1.35; }
  .home-architecture-mobile-grid span { grid-column: 2; color: var(--ir4-muted); font-size: 10.5px; line-height: 1.4; }

  .home-architecture-mobile-rail {
    margin: 12px 0 0;
    padding: 10px 12px;
    border: 1px solid var(--ir4-accent);
    background: var(--ir4-accent-soft);
    color: var(--ir4-text-subtle);
    font-size: 10.5px;
    line-height: 1.45;
  }

  .home-architecture-mobile-rail.is-trust { border-color: var(--ir4-trust); background: var(--ir4-trust-soft); }
  .home-architecture-mobile-rail.is-feedback { border-color: var(--ir4-positive); background: var(--ir4-positive-soft); }
  .home-architecture-legend { padding: 11px 14px; gap: 8px 16px; }
}

@media (max-width: 680px) {
  body[data-revolution="ir4"] .archive-nav {
    padding: 0 10px;
    gap: 8px;
  }

  body[data-revolution="ir4"] .archive-brand > span:last-child { display: none; }
  .archive-tabs { overflow-x: auto; }
  .archive-tabs a { flex: 0 0 auto; padding: 0 9px; font-size: 10px; }

  .home-hero { padding: 12px 12px 0; }
  .home-hero-copy { padding: 22px 18px; }
  .home-page .home-hero h1 { font-size: clamp(33px, 11vw, 46px); }
  .home-facts span { min-height: 52px; }
  .home-facts span:nth-child(3) { border-top: 1px solid var(--home-line); border-left: 0; }
  .home-facts span:nth-child(4) { border-top: 1px solid var(--home-line); }
  .home-worlds { padding: 0 12px 28px; }
  .home-world-header { grid-template-columns: 56px minmax(0, 1fr); }
  .home-world-number { font-size: 38px; }
  .home-world-copy h2,
  .home-articles-head h2 { font-size: 20px; }
  .home-zone-grid { grid-template-columns: 1fr; }
  .home-zone-card { min-height: 138px; }
  .home-system-section { margin: 0 12px 28px; }
  .home-system-section > header { grid-template-columns: 1fr; gap: 7px; }
  .home-system-section .home-system-meta { text-align: left; }
  .home-signal-graphic { width: 100%; padding: 0; }
  .home-articles { padding: 0 12px 28px; }
  .home-articles-head { grid-template-columns: 1fr auto; }
  .home-articles-kicker { grid-column: 1 / -1; }
  .home-articles-head > p { grid-column: 1 / -1; }
  .home-articles-layout { grid-template-columns: 1fr; }
  .home-articles-reserved { display: none; }
  .home-article-index li > a { grid-template-columns: 32px minmax(0, 1fr); }
  .home-article-index li > a > span:last-child { grid-column: 2; text-align: left; }

  .ir4-catalogue-header { padding: 17px 14px 15px; }
  .ir4-catalogue-controls { padding: 10px 14px 11px; }
  .ir4-filter-section { grid-template-columns: 1fr; gap: 7px; }
  .ir4-filter-label { padding-top: 0; }
  .ir4-topic-overflow { grid-column: 1; }
  .ir4-topic-search { max-width: none; }
  .ir4-search-result { grid-template-columns: 62px minmax(0, 1fr); }
  .ir4-search-result > small { grid-column: 2; }
  .ir4-product-groups { padding: 11px 8px 24px; }
  .ir4-product-list { padding: 0 8px 8px; }
  .ir4-vendor-products { padding-left: 6px; }
  .ir4-column-header { display: none; }
  .ir4-product-summary {
    min-height: 58px;
    padding: 7px 5px 7px 8px;
    grid-template-columns: minmax(0, 1fr) 72px 18px;
    gap: 5px 7px;
  }
  .ir4-product-summary > strong { font-size: 12px; }
  .ir4-product-summary time { font-size: 10px; }
  .ir4-status { min-width: 44px; }
}

@media (max-width: 420px) {
  .archive-tabs a:last-child { max-width: 126px; overflow: hidden; text-overflow: ellipsis; }
  .home-facts { grid-template-columns: 1fr; }
  .home-facts span + span,
  .home-facts span:nth-child(4) { border-top: 1px solid var(--home-line); border-left: 0; }
  .ir4-product-detail { padding: 13px 10px 15px; }
}
.ir4-cross-link-summary { text-decoration: none; }

body[data-revolution="ir4"] .archive-nav.has-theme-toggle {
  grid-template-columns: auto minmax(0, 1fr) auto;
  gap: 10px;
}

.theme-toggle {
  display: grid;
  width: 30px;
  height: 30px;
  padding: 0;
  align-self: center;
  place-items: center;
  border: 1px solid var(--ir4-line);
  border-radius: 3px;
  background: var(--ir4-inset);
  color: var(--ir4-muted);
}

.theme-toggle:hover,
.theme-toggle:focus-visible { border-color: var(--ir4-accent); background: var(--ir4-accent-soft); color: var(--ir4-accent); }
.theme-toggle svg { width: 15px; height: 15px; fill: none; stroke: currentColor; stroke-width: 1.6; stroke-linecap: square; stroke-linejoin: miter; }
:root[data-theme="dark"] .theme-icon-light,
:root[data-theme="light"] .theme-icon-dark { display: none; }
:root[data-theme="light"] .ir4-status.is-historical,
:root[data-theme="light"] .ir4-status.is-legacy { background: #667085; color: #ffffff; }

@media (max-width: 680px) {
  body[data-revolution="ir4"] .archive-nav.has-theme-toggle { grid-template-columns: auto minmax(0, 1fr) auto; }
}

/* Focused dossier article: inherits the existing IR4 catalogue design. */
body.ir4-catalogue-body.dossier-body {
  min-width: 320px;
  margin: 0;
  background: var(--catalogue-canvas);
  color: var(--ir4-text);
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
  font-size: 13px;
  font-variant-numeric: normal;
  line-height: 1.5;
}

.dossier-body .archive-nav,
.dossier-body .archive-strip,
.dossier-body .archive-footer,
.dossier-body .vr-article { margin-inline: auto; }

.dossier-body .dossier-back {
  display: flex;
  min-height: var(--archive-strip-height);
  padding: 0 18px;
  align-items: center;
  border-right: 1px solid var(--ir4-line);
  background: transparent;
  color: var(--ir4-muted);
  font-family: inherit;
  font-size: 10px;
  text-decoration: none;
  text-transform: none;
}

.dossier-body .dossier-back:hover,
.dossier-body .dossier-back:focus-visible { background: var(--ir4-accent-soft); color: var(--ir4-text); }

.vr-header .vr-subtitle { max-width: none; line-height: 1.5; }
.vr-header .vr-date { margin: 8px 0 0; color: var(--ir4-muted); font-size: 13px; font-weight: 400; letter-spacing: normal; line-height: 1.5; text-transform: none; }

.vr-contents { display: flex; padding: 8px 24px; flex-wrap: wrap; gap: 4px 14px; border-bottom: 1px solid var(--ir4-line); background: var(--ir4-inset); font-size: 11px; }
.vr-contents strong { color: var(--ir4-text); }
.vr-contents a { color: var(--ir4-muted); text-decoration: none; }
.vr-contents a:hover,
.vr-contents a:focus-visible { color: var(--ir4-accent); text-decoration: underline; text-underline-offset: 3px; }

.vr-section { padding: 20px 24px; scroll-margin-top: 14px; border-bottom: 1px solid var(--ir4-line); }
.vr-section > * { margin-block: 0; }
.vr-section > * + * { margin-top: 10px; }
.vr-section-title { display: grid; grid-template-columns: 32px minmax(0, 1fr); gap: 8px; align-items: baseline; }
.vr-section-title span { color: var(--ir4-accent); font-size: 11px; font-weight: 700; }
.vr-section-title h2 { margin: 0; color: var(--ir4-text); font-size: 21px; font-weight: 700; letter-spacing: -.02em; line-height: 1.15; }
.vr-copy { max-width: none; margin-left: 0; }
.vr-copy p { margin: 0 0 8px; color: var(--ir4-text-mid); font-size: 14px; line-height: 1.55; }
.vr-copy p:last-child { margin-bottom: 0; }
.vr-copy strong { color: var(--ir4-text); }
.vr-copy .vr-opening { color: var(--ir4-text); }
.vr-copy h3 { margin: 13px 0 5px; color: var(--ir4-text); font-size: 15px; }
.vr-copy h3:first-child { margin-top: 0; }

.vr-intro-lede {
  display: grid;
  grid-template-columns: minmax(300px, 5fr) minmax(0, 7fr);
  gap: 24px;
  padding: 2px 0 10px;
  border-bottom: 1px solid var(--ir4-line);
}
.vr-intro-lede p { margin: 0; color: var(--ir4-text-mid); font-size: 14px; line-height: 1.55; }
.vr-intro-lede .vr-intro-thesis { color: var(--ir4-text); }
.vr-intro-lede strong { color: var(--ir4-text); }

.vr-identity-rail { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); border-top: 1px solid var(--ir4-line); border-left: 1px solid var(--ir4-line); }
.vr-identity-rail > div { display: grid; min-width: 0; padding: 8px 10px 9px; gap: 1px; border-right: 1px solid var(--ir4-line); border-bottom: 1px solid var(--ir4-line); background: var(--ir4-inset); }
.vr-identity-rail span { color: var(--ir4-muted); font-size: 10px; font-weight: 700; letter-spacing: .03em; text-transform: uppercase; }
.vr-identity-rail strong { color: var(--ir4-accent); font-size: 14px; line-height: 1.35; }
.vr-identity-rail small { color: var(--ir4-muted); font-size: 12px; line-height: 1.4; }

.vr-media-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.vr-media-grid .vr-video { align-self: stretch; }
.vr-media-grid .vr-video figcaption { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; gap: 8px; align-items: baseline; }
.vr-media-grid .vr-video figcaption strong { color: var(--ir4-accent); font-size: 10px; }
.vr-media-grid .vr-video figcaption span { min-width: 0; color: var(--ir4-muted); font-size: 11px; }
.vr-media-grid .vr-video figcaption a { font-size: 10px; white-space: nowrap; }

.vr-overview-grid { display: grid; grid-template-columns: minmax(0, 2fr) minmax(320px, 1fr); gap: 10px; align-items: stretch; }
.vr-overview-copy { min-width: 0; }
.vr-overview-copy > * { margin-block: 0; }
.vr-overview-copy > * + * { margin-top: 10px; }
.vr-overview-grid .vr-decoder { grid-template-columns: 1fr; }
.vr-video { min-width: 0; margin: 0; align-self: start; border: 1px solid var(--ir4-line); background: var(--ir4-inset); }
.vr-video-frame { aspect-ratio: 16 / 9; background: #000; }
.vr-video iframe { display: block; width: 100%; height: 100%; border: 0; }
.vr-video figcaption { padding: 6px 8px; color: var(--ir4-muted); font-size: 11px; line-height: 1.4; }
.vr-video a { color: var(--ir4-accent); text-decoration: none; }
.vr-video a:hover,
.vr-video a:focus-visible { color: var(--ir4-text); text-decoration: underline; text-underline-offset: 3px; }

.vr-decoder,
.vr-diagram,
.vr-table-scroll,
.vr-steps,
.vr-note,
.vr-definitions,
.vr-glossary,
.vr-caveats > ul,
.vr-sources > ol { width: 100%; margin-right: 0; margin-left: 0; }

.vr-decoder { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); border-top: 1px solid var(--ir4-line); border-left: 1px solid var(--ir4-line); }
.vr-decoder > div { display: flex; min-width: 0; padding: 6px 8px; align-items: baseline; gap: 7px; border-right: 1px solid var(--ir4-line); border-bottom: 1px solid var(--ir4-line); background: var(--ir4-inset); }
.vr-decoder strong { display: block; color: var(--ir4-accent); font-size: 14px; }
.vr-decoder span { min-width: 0; color: var(--ir4-muted); font-size: 12px; line-height: 1.35; }

.vr-table-scroll { min-width: 0; }
.vr-table-scroll .ir4-model-table {
  min-width: 760px;
  font-family: inherit;
  font-size: 14px;
  line-height: 1.6;
}
.vr-table-scroll .ir4-model-table th,
.vr-table-scroll .ir4-model-table td {
  padding: 6px 8px;
  font-family: inherit;
  font-size: inherit;
  line-height: inherit;
  overflow-wrap: normal;
  word-break: normal;
}
.vr-explainer-table tbody td:first-child,
.vr-component-table tbody td:first-child,
.vr-spec-table tbody td:first-child { color: var(--ir4-text); font-weight: 700; }
.vr-component-table td:first-child { width: 26%; }

.vr-diagram { border: 1px solid var(--ir4-line); background: var(--ir4-inset); }
.vr-diagram svg { display: block; width: 100%; height: auto; }
.vr-diagram figcaption { padding: 6px 8px; border-top: 1px solid var(--ir4-line); color: var(--ir4-muted); font-size: 12px; }
.vr-diagram .vr-box,
.vr-diagram .vr-part { fill: var(--ir4-surface); stroke: var(--ir4-line-strong); stroke-width: 1; }
.vr-diagram .vr-box-blue { stroke: var(--ir4-accent); }
.vr-diagram .vr-line { fill: none; stroke: var(--ir4-accent); stroke-width: 1.5; }
.vr-diagram .vr-inner-line { fill: none; stroke: var(--ir4-line-strong); stroke-width: 1; }
.vr-diagram marker path { fill: var(--ir4-accent); }
.vr-diagram text { font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif; }
.vr-diagram .vr-label { fill: var(--ir4-accent); font-size: 11px; font-weight: 700; }
.vr-diagram .vr-text { fill: var(--ir4-text); font-size: 11px; font-weight: 600; }
.vr-diagram .vr-small { fill: var(--ir4-muted); font-size: 9px; }

.vr-steps { padding: 0; list-style: none; counter-reset: vr-step; border-top: 1px solid var(--ir4-line); }
.vr-steps li { display: grid; padding: 7px 0; grid-template-columns: 28px 210px minmax(0, 1fr); gap: 8px; border-bottom: 1px solid var(--ir4-line); counter-increment: vr-step; }
.vr-steps li::before { content: "0" counter(vr-step); color: var(--ir4-accent); font-size: 11px; font-weight: 700; }
.vr-steps strong { color: var(--ir4-text); font-size: 14px; }
.vr-steps span { color: var(--ir4-muted); font-size: 14px; line-height: 1.5; }

.vr-note { padding: 8px 10px; border-left: 3px solid var(--ir4-accent); background: var(--ir4-inset); color: var(--ir4-muted); font-size: 12px; line-height: 1.45; }
.vr-note strong { color: var(--ir4-text); }

.vr-definitions,
.vr-glossary { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); border-top: 1px solid var(--ir4-line); border-left: 1px solid var(--ir4-line); }
.vr-definitions > div,
.vr-glossary > div { padding: 7px 9px; border-right: 1px solid var(--ir4-line); border-bottom: 1px solid var(--ir4-line); }
.vr-definitions dt,
.vr-glossary dt { color: var(--ir4-text); font-size: 14px; font-weight: 700; }
.vr-definitions dd,
.vr-glossary dd { margin: 2px 0 0; color: var(--ir4-muted); font-size: 12px; line-height: 1.4; }

.vr-reference-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.vr-reference-grid .vr-section { padding-top: 16px; padding-bottom: 16px; }
.vr-reference-grid .vr-terms { grid-column: 1 / -1; }
.vr-reference-grid .vr-glossary { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.vr-reference-grid .vr-caveats { border-right: 1px solid var(--ir4-line); }

.vr-caveats > ul { padding: 0; list-style: none; border-top: 1px solid var(--ir4-line); }
.vr-caveats li { padding: 6px 0 6px 15px; border-bottom: 1px solid var(--ir4-line); color: var(--ir4-muted); font-size: 12px; line-height: 1.4; }
.vr-caveats li::before { position: absolute; margin-left: -17px; color: var(--ir4-accent); content: "—"; }
.vr-sources > ol { padding-left: 19px; }
.vr-sources li { padding: 3px 0 5px 2px; color: var(--ir4-muted); font-size: 12px; line-height: 1.4; }
.vr-sources a { color: var(--ir4-accent); font-size: 12px; font-weight: 700; text-decoration: none; }
.vr-sources a:hover,
.vr-sources a:focus-visible { color: var(--ir4-text); text-decoration: underline; text-underline-offset: 3px; }
.vr-sources li span { display: block; margin-top: 2px; }
.vr-footer { display: flex; padding: 11px 28px; justify-content: space-between; border-bottom: 1px solid var(--ir4-line); background: var(--ir4-inset); color: var(--ir4-muted); font-size: 10px; }
.vr-footer a { color: var(--ir4-accent); text-decoration: none; }

@media (max-width: 980px) {
  .vr-overview-grid { grid-template-columns: 1fr; }
  .vr-overview-grid .vr-decoder { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .vr-reference-grid { grid-template-columns: 1fr; }
  .vr-reference-grid .vr-terms { grid-column: auto; }
  .vr-reference-grid .vr-glossary { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .vr-reference-grid .vr-caveats { border-right: 0; }
}

@media (max-width: 760px) {
  .vr-contents { padding-inline: 14px; }
  .vr-section { padding: 16px 14px; }
  .vr-section-title { grid-template-columns: 27px minmax(0, 1fr); gap: 7px; }
  .vr-section-title h2 { font-size: 20px; }
  .vr-intro-lede { grid-template-columns: 1fr; gap: 8px; }
  .vr-identity-rail { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .vr-media-grid { grid-template-columns: 1fr; }
  .vr-copy,
  .vr-decoder,
  .vr-diagram,
  .vr-table-scroll,
  .vr-steps,
  .vr-note,
  .vr-definitions,
  .vr-glossary,
  .vr-caveats > ul,
  .vr-sources > ol { width: 100%; margin-left: 0; }
  .vr-decoder,
  .vr-definitions,
  .vr-glossary { grid-template-columns: 1fr; }
  .vr-overview-grid .vr-decoder { grid-template-columns: 1fr; }
  .vr-reference-grid { grid-template-columns: 1fr; }
  .vr-reference-grid .vr-terms { grid-column: auto; }
  .vr-reference-grid .vr-glossary { grid-template-columns: 1fr; }
  .vr-reference-grid .vr-caveats { border-right: 0; }
  .vr-diagram { overflow-x: auto; }
  .vr-diagram svg { width: 760px; max-width: none; }
  .vr-compact-diagram svg { width: 100%; max-width: 100%; }
  .vr-table-scroll { max-width: 100%; overflow-x: auto; }
  .vr-table-scroll .ir4-model-table { width: 760px; min-width: 760px; }
  .vr-steps li { grid-template-columns: 26px minmax(0, 1fr); }
  .vr-steps span { grid-column: 2; }
  .vr-footer { padding-inline: 14px; }
}
