:root{--sans: "Hanken Grotesk", system-ui, sans-serif;--display: "Space Grotesk", system-ui, sans-serif;--mono: "JetBrains Mono", ui-monospace, monospace}html[data-theme=light]{--bg: #faf9f7;--bg-2: #f1efea;--panel: #ffffff;--ink: #18181b;--ink-soft: #5b5b60;--ink-faint: #9a9a9f;--line: #e4e1da;--line-2: #ece9e2;--accent: oklch(.55 .16 268);--accent-soft: oklch(.55 .16 268 / .1);--term-bg: #0e1116;--term-ink: #d6dee8;--term-soft: #8893a3;--term-line: #1c2530;--term-accent: oklch(.82 .18 155);--shadow: 0 24px 60px rgba(20,20,30,.12)}html[data-theme=dark]{--bg: #07090c;--bg-2: #0d1117;--panel: #0f141b;--ink: #d6dee8;--ink-soft: #8893a3;--ink-faint: #56606e;--line: #1c2530;--line-2: #161d26;--accent: oklch(.82 .18 155);--accent-soft: oklch(.82 .18 155 / .12);--term-bg: #0d1117;--term-ink: #d6dee8;--term-soft: #8893a3;--term-line: #1c2530;--term-accent: oklch(.82 .18 155);--shadow: 0 30px 80px rgba(0,0,0,.5)}*{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{background:var(--bg);color:var(--ink);font-family:var(--sans);line-height:1.55;-webkit-font-smoothing:antialiased;overflow-x:hidden;transition:background-color .4s,color .4s}#bg{position:fixed;inset:0;width:100%;height:100%;z-index:0;pointer-events:none}@media(prefers-reduced-motion:reduce){#bg{display:none}}html[data-theme=dark] body{background-image:radial-gradient(1200px 600px at 80% -10%,oklch(.82 .18 155 / .05),transparent 60%)}html[data-theme=dark] body:before{content:"";position:fixed;inset:0;pointer-events:none;z-index:1;background:linear-gradient(180deg,transparent 50%,rgba(0,0,0,.16) 50%);background-size:100% 3px;opacity:.35;mix-blend-mode:overlay}::selection{background:var(--accent-soft)}a{color:inherit;text-decoration:none}.wrap{max-width:1080px;margin:0 auto;padding:0 32px;position:relative;z-index:2}.mono{font-family:var(--mono)}.accent{color:var(--accent)}.eyebrow{font-family:var(--mono);font-size:12px;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-faint);display:flex;align-items:center;gap:10px}.eyebrow:before{content:"";width:22px;height:1px;background:var(--accent);display:inline-block}nav{position:fixed;top:0;left:0;right:0;z-index:60;backdrop-filter:blur(10px);background:color-mix(in srgb,var(--bg) 80%,transparent);border-bottom:1px solid transparent;transition:border-color .3s,background .4s}nav.scrolled{border-bottom-color:var(--line)}nav .wrap{display:flex;align-items:center;justify-content:space-between;height:66px}.brand{font-family:var(--mono);font-weight:500;font-size:14px;display:flex;align-items:center;gap:9px}.brand .dot{width:9px;height:9px;border-radius:50%;background:var(--accent);box-shadow:0 0 0 0 var(--accent-soft);animation:pulse 2.4s infinite}@keyframes pulse{0%{box-shadow:0 0 0 0 var(--accent-soft)}70%{box-shadow:0 0 0 8px transparent}to{box-shadow:0 0 0 0 transparent}}.nav-right{display:flex;align-items:center;gap:26px}.nav-links{display:flex;gap:26px}.nav-links a{font-family:var(--mono);font-size:13px;color:var(--ink-soft);position:relative;transition:color .2s}.nav-links a:after{content:"";position:absolute;left:0;bottom:-4px;width:0;height:1px;background:var(--accent);transition:width .25s}.nav-links a:hover{color:var(--ink)}.nav-links a:hover:after{width:100%}.toggle{font-family:var(--mono);font-size:12px;color:var(--ink-soft);background:var(--panel);border:1px solid var(--line);border-radius:99px;padding:6px 12px 6px 10px;cursor:pointer;display:flex;align-items:center;gap:7px;transition:all .2s}.toggle:hover{color:var(--ink);border-color:var(--ink-faint)}.toggle .ic{width:13px;height:13px}@media(max-width:720px){.nav-links{display:none}}header{padding:168px 0 104px}.hero-grid{display:grid;grid-template-columns:1.35fr 1fr;gap:48px;align-items:center}@media(max-width:880px){.hero-grid{grid-template-columns:1fr;gap:38px}}h1{font-family:var(--display);font-size:clamp(40px,6.6vw,74px);line-height:1.03;letter-spacing:-.03em;font-weight:700;margin:22px 0 24px}h1 em{font-style:normal;color:var(--accent)}.lead{font-size:18.5px;color:var(--ink-soft);max-width:46ch}.cta-row{display:flex;gap:14px;margin-top:32px;flex-wrap:wrap}.btn{font-family:var(--mono);font-size:13px;padding:12px 20px;border:1px solid var(--ink);border-radius:3px;transition:all .2s;display:inline-flex;align-items:center;gap:8px}.btn.primary{background:var(--ink);color:var(--bg)}.btn.primary:hover{background:var(--accent);border-color:var(--accent);color:#fff;transform:translateY(-2px)}html[data-theme=dark] .btn.primary{background:transparent;color:var(--accent);border-color:var(--accent)}html[data-theme=dark] .btn.primary:hover{background:var(--accent);color:#04110a;box-shadow:0 0 24px #45e58f59}.btn.ghost:hover{background:var(--ink);color:var(--bg);transform:translateY(-2px)}html[data-theme=dark] .btn.ghost:hover{background:var(--panel);color:var(--ink);border-color:var(--ink-soft)}.term{border:1px solid var(--term-line);border-radius:9px;background:var(--term-bg);overflow:hidden;box-shadow:var(--shadow);font-family:var(--mono)}.term-bar{display:flex;align-items:center;gap:7px;padding:11px 14px;border-bottom:1px solid var(--term-line);background:#ffffff05}.term-bar .b{width:11px;height:11px;border-radius:50%}.term-bar .b:nth-child(1){background:#ff5f57}.term-bar .b:nth-child(2){background:#febc2e}.term-bar .b:nth-child(3){background:#28c840}.term-bar .ttl{margin-left:8px;font-size:11.5px;color:var(--term-soft)}.term-body{padding:20px 22px 24px;font-size:13px;color:var(--term-soft);line-height:1.85}.term-body .p{color:var(--term-accent)}.term-body .out{color:var(--term-ink)}.term-body .k{color:#2ccceb}.term-body .caret:after{content:"▋";color:var(--term-accent);animation:blink 1.1s steps(2) infinite}.term-body .caret.solid:after{animation:none;opacity:1}@keyframes blink{0%,50%{opacity:1}51%,to{opacity:0}}section{padding:84px 0;border-top:1px solid var(--line)}.sec-head{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:44px;gap:20px;flex-wrap:wrap}.sec-head h2{font-family:var(--display);font-size:clamp(26px,3.4vw,38px);letter-spacing:-.02em;font-weight:700;display:flex;align-items:baseline;gap:12px}.sec-head h2 .hash{color:var(--accent);font-family:var(--mono);font-size:.7em}.sec-head .count{font-family:var(--mono);font-size:13px;color:var(--ink-faint)}.proj{display:grid;grid-template-columns:52px 1fr auto;gap:26px;padding:28px 0;border-top:1px solid var(--line);align-items:start;transition:padding .3s,background .3s;border-radius:6px}.proj:first-child{border-top:none}.proj-num{font-family:var(--mono);font-size:13px;color:var(--ink-faint);padding-top:5px}.proj h3{font-family:var(--display);font-size:23px;letter-spacing:-.01em;margin-bottom:7px;transition:color .2s}.proj p{color:var(--ink-soft);max-width:56ch;font-size:15.5px}.proj .tags{display:flex;gap:8px;flex-wrap:wrap;margin-top:13px}.tag{font-family:var(--mono);font-size:11px;padding:4px 9px;background:var(--bg-2);border:1px solid transparent;border-radius:3px;color:var(--ink-soft);transition:border-color .2s}.proj .right{text-align:right;display:flex;flex-direction:column;align-items:flex-end;gap:10px;padding-top:2px}.proj .stat{font-family:var(--mono);font-size:12px;color:var(--accent)}.proj:hover{padding-left:14px;padding-right:8px;background:var(--bg-2)}.proj:hover h3{color:var(--accent)}.proj:hover .tag{border-color:var(--line)}@media(max-width:720px){.proj{grid-template-columns:1fr;gap:10px}.proj .right{flex-direction:row;align-items:center;gap:16px}.proj-num{padding-top:0}}.about-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:52px;align-items:start}@media(max-width:820px){.about-grid{grid-template-columns:1fr;gap:30px}}.about-grid .prose p{font-size:17px;color:var(--ink-soft);margin-bottom:17px}.about-grid .prose p strong{color:var(--ink);font-weight:600}.spec{font-family:var(--mono);font-size:13px;line-height:2;border:1px solid var(--line);border-radius:9px;background:var(--panel);padding:22px 24px}.spec .row{display:flex;gap:8px}.spec .k{color:var(--ink-faint);min-width:92px}.spec .v{color:var(--ink)}.spec .v.acc{color:var(--accent)}.bars{display:grid;grid-template-columns:1fr 1fr;gap:18px 48px}@media(max-width:720px){.bars{grid-template-columns:1fr}}.bar .top{display:flex;justify-content:space-between;font-family:var(--mono);font-size:13px;margin-bottom:8px}.bar .top .lvl{color:var(--ink-faint)}.bar .track{height:6px;background:var(--bg-2);border:1px solid var(--line);border-radius:99px;overflow:hidden}.bar .fill{height:100%;width:0;background:linear-gradient(90deg,color-mix(in srgb,var(--accent) 55%,transparent),var(--accent));border-radius:99px;transition:width 1.1s cubic-bezier(.2,.8,.2,1)}.bar.in .fill{width:var(--w)}.tl{border-left:1px solid var(--line);margin-left:6px}.ev{position:relative;padding:0 0 32px 30px}.ev:last-child{padding-bottom:4px}.ev:before{content:"";position:absolute;left:-7px;top:6px;width:9px;height:9px;border-radius:50%;background:var(--bg);border:2px solid var(--accent);transition:box-shadow .3s}.ev:hover:before{box-shadow:0 0 0 4px var(--accent-soft)}.ev .when{font-family:var(--mono);font-size:13px;color:var(--ink-faint)}.ev h3{font-family:var(--display);font-size:19px;font-weight:600;margin:4px 0 2px}.ev .org{font-family:var(--mono);font-size:13px;color:var(--accent);margin-bottom:9px}.ev p{font-size:15px;color:var(--ink-soft);max-width:62ch}.contact{text-align:center;padding:104px 0}.contact .eyebrow{justify-content:center}.contact h2{font-family:var(--display);font-size:clamp(32px,5.6vw,60px);letter-spacing:-.03em;margin:18px 0 30px;font-weight:700}.contact h2 a{border-bottom:2px solid var(--accent);transition:color .2s}.contact h2 a:hover{color:var(--accent)}.socials{display:flex;gap:26px;justify-content:center;font-family:var(--mono);font-size:14px;flex-wrap:wrap}.socials a{color:var(--ink-soft);transition:color .2s}.socials a:hover{color:var(--accent)}footer{border-top:1px solid var(--line);padding:28px 0}footer .wrap{display:flex;justify-content:space-between;font-family:var(--mono);font-size:12px;color:var(--ink-faint);flex-wrap:wrap;gap:10px}.reveal{opacity:0;transform:translateY(22px);transition:opacity .7s cubic-bezier(.2,.7,.2,1),transform .7s cubic-bezier(.2,.7,.2,1)}.reveal.in{opacity:1;transform:none}@media(prefers-reduced-motion:reduce){.reveal{opacity:1!important;transform:none!important}.bar .fill{transition:none}html{scroll-behavior:auto}body:before{display:none}}
