@import url("https://fonts.googleapis.com/css2?family=IBM+Plex+Mono:wght@400;500;600&family=Inter:wght@400;500;600;700&family=Newsreader:opsz,wght@6..72,500;6..72,600&display=swap");

@font-face {
  font-family: "STIX Two Math";
  src: url("STIXTwoMath-Regular.woff2") format("woff2");
  font-style: normal;
  font-weight: 400;
  font-display: swap;
}

:root {
  color-scheme: light;
  --canvas: #f9f6f0;
  --surface: #fff;
  --surface-soft: #f2ede5;
  --ink: #333;
  --ink-strong: #3d2645;
  --ink-muted: #625b63;
  --accent: #b893c7;
  --accent-soft: #eadff0;
  --nav-hover: #e8e8e8;
  --link: #745080;
  --border: #3d2645;
  --hairline: #d9cfd9;
  --shadow: 0 10px 28px rgb(61 38 69 / 10%);
  --syntax-call: #4b69c6;
  --syntax-comment: #74747c;
  --syntax-keyword: #d73948;
  --syntax-number: #9b5e00;
  --syntax-label: #1d6c76;
  --syntax-property: #8b41b1;
  --syntax-raw: #6b6b6f;
  --syntax-string: #198810;
  --header-height: 3.5rem;
  --sidebar-width: 15rem;
  --toc-width: 12rem;
  --radius: 0.35rem;
  --font-sans: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --font-serif: "Newsreader", Iowan Old Style, Charter, Georgia, serif;
  --font-mono: "IBM Plex Mono", "JetBrains Mono", ui-monospace, SFMono-Regular, monospace;
}

:root[data-theme="dark"] {
  color-scheme: dark;
  --canvas: #211a23;
  --surface: #2d2430;
  --surface-soft: #382d3b;
  --ink: #eee8ef;
  --ink-strong: #f8effa;
  --ink-muted: #c7bdc9;
  --accent: #b893c7;
  --accent-soft: #4a3750;
  --nav-hover: #382d3b;
  --link: #d8b9e3;
  --border: #d8b9e3;
  --hairline: #57475b;
  --shadow: 0 12px 32px rgb(0 0 0 / 30%);
  --syntax-call: #9cb5ff;
  --syntax-comment: #aaa3ad;
  --syntax-keyword: #ff8793;
  --syntax-number: #e7b66f;
  --syntax-label: #76d3df;
  --syntax-property: #d7a6f2;
  --syntax-raw: #c2bbc5;
  --syntax-string: #71d083;
}

@media (prefers-color-scheme: dark) {
  :root:not([data-theme]) {
    color-scheme: dark;
    --canvas: #211a23;
    --surface: #2d2430;
    --surface-soft: #382d3b;
    --ink: #eee8ef;
    --ink-strong: #f8effa;
    --ink-muted: #c7bdc9;
    --accent: #b893c7;
    --accent-soft: #4a3750;
    --nav-hover: #382d3b;
    --link: #d8b9e3;
    --border: #d8b9e3;
    --hairline: #57475b;
    --shadow: 0 12px 32px rgb(0 0 0 / 30%);
    --syntax-call: #9cb5ff;
    --syntax-comment: #aaa3ad;
    --syntax-keyword: #ff8793;
    --syntax-number: #e7b66f;
    --syntax-label: #76d3df;
    --syntax-property: #d7a6f2;
    --syntax-raw: #c2bbc5;
    --syntax-string: #71d083;
  }
}

* { box-sizing: border-box; }
html { scroll-padding-top: calc(var(--header-height) + 1.5rem); }
body {
  margin: 0;
  background: var(--canvas);
  color: var(--ink);
  font: 1rem/1.68 var(--font-sans);
  text-rendering: optimizeLegibility;
}
body.sidebar-open { overflow: hidden; }
a {
  color: var(--link);
  text-decoration-color: color-mix(in srgb, currentColor 35%, transparent);
  text-decoration-thickness: 1px;
  text-underline-offset: 0.2em;
  transition: color 200ms ease, text-decoration-color 300ms ease;
}
a:hover, a:focus-visible { text-decoration-color: currentColor; }
button, select, input { font: inherit; }
button, select { color: inherit; }
:where(a, button, select, input):focus-visible { outline: 2px solid var(--link); outline-offset: 2px; }

.skip-link {
  position: fixed;
  z-index: 100;
  top: 0.5rem;
  left: 0.5rem;
  padding: 0.55rem 0.75rem;
  transform: translateY(-150%);
  border: 2px solid var(--border);
  border-radius: var(--radius);
  background: var(--surface);
  color: var(--ink-strong);
  font-weight: 700;
}
.skip-link:focus { transform: translateY(0); }

.site-header {
  position: fixed;
  inset: 0 0 auto;
  z-index: 50;
  height: var(--header-height);
  display: flex;
  align-items: center;
  gap: 0;
  padding: 0;
  border-bottom: 1px solid var(--border);
  background: var(--canvas);
}
.site-brand {
  display: inline-flex;
  flex: 0 0 var(--sidebar-width);
  align-self: stretch;
  align-items: center;
  gap: 0.55rem;
  width: var(--sidebar-width);
  padding: 0 1rem;
  border-right: 1px solid var(--border);
  color: var(--ink-strong);
  font-weight: 700;
  text-decoration: none;
  letter-spacing: -0.02em;
}
.site-brand-mark {
  display: inline-grid;
  place-items: center;
  width: 1.75rem;
  height: 1.75rem;
  border: 1px solid var(--border);
  border-radius: 50%;
  background: var(--accent);
  color: #211526;
  font-family: var(--font-mono);
  font-size: 0.8rem;
}
.site-header-tools { height: 100%; margin-left: auto; padding: 0 1rem; display: flex; align-items: center; gap: 0.45rem; }
.header-button, .product-select {
  min-height: 2.25rem;
  border: 1px solid var(--hairline);
  border-radius: var(--radius);
  background: var(--surface);
}
.header-button { padding: 0.35rem 0.7rem; cursor: pointer; }
.header-link { display: inline-flex; align-items: center; color: var(--ink-strong); text-decoration: none; }
.header-link > span[aria-hidden], .header-search-icon { display: none; }
.header-search-icon {
  width: 1rem;
  height: 1rem;
  flex: 0 0 1rem;
  background: currentColor;
  font-size: 0;
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cg fill='none' stroke='black' stroke-linecap='round' stroke-width='2'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='m16 16 5 5'/%3E%3C/g%3E%3C/svg%3E") center / contain no-repeat;
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cg fill='none' stroke='black' stroke-linecap='round' stroke-width='2'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='m16 16 5 5'/%3E%3C/g%3E%3C/svg%3E") center / contain no-repeat;
}
.header-button, .product-select { transition: background-color 200ms ease, border-color 200ms ease, box-shadow 200ms ease; }
.header-button:hover, .header-button:focus-visible, .product-select:hover, .product-select:focus-visible { border-color: var(--border); background: var(--accent-soft); box-shadow: 0 2px 4px rgb(0 0 0 / 12%); }
.menu-button { display: none; }
.product-select { max-width: 11rem; padding: 0.25rem 1.8rem 0.25rem 0.55rem; }

