/* Hallmark · macrostructure: Workbench with self-playing demos · tone: Swiss, technical, restrained · anchor hue: vermilion
 * theme: custom "Glyphs" · paper #F3F3F1 · ink #0E0E10 · accent #E3412B · display: SF Pro Display 700 · marks: JetBrains Mono
 * nav: N1b · footer: Ft2 · enrichment: real screenshots, giant Markdown glyphs · site/README.md § Direction
 */

@font-face { font-family: "JetBrains Mono"; font-weight: 400; font-display: swap; src: url("/fonts/jetbrains-mono-latin-400-normal.woff2") format("woff2"); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2190-21FF, U+2212, U+2215; }
@font-face { font-family: "JetBrains Mono"; font-weight: 700; font-display: swap; src: url("/fonts/jetbrains-mono-latin-700-normal.woff2") format("woff2"); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2190-21FF, U+2212, U+2215; }
@font-face { font-family: "JetBrains Mono"; font-weight: 400; font-display: swap; src: url("/fonts/jetbrains-mono-latin-ext-400-normal.woff2") format("woff2"); unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+20A0-20CF, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: "JetBrains Mono"; font-weight: 700; font-display: swap; src: url("/fonts/jetbrains-mono-latin-ext-700-normal.woff2") format("woff2"); unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+20A0-20CF, U+2C60-2C7F, U+A720-A7FF; }

:root {
  color-scheme: light dark;
  --bg: #f3f3f1;
  --bg-2: #e7e7e3;
  --surface: #fefefd;
  --ink: #0e0e10;
  --ink-2: #4a4a50;
  --ink-3: #66666c;
  --rule: rgb(14 14 16 / 0.12);
  --rule-strong: rgb(14 14 16 / 0.85);
  --red: #e3412b;
  --red-text: #c0331c;
  --red-deep: #b8321a;
  --on-red: #ffffff;
  --ins: #1d7a46;
  --ins-bg: rgb(29 122 70 / 0.12);
  --del: #c0331c;
  --select: rgb(64 132 255 / 0.22);
  --shadow: 0 1px 2px rgb(14 14 16 / 0.06), 0 18px 40px -14px rgb(14 14 16 / 0.22);
  --shadow-big: 0 3px 8px rgb(14 14 16 / 0.08), 0 60px 120px -30px rgb(14 14 16 / 0.42);

  --band: #e8e8e4;
  --band-ink: #0e0e10;
  --band-ink-2: #4a4a50;
  --band-rule: rgb(14 14 16 / 0.12);

  --font-display: "SF Pro Display", -apple-system, BlinkMacSystemFont, system-ui, "Segoe UI Variable Display", "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
  --font-text: -apple-system, BlinkMacSystemFont, system-ui, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
  --font-mono: "JetBrains Mono", ui-monospace, "SF Mono", Menlo, Consolas, monospace;

  --text-sm: 0.875rem;
  --text-md: 1.0625rem;
  --text-lg: 1.125rem;
  --text-xl: clamp(1.2rem, 1.05rem + 0.4vw, 1.4rem);
  --text-2xl: clamp(1.75rem, 1.35rem + 1.3vw, 2.5rem);
  --text-display: clamp(2.25rem, 1.6rem + 2.2vw, 3.5rem);

  --space-xs: 0.5rem;
  --space-sm: 0.75rem;
  --space-md: 1rem;
  --space-lg: 1.5rem;
  --space-xl: 2.5rem;
  --space-2xl: 4rem;
  --space-3xl: clamp(4rem, 2.5rem + 3vw, 6rem);

  --radius: 14px;
  --ease-out: cubic-bezier(0.22, 1, 0.36, 1);
  --ease-in-out: cubic-bezier(0.65, 0, 0.35, 1);
  --dur-fast: 160ms;
  --dur: 360ms;
  --wrap: 1280px;
  /* the demo documents and cards: light on light, dark on dark */
  --sheet: #fefefd; --sheet-ink: #0e0e10; --sheet-ink-2: #4a4a50; --sheet-ink-3: #66666c;
  --sheet-line: rgb(14 14 16 / 0.1); --sheet-line-2: rgb(14 14 16 / 0.22); --sheet-code: #f0f0ed; --sheet-raised: #fff;
  --sheet-glass: rgb(252 252 252 / 0.97); --sheet-ins: #1d7a46; --sheet-ins-bg: rgb(29 122 70 / 0.12); --sheet-del: #c0331c;
  --sheet-red: #e3412b; --sheet-link: #0a64d9;
}

@media (prefers-color-scheme: dark) {
  :root {
    --bg: #0b0b0c;
    --bg-2: #141416;
    --surface: #1b1b1e;
    --ink: #f3f3f1;
    --ink-2: #b6b6bc;
    --ink-3: #909097;
    --rule: rgb(243 243 241 / 0.12);
    --rule-strong: rgb(243 243 241 / 0.8);
    --red: #ff5a3d;
    --red-text: #ff7a62;
    --red-deep: #c0331c;
    --ins: #7fd6a3;
    --ins-bg: rgb(127 214 163 / 0.14);
    --del: #ff7a62;
    --select: rgb(64 132 255 / 0.35);
    --shadow: 0 1px 2px rgb(0 0 0 / 0.5), 0 18px 40px -14px rgb(0 0 0 / 0.7);
    --shadow-big: 0 3px 8px rgb(0 0 0 / 0.5), 0 60px 120px -30px rgb(0 0 0 / 0.95);

    --band: #161618;
    --band-ink: #f3f3f1;
    --band-ink-2: #a9a9b0;
    --band-rule: rgb(243 243 241 / 0.12);
    --sheet: #1f1f23; --sheet-ink: #f3f3f1; --sheet-ink-2: #c4c4ca; --sheet-ink-3: #9a9aa1;
    --sheet-line: rgb(243 243 241 / 0.12); --sheet-line-2: rgb(243 243 241 / 0.24); --sheet-code: #2b2b30; --sheet-raised: #2c2c31;
    --sheet-glass: rgb(44 44 49 / 0.97); --sheet-ins: #7fd6a3; --sheet-ins-bg: rgb(127 214 163 / 0.14); --sheet-del: #ff7a62;
    --sheet-red: #ff5a3d; --sheet-link: #6aa8ff;
  }
}

