/* TechTrack Connect public pages (screens 21 and 22, PHASE13-SPEC.md 18.9), ui owner. Served from SITE_ASSETS at
   /app/assets/site.css; linked only by the server-rendered landing, docs and legal pages (src/site/layout.ts),
   never by the dashboard shell. Recreates Landing.dc.html and Docs.dc.html without their script: no theme button,
   so the theme follows prefers-color-scheme, and no animation. The pages carry no inline style (their CSP has no
   'unsafe-inline'): bars are <progress> elements coloured here, glyph hues come from site-glyph--<module_id>.
   Class vocabulary: the list at the top of src/site/layout.ts (site-, docs-, legal-). Nothing is loaded from this
   file: fonts come from the page's own Google Fonts link. */

/* ---------- tokens (same values as the dashboard's app.css) ---------- */

:root {
  --paper: #FAFAF7;
  --panel: #FFFFFF;
  --ink: #1A1D1C;
  --wire: #6E736F;
  --hair: rgba(110, 115, 111, .25);
  --signal: #0E7A5F;
  --sigsoft: rgba(14, 122, 95, .09);
  --amber: #B97614;
  --ambsoft: rgba(185, 118, 20, .11);
  --alarm: #C23A3A;
  --alarmsoft: rgba(194, 58, 58, .08);
  --chip: rgba(26, 29, 28, .045);
  --on-signal: #FFFFFF;
  --f-head: 'Space Grotesk', Inter, system-ui, sans-serif;
  --f-body: Inter, system-ui, -apple-system, 'Segoe UI', sans-serif;
  --f-mono: 'IBM Plex Mono', ui-monospace, SFMono-Regular, Menlo, monospace;
  color-scheme: light;
}

@media (prefers-color-scheme: dark) {
  :root {
    --paper: #121514;
    --panel: #1B1F1D;
    --ink: #ECEEEC;
    --wire: #8A908B;
    --hair: rgba(138, 144, 139, .24);
    --signal: #17A47B;
    --sigsoft: rgba(23, 164, 123, .15);
    --amber: #D9942F;
    --ambsoft: rgba(217, 148, 47, .14);
    --alarm: #E05C5C;
    --alarmsoft: rgba(224, 92, 92, .12);
    --chip: rgba(236, 238, 236, .06);
    color-scheme: dark;
  }
}

/* ---------- base ---------- */

*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
body.site {
  margin: 0; background: var(--paper); color: var(--ink);
  font: 400 14px/1.55 var(--f-body); -webkit-font-smoothing: antialiased;
}
.site a { color: var(--signal); }
.site a:hover { color: var(--amber); }
.site a:focus-visible, .site summary:focus-visible, .site input:focus-visible, .site button:focus-visible {
  outline: 2px solid var(--signal); outline-offset: 2px;
}
.site h1, .site h2, .site h3, .site p { margin: 0; }
.site code { font: 400 .9em var(--f-mono); color: var(--ink); }
.site strong { font-weight: 500; color: var(--ink); }
.site ::selection { background: var(--sigsoft); }

.site-wrap { max-width: 1120px; margin: 0 auto; padding-left: 40px; padding-right: 40px; }
.site-spacer { flex: 1; }
.site-sr {
  position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px;
  overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0;
}
.site-skip {
  position: absolute; left: 16px; top: -60px; z-index: 10; padding: 9px 14px; border-radius: 8px;
  background: var(--panel); border: 1px solid var(--hair); font: 500 13px var(--f-body); text-decoration: none;
}
.site-skip:focus { top: 12px; }

/* ---------- brand ---------- */

.site .site-brand { display: inline-flex; align-items: center; gap: 9px; color: var(--ink); text-decoration: none; flex: none; }
.site .site-brand:hover { color: var(--ink); }
.site-ring {
  width: 22px; height: 22px; border-radius: 50%; border: 1.5px solid var(--signal); flex: none;
  display: inline-flex; align-items: center; justify-content: center;
}
.site-ring__dot { width: 8px; height: 8px; border-radius: 50%; background: var(--signal); }
.site-name { font: 500 14.5px var(--f-head); letter-spacing: -.01em; white-space: nowrap; }