.docs-shell {
  min-height: 100vh;
  padding-top: var(--header-height);
  display: grid;
  grid-template-columns: var(--sidebar-width) minmax(0, 1fr) var(--toc-width);
}
body[data-has-toc="false"] .docs-shell { grid-template-columns: var(--sidebar-width) minmax(0, 1fr); }
.docs-sidebar {
  position: fixed;
  top: var(--header-height);
  bottom: 0;
  left: 0;
  width: var(--sidebar-width);
  overflow-y: auto;
  padding: 1.35rem 1rem 2rem;
  border-right: 1px solid var(--hairline);
  background: var(--canvas);
}
.sidebar-group { margin: 0; }
.sidebar-group + .sidebar-group { margin-top: 1.5rem; padding-top: 0.75rem; border-top: 1px solid var(--hairline); }
.sidebar-group-title {
  margin: 0 0 0.35rem;
  color: var(--ink-strong);
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.075em;
  text-transform: uppercase;
}
.sidebar-link {
  display: block;
  margin: 0.1rem 0;
  padding: 0.35rem 0.55rem;
  border-radius: 0.2rem;
  color: var(--ink-muted);
  font-size: 0.9rem;
  line-height: 1.35;
  text-decoration: none;
  transition: background-color 200ms ease, color 200ms ease;
}
.sidebar-link:hover, .sidebar-link:focus-visible { background: var(--nav-hover); color: var(--ink-strong); }
.sidebar-link[aria-current="location"] { background: var(--accent-soft); color: var(--ink-strong); }
.sidebar-context-link.is-ancestor { background: var(--accent-soft); color: var(--ink-strong); }
.sidebar-link[aria-current="page"] { background: var(--accent); color: #211526; font-weight: 600; }
.sidebar-python-group .sidebar-group-title, .sidebar-context-group .sidebar-group-title { overflow-wrap: anywhere; font-family: var(--font-mono); letter-spacing: normal; text-transform: none; }
.sidebar-python-symbol, .sidebar-context-link { overflow-wrap: anywhere; font-size: 0.82rem; }
.sidebar-python-symbol code, .sidebar-context-link code { font-family: var(--font-mono); }
.sidebar-context-link[data-depth="1"] { padding-left: 1rem; }
.sidebar-context-link[data-depth="2"] { padding-left: 1.45rem; }
.sidebar-context-link[data-depth="3"] { padding-left: 1.9rem; }
.sidebar-context-link[data-depth="4"] { padding-left: 2.35rem; }
.sidebar-meta { margin-top: 1.5rem; color: var(--ink-muted); font-size: 0.78rem; }
.sidebar-meta code { font-size: inherit; }
.sidebar-developer-group { background: var(--accent-soft); margin-inline: -0.35rem; padding: 0.75rem 0.35rem 0.25rem; border: 1px solid var(--hairline); }

.docs-main {
  grid-column: 2;
  width: min(100%, 56rem);
  margin: 0 auto;
  padding: 2.4rem 3rem 4rem;
}
.breadcrumbs { margin: 0 0 1.4rem; color: var(--ink-muted); font-size: 0.82rem; }
.breadcrumbs a { color: inherit; }
.docs-article { min-width: 0; }
.docs-article > h1:first-child { margin-top: 0; }
.docs-article h1, .docs-article h2, .docs-article h3,
.docs-article h4, .docs-article h5, .docs-article h6 {
  color: var(--ink-strong);
  line-height: 1.2;
  letter-spacing: -0.025em;
  overflow-wrap: break-word;
  text-wrap: pretty;
}
.docs-article h1 { margin: 0 0 1.2rem; font-size: clamp(2rem, 4vw, 2.6rem); }
.docs-article h2 { margin: 3rem 0 0.85rem; font-size: 1.7rem; }
.docs-article h3 { margin: 2.2rem 0 0.7rem; font-size: 1.28rem; }
.docs-article h4 { margin: 1.8rem 0 0.55rem; font-size: 1.05rem; }
.docs-article p { margin: 0.8rem 0 1.1rem; }
.docs-article > p:first-of-type { color: var(--ink-muted); font-size: 1.08rem; }
.product-hero {
  position: relative;
  margin: -0.4rem 0 3rem;
  padding: clamp(1.4rem, 4vw, 2.3rem);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  background:
    radial-gradient(circle at 92% 12%, color-mix(in srgb, var(--accent) 52%, transparent) 0 11rem, transparent 11.1rem),
    var(--surface);
  box-shadow: 0.45rem 0.45rem 0 var(--accent-soft);
}
.product-hero-logo { display: block; width: min(18rem, 70%); height: auto; margin-bottom: 1.25rem; background-position: left center; background-repeat: no-repeat; background-size: contain; }
.product-logo-gammaloop { aspect-ratio: 2.016 / 1; background-image: url("gammalooplogo-light.svg"); background-position: center; background-size: contain; }
:root[data-theme="dark"] .product-logo-gammaloop { background-image: url("gammalooplogo-dark.svg"); }
@media (prefers-color-scheme: dark) {
  :root:not([data-theme]) .product-logo-gammaloop { background-image: url("gammalooplogo-dark.svg"); }
}
.product-logo-spenso { aspect-ratio: 637 / 189; border-radius: 1rem; background-image: url("spensologo.svg"); }
.product-hero h1 { max-width: 12ch; margin: 0.25rem 0 0.7rem; }
.product-hero > p:not(.product-eyebrow) { max-width: 42rem; color: var(--ink-muted); font-size: 1.08rem; }
.product-eyebrow { margin: 0; color: var(--link); font-size: 0.72rem; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; }
.hero-actions { display: flex; flex-wrap: wrap; gap: 0.55rem; margin-top: 1.2rem; }
.hero-action { padding: 0.55rem 0.75rem; border: 1px solid var(--border); border-radius: var(--radius); background: var(--canvas); color: var(--ink-strong); font-size: 0.86rem; font-weight: 600; text-decoration: none; }
.hero-action:hover { background: var(--accent-soft); box-shadow: 0 2px 0 var(--border); }
.hero-action.primary { background: var(--ink-strong); color: var(--canvas); }
.docs-article ul, .docs-article ol { padding-left: 1.35rem; }
.docs-article li { margin: 0.32rem 0; }
.docs-article code, .api-signature, .api-member-signature {
  font-family: var(--font-mono);
  font-size: 0.9em;
}
.docs-article :not(pre) > code {
  padding: 0.08em 0.28em;
  border: 1px solid var(--hairline);
  border-radius: 0.2rem;
  background: var(--surface);
}
.docs-article a, .docs-article :not(pre) > code { overflow-wrap: anywhere; }
.docs-article :where(img, svg, video, canvas, iframe) { max-width: 100%; }
.docs-article math { font-family: "STIX Two Math", math; font-synthesis: none; }
.docs-article math[display="block"] { display: block math; max-width: 100%; overflow-x: auto; overflow-y: hidden; }
.docs-article pre {
  max-width: 100%;
  overflow-x: auto;
  margin: 1.2rem 0 1.6rem;
  padding: 1rem 1.1rem;
  border: 1px solid var(--hairline);
  border-radius: var(--radius);
  background: var(--surface);
  box-shadow: 0 1px 3px color-mix(in srgb, var(--border) 12%, transparent);
  line-height: 1.55;
}
.syntax-call { color: var(--syntax-call); }
.syntax-comment { color: var(--syntax-comment); font-style: italic; }
.syntax-keyword, .syntax-operator { color: var(--syntax-keyword); }
.syntax-label { color: var(--syntax-label); }
.syntax-number { color: var(--syntax-number); }
.syntax-property { color: var(--syntax-property); }
.syntax-raw { color: var(--syntax-raw); }
.syntax-string { color: var(--syntax-string); }
.docs-article table { display: block; width: 100%; overflow-x: auto; border-collapse: collapse; }
.docs-article th, .docs-article td { padding: 0.55rem 0.7rem; border: 1px solid var(--hairline); text-align: left; vertical-align: top; }
.docs-article th { background: var(--accent-soft); color: var(--ink-strong); }
.api-parameter-table { min-width: 48rem; }
.api-parameter-table :is(th, td):nth-child(1) { min-width: 10rem; }
.api-parameter-table :is(th, td):nth-child(2) { min-width: 14rem; }
.api-parameter-table :is(th, td):nth-child(3) { min-width: 6rem; }
.api-parameter-table td:nth-child(-n + 3) > code { overflow-wrap: normal; white-space: nowrap; }
.docs-article blockquote { margin: 1.4rem 0; padding: 0.5rem 1rem; border-left: 1px solid var(--border); background: var(--surface); }
.docs-article > div:not([class]), .docs-article .callout {
  margin: 1.4rem 0;
  padding: 0.9rem 0;
  border-top: 1px solid var(--hairline);
  border-bottom: 1px solid var(--hairline);
  background: transparent;
}
.docs-article > div:not([class]):has(+ div:not([class])) { border-bottom: 0; }
.docs-article > div:not([class]) p:first-child { margin-top: 0; color: var(--ink-strong); font-weight: 700; }
.docs-article > div:not([class]) p:last-child { margin-bottom: 0; }

.docs-toc {
  position: fixed;
  top: var(--header-height);
  right: 0;
  bottom: 0;
  width: var(--toc-width);
  overflow-y: auto;
  padding: 1.8rem 1rem 2rem;
  border-left: 1px solid var(--hairline);
  background: var(--canvas);
}
.toc-title { margin: 0 0 0.6rem; color: var(--ink-strong); font-size: 0.75rem; font-weight: 700; letter-spacing: 0.06em; text-transform: uppercase; }
.toc-link { display: block; margin: 0 -0.4rem; padding: 0.2rem 0.4rem; border-radius: 0.2rem; color: var(--ink-muted); font-size: 0.8rem; line-height: 1.35; text-decoration: none; transition: background-color 200ms ease, color 200ms ease; }
.toc-link[data-level="3"] { padding-left: 1.1rem; }
.toc-link:hover, .toc-link:focus-visible { background: var(--nav-hover); color: var(--ink-strong); }
.toc-link.active { color: var(--link); }

.page-nav { display: grid; grid-template-columns: 1fr 1fr; gap: 0.8rem; margin-top: 3.5rem; padding-top: 1.3rem; border-top: 1px solid var(--hairline); }
.page-nav-link { min-height: 4.6rem; padding: 0.8rem 0.9rem; border: 1px solid var(--border); border-radius: var(--radius); background: var(--surface); text-decoration: none; transition: background-color 200ms ease, border-color 200ms ease, box-shadow 200ms ease, color 200ms ease, transform 200ms ease; }
.page-nav-link:hover, .page-nav-link:focus-visible { transform: translateY(-1px); border-color: var(--accent); background: var(--accent); color: #211526; box-shadow: 0 2px 4px rgb(0 0 0 / 15%); }
.page-nav-link:hover .page-nav-label, .page-nav-link:focus-visible .page-nav-label { color: #211526; }
.page-nav-link.next { text-align: right; }
.page-nav-label { display: block; color: var(--ink-muted); font-size: 0.72rem; text-transform: uppercase; letter-spacing: 0.05em; }
.page-feedback { display: flex; flex-wrap: wrap; gap: 0.5rem; margin-top: 2.5rem; padding-top: 1rem; border-top: 1px solid var(--hairline); }
.page-feedback a { padding: 0.45rem 0.65rem; border: 1px solid var(--hairline); border-radius: var(--radius); background: var(--surface); color: var(--link); font-family: var(--font-mono); font-size: 0.68rem; text-decoration: none; }
.page-feedback a:hover, .page-feedback a:focus-visible { border-color: var(--border); background: var(--accent-soft); }
.page-footer { margin-top: 2.5rem; color: var(--ink-muted); font-size: 0.78rem; }

.api-component-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(15rem, 1fr)); gap: 0.9rem; margin: 1.4rem 0; }
.api-component-card { padding: 1rem 1.1rem; border: 1px solid var(--hairline); border-radius: var(--radius); background: var(--surface); }
.api-component-card h2 { margin-top: 0; font-size: 1.15rem; }
.reference-context { color: var(--ink-muted); font-family: var(--font-mono); font-size: 0.72rem; }
.reference-lede { max-width: 54rem; color: var(--ink-strong); font-size: 1.05rem; }
.legacy-reference-anchor { display: block; width: 0; height: 0; overflow: hidden; scroll-margin-top: calc(var(--header-height) + 1rem); }
.api-symbol-list { margin: 1rem 0 2rem; border-top: 1px solid var(--hairline); }
.api-symbol-card { display: flex; justify-content: space-between; gap: 1rem; align-items: center; padding: 0.9rem 0; border-bottom: 1px solid var(--hairline); }
.api-symbol-card > div { min-width: 0; }
.api-symbol-name { display: block; margin: 0.3rem 0; font-size: 1.05rem; }
.api-symbol-name a { color: var(--ink-strong); text-decoration-thickness: 1px; text-underline-offset: 0.18em; }
.api-symbol-card p { margin: 0; color: var(--ink-muted); font-size: 0.82rem; }
.api-symbol-meta { flex: 0 0 auto; color: var(--ink-muted); font-family: var(--font-mono); font-size: 0.65rem; }
.api-member-heading { display: flex; flex-wrap: wrap; gap: 0.35rem; align-items: baseline; }
.api-member-heading h3, .api-member-heading h4, .api-member-heading h5, .api-member-heading h6 { flex: 0 1 auto; min-width: 0; margin: 0; color: var(--ink-strong); font-size: 1rem; font-weight: 650; }
.api-kind {
  display: inline-block;
  margin: 0 0.35rem 0.35rem 0;
  padding: 0.12rem 0.42rem;
  border-radius: 999px;
  background: var(--accent-soft);
  color: var(--ink-strong);
  font-size: 0.72rem;
  font-weight: 600;
}
.api-feature-requirement { padding: 0.55rem 0.7rem; border-left: 3px solid var(--accent); background: var(--accent-soft); color: var(--ink-strong); }
.api-feature-requirement code { margin-left: 0.25rem; }
.api-signature, .api-member-signature { white-space: pre-wrap; }
.api-signature a, .api-member-signature a { color: inherit; text-decoration-color: var(--accent); text-underline-offset: 0.16em; }
.api-member-list { margin: 1rem 0 2rem; border-top: 1px solid var(--hairline); }
.api-member, .api-overload, .api-member-anchor-alias { scroll-margin-top: calc(var(--header-height) + 1rem); }
.api-member.api-member-flat { margin: 0; padding: 1rem 0; border-right: 0; border-bottom: 1px solid var(--hairline); border-left: 0; background: transparent; }
.api-member-flat > .api-member-heading { min-width: 0; justify-content: space-between; cursor: default; }
.api-member-flat > .api-member-heading code, .api-symbol-siblings code, .cli-argument h3 code, .reference-setting-flat h3 code, .settings-namespace-list code { overflow-wrap: anywhere; }
.api-member-flat > .api-member-body { padding-top: 0.65rem; border-top: 0; }
.api-symbol-siblings { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); margin: 2rem 0; border-top: 1px solid var(--hairline); border-left: 1px solid var(--hairline); }
.api-symbol-siblings a { min-width: 0; display: grid; gap: 0.25rem; padding: 0.75rem; border-right: 1px solid var(--hairline); border-bottom: 1px solid var(--hairline); text-decoration: none; }
.api-symbol-siblings span { color: var(--ink-muted); font-family: var(--font-mono); font-size: 0.62rem; text-transform: uppercase; }
.api-overloads { display: grid; gap: 0; margin-top: 0.9rem; }
.api-overloads > h4, .api-overloads > h5, .api-overloads > h6, .api-overload > h5, .api-overload > h6 { margin: 0; }
.api-overload { min-width: 0; padding: 0.7rem 0; border: 0; border-top: 1px solid var(--hairline); background: transparent; }
.api-docstring { white-space: normal; }
.api-doc-section { margin: 1rem 0; }
.api-doc-section h2, .api-doc-section h3, .api-doc-section h4, .api-doc-section h5, .api-doc-section h6 { margin: 0 0 0.55rem; color: var(--ink-strong); font-size: 0.86rem; }
.api-doc-definitions { display: grid; grid-template-columns: minmax(8rem, 0.7fr) minmax(12rem, 1.3fr); margin: 0; border-top: 1px solid var(--hairline); }
.api-doc-definitions dt, .api-doc-definitions dd { min-width: 0; margin: 0; padding: 0.55rem 0.65rem; border-bottom: 1px solid var(--hairline); }
.api-doc-definitions dt { color: var(--ink-strong); }
.api-doc-definitions dt span { display: block; margin-top: 0.15rem; color: var(--ink-muted); font-size: 0.72rem; }
.api-doc-definitions dd p { margin: 0; }
.api-doc-type { color: var(--ink-muted); }
.stub-source { margin: 2rem 0; padding: 0.85rem 1rem; border: 1px solid var(--hairline); border-radius: var(--radius); background: var(--surface-soft); }
.stub-source p { margin-bottom: 0; }
.reference-summary { color: var(--ink-muted); font-family: var(--font-mono); font-size: 0.72rem; }
.reference-coverage { margin: 1.6rem 0; padding: 1rem 0; border-top: 1px solid var(--hairline); border-bottom: 1px solid var(--hairline); background: transparent; }
.reference-coverage > h2 { margin-top: 0; }
.reference-coverage > p { max-width: 54rem; color: var(--ink-muted); font-size: 0.84rem; }
.reference-coverage-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(14rem, 1fr)); gap: 1.25rem; border-top: 1px solid var(--hairline); }
.reference-coverage-grid article { min-width: 0; display: grid; gap: 0.25rem; padding: 0.8rem 0 0; background: transparent; }
.reference-coverage-grid strong { color: var(--ink-muted); font-family: var(--font-mono); font-size: 1.25rem; font-weight: 600; line-height: 1; }
.reference-coverage-grid span { font-size: 0.78rem; font-weight: 650; }
.reference-coverage-grid small { color: var(--ink-muted); font-size: 0.68rem; }
.reference-guide-links { display: flex; flex-wrap: wrap; gap: 0.5rem; margin: 1rem 0 1.5rem; }
.reference-guide-links a {
  border: 1px solid var(--hairline);
  border-radius: var(--radius);
  background: var(--surface);
  text-decoration: none;
}
.reference-guide-links a { padding: 0.45rem 0.65rem; font-size: 0.82rem; }
.reference-jump-nav { margin: 1.5rem 0 2.2rem; padding: 0.9rem 0; border-top: 1px solid var(--hairline); border-bottom: 1px solid var(--hairline); background: transparent; }
.reference-jump-nav > h2 { margin: 0 0 0.75rem; font-size: 1.25rem; }
.reference-jump-groups { display: grid; grid-template-columns: repeat(auto-fit, minmax(13rem, 1fr)); gap: 0.9rem; }
.reference-jump-group { min-width: 0; }
.reference-jump-group > h3 { margin: 0 0 0.35rem; color: var(--ink-muted); font-family: var(--font-mono); font-size: 0.66rem; letter-spacing: 0.04em; text-transform: uppercase; }
.reference-jump-list { display: grid; margin: 0; padding: 0; list-style: none; }
.reference-jump-list li { min-width: 0; margin: 0; border-top: 1px solid var(--hairline); }
.reference-jump-list a { min-width: 0; display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 0.45rem; align-items: baseline; padding: 0.38rem 0.2rem; text-decoration: none; }
.reference-jump-list a > span { min-width: 0; display: grid; gap: 0.12rem; }
.reference-jump-list code { overflow-wrap: anywhere; color: var(--ink-strong); font-size: 0.76rem; }
.reference-jump-summary { overflow: hidden; color: var(--ink-muted); font-size: 0.68rem; line-height: 1.35; text-overflow: ellipsis; white-space: nowrap; }
.reference-jump-list small { color: var(--ink-muted); font-family: var(--font-mono); font-size: 0.58rem; text-transform: uppercase; }
.reference-tools { display: grid; grid-template-columns: minmax(12rem, 1fr) auto; gap: 0.4rem 0.8rem; align-items: end; margin: 1.5rem 0; padding: 0.85rem 0; border-top: 1px solid var(--hairline); border-bottom: 1px solid var(--hairline); background: transparent; }
.reference-tools label { grid-column: 1 / -1; color: var(--ink-muted); font-family: var(--font-mono); font-size: 0.68rem; }
.reference-tools input { min-width: 0; padding: 0.65rem 0.75rem; border: 1px solid var(--border); border-radius: var(--radius); background: var(--canvas); color: var(--ink); }
.reference-tools output { color: var(--ink-muted); font-family: var(--font-mono); font-size: 0.68rem; white-space: nowrap; }
.reference-permalink { display: inline-block; width: fit-content; color: var(--ink-muted); font-family: var(--font-mono); font-size: 0.65rem; text-decoration: none; }
.reference-detail-heading { display: flex; gap: 0.5rem; align-items: baseline; margin: 3rem 0 0.85rem; }
.reference-detail-heading h2 { margin: 0; }
.reference-aliases { color: var(--ink-muted); font-size: 0.82rem; }
.reference-copy-row { position: relative; min-width: 0; }
.reference-copy-row pre { min-width: 0; margin: 0; padding-right: 3.6rem; }
button[data-copy-target] { display: none; }
.js button[data-copy-target] {
  --copy-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cg fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='2'%3E%3Crect width='13' height='13' x='8' y='8' rx='2'/%3E%3Cpath d='M16 8V5a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2v9a2 2 0 0 0 2 2h3'/%3E%3C/g%3E%3C/svg%3E");
  position: absolute;
  z-index: 2;
  top: 0.5rem;
  right: 0.5rem;
  width: 1.9rem;
  height: 1.9rem;
  display: grid;
  place-items: center;
  margin: 0;
  padding: 0;
  border: 1px solid var(--hairline);
  border-radius: var(--radius);
  background: color-mix(in srgb, var(--surface) 94%, transparent);
  box-shadow: 0 1px 3px color-mix(in srgb, var(--border) 12%, transparent);
  color: var(--link);
  font-size: 0;
  line-height: 0;
  cursor: pointer;
}
.js button[data-copy-target]::before {
  width: 0.9rem;
  height: 0.9rem;
  display: block;
  background: currentColor;
  content: "";
  -webkit-mask: var(--copy-icon) center / contain no-repeat;
  mask: var(--copy-icon) center / contain no-repeat;
}
.js button[data-copy-target]:hover { border-color: var(--border); background: var(--accent-soft); }
.js button[data-copy-target][data-copy-state="copied"] {
  --copy-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='m5 12 4 4L19 6' fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='2.5'/%3E%3C/svg%3E");
}
.js button[data-copy-target][data-copy-state="copied"]::before { transform: translateY(0.04rem); }
.js button[data-copy-target][data-copy-feedback]::after {
  position: absolute;
  top: calc(100% + 0.35rem);
  right: 0;
  padding: 0.22rem 0.42rem;
  border-radius: 0.2rem;
  background: var(--ink-strong);
  color: var(--canvas);
  content: attr(data-copy-feedback);
  font-size: 0.66rem;
  line-height: 1.3;
  white-space: nowrap;
}
.copy-status { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); clip-path: inset(50%); white-space: nowrap; }
.api-example-copy-row { margin: 1.2rem 0 1.6rem; }
.typst-api-module pre { max-height: 30rem; overflow: auto; }
.reference-table-wrap { width: 100%; overflow-x: auto; }
.reference-table-wrap > table { display: table; overflow: visible; }
.reference-missing { color: var(--ink-muted); font-size: 0.82rem; }
.cli-command-family { margin: 2rem 0; }
.cli-command-family > h2 { padding-bottom: 0.55rem; border-bottom: 1px solid var(--border); }
.cli-command-list { display: grid; }
.cli-command-link { display: flex; justify-content: space-between; gap: 1rem; align-items: center; min-width: 0; padding: 0.8rem 0.2rem; border-bottom: 1px solid var(--hairline); color: var(--ink-strong); text-decoration: none; }
.cli-command-link:hover, .cli-command-link:focus-visible { padding-left: 0.55rem; background: var(--accent-soft); }
.cli-command-link > span:first-child { min-width: 0; display: grid; gap: 0.2rem; }
.cli-command-link small { overflow: hidden; color: var(--ink-muted); font-size: 0.75rem; text-overflow: ellipsis; white-space: nowrap; }
.cli-settings-callout { margin: 2.5rem 0; padding: 1.2rem; border-top: 1px solid var(--border); border-bottom: 1px solid var(--border); background: var(--surface-soft); }
.cli-settings-callout h2 { margin: 0.45rem 0; }
.cli-argument-section { margin: 2.2rem 0; }
.cli-argument-section > h2 { padding-bottom: 0.55rem; border-bottom: 1px solid var(--border); }
.cli-argument { padding: 1rem 0.2rem; border-bottom: 1px solid var(--hairline); scroll-margin-top: calc(var(--header-height) + 1rem); }
.cli-argument > header, .reference-setting-flat > header { display: flex; justify-content: space-between; gap: 0.75rem; align-items: baseline; }
.cli-argument h3, .reference-setting-flat h3 { min-width: 0; margin: 0; font-size: 0.95rem; }
.cli-related nav, .settings-hierarchy nav { display: grid; grid-template-columns: repeat(auto-fit, minmax(14rem, 1fr)); border-top: 1px solid var(--hairline); }
.cli-related nav a, .settings-hierarchy nav a { min-width: 0; display: grid; gap: 0.25rem; padding: 0.75rem 0.2rem; border-bottom: 1px solid var(--hairline); text-decoration: none; }
.cli-related nav span, .settings-hierarchy nav span { color: var(--ink-muted); font-family: var(--font-mono); font-size: 0.62rem; text-transform: uppercase; }
.settings-namespace-list { display: grid; margin: 1rem 0 2rem; border-top: 1px solid var(--border); }
.settings-namespace-list > a { display: flex; justify-content: space-between; gap: 1rem; padding: 0.75rem 0.2rem; border-bottom: 1px solid var(--hairline); text-decoration: none; }
.settings-namespace-list span { color: var(--ink-muted); font-size: 0.72rem; }
.reference-setting { min-width: 0; padding: 0.85rem; border: 1px solid var(--hairline); border-radius: var(--radius); background: var(--canvas); scroll-margin-top: calc(var(--header-height) + 1rem); }
.reference-setting-list { margin: 1.5rem 0; border-top: 1px solid var(--border); }
.reference-setting.reference-setting-flat { margin: 0; padding: 1.15rem 0.2rem; border: 0; border-bottom: 1px solid var(--border); border-radius: 0; background: transparent; }
.reference-setting-path { margin: 0.25rem 0 0.65rem; color: var(--ink-muted); font-family: var(--font-mono); font-size: 0.68rem; overflow-wrap: anywhere; }
.reference-default details { min-width: 0; }
.reference-default summary { width: fit-content; color: var(--link); cursor: pointer; }
.reference-default pre { max-height: 22rem; margin: 0.5rem 0 0; white-space: pre-wrap; overflow-wrap: anywhere; }
.reference-facts { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); margin: 0; border-top: 1px solid var(--hairline); border-left: 1px solid var(--hairline); }
.reference-facts > div { min-width: 0; padding: 0.55rem; border-right: 1px solid var(--hairline); border-bottom: 1px solid var(--hairline); }
.reference-facts dt { color: var(--ink-muted); font-family: var(--font-mono); font-size: 0.58rem; text-transform: uppercase; }
.reference-facts dd { margin: 0.25rem 0 0; overflow-wrap: anywhere; font-size: 0.74rem; }
.reference-setting:target, .cli-argument:target, .api-member:target, .api-overload:target, .api-member-anchor-alias:target > .api-member { outline: 3px solid color-mix(in srgb, var(--accent) 65%, transparent); outline-offset: 3px; }
[data-reference-entry][hidden], [data-reference-group][hidden] { display: none !important; }
.reference-hub-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(15rem, 1fr)); margin: 1.5rem 0; border-top: 1px solid var(--border); border-left: 1px solid var(--border); }
.reference-hub-card { min-height: 14rem; padding: 1.25rem; border-right: 1px solid var(--border); border-bottom: 1px solid var(--border); background: var(--surface); }
.reference-hub-card h2 { margin: 1.4rem 0 0.6rem; font-family: var(--font-serif); }
.reference-hub-card h2 a { color: var(--ink-strong); text-decoration: none; }

