@import "https://fonts.googleapis.com/css2?family=Poppins:wght@300;400;500;600;700&family=Roboto+Mono:wght@400;500&family=Space+Grotesk:wght@400;500;600;700&display=swap";:root{color:var(--text);background:var(--bg);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#111214;--bg-alt:#16171a;--card:#1b1c20;--card-2:#222429;--line:#2a2c32;--line-strong:#3a3d45;--text:#e9e9ec;--text-2:#c2c4cb;--muted:#9ea1a8;--accent:#5cc8f0;--accent-hover:#86d8f5;--accent-text:#6fd0f3;--accent-strong:#9fe0f7;--accent-soft:#5cc8f01f;--accent-ink:#062533;--violet:#a487ff;--violet-text:#b9a3ff;--violet-soft:#a487ff1f;--header-bg:#111214e6;--backdrop:#07080acc;--shadow:#00000080;--shadow-soft:#00000040;--focus:#ffd166;--selection:#5cc8f055;--contact-bg:#0c0d10;--contact-line:#2f3138;--on-dark:#ecedf0;--on-dark-2:#b9bcc4;--display:"Space Grotesk", system-ui, sans-serif;--mono:"Roboto Mono", monospace;--ink:var(--text);--blue:var(--accent);--paper:var(--bg);--signal:var(--violet);--dark:var(--contact-bg);--glow:var(--accent);font-family:Poppins,system-ui,sans-serif}:root[data-theme=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg:#f3f3f0;--bg-alt:#eaeae6;--card:#fafaf8;--card-2:#efefeb;--line:#dadad4;--line-strong:#c4c4bd;--text:#1b1c20;--text-2:#3e4149;--muted:#5d606a;--accent:#07698c;--accent-hover:#055673;--accent-text:#065f80;--accent-strong:#05506b;--accent-soft:#07698c1a;--accent-ink:#f7f7f5;--violet:#6b4fd8;--violet-text:#5a3fc7;--violet-soft:#6b4fd81a;--header-bg:#f3f3f0e6;--backdrop:#1b1c2099;--shadow:#1b1c2026;--shadow-soft:#1b1c2010;--focus:#9a5b00;--selection:#07698c33;--contact-bg:#16171b}*,:before,:after{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:100px}body{margin:0}button,input{font:inherit}button{cursor:pointer;color:inherit}a{color:inherit;text-decoration:none}a,button{-webkit-tap-highlight-color:transparent}img{max-width:100%;height:auto;display:block}h1,h2,h3,p{margin:0}h1,h2,h3{font-family:var(--display)}h2{letter-spacing:-.05em;font-size:clamp(2rem,3.3vw,3rem);font-weight:600;line-height:1.12}h3{font-weight:600;line-height:1.35}p,li{line-height:1.75}ul{padding-left:1.15rem}a:focus-visible,button:focus-visible,input:focus-visible,.table-scroll:focus-visible{outline:3px solid var(--focus);outline-offset:4px}h2:focus{outline:none}::selection{color:var(--text);background:var(--selection)}.shell{width:min(1220px,100% - 88px);margin-inline:auto}.section{padding:100px 0}.eyebrow,.mono,.project-eyebrow{font-family:var(--mono);letter-spacing:.08em;font-size:.68rem;font-weight:500}.eyebrow{color:var(--accent-text);margin-bottom:19px}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.skip-link{z-index:200;background:var(--card);border-radius:6px;padding:12px 20px;position:fixed;top:10px;left:12px;transform:translateY(-170%)}.skip-link:focus{transform:none}.site-header{z-index:30;background:var(--header-bg);border-bottom:1px solid var(--line);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);position:sticky;top:0}.header-inner{justify-content:space-between;align-items:center;gap:25px;min-height:84px;display:flex}.brand{font-family:var(--display);flex-shrink:0;align-items:center;gap:12px;font-size:1rem;font-weight:600;line-height:1.2;display:flex}.monogram{width:40px;height:42px;color:var(--accent-ink);background:var(--accent);border-radius:12px;place-items:center;font-size:.8rem;display:grid}.brand-role{font-family:var(--mono);color:var(--muted);letter-spacing:.12em;margin-top:7px;font-size:.52rem;font-weight:400;display:block}.main-nav{align-items:center;gap:25px;font-size:.8rem;font-weight:550;display:flex}.main-nav a{color:var(--text-2);padding-block:12px}.main-nav a:hover{color:var(--accent-text)}.main-nav .nav-resume,.main-nav .nav-contact{align-items:center;gap:6px;display:flex}.main-nav .nav-contact{background:var(--accent);color:var(--accent-ink);border-radius:7px;padding:11px 16px}.menu-toggle{border:1px solid var(--line-strong);background:var(--card);border-radius:7px;align-items:center;gap:6px;padding:10px 12px;display:none}.hero{isolation:isolate;background:var(--paper);flex-direction:column;justify-content:center;min-height:min(92svh,940px);display:flex;position:relative;overflow:hidden}.hero-grid{grid-template-columns:1fr 1.05fr;align-items:center;gap:70px;padding-block:82px 73px;display:grid}.availability{color:var(--text-2);align-items:center;gap:8px;margin-bottom:35px;font-size:.72rem;display:flex}.availability>span{background:var(--violet);width:6px;height:6px;box-shadow:0 0 0 4px var(--violet-soft);border-radius:50%}.hero h1{letter-spacing:-.03em;font-size:clamp(46px,3.71094vw + 24.625px,84px);font-weight:700;line-height:1}.hero h1 em{color:var(--accent-text);font-style:normal;font-weight:700;display:block}.hero-intro{color:var(--text-2);max-width:520px;margin-top:25px;font-size:.98rem;line-height:1.85}.hero-actions{flex-wrap:wrap;gap:11px;margin-top:29px;display:flex}.button{border:1px solid #0000;border-radius:7px;justify-content:center;align-items:center;gap:9px;min-height:44px;padding:13px 19px;font-size:.81rem;font-weight:650;line-height:1.4;transition:background .18s,box-shadow .18s;display:inline-flex}.button-primary{background:var(--accent);color:var(--accent-ink)}.button-primary:hover{background:var(--accent-hover);box-shadow:0 5px 20px var(--accent-soft)}.button-outline{background:var(--card);border-color:var(--line-strong);color:var(--text)}.button-outline:hover{background:var(--accent-soft)}.hero-stats{border-top:1px solid var(--line);grid-template-columns:repeat(4,minmax(0,1fr));gap:28px;margin-block:0;padding:28px 0 32px;list-style:none;display:grid}.hero-stats li{border-left:2px solid var(--accent);flex-direction:column;gap:8px;padding-left:16px;display:flex}.hero-stats strong{font-family:var(--display);letter-spacing:-.02em;font-size:clamp(1.6rem,2.4vw,2.2rem);font-weight:700;line-height:1}.hero-stats li>span{color:var(--text-2);font-size:.74rem;line-height:1.5}.hero-socials{color:var(--text-2);gap:23px;font-size:.72rem;display:flex}.hero-socials a{align-items:center;gap:6px;display:flex}.hero-socials a:hover{color:var(--accent-text)}.hero-footer{border-top:1px solid var(--line);color:var(--muted);justify-content:space-between;align-items:center;gap:22px;padding-block:23px;font-size:.66rem;display:flex}.hero-footer>a{color:var(--accent-text);align-items:center;gap:10px;display:flex}.hero-showcase{border:1px solid var(--line);background:var(--bg);box-shadow:0 22px 60px var(--shadow-soft);border-radius:14px;overflow:hidden;transform:rotate(1deg)}.showcase-bar{border-bottom:1px solid var(--line);background:var(--card-2);justify-content:space-between;align-items:center;padding:17px 20px;display:flex}.showcase-bar .mono{color:var(--text-2);font-size:.55rem}.showcase-dot{background:var(--accent);width:7px;height:7px;box-shadow:-13px 0 var(--line-strong), -26px 0 var(--line);border-radius:50%}.preview-tabs{border:0;gap:5px;margin:0;padding:13px 16px;display:flex}.preview-tabs button{color:var(--text-2);background:0 0;border:1px solid #0000;border-radius:6px;min-height:37px;padding:9px 13px;font-size:.73rem}.preview-tabs button[aria-pressed=true]{background:var(--accent-soft);color:var(--accent-text);border-color:var(--line);font-weight:650}.showcase-image{background:var(--card-2);border:1px solid var(--line);aspect-ratio:1.56;border-radius:7px;margin:0 15px;display:block;overflow:hidden}.showcase-image img{object-fit:cover;object-position:top;width:100%;height:100%}.showcase-caption{justify-content:space-between;align-items:center;gap:15px;padding:22px;display:flex}.showcase-caption .project-eyebrow{margin-bottom:7px;font-size:.57rem}.showcase-caption h2{font-size:1.25rem;font-weight:600}.showcase-caption>div>p:last-child{color:var(--muted);margin-top:5px;font-size:.64rem}.showcase-open{background:var(--accent-soft);width:43px;height:43px;color:var(--accent-text);border:1px solid var(--line);border-radius:8px;flex-shrink:0;place-items:center;display:grid}.section-intro{justify-content:space-between;align-items:end;gap:40px;margin-bottom:40px;display:flex}.section-intro h2{max-width:650px}.section-intro>p{max-width:340px;color:var(--muted);font-size:.86rem}.featured-section{background:var(--bg)}.featured-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;display:grid}.featured-card{border:1px solid var(--line);background:var(--card);min-width:0;box-shadow:0 3px 12px var(--shadow-soft);border-radius:11px;flex-direction:column;display:flex;overflow:hidden}.project-image-link{aspect-ratio:1.75;background:var(--card-2);border-bottom:1px solid var(--line);display:block;overflow:hidden}.project-image-link img{object-fit:cover;object-position:top;width:100%;height:100%;transition:transform .25s}.project-image-link:hover img{transform:scale(1.025)}.featured-card-body{flex-direction:column;flex:1;padding:26px;display:flex}.project-eyebrow{letter-spacing:.05em;color:var(--muted);text-transform:uppercase;margin-bottom:10px;font-size:.6rem}.featured-card h3{letter-spacing:-.04em;font-size:1.65rem}.project-summary{color:var(--muted);margin-top:12px;font-size:.85rem;line-height:1.75}.project-signal{color:var(--accent-text);align-items:center;gap:7px;margin-top:18px;font-size:.69rem;font-weight:600;line-height:1.6;display:flex}.project-signal>span{background:var(--violet);border-radius:50%;flex-shrink:0;width:5px;height:5px}.tags{flex-wrap:wrap;gap:6px;margin:18px 0 24px;padding:0;list-style:none;display:flex}.tags li{color:var(--text-2);background:var(--card-2);border:1px solid var(--line);border-radius:4px;padding:3px 8px;font-size:.62rem;line-height:1.6}.project-actions{border-top:1px solid var(--line);justify-content:space-between;align-items:center;gap:12px;margin-top:auto;padding-top:17px;font-size:.73rem;display:flex}.project-actions a{align-items:center;gap:6px;min-height:28px;display:flex}.case-link{color:var(--accent-text);font-weight:650}.project-actions a:hover,.text-link:hover,.skill-proof a:hover{text-underline-offset:4px;color:var(--accent-strong);text-decoration:underline}.experience-section{background:var(--bg-alt);border-block:1px solid var(--line)}.experience-layout{grid-template-columns:.8fr 1.5fr;gap:90px;display:grid}.experience-intro>p:not(.eyebrow){color:var(--muted);max-width:280px;margin-top:21px;font-size:.87rem}.text-link{color:var(--accent-text);align-items:center;gap:7px;font-size:.79rem;font-weight:600;display:inline-flex}.experience-intro .text-link{margin-top:25px}.timeline{border-left:1px solid var(--line);padding-left:29px}.experience-item{border-bottom:1px solid var(--line);margin-bottom:34px;padding-bottom:34px;position:relative}.experience-item:last-child{border:0;margin-bottom:0;padding-bottom:0}.experience-item:before{content:"";background:var(--accent);border:2px solid var(--bg-alt);width:9px;height:9px;box-shadow:0 0 0 1px var(--line-strong);border-radius:50%;position:absolute;top:4px;left:-34px}.experience-meta{color:var(--muted);flex-wrap:wrap;justify-content:space-between;gap:14px;margin-bottom:12px;font-size:.63rem;display:flex}.experience-meta .mono{letter-spacing:0;font-size:.62rem}.experience-item h3{font-size:1.15rem}.company{margin-top:5px;font-size:.9rem;font-weight:600}.experience-summary{color:var(--text-2);margin-top:13px;font-size:.83rem}.experience-item ul{color:var(--text-2);margin:13px 0 0;font-size:.79rem}.experience-item li+li{margin-top:7px}.experience-item .experience-tags{margin:14px 0 0}.experience-item .experience-tags li{margin-top:0}.project-section{background:var(--bg)}.project-toolbar{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:24px;padding-bottom:18px;display:flex}.filters{border:0;flex-wrap:wrap;gap:6px;min-width:0;margin:0;padding:0;display:flex}.filters button{background:var(--card);min-height:40px;color:var(--text-2);border:1px solid #0000;border-radius:6px;align-items:center;gap:7px;padding:9px 11px;font-size:.75rem;display:flex}.filters button span{font-family:var(--mono);color:inherit;opacity:.8;font-size:.58rem}.filters button[aria-pressed=true]{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}.project-search{border:1px solid var(--line-strong);min-width:240px;color:var(--muted);background:var(--card);border-radius:7px;align-items:center;gap:9px;padding:10px 12px;display:flex}.project-search input{width:100%;min-width:0;color:var(--text);background:0 0;border:0;outline:none;font-size:.73rem}.project-search:focus-within{outline:3px solid var(--focus);outline-offset:3px}.project-search input:focus-visible{outline:none}.project-search input::placeholder{color:var(--muted)}.results-line{color:var(--muted);justify-content:space-between;align-items:center;gap:14px;margin-block:17px 25px;font-size:.7rem;display:flex}.results-line button{color:var(--accent-text);background:0 0;border:0;align-items:center;gap:7px;padding:7px;font-size:.7rem;display:flex}.project-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;display:grid}.project-card{border:1px solid var(--line);background:var(--card);border-radius:10px;flex-direction:column;min-width:0;transition:box-shadow .2s,border-color .2s;display:flex;overflow:hidden}.project-card:hover{border-color:var(--line-strong);box-shadow:0 8px 26px var(--shadow-soft)}.library-card-body{flex-direction:column;flex:1;padding:23px;display:flex}.library-preview{aspect-ratio:1.9;background:var(--card-2);border-bottom:1px solid var(--line);display:block;overflow:hidden}.library-preview img{object-fit:cover;object-position:top;width:100%;height:100%}.library-diagram{aspect-ratio:1.9;background:linear-gradient(135deg, var(--card-2), var(--card-2));border-bottom:1px solid var(--line);flex-direction:column;justify-content:center;padding:24px 20px;display:flex}.diagram-label{font-family:var(--mono);letter-spacing:.04em;text-transform:uppercase;color:var(--accent-text);margin-bottom:20px;font-size:.56rem}.mini-flow{gap:8px;display:flex}.mini-flow>span{background:var(--card);border:1px solid var(--line);min-width:0;color:var(--text-2);border-radius:6px;flex:1;padding:10px 8px;font-size:.6rem;line-height:1.55}.mini-flow i{font-family:var(--mono);color:var(--text-2);margin-bottom:6px;font-size:.49rem;font-style:normal;display:block}.visual-data{background:linear-gradient(135deg, var(--card-2), var(--card-2))}.visual-data .diagram-label{color:var(--violet-text)}.visual-data .mini-flow>span{border-color:var(--line);color:var(--violet-text)}.visual-research{background:linear-gradient(135deg, var(--card-2), var(--card-2))}.card-top{color:var(--muted);justify-content:space-between;align-items:center;gap:10px;margin-bottom:13px;display:flex}.category{font-family:var(--mono);background:var(--card-2);color:var(--text-2);border-radius:4px;padding:4px 7px;font-size:.57rem}.project-card h3{letter-spacing:-.02em;font-size:1.1rem}.project-card .project-summary{font-size:.79rem}.project-card .project-signal{font-size:.65rem}.project-card .project-actions{font-size:.69rem}.empty-projects{color:var(--text-2);flex-direction:column;align-items:center;gap:12px;padding:65px 20px;display:flex}.empty-projects h3{color:var(--text);font-size:1.25rem}.empty-projects p{font-size:.85rem}.empty-projects .button{margin-top:10px}.research-section{background:var(--bg-alt);border-block:1px solid var(--line)}.research-layout{grid-template-columns:.8fr 1.4fr;align-items:start;gap:85px;display:grid}.research-section .eyebrow{color:var(--violet-text)}.research-intro{max-width:280px;color:var(--text-2);margin-top:20px;font-size:.88rem}.research-section .text-link{color:var(--violet-text);margin-top:25px}.publication{background:var(--card);border:1px solid var(--line);border-radius:11px;padding:32px}.publication-status{color:var(--violet-text);align-items:center;gap:8px;margin-bottom:18px;font-size:.66rem;display:flex}.publication h3{letter-spacing:-.025em;font-size:1.3rem;line-height:1.55}.publication-authors{color:var(--text-2);margin-top:17px;font-size:.77rem}.publication-authors strong{color:var(--text);font-weight:650}.publication-version{font-family:var(--mono);color:var(--muted);margin-top:15px;font-size:.59rem;line-height:1.9}.publication-note{color:var(--muted);margin-top:6px;font-size:.65rem}.button-light{background:var(--violet-soft);color:var(--violet-text);border:1px solid var(--line);margin-top:22px;font-size:.75rem}.button-light:hover{background:var(--violet-soft)}.skills-section{background:var(--bg)}.skills-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:24px;display:grid}.skill-card{border-top:2px solid var(--line-strong);min-width:0;padding-top:23px}.skill-card h3{font-size:.95rem}.skill-card .tags{min-height:85px;margin-bottom:16px}.skill-proof{border-top:1px solid var(--line);flex-direction:column;gap:10px;padding-top:15px;display:flex}.skill-proof>span{color:var(--muted);font-size:.52rem}.skill-proof a{color:var(--accent-text);justify-content:space-between;align-items:center;gap:8px;font-size:.71rem;display:flex}.credentials-section{background:var(--bg-alt);border-top:1px solid var(--line)}.credentials-layout{grid-template-columns:1fr 1fr;gap:95px;display:grid}.education-list{flex-direction:column;gap:28px;display:flex}.education-list article+article{border-top:1px solid var(--line);padding-top:25px}.education-list .mono{letter-spacing:0;color:var(--muted);margin-bottom:8px;font-size:.62rem}.education-list h3{font-size:1.03rem}.education-list article>p:not(.mono){color:var(--text-2);margin-top:6px;font-size:.82rem}.education-list .education-note{font-size:.72rem}.certifications>h3{font-size:.95rem}.certifications ul{flex-direction:column;gap:16px;margin:18px 0 22px;padding:0;list-style:none;display:flex}.certifications li{align-items:start;gap:11px;display:flex}.certifications li>svg{color:var(--accent-text);flex-shrink:0;margin-top:4px}.certifications strong{font-size:.78rem;font-weight:600;display:block}.certifications li span{color:var(--muted);margin-top:4px;font-size:.66rem;display:block}.contact-section{background:var(--contact-bg);color:var(--on-dark);padding-top:76px}.contact-grid{grid-template-columns:1fr 1fr;align-items:center;gap:80px;padding-bottom:65px;display:grid}.contact-section .eyebrow{color:var(--accent)}.contact-grid h2{font-size:clamp(2.4rem,4vw,3.7rem)}.contact-grid p:not(.eyebrow){color:var(--on-dark-2);max-width:430px;margin-top:20px;font-size:.84rem}.contact-actions{flex-direction:column;align-items:start;gap:13px;display:flex}.contact-actions .button-primary{background:var(--accent);border:1px solid var(--accent)}.contact-actions .button-outline{color:var(--on-dark);border-color:var(--contact-line);background:0 0}.contact-actions .button{overflow-wrap:anywhere;max-width:100%;font-size:.8rem}.contact-location{color:var(--on-dark-2);margin-top:5px;font-size:.7rem}footer{border-top:1px solid var(--contact-line);color:var(--on-dark-2);justify-content:space-between;gap:20px;padding-block:25px;font-size:.65rem;display:flex}footer>div{flex-wrap:wrap;gap:23px;display:flex}footer a{align-items:center;gap:7px;display:flex}.project-dialog{border:1px solid var(--line);background:var(--card);width:min(840px,100% - 40px);max-height:calc(100dvh - 64px);color:var(--text);overscroll-behavior:contain;box-shadow:0 30px 100px var(--shadow);border-radius:13px;padding:0;overflow:auto}.project-dialog::backdrop{background:var(--backdrop);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.dialog-content{padding:34px 42px}.dialog-top{justify-content:space-between;align-items:center;gap:14px;margin-bottom:25px;display:flex}.dialog-top .eyebrow{margin:0;font-size:.59rem}.dialog-close{background:var(--card-2);border:1px solid var(--line);border-radius:6px;align-items:center;gap:5px;min-height:40px;padding:8px 11px;font-size:.73rem;display:flex}.project-dialog h2{font-size:2.3rem}.case-summary{color:var(--text-2);margin-top:15px;font-size:.96rem}.case-role{color:var(--text-2);flex-direction:column;gap:5px;margin-top:18px;font-size:.78rem;display:flex}.case-role strong{color:var(--text);font-size:.7rem}.case-links{flex-wrap:wrap;gap:10px;margin-top:20px;display:flex}.button-small{background:var(--accent-soft);border:1px solid var(--line);color:var(--accent-text);min-height:40px;padding:9px 13px;font-size:.73rem}.case-image{margin:26px 0 0}.case-image img{object-fit:contain;border:1px solid var(--line);background:var(--card-2);border-radius:7px;width:100%;max-height:380px}.case-image figcaption{color:var(--muted);margin-top:8px;font-size:.65rem}.project-dialog section{margin-top:30px}.project-dialog h3{margin-bottom:12px;font-size:1.03rem}.project-dialog section>p,.case-list,.limitations ul{color:var(--text-2);font-size:.84rem}.case-flow{counter-reset:flow;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin:16px 0;padding:0;list-style:none;display:grid}.case-flow li{border:1px solid var(--line);background:var(--card-2);counter-increment:flow;border-radius:6px;padding:12px 9px;font-size:.69rem;line-height:1.6}.case-flow li:before{content:counter(flow, decimal-leading-zero);font-family:var(--mono);color:var(--muted);margin-bottom:5px;font-size:.52rem;display:block}.case-list li+li,.limitations li+li{margin-top:8px}.table-scroll{max-width:100%;margin-top:20px;overflow:auto}table{border-collapse:collapse;text-align:left;width:100%;font-size:.75rem}th,td{white-space:nowrap;border-bottom:1px solid var(--line);padding:12px 10px}thead{background:var(--card-2)}tbody th{font-weight:550}.limitations{background:var(--card-2);border:1px solid var(--line);border-radius:7px;padding:22px}.limitations ul{margin-bottom:0}.dialog-bottom{border-top:1px solid var(--line);justify-content:space-between;align-items:center;gap:12px;margin-top:28px;padding-top:23px;display:flex}.dialog-bottom .mono{color:var(--muted);font-size:.6rem}@media (width<=1100px){.main-nav{gap:17px;font-size:.73rem}.hero-grid{gap:35px}.hero h1{font-size:4rem}.hero-intro{font-size:.9rem}.featured-card-body{padding:23px 20px}.section-intro>p{max-width:290px}.experience-layout,.research-layout{gap:50px}.skills-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:30px}.skill-card .tags{min-height:0}.project-toolbar{flex-direction:column;align-items:start;gap:15px}.project-search{width:100%;max-width:400px}.credentials-layout{gap:50px}}@media (width<=940px){.shell{width:calc(100% - 48px)}.header-inner{min-height:74px}.menu-toggle{display:flex}.main-nav{background:var(--bg);border-bottom:1px solid var(--line);flex-direction:column;align-items:stretch;gap:6px;padding:18px 24px 25px;font-size:.9rem;display:none;position:absolute;inset:74px 0 auto}.main-nav.is-open{display:flex}.main-nav .nav-contact{justify-content:center;margin-top:7px}.hero-grid{gap:30px;padding-block:60px}.hero h1{font-size:3.3rem}.hero-intro{font-size:.85rem}.availability{margin-bottom:27px;font-size:.65rem}.hero-stats{gap:18px}.hero-socials{gap:18px;font-size:.66rem}.showcase-bar{padding:14px}.showcase-bar .mono{font-size:.45rem}.preview-tabs{gap:3px;padding:10px}.preview-tabs button{padding:8px 9px;font-size:.63rem}.showcase-image{aspect-ratio:1.35;margin-inline:10px}.showcase-caption{padding:18px 15px}.showcase-caption h2{font-size:1.1rem}.showcase-caption>div>p:last-child{font-size:.57rem}.showcase-caption .project-eyebrow{font-size:.49rem}.section{padding:76px 0}.section-intro h2{font-size:2.25rem}.section-intro>p{max-width:250px;font-size:.79rem}.featured-grid{gap:15px}.featured-card-body{padding:21px 16px}.featured-card h3{font-size:1.4rem}.project-summary{font-size:.77rem}.project-signal{font-size:.61rem}.project-actions{gap:6px;font-size:.65rem}.project-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.experience-layout{grid-template-columns:.8fr 1.5fr;gap:35px}.research-layout{gap:30px}.publication{padding:25px}.credentials-layout,.contact-grid{gap:35px}}@media (width<=700px){.shell{width:calc(100% - 40px)}.hero-grid{grid-template-columns:1fr;gap:35px;padding-block:44px 40px}.hero h1{font-size:clamp(2.75rem,9.5vw,4.3rem)}.hero-intro{font-size:.93rem}.availability{margin-bottom:25px;font-size:.65rem}.hero-stats{grid-template-columns:repeat(2,minmax(0,1fr));gap:22px 18px;padding-block:24px 26px}.hero-showcase{justify-self:center;width:100%;max-width:540px;transform:none}.showcase-bar{padding:15px 18px}.showcase-bar .mono{font-size:.52rem}.preview-tabs{padding:12px}.preview-tabs button{padding:8px 12px;font-size:.7rem}.showcase-image{aspect-ratio:1.65;margin-inline:12px}.showcase-caption{padding:20px}.showcase-caption h2{font-size:1.25rem}.showcase-caption .project-eyebrow{font-size:.56rem}.showcase-caption>div>p:last-child{font-size:.63rem}.hero-footer{align-items:start;padding-block:18px;font-size:.59rem}.hero-footer>a{text-align:right;max-width:120px}.section{padding:60px 0}.section-intro{flex-direction:column;align-items:start;gap:15px;margin-bottom:28px}.section-intro h2{font-size:2.1rem}.section-intro>p{max-width:460px}.eyebrow{margin-bottom:14px;font-size:.61rem}.featured-grid{grid-template-columns:1fr;gap:25px}.project-image-link{aspect-ratio:1.9}.featured-card-body{padding:25px}.featured-card h3{font-size:1.65rem}.featured-card .project-summary{font-size:.85rem}.featured-card .project-signal{font-size:.7rem}.featured-card .project-actions{font-size:.77rem}.experience-layout,.research-layout{grid-template-columns:1fr;gap:35px}.experience-intro>p:not(.eyebrow),.research-intro{max-width:400px}.experience-meta{flex-direction:column;gap:3px;font-size:.61rem}.experience-meta .mono{font-size:.61rem}.timeline{margin-left:4px;padding-left:24px}.experience-item:before{left:-29px}.experience-item h3{font-size:1.07rem}.project-toolbar{gap:15px}.filters{gap:3px}.filters button{padding:9px 10px;font-size:.68rem}.project-search{max-width:none}.project-grid{gap:15px}.library-card-body{padding:20px 17px}.project-card .project-actions{flex-direction:column;align-items:start;gap:6px}.project-card .tags li{font-size:.58rem}.library-diagram{aspect-ratio:1.55;padding:20px 15px}.diagram-label{margin-bottom:13px;font-size:.48rem}.mini-flow{gap:5px}.mini-flow>span{padding:8px 5px;font-size:.52rem}.library-preview{aspect-ratio:1.55}.credentials-layout{grid-template-columns:1fr;gap:35px}.contact-grid{grid-template-columns:1fr;gap:30px;padding-bottom:45px}.contact-section{padding-top:60px}.contact-grid h2{font-size:2.8rem}.contact-actions .button{font-size:.76rem}footer{flex-direction:column;gap:15px}footer>div{gap:20px}.project-dialog{width:calc(100% - 20px);max-height:calc(100dvh - 24px)}.dialog-content{padding:23px}.dialog-top .eyebrow{max-width:180px;font-size:.5rem}.project-dialog h2{font-size:1.8rem}.case-summary{font-size:.85rem}.case-flow{grid-template-columns:repeat(2,minmax(0,1fr))}.dialog-bottom{flex-wrap:wrap}.limitations{padding:18px}.publication-status{align-items:start;font-size:.64rem;line-height:1.6}.publication-status>svg{flex-shrink:0;margin-top:2px}}@media (width<=430px){.brand{gap:9px;font-size:.85rem}.brand-role{font-size:.48rem}.monogram{border-radius:10px;width:35px;height:37px}.menu-toggle{padding:8px 10px;font-size:.73rem}.hero h1{font-size:2.7rem}.hero-socials{font-size:.7rem}.hero-actions .button{padding:12px 14px;font-size:.75rem}.project-grid{grid-template-columns:1fr}.library-card-body{padding:24px}.library-diagram{aspect-ratio:1.9;padding:24px}.diagram-label{margin-bottom:18px;font-size:.55rem}.mini-flow>span{padding:10px 7px;font-size:.6rem}.library-preview{aspect-ratio:1.9}.project-card .project-actions{flex-direction:row;align-items:center;font-size:.73rem}.project-card .project-summary{font-size:.84rem}.project-card .project-signal{font-size:.7rem}.skills-grid{grid-template-columns:1fr}.skill-card{padding-top:19px}.showcase-caption{padding:18px}.preview-tabs button{padding:8px 10px;font-size:.65rem}.filters button{padding:8px;font-size:.64rem}.filters button span{font-size:.52rem}.publication{padding:22px}}h2{letter-spacing:-.02em;font-weight:700;line-height:1.05}.main-nav a:not(.nav-resume):not(.nav-contact):before{content:"// ";color:var(--muted)}.featured-card,.project-card{box-shadow:none;border:0;border-radius:5px}.featured-card:hover,.project-card:hover{box-shadow:none;border-color:#0000}.featured-card h3,.project-card h3{font-weight:700}.project-image-link{border-bottom:0;border-radius:5px 5px 0 0}.contact-section{background:radial-gradient(circle at 85% 0%, #5cc8f02e, transparent 55%), radial-gradient(circle at 0% 100%, #a487ff26, transparent 50%), var(--dark)}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition:none!important;animation:none!important}.hero-showcase{transform:none}}@media print{.site-header,.hero-showcase,.hero-footer,.filters,.project-search,.contact-section,.project-dialog,.skip-link{display:none!important}.shell{width:100%}.section,.hero{padding:25px 0;color:#15233b!important;background:#fff!important}.hero-grid,.experience-layout,.research-layout,.credentials-layout{display:block}.hero h1{font-size:30px}.hero-actions,.hero-socials{display:none}.featured-grid,.project-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.featured-card,.project-card,.experience-item,.publication{break-inside:avoid}}.resume-source-link{color:var(--on-dark-2);text-underline-offset:4px;align-items:center;gap:7px;font-size:.72rem;text-decoration:underline;display:inline-flex}@keyframes rise{0%{opacity:0;transform:translateY(28px)}to{opacity:1;transform:none}}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes reveal-on-scroll{0%{opacity:0;transform:translateY(40px)}to{opacity:1;transform:none}}.main-nav a:not(.nav-resume):not(.nav-contact){background:linear-gradient(currentColor,currentColor) 0 100%/0 1px no-repeat;transition:background-size .4s cubic-bezier(.4,0,.2,1),color .3s}.main-nav a:not(.nav-resume):not(.nav-contact):hover{background-size:100% 1px}.case-link svg,.text-link svg,.project-actions a svg,.showcase-open svg{transition:transform .4s cubic-bezier(.4,0,.2,1)}.featured-card:hover .case-link svg,.project-card:hover .case-link svg,.text-link:hover svg,.project-actions a:hover svg,.showcase-open:hover svg{transform:translate(4px)}.button{transition:transform .3s cubic-bezier(.4,0,.2,1),background .3s,box-shadow .3s}.button:hover{transform:translateY(-2px)}.preview-tabs button{transition:background .3s,color .3s}.featured-card,.project-card{transition:transform .4s cubic-bezier(.4,0,.2,1)}.featured-card:hover,.project-card:hover{transform:translateY(-4px)}.featured-card .project-image-link img,.project-card .library-preview img{transition:transform .6s cubic-bezier(.4,0,.2,1)}.featured-card:hover .project-image-link img,.project-card:hover .library-preview img{transform:scale(1.05)}@media (prefers-reduced-motion:no-preference){.hero .availability,.hero h1,.hero-intro,.hero-actions,.hero-stats,.hero-footer{animation:.9s cubic-bezier(.4,0,.2,1) both rise}.hero h1{animation-delay:.1s}.hero-intro{animation-delay:.25s}.hero-actions{animation-delay:.35s}.hero-stats,.hero-footer{animation-delay:.45s}.hero-showcase{animation:1s .3s both fade-in}.showcase-image img{animation:.6s both fade-in}@supports (animation-timeline:view()){.section-intro,.featured-card,.project-card,.experience-item,.skill-card,.publication,.contact-grid,.research-intro,.experience-intro{animation:linear both reveal-on-scroll;animation-timeline:view();animation-range:entry cover 35%}}}@media (prefers-reduced-motion:reduce){.featured-card:hover,.project-card:hover,.button:hover{transform:none!important}}.focus-section{background:var(--bg)}.focus-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;display:grid}.focus-card{aspect-ratio:16/10;background:var(--card-2);border-radius:5px;min-width:0;position:relative;overflow:hidden}.focus-card img{object-fit:cover;width:100%;height:100%;transition:transform .6s cubic-bezier(.4,0,.2,1)}.focus-card:after{content:"";background:linear-gradient(#0b152600 38%,#0b1526e0 100%);position:absolute;inset:0}.focus-text{z-index:1;color:var(--on-dark);padding:24px;transition:transform .4s cubic-bezier(.4,0,.2,1);position:absolute;bottom:0;left:0;right:0}.focus-text h3{letter-spacing:-.01em;font-size:1.25rem;font-weight:700}.focus-text p{color:var(--on-dark-2);margin-top:6px;font-size:.85rem;line-height:1.55}.focus-card:hover img{transform:scale(1.06)}.focus-card:hover .focus-text{transform:translateY(-6px)}@media (width<=700px){.focus-grid{grid-template-columns:1fr;gap:18px}}@media (prefers-reduced-motion:reduce){.focus-card img,.focus-text{transition:none!important;transform:none!important}}.header-actions{order:3;align-items:center;gap:10px;display:flex}.main-nav{order:2;margin-left:auto}.theme-toggle{border:1px solid var(--line-strong);background:var(--card);width:40px;height:40px;color:var(--text);border-radius:8px;place-items:center;transition:color .3s,border-color .3s,transform .4s cubic-bezier(.4,0,.2,1);display:grid}.theme-toggle:hover{color:var(--accent-text);border-color:var(--accent);transform:rotate(-20deg)}.hero{background:radial-gradient(560px circle at var(--spot-x,72%) var(--spot-y,28%), var(--accent-soft), transparent 65%), var(--bg)}.hero-backdrop{z-index:-1;pointer-events:none;position:absolute;inset:0;overflow:hidden;-webkit-mask-image:linear-gradient(#0000,#000 25% 70%,#0000);mask-image:linear-gradient(#0000,#000 25% 70%,#0000)}.hero-backdrop svg{width:200%;height:100%;animation:48s linear infinite wave-drift}.hero-backdrop path{fill:none;stroke-width:1.5px;vector-effect:non-scaling-stroke}.hero-backdrop path:first-child{stroke:var(--accent);opacity:.22}.hero-backdrop path:nth-child(2){stroke:var(--violet);opacity:.18}.hero-backdrop path:nth-child(3){stroke:var(--muted);opacity:.1}@keyframes wave-drift{to{transform:translate(-50%)}}.caret{background:var(--accent);vertical-align:-.04em;width:.07em;height:.82em;margin-left:.08em;animation:1.1s step-end infinite caret-blink;display:inline-block}@keyframes caret-blink{50%{opacity:0}}.experience-visual{border:1px solid var(--line);border-radius:8px;width:100%;height:auto;margin-bottom:18px;display:block}.featured-card,.project-card{border:1px solid var(--line)}.featured-card:hover,.project-card:hover,.focus-card:hover{transform:perspective(900px) rotateX(var(--tilt-x,0deg)) rotateY(var(--tilt-y,0deg)) translateY(-4px);border-color:var(--accent);box-shadow:0 18px 40px var(--shadow-soft)}.focus-card{transition:transform .4s cubic-bezier(.4,0,.2,1),box-shadow .4s}@media (prefers-reduced-motion:reduce){.focus-card:hover{transform:none!important}}.filters button[aria-pressed=true] span{opacity:1}@media (width<=420px){.header-inner{gap:12px}.header-actions{gap:6px}.theme-toggle{width:36px;height:36px}}
