:root{--ivory:#fafdf8;--cream:#f2f7f0;--mint:#e4efe2;--mint-soft:#eff6ed;--forest:#1a3c2a;--forest-mid:#24523a;--emerald:#2d7a50;--emerald-bright:#34925e;--sage:#6fa882;--sage-light:#93c4a4;--leaf:#a3d4b1;--olive:#4a6b52;--bark:#3d3832;--bark-light:#6b635a;--warm:#8a8078;--white:#fff;--gold:#b8943f;--gold-soft:#b8943f14}*{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{background:var(--ivory);color:var(--bark);cursor:none;-webkit-font-smoothing:antialiased;font-family:Plus Jakarta Sans,sans-serif;overflow-x:hidden}.cursor{background:var(--emerald);pointer-events:none;z-index:10000;mix-blend-mode:darken;border-radius:50%;width:10px;height:10px;transition:transform .15s;position:fixed}.cursor-glow{border:1.5px solid var(--sage);pointer-events:none;z-index:9999;opacity:.6;border-radius:50%;width:44px;height:44px;transition:all .2s;position:fixed}.cursor.active{background:var(--sage-light);transform:scale(3)}.cursor-glow.active{opacity:0;transform:scale(1.6)}.texture{pointer-events:none;z-index:9990;opacity:.025;background-image:url("data:image/svg+xml,%3Csvg width='256' height='256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence baseFrequency='0.85' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");position:fixed;inset:0}#three-canvas{z-index:0;pointer-events:none;position:fixed;inset:0}nav{z-index:100;box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none;background:0 0;border-bottom:1px solid #0000;justify-content:space-between;align-items:center;padding:1.4rem 4.5rem;transition:padding .5s cubic-bezier(.16,1,.3,1),background .5s cubic-bezier(.16,1,.3,1),border-bottom-color .5s cubic-bezier(.16,1,.3,1),box-shadow .5s cubic-bezier(.16,1,.3,1),-webkit-backdrop-filter .5s cubic-bezier(.16,1,.3,1),backdrop-filter .5s cubic-bezier(.16,1,.3,1);display:flex;position:fixed;top:0;left:0;right:0}nav.scrolled{-webkit-backdrop-filter:blur(30px)saturate(1.6);backdrop-filter:blur(30px)saturate(1.6);background:#fafdf8d1;border-bottom:1px solid #2d7a5014;padding:.9rem 4.5rem;box-shadow:0 1px 30px #1a3c2a0a}.nav-brand{color:var(--forest);letter-spacing:-.02em;font-family:Fraunces,serif;font-size:1.35rem;font-weight:600}.nav-brand i{color:var(--emerald);font-style:italic;font-weight:400}.nav-links{gap:2.8rem;list-style:none;display:flex}.nav-links a{color:var(--warm);letter-spacing:.14em;text-transform:uppercase;font-size:.76rem;font-weight:500;text-decoration:none;transition:color .3s;position:relative}.nav-links a:after{content:"";background:var(--emerald);border-radius:2px;width:0;height:2px;transition:width .35s cubic-bezier(.16,1,.3,1);position:absolute;bottom:-6px;left:0}.nav-links a:hover{color:var(--forest)}.nav-links a:hover:after{width:100%}.hero{z-index:1;grid-template-columns:1fr 1fr;align-items:center;gap:4rem;min-height:100vh;padding:0 6vw;display:grid;position:relative}.hero-left{max-width:640px}.hero-badge{background:var(--mint-soft);letter-spacing:.1em;text-transform:uppercase;color:var(--emerald);opacity:0;border:1px solid #2d7a501a;border-radius:100px;align-items:center;gap:.6rem;padding:.45rem 1.2rem .45rem .45rem;font-size:.72rem;font-weight:500;animation:.8s .4s forwards fadeUp;display:inline-flex}.hero-badge-dot{background:var(--emerald);border-radius:50%;justify-content:center;align-items:center;width:28px;height:28px;display:flex}.hero-badge-dot svg{width:14px;height:14px}.hero-name{letter-spacing:-.04em;color:var(--forest);opacity:0;margin-top:2rem;font-family:Fraunces,serif;font-size:clamp(3.2rem,6.5vw,5.8rem);font-weight:700;line-height:1.04;animation:.9s .6s forwards fadeUp}.hero-name .em{color:var(--emerald);font-style:italic;font-weight:400;display:inline-block}.hero-desc{color:var(--warm);opacity:0;max-width:480px;margin-top:1.8rem;font-size:1.08rem;font-weight:400;line-height:1.85;animation:.8s .9s forwards fadeUp}.hero-btns{opacity:0;gap:1rem;margin-top:3rem;animation:.8s 1.3s forwards fadeUp;display:flex}.btn{letter-spacing:.1em;text-transform:uppercase;cursor:none;border:none;border-radius:100px;padding:1rem 2.4rem;font-family:Plus Jakarta Sans,sans-serif;font-size:.78rem;font-weight:600;text-decoration:none;transition:all .4s cubic-bezier(.16,1,.3,1);position:relative}.btn-primary{background:var(--forest);color:var(--white);box-shadow:0 4px 25px #1a3c2a33}.btn-primary:hover{background:var(--emerald);transform:translateY(-2px);box-shadow:0 8px 35px #2d7a5040}.btn-outline{color:var(--forest);background:0 0;border:1.5px solid #1a3c2a33}.btn-outline:hover{border-color:var(--emerald);color:var(--emerald);background:var(--mint-soft)}.hero-right{opacity:0;justify-content:center;align-items:center;animation:1.2s .8s forwards fadeIn;display:flex;position:relative}.hero-portrait-frame{background:linear-gradient(160deg, var(--mint) 0%, var(--sage-light) 50%, var(--leaf) 100%);border-radius:50%;width:400px;height:400px;position:relative;overflow:hidden;box-shadow:0 30px 80px #1a3c2a1a,inset 0 0 60px #ffffff4d}.hero-portrait-frame:before{content:"";border-radius:inherit;pointer-events:none;border:1px solid #ffffff80;position:absolute;inset:3px}.hero-portrait-img{object-fit:cover;object-position:center top}.hero-float{background:var(--white);border:1px solid #2d7a500f;border-radius:16px;padding:1.2rem 1.6rem;animation:5s ease-in-out infinite gentleFloat;position:absolute;box-shadow:0 8px 40px #1a3c2a14}.hero-float.f1{animation-delay:0s;top:10%;left:-15%}.hero-float.f2{animation-delay:2s;bottom:15%;right:-12%}.hero-float.f3{animation-delay:3.5s;top:50%;left:-20%}.float-icon{background:var(--mint);border-radius:10px;justify-content:center;align-items:center;width:36px;height:36px;margin-bottom:.5rem;font-size:1rem;display:flex}.float-val{color:var(--forest);font-family:Fraunces,serif;font-size:1.5rem;font-weight:700}.float-lbl{color:var(--warm);letter-spacing:.04em;font-size:.68rem;font-weight:500}@keyframes gentleFloat{0%,to{transform:translateY(0)}50%{transform:translateY(-12px)}}.hero-scroll-cue{opacity:0;align-items:center;gap:1rem;animation:.8s 2s forwards fadeUp;display:flex;position:absolute;bottom:2.5rem;left:6vw}.scroll-bar{background:linear-gradient(to bottom, var(--emerald), transparent);width:1px;height:50px;animation:2.5s ease-in-out infinite pulse}@keyframes pulse{0%,to{opacity:.3;transform-origin:top;transform:scaleY(.5)}50%{opacity:1;transform:scaleY(1)}}.scroll-label{letter-spacing:.25em;text-transform:uppercase;color:var(--warm);writing-mode:vertical-lr;font-size:.6rem}.sec{z-index:1;padding:7rem 6vw;position:relative}.sec-label{letter-spacing:.3em;text-transform:uppercase;color:var(--emerald);align-items:center;gap:1rem;margin-bottom:.8rem;font-family:IBM Plex Mono,monospace;font-size:.65rem;font-weight:400;display:flex}.sec-label:before{content:"";background:var(--emerald);border-radius:2px;width:28px;height:1.5px}.sec-title{letter-spacing:-.03em;color:var(--forest);margin-bottom:3.5rem;font-family:Fraunces,serif;font-size:clamp(2rem,3.8vw,3rem);font-weight:600}.sec-title em{color:var(--emerald);font-style:italic;font-weight:400}.sec-alt{background:var(--cream)}.line-break{z-index:1;background:linear-gradient(90deg,#0000,#2d7a501a,#0000);height:1px;margin:0 6vw;position:relative}.about-layout{grid-template-columns:1.1fr .9fr;align-items:start;gap:5rem;display:grid}.about-prose{color:var(--bark-light);font-size:1.02rem;font-weight:400;line-height:1.9}.about-prose p{margin-bottom:1.4rem}.about-prose strong{color:var(--forest);font-weight:600}.about-pills{flex-wrap:wrap;gap:.5rem;margin-top:2rem;display:flex}.about-pill{color:var(--olive);background:var(--white);letter-spacing:.02em;border:1px solid #2d7a5026;border-radius:100px;padding:.5rem 1.2rem;font-size:.73rem;font-weight:500;transition:all .3s}.about-pill:hover{background:var(--emerald);color:var(--white);border-color:var(--emerald)}.about-cards{gap:1.2rem;display:grid}.a-card{background:var(--white);border:1px solid #2d7a5014;border-radius:20px;padding:2rem 2.2rem;transition:all .4s cubic-bezier(.16,1,.3,1);box-shadow:0 2px 20px #1a3c2a08}.a-card:hover{border-color:#2d7a5026;transform:translateY(-4px);box-shadow:0 12px 40px #1a3c2a0f}.a-card-eyebrow{letter-spacing:.2em;text-transform:uppercase;color:var(--sage);margin-bottom:.8rem;font-family:IBM Plex Mono,monospace;font-size:.6rem;font-weight:400}.a-card-num{color:var(--forest);font-family:Fraunces,serif;font-size:3rem;font-weight:800;line-height:1}.a-card-num em{color:var(--emerald);font-style:normal}.a-card-text{color:var(--warm);margin-top:.3rem;font-size:.82rem;line-height:1.5}.exp-row{opacity:0;border-bottom:1px solid #2d7a5012;grid-template-columns:180px 1fr;gap:4rem;padding:2.8rem 0;transition:all .4s;display:grid;transform:translateY(20px)}.exp-row.visible{opacity:1;transform:translateY(0)}.exp-row:hover{padding-left:1.2rem}.exp-row:last-child{border-bottom:none}.exp-when{color:var(--sage);letter-spacing:.03em;padding-top:.4rem;font-family:IBM Plex Mono,monospace;font-size:.73rem;font-weight:400}.exp-role{color:var(--forest);letter-spacing:-.01em;margin-bottom:.3rem;font-family:Fraunces,serif;font-size:1.5rem;font-weight:600}.exp-place{color:var(--emerald);margin-bottom:.9rem;font-size:.92rem;font-weight:500}.exp-text{color:var(--warm);max-width:580px;font-size:.88rem;font-weight:400;line-height:1.8}.exp-chips{flex-wrap:wrap;gap:.4rem;margin-top:1rem;display:flex}.exp-chip{background:var(--mint-soft);color:var(--emerald);letter-spacing:.03em;border-radius:6px;padding:.3rem .8rem;font-size:.64rem;font-weight:500}.edu-cols{grid-template-columns:1fr 1fr;gap:1.5rem;display:grid}.edu-card{background:var(--white);border:1px solid #2d7a5014;border-radius:20px;padding:2.5rem 2rem;transition:all .45s cubic-bezier(.16,1,.3,1);position:relative;overflow:hidden;box-shadow:0 2px 15px #1a3c2a05}.edu-card:hover{border-color:var(--emerald);transform:translateY(-6px);box-shadow:0 16px 50px #1a3c2a12}.edu-card:before{content:"";background:linear-gradient(90deg, var(--emerald), var(--sage-light));transform-origin:0;width:100%;height:3px;transition:transform .5s cubic-bezier(.16,1,.3,1);position:absolute;top:0;left:0;transform:scaleX(0)}.edu-card:hover:before{transform:scaleX(1)}.edu-yr{color:var(--sage);letter-spacing:.06em;margin-bottom:1.4rem;font-family:IBM Plex Mono,monospace;font-size:.68rem}.edu-deg{color:var(--forest);margin-bottom:.5rem;font-family:Fraunces,serif;font-size:1.2rem;font-weight:600;line-height:1.3}.edu-inst{color:var(--emerald);font-size:.85rem;font-weight:500}.marquee-wrap{z-index:1;background:var(--forest);padding:5rem 0;position:relative;overflow:hidden}.marquee-row{gap:1rem;width:max-content;animation:35s linear infinite scroll;display:flex}.marquee-row:hover{animation-play-state:paused}.marquee-row.reverse{margin-top:1rem;animation-direction:reverse}.m-pill{color:#fff9;white-space:nowrap;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#ffffff08;border:1px solid #ffffff1a;border-radius:100px;flex-shrink:0;padding:.9rem 2rem;font-size:.85rem;font-weight:400;transition:all .3s}.m-pill:hover{border-color:var(--sage-light);color:var(--white);background:#ffffff14}.m-pill .ico{margin-right:.5rem}@keyframes scroll{0%{transform:translate(0)}to{transform:translate(-50%)}}.cert-grid{grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:1rem;display:grid}.cert-row{background:var(--white);border:1px solid #2d7a5012;border-radius:16px;align-items:center;gap:1.4rem;padding:1.6rem 1.8rem;transition:all .35s;display:flex;box-shadow:0 1px 10px #1a3c2a05}.cert-row:hover{border-color:#2d7a5026;transform:translate(6px);box-shadow:0 6px 25px #1a3c2a0d}button.cert-row-clickable{cursor:pointer;text-align:left;font:inherit;color:inherit}button.cert-row-clickable:hover{border-color:var(--emerald)}.cert-badge{background:linear-gradient(135deg, var(--emerald), var(--sage));width:50px;height:50px;color:var(--white);letter-spacing:.04em;border-radius:12px;flex-shrink:0;justify-content:center;align-items:center;font-family:IBM Plex Mono,monospace;font-size:.68rem;font-weight:500;display:flex}.cert-info .cert-name{color:var(--forest);font-size:.9rem;font-weight:600}.cert-info .cert-from{color:var(--warm);margin-top:.15rem;font-size:.75rem;font-weight:400}.cert-img-btn{cursor:pointer;z-index:2;background:0 0;border:none;flex-shrink:0;width:50px;height:50px;padding:0;position:relative}.cert-thumb{object-fit:cover;border:1px solid #2d7a501a;border-radius:12px;width:50px;height:50px;transition:all .3s}.cert-thumb:hover{border-color:var(--emerald);transform:scale(1.08);box-shadow:0 4px 16px #1a3c2a1f}.cert-lightbox{z-index:10001;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);cursor:pointer;background:#000000bf;justify-content:center;align-items:center;animation:.25s fadeIn;display:flex;position:fixed;inset:0}.cert-lightbox-close{color:#fff;cursor:pointer;opacity:.7;z-index:10002;background:0 0;border:none;font-size:2.5rem;line-height:1;transition:opacity .2s;position:absolute;top:1.5rem;right:2rem}.cert-lightbox-close:hover{opacity:1}.cert-lightbox-img{object-fit:contain;cursor:default;border-radius:12px;max-width:90vw;max-height:85vh;box-shadow:0 20px 80px #0006;width:auto!important;height:auto!important}.pub-list{counter-reset:pubs}.pub-row{counter-increment:pubs;border-bottom:1px solid #2d7a500f;grid-template-columns:70px 1fr auto;align-items:center;gap:2rem;padding:2.2rem 0;transition:all .35s;display:grid}.pub-row:hover{padding-left:.8rem}.pub-idx:before{content:counter(pubs, decimal-leading-zero);color:var(--mint);font-family:Fraunces,serif;font-size:2rem;font-weight:700;transition:color .3s}.pub-row:hover .pub-idx:before{color:var(--emerald)}.pub-name{color:var(--forest);margin-bottom:.25rem;font-family:Fraunces,serif;font-size:1.08rem;font-weight:500;line-height:1.4}.pub-journal{color:var(--sage);font-size:.78rem;font-style:italic;font-weight:400}.pub-yr{color:var(--sage);white-space:nowrap;font-family:IBM Plex Mono,monospace;font-size:.7rem}.contact-sec{z-index:1;text-align:center;background:linear-gradient(180deg, var(--ivory) 0%, var(--mint-soft) 100%);padding:10rem 6vw;position:relative}.contact-heading{letter-spacing:-.03em;color:var(--forest);margin-bottom:1rem;font-family:Fraunces,serif;font-size:clamp(2.4rem,5vw,4.2rem);font-weight:700}.contact-heading em{color:var(--emerald);font-style:italic;font-weight:400}.contact-sub{color:var(--warm);max-width:440px;margin:0 auto 3rem;font-size:1rem;font-weight:400;line-height:1.8}.contact-row{flex-wrap:wrap;justify-content:center;gap:.8rem;display:flex}.c-link{color:var(--forest);background:var(--white);border:1px solid #2d7a5026;border-radius:100px;align-items:center;gap:.7rem;padding:.9rem 1.8rem;font-size:.82rem;font-weight:500;text-decoration:none;transition:all .35s;display:inline-flex;box-shadow:0 2px 10px #1a3c2a08}.c-link:hover{background:var(--forest);color:var(--white);border-color:var(--forest);transform:translateY(-2px);box-shadow:0 6px 30px #1a3c2a26}.c-link svg{stroke:currentColor;fill:none;stroke-width:1.5px;width:16px;height:16px}footer{z-index:1;background:var(--forest);color:#ffffff59;justify-content:space-between;align-items:center;padding:3rem 6vw;font-size:.72rem;display:flex;position:relative}footer a{color:var(--sage-light);text-decoration:none}@keyframes fadeUp{0%{opacity:0;transform:translateY(25px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.rv{opacity:0;transition:all .75s cubic-bezier(.16,1,.3,1);transform:translateY(28px)}.rv.show{opacity:1;transform:translateY(0)}.rv-d1{transition-delay:.1s}.rv-d2{transition-delay:.2s}.rv-d3{transition-delay:.3s}@media (max-width:900px){body{cursor:auto}.cursor,.cursor-glow{display:none}nav{padding:1rem 1.5rem}nav.scrolled{padding:.8rem 1.5rem}.nav-links{display:none}.hero{text-align:center;grid-template-columns:1fr;align-content:center;gap:2rem;min-height:100dvh;padding:6rem 5vw 3rem}.hero-left{max-width:100%}.hero-right{order:-1;justify-content:center}.hero-portrait-frame{width:180px;height:180px}.hero-float{display:none}.hero-name{margin-top:1.2rem}.hero-desc{margin:1.2rem auto 0}.hero-btns{justify-content:center;margin-top:2rem}.hero-badge{letter-spacing:.05em;gap:.4rem;margin:0 auto;padding:.4rem 1rem;font-size:.6rem}.hero-badge-dot{width:22px;height:22px}.hero-badge-dot svg{width:11px;height:11px}.hero-scroll-cue{display:none}.sec{padding:5rem 5vw}.about-layout{grid-template-columns:1fr;gap:2.5rem}.exp-row{grid-template-columns:1fr;gap:.3rem}.edu-cols{grid-template-columns:1fr}.pub-row{grid-template-columns:50px 1fr}.pub-yr{display:none}.contact-sec{padding:6rem 5vw}}