.search-dialog { width: min(42rem, calc(100vw - 2rem)); max-height: min(42rem, calc(100vh - 2rem)); padding: 0; border: 1px solid var(--border); border-radius: 0.5rem; background: var(--canvas); color: var(--ink); box-shadow: var(--shadow); }
.search-dialog::backdrop { background: rgb(33 21 38 / 55%); backdrop-filter: blur(3px); }
.search-form { position: sticky; top: 0; display: flex; gap: 0.5rem; padding: 0.8rem; border-bottom: 1px solid var(--hairline); background: var(--canvas); }
.search-input { flex: 1; min-width: 0; padding: 0.65rem 0.8rem; border: 1px solid var(--border); border-radius: var(--radius); background: var(--surface); color: var(--ink); }
.search-results { margin: 0; padding: 0.6rem; list-style: none; }
.search-result a { display: block; padding: 0.65rem 0.75rem; border-radius: var(--radius); text-decoration: none; }
.search-result a:hover { background: var(--accent-soft); }
.search-result-title { display: block; color: var(--ink-strong); font-weight: 600; }
.search-result-kind { display: block; margin: 0.15rem 0; color: var(--link); font-family: var(--font-mono); font-size: 0.62rem; font-weight: 600; letter-spacing: 0.03em; text-transform: uppercase; }
.search-result-summary { display: -webkit-box; overflow: hidden; color: var(--ink-muted); font-size: 0.82rem; -webkit-box-orient: vertical; -webkit-line-clamp: 3; }
.search-empty { padding: 1.2rem; color: var(--ink-muted); }
.sidebar-backdrop { display: none; }

