@font-face{font-family:DM Sans;font-style:normal;font-weight:300;font-display:swap;src:url(/_next/static/media/7ab938503e4547a1-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:DM Sans;font-style:normal;font-weight:300;font-display:swap;src:url(/_next/static/media/13971731025ec697-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:DM Sans;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/7ab938503e4547a1-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:DM Sans;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/13971731025ec697-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:DM Sans;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/7ab938503e4547a1-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:DM Sans;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/13971731025ec697-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:DM Sans Fallback;src:local("Arial");ascent-override:94.90%;descent-override:29.66%;line-gap-override:0.00%;size-adjust:104.53%}.__className_c95b6f{font-family:DM Sans,DM Sans Fallback;font-style:normal}.__variable_c95b6f{--font-sans:"DM Sans","DM Sans Fallback"}:root{--bg:#0C0C0E;--surface:#111113;--surface2:#171719;--border:rgba(255,255,255,0.07);--border2:rgba(255,255,255,0.12);--accent:#5DC8A5;--accent-dim:rgba(93,200,165,0.15);--tp:rgba(255,255,255,0.93);--tm:rgba(255,255,255,0.5);--td:rgba(255,255,255,0.25);--font-sans:"DM Sans",-apple-system,sans-serif;--font-mono:"JetBrains Mono","Fira Mono",monospace;--font-serif:"Instrument Serif",Georgia,serif;--radius-sm:4px;--radius-md:6px;--radius-lg:10px;--container:1080px;--nav-height:52px;--pad-x:2.5rem;--pad-x-sm:1.25rem}*,:after,:before{box-sizing:border-box;margin:0;padding:0}html{font-size:16px;scroll-behavior:smooth;-webkit-text-size-adjust:100%}body{background:var(--bg);color:var(--tp);font-family:var(--font-sans);line-height:1.6;min-height:100vh;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}img{max-width:100%;height:auto;display:block}a{text-decoration:none}a,button{color:inherit}button{cursor:pointer;background:none;border:none;font:inherit}input,select{outline:none}::selection{background:rgba(93,200,165,.2)}.container{width:100%;max-width:var(--container);margin:0 auto;padding:0 var(--pad-x)}@media (max-width:768px){.container{padding:0 var(--pad-x-sm)}}.page-top{padding-top:calc(var(--nav-height) + 3rem)}@media (max-width:768px){.page-top{padding-top:calc(var(--nav-height) + 2rem)}}.hero-grid{display:grid;grid-template-columns:1fr 1fr;gap:2.5rem;align-items:start}@media (max-width:860px){.hero-grid{grid-template-columns:1fr}}.stats-bar{display:grid;gap:1px;border:.5px solid var(--border);border-radius:var(--radius-md);overflow:hidden}@media (max-width:860px){.stats-bar{grid-template-columns:repeat(2,1fr)!important}}.works-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}@media (max-width:860px){.works-grid{grid-template-columns:1fr 1fr}}@media (max-width:540px){.works-grid{grid-template-columns:1fr}}.about-grid{display:grid;grid-template-columns:1fr 1fr;gap:2.5rem;align-items:start}@media (max-width:768px){.about-grid{grid-template-columns:1fr}}.about-header-grid{display:grid;grid-template-columns:1fr 1fr;gap:3rem}@media (max-width:768px){.about-header-grid{grid-template-columns:1fr;gap:1.5rem}}.exp-row{grid-template-columns:180px 1fr;border-bottom:.5px solid var(--border)}.exp-row,.pub-row{display:grid;gap:3rem;padding:2.25rem 0}.pub-row{grid-template-columns:140px 1fr}@media (max-width:768px){.exp-row,.pub-row{grid-template-columns:1fr;gap:.5rem}}.skills-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;border:.5px solid var(--border);border-radius:8px;overflow:hidden}@media (max-width:768px){.skills-grid{grid-template-columns:1fr 1fr}}@media (max-width:480px){.skills-grid{grid-template-columns:1fr}}.projects-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1px;border:.5px solid var(--border);border-radius:8px;overflow:hidden}@media (max-width:768px){.projects-grid{grid-template-columns:1fr}}.metrics-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;border:.5px solid var(--border);border-radius:var(--radius-md);overflow:hidden;max-width:480px}@media (max-width:768px){.metrics-grid{grid-template-columns:repeat(2,1fr)}}.filter-row{display:flex;gap:2rem;align-items:center;flex-wrap:wrap}@media (max-width:768px){.filter-row{flex-direction:column;align-items:flex-start;gap:1rem}}.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:6rem;align-items:start;min-height:80vh}@media (max-width:768px){.contact-grid{grid-template-columns:1fr;gap:3rem;min-height:auto}}.section-label{font-family:var(--font-mono);font-size:10px;color:var(--td);letter-spacing:.14em;margin-bottom:2rem;display:flex;align-items:center;gap:8px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}@keyframes fadeUp{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}.fade-up{animation:fadeUp .55s ease forwards}@media (prefers-reduced-motion:reduce){*,:after,:before{animation-duration:.01ms!important;transition-duration:.01ms!important}}::-webkit-scrollbar{width:5px}::-webkit-scrollbar-track{background:var(--bg)}::-webkit-scrollbar-thumb{background:rgba(255,255,255,.08);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:rgba(255,255,255,.16)}