/* Base */
*, *::before, *::after { box-sizing: border-box; }
[hidden] { display: none !important; }
html, body { overflow-x: clip; }
html { -webkit-text-size-adjust: 100%; scroll-padding-top: 5rem; }
body { margin: 0; background: var(--bg); color: var(--ink); font: 400 var(--text-md) / 1.55 var(--font-text); -webkit-font-smoothing: antialiased; }
img, svg { display: block; max-width: 100%; height: auto; }
a { color: inherit; text-decoration-color: var(--red); text-decoration-thickness: 1px; text-underline-offset: 0.18em; }
a:hover { text-decoration-thickness: 2px; }
:focus-visible { outline: 2px solid var(--red); outline-offset: 3px; border-radius: 4px; }
h1, h2, h3, h4 { font-family: var(--font-display); font-weight: 600; font-style: normal; margin: 0; overflow-wrap: anywhere; min-width: 0; text-wrap: balance; }
h2 { font-size: var(--text-2xl); line-height: 1.12; letter-spacing: -0.02em; }
h3 { font-size: var(--text-xl); line-height: 1.25; letter-spacing: -0.01em; }
h4 { font: 600 var(--text-sm) / 1.3 var(--font-text); }
p { margin: 0; text-wrap: pretty; }
kbd { font: 600 0.9em var(--font-text); }
.wrap { width: min(100% - 2 * var(--space-lg), var(--wrap)); margin-inline: auto; }
.fine { font-size: var(--text-sm); color: var(--ink-3); }
.skip { position: absolute; left: var(--space-md); top: -4rem; z-index: 30; background: var(--ink); color: var(--bg); padding: var(--space-xs) var(--space-md); border-radius: 8px; }
.skip:focus { top: var(--space-md); }
section { position: relative; }

/* Buttons */
.button {
  display: inline-flex; align-items: center; justify-content: center; white-space: nowrap;
  min-height: 2.9rem; padding: 0 1.35rem; border-radius: 999px; border: 1.5px solid transparent;
  background: var(--ink); color: var(--bg);
  font: 600 var(--text-md) / 1 var(--font-text); text-decoration: none; cursor: pointer;
  transition: background-color var(--dur-fast) var(--ease-out), color var(--dur-fast) var(--ease-out), transform var(--dur-fast) var(--ease-out);
}
.button:hover { background: var(--red-deep); color: var(--on-red); text-decoration: none; }
.button:active { transform: scale(0.98); }
.button.quiet { background: transparent; color: var(--ink); border-color: var(--ink); }
.button.quiet:hover { background: var(--ink); color: var(--bg); }
.button.small { min-height: 2.2rem; padding: 0 1rem; font-size: var(--text-sm); }
.button.big { min-height: 3rem; padding: 0 1.5rem; font-size: var(--text-md); }
.actions { display: flex; flex-wrap: wrap; gap: var(--space-sm); }

/* Bar */
.bar { position: sticky; top: 0; z-index: 20; background: var(--bg); border-bottom: 1px solid var(--rule); }
.bar-in { display: flex; align-items: center; gap: var(--space-lg); min-height: 3.75rem; }
.brand { display: inline-flex; align-items: center; gap: 0.55rem; text-decoration: none; font: 700 1.2rem/1 var(--font-display); letter-spacing: -0.02em; }
.brand img { border-radius: 7px; }
.bar nav { margin-left: auto; }
.bar ul { display: flex; gap: var(--space-lg); list-style: none; margin: 0; padding: 0; }
.bar nav a { text-decoration: none; color: var(--ink-2); font-size: 0.95rem; font-weight: 500; white-space: nowrap; }
.bar nav a:hover { color: var(--ink); }
@media (max-width: 720px) { .bar nav { display: none; } .bar .button { margin-left: auto; } }

/* Hero: the headline sets itself, the window beside it */
.hero { padding-top: clamp(2.5rem, 1.5rem + 3vw, 5rem); }
.hero-title { font-size: var(--text-display); line-height: 1.08; letter-spacing: -0.025em; max-width: 20ch; }
.nb { white-space: nowrap; }
/* on a phone the red phrase may break, so its period never lands on a line of its own */
@media (max-width: 480px) { .hero-title .nb { white-space: normal; } }
.setword { color: var(--red); }
.lede { font-size: clamp(1.0625rem, 1rem + 0.25vw, 1.25rem); line-height: 1.55; max-width: 34rem; color: var(--ink-2); }

.hero-in { display: grid; justify-items: center; text-align: center; gap: 1.1rem; max-width: 46rem; }
.hero-icon { width: clamp(88px, 6vw + 40px, 112px); height: auto; filter: drop-shadow(0 14px 24px rgb(0 0 0 / 0.18)); }
.hero-name { font: 600 var(--text-md) / 1 var(--font-text); color: var(--ink-2); }
.hero-in .hero-title { max-width: 18ch; }
.hero-in .lede { max-width: 38rem; }
.hero-in .actions { justify-content: center; margin-top: 0.4rem; }
.hero-shot { position: relative; z-index: 1; width: min(100% - 2 * var(--space-lg), 940px); margin: clamp(2.5rem, 1.5rem + 2vw, 3.5rem) auto -14rem; }
.hero-shot img { width: 100%; border-radius: 10px; box-shadow: var(--shadow-big); }
.hero + .ai-show { padding-top: calc(14rem + var(--space-3xl)); }
@media (max-width: 700px) { .hero-shot { margin-bottom: -6rem; } .hero + .ai-show { padding-top: calc(6rem + var(--space-2xl)); } }

/* Scenes: each plays by itself once it is on screen (site.js); the page scrolls as usual */
.stage { padding-block: var(--space-3xl); }
.stage-in { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: var(--space-2xl); align-items: center; }
@media (max-width: 900px) { .stage-in { grid-template-columns: minmax(0, 1fr); gap: var(--space-xl); } }
.stage-side { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--space-md); align-content: center; justify-items: start; }
.stage-title { font-size: var(--text-2xl); }
.stage-text { color: var(--ink-2); font-size: var(--text-lg); max-width: 30rem; }
.replay { padding: 0.4rem 0.9rem; border: 1px solid currentColor; border-radius: 999px; background: none; color: inherit; font: 500 var(--text-sm) / 1.2 var(--font-text); cursor: pointer; opacity: 0.8; }
.replay:hover { opacity: 1; }

