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