:root{--bg: #0a0a0c;--surface-1: #111114;--surface-2: #16171b;--border: rgba(255, 255, 255, .08);--border-strong: rgba(255, 255, 255, .13);--text: #f4f4f7;--text-dim: #b6b6c2;--text-faint: #81818d;--accent: #6e79e6;--accent-soft: #99a1ff;--accent-glow: rgba(110, 121, 230, .28);--cyan: #22d3ee;--amber: #fbbf24;--emerald: #34d399;--rose: #fb7185;--tag-machine-learning: #818cf8;--tag-llm: #22d3ee;--tag-research: #fbbf24;--tag-evaluation: #34d399;--tag-full-stack: #fb7185;--tag-data: #fb923c;--tag-systems: #c084fc;--tag-testing: #38bdf8;--font-sans: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", system-ui, sans-serif;--font-mono: "JetBrains Mono", "SF Mono", ui-monospace, monospace;--maxw: 1600px;--gutter: clamp(20px, 3.5vw, 56px);--radius: 12px;--shadow: 0 1px 2px rgba(0, 0, 0, .4), 0 8px 24px rgba(0, 0, 0, .28);--shadow-lg: 0 2px 4px rgba(0, 0, 0, .5), 0 16px 48px rgba(0, 0, 0, .4)}*{margin:0;padding:0;box-sizing:border-box}html{scroll-behavior:smooth}body{background:var(--bg);color:var(--text);font-family:var(--font-sans);line-height:1.55;-webkit-font-smoothing:antialiased;letter-spacing:-.01em;overflow-x:hidden}.glow{position:fixed;border-radius:50%;filter:blur(120px);z-index:0;pointer-events:none}.glow-tr{top:-280px;right:-240px;width:620px;height:620px;background:radial-gradient(circle,var(--accent-glow),transparent 70%);opacity:.7}.glow-bl{bottom:-320px;left:-280px;width:560px;height:560px;background:radial-gradient(circle,rgba(34,211,238,.16),transparent 70%)}.glow-mid{top:42%;left:46%;width:720px;height:720px;background:radial-gradient(circle,rgba(251,191,36,.07),transparent 70%)}.wrap{max-width:var(--maxw);margin:0 auto;padding:0 var(--gutter);position:relative;z-index:1}nav{position:sticky;top:0;z-index:50;backdrop-filter:blur(14px);background:#0a0a0cb8;border-bottom:1px solid var(--border)}.nav-inner{max-width:var(--maxw);margin:0 auto;padding:16px var(--gutter);display:flex;align-items:center;justify-content:space-between}.brand{display:flex;align-items:center;gap:10px;font-weight:600;font-size:15px}.brand .mark{width:28px;height:28px;border-radius:50%;object-fit:cover;border:1px solid var(--border-strong)}.nav-links{display:flex;align-items:center;gap:8px}.nav-links a:not(.btn){color:var(--text-dim);text-decoration:none;font-size:14px;font-weight:500;padding:8px 12px;border-radius:8px;transition:color .15s,background .15s}.nav-links a:not(.btn):hover{color:var(--text);background:#ffffff0a}.btn{font-family:var(--font-sans);font-size:14px;font-weight:500;text-decoration:none;cursor:pointer;padding:8px 16px;border-radius:9px;transition:all .15s;display:inline-flex;align-items:center;gap:7px;border:1px solid transparent}.btn-primary{background:linear-gradient(115deg,var(--accent),#5b6ee0 45%,#3fb8d8);color:#fff;font-weight:600;box-shadow:0 0 0 1px #6e79e680,0 6px 20px var(--accent-glow)}.btn-primary:hover{filter:brightness(1.12);transform:translateY(-1px);box-shadow:0 0 0 1px #6e79e699,0 10px 28px var(--accent-glow)}.btn-ghost{background:var(--surface-1);color:var(--text);border-color:var(--border-strong)}.btn-ghost:hover{background:var(--surface-2);border-color:#fff3}.hero{padding:108px 0 84px}.pill{display:inline-flex;align-items:center;gap:8px;font-family:var(--font-mono);font-size:12px;color:#a7f3d0;background:#34d39914;border:1px solid rgba(52,211,153,.28);padding:6px 13px;border-radius:999px;margin-bottom:28px}.pill .dot{width:7px;height:7px;border-radius:50%;background:#3ddc84;box-shadow:0 0 10px #3ddc84cc}.hero h1{font-size:clamp(44px,5.2vw,86px);font-weight:700;letter-spacing:-.035em;line-height:1.02;margin-bottom:18px}.hero h1 .accent{background:linear-gradient(100deg,var(--accent-soft) 0%,var(--cyan) 55%,var(--emerald) 100%);-webkit-background-clip:text;background-clip:text;color:transparent}.hero .lede{font-size:clamp(17px,1.5vw,23px);color:var(--text-dim);max-width:42em;line-height:1.5;margin-bottom:32px;font-weight:400}.hero .lede strong{color:#fff;font-weight:600}.meta-row{display:flex;flex-wrap:wrap;gap:20px;margin-bottom:36px;font-family:var(--font-mono);font-size:13px;color:var(--text-faint)}.meta-row span{display:flex;align-items:center;gap:8px}.meta-row .sep{color:var(--cyan)}.cta-row{display:flex;flex-wrap:wrap;gap:12px}.hero-inner{display:flex;align-items:center;justify-content:space-between;gap:56px}.hero-text{flex:1;min-width:0}.hero-photo{flex-shrink:0}.hero-photo img{display:block;width:clamp(200px,21vw,340px);height:clamp(200px,21vw,340px);border-radius:50%;object-fit:cover;border:1px solid var(--border-strong);box-shadow:0 20px 60px #00000080,0 0 55px var(--accent-glow)}.section{padding:40px 0}.section-head{position:relative;display:flex;align-items:baseline;justify-content:space-between;margin-bottom:28px;padding-bottom:16px;border-bottom:1px solid var(--border)}.section-head:after{content:"";position:absolute;left:0;bottom:-1px;width:68px;height:2px;border-radius:2px;background:linear-gradient(90deg,var(--accent-soft),var(--cyan))}.section-head h2{font-size:24px;font-weight:700;letter-spacing:-.025em;color:#fff}.section-head .head-note{font-family:var(--font-mono);font-size:11.5px;color:var(--text-faint)}.filters{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:20px}.filter{font-family:var(--font-sans);font-size:13px;font-weight:500;color:var(--text-dim);background:var(--surface-1);border:1px solid var(--border);border-radius:999px;padding:6px 14px;cursor:pointer;display:inline-flex;align-items:center;gap:7px;transition:color .15s,background .15s,border-color .15s}.filter:hover{color:var(--tag-c, var(--text));border-color:var(--border-strong);border-color:color-mix(in srgb,var(--tag-c, #fff) 40%,transparent);background:color-mix(in srgb,var(--tag-c, #fff) 10%,transparent)}.filter .count{font-family:var(--font-mono);font-size:10.5px;color:var(--text-faint)}.filter.is-active{color:#0a0a0c;font-weight:600;background:var(--tag-c, var(--accent-soft));border-color:var(--tag-c, var(--accent-soft));box-shadow:0 4px 18px var(--accent-glow);box-shadow:0 4px 18px color-mix(in srgb,var(--tag-c, var(--accent)) 40%,transparent)}.filter.is-active .count{color:#0a0a0c8c}.projects{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;gap:12px;margin-bottom:24px}.card[open]{grid-column:1 / -1}.card{position:relative;background:var(--surface-1);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);transition:border-color .18s,box-shadow .18s,background .18s}.card[hidden]{display:none}.card:hover{border-color:#99a1ff59;box-shadow:var(--shadow),0 0 28px #6e79e617}.card[open]{border-color:var(--border-strong);box-shadow:var(--shadow-lg)}.card.flagship{border-color:#6e79e652;box-shadow:var(--shadow),0 0 40px #6e79e61a}.card.flagship:before{content:"";position:absolute;left:0;top:20px;bottom:20px;width:3px;background:linear-gradient(var(--accent-soft),var(--cyan) 55%,transparent);border-radius:3px}.card>summary{list-style:none;cursor:pointer;padding:20px 24px;border-radius:var(--radius)}.card>summary::-webkit-details-marker{display:none}.card>summary:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:20px}.card-title{min-width:0}.card h3{font-size:19.5px;font-weight:650;letter-spacing:-.022em;color:#fff;transition:color .15s}.card:hover h3{color:var(--accent-soft)}.card .subtitle{font-family:var(--font-mono);font-size:12px;color:var(--accent-soft);margin-top:4px}.card .summary-line{color:var(--text-dim);font-size:14px;max-width:620px;margin-top:6px}.card .tags{display:flex;flex-wrap:wrap;gap:6px;margin-top:12px}.card .tag{font-family:var(--font-mono);font-size:10.5px;letter-spacing:.03em;padding:3px 8px;border-radius:5px;white-space:nowrap;color:var(--tag-c, var(--text-faint));border:1px solid var(--border);background:var(--surface-2);border:1px solid color-mix(in srgb,var(--tag-c, #fff) 34%,transparent);background:color-mix(in srgb,var(--tag-c, #fff) 11%,transparent)}[data-tag="Machine learning"],[data-filter="Machine learning"]{--tag-c: var(--tag-machine-learning)}[data-tag=LLM],[data-filter=LLM]{--tag-c: var(--tag-llm)}[data-tag=Research],[data-filter=Research]{--tag-c: var(--tag-research)}[data-tag=Evaluation],[data-filter=Evaluation]{--tag-c: var(--tag-evaluation)}[data-tag=Full-stack],[data-filter=Full-stack]{--tag-c: var(--tag-full-stack)}[data-tag=Data],[data-filter=Data]{--tag-c: var(--tag-data)}[data-tag=Systems],[data-filter=Systems]{--tag-c: var(--tag-systems)}[data-tag=Testing],[data-filter=Testing]{--tag-c: var(--tag-testing)}.card .chev{flex-shrink:0;color:var(--text-faint);font-size:14px;line-height:1;margin-top:4px;transition:transform .2s,color .15s}.card:hover .chev{color:var(--text)}.card[open] .chev{transform:rotate(180deg)}.card-body{padding:20px 24px 24px;border-top:1px solid var(--border)}.card .desc{color:var(--text-dim);font-size:14.5px;max-width:68ch;margin-bottom:22px}@media(min-width:1100px){.card-body{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);gap:44px;align-items:start}.card .desc{margin-bottom:0}}.metrics{display:flex;gap:40px;margin-bottom:20px;flex-wrap:wrap}.metric-groups{display:flex;flex-direction:column;gap:14px;margin-bottom:22px}.metric-group{border-left:2px solid rgba(153,161,255,.35);padding-left:14px}.metric-group:nth-child(2){border-left-color:#22d3ee59}.metric-group:nth-child(3){border-left-color:#34d39959}.mg-heading{font-family:var(--font-mono);font-size:10.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--accent-soft);margin-bottom:6px}.metric-group:nth-child(2) .mg-heading{color:var(--cyan)}.metric-group:nth-child(3) .mg-heading{color:var(--emerald)}.metric-group .metrics{gap:32px;margin-bottom:0}.metric-group .metric .num{font-size:22px}.metric .num{font-family:var(--font-mono);font-size:25px;font-weight:500;color:#fff;letter-spacing:-.02em}.metric .lbl{font-size:12px;color:var(--text-faint);margin-top:2px}.stack{display:flex;flex-wrap:wrap;gap:7px;margin-bottom:22px}.chip{font-family:var(--font-mono);font-size:11.5px;color:#c6c9f0;background:#818cf817;border:1px solid rgba(129,140,248,.22);padding:4px 9px;border-radius:6px}.links{display:flex;flex-wrap:wrap;gap:18px}.links a{color:var(--text);text-decoration:none;font-size:13.5px;font-weight:500;display:inline-flex;align-items:center;gap:5px;transition:color .15s}.links a:hover{color:var(--accent-soft)}.links a .arr{color:var(--text-faint);transition:color .15s,transform .15s}.links a:hover .arr{color:var(--accent-soft);transform:translate(1px,-1px)}.about-grid{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:clamp(48px,6vw,96px);align-items:start}.about p{color:var(--text-dim);font-size:15.5px;max-width:68ch;margin-bottom:16px}.about p strong{color:#fff;font-weight:600}.about p em{color:var(--accent-soft);font-style:normal}.facts{display:flex;flex-direction:column;gap:14px}.fact{border-left:2px solid var(--fact-c, var(--border-strong));padding-left:14px}.fact:nth-child(1){--fact-c: var(--tag-machine-learning)}.fact:nth-child(2){--fact-c: var(--cyan)}.fact:nth-child(3){--fact-c: var(--emerald)}.fact:nth-child(4){--fact-c: var(--amber)}.fact:nth-child(5){--fact-c: var(--tag-data)}.fact:nth-child(6){--fact-c: var(--rose)}.fact:nth-child(7){--fact-c: var(--tag-systems)}.fact .k{font-family:var(--font-mono);font-size:11px;color:var(--fact-c, var(--text-faint));letter-spacing:.04em;font-weight:500}.fact .v{font-size:14.5px;color:var(--text);margin-top:3px}footer{border-top:1px solid var(--border);margin-top:64px;padding:64px 0 48px}.foot-cta h2{font-size:clamp(28px,3.2vw,48px);font-weight:700;letter-spacing:-.03em;margin-bottom:14px;background:linear-gradient(100deg,#fff 20%,var(--accent-soft) 62%,var(--cyan) 100%);-webkit-background-clip:text;background-clip:text;color:transparent;width:fit-content}.foot-cta p{color:var(--text-dim);font-size:16px;margin-bottom:28px;max-width:520px}.foot-links{display:flex;flex-wrap:wrap;gap:12px;margin-bottom:56px}.foot-bottom{display:flex;align-items:center;justify-content:space-between;font-family:var(--font-mono);font-size:12px;color:var(--text-faint);padding-top:24px;border-top:1px solid var(--border);flex-wrap:wrap;gap:12px}@media(max-width:900px){.projects{grid-template-columns:1fr}}@media(max-width:760px){.nav-links a:not(.btn){display:none}.hero{padding:72px 0 56px}.hero-inner{flex-direction:column-reverse;align-items:flex-start;gap:28px}.hero-photo img{width:120px;height:120px}.metrics{gap:24px}.card-body{padding:18px}.section-head .head-note{display:none}.card>summary{padding:18px}.filter{font-size:12.5px;padding:5px 12px}.about-grid{grid-template-columns:1fr;gap:28px}}
