*,:after,:before{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;background:var(--paper);color:var(--ink);font-family:var(--font-text);overflow-x:hidden;transition:background .45s ease,color .45s ease}:root{--font-display:"Helvetica Neue",Helvetica,Arial,sans-serif;--font-text:"IBM Plex Sans","Helvetica Neue",Arial,sans-serif;--font-mono:"IBM Plex Mono",ui-monospace,monospace;--paper:#0b0d0f;--paper-2:#101315;--panel:#15181b;--panel-2:#1c2024;--ink:#f5f2ed;--ink-2:#a9a49a;--ink-3:#6c6960;--line:hsla(38,29%,95%,.14);--line-2:hsla(38,29%,95%,.055);--accent:#c26a2b;--accent-soft:rgba(194,106,43,.16);--on-accent:#0b0d0f;--nav:rgba(11,13,15,.74)}html[data-theme=light]{--paper:#f5f2ed;--paper-2:#ece8de;--panel:#fbf9f4;--panel-2:#f0ece2;--ink:#111317;--ink-2:#4b5157;--ink-3:#8c887e;--line:rgba(17,19,23,.16);--line-2:rgba(17,19,23,.06);--accent:#b25c24;--accent-soft:rgba(178,92,36,.12);--on-accent:#f5f2ed;--nav:hsla(38,29%,95%,.8)}::selection{background:var(--accent);color:var(--on-accent)}html[data-theme=dark] [data-ic=moon],html[data-theme=light] [data-ic=sun]{display:none}[data-reveal]{opacity:0;transform:translateY(18px);transition:opacity .7s cubic-bezier(.2,.7,.2,1),transform .7s cubic-bezier(.2,.7,.2,1)}[data-reveal].in{opacity:1;transform:none}[data-plot] circle{opacity:0;transition:opacity .5s ease}@keyframes blink{0%,to{opacity:1}50%{opacity:.25}}@keyframes flowDown{0%{background-position:0 -28px}to{background-position:0 28px}}@keyframes gridDrift{0%{background-position:0 0}to{background-position:0 44px}}@keyframes riseIn{0%{transform:translateY(26px)}to{transform:translateY(0)}}@keyframes calibrate{0%{opacity:0;transform:scale(1.55)}55%{opacity:1;transform:scale(.92)}to{opacity:1;transform:scale(1)}}@keyframes spin{to{transform:rotate(1turn)}}@keyframes binduIn{0%{opacity:0;transform:translate(-50%,-50%) scale(0)}60%{opacity:1}to{opacity:1;transform:translate(-50%,-50%) scale(1)}}@media (prefers-reduced-motion:reduce){[data-plot] circle{opacity:1!important}*,:after,:before{animation:none!important;transition-duration:.01ms!important}}.nav-link:hover{color:var(--ink)!important}.btn-theme:hover{border-color:var(--ink-2)!important}.btn-primary:hover{filter:brightness(1.08)}.btn-secondary:hover{border-color:var(--ink-2)!important}.card-hover:hover{background:var(--panel-2)!important}.row-hover:hover{background:var(--panel)!important}.footer-link:hover{color:var(--ink)!important}