/* Typesetting scene */
.scene-type { background: var(--bg-2); }
.glyph-board { display: grid; height: 4.5rem; margin-top: var(--space-sm); }
.glyph-board .g {
  grid-area: 1 / 1; align-self: center; font: 700 clamp(2.5rem, 2rem + 1.5vw, 3.5rem) / 1 var(--font-mono); color: var(--red); letter-spacing: -0.04em;
  opacity: 0; transform: translateY(0.25em) scale(0.92); transition: opacity var(--dur) var(--ease-out), transform var(--dur) var(--ease-out); white-space: nowrap;
}
.glyph-board .g.on { opacity: 1; transform: none; }
.glyph-board .g:is([data-i="2"], [data-i="5"], [data-i="7"]) { font-size: clamp(2rem, 1.6rem + 1.1vw, 2.75rem); }
.glyph-names { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 0.15rem 0.9rem; font: 500 0.95rem / 1.6 var(--font-text); color: var(--ink-3); }
.glyph-names li { transition: color var(--dur-fast) var(--ease-out); }
.glyph-names li.done { color: var(--ink-2); }
.glyph-names li.on { color: var(--red-text); }
@media (max-width: 900px) { .glyph-board, .glyph-names { display: none; } }

.doc-sheet { display: grid; gap: 0.35rem; padding: clamp(1.4rem, 3vw, 2.25rem); background: var(--surface); border-radius: var(--radius); box-shadow: var(--shadow-big); font-size: clamp(1rem, 0.95rem + 0.2vw, 1.1rem); line-height: 1.55; }
.dl { display: grid; padding: 0.25rem 0.6rem; margin: 0 -0.6rem; border-radius: 8px; transition: background-color var(--dur) var(--ease-out); }
.dl > div { grid-area: 1 / 1; min-width: 0; align-self: center; transition: opacity var(--dur) var(--ease-out), transform var(--dur) var(--ease-out); }
.dl .src { font: 0.88em/1.6 var(--font-mono); color: var(--ink-2); }
.dl .src b { color: var(--red-text); font-weight: 700; }
.dl .src.mono { white-space: pre; overflow: hidden; text-overflow: ellipsis; }
.dl .out { opacity: 0; transform: translateY(6px); }
.dl.set .src { opacity: 0; transform: translateY(-6px); }
.dl.set .out { opacity: 1; transform: none; }
.dl.cur { background: rgb(227 65 43 / 0.08); }
.dl.cur .src::after { content: ""; display: inline-block; width: 2px; height: 1.1em; margin-left: 2px; vertical-align: -0.18em; background: var(--red); animation: caret 1s steps(1) infinite; }
@keyframes caret { 50% { opacity: 0; } }
.doc-sheet .out { font-family: ui-serif, "New York", "Iowan Old Style", Charter, Georgia, serif; }
.o-h1 { font: 700 1.6em/1.15 ui-serif, "New York", "Iowan Old Style", Georgia, serif; letter-spacing: -0.01em; }
.task { display: flex; gap: 0.6em; align-items: baseline; }
.task.done { color: var(--ink-3); text-decoration: line-through; }
.box { flex: none; width: 0.85em; height: 0.85em; border: 1.5px solid var(--ink-3); border-radius: 4px; transform: translateY(0.1em); }
.done .box { background: var(--red); border-color: var(--red); box-shadow: inset 0 0 0 2px var(--surface); }
.o-quote { padding-left: 0.9em; border-left: 3px solid var(--rule); color: var(--ink-2); }
.o-math math { font-size: 1.35em; }
.out u { text-decoration-color: var(--red); text-underline-offset: 0.18em; }
.wiki { color: var(--red-text); border-bottom: 1px dashed currentColor; }
table { border-collapse: collapse; width: 100%; font-size: 0.92em; }
th, td { padding: 0.35rem 0.6rem; border-bottom: 1px solid var(--rule); text-align: left; }
th { font-weight: 600; }
.num { text-align: right; font-variant-numeric: tabular-nums; }
.flow { width: 100%; max-width: 26rem; font: 600 13px var(--font-text); }
.flow rect { fill: var(--bg); stroke: var(--ink-3); stroke-width: 1.2; }
.flow .decision { fill: var(--red-deep); stroke: var(--red-deep); }
.flow text { fill: var(--ink); text-anchor: middle; }
.flow .decision + text { fill: #fff; }
.flow .edge { fill: none; stroke: var(--ink-3); stroke-width: 1.3; }
.arrowhead { fill: var(--ink-3); }

/* AI: the showcase, a band of its own right under the hero */
.ai-show, .ai-after { background: var(--band); color: var(--band-ink); --rule: var(--band-rule); }
.ai-show { padding-top: var(--space-3xl); }
.ai-show .show { margin-top: var(--space-xl); }
.ai-show .show-desk { width: min(100%, 52rem); }
.ai-show .show-tabs [role="tab"] { color: var(--band-ink-2); border-color: var(--band-rule); }
.ai-show .show-tabs [role="tab"]:hover { color: var(--band-ink); border-color: var(--band-ink-2); }
.ai-show .show-tabs [aria-selected="true"], .ai-show .show-tabs [aria-selected="true"]:hover { color: #fff; border-color: var(--red-deep); }
.ai-head { max-width: 46rem; margin-inline: auto; text-align: center; display: grid; gap: var(--space-md); }
.ai-show + .ai-after { padding-top: var(--space-3xl); }
.ai-after .asks { margin-top: 0; }
.ai-head h2 { font-size: clamp(2rem, 1.5rem + 1.8vw, 3rem); }
.ai-head p { color: var(--band-ink-2); font-size: var(--text-lg); }
.show { display: grid; justify-items: center; gap: var(--space-md); min-width: 0; }
.show-tabs { display: flex; flex-wrap: wrap; justify-content: center; gap: 0.3rem; }
.show-tabs [role="tab"] { padding: 0.4rem 0.85rem; border: 1px solid var(--rule); border-radius: 999px; background: none; color: var(--ink-2); font: 500 var(--text-sm) / 1.2 var(--font-text); cursor: pointer; transition: background-color var(--dur-fast) var(--ease-out), color var(--dur-fast) var(--ease-out); }
.show-tabs [role="tab"]:hover { color: var(--ink); border-color: var(--ink-3); }
.show-tabs [aria-selected="true"], .show-tabs [aria-selected="true"]:hover { background: var(--red-deep); border-color: var(--red-deep); color: #fff; }
.show-desk { position: relative; width: 100%; padding-bottom: 4.5rem; }
.sheet-ai {
  --ink: var(--sheet-ink); --ink-2: var(--sheet-ink-2); --ink-3: var(--sheet-ink-3); --rule: var(--sheet-line); --ins: var(--sheet-ins); --ins-bg: var(--sheet-ins-bg); --del: var(--sheet-del); --red: var(--sheet-red); --bg: var(--sheet-code);
  height: 31rem; overflow: hidden; padding: clamp(1.25rem, 2.6vw, 2rem) clamp(1.25rem, 2.6vw, 2rem) 4.25rem; background: var(--sheet); color: var(--sheet-ink); border-radius: var(--radius);
  box-shadow: var(--shadow-big); font: 400 clamp(1rem, 0.95rem + 0.2vw, 1.15rem) / 1.55 ui-serif, "New York", "Iowan Old Style", Georgia, serif;
}
.sh-file { font: 500 0.75rem/1 var(--font-text); color: var(--sheet-ink-3); padding-bottom: var(--space-md); margin-bottom: var(--space-md); border-bottom: 1px solid var(--sheet-line); }
.sh-h { font: 700 1.4em/1.2 ui-serif, "New York", Georgia, serif; margin-bottom: 0.5em; }
.blank { display: inline-block; width: 2px; height: 1.2em; vertical-align: -0.2em; background: var(--red); animation: caret 1s steps(1) infinite; }
.sheet-ai .sel { border-radius: 3px; box-decoration-break: clone; -webkit-box-decoration-break: clone; }
.sheet-ai .prop { display: none; }
.sheet-ai .prop > * + * { margin-top: var(--space-md); }
.sheet-ai ins { color: var(--ins); text-decoration: none; background: var(--ins-bg); border-radius: 3px; }
.sheet-ai ins.block { display: grid; gap: 0.25rem; padding: var(--space-sm) var(--space-md); color: inherit; border-left: 0; }
.sheet-ai del { color: var(--del); text-decoration: line-through; text-decoration-thickness: 1.5px; }
.sheet-ai table { font-size: 0.85em; }
.sheet-ai .flow { max-width: 30rem; }
.sheet-ai .flow .q { fill: var(--sheet-raised); stroke: var(--ink-3); stroke-width: 1.2; }
.sheet-ai .flow .edge-label { font-size: 11px; fill: var(--ink-3); text-anchor: start; }
.sheet-ai .task { display: flex; gap: 0.6em; align-items: baseline; }
.sheet-ai .box { border-color: var(--ink-3); }
[data-phase="ask"] .sheet-ai .sel, [data-phase="think"] .sheet-ai .sel { background: rgb(64 132 255 / 0.25); }
[data-phase="prop"] .sheet-ai .orig, [data-phase="done"] .sheet-ai .orig { display: none; }
[data-phase="prop"] .sheet-ai .prop, [data-phase="done"] .sheet-ai .prop { display: block; animation: arrive 500ms var(--ease-out) both; }
[data-phase="done"] .sheet-ai del, [data-phase="done"] .sheet-ai .gone { display: none; }
[data-phase="done"] .sheet-ai ins { color: inherit; background: none; }
@keyframes arrive { from { opacity: 0; transform: translateY(4px); } to { opacity: 1; transform: none; } }
/* the ⇧⌘R popover, as the app draws it: a field, the actions for where the caret is, the provider and the context */
.pop {
  --row: 1.75rem;
  position: absolute; left: 50%; bottom: 0.5rem; transform: translate(-50%, 8px); width: min(21rem, 92%); padding: 0.55rem;
  border-radius: 14px; background: var(--sheet-glass); color: var(--sheet-ink); box-shadow: 0 0 0 1px var(--sheet-line-2), 0 24px 48px -12px rgb(0 0 0 / 0.5);
  font: 500 0.9rem/1.3 var(--font-text); opacity: 0; transition: opacity var(--dur) var(--ease-out), transform var(--dur) var(--ease-out); pointer-events: none;
}
[data-phase="ask"] .pop { opacity: 1; transform: translate(-50%, 0); }
.pop-field { display: flex; align-items: center; min-height: 2.1rem; padding: 0.3rem 0.6rem; border: 2px solid rgb(64 132 255 / 0.6); border-radius: 8px; background: var(--sheet); white-space: nowrap; overflow: hidden; }
.pop-ph { color: var(--sheet-ink-3); }
.pop-list { margin-top: 0.4rem; overflow: hidden; transition: height 200ms var(--ease-out); }
.pop-rows { list-style: none; margin: 0; padding: 0; transition: transform 420ms var(--ease-in-out); }
.pop-rows li { height: var(--row); display: flex; align-items: center; padding: 0 0.6rem; border-radius: 6px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.pop-rows li.on { background: #2f6ae6; color: #fff; }
.pop-rows li.press { background: #1d4fb8; }
.pop-foot { display: flex; align-items: center; justify-content: space-between; gap: 0.5rem; margin-top: 0.45rem; padding-left: 0.2rem; font-size: 0.72rem; color: var(--sheet-ink-3); white-space: nowrap; }
.pop-ctx { display: inline-flex; align-items: center; gap: 0.4rem; padding: 0.2rem 0.45rem 0.2rem 0.6rem; border-radius: 5px; background: var(--sheet-code); color: var(--sheet-ink-2); }
.pop-ctx svg { width: 0.5rem; fill: none; stroke: currentColor; stroke-width: 1.4; }
.tcaret { flex: none; width: 2px; height: 1.1em; margin-right: 1px; background: #0a64d9; animation: caret 1s steps(1) infinite; }
.pop-field .typed { order: 1; } .pop-field .tcaret { order: 2; } .pop-ph { order: 3; } /* the caret before the placeholder, after the text */
.thinking { display: none; color: var(--sheet-ink-3); animation: pulse 1.2s var(--ease-in-out) infinite; }
@keyframes pulse { 50% { opacity: 0.35; } }
[data-phase="think"] .show-bar { opacity: 1; }
[data-phase="think"] .show-bar .thinking { display: inline; }
[data-phase="think"] .show-bar .b { display: none; }
.show-bar { position: absolute; right: 1.25rem; bottom: 5.75rem; display: flex; align-items: center; gap: 0.4rem; font: 500 0.8rem/1 var(--font-text); color: var(--sheet-ink-3); opacity: 0; transition: opacity var(--dur) var(--ease-out); }
.show-bar > span:first-child { margin-right: 0.5rem; }
.show-bar .b { padding: 0.45rem 0.8rem; border-radius: 7px; border: 1px solid var(--sheet-line-2); background: var(--sheet-raised); color: var(--sheet-ink); font-weight: 600; }
.show-bar .primary { background: #0a64d9; border-color: #0a64d9; color: #fff; transition: transform 160ms var(--ease-out), filter 160ms var(--ease-out); }
[data-phase="prop"] .show-bar { opacity: 1; }
[data-phase="prop"].press .show-bar .primary { transform: scale(0.94); filter: brightness(0.85); }
@media (max-width: 640px) { .show-bar > span:first-child { display: none; } }

@media (max-width: 960px) { .sheet-ai { height: auto; min-height: 34rem; } }
.sel-block { display: block; }
.sheet-ai table.kept, .sheet-ai .sel-block table { font-size: 0.82em; }
.sheet-ai .orig table, .sheet-ai table.kept { max-width: 22rem; }
.chart { width: 100%; max-width: 22rem; font: 600 12px var(--font-text); }
.chart .bar { fill: var(--red); }
.chart .axis { stroke: var(--ink-3); stroke-width: 1; }
.chart text { fill: var(--ink); text-anchor: middle; }
.chart .lb { fill: var(--ink-2); font-weight: 500; }
.chart .ct { font-size: 11px; fill: var(--ink-2); }
.sheet-ai .pt { display: block; padding-left: 1em; text-indent: -1em; }
.sheet-ai .pt::before { content: "•  "; color: var(--ins); }

/* What you can ask for */
.asks { margin-top: var(--space-3xl); text-align: center; display: grid; justify-items: center; gap: var(--space-lg); }
.asks h3 { font-size: var(--text-2xl); }
.asks-list { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; justify-content: center; gap: 0.6rem; max-width: 60rem; }
.asks-list li { padding: 0.6rem 1rem; border-radius: 12px; background: var(--band-rule); font: 500 var(--text-md) / 1.35 ui-serif, "New York", "Iowan Old Style", Georgia, serif; }
.asks-list li:nth-child(3n + 2) { background: rgb(227 65 43 / 0.16); }
.asks-note { max-width: 40rem; color: var(--band-ink-2); }
.own { margin-top: var(--space-3xl); display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: var(--space-2xl); align-items: center; }
@media (max-width: 900px) { .own { grid-template-columns: minmax(0, 1fr); } }
.own-text { display: grid; gap: var(--space-md); }
.own-text h3 { font-size: var(--text-2xl); }
.own-text p { color: var(--band-ink-2); font-size: var(--text-lg); }
.own-file { margin: 0; padding: var(--space-lg) var(--space-xl); background: var(--sheet); color: var(--sheet-ink); border-radius: var(--radius); font: 0.92rem/1.75 var(--font-mono); white-space: pre-wrap; box-shadow: var(--shadow-big); }
.own-file b { color: var(--sheet-del); font-weight: 700; }
.own-name { display: block; margin-bottom: var(--space-sm); padding-bottom: var(--space-sm); border-bottom: 1px solid var(--sheet-line); font: 500 0.75rem/1 var(--font-text); color: var(--sheet-ink-3); }
.guard { margin-top: var(--space-3xl); display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: var(--space-2xl); align-items: center; }
@media (max-width: 900px) { .guard { grid-template-columns: minmax(0, 1fr); } }
.guard-text { display: grid; gap: var(--space-md); justify-items: start; }
.guard-text h3 { font-size: var(--text-2xl); }
.guard-text p { color: var(--band-ink-2); font-size: var(--text-lg); }
.guard-text .guard-note-intro { font-size: var(--text-md); }
.guard-note { padding: 0.35rem 0.75rem; border-radius: 8px; background: rgb(214 120 22 / 0.14); color: #b35c00 !important; font: 600 var(--text-sm) / 1.3 var(--font-text) !important; }
.guard-note::before { content: "•  "; }
@media (prefers-color-scheme: dark) { .guard-note { color: #f2a24a !important; } }
.guard-demo { margin: 0; }
.sheet-static { height: auto; min-height: 0; padding-bottom: clamp(1.25rem, 2.6vw, 2rem); display: grid; gap: 0.9rem; }
.sheet-static > * { margin: 0; }
.sh-act { float: right; color: var(--sheet-link); font-weight: 600; }
.sh-h2 { font: 700 1.25em/1.25 ui-serif, "New York", Georgia, serif; }
.sheet-static code, .sh-code { font: 0.85em var(--font-mono); }
.sheet-static code { padding: 0.1em 0.35em; border-radius: 4px; background: var(--sheet-code); }
.sh-link { color: var(--sheet-link); text-decoration: underline; text-underline-offset: 0.15em; }
.sh-link ins, .sh-link del { color: inherit; }
.sheet-static table { font-size: 0.85em; max-width: 26rem; }
.sh-code { position: relative; margin: 0; padding: 0.8rem 1rem; border-radius: 6px; background: var(--sheet-code); color: var(--sheet-ink); }
.sh-tag { position: absolute; right: 0.6rem; top: 0.5rem; font: 600 0.7rem/1 var(--font-text); color: var(--sheet-ink-3); text-transform: none; }
.ai-real { margin-top: var(--space-3xl); display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: var(--space-2xl); align-items: center; }
@media (max-width: 900px) { .ai-real { grid-template-columns: minmax(0, 1fr); } }
.ai-real-side { display: grid; gap: var(--space-lg); }
.pairs.pairs-1 { grid-template-columns: minmax(0, 1fr); gap: var(--space-md); }

.ai-after { padding-block: var(--space-md) var(--space-3xl); }
.shot { margin: 0; }
.shot img { width: 100%; border-radius: 12px; box-shadow: var(--shadow-big); }
.shot figcaption { margin-top: var(--space-md); color: var(--band-ink-2); font-size: var(--text-sm); }

.pairs { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-xl) var(--space-2xl); margin: 0; }
.pairs > div { padding-top: var(--space-md); border-top: 1.5px solid var(--rule); }
.pairs dt { font: 600 var(--text-lg) / 1.3 var(--font-display); letter-spacing: -0.02em; margin-bottom: 0.3rem; }
.pairs dd { margin: 0; color: var(--band-ink-2); }
.pairs-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
@media (max-width: 860px) { .pairs, .pairs-3 { grid-template-columns: minmax(0, 1fr); gap: var(--space-lg); } }

.who { margin-top: var(--space-3xl); display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--space-lg); }
.who-title { font-size: var(--text-2xl); line-height: 1.12; letter-spacing: -0.02em; }
.who-text { max-width: 42rem; font-size: var(--text-lg); color: var(--band-ink-2); }
.who-cols { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--space-xl); margin-top: var(--space-lg); }
@media (max-width: 860px) { .who-cols { grid-template-columns: minmax(0, 1fr); } }
.who-cols > div { border-top: 2px solid var(--red); padding-top: var(--space-md); display: grid; gap: var(--space-sm); align-content: start; }
.who-cols h4 { color: var(--band-ink-2); }
.who-cols .names { font: 600 var(--text-xl) / 1.4 var(--font-display); letter-spacing: -0.01em; }
.who-cols .note { color: var(--band-ink-2); font-size: var(--text-sm); }
.who .fine { color: var(--band-ink-2); }

.ai-pair { margin-top: var(--space-3xl); display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-2xl); }
@media (max-width: 860px) { .ai-pair { grid-template-columns: minmax(0, 1fr); } }
.ai-pair figure { margin: 0; display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--space-lg); align-content: start; }
.ai-pair figcaption { display: grid; gap: var(--space-xs); }
.ai-pair figcaption p { color: var(--band-ink-2); }
.aimd pre { margin: 0; padding: var(--space-lg); min-height: 13rem; background: var(--sheet); color: var(--sheet-ink); border-radius: var(--radius); font: 0.9rem/1.75 var(--font-mono); white-space: pre-wrap; }
.aimd pre b { color: var(--sheet-del); }
.agent-page {
  --ins: var(--sheet-ins); --ins-bg: var(--sheet-ins-bg); --del: var(--sheet-del);
  min-height: 13rem; padding: var(--space-lg); background: var(--sheet); color: var(--sheet-ink); border-radius: var(--radius); display: grid; gap: var(--space-sm); align-content: start;
}
.agent-page del { color: var(--del); text-decoration: line-through; text-decoration-thickness: 2px; }
.agent-page ins { color: var(--ins); background: var(--ins-bg); text-decoration: underline; text-underline-offset: 0.2em; border-radius: 3px; }
.agent-file { font-size: 0.78rem; color: var(--sheet-ink-3); padding-bottom: var(--space-xs); border-bottom: 1px solid var(--sheet-line); }
.chg-do { display: inline-flex; gap: 2px; margin: 0 0.3em; vertical-align: 0.1em; }
.chg-do button { padding: 0.05rem 0.5rem; border: 1px solid var(--sheet-line-2); background: var(--sheet-raised); color: var(--sheet-ink); border-radius: 6px; font: 600 0.72rem/1.4 var(--font-text); cursor: pointer; }
.chg-do button:hover { background: var(--sheet-ink); color: var(--sheet); }
.chg.kept del, .chg.undone ins { display: none; }
.chg.kept ins, .chg.undone del { color: inherit; background: none; text-decoration: none; }
.chg.kept .chg-do, .chg.undone .chg-do { display: none; }

/* The editor: what Markdown looks like in Glifa, in real crops, and everything else it does */
.editor-head { background: var(--bg-2); padding-top: var(--space-3xl); }
.editor-head .wrap { display: grid; gap: var(--space-md); max-width: var(--wrap); }
.editor-head h2 { max-width: 20ch; }
.editor-head p { max-width: 44rem; color: var(--ink-2); font-size: var(--text-lg); }
.editor-head + .scene-type .stage { padding-top: var(--space-2xl); }
.editor { padding-block: var(--space-3xl); }
.feat { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: var(--space-2xl); align-items: center; }
.feat + .feat { margin-top: var(--space-2xl); }
.focus-row + .feat { margin-top: var(--space-3xl); }
.feat-rev { grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); }
.feat-rev .feat-shot { order: 2; }
@media (max-width: 860px) { .feat, .feat-rev { grid-template-columns: minmax(0, 1fr); gap: var(--space-lg); } .feat-rev .feat-shot { order: 0; } }
.feat-shot { margin: 0; display: grid; justify-items: center; }
.feat-shot img { max-width: 100%; height: auto; border-radius: 10px; border: 1px solid var(--rule); box-shadow: var(--shadow); }
.pair img, .focus-shot img { width: 100%; border-radius: 10px; border: 1px solid var(--rule); box-shadow: var(--shadow); }
.feat-text { display: grid; gap: var(--space-sm); }
.feat-text h3 { font-size: var(--text-2xl); }
.feat-text p { color: var(--ink-2); font-size: var(--text-lg); }
.pair figcaption { color: var(--ink-2); }
.pair figcaption strong { display: block; color: var(--ink); font: 600 var(--text-lg) / 1.3 var(--font-display); margin-bottom: 0.2rem; }
.pair { margin-top: var(--space-3xl); display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-xl); }
@media (max-width: 760px) { .pair { grid-template-columns: minmax(0, 1fr); } }
.pair figure { margin: 0; display: grid; gap: var(--space-md); align-content: start; }
.focus-row { margin-top: var(--space-3xl); display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: var(--space-2xl); align-items: center; }
@media (max-width: 900px) { .focus-row { grid-template-columns: minmax(0, 1fr); } }
.focus-shot { margin: 0; }
.focus-text { display: grid; gap: var(--space-md); }
.focus-text h3 { font-size: var(--text-2xl); }
.focus-text p { color: var(--ink-2); font-size: var(--text-lg); }
.index-all { margin-top: var(--space-3xl); padding-top: var(--space-xl); border-top: 1.5px solid var(--rule-strong); }
.index-all h3 { font-size: var(--text-2xl); }
.index-cols { margin-top: var(--space-xl); display: grid; grid-template-columns: repeat(auto-fit, minmax(13rem, 1fr)); gap: var(--space-xl); }
.index-cols h4 { font: 600 var(--text-md) / 1.3 var(--font-display); color: var(--red-text); margin-bottom: var(--space-sm); }
.index-cols ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 0.45rem; color: var(--ink-2); font-size: 0.95rem; line-height: 1.4; }

/* Themes: pick one, see the note in it */
.themes { padding-block: var(--space-3xl); }
.themes-in { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: var(--space-2xl); align-items: center; }
@media (max-width: 900px) { .themes-in { grid-template-columns: minmax(0, 1fr); } }
.themes-side { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--space-md); }
.themes-side > p:first-of-type { color: var(--ink-2); font-size: var(--text-lg); }
.theme-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0.25rem; margin-block: var(--space-sm); }
.theme-list button { display: grid; gap: 0.1rem; text-align: left; padding: 0.6rem 0.8rem; border: 1px solid transparent; border-radius: 10px; background: none; color: var(--ink-2); font: 400 var(--text-sm) / 1.35 var(--font-text); cursor: pointer; }
.theme-list button strong { color: var(--ink); font: 600 var(--text-md) / 1.3 var(--font-display); }
.theme-list button:hover { background: var(--bg-2); }
.theme-list [aria-checked="true"], .theme-list [aria-checked="true"]:hover { background: var(--surface); border-color: var(--rule); box-shadow: var(--shadow); }
.theme-list [aria-checked="true"] strong { color: var(--red-text); }
.theme-shot { margin: 0; }
.theme-shot img { width: 100%; border-radius: 10px; box-shadow: var(--shadow-big); }

/* Files */
.files { padding-block: var(--space-3xl); }
.statement { font-size: var(--text-2xl); line-height: 1.12; letter-spacing: -0.02em; max-width: 22ch; }
.statement .md { font-family: var(--font-mono); color: var(--red); letter-spacing: -0.03em; }
.files-in { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: var(--space-2xl); margin-top: var(--space-2xl); align-items: start; }
@media (max-width: 900px) { .files-in { grid-template-columns: minmax(0, 1fr); } }
.files-side { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--space-lg); position: sticky; top: 6rem; }
@media (max-width: 900px) { .files-side { position: static; } }
.files-text { color: var(--ink-2); font-size: var(--text-lg); }
.tree { margin: 0; padding: var(--space-lg) var(--space-xl); background: var(--surface); border-radius: var(--radius); box-shadow: var(--shadow); font: 0.92rem/1.85 var(--font-mono); color: var(--ink-2); white-space: pre; overflow-x: auto; }
.tree b { font-weight: 700; color: var(--red-text); }
.tree i { font-style: normal; color: var(--ink-3); }
.index { margin: 0; display: grid; border-top: 1.5px solid var(--rule-strong); }
.index > div { display: grid; grid-template-columns: minmax(0, 2fr) minmax(0, 3fr); gap: var(--space-lg); padding-block: var(--space-lg); border-bottom: 1px solid var(--rule); }
.index dt { font: 600 var(--text-lg) / 1.3 var(--font-display); }
.index dd { margin: 0; color: var(--ink-2); padding-top: 0.2rem; }
@media (max-width: 640px) { .index > div { grid-template-columns: minmax(0, 1fr); gap: var(--space-xs); } }

