:root{--paper:#f4f0eb;--paper-2:#ede8e1;--paper-card:#faf8f5;--ink:#252118;--ink-soft:#615a50;--ink-faint:#948c80;--line:#2521181f;--line-soft:#25211812;--accent:#5c7a6b;--accent-deep:#445c50;--accent-tint:#c8d6cf;--accent-wash:#dde8e3;--accent-on-night:#aebdb5;--warm:#a07858;--warm-wash:#ede2d6;--night:#1a1a14;--night-green:#182420;--ok:#2e7050;--terracota:#9c5b41;--error:#c0573f;--font-display:var(--font-newsreader), Georgia, serif;--font-ui:var(--font-hanken), system-ui, sans-serif;--font-mono:var(--font-plex-mono), ui-monospace, monospace;--r-md:12px;--r-lg:20px;--r-pill:14px;--shadow-sm:0 1px 2px #1a1a140a, 0 2px 8px #1a1a140a;--shadow-md:0 4px 18px #1a1a1412, 0 1px 3px #1a1a140d;--shadow-lg:0 18px 48px #1a1a1421;--maxw:1180px;--readw:680px;--gutter:clamp(20px, 5vw, 64px);--sp-sec:clamp(48px, 6vw, 80px);--sp-first:clamp(40px, 5vw, 64px);--sp-cont:clamp(24px, 3vw, 40px);--ease-out:cubic-bezier(.2, .7, .2, 1)}*,:before,:after{box-sizing:border-box}html{-webkit-font-smoothing:antialiased;scroll-behavior:smooth}body{font-family:var(--font-ui);background:var(--paper);color:var(--ink);letter-spacing:.005em;margin:0;font-size:17px;line-height:1.65}img,svg{max-width:100%;display:block}a{color:inherit;text-decoration:none}a:hover{color:var(--accent-deep)}::selection{background:var(--accent-tint)}h1,h2,h3,h4{font-family:var(--font-display);letter-spacing:-.015em;text-wrap:balance;margin:0;font-weight:500;line-height:1.1}p{margin:0 0 1em}:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.wrap{max-width:var(--maxw);padding-inline:var(--gutter);margin:0 auto}.section{padding-block:var(--sp-sec)}.display{letter-spacing:-.025em;font-size:clamp(2.5rem,5.6vw,4.6rem);font-weight:400;line-height:1.03}.display em{color:var(--accent-deep);font-style:italic}.section-title{font-size:clamp(1.8rem,3.2vw,2.7rem);font-weight:400}.section-title em{font-style:italic}.lede{color:var(--ink-soft);font-size:clamp(1.08rem,1.6vw,1.24rem);line-height:1.6}.lede strong{color:var(--ink);font-weight:600}.visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;margin:-1px;position:absolute;overflow:hidden}@media (prefers-reduced-motion:no-preference){.reveal.in{animation:reveal-in .66s var(--ease-out) both;animation-delay:calc(var(--d,0) * 80ms)}}@keyframes reveal-in{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}@media (max-width:600px){body{font-size:16px}}
