:root{--paper:#e9e9e7;--paper-2:#f1f0ed;--ink:#111111;--ink-bg:#0d0d0d;--ink-teal:#071111;--accent:#0f6e78;--accent-bright:#178f9d;--mint:#75d0cb;--mint-deep:#5abdb2;--muted:#5e5e5b;--muted-ink:#9a9a96;--tone-call:#96c7d9;--tone-put:#d59f8e;--tone-agent:#b3b0ff;--gain:#146c3c;--loss:#b3261e;--gain-ink:#3ecf8e;--loss-ink:#ff6b5e;--font-sans:var(--font-inter-tight),"Inter Tight",ui-sans-serif,system-ui,sans-serif;--font-mono:var(--font-jetbrains),"JetBrains Mono",ui-monospace,monospace;--ease-out:cubic-bezier(0.16,1,0.3,1);--ease-ui:cubic-bezier(0.2,0.8,0.2,1);--ease-inout:cubic-bezier(0.76,0,0.24,1);--gutter:clamp(22px,2.8vw,40px);--banner-h:30px;--nav-h:clamp(72px,6.8vw,98px);--app-nav-h:72px;--section-pad-top:clamp(72px,7vw,104px);--section-pad-bottom:clamp(88px,9vw,136px);--sp-xs:8px;--sp-s:16px;--sp-m:24px;--sp-l:clamp(32px,3.4vw,48px);--sp-xl:clamp(40px,5vw,72px);--fs-mega:clamp(4.4rem,13.5vw,15rem);--fs-title:clamp(3.2rem,11.5vw,11.5rem);--fs-h1:clamp(3.4rem,12vw,12.5rem);--fs-project:clamp(2.8rem,8.2vw,9rem);--fs-h2:clamp(2.6rem,6vw,7rem);--fs-manifesto:clamp(2.65rem,5.9vw,7.15rem);--fs-quote:clamp(2rem,4vw,4.7rem);--fs-stat:clamp(1.9rem,3vw,3rem);--fs-h3:clamp(1.35rem,1.9vw,1.9rem);--fs-lead:clamp(1.06rem,1.35vw,1.35rem);--fs-body:clamp(1rem,1.15vw,1.1rem);--fs-small:0.875rem;--fs-label:0.6875rem;--fs-nav:0.8125rem}@media (max-width:640px){:root{--fs-title:clamp(3.2rem,14.2vw,4.65rem);--fs-h1:clamp(3.4rem,18vw,6.2rem);--fs-project:clamp(2.6rem,12.4vw,4.25rem);--fs-h2:clamp(2.4rem,12.5vw,4.4rem);--fs-manifesto:clamp(2.35rem,10.6vw,4.4rem);--fs-quote:clamp(1.9rem,9vw,3.3rem);--fs-label:0.625rem;--fs-nav:0.6875rem}}*,:after,:before{box-sizing:border-box}html{text-size-adjust:100%;scroll-behavior:smooth}body,html{background:var(--paper)}body{min-height:100svh;color:var(--ink);font-family:var(--font-sans);font-size:var(--fs-body);line-height:1.5;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility;overflow-x:clip;padding-top:var(--banner-h)}blockquote,body,dd,dl,figure,h1,h2,h3,h4,ol,p,ul{margin:0}ol,ul{padding:0;list-style:none}a{color:inherit;text-decoration:none}button,input,select{font:inherit;color:inherit}button{cursor:pointer;background:none;border:0;padding:0}img,svg{display:block;max-width:100%}::selection{background:var(--mint);color:var(--ink-teal)}:focus-visible{outline:2px solid var(--focus-ring,var(--accent));outline-offset:3px;border-radius:2px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.skip-link{position:fixed;left:var(--gutter);top:calc(var(--banner-h) + 8px);z-index:100;padding:10px 16px;background:var(--ink);color:var(--paper);border-radius:999px;transform:translateY(-200%);transition:transform .25s var(--ease-out)}.skip-link:focus{transform:none}.theme-call,.theme-ink,.theme-mint,.theme-paper,.theme-paper-2,.theme-put,.theme-teal{--fg:var(--ink);--fg-muted:var(--muted);--rule:rgba(17,17,17,0.16);--rule-strong:rgba(17,17,17,0.34);--accent-text:var(--accent);--gain-c:var(--gain);--loss-c:var(--loss);--surface:rgba(255,255,255,0.45);--ghost:rgba(17,17,17,0.08);--focus-ring:var(--accent);background:var(--bg);color:var(--fg)}.theme-paper{--bg:var(--paper)}.theme-paper-2{--bg:var(--paper-2)}.theme-call,.theme-put{--focus-ring:var(--ink)}.theme-call{--bg:var(--tone-call);--fg-muted:#2d3f46;--accent-text:#0b4f57;--rule:rgba(17,17,17,0.2)}.theme-put{--bg:var(--tone-put);--fg-muted:#4a3129;--accent-text:#5e2417;--rule:rgba(17,17,17,0.2)}.theme-mint{--bg:var(--mint);--fg:var(--ink-teal);--fg-muted:#1f4744;--accent-text:var(--ink-teal);--rule:rgba(7,17,17,0.28);--rule-strong:rgba(7,17,17,0.5);--ghost:rgba(7,17,17,0.07);--focus-ring:var(--ink-teal)}.theme-ink,.theme-teal{--bg:var(--ink-bg);--fg:var(--paper);--fg-muted:var(--muted-ink);--rule:rgba(233,233,231,0.18);--rule-strong:rgba(233,233,231,0.34);--accent-text:var(--mint);--gain-c:var(--gain-ink);--loss-c:var(--loss-ink);--surface:rgba(233,233,231,0.04);--ghost:rgba(233,233,231,0.06);--focus-ring:var(--mint);color-scheme:dark}.theme-teal{--bg:var(--ink-teal)}.micro{font-size:var(--fs-label);font-weight:600;line-height:1.3;letter-spacing:.09em;text-transform:uppercase}.micro-muted{color:var(--fg-muted,var(--muted))}.index{font-size:var(--fs-label);font-weight:650;letter-spacing:.09em;color:var(--accent-text,var(--accent));font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.mono{font-family:var(--font-mono);font-feature-settings:"tnum";font-variant-numeric:tabular-nums;letter-spacing:-.02em;text-transform:none}.display-title{font-size:var(--fs-title);font-weight:830;line-height:.8;letter-spacing:-.074em;text-transform:uppercase}.display-h1{font-size:var(--fs-h1);font-weight:830;line-height:.78;letter-spacing:-.075em}.display-project{font-size:var(--fs-project);font-weight:780;line-height:.88;letter-spacing:-.062em}.display-h2{font-size:var(--fs-h2);font-weight:770;line-height:.92;letter-spacing:-.058em}.h3{font-size:var(--fs-h3);font-weight:680;line-height:1.08;letter-spacing:-.03em}.lead{font-size:var(--fs-lead);font-weight:450;line-height:1.38;max-width:34em}.body,.lead{color:var(--fg-muted,var(--muted))}.body{font-size:var(--fs-body);line-height:1.55;max-width:38em}.outline-text{color:transparent;-webkit-text-stroke:1px currentColor}@supports (-webkit-text-stroke:1px black){.outline-text{color:transparent;-webkit-text-stroke:1.2px var(--fg)}}.gutter{padding-left:var(--gutter);padding-right:var(--gutter)}.rule{display:block;height:1px;width:100%;background:var(--rule,rgba(17,17,17,.16));transform-origin:left center}.text-link{position:relative;display:inline-flex;align-items:center;gap:6px;border-bottom:1px solid;padding-bottom:2px;transition:opacity .25s var(--ease-ui)}.text-link svg{transition:transform .25s var(--ease-out)}.pill-small:after,.text-link:after{content:"";position:absolute;left:-4px;right:-4px;top:50%;height:44px;transform:translateY(-50%)}@media (hover:hover) and (pointer:fine){.text-link:hover{opacity:.7}.text-link:hover svg{transform:translate(2px,-2px)}}.pill{--pill-bg:var(--fg,var(--ink));--pill-fg:var(--bg,var(--paper));position:relative;display:inline-flex;align-items:center;justify-content:center;gap:12px;min-height:44px;padding:12px 20px;border-radius:999px;border:1px solid var(--pill-bg);background:var(--pill-bg);color:var(--pill-fg);font-size:var(--fs-label);font-weight:650;letter-spacing:.09em;text-transform:uppercase;line-height:1;white-space:nowrap;transition:background .22s var(--ease-ui),color .22s var(--ease-ui),border-color .22s var(--ease-ui),opacity .22s var(--ease-ui)}.pill svg{width:14px;height:14px;flex:none;transition:transform .3s var(--ease-out)}.pill-ghost{background:transparent;color:var(--fg,var(--ink));border-color:var(--rule-strong,rgba(17,17,17,.34))}.pill-accent{--pill-bg:var(--mint);--pill-fg:var(--ink-teal)}.pill-small{min-height:34px;padding:9px 14px;gap:8px}.pill:disabled,.pill[aria-disabled=true]{opacity:.4;cursor:not-allowed}@media (hover:hover) and (pointer:fine){.pill:not(:disabled):hover{background:transparent;color:var(--pill-bg)}.pill-ghost:not(:disabled):hover{background:var(--fg,var(--ink));color:var(--bg,var(--paper));border-color:var(--fg,var(--ink))}.pill:not(:disabled):hover svg{transform:translateX(4px)}}.circle-btn{display:inline-grid;place-items:center;width:44px;height:44px;border-radius:50%;border:1px solid var(--rule-strong,rgba(17,17,17,.34));color:var(--fg,var(--ink));transition:background .22s var(--ease-ui),color .22s var(--ease-ui),transform .22s var(--ease-ui)}.circle-btn svg{width:16px;height:16px;animation:arrow-drift 1.8s ease-in-out infinite}@media (hover:hover) and (pointer:fine){.circle-btn:hover{background:var(--fg,var(--ink));color:var(--bg,var(--paper));transform:scale(1.08)}}@keyframes arrow-drift{0%,to{transform:translateY(-1px)}50%{transform:translateY(2px)}}.field{display:grid;grid-template-columns:minmax(0,1fr);gap:8px}.input-row{display:flex;align-items:center;gap:10px;border-bottom:1px solid var(--rule-strong);padding:6px 0 10px;transition:border-color .22s var(--ease-ui)}.input-row:focus-within{border-color:var(--fg);box-shadow:0 1px 0 var(--fg)}.input-row input{flex:1 1;width:100%;min-width:0;background:transparent;border:0;outline:none;font-family:var(--font-mono);font-size:clamp(1.6rem,2.6vw,2.4rem);font-weight:500;letter-spacing:-.04em;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;color:var(--fg);padding:0}.input-row input::placeholder{color:var(--rule-strong)}.input-row .unit{letter-spacing:.09em;color:var(--fg-muted)}.chip,.input-row .unit{font-size:var(--fs-label);font-weight:650;text-transform:uppercase}.chip{display:inline-flex;align-items:center;gap:6px;padding:6px 10px;border-radius:999px;border:1px solid var(--rule-strong);letter-spacing:.08em;line-height:1;white-space:nowrap;transition:background .22s var(--ease-ui),color .22s var(--ease-ui)}.chip[aria-pressed=true]{background:var(--fg);color:var(--bg);border-color:var(--fg)}@media (hover:hover) and (pointer:fine){.chip:not([aria-pressed=true]):not(:disabled):hover{border-color:var(--fg);background:var(--ghost)}}.chip:disabled{opacity:.45;cursor:not-allowed}.js [data-reveal]{opacity:0;transform:translate3d(0,32px,0);transition:opacity .8s var(--ease-out),transform 1.1s var(--ease-out);transition-delay:var(--delay,0s)}.js [data-reveal=fade]{transform:none}.js [data-reveal=wipe]{opacity:1;transform:none;clip-path:inset(0 0 100% 0 round 16px);transition:clip-path 1.25s var(--ease-out);transition-delay:var(--delay,0s)}.js [data-reveal=draw]{opacity:1;transform:scaleX(0);transition:transform 1.1s var(--ease-out);transition-delay:var(--delay,0s)}.js [data-reveal].is-in{opacity:1;transform:none}.js [data-reveal=wipe].is-in{clip-path:inset(0 0 0 0 round 16px)}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.js [data-reveal=draw],.js [data-reveal=wipe],.js [data-reveal]{opacity:1;transform:none;clip-path:none;transition:none}*,:after,:before{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}}.skeleton{display:inline-block;min-width:3em;height:.9em;border-radius:4px;background:linear-gradient(90deg,var(--ghost) 0,var(--rule) 50%,var(--ghost) 100%);background-size:200% 100%;animation:shimmer 1.4s linear infinite;vertical-align:middle}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}