/* Safety: four promises, big */
.safety { background: var(--bg-2); padding-block: var(--space-3xl); }
.safety-title { max-width: 24ch; }
.vows { margin-top: var(--space-2xl); display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-2xl) var(--space-2xl); }
.vows p { color: var(--ink-2); font-size: var(--text-md); max-width: 32rem; }
.vows strong { display: block; margin-bottom: 0.4rem; color: var(--ink); font: 600 var(--text-xl) / 1.25 var(--font-display); letter-spacing: -0.01em; }
@media (max-width: 800px) { .vows { grid-template-columns: minmax(0, 1fr); gap: var(--space-xl); } }

/* Compare */
.compare { padding-block: var(--space-3xl); }
.compare-head { display: grid; grid-template-columns: minmax(0, 6fr) minmax(0, 5fr); gap: var(--space-2xl); align-items: end; }
.compare-head p { color: var(--ink-2); }
@media (max-width: 900px) { .compare-head { grid-template-columns: minmax(0, 1fr); gap: var(--space-md); } }
.table-scroll { margin-block: var(--space-2xl) var(--space-md); overflow-x: auto; }
.cmp { min-width: 48rem; font-size: var(--text-md); }
.cmp th, .cmp td { padding: 1rem 0.9rem; vertical-align: top; border-bottom: 1px solid var(--rule); }
.cmp thead th, .cmp thead td { border-bottom: 1.5px solid var(--rule-strong); }
.cmp thead th { font: 600 var(--text-md) / 1.2 var(--font-display); white-space: nowrap; }
.cmp tbody th { font-weight: 500; width: 28%; }
.cmp td { color: var(--ink-2); }
.cmp .us { background: rgb(227 65 43 / 0.07); box-shadow: inset 1.5px 0 0 var(--red), inset -1.5px 0 0 var(--red); color: var(--ink); }
.cmp thead .us { color: var(--red-text); box-shadow: inset 1.5px 0 0 var(--red), inset -1.5px 0 0 var(--red), inset 0 1.5px 0 var(--red); border-radius: 10px 10px 0 0; }
.cmp tbody tr:last-child .us { box-shadow: inset 1.5px 0 0 var(--red), inset -1.5px 0 0 var(--red), inset 0 -1.5px 0 var(--red); border-radius: 0 0 10px 10px; }
.cmp .y::before { content: "✓"; color: var(--ink); margin-right: 0.45em; font-weight: 700; }
.cmp .us.y::before { color: var(--red); }
.cmp .p::before { content: "◐"; color: var(--ink-3); margin-right: 0.45em; font-size: 0.85em; }
.cmp .n::before { content: "—"; color: var(--ink-3); margin-right: 0.45em; }
.cmp small { display: block; margin-top: 0.15rem; font-size: 0.85rem; line-height: 1.35; color: var(--ink-2); }
.sources { margin-top: var(--space-xs); }
.sources summary { cursor: pointer; }
.sources ul { margin: var(--space-xs) 0 0; padding-left: 1.2em; }

