@font-face{font-family:Bricolage Grotesque;font-style:normal;font-display:swap;font-weight:700;src:url(/_astro/bricolage-grotesque-latin-700-normal.gtcctNPv.woff2) format("woff2"),url(/_astro/bricolage-grotesque-latin-700-normal.DvJDmrLu.woff) format("woff")}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/inter-latin-400-normal.C38fXH4l.woff2) format("woff2"),url(/_astro/inter-latin-400-normal.CyCys3Eg.woff) format("woff")}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:500;src:url(/_astro/inter-latin-500-normal.Cerq10X2.woff2) format("woff2"),url(/_astro/inter-latin-500-normal.BL9OpVg8.woff) format("woff")}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:600;src:url(/_astro/inter-latin-600-normal.LgqL8muc.woff2) format("woff2"),url(/_astro/inter-latin-600-normal.CiBQ2DWP.woff) format("woff")}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/jetbrains-mono-latin-400-normal.V6pRDFza.woff2) format("woff2"),url(/_astro/jetbrains-mono-latin-400-normal.6-qcROiO.woff) format("woff")}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/_astro/jetbrains-mono-latin-500-normal.BWZEU5yA.woff2) format("woff2"),url(/_astro/jetbrains-mono-latin-500-normal.CJOVTJB7.woff) format("woff")}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:600;src:url(/_astro/jetbrains-mono-latin-600-normal.C8RAYTDA.woff2) format("woff2"),url(/_astro/jetbrains-mono-latin-600-normal.BfsvjouI.woff) format("woff")}:root{--bg:#e8edf4;--ink:#0b1b33;--muted:#46546c;--faint:#5d6a80;--accent:#1d4a8c;--line:rgba(11,27,51,.12);--glass:rgba(255,255,255,.52);--glass-strong:rgba(255,255,255,.72);--glass-solid:#f7f9fc;--glass-edge:rgba(255,255,255,.75);--glass-hi:rgba(255,255,255,.95);--glass-lo:rgba(11,27,51,.08);--shadow:0 1px 2px rgba(11,27,51,.06),0 12px 32px -14px rgba(11,27,51,.25);--spec:rgba(255,255,255,.7);--glow1:#c4d2e6;--glow2:#d6dfeb;--route:#9fb1ca;--chip:rgba(11,27,51,.06);--btn:#0b1b33;--on-btn:#f2f5fa;--ok:#1e6b4a;--ok-bg:rgba(30,107,74,.12);--warn:#8a5a12;--warn-bg:rgba(138,90,18,.12);--focus:#1d4a8c;color-scheme:light}:root[data-theme=dark]{--bg:#07111f;--ink:#e8edf5;--muted:#a1adc1;--faint:#8e9bb1;--accent:#8fb3e6;--line:rgba(200,215,240,.12);--glass:rgba(18,38,68,.42);--glass-strong:rgba(18,38,68,.7);--glass-solid:#0e1f38;--glass-edge:rgba(200,220,255,.14);--glass-hi:rgba(220,232,255,.16);--glass-lo:rgba(0,0,0,.4);--shadow:0 1px 2px rgba(0,0,0,.3),0 18px 40px -18px rgba(0,0,0,.7);--spec:rgba(170,200,245,.14);--glow1:#14325e;--glow2:#0f2a4f;--route:#24406b;--chip:rgba(200,220,255,.08);--btn:#e8edf5;--on-btn:#07111f;--ok:#7fcfa6;--ok-bg:rgba(127,207,166,.12);--warn:#e2b56d;--warn-bg:rgba(226,181,109,.12);--focus:#8fb3e6;color-scheme:dark}*,*:before,*:after{box-sizing:border-box}html{background:var(--bg);-webkit-font-smoothing:antialiased;scroll-behavior:smooth;scroll-padding-top:76px}body{margin:0;color:var(--ink);font:400 16px/1.65 Inter,system-ui,sans-serif;overflow-x:hidden}h1,h2,h3,h4,p,ul,ol,dl,dd,figure{margin:0}ul,ol{padding:0;list-style:none}a{color:inherit}img{max-width:100%;height:auto;display:block}button{font:inherit;color:inherit;background:none;border:0;cursor:pointer;padding:0}:focus-visible{outline:2px solid var(--focus);outline-offset:3px;border-radius:6px}::selection{background:var(--accent);color:var(--bg)}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.skip{position:absolute;left:12px;top:-60px;z-index:100;padding:.6rem 1rem;border-radius:10px;background:var(--btn);color:var(--on-btn);text-decoration:none;font-size:14px}.skip:focus{top:12px}h1{font-family:Bricolage Grotesque,Inter,sans-serif;font-weight:700;letter-spacing:-.035em;line-height:1.02;font-size:clamp(2.4rem,7.2vw,4.6rem)}h2,h3,h4,.mono{font-family:JetBrains Mono,ui-monospace,monospace}h2{font-weight:600;letter-spacing:-.03em;line-height:1.15;font-size:clamp(1.65rem,3.6vw,2.5rem)}h3{font-weight:600;letter-spacing:-.02em;line-height:1.3;font-size:1.1rem}h4{font-weight:500;font-size:.8rem;letter-spacing:.02em;color:var(--faint);text-transform:uppercase}.wrap{max-width:1140px;margin-inline:auto;padding-inline:20px}@media(min-width:768px){.wrap{padding-inline:40px}}.section{padding-block:72px}@media(min-width:1024px){.section{padding-block:96px}}.muted{color:var(--muted)}.eyebrow{font:500 13px/1 JetBrains Mono,monospace;color:var(--faint);display:flex;align-items:center;gap:.6rem;margin-bottom:1rem}.eyebrow:before{content:"";width:18px;height:1px;background:currentColor}.lede{color:var(--muted);font-size:1.0625rem;max-width:62ch;margin-top:1rem}.chip{display:inline-flex;align-items:center;gap:.4rem;font:500 12.5px/1 JetBrains Mono,monospace;padding:.45rem .65rem;border-radius:8px;background:var(--chip);color:var(--ink);white-space:nowrap}.chips{display:flex;flex-wrap:wrap;gap:.45rem}.bg{position:fixed;inset:0;z-index:-1;pointer-events:none;overflow:hidden;background:var(--bg)}.bg .glow{position:absolute;border-radius:50%;filter:blur(40px)}.bg .g1{width:56vmax;height:56vmax;left:-14vmax;top:-22vmax;background:radial-gradient(circle,var(--glow1),transparent 62%)}.bg .g2{width:48vmax;height:48vmax;right:-16vmax;bottom:-20vmax;background:radial-gradient(circle,var(--glow2),transparent 62%)}.bg svg{position:absolute;inset:0;width:100%;height:100%}.bg .rt{fill:none;stroke:var(--route);stroke-width:1.2;stroke-dasharray:2 7;stroke-linecap:round;opacity:.9}.bg .rt-dot{fill:var(--route)}.bg .grain{position:absolute;inset:0;opacity:.05;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}.glass{position:relative;isolation:isolate;background:var(--glass);border-radius:20px;-webkit-backdrop-filter:blur(22px) saturate(165%);backdrop-filter:blur(22px) saturate(165%);box-shadow:inset 0 1px 0 var(--glass-hi),inset 0 -1px 0 var(--glass-lo),var(--shadow)}.glass:before{content:"";position:absolute;inset:0;border-radius:inherit;padding:1px;pointer-events:none;z-index:1;background:linear-gradient(160deg,var(--glass-edge),transparent 38%,transparent 62%,var(--glass-edge));-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude}.glass:after{content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;z-index:-1;opacity:var(--spec-o,0);transition:opacity .4s;background:radial-gradient(360px circle at var(--mx,50%) var(--my,0%),var(--spec),transparent 60%)}.glass:hover{--spec-o:1}.glass .glass{-webkit-backdrop-filter:none;backdrop-filter:none}@media(max-width:767px){.glass{-webkit-backdrop-filter:blur(14px) saturate(150%);backdrop-filter:blur(14px) saturate(150%)}}@supports not ((backdrop-filter:blur(1px)) or (-webkit-backdrop-filter:blur(1px))){.glass{background:var(--glass-solid)}}.btn{display:inline-flex;align-items:center;gap:.5rem;min-height:46px;padding:0 1.15rem;border-radius:12px;text-decoration:none;font:600 14px/1 JetBrains Mono,monospace;transition:transform .2s,background .2s}.btn-solid{background:var(--btn);color:var(--on-btn);box-shadow:inset 0 1px #ffffff2e,var(--shadow)}.btn-solid:hover,.btn-glass:hover{transform:translateY(-1px)}.btn svg{width:16px;height:16px}.hdr{position:sticky;top:0;z-index:50;padding-top:12px}.hdr .bar{display:flex;align-items:center;justify-content:space-between;gap:.75rem;height:58px;padding:0 10px 0 18px;border-radius:16px}.logo{font:700 20px/1 Bricolage Grotesque,sans-serif;letter-spacing:-.03em;text-decoration:none;min-height:44px;display:inline-flex;align-items:center}.nav{display:none;gap:.25rem}.nav a{font:500 13px/1 JetBrains Mono,monospace;color:var(--muted);text-decoration:none;padding:.75rem .7rem;border-radius:10px;transition:color .2s,background .2s}.nav a:hover,.nav a[aria-current=true]{color:var(--ink);background:var(--chip)}@media(min-width:960px){.nav{display:flex}}.hdr-actions{display:flex;align-items:center;gap:.4rem}.hdr .btn{min-height:40px;padding:0 .9rem;font-size:12.5px}.prog{position:absolute;left:16px;right:16px;bottom:0;height:2px;border-radius:2px;background:var(--accent);transform:scaleX(var(--p,0));transform-origin:left;opacity:.7}.theme{min-width:60px;min-height:44px;display:inline-flex;align-items:center;justify-content:center;border-radius:999px}.sw{position:relative;width:58px;height:32px;border-radius:999px;display:flex;align-items:center;justify-content:space-between;padding:0 8px;color:var(--faint)}.sw svg{width:14px;height:14px;position:relative;z-index:2;transition:color .3s}.sw .knob{position:absolute;z-index:1;top:3px;left:3px;width:26px;height:26px;border-radius:50%;background:var(--btn);box-shadow:0 2px 8px #00000047,inset 0 1px #ffffff4d;transition:transform .45s cubic-bezier(.34,1.45,.5,1)}.theme[aria-checked=true] .knob{transform:translate(26px)}.theme[aria-checked=false] .sun,.theme[aria-checked=true] .moon{color:var(--on-btn)}.menu-btn{display:inline-flex;min-width:44px;min-height:44px;align-items:center;justify-content:center;border-radius:12px}.menu-btn svg{width:20px;height:20px}@media(min-width:960px){.menu-btn{display:none}}.sheet{margin-top:8px;padding:8px;border-radius:16px;display:grid}.sheet[hidden]{display:none}.sheet a{display:flex;align-items:center;min-height:48px;padding:0 14px;border-radius:10px;text-decoration:none;font:500 15px/1 JetBrains Mono,monospace}.sheet a:hover{background:var(--chip)}@media(min-width:960px){.sheet{display:none!important}}.hide-sm{display:none}@media(min-width:520px){.hide-sm{display:inline-flex}}.hero{padding-block:56px 32px;display:grid;gap:48px;align-items:center}@media(min-width:900px){.hero{grid-template-columns:1.35fr 1fr;padding-block:96px 48px}}.hero h1 .soft{display:block;color:var(--muted);font-size:.62em;letter-spacing:-.03em;line-height:1.08;margin-top:.35em}.hero .meta{display:flex;flex-wrap:wrap;gap:.45rem;margin-bottom:1.75rem}.hero .lede{font-size:1.125rem;margin-top:1.5rem}.hero .ctas{display:flex;flex-wrap:wrap;gap:.75rem;margin-top:2rem}.hero-side{display:grid;gap:14px;justify-items:center;width:100%;max-width:420px;justify-self:center}.portrait{width:min(300px,76vw);padding:14px;border-radius:28px}.portrait img{border-radius:50%;aspect-ratio:1;object-fit:cover;width:100%;box-shadow:0 0 0 1px var(--line),0 8px 24px -12px #0b1b3359}.portrait figcaption{display:flex;justify-content:space-between;gap:.5rem;white-space:nowrap;padding:12px 6px 2px;font:500 12px/1.4 JetBrains Mono,monospace;color:var(--faint)}.dot-live{display:inline-flex;align-items:center;gap:.4rem}.dot-live:before{content:"";width:7px;height:7px;border-radius:50%;background:var(--ok);box-shadow:0 0 0 3px var(--ok-bg)}.term{width:100%;border-radius:16px;overflow:hidden;text-align:left}.term-bar{display:flex;align-items:center;gap:12px;padding:10px 14px;border-bottom:1px solid var(--line);font:500 11.5px/1 JetBrains Mono,monospace;color:var(--faint)}.lights{display:flex;gap:6px}.lights i{width:9px;height:9px;border-radius:50%;background:var(--line)}.term-body{margin:0;padding:14px 16px 16px;font:500 12.5px/1.75 JetBrains Mono,monospace;white-space:pre-wrap;word-break:break-word;color:var(--ink)}.term-body .ln{display:block}.term-body .ps{color:var(--accent)}.term-body .out{color:var(--muted)}.term-body .out.st-ok{color:var(--ok);background:none}.term-body .out.st-warn{color:var(--warn);background:none}.term-body .ln.hidden{display:none}.rail{position:relative;margin-top:48px}.rail-line{position:absolute;left:24px;right:24px;top:27px;height:2px;display:none}.rail-line span{position:absolute;inset:0;border-radius:2px;background:var(--line)}.rail-line i{position:absolute;inset:0;border-radius:2px;background:var(--accent);transform:scaleX(var(--fill,0));transform-origin:left;transition:transform .6s cubic-bezier(.2,.8,.2,1)}.tabs{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;position:relative}@media(min-width:640px){.tabs{grid-template-columns:repeat(3,1fr)}}@media(min-width:1024px){.tabs{grid-template-columns:repeat(6,1fr);gap:12px}.rail-line{display:block}}.tab{display:flex;flex-direction:column;align-items:flex-start;gap:.35rem;padding:14px 16px;border-radius:16px;text-align:left;min-height:44px;transition:transform .25s}.tab .n{display:grid;place-items:center;width:26px;height:26px;border-radius:50%;font:600 11px/1 JetBrains Mono,monospace;background:var(--glass-solid);color:var(--faint);box-shadow:inset 0 0 0 1px var(--line);transition:background .3s,color .3s}.tab .k{font:600 14.5px/1.2 JetBrains Mono,monospace}.tab .s{font-size:12.5px;line-height:1.35;color:var(--faint)}.tab[aria-selected=true]{box-shadow:inset 0 0 0 1.5px var(--accent),inset 0 1px 0 var(--glass-hi),var(--shadow)}.tab[aria-selected=true] .n,.tab.done .n{background:var(--accent);color:var(--bg);box-shadow:none}.tab:hover{transform:translateY(-2px)}.panel{margin-top:14px;padding:28px;border-radius:20px}@media(min-width:768px){.panel{padding:36px 40px}}.panel ul{display:grid;gap:0;margin-top:.75rem}.panel li{padding:14px 0 14px 26px;border-bottom:1px solid var(--line);position:relative}.panel li:last-child{border-bottom:0}.panel li:before{content:"→";position:absolute;left:0;color:var(--accent);font-family:JetBrains Mono,monospace}.panel[data-anim] li{animation:rise .45s cubic-bezier(.2,.8,.2,1) both;animation-delay:calc(var(--i)*55ms)}.value{display:grid;gap:12px;margin-top:56px}@media(min-width:768px){.value{grid-template-columns:repeat(3,1fr)}}.value article{padding:24px;border-radius:18px}.value p{color:var(--muted);font-size:15px;margin-top:.5rem}.case{display:grid;border-radius:24px;overflow:hidden;margin-top:40px}@media(min-width:900px){.case{grid-template-columns:1.1fr 1fr}}.case>div{padding:30px}@media(min-width:768px){.case>div{padding:44px}}.case .side{border-top:1px solid var(--line)}@media(min-width:900px){.case .side{border-top:0;border-left:1px solid var(--line)}}.case h3{font-size:clamp(1.8rem,4vw,2.6rem);letter-spacing:-.04em;margin-top:1rem}.status-pill{display:inline-flex;align-items:center;gap:.45rem;font:600 12px/1 JetBrains Mono,monospace;padding:.45rem .7rem;border-radius:999px}.status-pill:before{content:"";width:7px;height:7px;border-radius:50%;background:currentColor}.st-warn{color:var(--warn);background:var(--warn-bg)}.st-ok{color:var(--ok);background:var(--ok-bg)}.st-muted{color:var(--muted);background:var(--chip)}.route{position:relative;padding-left:30px}.route svg{position:absolute;left:0;top:6px;width:14px;height:calc(100% - 12px);overflow:visible}.route .base{stroke:var(--line);stroke-width:2;stroke-dasharray:3 5}.route .draw{stroke:var(--accent);stroke-width:2;stroke-dasharray:1;stroke-dashoffset:var(--draw,1);transition:stroke-dashoffset 1.4s cubic-bezier(.3,.7,.2,1)}.route h4{margin:0 0 .4rem}.route ul{margin-bottom:1.5rem}.route ul:last-child{margin-bottom:0}.route li{position:relative;padding:.4rem 0;font:500 14.5px/1.4 JetBrains Mono,monospace}.route li:before{content:"";position:absolute;left:-28px;top:50%;width:10px;height:10px;margin-top:-5px;border-radius:50%;background:var(--accent);box-shadow:0 0 0 4px var(--bg)}.route .dev li{color:var(--muted)}.route .dev li:before{background:var(--bg);box-shadow:inset 0 0 0 2px var(--accent),0 0 0 4px var(--bg)}.note{font:500 12.5px/1.5 JetBrains Mono,monospace;color:var(--faint);margin-top:1.75rem}.arch{margin-top:14px;padding:24px;border-radius:24px}@media(min-width:768px){.arch{padding:32px 36px}}.arch-head{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:.5rem;margin-bottom:18px}.arch-note{font-size:12px;color:var(--faint)}.arch-svg{width:100%;height:auto;display:block;overflow:visible}.arch-h{display:none}@media(min-width:768px){.arch-h{display:block}.arch-v{display:none}}.arch-v{max-width:420px;margin-inline:auto}.arch text{font-family:JetBrains Mono,monospace;font-size:var(--fs);font-weight:500;fill:var(--ink);text-anchor:middle;dominant-baseline:central}.arch .app text.ttl{font-weight:600}.arch .app text.sub{fill:var(--faint);font-size:calc(var(--fs) * .88)}.arch .actor rect,.arch .data rect{fill:var(--glass-solid);stroke:var(--line);stroke-width:1.2}.arch .app rect{fill:color-mix(in srgb,var(--accent) 7%,transparent);stroke:color-mix(in srgb,var(--accent) 45%,transparent);stroke-width:1.2}.arch .pill rect{fill:var(--glass-solid);stroke:var(--line)}.arch .test rect{fill:none;stroke:var(--faint);stroke-dasharray:4 4}.arch .test text{fill:var(--muted)}.arch .edge{fill:none;stroke:var(--accent);stroke-width:1.6;stroke-dasharray:1;stroke-dashoffset:0;opacity:.75;transition:stroke-dashoffset 1.1s cubic-bezier(.3,.7,.2,1)}.arch .edge.dash{stroke-dasharray:3 4;stroke-dashoffset:0;stroke:var(--faint)}.js .arch:not(.in) .edge:not(.dash){stroke-dashoffset:1}.arch .packets circle{fill:var(--accent);opacity:0;transition:opacity .4s 1s}.arch.in .packets circle{opacity:1}.client{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px;padding:24px 28px;border-radius:20px;margin-top:14px}.bots{display:grid;gap:14px;margin-top:44px}@media(min-width:900px){.bots{grid-template-columns:repeat(2,1fr)}}.bot{padding:26px;border-radius:20px;display:flex;flex-direction:column}.bot .idx{font:500 12px/1 JetBrains Mono,monospace;color:var(--faint)}.bot h3{margin-top:.6rem}.bot .what{color:var(--muted);font-size:15px;margin-top:.5rem}.flow-ttl{margin-top:1.4rem;margin-bottom:.6rem}.flow{position:relative;padding-left:26px;--dur:calc(var(--n) * .75s + 1.2s)}.flow:before{content:"";position:absolute;left:5px;top:13px;bottom:13px;width:2px;border-radius:2px;background:var(--line)}.flow li{position:relative;padding:.38rem 0;font:500 12.5px/1.4 JetBrains Mono,monospace}.flow li:before{content:"";position:absolute;left:-26px;top:50%;width:12px;height:12px;margin-top:-6px;border-radius:50%;background:var(--glass-solid);box-shadow:inset 0 0 0 2px var(--accent)}.flow .pkt{position:absolute;left:2px;top:9px;width:8px;height:8px;border-radius:50%;background:var(--accent);box-shadow:0 0 0 4px color-mix(in srgb,var(--accent) 22%,transparent),0 0 14px var(--accent);opacity:0;z-index:1}.flow.run .pkt{animation:pkt var(--dur) linear infinite}.flow.run li:before{animation:node var(--dur) linear infinite;animation-delay:calc(var(--dur) * (.1 + .8 * var(--i) / (var(--n) - 1)))}@keyframes pkt{0%{opacity:0;transform:translateY(0)}10%{opacity:1;transform:translateY(0)}90%{opacity:1;transform:translateY(var(--travel,100px))}97%,to{opacity:0;transform:translateY(var(--travel,100px))}}@keyframes node{0%{background:var(--accent)}14%{background:var(--accent)}24%,to{background:var(--glass-solid)}}.bot details{margin-top:1.25rem;border-top:1px solid var(--line);padding-top:.5rem}.bot summary{cursor:pointer;list-style:none;display:flex;align-items:center;justify-content:space-between;min-height:44px;font:500 13px/1 JetBrains Mono,monospace;color:var(--muted)}.bot summary::-webkit-details-marker{display:none}.bot summary:after{content:"+";font-size:16px;transition:transform .25s}.bot details[open] summary:after{transform:rotate(45deg)}.bot dl{display:grid;gap:.9rem;padding-bottom:.25rem}.bot dt{font:600 12.5px/1 JetBrains Mono,monospace}.bot dd{color:var(--muted);font-size:14.5px;margin-top:.35rem}.console{margin-top:40px;border-radius:20px;overflow:hidden}.console-bar{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;padding:14px 20px;border-bottom:1px solid var(--line);font:500 12.5px/1.4 JetBrains Mono,monospace;color:var(--faint)}.console-bar .lights{display:flex;gap:6px}.console-bar .lights i{width:9px;height:9px;border-radius:50%;background:var(--line)}.console-bar a{color:var(--accent)}.log{padding:8px 20px 20px;font-family:JetBrains Mono,monospace;font-size:13.5px}@media(min-width:768px){.log{padding:12px 28px 28px}}.entry{padding:18px 0;border-bottom:1px dashed var(--line)}.entry:last-of-type{border-bottom:0}.entry .head{display:flex;flex-wrap:wrap;align-items:center;gap:.6rem .8rem}.entry .prompt{color:var(--accent)}.entry .name{font-weight:600;font-size:15px}.entry .sum{color:var(--muted);margin-top:.6rem;font-family:Inter,sans-serif;font-size:14.5px}.entry .kv{display:grid;gap:.35rem;margin-top:.85rem}@media(min-width:640px){.entry .kv{grid-template-columns:200px 1fr}}.entry .kv dt{color:var(--faint)}.entry .kv dd{color:var(--ink)}.entry .fresh.stale{color:var(--warn)}.cursor{display:inline-block;width:8px;height:15px;background:var(--accent);vertical-align:-2px;margin-left:4px;animation:blink 1.1s steps(1) infinite}.js .log[data-anim] .entry{opacity:0;transform:translateY(6px)}.js .log[data-anim].in .entry{animation:rise .5s cubic-bezier(.2,.8,.2,1) both;animation-delay:calc(var(--i)*.18s + .12s)}.cv{display:grid;gap:48px}@media(min-width:960px){.cv{grid-template-columns:1fr 1.9fr}}.cv-side{align-self:start}@media(min-width:960px){.cv-side{position:sticky;top:100px}}.cv-side .block{margin-top:1.75rem}.cv-side p,.cv-side li{color:var(--muted);font-size:14.5px}.cv-side li{padding:.2rem 0}.timeline{position:relative;display:grid;gap:12px;padding-left:26px}.timeline:before{content:"";position:absolute;left:5px;top:10px;bottom:10px;width:2px;background:var(--line);border-radius:2px}.job{padding:22px 24px;border-radius:18px;position:relative}.job::marker{content:none}.job .pin{position:absolute;left:-27px;top:28px;width:12px;height:12px;border-radius:50%;background:var(--bg);box-shadow:inset 0 0 0 2px var(--accent)}.job:first-child .pin{background:var(--accent)}.job .top{display:flex;flex-wrap:wrap;justify-content:space-between;gap:.25rem 1rem}.job .co{font:600 16px/1.3 JetBrains Mono,monospace}.job .when{font:500 12.5px/1.5 JetBrains Mono,monospace;color:var(--faint)}.job .role{color:var(--accent);font-weight:500;font-size:14.5px;margin-top:.2rem}.job .desc{color:var(--muted);font-size:14.5px;margin-top:.6rem}.contact{text-align:center;padding:56px 24px;border-radius:28px}@media(min-width:768px){.contact{padding:80px 40px}}.contact .ctas{display:flex;flex-wrap:wrap;justify-content:center;gap:.75rem;margin-top:2rem}.contact .lede{margin-inline:auto}footer{padding:40px 0 56px;text-align:center;font:500 12.5px/1.5 JetBrains Mono,monospace;color:var(--faint)}@keyframes rise{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}@keyframes blink{50%{opacity:0}}.js [data-reveal]{opacity:0;transform:translateY(14px);transition:opacity .6s cubic-bezier(.2,.8,.2,1),transform .6s cubic-bezier(.2,.8,.2,1);transition-delay:calc(var(--d,0)*70ms)}.js [data-reveal].in{opacity:1;transform:none}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}.js [data-reveal],.js .log[data-anim] .entry{opacity:1;transform:none}.route .draw{stroke-dashoffset:0}.arch .edge{stroke-dashoffset:0!important}.arch .packets,.flow .pkt{display:none}}
