:root{--bg:#f8fafc;--surface:#fff;--surface-soft:#ffffffbd;--text:#0f172a;--muted:#475569;--subtle:#64748b;--border:#94a3b847;--border-strong:#e2e8f0;--blue:#2563eb;--teal:#0f766e;--indigo:#4f46e5;--shadow:0 18px 50px #0f172a14;--shadow-soft:0 12px 30px #0f172a0f;--radius-lg:28px;--radius-md:20px;--radius-sm:14px;--max:1160px}*{box-sizing:border-box}html{scroll-behavior:smooth}body{min-width:320px;color:var(--text);background:radial-gradient(circle at 0 0,#2563eb1a,#0000 34rem),radial-gradient(circle at 100% 0,#0f766e1a,#0000 30rem),linear-gradient(#f8fafc 0% 58%,#eef6ff 100%);margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}a{color:inherit;text-decoration:none}button,input,textarea{font:inherit}.app-shell{flex-direction:column;min-height:100vh;display:flex}main{flex:1}.container{width:min(var(--max), calc(100% - 40px));margin:0 auto}.section{padding:72px 0}.section.compact{padding:48px 0}.section-header{max-width:760px;margin-bottom:28px}.eyebrow{color:var(--teal);letter-spacing:.12em;text-transform:uppercase;margin:0 0 10px;font-size:.78rem;font-weight:800}.section-title{letter-spacing:-.055em;margin:0 0 14px;font-size:clamp(2rem,4vw,3.2rem);line-height:1.05}.section-description{color:var(--muted);margin:0;font-size:1.05rem;line-height:1.72}.navbar{z-index:50;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:#ffffffb8;border-bottom:1px solid #e2e8f0c7;position:sticky;top:0}.navbar-inner{justify-content:space-between;align-items:center;gap:20px;height:74px;display:flex}.brand{color:var(--text);align-items:center;display:inline-flex}.signature-brand{border-radius:12px;height:48px;padding:4px 0;transition:color .2s}.signature-brand.active{color:var(--text);background:0 0}.signature-brand:hover,.signature-brand.active:hover{background:0 0}.signature-logo{transform-origin:0;width:156px;height:42px;transition:transform .2s,filter .2s;display:block;overflow:visible}.signature-logo-image{opacity:0;animation:.18s forwards signature-ink-visible}.signature-write-stroke{fill:none;stroke:#fff;stroke-width:58px;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:1250;stroke-dashoffset:1250px;animation:.9s forwards signature-write}.signature-write-stroke.stroke-one{animation-duration:1.05s}.signature-write-stroke.stroke-two{animation-duration:.48s;animation-delay:.76s}.signature-write-stroke.stroke-three{animation-duration:.5s;animation-delay:.92s}.signature-write-stroke.stroke-four{animation-duration:.54s;animation-delay:1.08s}.signature-write-stroke.stroke-five{animation-duration:.78s;animation-delay:1.22s}.signature-write-stroke.stroke-six{animation-duration:.48s;animation-delay:1.52s}.signature-write-stroke.stroke-seven{animation-duration:.52s;animation-delay:1.65s}.signature-brand:hover .signature-logo{filter:drop-shadow(0 8px 14px #0f172a1f);transform:translateY(-1px)scale(1.02)}@keyframes signature-ink-visible{to{opacity:1}}@keyframes signature-write{to{stroke-dashoffset:0}}@keyframes footer-logo-in{0%{opacity:0;filter:blur(2px);transform:translateY(4px)scale(.96)}to{opacity:1;filter:none;transform:translateY(0)scale(1)}}@keyframes network-float{0%{filter:saturate(1.22)contrast(1.08)brightness(1.02)hue-rotate(-10deg);transform:scale(1.08)translate(-14px,10px)rotate(-2.2deg)}38%{filter:saturate(1.65)contrast(1.18)brightness(1.12)hue-rotate(22deg);transform:scale(1.16)translate(10px,-13px)rotate(1.7deg)}72%{filter:saturate(1.42)contrast(1.12)brightness(1.08)hue-rotate(44deg);transform:scale(1.12)translate(13px,8px)rotate(-.8deg)}to{filter:saturate(1.78)contrast(1.2)brightness(1.13)hue-rotate(12deg);transform:scale(1.18)translate(-8px,-10px)rotate(2.4deg)}}@keyframes network-color-wash{0%{opacity:.58;transform:translate(-7%,-4%)rotate(-8deg)scale(1)}50%{opacity:.95;transform:translate(6%,5%)rotate(9deg)scale(1.08)}to{opacity:.72;transform:translate(-2%,7%)rotate(-3deg)scale(1.04)}}@keyframes network-sweep{0%{opacity:0;transform:translate(-140%)rotate(19deg)}18%{opacity:.52}44%{opacity:.18}to{opacity:0;transform:translate(140%)rotate(19deg)}}@keyframes network-orbit{0%{transform:rotate(0deg) translateX(var(--orbit-radius)) rotate(0deg) scale(.72);opacity:.35}45%{opacity:.95}to{transform:rotate(360deg) translateX(var(--orbit-radius)) rotate(-360deg) scale(1.08);opacity:.5}}@keyframes network-pulse{0%,to{opacity:.18;transform:translate(-50%,-50%)scale(.42)}46%{opacity:.88;transform:translate(-50%,-50%)scale(1.35)}72%{opacity:.38;transform:translate(-50%,-50%)scale(.82)}}@media (prefers-reduced-motion:reduce){.signature-logo-image{opacity:1;animation:none}.signature-write-stroke{stroke-dashoffset:0;animation:none}.footer-logo,.network-hero-image,.network-hero-card:before,.network-sweep,.network-orbit,.network-pulse{animation:none}}.nav-links{align-items:center;gap:4px;display:flex}.nav-link{color:var(--muted);border-radius:999px;padding:10px 13px;font-size:.94rem;font-weight:700;transition:color .2s,background .2s}.nav-link:hover,.nav-link.active{color:var(--blue);background:#2563eb14}.mobile-menu-button{border:1px solid var(--border);color:var(--text);background:#fffc;border-radius:12px;padding:9px;display:none}.footer{border-top:1px solid var(--border-strong);background:#ffffffb8;margin-top:auto}.footer-inner{min-height:92px;color:var(--muted);grid-template-columns:1fr 2fr 1fr;align-items:center;gap:20px;font-size:.9rem;display:grid}.footer-brand{color:var(--text);letter-spacing:-.035em;align-items:center;font-weight:850;display:flex}.footer-logo{object-fit:contain;width:auto;max-width:142px;height:38px;animation:.65s both footer-logo-in;display:block}.footer-center{text-align:center}.footer-links{flex-wrap:wrap;justify-content:flex-end;gap:12px;display:flex}.footer-links a{color:var(--muted);font-weight:700}.footer-links a:hover{color:var(--blue)}.page-header{border-bottom:1px solid #e2e8f0c7;padding:52px 0 34px;position:relative;overflow:hidden}.page-header:before{content:"";opacity:.55;background-image:linear-gradient(#2563eb12 1px,#0000 1px),linear-gradient(90deg,#0f766e0f 1px,#0000 1px);background-size:44px 44px;position:absolute;inset:0;-webkit-mask-image:linear-gradient(90deg,#000,#0000 78%);mask-image:linear-gradient(90deg,#000,#0000 78%)}.page-header-content{max-width:820px;position:relative}.page-title{letter-spacing:-.06em;margin:0 0 14px;font-size:clamp(2.15rem,4.8vw,3.8rem);line-height:1}.page-description{color:var(--muted);max-width:720px;margin:0;font-size:clamp(1rem,2vw,1.18rem);line-height:1.75}.card{border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-soft);background:#ffffffc7;padding:24px}.card.clickable{transition:transform .2s,box-shadow .2s,border-color .2s}.card.clickable:hover{box-shadow:var(--shadow);border-color:#2563eb52;transform:translateY(-4px)}.grid{gap:18px;display:grid}.grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}.grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}.grid.four{grid-template-columns:repeat(4,minmax(0,1fr))}.hero{padding:78px 0 44px}.hero-grid{grid-template-columns:1.05fr .95fr;align-items:center;gap:48px;display:grid}.hero-title{letter-spacing:-.09em;margin:0 0 22px;font-size:clamp(3.5rem,8vw,6.8rem);line-height:.88}.hero-headline{color:var(--muted);max-width:650px;margin:0 0 30px;font-size:clamp(1.12rem,2vw,1.38rem);line-height:1.62}.hero-actions,.cta-actions{flex-wrap:wrap;gap:13px;display:flex}.btn,.link-button,.tool-button,.contact-button{isolation:isolate;color:#fff;background:linear-gradient(135deg, var(--blue), var(--teal));border:1px solid #1d4ed88c;justify-content:center;align-items:center;gap:8px;font-weight:850;transition:transform .2s,box-shadow .2s,border-color .2s;display:inline-flex;position:relative;overflow:hidden;box-shadow:0 12px 26px #2563eb33}.btn:before,.link-button:before,.tool-button:before,.contact-button:before{content:"";z-index:-1;opacity:0;background:linear-gradient(135deg,#ffffff2e,#fff0);transition:opacity .2s;position:absolute;inset:0}.btn:hover,.link-button:hover,.tool-button:hover,.contact-button:hover{border-color:#0f766e9e;transform:translateY(-2px);box-shadow:0 16px 34px #2563eb42}.btn:hover:before,.link-button:hover:before,.tool-button:hover:before,.contact-button:hover:before{opacity:1}.button-label{line-height:1;transition:transform .2s,text-shadow .2s;display:inline-block}.btn:hover .button-label,.link-button:hover .button-label,.tool-button:hover .button-label,.contact-button:hover .button-label{text-shadow:0 8px 14px #0f172a38;transform:translateY(-3px)}.btn svg,.link-button svg,.tool-button svg,.contact-button svg{flex:none;transition:transform .2s}.btn:hover svg,.link-button:hover svg,.tool-button:hover svg,.contact-button:hover svg{transform:translateY(-2px)}.btn{border-radius:999px;padding:12px 18px;font-weight:800}.btn.secondary{color:#fff}.hero-visual{justify-content:center;align-items:center;min-height:420px;display:flex;position:relative}.photo-card{aspect-ratio:4/5;width:min(340px,72vw);box-shadow:var(--shadow);background:linear-gradient(135deg,#2563eb2e,#0f766e29);border:1px solid #ffffffe6;border-radius:30px;place-items:center;display:grid;overflow:hidden}.profile-photo{object-fit:cover;object-position:center;border-radius:26px;width:100%;height:100%;min-height:320px;display:block}.network-hero-card{aspect-ratio:1;isolation:isolate;background:#020617;border:1px solid #ffffffc7;border-radius:28px;width:min(520px,82vw);position:relative;overflow:hidden;box-shadow:0 28px 70px #0f172a2e,0 0 0 10px #ffffff75}.network-hero-card:before{content:"";z-index:1;mix-blend-mode:screen;pointer-events:none;background:linear-gradient(135deg,#2563eb57,#0000 34%),linear-gradient(315deg,#0f766e61,#0000 38%),radial-gradient(circle at 52% 38%,#ffffff38,#0000 22%),radial-gradient(circle at 34% 66%,#14b8a63d,#0000 18%),radial-gradient(circle at 70% 28%,#60a5fa42,#0000 17%);animation:5.5s ease-in-out infinite network-color-wash;position:absolute;inset:0}.network-hero-card:after{content:"";z-index:2;pointer-events:none;background:linear-gradient(#ffffff14,#0000 28%,#0f172a2e);border:1px solid #ffffff2e;border-radius:27px;position:absolute;inset:1px}.network-hero-image{object-fit:cover;object-position:center;filter:saturate(1.32)contrast(1.08)brightness(1.06)hue-rotate(8deg);will-change:transform, filter;width:100%;height:100%;animation:8s cubic-bezier(.45,0,.2,1) infinite alternate network-float;display:block;transform:scale(1.035)}.network-sweep{z-index:3;filter:blur(9px);mix-blend-mode:screen;pointer-events:none;background:linear-gradient(90deg,#0000,#ffffff9e,#7dd3fc61,#0000);width:34%;animation:3.8s ease-in-out infinite network-sweep;position:absolute;inset:-25% auto -25% -20%}.network-orbit{z-index:4;pointer-events:none;background:radial-gradient(circle,#fff 0 22%,#7dd3fc 42%,#0f766e1a 72%);border-radius:999px;width:14px;height:14px;margin:-7px 0 0 -7px;animation:6s linear infinite network-orbit;position:absolute;top:50%;left:50%;box-shadow:0 0 18px #38bdf8e6,0 0 42px #14b8a675}.network-orbit.orbit-one{--orbit-radius:184px;animation-duration:5.6s}.network-orbit.orbit-two{--orbit-radius:132px;background:radial-gradient(circle,#fff 0 20%,#60a5fa 46%,#2563eb1a 76%);animation-duration:7.4s;animation-direction:reverse}.network-orbit.orbit-three{--orbit-radius:224px;background:radial-gradient(circle,#fff 0 18%,#2dd4bf 48%,#14b8a61a 78%);animation-duration:9s;animation-delay:-2.2s}.network-pulse{z-index:3;mix-blend-mode:screen;pointer-events:none;background:radial-gradient(circle,#ffffffc7 0 5%,#60a5fa6b 18%,#14b8a624 42%,#0000 70%);border:1px solid #ffffff2e;border-radius:999px;width:108px;height:108px;animation:3.2s ease-in-out infinite network-pulse;position:absolute;transform:translate(-50%,-50%)}.network-pulse.pulse-one{animation-delay:-.2s;top:38%;left:49%}.network-pulse.pulse-two{width:132px;height:132px;animation-delay:-1.1s;top:58%;left:41%}.network-pulse.pulse-three{width:86px;height:86px;animation-delay:-2s;top:66%;left:67%}.network-hero-card:hover .network-hero-image{animation-duration:4.8s}.network-hero-card:hover .network-sweep{animation-duration:2.2s}.photo-placeholder{text-align:center;color:var(--muted);padding:26px}.photo-placeholder strong{color:var(--text);margin-bottom:8px;font-size:1.25rem;display:block}.tag-row{flex-wrap:wrap;gap:7px;margin-top:14px;display:flex}.tag{color:#315fbd;background:#2563eb0f;border-radius:999px;align-items:center;padding:5px 8px;font-size:.72rem;font-weight:750;display:inline-flex}.tag.more{color:var(--subtle);background:#64748b14}.card-title{letter-spacing:-.025em;margin:0 0 10px;font-size:1.15rem}.card-text{color:var(--muted);margin:0;line-height:1.68}.meta{color:var(--subtle);margin:0 0 8px;font-size:.9rem;font-weight:700}.badge{color:var(--teal);background:#0f766e14;border-radius:999px;margin-bottom:14px;padding:6px 10px;font-size:.75rem;font-weight:850;display:inline-flex}.publication-card,.update-card,.research-card{height:100%}.publication-card{border-left:5px solid var(--journal-color,var(--blue))}.publication-card-inner{grid-template-columns:minmax(0,3fr) minmax(170px,1fr);align-items:stretch;gap:22px;display:grid}.publication-copy{min-width:0}.journal-meta{color:var(--journal-color,var(--subtle))}.publication-visual{background:color-mix(in srgb, var(--journal-color,var(--blue)) 12%, #fff);border:1px solid color-mix(in srgb, var(--journal-color,var(--blue)) 22%, #e2e8f0);isolation:isolate;border-radius:16px;place-items:center;height:100%;min-height:180px;display:grid;position:relative;overflow:hidden}.publication-visual img{object-fit:cover;object-position:center;z-index:1;width:100%;height:100%;display:block;position:relative}.publication-visual span{z-index:2;color:var(--text);background:#ffffffd1;border:1px solid #e2e8f0db;border-radius:10px;padding:7px 9px;font-size:.74rem;font-weight:850;line-height:1.25;position:absolute;bottom:12px;left:12px;right:12px;box-shadow:0 8px 18px #0f172a14}.visual-node{background:var(--journal-color,var(--blue));opacity:.88;box-shadow:0 14px 30px color-mix(in srgb, var(--journal-color,var(--blue)) 28%, transparent);border-radius:999px;position:absolute}.visual-node.main{width:88px;height:88px;top:34px;left:26px}.visual-node.secondary{opacity:.62;width:58px;height:58px;top:54px;right:28px}.visual-node.tertiary{opacity:.42;width:46px;height:46px;bottom:48px;left:54%}.publication-visual:before,.publication-visual:after{content:"";z-index:0;background:color-mix(in srgb, var(--journal-color,var(--blue)) 55%, transparent);opacity:.58;position:absolute}.publication-visual:before{width:72%;height:3px;top:80px;left:18%;transform:rotate(18deg)}.publication-visual:after{width:58%;height:3px;bottom:80px;right:16%;transform:rotate(-24deg)}.publication-visual-image:before,.publication-visual-image:after{content:none}.publication-visual-plant .visual-node{border-radius:42% 58% 48% 52%}.publication-visual-plant:before{width:3px;height:110px;top:32px;left:42%;transform:rotate(78deg)}.tool-card{flex-direction:column;height:100%;display:flex}.publication-list{grid-template-columns:1fr;gap:18px;max-width:100%;display:grid}.featured-publication,.home-tools-grid{max-width:100%}.publication-links,.tool-actions{flex-wrap:wrap;gap:10px;margin-top:18px;display:flex}.tool-actions{margin-top:auto;padding-top:20px}.text-link{color:var(--blue);font-weight:850}.text-link:hover{color:var(--teal)}.link-button{border-radius:10px;min-height:40px;padding:9px 13px;font-size:.88rem}.link-button .button-label{font-size:.82rem}.tool-button{border-radius:12px;width:100%;min-height:42px;padding:10px 14px;font-size:.92rem}.tool-button.secondary{color:#fff}.status-line{color:var(--subtle);margin:12px 0 0;font-size:.92rem;font-weight:700}.method-list{gap:14px;display:grid}.method-item{border:1px solid var(--border);border-radius:var(--radius-sm);background:#ffffff94;padding:18px}.method-item h3{margin:0 0 6px;font-size:1rem}.method-item p{color:var(--muted);margin:0;line-height:1.6}.cv-layout{grid-template-columns:1fr 1fr;gap:48px;max-width:980px;padding:10px 0 24px;display:grid}.cv-section{border-top:1px solid var(--border-strong);padding:20px 0 22px}.cv-section h2{letter-spacing:0;margin:0 0 10px;font-size:1.02rem}.cv-section p{color:var(--muted);margin:0;line-height:1.72}.cv-section ul{color:var(--muted);margin:0;padding-left:19px;line-height:1.7}.cv-section li+li{margin-top:5px}.notice-panel{border-top:1px solid var(--border-strong);border-bottom:1px solid var(--border-strong);max-width:720px;padding:30px 0}.notice-panel h2{letter-spacing:0;margin:0 0 10px;font-size:1.35rem}.notice-panel p{color:var(--muted);margin:0;line-height:1.7}.about-preview{grid-template-columns:260px minmax(0,1fr);align-items:center;gap:34px;max-width:860px;display:grid}.about-photo-card{aspect-ratio:4/5;border:1px solid var(--border);width:100%;box-shadow:var(--shadow-soft);background:#ffffffc2;border-radius:24px;overflow:hidden}.about-profile-photo{object-fit:cover;object-position:center;width:100%;height:100%;display:block}.profile-list{gap:14px;max-width:760px;display:grid}.profile-card{grid-template-columns:1fr auto;align-items:center;gap:18px;display:grid}.profile-card .publication-links{justify-content:flex-end;margin-top:0}.contact-button-list{flex-wrap:wrap;gap:12px;max-width:760px;display:flex}.contact-button{border-radius:12px;min-height:46px;padding:11px 16px;font-size:.94rem}@media (width<=920px){.hero-grid{grid-template-columns:1fr}.hero-visual{min-height:390px}.publication-card-inner{grid-template-columns:minmax(0,2.2fr) minmax(150px,.8fr)}.grid.three,.grid.four{grid-template-columns:repeat(2,minmax(0,1fr))}.footer-inner{text-align:center;grid-template-columns:1fr;padding:24px 0}.footer-links{justify-content:center}}@media (width<=720px){.container{width:min(100% - 28px, var(--max))}.navbar-inner{height:66px}.mobile-menu-button{display:inline-flex}.nav-links{border:1px solid var(--border);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);box-shadow:var(--shadow);background:#ffffffeb;border-radius:18px;flex-direction:column;align-items:stretch;padding:12px;display:none;position:absolute;top:66px;left:14px;right:14px}.nav-links.open{display:flex}.nav-link{width:100%}.section{padding:52px 0}.grid.two,.grid.three,.grid.four{grid-template-columns:1fr}.cv-layout{grid-template-columns:1fr;gap:8px}.publication-card-inner{grid-template-columns:1fr}.publication-visual{min-height:170px;max-height:220px}.profile-card{grid-template-columns:1fr}.profile-card .publication-links{justify-content:flex-start}.about-preview{grid-template-columns:1fr;gap:20px}.about-photo-card{width:min(260px,72vw)}.hero{padding-top:58px}.hero-title{font-size:clamp(3.2rem,16vw,5rem)}.hero-visual{min-height:auto;display:block}.photo-card{margin:0 auto 18px}.network-hero-card{border-radius:24px;width:min(100%,440px);margin:0 auto 18px}}
