:root{--bg:#070b12;--bg-elev:#0d1420;--bg-elev-2:#131c2b;--grid-line:#35e6d414;--border:#1e2a3d;--text:#dbe4f0;--text-dim:#8fa2ba;--text-faint:#5c6f88;--cyan:#35e6d4;--cyan-bright:#6ffff0;--cyan-dim:#1c8f86;--blue:#4d9fff;--anomaly:#ff4d5e;--anomaly-dim:#b3313d;--glow-cyan:0 0 20px #35e6d459;--glow-anomaly:0 0 18px #ff4d5e66;--font-mono:"Ubuntu Mono", ui-monospace, "Cascadia Code", "JetBrains Mono", monospace;--font-sans:"Inter", system-ui, -apple-system, "Segoe UI", sans-serif;--step--1:clamp(.83rem, .8rem + .15vw, .92rem);--step-0:clamp(1rem, .95rem + .25vw, 1.12rem);--step-1:clamp(1.3rem, 1.2rem + .5vw, 1.6rem);--step-2:clamp(1.7rem, 1.5rem + 1vw, 2.4rem);--step-3:clamp(2.2rem, 1.8rem + 2.2vw, 3.6rem);--space-xs:.5rem;--space-s:.85rem;--space-m:1.4rem;--space-l:2.4rem;--space-xl:4rem;--radius:10px;--radius-s:6px;--maxw:68rem;--maxw-prose:44rem}*,:before,:after{box-sizing:border-box}*{margin:0}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition-duration:.001ms!important;animation-duration:.001ms!important;animation-iteration-count:1!important}}body{font-family:var(--font-sans);font-size:var(--step-0);color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased;min-height:100vh;line-height:1.6}html.intro-locked,html.intro-locked body{height:100%;overflow:hidden}h1,h2,h3{letter-spacing:-.01em;font-weight:650;line-height:1.15}h1{font-size:var(--step-3)}h2{font-size:var(--step-2)}h3{font-size:var(--step-1)}a{color:var(--cyan);text-decoration:none}a:hover{color:var(--cyan-bright)}a:focus-visible,button:focus-visible{outline:2px solid var(--cyan);outline-offset:2px;border-radius:var(--radius-s)}img,svg,canvas{max-width:100%;height:auto;display:block}.container{width:100%;max-width:var(--maxw);padding-inline:var(--space-m);margin-inline:auto}.prose{max-width:var(--maxw-prose)}.prose p,.prose ul,.prose ol{margin-block:var(--space-s)}.prose h2,.prose h3{margin-top:var(--space-l)}.mono{font-family:var(--font-mono)}.eyebrow{font-family:var(--font-mono);font-size:var(--step--1);letter-spacing:.18em;text-transform:uppercase;color:var(--cyan-dim)}.skip-link{z-index:100;background:var(--cyan);color:#04121a;border-radius:0 0 var(--radius-s) 0;padding:.6rem 1rem;position:absolute;top:0;left:-999px}.skip-link:focus{left:0}.btn{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.12em;font-size:var(--step--1);border:1px solid var(--cyan-dim);border-radius:var(--radius-s);color:var(--cyan);cursor:pointer;background:0 0;padding:.7rem 1.2rem;transition:background .2s,box-shadow .2s,color .2s;display:inline-block}.btn:hover{box-shadow:var(--glow-cyan);color:var(--cyan-bright);background:#35e6d414}.card{background:var(--bg-elev);border:1px solid var(--border);border-radius:var(--radius);padding:var(--space-m);transition:border-color .2s,transform .2s;display:block}.card:hover{border-color:var(--cyan-dim);transform:translateY(-2px)}.tag{font-family:var(--font-mono);font-size:var(--step--1);color:var(--text-dim);border:1px solid var(--border);border-radius:999px;margin:.15rem .15rem 0 0;padding:.1rem .6rem;display:inline-block}pre[class*=language-],code[class*=language-]{font-family:var(--font-mono);font-size:var(--step--1);color:var(--text);tab-size:2;hyphens:none;white-space:pre;background:0 0;line-height:1.6}pre[class*=language-]{border:1px solid var(--border);border-radius:var(--radius);padding:var(--space-s) var(--space-m);margin-block:var(--space-s);background:#060d14;overflow-x:auto}:not(pre)>code[class*=language-]{border-radius:var(--radius-s);background:var(--bg-elev-2);color:var(--cyan);padding:.1rem .35rem}.token.comment,.token.prolog,.token.doctype,.token.cdata{color:var(--text-faint);font-style:italic}.token.punctuation{color:var(--text-dim)}.token.keyword,.token.important,.token.atrule{color:var(--anomaly)}.token.string,.token.attr-value,.token.char,.token.inserted,.token.regex{color:var(--cyan)}.token.function,.token.class-name,.token.selector{color:var(--blue)}.token.number,.token.boolean,.token.constant,.token.symbol,.token.tag,.token.property{color:var(--cyan-bright)}.token.operator,.token.entity,.token.url,.token.variable,.token.attr-name{color:var(--text)}.token.deleted{color:var(--anomaly-dim)}.site-header[data-astro-cid-wpvy4v7s]{z-index:20;backdrop-filter:blur(10px);border-bottom:1px solid var(--border);background:#070b12b8;position:sticky;top:0}.bar[data-astro-cid-wpvy4v7s]{align-items:center;gap:var(--space-m);min-height:3.4rem;display:flex}.brand[data-astro-cid-wpvy4v7s]{letter-spacing:.05em;color:var(--text);font-size:1.15rem;font-weight:700}.brand-dot[data-astro-cid-wpvy4v7s]{color:var(--cyan)}nav[data-astro-cid-wpvy4v7s]{margin-inline-start:auto}nav[data-astro-cid-wpvy4v7s] ul[data-astro-cid-wpvy4v7s]{gap:var(--space-m);padding:0;list-style:none;display:flex}nav[data-astro-cid-wpvy4v7s] a[data-astro-cid-wpvy4v7s]{font-family:var(--font-mono);font-size:var(--step--1);letter-spacing:.08em;text-transform:uppercase;color:var(--text-dim)}nav[data-astro-cid-wpvy4v7s] a[data-astro-cid-wpvy4v7s]:hover,nav[data-astro-cid-wpvy4v7s] a[data-astro-cid-wpvy4v7s][aria-current=page]{color:var(--cyan)}.lang[data-astro-cid-wpvy4v7s]{font-size:var(--step--1);color:var(--text-faint);border:1px solid var(--border);border-radius:var(--radius-s);padding:.2rem .5rem}.lang[data-astro-cid-wpvy4v7s]:hover{color:var(--cyan);border-color:var(--cyan-dim)}.site-footer[data-astro-cid-jo6i4kqk]{border-top:1px solid var(--border);margin-top:var(--space-xl);padding-block:var(--space-l);color:var(--text-faint)}.inner[data-astro-cid-jo6i4kqk]{align-items:center;gap:var(--space-m);flex-wrap:wrap;display:flex}.name[data-astro-cid-jo6i4kqk]{color:var(--text-dim)}.socials[data-astro-cid-jo6i4kqk]{gap:var(--space-m);margin-inline-start:auto;padding:0;list-style:none;display:flex}.socials[data-astro-cid-jo6i4kqk] a[data-astro-cid-jo6i4kqk]{font-family:var(--font-mono);font-size:var(--step--1);color:var(--text-dim)}.socials[data-astro-cid-jo6i4kqk] a[data-astro-cid-jo6i4kqk]:hover{color:var(--cyan)}.copy[data-astro-cid-jo6i4kqk]{font-family:var(--font-mono);font-size:var(--step--1);width:100%}
