.section{padding:clamp(56px,8vw,104px) 0;border-bottom:1px solid var(--hairline)}.section:last-of-type{border-bottom:0}.wrap-narrow-ish{max-width:900px}.eyebrow{display:flex;align-items:center;gap:10px;margin:0 0 14px}.carved{margin:0;color:var(--ink);font-family:var(--font-display);font-size:clamp(2rem,3.6vw,2.75rem);font-weight:500;line-height:1.1;letter-spacing:-.03em;text-wrap:balance}.lede{max-width:62ch;margin:16px 0 0;color:var(--muted);font-size:1.0625rem;line-height:1.65}.lede-wide{max-width:70ch}.btn-lg{min-height:44px;padding-inline:18px}.card,.slab{border:1px solid var(--glass-line);border-radius:var(--r-xl);background:var(--glass-fill);box-shadow:var(--glass-shadow);backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur);transition:border-color var(--t-base) var(--ease-out),box-shadow var(--t-base) var(--ease-out),translate var(--t-slow) var(--ease-spring)}.card:hover,.slab:hover{border-color:var(--glass-line-hover);box-shadow:var(--glass-shadow-lift);translate:0 -3px}.slab--pad{padding:clamp(20px,3vw,32px)}.prose{max-width:70ch;color:var(--ink-2)}.prose h2,.prose h3,.prose h4{color:var(--ink);font-family:var(--font-display);font-weight:500;letter-spacing:-.015em;line-height:1.3}.prose h2{margin:48px 0 12px;padding-top:24px;border-top:1px solid var(--hairline);font-size:1.375rem}.prose h3{margin:32px 0 10px;font-size:1.0625rem}.prose p,.prose li{color:var(--ink-2);font-size:.975rem;line-height:1.72}.prose strong{color:var(--ink);font-weight:600}.prose a:not(.btn){color:var(--ink);text-decoration:underline;text-decoration-color:var(--line-strong);text-decoration-thickness:1px;text-underline-offset:.2em;transition:text-decoration-color var(--t-fast) var(--ease-out)}.prose a:not(.btn):hover{text-decoration-color:var(--accent)}.prose ul,.prose ol{display:grid;gap:8px;margin:12px 0 22px;padding-left:22px}.prose li::marker{color:var(--faint)}.prose code,.prose kbd,.prose pre{font-family:var(--font-mono)}.prose code,.prose kbd{padding:1px 5px;border-radius:6px;background:var(--surface-2);color:var(--ink);font-size:.82em}.prose pre{overflow-x:auto;margin:20px 0;padding:16px;border:1px solid var(--line);border-radius:var(--r-md);background:var(--paper-2);color:var(--ink);font-size:.8rem;line-height:1.6}.prose blockquote{margin:22px 0;padding:4px 16px;border-left:2px solid var(--line-strong);color:var(--ink)}.callout{margin:24px 0;padding:16px 18px;border:1px solid var(--glass-line);border-radius:var(--r-lg);background:var(--glass-fill);box-shadow:var(--glass-shadow);backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur)}.callout p{margin:0;color:var(--ink-2)}.callout p+p{margin-top:10px}.callout--violet{background:transparent;border-style:dashed}.table-scroll{position:relative;overflow-x:auto;margin-top:28px;border:1px solid var(--glass-line);border-radius:var(--r-xl);background:var(--glass-fill);box-shadow:var(--glass-shadow);backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur)}.table-scroll table th[scope=row]{position:sticky;inset-inline-start:0;z-index:1;max-width:160px;background:var(--glass-fill-strong);backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur)}.table-scroll table th[scope=row]:after{content:"";position:absolute;inset-block:0;inset-inline-end:-1px;width:1px;background:var(--hairline)}table{width:100%;min-width:620px;border-collapse:collapse}th,td{padding:14px 16px;border-bottom:1px solid var(--hairline);text-align:left;vertical-align:top}th{color:var(--ink);font-size:13px;font-weight:500;letter-spacing:-.005em}thead th{color:var(--faint);font-size:11px;letter-spacing:.08em;text-transform:uppercase}td{color:var(--ink-2);font-size:14px}tr:last-child td,tr:last-child th{border-bottom:0}.tx{display:block;margin-top:3px;color:var(--muted);font-size:.8em}.num{color:var(--ink);font-family:var(--font-mono);white-space:nowrap}.no-js [data-reveal],.no-js .kinetic{opacity:1;transform:none}html:not(.no-js) [data-reveal],html:not(.no-js) .kinetic{opacity:0;transform:translateY(18px) scale(.985);transition:opacity var(--t-slow) var(--ease-out),transform .7s var(--ease-spring),translate var(--t-slow) var(--ease-spring);transition-delay:var(--reveal-delay, 0ms)}html:not(.no-js) [data-reveal].is-in,html:not(.no-js) .kinetic.is-in{opacity:1;transform:none}@media(prefers-reduced-motion:reduce){html:not(.no-js) [data-reveal],html:not(.no-js) .kinetic{opacity:1;transform:none}}@media print{html:not(.no-js) [data-reveal],html:not(.no-js) .kinetic{opacity:1;transform:none;transition:none}}@media(max-width:820px){.section{padding-block:48px 64px}}
