@font-face{font-family:archivo;src:url(../media/archivo_latin_400_normal-s.p.3al4jnsitk6tb.woff2)format("woff2");font-display:swap;font-weight:400;font-style:normal}@font-face{font-family:archivo;src:url(../media/archivo_latin_500_normal-s.p.3vysnfsdpvi3g.woff2)format("woff2");font-display:swap;font-weight:500;font-style:normal}@font-face{font-family:archivo;src:url(../media/archivo_latin_600_normal-s.p.2w7w9yha17-bx.woff2)format("woff2");font-display:swap;font-weight:600;font-style:normal}@font-face{font-family:archivo;src:url(../media/archivo_latin_700_normal-s.p.3jbg8rxzs6alt.woff2)format("woff2");font-display:swap;font-weight:700;font-style:normal}@font-face{font-family:archivo;src:url(../media/archivo_latin_800_normal-s.p.400x0ire8ss5g.woff2)format("woff2");font-display:swap;font-weight:800;font-style:normal}@font-face{font-family:archivo Fallback;src:local(Arial);ascent-override:88.86%;descent-override:21.25%;line-gap-override:0.0%;size-adjust:98.81%}.archivo_52ef63a6-module__K6L6oq__className{font-family:archivo,archivo Fallback}.archivo_52ef63a6-module__K6L6oq__variable{--font-archivo:"archivo", "archivo Fallback"}
@font-face{font-family:mono;src:url(../media/jetbrains_mono_latin_400_normal-s.p.37baup9wa8gsy.woff2)format("woff2");font-display:swap;font-weight:400;font-style:normal}@font-face{font-family:mono;src:url(../media/jetbrains_mono_latin_500_normal-s.p.37tbwx4qeyuup.woff2)format("woff2");font-display:swap;font-weight:500;font-style:normal}@font-face{font-family:mono Fallback;src:local(Arial);ascent-override:77.57%;descent-override:22.82%;line-gap-override:0.0%;size-adjust:131.49%}.mono_2cad8080-module__gpPg6G__className{font-family:mono,mono Fallback}.mono_2cad8080-module__gpPg6G__variable{--font-mono:"mono", "mono Fallback"}
:root{--bg:#0a0a0b;--surface:#111113;--surface-2:#161619;--line:#ffffff17;--line-strong:#ffffff29;--text:#f4f4f5;--muted:#8b8b93;--accent:#3b82f6;--violet:#a855f7;--teal:#2dd4bf;--amber:#f59e0b;--rose:#fb7185;--lime:#a3e635;--max:1140px}*,:before,:after{box-sizing:border-box}html{scroll-behavior:smooth}body{background:var(--bg);color:var(--text);font:400 16px/1.65 var(--font-archivo),system-ui,sans-serif;-webkit-font-smoothing:antialiased;margin:0}.wrap{max-width:var(--max);margin:0 auto;padding:0 28px}a{color:inherit}section{border-top:1px solid var(--line);padding:120px 0}section:first-of-type{border-top:0}.label{align-items:center;gap:14px;margin-bottom:28px;display:flex}.label .n{font:500 13px/1 var(--font-mono),monospace;color:var(--c,var(--accent));letter-spacing:.08em}.label .rule{background:linear-gradient(90deg,var(--c,var(--accent)),transparent 65%);opacity:.5}.label .t{font:500 13px/1 var(--font-mono),monospace;color:var(--muted);letter-spacing:.18em;text-transform:uppercase}.label .rule{background:var(--line);flex:1;height:1px}h2.section-title{text-transform:uppercase;letter-spacing:-.03em;max-width:16ch;margin:0 0 56px;font-size:clamp(30px,5.4vw,68px);font-weight:800;line-height:.95}h2.section-title .thin{color:var(--muted);font-weight:400}h2.section-title .grad{background:linear-gradient(100deg,var(--accent),var(--violet) 55%,var(--teal));-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text}header.nav{z-index:50;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-bottom:1px solid var(--line);background:#0a0a0bb8;position:sticky;top:0}header.nav .wrap{justify-content:space-between;align-items:center;height:66px;display:flex}.brand{letter-spacing:-.01em;align-items:center;gap:9px;font-size:17px;font-weight:700;text-decoration:none;transition:opacity .18s;display:inline-flex}.brand .gh{fill:currentColor;width:20px;height:20px}.brand span{background:linear-gradient(100deg,var(--accent),var(--violet));-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text}.brand:hover{opacity:.8}nav.links{gap:30px;display:flex}nav.links a{color:var(--muted);font-size:14px;font-weight:500;text-decoration:none;transition:color .18s}nav.links a:hover,nav.links a.on{color:var(--text)}.nav-cta{border:1px solid var(--line-strong);border-radius:8px;padding:9px 18px;font-size:14px;font-weight:600;text-decoration:none;transition:all .18s}.nav-cta:hover{background:var(--text);color:var(--bg);border-color:var(--text)}@media (max-width:820px){nav.links{display:none}}.hero{border-top:0;padding:120px 0 96px}.eyebrow{background:linear-gradient(90deg,color-mix(in srgb,var(--accent) 14%,transparent),transparent);border:1px solid var(--line-strong);font:500 13px/1 var(--font-mono),monospace;color:var(--muted);border-radius:999px;align-items:center;gap:10px;margin-bottom:32px;padding:7px 14px;display:inline-flex}.dot{background:#22c55e;border-radius:50%;width:7px;height:7px}.hero h1{text-transform:uppercase;letter-spacing:-.035em;margin:0;font-size:clamp(40px,8.6vw,116px);font-weight:800;line-height:.93}.hero h1 .thin{color:var(--muted);font-weight:400}.hero h1 .grad{background:linear-gradient(100deg,var(--accent),var(--violet) 55%,var(--teal));-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text}.hero .lead{max-width:60ch;color:var(--muted);margin:34px 0 0;font-size:clamp(16px,1.6vw,19px)}.hero .lead b{color:var(--text);font-weight:600}.hero-actions{flex-wrap:wrap;gap:12px;margin-top:38px;display:flex}.btn{border:1px solid var(--line-strong);border-radius:10px;padding:13px 26px;font-size:15px;font-weight:600;text-decoration:none;transition:all .18s}.btn.primary{background:var(--text);color:var(--bg);border-color:var(--text)}.btn.primary:hover{opacity:.86}.btn:hover{border-color:var(--text)}.stats{background:var(--line);border:1px solid var(--line);border-radius:14px;grid-template-columns:repeat(4,1fr);gap:1px;margin-top:76px;display:grid;overflow:hidden}.stat{background:linear-gradient(170deg,color-mix(in srgb,var(--c,var(--accent)) 12%,transparent),transparent 65%),var(--bg);padding:26px 24px}.stat .v{color:var(--text);letter-spacing:-.02em;font-size:clamp(24px,3vw,34px);font-weight:700}.stat .k{font:500 12px/1.4 var(--font-mono),monospace;color:var(--muted);letter-spacing:.12em;text-transform:uppercase;margin-top:8px}@media (max-width:760px){.stats{grid-template-columns:repeat(2,1fr)}}.toggle{gap:8px;margin-bottom:44px;display:inline-flex}.toggle button{font:600 14px/1 var(--font-archivo),sans-serif;cursor:pointer;color:var(--muted);border:1px solid var(--line-strong);background:0 0;border-radius:999px;padding:11px 22px;transition:all .18s}.toggle button.on{background:var(--accent);border-color:var(--accent);color:#fff}.tl{display:block}.tl[hidden]{display:none}.tl-item{border-top:1px solid var(--line);grid-template-columns:1.05fr 1.6fr;gap:clamp(24px,5vw,72px);padding:38px 8px;transition:background .2s,padding .2s;display:grid}.tl-item:last-child{border-bottom:1px solid var(--line)}.tl-item:hover{background:linear-gradient(90deg,color-mix(in srgb,var(--accent) 7%,transparent),transparent 70%)}.tl-head h3{letter-spacing:-.02em;margin:0;font-size:clamp(22px,2.6vw,30px);font-weight:700}.tl-head .org{color:var(--accent);margin-top:6px;font-size:16px;font-weight:600}.tl-head .when{font:400 13px/1.5 var(--font-mono),monospace;color:var(--muted);letter-spacing:.06em;text-transform:uppercase;margin-top:10px}.tl-body p{color:var(--muted);max-width:56ch;margin:0 0 18px;font-size:16px}.tl-body .h{font:500 11.5px/1 var(--font-mono),monospace;color:var(--muted);letter-spacing:.16em;text-transform:uppercase;margin-bottom:12px}@media (max-width:820px){.tl-item{grid-template-columns:1fr;gap:20px;padding:30px 4px}}.chips{flex-wrap:wrap;gap:8px;display:flex}.chip{border:1px solid var(--line);color:var(--muted);background:#ffffff05;border-radius:999px;align-items:center;gap:8px;padding:7px 14px;font-size:13.5px;font-weight:500;transition:all .18s;display:inline-flex}.chip img{object-fit:contain;flex:none;width:16px;height:16px}.chip img.wordmark{width:auto;height:13px}.chip svg{fill:currentColor;width:16px;height:16px;color:var(--c,var(--accent));opacity:1;flex:none}.chip.b-python svg{color:#5a9fd4}.chip.b-pytorch svg{color:#ee4c2c}.chip.b-huggingface svg{color:#ffd21e}.chip.b-pandas svg{color:#8b7fd4}.chip.b-numpy svg{color:#4dabcf}.chip.b-scikitlearn svg{color:#f7931e}.chip.b-jupyter svg{color:#f37626}.chip.b-flask svg{color:#5bc8de}.chip.b-git svg{color:#f03c2e}.chip.b-linux svg{color:#fcc624}.chip.b-gnubash svg{color:#4eaa25}.chip.b-latex svg{color:#3fb8b8}.chip.b-gradio svg{color:#f97316}.chip.b-vercel svg{color:#fff}.chip.b-javascript svg{color:#f7df1e}.chip.b-nextdotjs svg{color:#fff}.chip.b-react svg{color:#61dafb}.chip.b-meta svg{color:#0081fb}.chip.b-mysql svg{color:#00758f}.chip.b-r svg{color:#4f94d4}.chip.b-tensorflow svg{color:#ff6f00}.chip.b-docker svg{color:#2496ed}.chip.b-postgresql svg{color:#6a8ef0}.chip.b-mongodb svg{color:#47a248}.chip.b-render svg{color:#8a9bff}.chip.b-plotly svg{color:#7a76ff}.chip.b-powerbi svg{color:#f2c811}.chip.b-tableau svg{color:#4e79a7}.chip.b-html5 svg{color:#e34f26}.chip.b-css3 svg{color:#3d8fd1}.chip.b-d3 svg{color:#f9a03c}.chip:hover{border-color:var(--c,var(--accent));color:var(--text);background:color-mix(in srgb,var(--c,var(--accent)) 12%,transparent)}.stack{grid-template-columns:repeat(3,1fr);gap:18px;display:grid}.stack-card{background:linear-gradient(160deg,color-mix(in srgb,var(--c) 16%,transparent),transparent 62%), var(--surface);border:1px solid color-mix(in srgb,var(--c) 28%,var(--line));border-radius:18px;padding:26px;transition:border-color .2s,transform .2s,box-shadow .2s;position:relative;overflow:hidden}.stack-card:after{content:"";background:radial-gradient(closest-side,color-mix(in srgb,var(--c) 30%,transparent),transparent);filter:blur(14px);pointer-events:none;border-radius:50%;width:260px;height:260px;position:absolute;inset:-40% -30% auto auto}.stack-card:hover{border-color:color-mix(in srgb,var(--c) 70%,transparent);box-shadow:0 20px 50px -26px var(--c);transform:translateY(-4px)}.stack-card h4{align-items:center;gap:10px;margin:0 0 6px;font-size:17px;font-weight:700;display:flex}.stack-card h4:before{content:"";background:var(--c);border-radius:3px;width:9px;height:9px}.stack-card .sub{color:var(--muted);z-index:1;margin:0 0 18px;font-size:14px;position:relative}.stack-card h4,.stack-card .chips{z-index:1;position:relative}@media (max-width:940px){.stack{grid-template-columns:repeat(2,1fr)}}@media (max-width:640px){.stack{grid-template-columns:1fr}}.projects{gap:18px;display:grid}.proj{background:var(--surface);border:1px solid color-mix(in srgb,var(--c,var(--accent)) 22%,var(--line));border-radius:18px;grid-template-columns:1.15fr 1fr;gap:0;transition:border-color .18s,transform .18s;display:grid;overflow:hidden}.proj:hover{border-color:color-mix(in srgb,var(--c,var(--accent)) 50%,transparent);box-shadow:0 18px 50px -30px var(--c,var(--accent));transform:translateY(-3px)}.proj .body{padding:34px}.proj .kind{font:500 12px/1 var(--font-mono),monospace;color:var(--c,var(--accent));letter-spacing:.14em;text-transform:uppercase}.proj h3{letter-spacing:-.015em;margin:14px 0 0;font-size:clamp(22px,2.4vw,28px);font-weight:700}.proj .finding{color:var(--muted);margin:14px 0 0;font-size:15.5px}.proj .finding b{color:var(--text);font-weight:600}.proj .tags{flex-wrap:wrap;gap:8px;margin-top:22px;display:flex}.proj .links{flex-wrap:wrap;gap:18px;margin-top:26px;display:flex}.proj .links a{border-bottom:1px solid var(--line-strong);padding-bottom:2px;font-size:14px;font-weight:600;text-decoration:none;transition:all .18s}.proj .links a:hover{border-color:var(--c,var(--accent));color:var(--c,var(--accent))}.proj .figure{background:linear-gradient(200deg,color-mix(in srgb,var(--c,var(--accent)) 18%,transparent),transparent 70%), var(--surface-2);border-left:1px solid color-mix(in srgb,var(--c,var(--accent)) 22%,var(--line));justify-content:center;align-items:center;padding:26px;display:flex}.proj .figure .metric{width:100%}.metric .row{grid-template-columns:130px 1fr 58px;align-items:center;gap:12px;margin-bottom:14px;display:grid}.metric .rl{font:400 12.5px/1.3 var(--font-mono),monospace;color:var(--muted)}.metric .track{background:#ffffff12;border-radius:999px;height:9px;overflow:hidden}.metric .fill{background:var(--c,var(--accent));border-radius:999px;height:100%;display:block}.metric .track{background:#ffffff0f}.metric .rv{font:500 13px/1 var(--font-mono),monospace;text-align:right}.metric .cap{font:400 11.5px/1.5 var(--font-mono),monospace;color:var(--muted);margin-top:14px}@media (max-width:860px){.proj{grid-template-columns:1fr}.proj .figure{border-left:0;border-top:1px solid var(--line)}}.contact{grid-template-columns:1.3fr 1fr;align-items:start;gap:56px;display:grid}.contact h2{margin-bottom:20px}.contact p{color:var(--muted);max-width:46ch}.contact .links{border:1px solid var(--line);border-radius:14px;flex-direction:column;gap:2px;display:flex;overflow:hidden}.contact .links a{background:var(--surface);border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:16px;padding:20px 24px;font-weight:600;text-decoration:none;transition:all .18s;display:flex}.contact .links a:last-child{border-bottom:0}.contact .links a:hover{background:var(--surface-2);color:var(--accent)}.contact .links span{font:400 13px/1 var(--font-mono),monospace;color:var(--muted)}@media (max-width:860px){.contact{grid-template-columns:1fr;gap:32px}}footer{border-top:1px solid var(--line);color:var(--muted);padding:38px 0;font-size:14px}footer .wrap{flex-wrap:wrap;justify-content:space-between;gap:12px;display:flex}.study-link{color:inherit;text-decoration:none}.study-link:hover{background:linear-gradient(90deg,color-mix(in srgb,var(--c,var(--accent)) 8%,transparent),transparent 70%)}.study-link .org{color:var(--c,var(--accent))}.readmore{color:var(--c,var(--accent));margin-top:4px;font-weight:600;display:inline-block}.study-head{padding-bottom:64px}.study-head .kind{font:500 12px/1 var(--font-mono),monospace;color:var(--c,var(--accent));letter-spacing:.16em;text-transform:uppercase;margin-bottom:22px}.study-head h1{text-transform:none;letter-spacing:-.03em}.credits{color:var(--muted);max-width:60ch;margin:18px 0 0;font-size:15px}.study-section{padding:64px 0}.prose{max-width:none}.prose h2{letter-spacing:-.02em;margin:0 0 24px;font-size:clamp(24px,3vw,34px);font-weight:700}.prose p{color:var(--muted);max-width:68ch;margin:0 0 20px;font-size:17px}.prose b{color:var(--text);font-weight:600}.findings{max-width:72ch;margin:0 0 24px;padding:0;list-style:none}.findings li{border-top:1px solid var(--line);color:var(--muted);padding:18px 0 18px 22px;font-size:16.5px;position:relative}.findings li:last-child{border-bottom:1px solid var(--line)}.findings li:before{content:"";background:var(--c,var(--accent));border-radius:2px;width:3px;position:absolute;top:20px;bottom:20px;left:0}.table-scroll{margin:0 0 28px;overflow-x:auto}.data{border-collapse:collapse;font-variant-numeric:tabular-nums;width:100%;max-width:820px;font-size:15px}.data th,.data td{text-align:left;border-bottom:1px solid var(--line);color:var(--muted);vertical-align:top;padding:12px 18px 12px 0}.data th{color:var(--text);letter-spacing:.04em;text-transform:uppercase;font-size:13px;font-weight:600}.data td.n{text-align:right;color:var(--text);font-weight:600}.next{border-top:1px solid var(--line);flex-wrap:wrap;justify-content:space-between;gap:16px;padding-top:32px;display:flex}.hero h1.name-big{font-size:clamp(46px,9.6vw,128px)}.hero .role-line{letter-spacing:-.015em;color:var(--muted);margin:22px 0 0;font-size:clamp(20px,2.6vw,32px);font-weight:500}.hero .role-line .grad{background:linear-gradient(100deg,var(--accent),var(--violet) 55%,var(--teal));-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;font-weight:700}
