@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/8a480f0b521d4e75-s.8e0177b5.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/7178b3e590c64307-s.b97b3418.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,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:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/caa3a2e1cccd8315-s.p.853070df.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Geist Fallback;src:local(Arial);ascent-override:95.94%;descent-override:28.16%;line-gap-override:0.0%;size-adjust:104.76%}.geist_a71539c9-module__T19VSG__className{font-family:Geist,Geist Fallback;font-style:normal}.geist_a71539c9-module__T19VSG__variable{--font-geist-sans:"Geist","Geist Fallback"}
@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/4fa387ec64143e14-s.c1fdd6c2.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/bbc41e54d2fcbd21-s.799d8ef8.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,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:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/797e433ab948586e-s.p.dbea232f.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Geist Mono Fallback;src:local(Arial);ascent-override:74.67%;descent-override:21.92%;line-gap-override:0.0%;size-adjust:134.59%}.geist_mono_8d43a2aa-module__8Li5zG__className{font-family:Geist Mono,Geist Mono Fallback;font-style:normal}.geist_mono_8d43a2aa-module__8Li5zG__variable{--font-geist-mono:"Geist Mono","Geist Mono Fallback"}
:root{--bg:#f5f7fb;--surface:#ffffffd1;--text:#122033;--muted:#5d6d82;--line:#12203314;--primary:#1f6feb;--primary-dark:#164fa9;--accent:#14b8a6;--title-color:#0f4c81;--title-soft:#15803d;--hero-1:#122744;--hero-2:#193d69;--shadow:0 16px 40px #0f1c2f1a;--shadow-soft:0 8px 22px #0f1c2f12;--radius:20px;--max:1180px}*{box-sizing:border-box}html{scroll-behavior:smooth}html,body{margin:0;padding:0}body{background:radial-gradient(circle at top left,#1f6feb14,transparent 28%),radial-gradient(circle at top right,#14b8a61a,transparent 24%),var(--bg);color:var(--text);font-family:Inter,Segoe UI,Roboto,Helvetica,Arial,sans-serif;line-height:1.65}a{color:inherit;text-decoration:none}img,iframe{max-width:100%}button,input,textarea{font:inherit}.site-shell{overflow-x:hidden}.container{width:min(92%,var(--max));margin:0 auto}.navbar{z-index:1000;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:#f5f7fbdb;border-bottom:1px solid #1220330f;position:sticky;top:0}.nav-inner{justify-content:space-between;align-items:center;gap:1rem;min-height:72px;display:flex}.brand{letter-spacing:-.02em;align-items:center;gap:.7rem;font-weight:800;display:inline-flex}.brand-dot{background:linear-gradient(135deg,var(--primary),var(--accent));border-radius:999px;width:12px;height:12px;box-shadow:0 0 0 8px #14b8a61a}.nav-menu{flex-wrap:wrap;align-items:center;gap:1.05rem;display:flex}.nav-menu a{color:var(--muted);font-size:.95rem;font-weight:600;transition:color .2s}.nav-menu a:hover{color:var(--primary)}.hero{padding:1.4rem 0 1.2rem}.hero-grid{grid-template-columns:minmax(0,1.25fr) minmax(280px,.75fr);align-items:stretch;gap:1rem;display:grid}.hero-copy,.hero-card{border-radius:24px;overflow:hidden}.hero-copy{background:linear-gradient(135deg,#ffffff14,#ffffff05),linear-gradient(135deg,var(--hero-1),var(--hero-2));color:#f7fbff;box-shadow:var(--shadow);padding:1.6rem 1.35rem;position:relative}.hero-copy:after{content:"";background:radial-gradient(circle,#14b8a63d,#0000 68%);border-radius:999px;width:160px;height:160px;position:absolute;bottom:-70px;right:-70px}.hero-eyebrow{color:#f7fbffe6;margin:0 0 .45rem;font-size:.82rem;font-weight:600}.hero h1{letter-spacing:-.04em;max-width:14ch;margin:0;font-size:clamp(1.7rem,4vw,2.8rem);line-height:1.12}.hero-text{color:#f7fbffe0;max-width:56ch;margin:.85rem 0 0;font-size:.95rem}.hero-about{border-top:1px solid #ffffff24;margin-top:1rem;padding-top:1rem}.hero-about h2{color:#86efac;letter-spacing:-.02em;margin:0 0 .6rem;font-size:1rem}.hero-about p{color:#f7fbffe0;margin:0 0 .6rem;font-size:.95rem}.hero-actions{flex-wrap:wrap;gap:.75rem;margin-top:1rem;display:flex}.btn{cursor:pointer;border:1px solid #0000;border-radius:999px;justify-content:center;align-items:center;min-height:44px;padding:.72rem 1rem;font-size:.92rem;font-weight:700;transition:transform .2s,box-shadow .2s,opacity .2s,background .2s;display:inline-flex}.btn:hover:not(:disabled){transform:translateY(-1px)}.btn-primary{background:linear-gradient(135deg,var(--accent),#10a0d9);color:#fff;box-shadow:0 10px 24px #14b8a638}.btn-secondary{color:#fff;background:#ffffff14;border-color:#ffffff2e}.hero-links{flex-wrap:wrap;gap:.8rem 1rem;margin-top:.9rem;display:flex}.hero-links a{color:#f7fbffe6;font-size:.88rem;font-weight:600}.hero-card{box-shadow:var(--shadow-soft);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:linear-gradient(#fffffff0,#ffffffd6);border:1px solid #ffffffb3;padding:1.2rem}.profile-orb{background:radial-gradient(circle at 30% 30%,#63d7c9 0,#1f6feb 50%,#15365f 100%);border-radius:50%;width:54px;height:54px;margin-bottom:.75rem;box-shadow:inset 0 0 0 5px #ffffff5c}.hero-card h2{color:var(--title-color);letter-spacing:-.02em;margin:0 0 .55rem;font-size:1.1rem}.hero-card ul{color:var(--muted);margin:0;padding-left:1rem}.hero-card li{margin-bottom:.4rem;font-size:.93rem}.section{padding:2rem 0}.section-alt{background:linear-gradient(#ffffff57,#ffffff1a);border-block:1px solid #1220330d}.section-heading{text-align:left;margin-bottom:1rem}.section-heading h2{letter-spacing:-.03em;color:var(--title-color);margin:0;font-size:clamp(1.3rem,2.2vw,1.65rem);font-weight:800;line-height:1.1}.info-card,.project-card,.timeline-item,.publication-card,.conference-card,.contact-card,.weather-panel{background:var(--surface);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);box-shadow:var(--shadow-soft);border:1px solid #ffffffdb}.info-card p,.project-card p,.timeline-item p,.publication-card p,.conference-card p,.weather-intro{color:var(--muted);margin:0;font-size:1rem}.card-grid{gap:1rem;display:grid}.card-grid.four{grid-template-columns:repeat(4,minmax(0,1fr))}.card-grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}.info-card,.project-card{border-radius:18px;padding:1rem}.card-icon{background:linear-gradient(135deg,#1f6feb29,#14b8a633);border-radius:11px;width:34px;height:34px;margin-bottom:.7rem}.info-card h3,.project-card h3,.timeline-item h3,.publication-card h3,.conference-card h3{letter-spacing:-.02em;color:var(--title-soft);margin:0 0 .45rem;font-size:1rem}.project-position{font-weight:700;color:var(--primary-dark)!important;margin-bottom:.25rem!important}.project-org{font-size:.95rem;margin-bottom:.2rem!important}.project-duration{font-size:.92rem;font-weight:700;color:var(--primary)!important}.project-meta{border-top:1px solid var(--line);gap:.45rem;margin-top:.8rem;padding-top:.8rem;display:grid}.stack-grid{gap:.9rem;display:grid}.timeline-item{border-radius:18px;padding:1rem 1.1rem}.timeline-date{color:var(--primary);margin-bottom:.45rem;font-size:.95rem;font-weight:800;display:inline-block}.skills-wrap{flex-wrap:wrap;gap:.65rem;display:flex}.skill-pill{color:#20405f;background:linear-gradient(#fff,#eef6fb);border:1px solid #1220330f;border-radius:999px;align-items:center;min-height:42px;padding:.62rem .96rem;font-size:.98rem;font-weight:700;display:inline-flex;box-shadow:0 6px 14px #0f1c2f0d}.weather-grid{grid-template-columns:1fr;gap:1rem;display:grid}.weather-panel{-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:#ffffffd1;border:1px solid #ffffffdb;border-radius:18px;padding:1rem;box-shadow:0 8px 22px #0f1c2f12}.rainfall-panel{overflow:hidden}.weather-title{color:var(--title-color);margin:0 0 .35rem;font-size:1rem;font-weight:800}.weather-intro{color:#5d6d82;margin:0;font-size:.98rem}.weather-map-wrapper,.dhm-crop-box{background:#e8f0f7;border:1px solid #1220330f;border-radius:16px;width:100%;margin-top:.9rem;position:relative;overflow:hidden}.weather-map-wrapper{height:420px}.dhm-crop-box{background:#edf3f8;width:95%;max-width:1200px;height:500px;margin:.9rem auto 0}.weather-map-frame{border:0;width:100%;height:100%;display:block}.dhm-crop-frame{border:0;width:1560px;height:760px;position:absolute;top:-195px;left:15px}.weather-link{color:#1f6feb;margin-top:.8rem;font-size:.95rem;font-weight:800;display:inline-block}.publication-list,.conference-list{gap:.9rem;display:grid}.publication-card,.conference-card{border-radius:18px;padding:1rem 1.1rem}.publication-card{grid-template-columns:76px 1fr auto;align-items:center;gap:.8rem;display:grid}.publication-year{min-height:48px;color:var(--primary-dark);background:linear-gradient(135deg,#1f6feb1f,#14b8a629);border-radius:14px;justify-content:center;align-items:center;font-weight:800;display:inline-flex}.publication-authors,.conference-authors{margin-top:.2rem!important;font-size:.95rem!important}.publication-publisher,.conference-publisher{font-weight:700;color:var(--primary-dark)!important;margin-top:.25rem!important}.conference-location{color:var(--muted);margin-top:.25rem!important;font-size:.95rem!important}.text-link{white-space:nowrap;color:var(--primary);font-size:.95rem;font-weight:800}.contact-section{padding-bottom:3rem}.contact-grid{grid-template-columns:1fr 1fr;align-items:start;gap:1rem;display:grid}.contact-copy{max-width:56ch;color:var(--text);margin:0;font-size:1.15rem;font-weight:500;line-height:1.75}.contact-list{gap:.75rem;margin-top:1.15rem;display:grid}.contact-list a,.contact-list span{color:var(--text);font-size:1.02rem;font-weight:700}.contact-card{border-radius:20px;gap:.95rem;padding:1.15rem;display:grid}.contact-card label{color:var(--text);gap:.42rem;font-weight:700;display:grid}.contact-card input,.contact-card textarea{width:100%;color:var(--text);background:#fffffff0;border:1px solid #1220331a;border-radius:14px;outline:none;padding:.9rem 1rem;transition:border-color .2s,box-shadow .2s,background .2s}.contact-card input::placeholder,.contact-card textarea::placeholder{color:#7b8a9d}.contact-card input:focus,.contact-card textarea:focus{background:#fff;border-color:#1f6feb59;box-shadow:0 0 0 4px #1f6feb14}.contact-card textarea{resize:vertical;min-height:140px}.btn:disabled,.contact-card button:disabled{opacity:.55;cursor:not-allowed;box-shadow:none;transform:none}.form-status{margin:.15rem 0 0;font-size:.95rem;font-weight:700}.form-status-success{color:#10967f}.form-status-error{color:#d14343}.footer{background:#e9ebf0;border-top:1px solid #1220330f;padding:1.2rem 0}.footer-center{flex-direction:column;justify-content:center;align-items:center;gap:.5rem;display:flex}.footer-icons{align-items:center;gap:.9rem;display:flex}.footer-icons img{object-fit:contain;cursor:pointer;width:26px;height:26px;transition:transform .2s,opacity .2s}.footer-icons img:hover{opacity:.85;transform:translateY(-2px)scale(1.08)}.footer-text{color:#444;text-align:center;margin:0;font-size:.9rem;font-weight:500}@media (max-width:1080px){.card-grid.four{grid-template-columns:repeat(2,minmax(0,1fr))}.card-grid.three,.contact-grid,.hero-grid{grid-template-columns:1fr}}@media (max-width:768px){.weather-map-wrapper{height:300px}.dhm-crop-box{height:380px}.dhm-crop-frame{width:1340px;height:780px;top:-88px;left:-260px}}@media (max-width:720px){.nav-inner{flex-direction:column;align-items:flex-start;min-height:auto;padding:.9rem 0}.nav-menu{gap:.8rem}.hero h1{max-width:100%}.hero-copy,.hero-card,.info-card,.project-card,.timeline-item,.publication-card,.conference-card,.contact-card,.weather-panel{padding:1rem}.card-grid.four,.publication-card{grid-template-columns:1fr}.contact-copy{font-size:1.05rem}.footer-inner{flex-direction:column;align-items:center}}