.developer-main { width: min(100%, 62rem); }
.developer-article > p, .developer-article > ul, .developer-article > ol, .developer-article > blockquote { max-width: 48rem; }
.developer-hero, .developer-note-hero {
  margin: -0.35rem 0 3rem;
  padding: clamp(1.5rem, 4vw, 2.8rem);
  border: 1px solid var(--border);
  background:
    linear-gradient(90deg, transparent 0 95%, color-mix(in srgb, var(--accent) 55%, transparent) 95%),
    linear-gradient(var(--hairline) 1px, transparent 1px),
    linear-gradient(90deg, var(--hairline) 1px, transparent 1px),
    var(--surface);
  background-size: auto, 1.5rem 1.5rem, 1.5rem 1.5rem, auto;
  box-shadow: 0.45rem 0.45rem 0 var(--accent-soft);
}
.developer-hero h1, .developer-note-hero h1 { max-width: 15ch; margin: 0.55rem 0 0.8rem; font-family: var(--font-serif); font-weight: 500; }
.developer-hero > p:not(.product-eyebrow), .developer-note-hero > p:not(.product-eyebrow, .developer-source) { max-width: 48rem; color: var(--ink-muted); font-size: 1.06rem; }
.developer-audience {
  display: grid;
  grid-template-columns: minmax(10rem, 0.7fr) minmax(16rem, 1.3fr) auto;
  gap: 1rem;
  align-items: center;
  margin-top: 2rem;
  padding: 1rem;
  border: 1px solid var(--border);
  background: var(--canvas);
  font-size: 0.82rem;
}
.developer-audience strong { color: var(--ink-strong); }
.developer-audience span { color: var(--ink-muted); }
.developer-audience a { font-family: var(--font-mono); font-size: 0.68rem; font-weight: 600; text-decoration: none; text-transform: uppercase; }
.developer-section { margin: 0 0 4.5rem; scroll-margin-top: calc(var(--header-height) + 1rem); }
.developer-section + .developer-section { padding-top: 3rem; border-top: 1px solid var(--border); }
.developer-section-heading { display: grid; grid-template-columns: minmax(0, 1fr) minmax(16rem, 0.8fr); gap: 1rem 2rem; align-items: end; margin-bottom: 1.5rem; }
.developer-section-heading .portal-kicker { grid-column: 1 / -1; }
.developer-section-heading h2 { margin: 0; font-family: var(--font-serif); font-size: clamp(2rem, 4vw, 3.2rem); font-weight: 500; }
.developer-section-heading > p:last-child { margin: 0; color: var(--ink-muted); font-size: 0.9rem; }
.developer-card-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); border-top: 1px solid var(--border); border-left: 1px solid var(--border); }
.developer-archive { grid-column: 1 / -1; border-right: 1px solid var(--border); border-bottom: 1px solid var(--border); background: var(--surface-soft); }
.developer-archive > summary { padding: 0.9rem 1.35rem; color: var(--ink-muted); cursor: pointer; font-family: var(--font-mono); font-size: 0.72rem; font-weight: 600; letter-spacing: 0.04em; text-transform: uppercase; }
.developer-archive > .developer-card-grid { border-left: 0; }
.developer-card { min-height: 17rem; display: flex; flex-direction: column; padding: 1.35rem; border-right: 1px solid var(--border); border-bottom: 1px solid var(--border); background: var(--surface); transition: background-color 180ms ease, box-shadow 180ms ease; }
.developer-card:hover { background: var(--accent-soft); box-shadow: inset 0.3rem 0 var(--accent); }
.developer-card-meta { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 0.5rem; align-items: center; color: var(--ink-muted); font-family: var(--font-mono); font-size: 0.6rem; text-transform: uppercase; }
.developer-card h3 { margin: 2rem 0 0.65rem; font-family: var(--font-serif); font-size: 1.65rem; font-weight: 600; line-height: 1.08; }
.developer-card h3 a { color: var(--ink-strong); text-decoration: none; }
.developer-card > p { margin: 0; color: var(--ink-muted); font-size: 0.86rem; }
.developer-card .portal-text-link { margin-top: auto; padding-top: 1.5rem; }
.developer-status { display: inline-flex; align-items: center; width: fit-content; padding: 0.18rem 0.5rem; border: 1px solid var(--border); border-radius: 999px; background: var(--accent-soft); color: var(--ink-strong); font-family: var(--font-mono); font-size: 0.62rem; font-weight: 600; letter-spacing: 0.03em; line-height: 1.35; text-transform: uppercase; }
.developer-status-implemented { background: #d8ebdf; color: #183d2a; }
.developer-status-proposal { background: #f1dfbd; color: #553711; }
.developer-status-investigation-record, .developer-status-archived-baseline { border-style: dashed; background: var(--surface-soft); color: var(--ink-muted); }
:root[data-theme="dark"] .developer-status-implemented { background: #294638; color: #d8ebdf; }
:root[data-theme="dark"] .developer-status-proposal { background: #513f25; color: #f1dfbd; }
.developer-note-title { display: flex; flex-wrap: wrap; gap: 0.8rem 1.2rem; align-items: flex-end; }
.developer-note-title h1 { flex: 1 1 24rem; }
.developer-note-badges { display: flex; flex-wrap: wrap; gap: 0.4rem; align-items: center; margin-bottom: 1.15rem; }
.developer-kind, .developer-lifecycle { color: var(--ink-muted); font-family: var(--font-mono); font-size: 0.64rem; font-weight: 600; letter-spacing: 0.03em; text-transform: uppercase; }
.developer-lifecycle { padding-left: 0.4rem; border-left: 1px solid var(--border); }
.developer-source { margin-top: 1.2rem !important; font-family: var(--font-mono); font-size: 0.68rem !important; text-transform: uppercase; }
.developer-record-meta { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); margin: -1.5rem 0 3rem; border-top: 1px solid var(--border); border-left: 1px solid var(--border); background: var(--surface); }
.developer-record-meta > div { min-width: 0; padding: 0.75rem 0.9rem; border-right: 1px solid var(--border); border-bottom: 1px solid var(--border); }
.developer-record-meta dt { margin-bottom: 0.2rem; color: var(--ink-muted); font-family: var(--font-mono); font-size: 0.62rem; font-weight: 600; letter-spacing: 0.04em; text-transform: uppercase; }
.developer-record-meta dd { margin: 0; color: var(--ink-strong); font-size: 0.82rem; overflow-wrap: anywhere; }
.developer-record-meta code { font-size: 0.74rem; }
.developer-record-meta[data-freshness="stale"], .developer-record-meta[data-freshness="unreviewed"], .developer-record-meta[data-freshness="disposition-due"] { border-top-color: #a6422b; box-shadow: inset 0 0.2rem #a6422b; }
.developer-record-meta[data-freshness="review-due"] { border-top-color: #ae7418; box-shadow: inset 0 0.2rem #ae7418; }
.developer-record-scopes { grid-column: 1 / -1; }
.developer-record-scopes ul { display: grid; gap: 0.45rem; margin: 0.35rem 0 0; padding-left: 1.1rem; }
.developer-missing { color: #8b3825; }
.developer-diagram { margin: 2rem 0; }
.developer-diagram iframe { width: 100%; height: min(62vh, 40rem); min-height: 28rem; border: 1px solid var(--border); background: var(--surface); box-shadow: 0.35rem 0.35rem 0 var(--accent-soft); }
.developer-diagram > p { margin-top: 1rem; }
.developer-inline-toc { display: none; margin: 0 0 1.5rem; border: 1px solid var(--border); background: var(--surface); }
.developer-inline-toc summary { padding: 0.7rem 0.85rem; color: var(--ink-strong); font-family: var(--font-mono); font-size: 0.72rem; font-weight: 600; cursor: pointer; text-transform: uppercase; }
.developer-inline-toc nav { max-height: 20rem; overflow-y: auto; padding: 0.2rem 0.7rem 0.8rem; border-top: 1px solid var(--hairline); }
.developer-inline-toc a { display: block; padding: 0.25rem 0.35rem; color: var(--ink-muted); font-size: 0.8rem; line-height: 1.35; text-decoration: none; }
.developer-inline-toc a[data-level="3"] { padding-left: 1.2rem; }
.developer-inline-toc a:hover, .developer-inline-toc a:focus-visible { background: var(--nav-hover); color: var(--ink-strong); }
.docs-inline-toc { display: none; margin: 0 0 1.5rem; border: 1px solid var(--hairline); background: var(--surface); }
.docs-inline-toc summary { padding: 0.7rem 0.85rem; color: var(--ink-strong); font-family: var(--font-mono); font-size: 0.72rem; font-weight: 600; cursor: pointer; text-transform: uppercase; }
.docs-inline-toc nav { max-height: 20rem; overflow-y: auto; padding: 0.2rem 0.7rem 0.8rem; border-top: 1px solid var(--hairline); }
.docs-inline-toc a { display: block; padding: 0.25rem 0.35rem; color: var(--ink-muted); font-size: 0.8rem; line-height: 1.35; text-decoration: none; }
.docs-inline-toc a[data-level="3"] { padding-left: 1.2rem; }
.docs-inline-toc a:hover, .docs-inline-toc a:focus-visible { background: var(--nav-hover); color: var(--ink-strong); }

.portal-body {
  --portal-header-height: 4.5rem;
  min-height: 100vh;
  background: var(--canvas);
}
.portal-body a { color: inherit; }
.portal-header {
  position: sticky;
  inset: 0 0 auto;
  z-index: 60;
  height: var(--portal-header-height);
  display: grid;
  grid-template-columns: minmax(16rem, 1fr) auto minmax(16rem, 1fr);
  border-bottom: 1px solid var(--border);
  background: color-mix(in srgb, var(--canvas) 94%, transparent);
  backdrop-filter: blur(14px);
}
.portal-brand {
  min-width: 0;
  display: flex;
  align-items: center;
  gap: 0.75rem;
  padding: 0 clamp(1rem, 3vw, 2.5rem);
  border-right: 1px solid var(--border);
  color: var(--ink-strong);
  text-decoration: none;
}
.portal-brand-logo, .portal-footer-mark {
  flex: 0 0 auto;
  width: 2.7rem;
  height: 2.7rem;
  background: center / contain no-repeat url("local-unitarity-light.svg");
}
:root[data-theme="dark"] .portal-brand-logo,
:root[data-theme="dark"] .portal-footer-mark { background-image: url("local-unitarity-dark.svg"); }
@media (prefers-color-scheme: dark) {
  :root:not([data-theme]) .portal-brand-logo,
  :root:not([data-theme]) .portal-footer-mark { background-image: url("local-unitarity-dark.svg"); }
}
.portal-brand-copy { display: grid; line-height: 1.15; }
.portal-brand-copy strong { font-family: var(--font-serif); font-size: 1.25rem; font-weight: 600; letter-spacing: -0.02em; }
.portal-brand-copy small { color: var(--ink-muted); font-family: var(--font-mono); font-size: 0.62rem; letter-spacing: 0.02em; }
.portal-nav { display: flex; height: 100%; }
.portal-nav a {
  display: grid;
  place-items: center;
  min-width: 7rem;
  padding: 0 1.25rem;
  border-right: 1px solid var(--hairline);
  color: var(--ink-strong);
  font-family: var(--font-mono);
  font-size: 0.72rem;
  font-weight: 500;
  letter-spacing: 0.04em;
  text-decoration: none;
  text-transform: uppercase;
  transition: background-color 180ms ease, box-shadow 180ms ease;
}
.portal-nav a:first-child { border-left: 0; }
.portal-nav a:hover, .portal-nav a:focus-visible { background: var(--accent-soft); box-shadow: inset 0 -3px var(--accent); }
.portal-header-actions { display: flex; justify-content: flex-end; align-items: stretch; border-left: 1px solid var(--border); }
.portal-source-link {
  display: flex;
  align-items: center;
  gap: 0.35rem;
  padding: 0 clamp(0.8rem, 2vw, 1.5rem);
  font-family: var(--font-mono);
  font-size: 0.72rem;
  font-weight: 500;
  text-decoration: none;
}
.portal-source-link:hover, .portal-source-link:focus-visible { background: var(--accent-soft); }
.portal-search-button {
  padding: 0 clamp(0.7rem, 1.5vw, 1.1rem);
  border: 0;
  border-right: 1px solid var(--hairline);
  background: transparent;
  color: var(--ink-strong);
  cursor: pointer;
  font-family: var(--font-mono);
  font-size: 0.72rem;
  font-weight: 500;
}
.portal-search-button:hover, .portal-search-button:focus-visible { background: var(--accent-soft); }
.portal-theme-button {
  width: var(--portal-header-height);
  border: 0;
  border-left: 1px solid var(--border);
  background: transparent;
  color: var(--ink-strong);
  cursor: pointer;
  font-size: 1.05rem;
}
.portal-theme-button:hover, .portal-theme-button:focus-visible { background: var(--accent-soft); }
.portal-main {
  width: min(92rem, 100%);
  margin: 0 auto;
  border-right: 1px solid var(--border);
  border-left: 1px solid var(--border);
}
.portal-section { scroll-margin-top: calc(var(--portal-header-height) + 1rem); }
.portal-kicker {
  margin: 0;
  color: var(--link);
  font-family: var(--font-mono);
  font-size: 0.7rem;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}
.portal-hero {
  position: relative;
  isolation: isolate;
  min-height: min(48rem, calc(100svh - var(--portal-header-height)));
  display: grid;
  grid-template-columns: minmax(0, 1.35fr) minmax(20rem, 0.65fr);
  overflow: hidden;
  border-bottom: 1px solid var(--border);
}
.portal-graph-theme-dark { display: none; }
:root[data-theme="dark"] .portal-graph-theme-light { display: none; }
:root[data-theme="dark"] .portal-graph-theme-dark { display: block; }
@media (prefers-color-scheme: dark) {
  :root:not([data-theme]) .portal-graph-theme-light { display: none; }
  :root:not([data-theme]) .portal-graph-theme-dark { display: block; }
}
.portal-hero-copy {
  position: relative;
  z-index: 1;
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: clamp(3.5rem, 7vw, 7rem) clamp(1.5rem, 6vw, 6.5rem);
  background: linear-gradient(90deg, color-mix(in srgb, var(--canvas) 97%, transparent) 0 38%, color-mix(in srgb, var(--canvas) 84%, transparent) 72%, transparent);
}
.portal-hero h1 {
  max-width: 13ch;
  margin: 1.1rem 0 1.5rem;
  color: var(--ink-strong);
  font-family: var(--font-serif);
  font-size: clamp(3.6rem, 7.5vw, 7.4rem);
  font-weight: 500;
  line-height: 0.88;
  letter-spacing: -0.055em;
}
.portal-lede { max-width: 50rem; margin: 0; color: var(--ink-muted); font-size: clamp(1rem, 1.7vw, 1.22rem); line-height: 1.65; }
.portal-hero-actions { display: flex; flex-wrap: wrap; gap: 0.65rem; margin-top: 2.1rem; }
.portal-button {
  display: inline-flex;
  align-items: center;
  justify-content: space-between;
  gap: 1.3rem;
  min-height: 3rem;
  padding: 0.65rem 1rem;
  border: 1px solid var(--border);
  background: var(--canvas);
  color: var(--ink-strong);
  font-family: var(--font-mono);
  font-size: 0.74rem;
  font-weight: 600;
  text-decoration: none;
  transition: transform 180ms ease, background-color 180ms ease, box-shadow 180ms ease;
}
.portal-body .portal-button-primary { background: var(--ink-strong); color: var(--canvas); }
.portal-button:hover, .portal-button:focus-visible { transform: translate(-2px, -2px); box-shadow: 4px 4px 0 var(--accent); }
.portal-hero-art {
  position: relative;
  z-index: 1;
  isolation: isolate;
  min-height: 26rem;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  gap: 1rem;
  overflow: hidden;
  padding: clamp(1.5rem, 3vw, 2.6rem);
  border-left: 1px solid var(--border);
  background-color: var(--surface-soft);
  background-image: linear-gradient(var(--hairline) 1px, transparent 1px), linear-gradient(90deg, var(--hairline) 1px, transparent 1px);
  background-size: 2rem 2rem;
}
.portal-hero-art::before { content: ""; position: absolute; inset: 10% -25% auto auto; z-index: 0; width: 22rem; aspect-ratio: 1; border: 1px solid var(--border); border-radius: 50%; background: var(--accent-soft); opacity: 0.7; }
.portal-wordmark { position: relative; z-index: 3; width: min(12rem, 62%); min-height: 7.5rem; background: left center / contain no-repeat url("local-unitarity-light.svg"); }
:root[data-theme="dark"] .portal-wordmark { background-image: url("local-unitarity-dark.svg"); }
@media (prefers-color-scheme: dark) {
  :root:not([data-theme]) .portal-wordmark { background-image: url("local-unitarity-dark.svg"); }
}
.portal-graph-field {
  position: absolute;
  inset: 6.5rem -3rem 3.8rem -2rem;
  z-index: 1;
  overflow: hidden;
  pointer-events: none;
}
.portal-process-graph {
  position: absolute;
  left: var(--graph-x);
  top: var(--graph-y);
  width: var(--graph-width);
  opacity: 0.92;
  transform: translate(-50%, -50%) rotate(var(--graph-rotation));
  transform-origin: center;
}
.portal-process-graph:nth-child(3n + 1) { opacity: 0.84; }
.portal-process-graph:nth-child(3n) { opacity: 0.98; }
.portal-process-graph > img { width: 100%; height: auto; vertical-align: top; }
.portal-process-graph:nth-child(1) { --graph-x: 12%; --graph-y: 12%; --graph-width: 36%; --graph-rotation: -12deg; }
.portal-process-graph:nth-child(2) { --graph-x: 66%; --graph-y: 8%; --graph-width: 43%; --graph-rotation: 6deg; }
.portal-process-graph:nth-child(3) { --graph-x: 39%; --graph-y: 30%; --graph-width: 53%; --graph-rotation: 4deg; }
.portal-process-graph:nth-child(4) { --graph-x: 91%; --graph-y: 29%; --graph-width: 36%; --graph-rotation: -10deg; }
.portal-process-graph:nth-child(5) { --graph-x: 13%; --graph-y: 51%; --graph-width: 42%; --graph-rotation: 11deg; }
.portal-process-graph:nth-child(6) { --graph-x: 64%; --graph-y: 53%; --graph-width: 57%; --graph-rotation: -7deg; }
.portal-process-graph:nth-child(7) { --graph-x: 94%; --graph-y: 66%; --graph-width: 34%; --graph-rotation: 12deg; }
.portal-process-graph:nth-child(8) { --graph-x: 29%; --graph-y: 77%; --graph-width: 46%; --graph-rotation: -6deg; }
.portal-process-graph:nth-child(9) { --graph-x: 68%; --graph-y: 86%; --graph-width: 48%; --graph-rotation: 9deg; }
.portal-process-graph:nth-child(10) { --graph-x: 5%; --graph-y: 94%; --graph-width: 49%; --graph-rotation: -8deg; }
.portal-process-graph:nth-child(11) { --graph-x: 89%; --graph-y: 103%; --graph-width: 46%; --graph-rotation: 7deg; }
.portal-hero-art > p { position: relative; z-index: 3; margin: 0; color: var(--ink-strong); font-family: var(--font-serif); font-size: clamp(1.6rem, 3vw, 2.3rem); line-height: 1.05; letter-spacing: -0.025em; }
.portal-task-chooser { border-bottom: 1px solid var(--border); background: var(--surface-soft); }
.portal-task-heading { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(18rem, 0.8fr); gap: 2rem; align-items: end; padding: clamp(2rem, 4vw, 3.5rem) clamp(1.5rem, 5vw, 5rem); border-bottom: 1px solid var(--border); }
.portal-task-heading h2 { max-width: 17ch; margin: 0.55rem 0 0; color: var(--ink-strong); font-family: var(--font-serif); font-size: clamp(2.2rem, 4vw, 3.8rem); font-weight: 500; line-height: 0.96; letter-spacing: -0.04em; }
.portal-task-heading > p { max-width: 38rem; margin: 0; color: var(--ink-muted); }
.portal-task-grid { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 1px; background: var(--border); }
.portal-task-link { min-width: 0; min-height: 12.5rem; display: grid; grid-template-columns: auto minmax(0, 1fr) auto; gap: 0.8rem; align-items: start; padding: 1.35rem; background: var(--canvas); color: var(--ink-strong); text-decoration: none; transition: background-color 180ms ease, box-shadow 180ms ease; }
.portal-task-link:hover, .portal-task-link:focus-visible { background: var(--accent-soft); box-shadow: inset 0 0.25rem var(--accent); }
.portal-task-order { color: var(--link); font-family: var(--font-mono); font-size: 0.62rem; font-weight: 600; }
.portal-task-copy { min-width: 0; display: grid; gap: 0.35rem; }
.portal-task-copy strong { font-family: var(--font-serif); font-size: clamp(1.45rem, 2.2vw, 2rem); font-weight: 600; line-height: 1; letter-spacing: -0.025em; }
.portal-task-copy > span { color: var(--link); font-family: var(--font-mono); font-size: 0.62rem; font-weight: 600; line-height: 1.35; text-transform: uppercase; }
.portal-task-copy small { color: var(--ink-muted); font-size: 0.76rem; line-height: 1.45; }
.portal-task-arrow { align-self: end; color: var(--link); font-size: 1rem; }
.portal-projects { border-bottom: 1px solid var(--border); }
.portal-section-heading { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(18rem, 0.8fr); gap: 2rem; align-items: end; padding: clamp(3.5rem, 7vw, 7rem) clamp(1.5rem, 5vw, 5rem) clamp(2rem, 4vw, 3.5rem); border-bottom: 1px solid var(--border); }
.portal-section-heading h2 { max-width: 13ch; margin: 0.8rem 0 0; color: var(--ink-strong); font-family: var(--font-serif); font-size: clamp(2.8rem, 5vw, 5.2rem); font-weight: 500; line-height: 0.94; letter-spacing: -0.045em; }
.portal-section-heading > p { max-width: 38rem; margin: 0; color: var(--ink-muted); }
.portal-project-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); }
.portal-project-card { min-height: 27rem; display: flex; flex-direction: column; padding: clamp(1.5rem, 3vw, 2.6rem); border-right: 1px solid var(--border); border-bottom: 1px solid var(--border); background: var(--canvas); transition: background-color 180ms ease, transform 180ms ease, box-shadow 180ms ease; }
.portal-project-card:nth-child(3n) { border-right: 0; }
.portal-project-card:nth-last-child(-n + 2) { border-bottom: 0; }
.portal-project-card:last-child { grid-column: span 2; border-right: 0; }
.portal-project-card:hover { z-index: 1; background: var(--accent-soft); box-shadow: inset 0.35rem 0 var(--accent); }
.portal-project-meta { display: flex; justify-content: space-between; gap: 1rem; color: var(--link); font-family: var(--font-mono); font-size: 0.66rem; font-weight: 600; letter-spacing: 0.05em; text-transform: uppercase; }
.portal-project-card h3 { margin: 2.8rem 0 0.8rem; font-family: var(--font-serif); font-size: clamp(2rem, 3.4vw, 3rem); font-weight: 600; letter-spacing: -0.035em; }
.portal-project-card h3 a { color: var(--ink-strong); text-decoration: none; }
.portal-project-summary { margin: 0; color: var(--ink-muted); }
.portal-packages { display: flex; flex-wrap: wrap; gap: 0.35rem; align-items: center; margin-top: 1.5rem; }
.portal-packages-label { flex-basis: 100%; color: var(--ink-muted); font-family: var(--font-mono); font-size: 0.6rem; text-transform: uppercase; }
.portal-package { padding: 0.16rem 0.42rem; border: 1px solid var(--hairline); background: var(--surface); color: var(--ink-strong); font-family: var(--font-mono); font-size: 0.64rem; }
.portal-card-links { display: flex; flex-wrap: wrap; gap: 0.35rem; margin-top: auto; padding-top: 2rem; }
.portal-card-links a { padding: 0.3rem 0.52rem; border: 1px solid var(--hairline); background: var(--canvas); font-family: var(--font-mono); font-size: 0.68rem; text-decoration: none; }
.portal-card-links a:hover, .portal-card-links a:focus-visible { border-color: var(--border); background: var(--surface); }
.portal-card-links .portal-card-primary { flex-grow: 1; display: flex; justify-content: space-between; border-color: var(--border); background: var(--ink-strong); color: var(--canvas); }
.portal-text-link { display: inline-flex; gap: 0.4rem; margin-top: 1rem; color: var(--link) !important; font-family: var(--font-mono); font-size: 0.7rem; font-weight: 600; text-decoration: none; text-transform: uppercase; }
.portal-text-link:hover, .portal-text-link:focus-visible { text-decoration: underline; }
.portal-funding { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; gap: 1.5rem; align-items: center; padding: clamp(1.5rem, 4vw, 3rem) clamp(1.5rem, 5vw, 5rem); border-bottom: 1px solid var(--border); background: var(--accent-soft); }
.portal-funding-mark { display: grid; place-items: center; width: 3.5rem; aspect-ratio: 1; border: 1px solid var(--border); border-radius: 50%; background: var(--accent); color: #211526; font-family: var(--font-serif); font-size: 1.8rem; }
.portal-funding h2 { margin: 0.35rem 0 0; color: var(--ink-strong); font-family: var(--font-serif); font-size: clamp(1.7rem, 3vw, 2.5rem); font-weight: 500; line-height: 1; letter-spacing: -0.025em; }
.portal-funding-copy > p:last-child { max-width: 50rem; margin: 0.65rem 0 0; color: var(--ink-muted); }
.portal-funding > .portal-text-link { margin-top: 0; }
.portal-footer { width: min(92rem, 100%); min-height: 16rem; display: grid; grid-template-columns: 1.3fr 1fr 1fr; gap: 2rem; align-items: start; margin: 0 auto; padding: clamp(2rem, 5vw, 4.5rem); border-right: 1px solid var(--border); border-left: 1px solid var(--border); }
.portal-footer > div { display: flex; gap: 1rem; align-items: center; }
.portal-footer p { margin: 0; color: var(--ink-muted); font-size: 0.82rem; }
.portal-footer strong { color: var(--ink-strong); font-family: var(--font-serif); font-size: 1.3rem; }
.portal-footer nav { display: grid; gap: 0.35rem; }
.portal-footer nav a { width: fit-content; font-family: var(--font-mono); font-size: 0.7rem; text-decoration: none; text-transform: uppercase; }
.portal-footer > p { text-align: right; }

.portal-subpage-main { min-height: 65vh; }
.portal-page-hero { padding: clamp(4rem, 9vw, 8rem) clamp(1.5rem, 7vw, 7rem); border-bottom: 1px solid var(--border); background: var(--surface-soft); }
.portal-page-hero h1 { max-width: 12ch; margin: 1rem 0 1.5rem; color: var(--ink-strong); font-family: var(--font-serif); font-size: clamp(3.5rem, 8vw, 7rem); font-weight: 500; line-height: 0.9; letter-spacing: -0.05em; }
.portal-page-hero > p:not(.portal-kicker) { max-width: 52rem; color: var(--ink-muted); font-size: 1.05rem; }
.portal-page-note { padding: 1.5rem clamp(1.5rem, 5vw, 5rem); border-top: 1px solid var(--border); background: var(--accent-soft); }
.portal-page-note p { max-width: 60rem; margin-bottom: 0; color: var(--ink-muted); }

.about-page-hero { background: linear-gradient(120deg, var(--surface-soft), var(--accent-soft)); }
.about-origin { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(24rem, 0.85fr); border-bottom: 1px solid var(--border); }
.about-origin-copy { padding: clamp(3rem, 7vw, 7rem) clamp(1.5rem, 6vw, 6rem); }
.about-origin h2, .about-pillars > header h2, .about-affiliations > header h2, .about-next h2 { margin: 0.8rem 0 1.5rem; color: var(--ink-strong); font-family: var(--font-serif); font-size: clamp(2.5rem, 5vw, 4.8rem); font-weight: 500; line-height: 0.96; letter-spacing: -0.045em; }
.about-origin-copy > p:not(.portal-kicker) { max-width: 46rem; color: var(--ink-muted); font-size: 1rem; line-height: 1.75; }
.about-origin-copy > nav, .about-next nav { display: flex; flex-wrap: wrap; gap: 0.6rem; margin-top: 2rem; }
.about-equation { min-height: 38rem; display: grid; grid-template-rows: minmax(19rem, 1fr) auto auto; gap: clamp(1rem, 3vw, 2rem); overflow: hidden; padding: clamp(2rem, 5vw, 4rem); border-left: 1px solid var(--border); background: var(--surface); }
.about-equation-illustration { min-height: 19rem; display: grid; place-items: center; }
.about-equation-graph { width: 100%; max-height: 23rem; object-fit: contain; opacity: 0.88; }
.about-equation-formula { padding-top: clamp(1rem, 2vw, 2rem); border-top: 1px solid var(--hairline); }
.about-equation-formula img { width: 100%; height: auto; max-height: 9rem; object-fit: contain; object-position: left center; }
.about-equation > small { max-width: 28rem; color: var(--ink-muted); }
.about-pillars, .about-affiliations { border-bottom: 1px solid var(--border); }
.about-pillars > header, .about-affiliations > header { padding: clamp(3rem, 6vw, 6rem) clamp(1.5rem, 6vw, 6rem) 2.5rem; border-bottom: 1px solid var(--border); }
.about-pillars > header h2, .about-affiliations > header h2 { max-width: 15ch; }
.about-affiliations > header > p:last-child { max-width: 44rem; color: var(--ink-muted); }
.about-pillars > div { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); }
.about-pillar { min-height: 20rem; padding: clamp(1.5rem, 4vw, 3.5rem); border-right: 1px solid var(--border); }
.about-pillar:last-child { border-right: 0; }
.about-pillar h2 { margin: 3rem 0 1rem; color: var(--ink-strong); font-family: var(--font-serif); font-size: clamp(2rem, 3vw, 3rem); font-weight: 500; line-height: 1; }
.about-pillar > p:last-child { color: var(--ink-muted); }
.about-affiliations > div { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.about-affiliation { position: relative; min-height: 18rem; display: grid; align-content: start; padding: clamp(1.5rem, 4vw, 3.5rem); border-right: 1px solid var(--border); color: var(--ink-strong); text-decoration: none; transition: background-color 180ms ease, box-shadow 180ms ease; }
.about-affiliation:last-child { border-right: 0; }
.about-affiliation:hover, .about-affiliation:focus-visible { background: var(--accent-soft); box-shadow: inset 0.35rem 0 var(--accent); }
.about-affiliation > span, .about-affiliation > small { color: var(--link); font-family: var(--font-mono); font-size: 0.64rem; text-transform: uppercase; }
.about-affiliation strong { margin: 2rem 0 0.25rem; font-family: var(--font-serif); font-size: clamp(2rem, 4vw, 3.5rem); font-weight: 500; }
.about-affiliation p { max-width: 35rem; color: var(--ink-muted); }
.about-affiliation b { position: absolute; top: 1.5rem; right: 1.5rem; color: var(--link); }
.about-funding { border-bottom: 1px solid var(--border); }
.about-next { padding: clamp(3rem, 7vw, 7rem) clamp(1.5rem, 6vw, 6rem); border-bottom: 1px solid var(--border); }
.about-next h2 { max-width: 13ch; }

.talks-page-hero h1 { max-width: none; }
.talks-provenance { font-family: var(--font-mono); font-size: 0.7rem !important; }
.talk-year { display: grid; grid-template-columns: clamp(15rem, 20vw, 18rem) minmax(0, 1fr); border-bottom: 1px solid var(--border); }
.talk-year > h2 { margin: 0; padding: clamp(1.5rem, 4vw, 3.5rem); padding-inline: clamp(1.5rem, 3vw, 3rem); border-right: 1px solid var(--border); color: var(--link); font-family: var(--font-serif); font-size: clamp(2.8rem, 5vw, 5rem); font-weight: 500; line-height: 1; }
.talk-year > div { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.talk-card { min-height: 18rem; display: grid; grid-template-columns: 5.5rem minmax(0, 1fr); border-right: 1px solid var(--border); border-bottom: 1px solid var(--border); transition: background-color 180ms ease, box-shadow 180ms ease; }
.talk-card:nth-child(2n) { border-right: 0; }
.talk-card:nth-last-child(-n + 2) { border-bottom: 0; }
.talk-card:hover { background: var(--accent-soft); box-shadow: inset 0.3rem 0 var(--accent); }
.talk-card-date { display: flex; flex-direction: column; align-items: center; padding: 1.5rem 0.75rem; border-right: 1px solid var(--hairline); color: var(--link); font-family: var(--font-mono); font-size: 0.62rem; text-transform: uppercase; }
.talk-card-date time { font-weight: 700; }
.talk-card-date span { margin-top: 0.2rem; color: var(--ink-muted); }
.talk-card-copy { display: flex; flex-direction: column; padding: clamp(1.25rem, 3vw, 2.4rem); }
.talk-card-copy .portal-kicker a { color: inherit; text-decoration: none; }
.talk-card-copy h3 { margin: 1.1rem 0 1rem; color: var(--ink-strong); font-family: var(--font-serif); font-size: clamp(1.55rem, 2.7vw, 2.3rem); font-weight: 600; line-height: 1.05; }
.talk-card-copy > p:not(.portal-kicker) { margin: 0; color: var(--ink-muted); font-size: 0.82rem; }
.talk-card-copy > p strong { color: var(--ink-strong); }
.talk-card-copy nav { display: flex; flex-wrap: wrap; gap: 0.45rem; margin-top: auto; padding-top: 1.5rem; }
.talk-card-copy nav a { padding: 0.3rem 0.52rem; border: 1px solid var(--hairline); background: var(--surface); font-family: var(--font-mono); font-size: 0.64rem; text-decoration: none; text-transform: uppercase; }
.talk-card-copy nav a:hover, .talk-card-copy nav a:focus-visible { border-color: var(--border); background: var(--canvas); }

.people-page-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.people-card { min-height: 24rem; display: grid; grid-template-columns: minmax(10rem, 0.85fr) minmax(14rem, 1.15fr); border-right: 1px solid var(--border); border-bottom: 1px solid var(--border); background: var(--canvas); }
.people-card:nth-child(2n) { border-right: 0; }
.people-card-portrait, .people-card-initials { width: 100%; height: 100%; min-height: 24rem; border-right: 1px solid var(--border); object-fit: cover; }
.people-card-portrait { object-position: left center; }
#ben-ruijl > .people-card-portrait { object-position: center; }
.people-card-initials { display: grid; place-items: center; background: var(--accent-soft); color: var(--ink-strong); font-family: var(--font-serif); font-size: 4rem; }
.people-card-copy { display: flex; flex-direction: column; padding: clamp(1.4rem, 3vw, 2.5rem); }
.people-card h2 { margin: 1.5rem 0 0.65rem; color: var(--ink-strong); font-family: var(--font-serif); font-size: clamp(2rem, 3vw, 3rem); font-weight: 600; line-height: 1; }
.people-card-copy > p:not(.portal-kicker) { color: var(--ink-muted); }
.people-card nav { display: flex; flex-wrap: wrap; gap: 0.4rem; margin-top: auto; padding-top: 1.5rem; }
.people-card nav a { padding: 0.3rem 0.5rem; border: 1px solid var(--hairline); background: var(--surface); font-family: var(--font-mono); font-size: 0.65rem; text-decoration: none; }
.people-card nav a:hover, .people-card nav a:focus-visible { border-color: var(--border); background: var(--accent-soft); }
.publication-provenance { font-family: var(--font-mono); font-size: 0.7rem !important; }
.publication-filters { position: sticky; top: var(--portal-header-height); z-index: 20; display: grid; grid-template-columns: minmax(13rem, 2fr) repeat(4, minmax(8rem, 1fr)) auto; gap: 0; border-bottom: 1px solid var(--border); background: color-mix(in srgb, var(--canvas) 96%, transparent); backdrop-filter: blur(12px); }
.publication-filters label { display: grid; gap: 0.25rem; padding: 0.65rem; border-right: 1px solid var(--hairline); color: var(--ink-muted); font-family: var(--font-mono); font-size: 0.58rem; text-transform: uppercase; }
.publication-filters input, .publication-filters select { min-width: 0; height: 2.35rem; padding: 0.35rem 0.5rem; border: 1px solid var(--hairline); background: var(--surface); color: var(--ink); font-family: var(--font-sans); font-size: 0.78rem; text-transform: none; }
.publication-filters output { align-self: stretch; display: grid; place-items: center; min-width: 9rem; padding: 0.7rem; color: var(--ink-strong); font-family: var(--font-mono); font-size: 0.65rem; }
.publication-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.publication-card { min-height: 18rem; display: flex; flex-direction: column; padding: clamp(1.25rem, 3vw, 2.2rem); border-right: 1px solid var(--border); border-bottom: 1px solid var(--border); }
.publication-card:nth-child(2n of :not([hidden])) { border-right: 0; }
.publication-card[hidden] { display: none; }
.publication-card-meta { display: flex; flex-wrap: wrap; gap: 0.4rem 1rem; color: var(--link); font-family: var(--font-mono); font-size: 0.62rem; text-transform: uppercase; }
.publication-card h2 { margin: 1.4rem 0 0.8rem; color: var(--ink-strong); font-family: var(--font-serif); font-size: clamp(1.5rem, 2.6vw, 2.1rem); line-height: 1.08; }
.publication-card h2 a { text-decoration: none; }
.publication-authors { margin: 0; color: var(--ink-muted); font-size: 0.82rem; }
.publication-card nav { display: flex; flex-wrap: wrap; gap: 0.75rem; margin-top: auto; padding-top: 1.5rem; font-family: var(--font-mono); font-size: 0.65rem; text-transform: uppercase; }

.citation-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.citation-card { min-width: 0; padding: clamp(1.5rem, 4vw, 3.5rem); border-right: 1px solid var(--border); border-bottom: 1px solid var(--border); }
.citation-card:nth-child(2n) { border-right: 0; }
.citation-card:last-child { grid-column: 1 / -1; border-right: 0; }
.citation-card h2 { margin: 1rem 0; color: var(--ink-strong); font-family: var(--font-serif); font-size: 2.8rem; }
.citation-card h3 { margin-top: 2rem; }
.citation-card pre { max-width: 100%; overflow-x: auto; padding: 1rem; border: 1px solid var(--hairline); background: var(--surface); white-space: pre-wrap; }
.citation-card .reference-copy-row pre { padding-right: 3.6rem; }
.citation-card details { margin-top: 1.5rem; }
.citation-card summary { color: var(--link); cursor: pointer; }
.citation-card .portal-button { margin-top: 0.6rem; cursor: pointer; }
.citation-status { color: var(--ink-muted); font-size: 0.82rem; }

@media (max-width: 82rem) {
  .docs-shell { grid-template-columns: var(--sidebar-width) minmax(0, 1fr); }
  .docs-toc { display: none; }
  .docs-main { grid-column: 2; }
  .developer-inline-toc { display: block; }
  .docs-inline-toc { display: block; }
}

@media (max-width: 72rem) {
  .portal-header { grid-template-columns: minmax(13rem, 1fr) auto minmax(9rem, 1fr); }
  .portal-brand { padding-inline: 1rem; }
  .portal-brand-copy small { display: none; }
  .portal-nav a { min-width: auto; padding-inline: 0.8rem; }
  .portal-hero { grid-template-columns: minmax(0, 1.15fr) minmax(18rem, 0.85fr); }
  .portal-task-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .portal-project-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .portal-project-card, .portal-project-card:nth-child(3n), .portal-project-card:nth-last-child(-n + 2) { border-right: 1px solid var(--border); border-bottom: 1px solid var(--border); }
  .portal-project-card:nth-child(2n) { border-right: 0; }
  .portal-project-card:last-child { grid-column: 1 / -1; border-right: 0; border-bottom: 0; }
  .publication-filters { grid-template-columns: repeat(3, 1fr); }
  .publication-filters output { border-top: 1px solid var(--hairline); }
}

@media (max-width: 52rem) {
  .site-header { gap: 0.65rem; padding: 0 0.65rem; }
  .site-brand { flex-basis: auto; align-self: auto; width: auto; min-width: 0; padding: 0; border-right: 0; }
  .site-header-tools { height: auto; padding: 0; }
  .site-brand-name { display: none; }
  .js .menu-button { display: inline-block; }
  .product-select { flex: 0 0 9rem; width: 9rem; max-width: 9rem; }
  .header-button-label { display: none; }
  .docs-shell { display: block; }
  .docs-sidebar { position: static; width: 100%; max-height: none; border-right: 0; border-bottom: 1px solid var(--border); }
  .js .docs-sidebar { position: fixed; z-index: 45; top: var(--header-height); bottom: 0; width: var(--sidebar-width); border-right: 1px solid var(--border); border-bottom: 0; transform: translateX(-105%); transition: transform 200ms ease; box-shadow: var(--shadow); }
  .js body.sidebar-open .docs-sidebar { transform: translateX(0); }
  .js .sidebar-backdrop { position: fixed; inset: var(--header-height) 0 0; z-index: 40; background: rgb(33 21 38 / 48%); }
  .js body.sidebar-open .sidebar-backdrop { display: block; }
  .docs-main { width: min(100%, 48rem); padding: 1.8rem 1.15rem 3rem; }
  .page-nav { grid-template-columns: 1fr; }
  .page-nav-link.next { text-align: left; }
  .developer-main { width: min(100%, 48rem); }
  .developer-audience, .developer-section-heading { grid-template-columns: 1fr; }
  .developer-card-grid { grid-template-columns: 1fr; }
  .developer-record-meta { grid-template-columns: 1fr; }
  .developer-record-scopes { grid-column: auto; }
  .api-symbol-siblings { grid-template-columns: 1fr; }
  .reference-coverage-grid { grid-template-columns: 1fr; }
  .api-doc-definitions { grid-template-columns: 1fr; }
  .api-doc-definitions dt { border-bottom: 0; background: var(--surface-soft); }
  .portal-body { --portal-header-height: 7rem; }
  .portal-header { height: var(--portal-header-height); grid-template-columns: 1fr auto; grid-template-rows: 4rem 3rem; }
  .portal-brand { border-right: 1px solid var(--border); }
  .portal-brand-logo { width: 2.3rem; height: 2.3rem; }
  .portal-header-actions { border-left: 0; }
  .portal-source-link { padding-inline: 0.8rem; }
  .portal-search-button { padding-inline: 0.7rem; }
  .portal-theme-button { width: 3.4rem; }
  .portal-nav { grid-column: 1 / -1; grid-row: 2; overflow-x: auto; border-top: 1px solid var(--border); }
  .portal-nav a { flex: 1 0 auto; border-right: 1px solid var(--hairline); }
  .portal-main, .portal-footer { border-right: 0; border-left: 0; }
  .portal-hero { min-height: auto; grid-template-columns: 1fr; }
  .portal-hero-copy { padding-top: 4.5rem; padding-bottom: 4rem; }
  .portal-hero h1 { font-size: clamp(3.5rem, 16vw, 5.4rem); }
  .portal-hero-art { min-height: 34rem; border-top: 1px solid var(--border); border-left: 0; }
  .portal-wordmark { width: 12rem; min-height: 8rem; }
  .portal-graph-field { inset: 6rem -2rem 3.5rem; }
  .portal-process-graph:nth-child(1) { --graph-x: 5%; --graph-y: 10%; --graph-width: 22%; }
  .portal-process-graph:nth-child(2) { --graph-x: 29%; --graph-y: 7%; --graph-width: 28%; }
  .portal-process-graph:nth-child(3) { --graph-x: 55%; --graph-y: 19%; --graph-width: 30%; }
  .portal-process-graph:nth-child(4) { --graph-x: 85%; --graph-y: 8%; --graph-width: 23%; }
  .portal-process-graph:nth-child(5) { --graph-x: 15%; --graph-y: 40%; --graph-width: 28%; }
  .portal-process-graph:nth-child(6) { --graph-x: 45%; --graph-y: 50%; --graph-width: 31%; }
  .portal-process-graph:nth-child(7) { --graph-x: 78%; --graph-y: 34%; --graph-width: 24%; }
  .portal-process-graph:nth-child(8) { --graph-x: 96%; --graph-y: 55%; --graph-width: 26%; }
  .portal-process-graph:nth-child(9) { --graph-x: 24%; --graph-y: 77%; --graph-width: 30%; }
  .portal-process-graph:nth-child(10) { --graph-x: 61%; --graph-y: 81%; --graph-width: 29%; }
  .portal-process-graph:nth-child(11) { --graph-x: 92%; --graph-y: 92%; --graph-width: 25%; }
  .portal-task-heading { grid-template-columns: 1fr; align-items: start; }
  .portal-task-grid { grid-template-columns: 1fr; }
  .portal-task-link { min-height: 8.5rem; }
  .portal-section-heading { grid-template-columns: 1fr; align-items: start; }
  .portal-section-heading h2 { font-size: clamp(2.8rem, 13vw, 4.4rem); }
  .portal-project-grid { grid-template-columns: 1fr; }
  .portal-project-card, .portal-project-card:nth-child(2n), .portal-project-card:nth-child(3n), .portal-project-card:nth-last-child(-n + 2) { min-height: 24rem; border-right: 0; border-bottom: 1px solid var(--border); }
  .portal-project-card:last-child { grid-column: auto; border-bottom: 0; }
  .portal-funding { grid-template-columns: auto minmax(0, 1fr); }
  .portal-funding > .portal-text-link { grid-column: 2; justify-self: start; }
  .portal-footer { grid-template-columns: 1fr; min-height: auto; }
  .portal-footer > p { text-align: left; }
  .about-origin { grid-template-columns: 1fr; }
  .about-equation { min-height: 28rem; border-top: 1px solid var(--border); border-left: 0; }
  .about-pillars > div, .about-affiliations > div { grid-template-columns: 1fr; }
  .about-pillar, .about-affiliation { border-right: 0; border-bottom: 1px solid var(--border); }
  .about-pillar:last-child, .about-affiliation:last-child { border-bottom: 0; }
  .talk-year { grid-template-columns: 1fr; }
  .talk-year > h2 { border-right: 0; border-bottom: 1px solid var(--border); }
  .talk-year > div { grid-template-columns: 1fr; }
  .talk-card, .talk-card:nth-child(2n), .talk-card:nth-last-child(-n + 2) { border-right: 0; border-bottom: 1px solid var(--border); }
  .talk-card:last-child { border-bottom: 0; }
  .people-page-grid, .publication-list, .citation-grid { grid-template-columns: 1fr; }
  .people-card, .publication-card, .citation-card, .citation-card:last-child { grid-column: auto; border-right: 0; }
  .publication-filters { position: static; grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .publication-filters output { min-height: 3rem; }
}

@media (max-width: 34rem) {
  .site-header { gap: 0.35rem; padding-inline: 0.45rem; }
  .site-header-tools { gap: 0.25rem; }
  .site-header .header-button { min-width: 2.25rem; padding-inline: 0.5rem; }
  .product-select { max-width: 9rem; }
  .reference-jump-groups { grid-template-columns: 1fr; }
  .developer-body .site-header { gap: 0.35rem; padding-inline: 0.45rem; }
  .developer-body .site-header-tools { gap: 0.25rem; }
  .developer-body .header-link-label, .developer-body .header-search-label { display: none; }
  .developer-body .header-link > span[aria-hidden] { display: inline; }
  .developer-body .header-search-icon { display: inline-block; }
  .developer-body .header-button { min-width: 2.25rem; padding-inline: 0.5rem; justify-content: center; }
  .developer-diagram iframe { height: 24rem; min-height: 24rem; }
  .portal-source-link { font-size: 0; }
  .portal-source-link span { font-size: 0.8rem; }
  .portal-brand-copy strong { font-size: 1.1rem; }
  .portal-hero-actions, .portal-button { width: 100%; }
  .portal-hero-art { min-height: 32rem; }
  .portal-graph-field { inset: 6rem -4rem 3.4rem -3rem; }
  .portal-process-graph:nth-child(1) { --graph-x: 8%; --graph-y: 8%; --graph-width: 38%; }
  .portal-process-graph:nth-child(2) { --graph-x: 66%; --graph-y: 6%; --graph-width: 45%; }
  .portal-process-graph:nth-child(3) { --graph-x: 35%; --graph-y: 27%; --graph-width: 52%; }
  .portal-process-graph:nth-child(4) { --graph-x: 94%; --graph-y: 24%; --graph-width: 38%; }
  .portal-process-graph:nth-child(5) { --graph-x: 7%; --graph-y: 47%; --graph-width: 43%; }
  .portal-process-graph:nth-child(6) { --graph-x: 61%; --graph-y: 49%; --graph-width: 55%; }
  .portal-process-graph:nth-child(7) { --graph-x: 96%; --graph-y: 62%; --graph-width: 38%; }
  .portal-process-graph:nth-child(8) { --graph-x: 28%; --graph-y: 74%; --graph-width: 46%; }
  .portal-process-graph:nth-child(9) { --graph-x: 70%; --graph-y: 82%; --graph-width: 49%; }
  .portal-process-graph:nth-child(10) { --graph-x: 4%; --graph-y: 96%; --graph-width: 46%; }
  .portal-process-graph:nth-child(11) { --graph-x: 91%; --graph-y: 101%; --graph-width: 43%; }
  .people-card { grid-template-columns: 1fr; }
  .people-card-portrait, .people-card-initials { min-height: 19rem; max-height: 24rem; border-right: 0; border-bottom: 1px solid var(--border); }
  .people-card-portrait { object-position: left top; }
  #ben-ruijl > .people-card-portrait { object-position: center top; }
  .publication-filters { grid-template-columns: 1fr; }
  .publication-filters label { border-right: 0; border-bottom: 1px solid var(--hairline); }
  .reference-tools { grid-template-columns: 1fr; }
  .reference-tools label { grid-column: auto; }
  .reference-facts { grid-template-columns: 1fr; }
}

@media (max-width: 24rem) {
  .site-header .header-search-label { display: none; }
  .site-header .header-search-icon { display: inline-block; }
}

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

@media print {
  .site-header, .docs-sidebar, .docs-toc, .developer-inline-toc, .docs-inline-toc, .page-nav, .page-feedback, .page-footer, .search-dialog, .sidebar-backdrop, .portal-header, .portal-footer, [data-copy-target] { display: none !important; }
  .docs-shell { display: block; padding: 0; }
  .docs-main { width: 100%; max-width: none; padding: 0; }
}
