@font-face { font-family: Geist; src: url('/fonts/geist.woff2') format('woff2'); font-style: normal; font-weight: 100 900; font-display: swap; }
:root { color-scheme: dark; --paper: #0a0a0a; --paper-raised: #141414; --ink: #ededed; --ink-muted: #a1a1a1; --rule: #2b2b2b; --signal: #ededed; --on-primary: #0a0a0a; --primary-hover: #d4d4d4; --input-rule: #737373; --placeholder: #a1a1a1; --error: #ff8a80; font-family: Geist, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif; }
:root[data-theme="light"] { color-scheme: light; --paper: #fff; --paper-raised: #fafafa; --ink: #171717; --ink-muted: #616161; --rule: #e5e5e5; --signal: #000; --on-primary: #fff; --primary-hover: #333; --input-rule: #b5b5b5; --placeholder: #737373; --error: #b42318; }
* { box-sizing: border-box; }
body { margin: 0; background: var(--paper); color: var(--ink); font-size: 16px; line-height: 1.65; }
a { color: var(--ink); text-underline-offset: .25em; }
a:hover { color: var(--signal); }
:focus-visible { outline: 2px solid var(--signal); outline-offset: 4px; }
[hidden] { display: none !important; }
.wrap { width: calc(100% - 48px); max-width: 820px; margin-inline: auto; }
.narrow { max-width: 760px; }
.site-header { display: flex; align-items: center; justify-content: space-between; gap: 24px; padding-block: 24px; }
.wordmark { font-size: 20px; font-weight: 550; letter-spacing: -.05em; text-decoration: none; white-space: nowrap; }
.site-header nav a { font-size: 14px; padding-block: 10px; }
.skip-link { position: absolute; left: 16px; top: -100px; z-index: 3; background: var(--paper-raised); padding: 10px; }
.skip-link:focus { top: 10px; }
h1,h2,h3,p { margin-top: 0; }
h1,h2 { font-weight: 500; letter-spacing: -.04em; line-height: 1.15; }
h1 { font-size: clamp(38px, 5vw, 56px); margin-bottom: 18px; }
h2 { font-size: 25px; margin-bottom: 16px; }
p { margin-bottom: 16px; }
.muted, .small, details, .article-page p, .article-page li { color: var(--ink-muted); }
.small { font-size: 14px; }
.introduction { padding-block: 36px 30px; }
.offer-lead { font-size: clamp(19px, 2.7vw, 23px); line-height: 1.45; letter-spacing: -.02em; margin-bottom: 20px; }
.availability { font-size: 14px; color: var(--ink-muted); }
.preview-label { color: var(--signal); margin-right: 8px; }
.access-row { display: flex; align-items: center; gap: 20px; flex-wrap: wrap; font-size: 14px; }
.access-row strong { font-weight: 500; }
.access-row .muted { margin-left: 5px; }
.primary-action { display: inline-block; padding: 10px 20px; background: var(--signal); color: var(--on-primary); border-radius: 3px; text-decoration: none; font-size: 15px; font-weight: 550; }
.primary-action:hover { background: var(--primary-hover); color: var(--on-primary); }
.section-nav { display: flex; gap: 12px 24px; flex-wrap: wrap; padding-block: 14px; border-block: 1px solid var(--rule); font-size: 14px; }
.section-nav a { text-decoration: none; color: var(--ink-muted); }
.product-guide section:not(.introduction) { padding-top: 40px; scroll-margin-top: 20px; }
details { margin-block: 16px 0; font-size: 14px; }
summary { cursor: pointer; color: var(--ink); padding-block: 6px; }
details p { margin-top: 12px; }
code, pre { font-family: ui-monospace, SFMono-Regular, Consolas, monospace; font-size: .87em; }
code { overflow-wrap: anywhere; }
.code-sample { margin-block: 24px; }
.code-label { display: flex; align-items: center; justify-content: space-between; gap: 12px; font-size: 12px; color: var(--ink-muted); margin-bottom: 8px; }
button { font: inherit; cursor: pointer; }
.code-label button { border: 1px solid var(--rule); border-radius: 3px; color: var(--ink); background: transparent; padding: 7px 14px; min-height: 36px; }
button:hover { background: var(--paper-raised); }
button:disabled { cursor: default; opacity: .6; }
pre { padding: 16px; background: var(--paper-raised); color: var(--ink); border-radius: 3px; white-space: pre-wrap; overflow-wrap: anywhere; line-height: 1.7; margin: 0; user-select: text; }
pre code { font-size: inherit; }
.copy-status { font-size: 13px; color: var(--signal); margin: 6px 0 0; }
.copy-status:empty { margin: 0; }
.table-scroll { max-width: 100%; overflow-x: auto; margin-block: 20px; }
table { width: 100%; border-collapse: collapse; font-size: 14px; text-align: left; color: var(--ink-muted); }
th,td { padding: 12px 10px; border-bottom: 1px solid var(--rule); vertical-align: top; overflow-wrap: anywhere; }
th { color: var(--ink); font-weight: 500; }
th:first-child,td:first-child { padding-left: 0; width: 48%; }
th:last-child,td:last-child { padding-right: 0; }
#fields td:first-child { width: 28%; }
.access-notice { margin-block: 40px; font-size: 11px; line-height: 1.8; color: var(--ink-muted); }
.site-footer { display: flex; flex-wrap: wrap; gap: 12px 22px; padding-block: 24px 32px; border-top: 1px solid var(--rule); font-size: 13px; }
.site-footer a { color: var(--ink-muted); text-decoration: none; }
.article-page { padding-block: 48px; }
.article-page h2 { margin-top: 36px; }
.article-page .intro { font-size: 18px; }
.methodology table { min-width: 580px; }
.methodology code { white-space: pre-wrap; }
.methodology li { margin-bottom: 12px; }
.stage-notice, .staging-docs-note { font-size: 13px; color: var(--signal); padding-block: 10px; }
.stage-notice { border-block: 1px solid var(--rule); }
@media (max-width: 600px) {
 .wrap { width: calc(100% - 32px); }
 .site-header { padding-block: 18px; }
 .introduction { padding-block: 24px; }
 .access-row { gap: 14px; }
 .access-row .muted { display: block; margin: 0; font-size: 12px; }
 .section-nav { gap: 10px 18px; font-size: 13px; }
 .product-guide section:not(.introduction) { padding-top: 32px; }
 h2 { font-size: 23px; }
 table { font-size: 13px; }
 th,td { padding: 10px 7px; }
 pre { padding: 12px; font-size: 12px; }
 .article-page { padding-top: 32px; }
}
@media (prefers-reduced-motion: reduce) { *, *::before, *::after { scroll-behavior: auto !important; } }

/* Shared presentation and native invitation entry. */
.wrap { max-width: 1160px; }
.narrow, .article-page { max-width: 760px; }
.site-header nav { display: flex; align-items: center; gap: 24px; }
.site-header nav a { color: var(--ink-muted); text-decoration: none; }
.site-footer { padding-block: 32px 44px; gap: 28px 64px; }
.site-footer > .wordmark { margin-right: auto; color: var(--ink); }
.site-footer nav { display: flex; flex-direction: column; gap: 8px; }
.site-footer nav > span { color: var(--ink); }
.article-page { padding-block: 64px 80px; }
.invite-home .introduction { display: block; padding-block: clamp(80px, 12vh, 140px); }
.hero-copy { max-width: 800px; margin-inline: auto; }
.introduction h1 { font-size: clamp(40px, 5vw, 64px); font-weight: 550; letter-spacing: -.055em; line-height: 1.08; margin-bottom: 24px; }
.hero-subtitle, .hero-protocols { font-size: clamp(17px, 2vw, 20px); color: var(--ink-muted); line-height: 1.6; margin-bottom: 0; }
#invite { max-width: 510px; margin-block: 36px 0; scroll-margin-top: 24px; }
#invite label { display: block; font-size: 14px; font-weight: 500; margin-bottom: 8px; }
.invite-controls { display: flex; gap: 10px; }
#invite input { min-width: 0; flex: 1; border: 1px solid var(--input-rule); border-radius: 6px; padding: 11px 12px; font: inherit; color: var(--ink); background: var(--paper); }
#invite input::placeholder { color: var(--placeholder); }
#invite input:user-invalid { border-color: var(--error); outline-color: var(--error); }
#invite button { border: 1px solid var(--signal); border-radius: 6px; background: var(--signal); color: var(--on-primary); padding: 11px 18px; font-size: 14px; font-weight: 500; }
#invite button:hover:enabled { background: var(--primary-hover); }
#invite :disabled { cursor: not-allowed; opacity: .6; }
.privacy-note { font-size: 12px; line-height: 1.65; color: var(--ink-muted); margin-top: 12px; }
.about-link { display: inline-block; margin-top: 24px; font-size: 14px; color: var(--ink-muted); text-decoration: none; }
.visually-hidden { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
@media (max-width: 600px) {
 .invite-home .introduction { padding-block: 64px 72px; }
 .invite-controls { flex-direction: column; }
 #invite input, #invite button { min-height: 46px; }
 .site-header nav { gap: 16px; }
 .site-header nav a { font-size: 13px; }
 .site-footer > .wordmark { width: 100%; }
 .site-footer { gap: 24px; }
}

.product-guide { padding-bottom: 72px; max-width: 100%; }
.product-guide > section { border-bottom: 1px solid var(--rule); padding-bottom: 40px; }
.coverage-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px 40px; }
.data-group h3 { font-size: 22px; font-weight: 500; }
h4 { margin: 0 0 8px; font-size: 17px; font-weight: 500; }
.field-names { display: flex; flex-wrap: wrap; gap: 6px 12px; font-size: 14px; }
.field-names strong { flex-basis: 100%; font-weight: 500; }
.field-names code { font-size: 14px; }
.field-names > code { color: var(--ink-muted); }
.sample-table { white-space: nowrap; font-variant-numeric: tabular-nums; }
.sample-table th:first-child, .sample-table td:first-child { width: auto; }
.chain-table { min-width: 1060px; }
.tape-table { min-width: 560px; }
.protocol-flow { display: flex; flex-wrap: wrap; gap: 12px 32px; padding-left: 20px; }
.visual-caption { color: var(--ink-muted); }
.visual-caption span { margin-left: 16px; }
@media (max-width: 600px) { .coverage-grid { grid-template-columns: 1fr; } }
