:root{--paper:#fcfcfa;--white:#fff;--ink:#16181d;--sumi:#3a3c42;--gray-muted:#73736b;--gray-soft:#8a8a82;--blue:#185fa5;--blue-deep:#0f3f70;--line:#e8e8e2;--ink-text:#f3f3ef;--ink-text-muted:#b9bbc1;--ink-line:rgba(255,255,255,0.22);--color-bg:var(--paper);--color-surface:var(--white);--color-text:var(--ink);--color-text-soft:var(--sumi);--color-text-muted:var(--gray-muted);--color-text-faint:var(--gray-soft);--color-accent:var(--blue);--color-accent-deep:var(--blue-deep);--color-line:var(--line);--color-focus:var(--blue);--muted:var(--color-text-muted);--spectrum:linear-gradient(90deg,rgba(244,143,164,0.76),rgba(246,205,112,0.74),rgba(127,211,181,0.74),rgba(112,181,230,0.76),rgba(183,148,225,0.74));--serif:var(--font-serif),serif;--sans:var(--font-sans),sans-serif;--mono:var(--font-mono),monospace;--maxw:1180px;--gut:clamp(20px,5vw,68px);--nav-h:64px;--ease-out:cubic-bezier(0.16,1,0.3,1)}*{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}body{background:var(--color-bg);color:var(--color-text);font-family:var(--sans);font-weight:300;line-height:1.8;-webkit-font-smoothing:antialiased;overflow-x:hidden}body:before{content:"";position:fixed;inset:0;z-index:90;pointer-events:none;opacity:.055;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 160 160' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.92' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.7'/%3E%3C/svg%3E")}a{color:inherit;text-decoration:none}svg{display:block}:where(p,li){line-break:strict;overflow-wrap:normal;text-wrap:pretty;word-break:auto-phrase}:where(h1,h2,h3,h4){line-break:strict;text-wrap:balance;word-break:auto-phrase}.wrap{max-width:var(--maxw);margin:0 auto;padding-inline:var(--gut)}.label{color:var(--color-text-muted);font-family:var(--mono);font-size:.7rem;letter-spacing:.24em;text-transform:uppercase}.reveal{opacity:0;transform:translateY(28px);transition:opacity .9s var(--ease-out),transform .9s var(--ease-out)}.reveal.in{opacity:1;transform:none}a:focus-visible{outline:2px solid var(--color-focus);outline-offset:4px}@media (pointer:fine){a,body{cursor:none}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{animation:none!important}.reveal{opacity:1;transform:none;transition:none}}