/* ---------- header ---------- */

.site-top { display: flex; align-items: center; gap: 26px; padding-top: 20px; padding-bottom: 20px; }
.site-nav { display: flex; align-items: center; gap: 26px; }
.site .site-navlink { font: 400 13px var(--f-body); color: var(--wire); text-decoration: none; white-space: nowrap; }
.site .site-navlink:hover { color: var(--ink); }
.site .site-signin { font: 500 13px var(--f-body); color: var(--ink); text-decoration: none; white-space: nowrap; }
.site .site-signin:hover { color: var(--signal); }

/* ---------- buttons ---------- */

.site .site-btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 8px;
  font: 500 14px/1.25 var(--f-body); border: 1px solid transparent; border-radius: 8px;
  padding: 11px 20px; text-decoration: none; white-space: nowrap; cursor: pointer;
}
.site .site-btn--primary, .site .site-btn--primary:hover { color: var(--on-signal); background: var(--signal); }
.site .site-btn--primary:hover { background: color-mix(in oklab, var(--signal) 88%, #000); }
.site .site-btn--ghost, .site .site-btn--ghost:hover { color: var(--ink); background: none; border-color: var(--hair); }
.site .site-btn--ghost:hover { border-color: var(--wire); }
.site .site-btn--sm { font-size: 13px; padding: 8.5px 15px; }

/* ---------- text ---------- */

.site-eyebrow { font: 500 12px/1.5 var(--f-mono); color: var(--signal); margin-bottom: 16px; }
.site .site-h1 { font: 500 46px/1.08 var(--f-head); letter-spacing: -.03em; margin: 0 0 18px; text-wrap: balance; }
.site .site-h2 { font: 500 30px/1.15 var(--f-head); letter-spacing: -.02em; margin: 0 0 14px; text-wrap: balance; }
.site .site-lede { font: 400 15.5px/1.6 var(--f-body); color: var(--wire); max-width: 460px; margin-bottom: 26px; text-wrap: pretty; }
.site .site-text { font: 400 14px/1.65 var(--f-body); color: var(--wire); max-width: 420px; text-wrap: pretty; }
.site-muted { font: 400 12.5px/1.5 var(--f-body); color: var(--wire); }
.site-mono { font-family: var(--f-mono); }
.site .site-note { font: 400 12.5px/1.5 var(--f-body); color: var(--wire); text-align: center; margin-top: 22px; }
.site .site-beta { font: 400 12.5px/1.5 var(--f-body); color: var(--amber); margin-top: 12px; }

/* ---------- hero ---------- */

.site-hero { display: flex; gap: 60px; align-items: center; flex-wrap: wrap; padding-top: 64px; padding-bottom: 84px; }
.site-hero__copy { flex: 1; min-width: 380px; }
.site-hero__cta { display: flex; gap: 12px; align-items: center; flex-wrap: wrap; }
.site-works { display: flex; align-items: baseline; gap: 15px; margin-top: 28px; flex-wrap: wrap; }
.site-works__label { font: 500 11px var(--f-mono); color: var(--wire); }
.site-works__item { font: 500 13px var(--f-body); opacity: .8; }
.site-works__more { font: 400 12px var(--f-body); color: var(--wire); }

/* ---------- example connector card ---------- */

.site-card { width: 430px; max-width: 100%; flex: none; background: var(--panel); border: 1px solid var(--hair); border-radius: 12px; padding: 18px 18px 16px; }
.site-card__head { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-bottom: 14px; }
.site-card__title { font: 500 16px var(--f-head); letter-spacing: -.01em; }
.site-live {
  display: inline-flex; align-items: center; gap: 5px; font: 500 11.5px var(--f-body); color: var(--signal);
  background: var(--sigsoft); border-radius: 99px; padding: 4px 10px; white-space: nowrap;
}
.site-live__dot { width: 6px; height: 6px; border-radius: 50%; background: var(--signal); }
.site-rows { display: flex; flex-direction: column; gap: 8px; margin-bottom: 14px; }
.site-row { display: flex; align-items: center; gap: 10px; border: 1px solid var(--hair); border-radius: 10px; padding: 10px 13px; min-width: 0; }
.site-row__name { font: 500 13px var(--f-body); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; min-width: 0; }
.site-tag { font: 500 10.5px var(--f-mono); background: var(--chip); border: 1px solid var(--hair); border-radius: 6px; padding: 1px 6px; white-space: nowrap; }
.site-row__count { font: 400 11.5px var(--f-mono); color: var(--wire); flex: 1; text-align: right; white-space: nowrap; }
.site-port { width: 9px; height: 9px; border-radius: 50%; background: var(--signal); box-shadow: 0 0 0 3px var(--sigsoft); flex: none; }
.site-card__foot { font: 400 11.5px/1.5 var(--f-body); color: var(--wire); margin-top: 9px; text-align: center; }

/* app glyphs: brand-free letters on a 14% tint of the module hue (MODULE_META in src/ui/app/core.js) */
.site-glyph {
  --glyph: var(--wire);
  width: 26px; height: 26px; border-radius: 8px; flex: none;
  display: inline-flex; align-items: center; justify-content: center;
  background: color-mix(in oklab, var(--glyph) 14%, var(--panel)); color: var(--glyph);
  font: 500 11px var(--f-mono); line-height: 1;
}
.site-glyph--shopify { --glyph: #4C8A57; }
.site-glyph--klaviyo { --glyph: #55605B; }
.site-glyph--clarity { --glyph: #52796F; }
.site-glyph--shipstation { --glyph: #7A6A4F; }
.site-glyph--gmail { --glyph: #B85A4A; }
.site-glyph--ga4 { --glyph: #C98A3D; }
.site-glyph--gtm { --glyph: #4A7DB5; }
.site-glyph--gdrive { --glyph: #5B8A63; }
.site-glyph--google_ads { --glyph: #3E6FB0; }
.site-glyph--meta_ads { --glyph: #4867AA; }
.site-glyph--hubspot { --glyph: #C05C48; }
.site-glyph--memory { background: var(--chip); color: var(--wire); }

/* endpoint jack (an example, not copyable) */
.site-jack { display: flex; align-items: center; background: var(--paper); border: 1px solid var(--hair); border-radius: 8px; overflow: hidden; min-width: 0; }
.site-jack__port {
  display: flex; align-items: center; justify-content: center; width: 28px; align-self: stretch; flex: none;
  border-right: 1px solid var(--hair); background: var(--chip);
}
.site-jack__dot { width: 8px; height: 8px; border-radius: 50%; background: var(--signal); box-shadow: 0 0 0 3px var(--sigsoft); }
.site-jack__url {
  font: 400 12px var(--f-mono); padding: 9px 12px; flex: 1; min-width: 0;
  overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}

/* ---------- sections ---------- */

.site-section { border-top: 1px solid var(--hair); }
.site-section__inner { padding-top: 72px; padding-bottom: 72px; }
.site-grid3 { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 44px; }
.site .site-feature__eyebrow { font: 500 12px/1.5 var(--f-mono); color: var(--signal); margin-bottom: 12px; }
.site .site-feature__title { font: 500 19px/1.25 var(--f-head); letter-spacing: -.02em; margin-bottom: 10px; }
.site .site-feature__text { font: 400 13.5px/1.6 var(--f-body); color: var(--wire); text-wrap: pretty; }
.site-feature__text code { font-size: 12px; }
.site-split { display: flex; gap: 60px; align-items: center; flex-wrap: wrap; }
.site-split__copy { flex: 1; min-width: 340px; }

/* ---------- footprint meter ---------- */

.site-meter-card { width: 460px; max-width: 100%; flex: none; background: var(--panel); border: 1px solid var(--hair); border-radius: 12px; padding: 20px; }
.site-meter__big { display: flex; align-items: baseline; gap: 10px; flex-wrap: wrap; margin-bottom: 4px; }
.site-meter__num { font: 500 26px var(--f-head); letter-spacing: -.02em; }
.site-meter__sub { font: 400 12px var(--f-body); color: var(--wire); }
.site-meter__labels { display: flex; justify-content: space-between; gap: 14px; font: 400 11px var(--f-body); color: var(--wire); margin: 8px 0 5px; white-space: nowrap; }

/* <progress> bars: a chip track and a coloured value, the same in every engine */
progress.site-meter, progress.site-bar {
  -webkit-appearance: none; appearance: none; display: block; width: 100%;
  border: none; border-radius: 99px; background: var(--chip); color: var(--bar, var(--signal)); overflow: hidden;
}
progress.site-meter::-webkit-progress-bar, progress.site-bar::-webkit-progress-bar { background: var(--chip); border-radius: 99px; }
progress.site-meter::-webkit-progress-value, progress.site-bar::-webkit-progress-value { background: var(--bar, var(--signal)); border-radius: 99px; }
progress.site-meter::-moz-progress-bar, progress.site-bar::-moz-progress-bar { background: var(--bar, var(--signal)); border-radius: 99px; }
progress.site-meter { height: 5px; margin-bottom: 16px; }
progress.site-bar { height: 4px; flex: 1; min-width: 40px; }
.site-bar--shopify { --bar: #4C8A57; }
.site-bar--klaviyo { --bar: #55605B; }
.site-bar--clarity { --bar: #52796F; }
.site-bar--shipstation { --bar: #7A6A4F; }
.site-bar--gmail { --bar: #B85A4A; }
.site-bar--ga4 { --bar: #C98A3D; }
.site-bar--gtm { --bar: #4A7DB5; }
.site-bar--gdrive { --bar: #5B8A63; }
.site-bar--google_ads { --bar: #3E6FB0; }
.site-bar--meta_ads { --bar: #4867AA; }
.site-bar--hubspot { --bar: #C05C48; }
.site-bar--memory { --bar: var(--wire); }

.site-bars { display: flex; flex-direction: column; gap: 9px; }
.site-bar-row { display: flex; align-items: center; gap: 10px; min-width: 0; }
.site-bar-row__name { font: 500 12px var(--f-body); width: 104px; flex: none; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.site-bar-row--memory .site-bar-row__name { color: var(--wire); }
.site-bar-row__val { font: 400 11.5px var(--f-mono); color: var(--wire); width: 40px; flex: none; text-align: right; }

/* ---------- pricing ---------- */

.site-center { text-align: center; margin-bottom: 40px; }
.site .site-center .site-text { max-width: none; }
.site-pricing { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; max-width: 920px; margin: 0 auto; }
.site-tier { display: flex; flex-direction: column; min-width: 0; background: var(--panel); border: 1px solid var(--hair); border-radius: 12px; padding: 22px; }
.site-tier--hot { border-color: var(--signal); }
.site-tier__badge {
  align-self: flex-start; font: 500 11px var(--f-body); color: var(--signal); background: var(--sigsoft);
  border-radius: 99px; padding: 3.5px 10px;
}
.site .site-tier__name { font: 500 15px/1.3 var(--f-head); margin-top: 6px; }
.site .site-tier__price { display: flex; align-items: baseline; gap: 5px; margin: 8px 0 14px; }
.site-tier__amount { font: 500 34px/1.1 var(--f-head); letter-spacing: -.02em; }
.site-tier__per { font: 400 12.5px var(--f-body); color: var(--wire); }
.site-tier__lines { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 8px; flex: 1; }
.site-tier__line { font: 400 13px/1.45 var(--f-body); color: var(--ink); }
.site-tier__line .site-mono { font-size: 12.5px; }
.site-tier__note { font: 400 12.5px/1.5 var(--f-body); color: var(--wire); }
.site .site-tier__cta { display: flex; width: 100%; margin-top: 18px; font-size: 13px; padding: 9px 0; }

/* ---------- FAQ ---------- */

.site-wrap.site-faq { max-width: 760px; }
.site .site-faq .site-h2 { font-size: 26px; margin-bottom: 24px; }
.site-faq__item { border-top: 1px solid var(--hair); padding: 4px 0; }
.site-faq__item:last-child { border-bottom: 1px solid var(--hair); }
.site-faq__q { display: flex; align-items: center; gap: 12px; font: 500 14px/1.45 var(--f-body); padding: 13px 0; cursor: pointer; list-style: none; }
.site-faq__q::-webkit-details-marker { display: none; }
.site-faq__q::after {
  content: '+'; margin-left: auto; flex: none; font: 400 16px/1 var(--f-mono); color: var(--wire);
  transition: transform .15s;
}
.site-faq__item[open] > .site-faq__q::after { transform: rotate(45deg); }
.site .site-faq__a { font: 400 13.5px/1.65 var(--f-body); color: var(--wire); padding: 0 0 16px; max-width: 640px; text-wrap: pretty; }

/* ---------- footer ---------- */

.site-foot { border-top: 1px solid var(--hair); }
.site-foot__row { display: flex; align-items: center; gap: 20px; flex-wrap: wrap; padding-top: 28px; padding-bottom: 28px; }
.site-foot .site-ring { width: 18px; height: 18px; }
.site-foot .site-ring__dot { width: 6px; height: 6px; }
.site-foot .site-name { font-size: 12.5px; }
.site-foot__links { display: flex; align-items: center; gap: 20px; flex-wrap: wrap; }
.site .site-foot__link { font: 400 12px var(--f-body); color: var(--wire); text-decoration: none; }
.site .site-foot__link:hover { color: var(--ink); }
.site-copy { font: 400 11.5px var(--f-mono); color: var(--wire); white-space: nowrap; }

/* ---------- docs (screen 22) ---------- */

.docs-top { border-bottom: 1px solid var(--hair); }
.docs-top__row { display: flex; align-items: center; gap: 14px; padding-top: 14px; padding-bottom: 14px; }
.docs-top .site-ring { width: 20px; height: 20px; }
.docs-top .site-ring__dot { width: 7px; height: 7px; }
.docs-top .site-name { font-size: 13.5px; }
.site .docs-crumb { font: 400 13px var(--f-body); color: var(--wire); text-decoration: none; white-space: nowrap; }
.site .docs-crumb:hover { color: var(--ink); }
.docs-search { display: flex; margin: 0; }
.docs-search__input {
  font: 400 12.5px var(--f-body); color: var(--ink); background: var(--panel);
  border: 1px solid var(--hair); border-radius: 8px; padding: 7px 11px; width: 200px;
}
.docs-search__input::placeholder { color: var(--wire); opacity: .7; }
.docs-search__input:focus { outline: 2px solid var(--sigsoft); outline-offset: 1px; border-color: var(--signal); }
.docs-top .site-btn--sm { font-size: 12.5px; padding: 7.5px 13px; }

.docs-body { display: flex; gap: 48px; }
.docs-nav { width: 210px; flex: none; padding: 28px 0 60px; border-right: 1px solid var(--hair); }
.docs-group { margin-bottom: 20px; }
.site .docs-group__title { font: 500 11px var(--f-mono); color: var(--wire); margin-bottom: 8px; }
.site .docs-link { display: block; font: 400 12.5px/1.45 var(--f-body); color: var(--wire); text-decoration: none; padding: 4px 0; }
.site .docs-link:hover { color: var(--ink); }
.site .docs-link--on, .site .docs-link--on:hover { color: var(--signal); font-weight: 500; }

.docs-main { flex: 1; min-width: 0; max-width: 640px; padding: 32px 0 80px; }
.site .docs-eyebrow { font: 400 12px var(--f-mono); color: var(--wire); margin-bottom: 10px; }
.site .docs-h1 { font: 500 28px/1.2 var(--f-head); letter-spacing: -.02em; margin: 0 0 14px; text-wrap: balance; }
.site .docs-lede { font: 400 14px/1.7 var(--f-body); color: var(--wire); margin-bottom: 24px; text-wrap: pretty; }
.site .docs-h2 { font: 500 18px/1.3 var(--f-head); letter-spacing: -.01em; margin: 30px 0 10px; scroll-margin-top: 16px; }
.site .docs-p { font: 400 13.5px/1.7 var(--f-body); color: var(--wire); margin-bottom: 16px; text-wrap: pretty; }
.docs-main code { font-size: 12px; }

.docs-steps { list-style: none; margin: 0 0 28px; padding: 0; display: flex; flex-direction: column; gap: 14px; }
.docs-step { display: flex; gap: 13px; }
.docs-step__n {
  width: 22px; height: 22px; flex: none; border: 1px solid var(--hair); border-radius: 50%;
  display: inline-flex; align-items: center; justify-content: center; font: 500 11px var(--f-mono); color: var(--wire);
}
.docs-step__text { font: 400 13.5px/1.6 var(--f-body); color: var(--ink); min-width: 0; }
.docs-list { margin: 0 0 20px; padding-left: 20px; font: 400 13.5px/1.7 var(--f-body); color: var(--wire); }
.docs-list li + li { margin-top: 4px; }
.docs-note { background: var(--chip); border-radius: 10px; padding: 13px 16px; font: 400 12.5px/1.6 var(--f-body); color: var(--ink); margin-bottom: 26px; }
.site .docs-note__title { font-weight: 500; }

.site-jack.docs-endpoint { display: inline-flex; max-width: 100%; background: var(--panel); margin-bottom: 10px; }
.docs-endpoint .site-jack__port { width: 30px; }
.docs-endpoint .site-jack__dot { width: 9px; height: 9px; }
.docs-endpoint .site-jack__url { font-size: 12.5px; padding: 9px 14px; }

.docs-code {
  font: 400 12px/1.6 var(--f-mono); color: var(--ink); background: var(--chip); border-radius: 10px;
  padding: 13px 16px; margin: 0 0 20px; overflow-x: auto; white-space: pre;
}
.docs-code code { font: inherit; }
.docs-table-wrap { overflow-x: auto; margin: 0 0 24px; border: 1px solid var(--hair); border-radius: 10px; }
.docs-table { width: 100%; border-collapse: collapse; font: 400 12.5px/1.5 var(--f-body); }
.docs-table th { text-align: left; font-weight: 500; color: var(--wire); background: var(--chip); padding: 9px 12px; border-bottom: 1px solid var(--hair); white-space: nowrap; }
.docs-table td { padding: 9px 12px; border-bottom: 1px solid var(--hair); color: var(--ink); vertical-align: top; }
.docs-table tr:last-child td { border-bottom: none; }

.docs-results { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 18px; }
.docs-result { border-bottom: 1px solid var(--hair); padding-bottom: 16px; }
.site .docs-result__title { font: 500 15px/1.35 var(--f-head); text-decoration: none; }
.docs-result__group { font: 400 11px var(--f-mono); color: var(--wire); margin-left: 8px; }
.site .docs-result__snippet { font: 400 13px/1.6 var(--f-body); color: var(--wire); margin-top: 4px; }
.site mark { background: var(--ambsoft); color: var(--ink); border-radius: 3px; padding: 0 2px; }
.site .docs-empty { font: 400 13.5px/1.7 var(--f-body); color: var(--wire); }

.docs-pager { display: flex; gap: 12px; flex-wrap: wrap; margin-top: 40px; padding-top: 20px; border-top: 1px solid var(--hair); }
.site .docs-pager__link {
  display: flex; flex-direction: column; gap: 2px; min-width: 0; font: 500 13px var(--f-body); color: var(--ink);
  text-decoration: none; border: 1px solid var(--hair); border-radius: 10px; padding: 10px 14px;
}
.site .docs-pager__link:hover { color: var(--ink); border-color: var(--wire); }
.site .docs-pager__link[rel="next"] { margin-left: auto; text-align: right; }
.docs-pager__label { font: 400 11px var(--f-mono); color: var(--wire); }

/* ---------- legal ---------- */

.site-wrap.legal-main { max-width: 760px; padding-top: 40px; padding-bottom: 80px; }
.site .legal-title { font: 500 30px/1.15 var(--f-head); letter-spacing: -.02em; margin-bottom: 8px; text-wrap: balance; }
.site .legal-meta { font: 400 12px var(--f-mono); color: var(--wire); margin-bottom: 28px; }
.legal-body { font: 400 14px/1.7 var(--f-body); color: var(--ink); }
.legal-body h1, .legal-body h2, .legal-body h3, .legal-body h4 { font-family: var(--f-head); font-weight: 500; letter-spacing: -.01em; line-height: 1.3; margin: 28px 0 10px; }
.legal-body h1 { font-size: 24px; }
.legal-body h2 { font-size: 19px; }
.legal-body h3 { font-size: 16px; }
.legal-body h4 { font-size: 14px; }
.site .legal-body p { margin: 0 0 14px; }
.legal-body ul, .legal-body ol { margin: 0 0 14px; padding-left: 22px; }
.legal-body li + li { margin-top: 4px; }
.legal-body blockquote { margin: 0 0 14px; padding: 10px 16px; background: var(--chip); border-radius: 10px; color: var(--wire); }
.legal-body hr { border: none; border-top: 1px solid var(--hair); margin: 24px 0; }
.legal-body pre { font: 400 12px/1.6 var(--f-mono); background: var(--chip); border-radius: 10px; padding: 13px 16px; overflow-x: auto; margin: 0 0 14px; }
.legal-body pre code { font: inherit; }
.legal-body em { font-style: italic; }
.legal-table { overflow-x: auto; margin: 0 0 20px; border: 1px solid var(--hair); border-radius: 10px; }
.legal-table table { width: 100%; border-collapse: collapse; font: 400 12.5px/1.5 var(--f-body); }
.legal-table th { text-align: left; font-weight: 500; color: var(--wire); background: var(--chip); padding: 9px 12px; border-bottom: 1px solid var(--hair); }
.legal-table td { padding: 9px 12px; border-bottom: 1px solid var(--hair); vertical-align: top; }
.legal-table tr:last-child td { border-bottom: none; }

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

/* ---------- 390px pass: 16px gutters, one column, 44px hit targets ---------- */

@media (max-width: 767px) {
  .site-wrap { padding-left: 16px; padding-right: 16px; }

  .site-top { gap: 14px; padding-top: 14px; padding-bottom: 14px; }
  .site-nav { display: none; }
  .site .site-signin { display: inline-flex; align-items: center; min-height: 44px; }
  .site .site-btn { min-height: 44px; }

  .site-hero { gap: 32px; padding-top: 32px; padding-bottom: 48px; }
  .site-hero__copy { min-width: 0; flex-basis: 100%; }
  .site .site-h1 { font-size: 32px; }
  .site .site-h2 { font-size: 24px; }
  .site .site-lede { font-size: 15px; }
  .site-card { width: 100%; }

  .site-section__inner { padding-top: 48px; padding-bottom: 48px; }
  .site-grid3 { grid-template-columns: minmax(0, 1fr); gap: 28px; }
  .site-split { gap: 28px; }
  .site-split__copy { min-width: 0; flex-basis: 100%; }
  .site-meter-card { width: 100%; padding: 16px; }
  .site-bar-row__name { width: 92px; }

  .site-pricing { grid-template-columns: minmax(0, 1fr); gap: 12px; }
  .site .site-faq .site-h2 { font-size: 22px; }
  .site-faq__q { min-height: 44px; }

  .site-foot__row { gap: 12px 20px; }
  .site .site-foot__link { display: inline-flex; align-items: center; min-height: 44px; }

  .docs-top__row { flex-wrap: wrap; gap: 10px 14px; }
  .docs-search { order: 5; flex-basis: 100%; }
  .docs-search__input { width: 100%; font-size: 16px; min-height: 44px; }
  .docs-body { flex-direction: column; gap: 0; }
  .docs-nav {
    width: auto; border-right: none; border-bottom: 1px solid var(--hair); padding: 18px 0 6px;
    display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 20px;
  }
  .docs-group { margin-bottom: 12px; }
  .site .docs-link { padding: 11px 0; }
  .docs-main { padding: 24px 0 56px; }
  .site .docs-h1 { font-size: 24px; }
  .site .docs-pager__link { flex: 1 1 100%; }
  .site .docs-pager__link[rel="next"] { margin-left: 0; }

  .site-wrap.legal-main { padding-top: 24px; padding-bottom: 56px; }
  .site .legal-title { font-size: 24px; }
}
