:root{--ink:#0a0b0d;--ink-soft:#121417;--paper:#f0f0eb;--white:#fafaf7;--muted:#94999f;--line:#0a0b0d29;--line-dark:#ffffff21;--acid:#d4ff37;--blue:#2b61ff;--focus:#2b61ff;--font-sans:"Helvetica Neue", "Inter", "Arial Nova", Arial, sans-serif;--font-mono:"SFMono-Regular", "Roboto Mono", "Courier New", monospace}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:88px}body{background:var(--paper);color:var(--ink);font-family:var(--font-sans);-webkit-font-smoothing:antialiased;cursor:default;margin:0;font-size:16px}a[href],button:not(:disabled),label,summary{cursor:pointer}button:disabled{cursor:not-allowed}a,button{color:inherit}a{text-decoration:none}button{font:inherit}:focus-visible{outline:3px solid var(--focus);outline-offset:3px;border-radius:2px}.skip-link{z-index:1200;background:var(--ink);color:var(--white);letter-spacing:.12em;text-transform:uppercase;border-radius:2px;padding:12px 18px;font-size:12px;position:fixed;top:12px;left:12px;transform:translateY(-200%)}.skip-link:focus-visible{transform:translateY(0)}.sr-only{clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}::selection{color:var(--ink);background:var(--acid)}.noise{z-index:1000;opacity:.025;pointer-events:none;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.7'/%3E%3C/svg%3E");position:fixed;inset:0}@keyframes fade-up{0%{opacity:0;transform:translateY(22px)}to{opacity:1;transform:translateY(0)}}@keyframes visual-in{0%{opacity:0;transform:translate(30px)scale(.97)}to{opacity:1;transform:translate(0)scale(1)}}@keyframes pulse{50%{box-shadow:0 0 0 8px #d4ff3700}}@keyframes pulse-blue{50%{box-shadow:0 0 0 7px #2b61ff00}}@keyframes blink{0%,60%,to{opacity:.25;transform:translateY(0)}30%{opacity:1;transform:translateY(-3px)}}@keyframes bubble-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes scan{0%{transform:translate(-100%)}to{transform:translate(350%)}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