/* Mac and its languages */
.mac { padding-block: var(--space-3xl); background: var(--bg-2); overflow: clip; }
.mac-in { display: grid; gap: var(--space-2xl); }
.mac .pairs dd { color: var(--ink-2); }
.mac .pairs > div { border-top-color: var(--rule-strong); }
.langs { margin-top: var(--space-2xl); }
.langs-title { font: 600 var(--text-md) / 1.3 var(--font-text); color: var(--ink-2); }
.langs-list { list-style: none; margin-top: var(--space-lg); padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(min(22rem, 100%), 1fr)); gap: 0.4rem var(--space-xl); }
.langs-list li { font: 500 var(--text-md) / 1.5 var(--font-display); }
.langs-list li:nth-child(even) { color: var(--ink-2); }

/* Price: a red poster */
.pricing { background: var(--red-deep); color: #fff; padding-block: var(--space-3xl); overflow: clip; isolation: isolate; }
.price-icon { width: 3.5rem; height: auto; margin-bottom: var(--space-lg); filter: drop-shadow(0 18px 30px rgb(0 0 0 / 0.3)); }
.price-in { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: var(--space-2xl); align-items: end; }
@media (max-width: 900px) { .price-in { grid-template-columns: minmax(0, 1fr); } }
.price { margin-block: var(--space-md) var(--space-xl); display: grid; gap: var(--space-xs); }
.amount { font: 600 clamp(2.25rem, 1.8rem + 1.2vw, 3rem) / 1 var(--font-display); letter-spacing: -0.02em; }
.once { color: rgb(255 255 255 / 0.88); font-size: var(--text-lg); }
.launch { margin: calc(-1 * var(--space-md)) 0 var(--space-xl); display: inline-block; padding: 0.35rem 0.8rem; border-radius: 999px; background: rgb(255 255 255 / 0.16); color: #fff; font: 600 var(--text-sm) / 1.3 var(--font-text); }
.launch:empty { display: none; }
.button.on-color { background: #fff; color: #8a2412; }
.button.on-color:hover { background: #0e0e10; color: #fff; }
.button.quiet.on-color { background: transparent; color: #fff; border-color: #fff; }
.button.quiet.on-color:hover { background: #fff; color: #8a2412; }
.pricing :focus-visible { outline-color: #fff; }
.price-list { list-style: none; margin: 0; padding: 0; display: grid; border-top: 1.5px solid #fff; }
.price-list li { padding: 0.8rem 0; border-bottom: 1px solid rgb(255 255 255 / 0.3); font-size: var(--text-md); }
.price-list .reseller { color: rgb(255 255 255 / 0.88); font-size: var(--text-md); border-bottom: 0; }

/* Footer */
.foot { padding-block: var(--space-2xl) var(--space-xl); font-size: 0.95rem; color: var(--ink-2); }
.foot-brand p { font-size: var(--text-md); color: var(--ink-2); }
.foot-in { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: var(--space-lg) var(--space-2xl); }
.foot-brand { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--space-xs); }
.foot ul { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: var(--space-xs) var(--space-lg); }
.foot a { text-decoration: none; white-space: nowrap; }
.foot a:hover { color: var(--ink); text-decoration: underline; text-decoration-color: var(--red); }
.languages { grid-column: 1 / -1; }
.languages [aria-current] { color: var(--ink); font-weight: 600; }
.legal { grid-column: 1 / -1; color: var(--ink-3); }
@media (max-width: 720px) { .foot-in { grid-template-columns: minmax(0, 1fr); } }

/* Text pages: Support, Privacy, Terms */
.doc { padding-block: var(--space-2xl) var(--space-3xl); }
.doc .wrap { max-width: 46rem; }
.doc h1 { font-size: var(--text-2xl); line-height: 1.12; letter-spacing: -0.02em; margin-bottom: var(--space-lg); }
.doc .updated { color: var(--ink-3); font-size: var(--text-sm); margin-bottom: var(--space-xl); }
.doc h2 { font-size: var(--text-xl); line-height: 1.25; letter-spacing: -0.01em; margin-top: var(--space-2xl); margin-bottom: var(--space-sm); }
.doc h3 { font-size: var(--text-lg); margin-top: var(--space-lg); margin-bottom: var(--space-xs); }
.doc p, .doc ul, .doc ol { margin-block: 0 var(--space-md); }
.doc li { margin-bottom: 0.25rem; }
.doc .lede { margin-bottom: var(--space-xl); }
.doc details { border-top: 1px solid var(--rule); padding-block: var(--space-sm); }
.doc details:last-of-type { border-bottom: 1px solid var(--rule); }
.doc summary { cursor: pointer; font-weight: 600; }
.doc details[open] summary { margin-bottom: var(--space-xs); }
.doc .contact { padding: var(--space-lg); border-radius: var(--radius); background: var(--bg-2); margin-block: var(--space-xl); }
.doc code { font: 0.9em var(--font-mono); }
.doc-wide .wrap { max-width: 56rem; }
.doc-wide .wrap > :not(.table-scroll) { max-width: 44rem; }
.doc .table-scroll { margin-block: 0 var(--space-xl); }
.cmp-2 { min-width: 0; }
.cmp-2 tbody th { width: 46%; }
@media (max-width: 640px) { .cmp-2 { font-size: var(--text-sm); } .cmp-2 th, .cmp-2 td { padding: 0.75rem 0.5rem; } .cmp-2 tbody th { width: 40%; } }
.visually-hidden { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
.mk-404 { font-family: var(--font-mono); color: var(--red); }

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: 1ms !important; animation-delay: 0ms !important; animation-iteration-count: 1 !important; transition-duration: 120ms !important; }
  .dl.cur .src::after { animation: none; }
}
