:root{--bg:#f6f8fa;--surface:#fff;--border:#d5dde6;--fg:#0e1620;--muted:#566474;--accent:#1d5fd6;--on-accent:#fff}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#05070a;--surface:#0f151d;--border:#1c2733;--fg:#f5f7fa;--muted:#9aa4b2;--accent:#4d8dff;--on-accent:#05070a}}:root[data-theme=dark]{--bg:#05070a;--surface:#0f151d;--border:#1c2733;--fg:#f5f7fa;--muted:#9aa4b2;--accent:#4d8dff;--on-accent:#05070a}html{scroll-behavior:smooth;scroll-padding-top:calc(env(safe-area-inset-top,0px) + 72px)}*{box-sizing:border-box}body{background:var(--bg);color:var(--fg);margin:0;font:400 17px/1.7 IBM Plex Sans,system-ui,sans-serif}h1,h2,h3,.brand{margin:0;font-family:Space Grotesk,system-ui,sans-serif;line-height:1.1}a{color:inherit}:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.wrap{max-width:1120px;margin:0 auto;padding:0 24px}header{top:env(safe-area-inset-top,100px);z-index:5;background:color-mix(in srgb,var(--bg) 88%,transparent);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:1px solid var(--border);position:sticky}nav{justify-content:space-between;align-items:center;gap:16px;height:60px;display:flex}.brand{letter-spacing:.04em;white-space:nowrap;font-weight:700;text-decoration:none}.links{align-items:center;gap:22px;font-size:15px;display:flex;overflow-x:auto}.links a:not(.btn){color:var(--muted);white-space:nowrap;text-decoration:none}.links a:not(.btn):hover{color:var(--fg)}.btn{border:1px solid var(--border);border-radius:8px;padding:12px 20px;font-weight:500;text-decoration:none;display:inline-block}.btn.p{background:var(--accent);color:var(--on-accent);border-color:var(--accent)}.hero{border-bottom:1px solid var(--border);align-items:center;min-height:calc(100vh - 60px);padding:72px 0 70px;display:flex}.hero-content{min-width:0}.hero .wrap{width:100%}.hero h1{letter-spacing:-.045em;font-size:clamp(48px,7vw,92px);font-weight:700}.role{color:var(--accent);margin:0 0 20px;font-weight:500}.name-photo{align-items:center;gap:clamp(20px,3vw,36px);display:flex}.name-block{flex:0 auto;min-width:0}.hero-photo-wrap{flex:0 0 clamp(210px,25vw,300px);justify-content:center;align-items:center;width:clamp(210px,25vw,300px);height:clamp(210px,25vw,300px);display:flex;position:relative;transform:translate(190px,-15px)}.hero-photo-wrap:before{content:"";background:var(--accent);opacity:.12;filter:blur(35px);border-radius:50%;position:absolute;inset:12px}.hero-photo{z-index:1;object-fit:cover;object-position:center top;border:3px solid var(--accent);background:var(--surface);filter:drop-shadow(0 18px 28px #00000047);border-radius:50%;width:100%;height:100%;padding:4px;display:block;position:relative}.hero p.l{max-width:780px;color:var(--muted);margin:30px 0 36px;font-size:20px}.row{flex-wrap:wrap;gap:12px;display:flex}.soc{color:var(--muted);gap:22px;margin-top:36px;display:flex}h2{letter-spacing:-.02em;margin-bottom:20px;font-size:clamp(30px,5vw,44px)}.sub{color:var(--muted);max-width:640px;margin:0 0 40px}.grid{grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:20px;display:grid}.card{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:24px}.card h3{margin-bottom:10px;font-size:22px}.card p{color:var(--muted);margin:0 0 14px;font-size:16px;line-height:1.6}details{color:var(--muted);margin-top:14px;font-size:15px}summary{cursor:pointer;color:var(--accent);font-weight:500}details p{margin:8px 0 0}.tags{flex-wrap:wrap;gap:6px;margin:0;padding:0;list-style:none;display:flex}.tags li{border:1px solid var(--border);color:var(--muted);border-radius:999px;padding:2px 10px;font-size:13px}.cat{color:var(--accent);margin-bottom:6px;font-size:14px;font-weight:500;display:block}.proj{grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:20px;display:grid}.res{grid-template-columns:1fr;gap:32px;display:grid}.doi{word-break:break-all;font-family:ui-monospace,monospace;font-size:14px}dl{gap:18px;margin:0;display:grid}dt{font-family:Space Grotesk,sans-serif;font-weight:700}dd{color:var(--muted);margin:2px 0 0}.act{gap:0;display:grid}.act div{border-top:1px solid var(--border);flex-wrap:wrap;justify-content:space-between;gap:16px;padding:16px 0;display:flex}.act span{color:var(--muted)}.contact a.h{word-break:break-all;font-family:Space Grotesk,sans-serif;font-size:clamp(22px,5vw,40px)}footer{color:var(--muted);padding:36px 0 48px;font-size:15px}@media (width<=800px){.hero{min-height:auto;padding:64px 0 55px}.name-photo{gap:22px}.hero h1{font-size:clamp(42px,9vw,68px)}.hero-photo-wrap{flex:0 0 clamp(190px,27vw,240px);width:clamp(190px,27vw,240px);height:clamp(190px,27vw,240px);transform:translateY(-5px)}}@media (width<=640px){.links a:not(.btn){display:none}.proj{grid-template-columns:1fr}.brand{font-size:14px}.name-photo{flex-direction:column-reverse;align-items:flex-start;gap:24px}.hero-photo-wrap{flex:0 0 190px;width:190px;height:190px}.hero-photo{width:190px;height:190px}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}.icon{text-align:center;width:18px;color:var(--accent);margin-right:7px;font-size:.95em}.tag-icon{color:var(--accent);margin-right:6px}.section-icon{color:var(--accent);margin-right:10px}.soc a,.btn{align-items:center;gap:6px;display:inline-flex}.skill-title{align-items:center;gap:9px;display:flex}.skill-title .section-icon{width:22px;margin-right:0}.cv-card{flex-direction:column;min-height:220px;display:flex}.cv-card h3{align-items:center;gap:10px;margin-bottom:12px;display:flex}.cv-card p{flex:1}.cv-meta{color:var(--muted);align-items:center;gap:8px;margin-bottom:18px;font-size:14px;display:flex}.cv-card .btn{justify-content:center}:root{--bg:#05070b;--surface:#0b111a;--border:#7da0cd29;--border-strong:#4d8dff57;--fg:#f4f7fb;--muted:#96a4b7;--accent:#4d8dff;--accent-2:#72b4ff}body{background:radial-gradient(circle at 82% 8%,#4d8dff1a,transparent 28rem),radial-gradient(circle at 10% 40%,#4078dc0f,transparent 30rem),var(--bg);overflow-x:hidden}body:before{content:"";pointer-events:none;opacity:.16;z-index:-2;background-image:linear-gradient(#78a0d212 1px,#0000 1px),linear-gradient(90deg,#78a0d212 1px,#0000 1px);background-size:48px 48px;position:fixed;inset:0;-webkit-mask-image:linear-gradient(#000,#0000 85%);mask-image:linear-gradient(#000,#0000 85%)}header{-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);border-bottom:1px solid var(--border);background:#05070bc2}section{border-bottom:1px solid var(--border);padding:105px 0}.hero{min-height:calc(100vh - 60px);padding:82px 0 88px;position:relative}.hero:before{content:"";pointer-events:none;background:radial-gradient(circle,#4d8dff24,#0000 68%);border-radius:50%;width:520px;height:520px;position:absolute;top:50%;right:-130px;transform:translateY(-50%)}.role{color:var(--accent-2);letter-spacing:.13em;text-transform:uppercase;font-weight:700}.hero h2:after{content:"";background:linear-gradient(90deg,var(--accent),transparent);border-radius:5px;width:90px;height:4px;margin-top:24px;display:block}.hero-photo-wrap:after{content:"";border:1px dashed #72b4ff24;border-radius:50%;animation:22s linear infinite spin;position:absolute;inset:-28px}.hero-photo-wrap:before{box-shadow:0 0 50px #4d8dff1f;opacity:1!important;background:0 0!important;border:1px solid #4d8dff4d!important;inset:-12px!important}.card{border:1px solid var(--border);background:linear-gradient(145deg,#0e1621f0,#080d14f0);border-radius:16px;transition:transform .25s,border-color .25s,box-shadow .25s;box-shadow:0 18px 50px #0000001f}.card:hover{border-color:var(--border-strong);transform:translateY(-6px);box-shadow:0 22px 55px #00000038,0 0 35px #4d8dff0f}.btn{border-radius:10px;transition:transform .2s,border-color .2s,box-shadow .2s}.btn:hover{transform:translateY(-2px)}.btn.p{box-shadow:0 10px 30px #4d8dff29}.tags li{background:#4d8dff0e;border-color:#4d8dff1f}@keyframes spin{to{transform:rotate(360deg)}}@media (width<=700px){section{padding:78px 0}.hero{min-height:auto;padding:72px 0}.hero h2{font-size:clamp(48px,14vw,72px)}.hero-photo-wrap{transform:none!important}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important}.reveal{opacity:1;transform:none}}.edu-link{color:inherit;border-bottom:1px solid #4d8dff73;text-decoration:none;transition:color .2s,border-color .2s}.edu-link:hover{color:var(--accent-2);border-color:var(--accent-2)}.hero .role{letter-spacing:.1em;font-size:13px}.hero p.l{max-width:720px;font-size:18px!important}@media (width<=700px){.hero h2{font-size:clamp(40px,11vw,58px)!important}h2{font-size:clamp(27px,7vw,34px)!important}.card h3{font-size:19px!important}.hero p.l{font-size:17px!important}.contact a.h{font-size:clamp(21px,7vw,30px)!important}}.hero h2{letter-spacing:-.045em;font-size:clamp(36px,5.2vw,62px)!important}h2{letter-spacing:-.02em;font-size:clamp(25px,3.2vw,34px)!important}.card h3{font-size:18px!important}@media (width<=700px){.hero h2{font-size:clamp(34px,9.5vw,50px)!important}h2{font-size:clamp(24px,6.5vw,30px)!important}.card h3{font-size:18px!important}}.hero h2{letter-spacing:-.035em;line-height:1.12;font-size:clamp(30px,4vw,48px)!important}h2{letter-spacing:-.015em;line-height:1.15;font-size:clamp(22px,2.6vw,30px)!important}.card h3{line-height:1.25;font-size:17px!important}.role{letter-spacing:.08em;font-size:11px!important}.hero p.l{line-height:1.65;font-size:16px!important}.contact a.h{font-size:clamp(19px,3vw,28px)!important}.brand{font-size:14px}.sub{font-size:15px}@media (width<=700px){.hero h2{font-size:clamp(28px,8vw,40px)!important}h2{font-size:clamp(21px,5.5vw,27px)!important}.card h3{font-size:17px!important}.hero p.l{font-size:15px!important}.contact a.h{font-size:clamp(18px,6vw,25px)!important}}.hero{min-height:auto!important;padding:58px 0 52px!important}.name-photo{align-items:flex-start!important;gap:28px!important}.hero h2{max-width:620px}.hero .l{max-width:760px!important;margin:18px 0 24px!important}.soc{margin-top:24px!important}@media (width<=700px){.hero{padding:48px 0 44px!important}.name-photo{gap:22px!important}.hero-photo-wrap{transform:translateY(-10px)!important}.hero .l{margin:16px 0 22px!important}}.hero .name-photo{align-items:flex-start!important}.hero .row{margin-top:22px;margin-bottom:0}.hero-photo-wrap{transform:translate(100px,-18px)!important}.hero .l{margin-top:24px!important}@media (width<=900px){.hero-photo-wrap{transform:translate(45px,-14px)!important}}@media (width<=700px){.hero .row{margin-top:18px}.hero-photo-wrap{transform:translateY(-10px)!important}}.hero-content{min-height:390px;position:relative}.name-photo{min-height:0!important;display:block!important}.hero .row{z-index:3;position:relative;margin-top:22px!important;margin-bottom:0!important}.hero .l{z-index:3;position:relative;margin-top:20px!important;margin-bottom:24px!important}.soc{z-index:3;position:relative;margin-top:22px!important}@media (width<=1000px){.hero-photo-wrap{width:210px!important;height:210px!important;right:0!important}}@media (width<=700px){.hero{padding:48px 0 44px!important}.hero-content{min-height:0}.name-photo{display:block!important}.hero-photo-wrap{margin:24px 0 0;width:180px!important;height:180px!important;position:relative!important;top:auto!important;right:auto!important}.hero .row{margin-top:20px!important}}.hero .role,.hero .name-block,.hero .hero-photo-wrap,.hero .row,.hero .l,.hero .soc{opacity:0;animation-fill-mode:both}.hero .role{animation:.65s cubic-bezier(.22,1,.36,1) 80ms forwards heroFadeUp}.hero .name-block{animation:.75s cubic-bezier(.22,1,.36,1) .18s forwards heroFadeUp}.hero .hero-photo-wrap{animation:.9s cubic-bezier(.22,1,.36,1) .12s forwards heroPhotoIn}.hero .row{animation:.65s cubic-bezier(.22,1,.36,1) .38s forwards heroFadeUp}.hero .l{animation:.65s cubic-bezier(.22,1,.36,1) .48s forwards heroFadeUp}.hero .soc{animation:.65s cubic-bezier(.22,1,.36,1) .58s forwards heroFadeUp}.reveal{opacity:0;transition:opacity .65s cubic-bezier(.22,1,.36,1),transform .65s cubic-bezier(.22,1,.36,1);transform:translateY(20px)}.reveal.visible{opacity:1;transform:none}.grid .card:first-child,.proj .card:first-child{transition-delay:20ms}.grid .card:nth-child(2),.proj .card:nth-child(2){transition-delay:80ms}.grid .card:nth-child(3),.proj .card:nth-child(3){transition-delay:.14s}.grid .card:nth-child(4),.proj .card:nth-child(4){transition-delay:.2s}.proj .card:nth-child(5){transition-delay:.26s}.proj .card:nth-child(6){transition-delay:.32s}.card{transform-style:preserve-3d;position:relative;overflow:hidden}.card:before{content:"";pointer-events:none;background:linear-gradient(120deg,#0000 0%,#72b4ff09 42%,#72b4ff17 50%,#0000 58%);transition:transform .7s;position:absolute;inset:0;transform:translate(-120%)}@media (hover:hover) and (pointer:fine){.card:hover:before{transform:translate(120%)}.card:hover h3{transform:translate(2px)}.card h3{transition:transform .25s}.card:hover .tags li{border-color:#4d8dff38}}.btn{transition:transform .22s cubic-bezier(.22,1,.36,1),border-color .22s,box-shadow .22s,background .22s}@media (hover:hover) and (pointer:fine){.btn:hover{transform:translateY(-3px)}.btn i{transition:transform .22s}.btn:hover i{transform:translate(2px)}.btn.p:hover{box-shadow:0 14px 34px #4d8dff3d}}.soc a{transition:color .22s,transform .22s}@media (hover:hover) and (pointer:fine){.soc a:hover{transform:translateY(-2px)}}.hero-photo-wrap:after{animation:22s linear infinite spin}.hero-photo{transition:transform .45s cubic-bezier(.22,1,.36,1),filter .45s}@media (hover:hover) and (pointer:fine){.hero-photo-wrap:hover .hero-photo{filter:drop-shadow(0 22px 36px #00000057);transform:scale(1.025)}}section h2.reveal:after{content:"";background:linear-gradient(90deg,var(--accent),transparent);border-radius:2px;width:0;height:2px;margin-top:10px;transition:width .65s .12s;display:block}section h2.reveal.visible:after{width:54px}details{overflow:hidden}details p{animation:none}details[open] p{animation:.35s both detailsIn}body:after{transition:left .35s ease-out,top .35s ease-out}@keyframes heroFadeUp{0%{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}@keyframes heroPhotoIn{0%{opacity:0;transform:translate(22px,-14px)scale(.94)}to{opacity:1;transform:translate(0)scale(1)}}@keyframes detailsIn{0%{opacity:0;transform:translateY(-5px)}to{opacity:1;transform:translateY(0)}}@media (prefers-reduced-motion:reduce){.hero .role,.hero .name-block,.hero .hero-photo-wrap,.hero .row,.hero .l,.hero .soc{opacity:1;animation:none}.reveal{opacity:1;transition:none;transform:none}section h2.reveal:after{width:54px;transition:none}.card:before{display:none}}.hero{align-items:stretch!important;min-height:calc(100svh - 60px)!important;padding:34px 0 24px!important}.hero-content{min-height:calc(100svh - 118px)!important}.hero-topline{margin-bottom:12px!important}.hero-main{gap:42px!important}.hero-accent-line{margin:18px 0!important}.hero-statement{margin-bottom:10px!important}.hero p.l{margin-bottom:20px!important}.hero .soc{margin-top:18px!important}.hero-bottom{padding-top:13px!important}@media (width<=800px){.hero{min-height:auto!important;padding:32px 0 24px!important}.hero-content{min-height:auto!important}}.hero{background:radial-gradient(circle at 78% 42%,#4d8dff24,#0000 26%),radial-gradient(circle at 45% 100%,#4d8dff0e,#0000 35%),linear-gradient(#ffffff03,#0000 42%);position:relative;overflow:hidden;min-height:calc(100svh - 72px)!important;padding:54px 0 28px!important}.hero:after{content:"";pointer-events:none;opacity:.32;background-image:linear-gradient(#72b4ff0b 1px,#0000 1px),linear-gradient(90deg,#72b4ff0b 1px,#0000 1px);background-size:54px 54px;position:absolute;inset:0;-webkit-mask-image:linear-gradient(#000c,#0000 82%);mask-image:linear-gradient(#000c,#0000 82%)}.hero-content{z-index:2;flex-direction:column;justify-content:space-between;min-height:calc(100svh - 154px);display:flex;position:relative}.hero-topline{color:var(--muted);letter-spacing:.14em;text-transform:uppercase;justify-content:space-between;align-items:center;margin-bottom:20px;font:600 12px/1 Space Grotesk,system-ui,sans-serif;display:flex}.hero-kicker{color:#78adff;align-items:center;gap:9px;display:inline-flex}.kicker-dot{background:#4d8dff;border-radius:50%;width:7px;height:7px;box-shadow:0 0 0 5px #4d8dff1a,0 0 16px #4d8dffbf}.hero-index{opacity:.55}.hero-main{flex:1;grid-template-columns:minmax(0,1.12fr) minmax(320px,.88fr);align-items:center;gap:56px;display:grid}.hero-copy{z-index:4;max-width:760px;position:relative}.hero-overline{color:#6e9fe7;letter-spacing:.19em;margin:0 0 14px;font:700 12px/1.2 Space Grotesk,system-ui,sans-serif}.name-block{max-width:none!important}.hero h2{font-weight:700;letter-spacing:-.065em!important;margin:0!important;font-size:clamp(52px,6.2vw,82px)!important;line-height:.94!important}.hero h2 span{color:#9da8b8}.hero-accent-line{background:linear-gradient(90deg,#4d8dff,#4d8dff14);border-radius:99px;width:118px;height:4px;margin:23px 0;box-shadow:0 0 22px #4d8dff38}.hero-statement{max-width:690px;color:var(--fg);letter-spacing:-.025em;margin:0 0 13px;font:500 clamp(21px,2.1vw,29px)/1.28 Space Grotesk,system-ui,sans-serif}.hero p.l{color:var(--muted);line-height:1.65;max-width:690px!important;margin:0 0 25px!important;font-size:16px!important}.hero .row{gap:11px;margin:0!important}.hero .btn{border-radius:10px;padding:13px 19px}.hero .soc{gap:20px;margin:22px 0 0!important}.hero-visual{justify-content:center;align-items:center;min-height:420px;display:flex;position:relative}.hero-photo-wrap{z-index:3;width:292px!important;height:292px!important;position:relative!important;top:auto!important;right:auto!important;transform:none!important}.hero-photo{box-shadow:0 0 0 1px #ffffff0a,0 24px 70px #00000061,0 0 55px #4d8dff26;border-width:3px!important;padding:5px!important}.hero-photo-wrap:before{border:1px solid #4d8dff40;box-shadow:0 0 70px #4d8dff21;opacity:1!important;filter:none!important;background:0 0!important;inset:-18px!important}.hero-photo-wrap:after{border-color:#72b4ff1c!important;inset:-34px!important}.visual-orbit{pointer-events:none;border:1px solid #72b4ff14;border-radius:50%;position:absolute}.orbit-one{width:405px;height:405px;animation:30s linear infinite spin}.orbit-two{border-style:dashed;border-color:#72b4ff0b;width:500px;height:500px;animation:42s linear infinite spinReverse}.floating-card{z-index:5;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:#080c12c7;border:1px solid #72b4ff21;border-radius:10px;min-width:168px;padding:12px 15px;position:absolute;box-shadow:0 16px 38px #00000040}.floating-card-top{top:38px;right:8px}.floating-card-bottom{bottom:38px;left:2px}.floating-label{color:#6599df;letter-spacing:.16em;margin-bottom:4px;font:700 9px/1.2 Space Grotesk,system-ui,sans-serif;display:block}.floating-card strong{color:#e9eef6;font:500 13px/1.3 Space Grotesk,system-ui,sans-serif}.hero-bottom{color:#687484;letter-spacing:.12em;text-transform:uppercase;border-top:1px solid #72b4ff17;align-items:center;gap:28px;padding-top:18px;font:500 11px/1 Space Grotesk,system-ui,sans-serif;display:flex}.hero-bottom span:not(.scroll-cue):before{content:"";opacity:.75;background:#4d8dff;border-radius:50%;width:4px;height:4px;margin:0 9px 2px 0;display:inline-block}.scroll-cue{color:#8b98a9;margin-left:auto}.scroll-cue i{margin-left:7px;animation:1.8s ease-in-out infinite scrollNudge}@keyframes spinReverse{0%{transform:rotate(360deg)}to{transform:rotate(0)}}@keyframes scrollNudge{0%,to{transform:translateY(0)}50%{transform:translateY(3px)}}@media (width<=1050px){.hero-main{grid-template-columns:minmax(0,1fr) 340px;gap:25px}.hero-visual{min-height:380px}.hero-photo-wrap{width:255px!important;height:255px!important}.orbit-one{width:355px;height:355px}.orbit-two{width:430px;height:430px}.floating-card-top{right:-4px}}@media (width<=800px){.hero{min-height:auto!important;padding:42px 0 26px!important}.hero-content{gap:34px;min-height:auto}.hero-main{grid-template-columns:1fr;gap:38px}.hero-copy{max-width:700px}.hero h2{font-size:clamp(48px,11vw,72px)!important}.hero-visual{order:2;min-height:340px}.hero-photo-wrap{width:220px!important;height:220px!important}.orbit-one{width:305px;height:305px}.orbit-two{width:360px;height:360px}.floating-card-top{top:18px;right:4%}.floating-card-bottom{bottom:16px;left:4%}.hero-bottom{flex-wrap:wrap;gap:12px 22px}.scroll-cue{width:100%;margin-left:0;padding-top:4px}}@media (width<=520px){.hero-topline{margin-bottom:9px}.hero-index{display:none}.hero-overline{letter-spacing:.14em;font-size:10px}.hero h2{font-size:clamp(43px,12.5vw,60px)!important}.hero-statement{font-size:20px}.hero p.l{font-size:15px!important}.hero .btn{justify-content:center;width:100%}.hero .row{width:100%}.hero .soc{flex-wrap:wrap;gap:15px}.hero-visual{min-height:315px}.hero-photo-wrap{width:195px!important;height:195px!important}.orbit-one{width:270px;height:270px}.orbit-two{width:320px;height:320px}.floating-card{min-width:0;padding:9px 11px}.floating-card-top{top:18px;right:0}.floating-card-bottom{bottom:15px;left:0}.floating-card strong{font-size:11px}.hero-bottom span:not(.scroll-cue){font-size:9px}}@media (prefers-reduced-motion:reduce){.visual-orbit,.scroll-cue i{animation:none!important}}
