:root{--paper:#f7f4ed;--paper-2:#fffdf8;--ink:#17324d;--ink-2:#425466;--muted:#73716d;--line:#d9d3c7;--gold:#c69a45;--gold-soft:#efe1bf;--green:#2f7a62;--shadow:0 18px 60px #1c252d14;--serif:"DM Serif Display", serif;--sans:"DM Sans", sans-serif;--mono:"JetBrains Mono", monospace;--max:900px;--chip-radius:5px;--chip-height:28px;--group:#4767a0}html[data-theme=dark]{--paper:#101417;--paper-2:#161b20;--ink:#e8e5de;--ink-2:#b8c0c7;--muted:#929aa1;--line:#2a3138;--gold:#d9b96f;--gold-soft:#392f1f;--green:#6ab596;--group:#9cb9ef;--shadow:0 18px 60px #00000047}*{box-sizing:border-box}html{scroll-behavior:smooth;background:var(--paper);scroll-padding-top:88px}body{background:radial-gradient(circle at 85% 8%, color-mix(in srgb, var(--gold) 8%, transparent), transparent 24rem), var(--paper);min-width:320px;color:var(--ink);font-family:var(--sans);margin:0;font-size:15.5px;font-weight:400;line-height:1.7;transition:background-color .3s,color .3s}a{color:inherit}img{max-width:100%;display:block}button,a{-webkit-tap-highlight-color:transparent}::selection{background:var(--gold-soft);color:var(--ink)}.announcement-wrap{border-bottom:1px solid color-mix(in srgb,var(--paper-2) 18%,transparent);background:var(--ink);min-height:39px;position:relative}.announcement-spark-group{z-index:1;color:var(--paper-2);text-shadow:0 0 12px color-mix(in srgb,var(--paper-2) 50%,transparent);pointer-events:none;align-items:center;gap:4px;display:flex;position:absolute;top:50%;transform:translateY(-50%)}.announcement-spark-group>span{font-family:var(--serif);line-height:1;animation:3.8s ease-in-out infinite announcement-twinkle;display:block}.announcement-spark-group>span:first-child{--star-y:0px;font-size:20px}.announcement-spark-group>span:nth-child(2){--star-y:0px;font-size:12px}.announcement-spark-group>span:nth-child(3){--star-y:0px;font-size:7px}.announcement-spark-left{left:24px}.announcement-spark-right{flex-direction:row-reverse;right:24px}@keyframes announcement-twinkle{0%,to{opacity:.5;transform:translateY(var(--star-y)) scale(.85) rotate(-8deg)}50%{opacity:1;transform:translateY(var(--star-y)) scale(1.08) rotate(8deg);text-shadow:0 0 6px var(--paper-2),0 0 16px color-mix(in srgb,var(--paper-2) 45%,transparent)}}.announcement{min-height:39px;font-size:12px;font-family:var(--mono);color:var(--paper-2);justify-content:center;align-items:center;gap:10px;padding:8px 72px;text-decoration:none;display:flex}.announcement-dot{background:var(--gold);width:7px;height:7px;box-shadow:0 0 0 5px color-mix(in srgb,var(--gold) 20%,transparent);border-radius:50%}.site-header{z-index:20;background:color-mix(in srgb,var(--paper) 94%,transparent);color:var(--ink);backdrop-filter:blur(16px);border-bottom:1px solid var(--line);transition:opacity .28s,transform .28s,visibility .28s;position:sticky;top:0;left:0;right:0}.site-header.header-hidden{opacity:0;visibility:hidden;pointer-events:none;transform:translateY(-18px)}.nav-shell{grid-template-columns:auto 1fr auto auto;align-items:center;gap:22px;width:100%;min-height:52px;margin:0;padding:0 20px;display:grid}.brand{white-space:nowrap;align-items:center;gap:12px;text-decoration:none;display:flex}.brand span{border:1px solid var(--ink);width:34px;height:34px;font:500 10px var(--mono);letter-spacing:.06em;border-radius:50%;place-items:center;display:grid}.brand span img{object-fit:cover;border-radius:50%;width:26px;height:26px}.brand strong{font-family:var(--serif);font-size:17px;font-weight:400}.desktop-nav{justify-content:flex-end;align-items:center;gap:4px;display:flex}.desktop-nav a{font-family:var(--sans);color:var(--ink-2);border-radius:6px;padding:6px 14px;font-size:13.5px;font-weight:500;text-decoration:none;position:relative}.desktop-nav a:after{content:"";background:var(--gold);height:1px;transition:right .2s;position:absolute;bottom:2px;left:14px;right:100%}.desktop-nav a:hover:after{right:14px}.theme-toggle{border:1px solid var(--line);background:color-mix(in srgb,var(--paper-2) 85%,transparent);width:28px;height:28px;color:var(--ink);cursor:pointer;border-radius:6px;place-items:center;padding:0;transition:border-color .2s,background .2s,transform .2s;display:grid;position:relative;overflow:hidden}.theme-toggle .icon{place-items:center;transition:transform .45s cubic-bezier(.4,0,.2,1),opacity .35s;display:grid;position:absolute}html[data-theme=light] .theme-toggle .moon{opacity:0;transform:rotate(-90deg)scale(.5)}html[data-theme=dark] .theme-toggle .sun{opacity:0;transform:rotate(90deg)scale(.5)}html[data-theme=light] .theme-toggle .sun,html[data-theme=dark] .theme-toggle .moon{opacity:1;transform:rotate(0)scale(1)}.menu-toggle{border:1px solid var(--line);background:color-mix(in srgb,var(--paper-2) 85%,transparent);color:var(--ink);cursor:pointer;border-radius:6px;width:40px;height:34px;padding:0 11px;display:none}.menu-toggle span{background:currentColor;height:1px;margin:5px 0;display:block}.mobile-nav{display:none}.section-pad{width:min(var(--max), calc(100% - 64px));margin:0 auto;padding:44px 0}.section-border{border-top:1px solid var(--line);margin-top:44px;padding-top:44px}.hero{isolation:isolate;padding-bottom:52px;position:relative}.availability-wrap{margin-bottom:22px;display:inline-flex;position:relative}.hero-rabbit-image{z-index:2;pointer-events:none;width:78px;height:auto;display:block;position:absolute;bottom:calc(100% - 12px);right:4px}.hero-centered,.about-grid{z-index:1;position:relative}.hero-centered{text-align:center;flex-direction:column;align-items:center;max-width:860px;margin:0 auto;display:flex}.hero-centered .hero-bio,.hero-centered .hero-title{max-width:760px;margin-left:auto;margin-right:auto}.hero-centered .hero-actions{justify-content:center}.hero-centered .quick-facts{text-align:left;width:100%;margin-top:8px}.portrait-circle{border:3px solid var(--line);background:var(--paper-2);width:172px;height:172px;box-shadow:var(--shadow);border-radius:50%;flex-shrink:0;margin-bottom:22px;overflow:hidden}.portrait-circle img{object-fit:cover;object-position:center top;width:100%;height:100%}.hero-grid{grid-template-columns:minmax(0,1.35fr) minmax(300px,.65fr);align-items:center;gap:48px;min-height:400px;display:grid}.hero-copy h1{font-family:var(--serif);letter-spacing:-.02em;max-width:800px;margin:10px 0 4px;font-size:36px;font-weight:400;line-height:1.15}.hero-title{max-width:780px;font-family:var(--sans);text-transform:uppercase;letter-spacing:.06em;color:var(--ink-2);margin:0 0 16px;font-size:14px;font-weight:500}.hero-bio{max-width:760px;font-family:var(--sans);color:var(--ink-2);margin:0 0 20px;font-size:15px;font-weight:400;line-height:1.75}.eyebrow{font-family:var(--mono);text-transform:uppercase;letter-spacing:.1em;color:var(--muted);margin:0 0 20px;font-size:11px;font-weight:500;line-height:1.4}.availability{border:1px solid color-mix(in srgb,var(--green) 40%,var(--line));font:500 11px var(--mono);color:var(--green);background:color-mix(in srgb,var(--green) 7%,transparent);border-radius:3px;align-items:center;gap:9px;margin-bottom:0;padding:1px 7px;display:inline-flex}.availability span{background:var(--green);width:7px;height:7px;box-shadow:0 0 0 5px color-mix(in srgb,var(--green) 13%,transparent);border-radius:50%}.hero-actions{flex-wrap:wrap;gap:8px;margin:0 0 22px;display:flex}.hero-actions a{border:1px solid var(--line);background:color-mix(in srgb,var(--paper-2) 62%,transparent);color:var(--ink-2);font-family:var(--sans);border-radius:5px;align-items:center;gap:5px;padding:5px 11px;font-size:13px;font-weight:500;text-decoration:none;transition:border-color .2s,background .2s,transform .2s;display:inline-flex}.hero-actions a:hover{border-color:var(--gold);background:color-mix(in srgb,var(--gold) 10%,var(--paper-2));transform:translateY(-1px)}.hero-actions svg,.contact-actions svg{flex-shrink:0}.button{border:1px solid var(--line);min-height:42px;font-family:var(--sans);border-radius:6px;justify-content:center;align-items:center;gap:8px;padding:0 14px;font-size:12px;font-weight:500;text-decoration:none;transition:transform .2s,border-color .2s,background .2s;display:inline-flex}.button:hover{border-color:var(--gold);transform:translateY(-2px)}.button.primary{background:var(--ink);color:var(--paper-2);border-color:var(--ink)}.button.ghost{background:0 0}.large-button{min-height:48px;padding:0 18px}.quick-facts{border-top:1px solid var(--line);border-bottom:1px solid var(--line);grid-template-columns:repeat(3,1fr);gap:0;margin-top:22px;display:grid}.quick-facts>div{gap:3px;padding:20px 20px 20px 0;display:grid}.quick-facts>div+div{border-left:1px solid var(--line);padding-left:20px}.quick-facts strong{font-family:var(--sans);font-size:13px;font-weight:600}.quick-facts small{color:var(--muted);font-family:var(--sans);font-size:11px}.mono{font-family:var(--mono);letter-spacing:.04em;color:var(--muted);font-size:11px;font-weight:500}.portrait-wrap{justify-self:end;width:min(100%,390px)}.portrait-frame{border:1px solid var(--line);background:color-mix(in srgb,var(--paper-2) 84%,transparent);box-shadow:var(--shadow);padding:14px;transition:transform .35s;position:relative;transform:rotate(1.1deg)}.portrait-frame:hover{transform:rotate(0)translateY(-4px)}.portrait-frame img{aspect-ratio:4/5;object-fit:cover;object-position:center;filter:saturate(.9)contrast(.98);width:100%}.portrait-caption{background:color-mix(in srgb,var(--paper-2) 90%,transparent);border:1px solid var(--line);backdrop-filter:blur(14px);min-width:190px;box-shadow:var(--shadow);padding:12px 14px;display:grid;position:absolute;bottom:30px;left:-22px}.portrait-caption span{font:500 10px var(--mono);color:var(--muted);text-transform:uppercase;letter-spacing:.06em}.portrait-caption strong{font-family:var(--serif);font-size:14px;font-weight:400}.about-grid{border-top:1px solid var(--line);grid-template-columns:minmax(0,1fr) 400px;align-items:center;gap:48px;margin-top:44px;padding-top:44px;display:grid}.about-copy h2,.contact-card h2{font-family:var(--serif);letter-spacing:-.015em;margin:0 0 22px;font-size:26px;font-weight:400;line-height:1.15}.about-copy h2{margin-top:20px}.about-copy>p:not(.eyebrow){max-width:650px;font-family:var(--sans);color:var(--ink-2);font-size:15.5px;font-weight:400}.tag-row{flex-wrap:wrap;gap:8px;margin-top:18px;display:flex}.tag-row span{border:1px solid var(--line);font-family:var(--sans);color:var(--ink-2);background:color-mix(in srgb,var(--paper-2) 62%,transparent);border-radius:20px;padding:5px 13px;font-size:13px;font-weight:500}.tag-row span.gold{border-color:color-mix(in srgb,var(--gold) 50%,var(--line));background:color-mix(in srgb,var(--gold) 14%,transparent);color:color-mix(in srgb,var(--gold) 70%,var(--ink))}.tag-row.large span{font-family:var(--sans);padding:5px 13px;font-size:13px;font-weight:500}.tag-link-row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-top:18px;display:flex}.tag-link-row .tag-row{flex:1;margin-top:0}.link-row.capsule{gap:8px;margin-top:0}.link-row.capsule a{border:1px solid var(--line);background:color-mix(in srgb,var(--paper-2) 62%,transparent);font-family:var(--sans);color:var(--ink-2);border-bottom:1px solid var(--line);border-radius:4px;padding:3px 9px;font-size:13px;font-weight:500;text-decoration:none;transition:border-color .2s,background .2s}.link-row.capsule a:hover{border-color:var(--gold);background:color-mix(in srgb,var(--gold) 10%,var(--paper-2))}.globe-shell{outline:none;flex-direction:column;justify-content:center;align-items:center;gap:14px;min-height:410px;display:flex;position:relative}.globe-shell canvas{max-width:100%;height:auto!important}.globe-copy{text-align:center;flex-direction:column;align-items:center;gap:2px;display:flex}.globe-copy .globe-kicker{font-family:var(--mono);text-transform:uppercase;letter-spacing:.1em;color:var(--muted);font-size:11px;font-weight:500}.globe-copy strong{font-family:var(--serif);font-size:14px;font-weight:400}.globe-copy small{color:var(--muted);font-size:10px}.globe-label{opacity:0;border:1px solid var(--line);background:color-mix(in srgb,var(--paper-2) 88%,transparent);backdrop-filter:blur(14px);font-family:var(--mono);white-space:nowrap;border-radius:6px;padding:9px 12px;font-size:11px;font-weight:500;transition:all .3s;position:absolute;bottom:58px;left:50%;transform:translate(-50%)translateY(8px)}.globe-label span{background:var(--gold);border-radius:50%;width:6px;height:6px;margin-right:7px;display:inline-block}.globe-shell.is-active .globe-label,.globe-shell:hover .globe-label,.globe-shell:focus .globe-label{opacity:1;transform:translate(-50%)translateY(0)}.section-header{grid-template-columns:minmax(0,1fr) minmax(250px,.72fr);align-items:end;gap:80px;margin-bottom:48px;display:grid}.section-header h2{font-family:var(--serif);letter-spacing:-.015em;margin:0 0 22px;font-size:26px;font-weight:400;line-height:1.15}.section-description{font-family:var(--sans);color:var(--ink-2);margin:0;font-size:14px;font-weight:400}.research-summary{border:1px solid var(--line);background:color-mix(in srgb,var(--paper-2) 45%,transparent);grid-template-columns:repeat(3,1fr);display:grid}.research-summary>div{padding:18px 28px}.research-summary>div+div{border-left:1px solid var(--line)}.metric{font-family:var(--serif);font-size:36px;font-weight:400;display:block}.research-summary p{font-family:var(--mono);color:var(--muted);text-transform:uppercase;letter-spacing:.04em;margin:2px 0 0;font-size:11px;font-weight:500}.academic-list,.project-list{gap:16px;display:grid}.academic-card,.project-card{border:1px solid var(--line);background:color-mix(in srgb,var(--paper-2) 58%,transparent);border-radius:8px;grid-template-columns:96px minmax(0,1fr);width:100%;min-width:0;min-height:auto;transition:transform .25s,box-shadow .25s,border-color .25s;display:grid;position:relative;overflow:hidden}.academic-card:hover,.project-card:hover{box-shadow:var(--shadow);border-color:color-mix(in srgb,var(--gold) 55%,var(--line));transform:translateY(-4px)}.featured-card:before{content:"";background:var(--gold);z-index:3;width:3px;position:absolute;top:0;bottom:0;left:0}.academic-thumb,.project-thumb{background:var(--paper-2);border-right:1px solid var(--line);border-radius:5px;align-self:stretch;width:96px;min-height:96px;overflow:hidden}.academic-thumb img,.project-thumb img{object-fit:cover;border-radius:5px;width:96px;height:96px;transition:transform .45s}.academic-card:hover img,.project-card:hover img{transform:scale(1.025)}.academic-body,.project-body{flex-direction:column;justify-content:center;gap:0;padding:18px 20px;display:flex}.academic-body h3,.project-body h3,.timeline-content h3,.achievement-card h3{font-family:var(--sans);margin:0 0 5px;font-size:15px;font-weight:600;line-height:1.4}.academic-body h3{align-items:flex-start;gap:10px;display:flex}.academic-body h3:before{content:attr(data-num);font-family:var(--mono);color:var(--muted);margin-top:3px;font-size:11px;font-weight:500}.project-body>p,.timeline-content>p{font-family:var(--sans);color:var(--ink-2);margin:4px 0;font-size:14.5px;font-weight:400;line-height:1.6}.achievement-card p{font-family:var(--sans);color:var(--ink-2);margin:4px 0;font-size:14.5px;font-weight:500;line-height:1.6}.meta-row{flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:5px;display:flex}.badge{border:1px solid var(--line);min-height:20px;font-family:var(--mono);letter-spacing:.02em;text-transform:uppercase;color:var(--muted);border-radius:4px;align-items:center;padding:2px 7px;font-size:11px;font-weight:500;display:inline-flex}.badge.gold{border-color:color-mix(in srgb,var(--gold) 50%,var(--line));background:color-mix(in srgb,var(--gold) 11%,transparent);color:color-mix(in srgb,var(--gold) 70%,var(--ink));border-radius:5px;padding:6px 12px}.authors{font-family:var(--sans);color:var(--ink-2);margin:0 0 9px;font-size:13px;font-weight:400;line-height:1.55}.self-author{color:var(--ink);font-weight:600}.venue{font-family:var(--mono);letter-spacing:.02em;color:var(--muted);margin:0 0 9px;font-size:11px;font-weight:500}.role-line{font-family:var(--sans);color:var(--ink-2);margin-bottom:4px;font-size:13.5px;font-style:italic;font-weight:400}.link-row{flex-wrap:wrap;gap:6px;margin-top:0;display:flex}.link-row a,.text-link{width:max-content;font-family:var(--sans);border-bottom:1px solid var(--line);padding-bottom:2px;font-size:12px;font-weight:500;text-decoration:none}.link-row a:hover,.text-link:hover{border-color:var(--gold)}.timeline{margin-left:8px;position:relative}.timeline:before{content:"";background:var(--line);width:1px;position:absolute;top:10px;bottom:12px;left:8px}.timeline-item{grid-template-columns:110px minmax(0,1fr);gap:24px;padding:0 0 22px 44px;display:grid;position:relative}.timeline-item+.timeline-item{margin-top:22px}.timeline-marker{border:3px solid var(--paper);background:var(--gold);width:15px;height:15px;box-shadow:0 0 0 1px var(--gold);border-radius:50%;position:absolute;top:8px;left:1px}.timeline-date{font-family:var(--mono);padding-top:6px;font-size:11px;font-weight:500}.timeline-content{max-width:800px;padding-bottom:4px}.timeline-content h3{font-family:var(--sans);font-size:15px;font-weight:600}.timeline-org{font-family:var(--sans);font-size:15px;font-weight:600;color:var(--ink)!important}.achievement-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;display:grid}.achievement-card{border:1px solid var(--line);background:color-mix(in srgb,var(--paper-2) 55%,transparent);grid-template-columns:1fr auto;min-height:auto;padding:10px 20px;transition:transform .25s,box-shadow .25s;display:grid;overflow:hidden}.achievement-card:hover{box-shadow:var(--shadow);transform:translateY(-3px)}.achievement-image{background:var(--paper-2);border-right:1px solid var(--line);width:96px;overflow:hidden}.achievement-image img{object-fit:cover;width:96px;height:96px}.achievement-content{flex-direction:column;align-self:center;gap:4px;padding:0;display:flex}.achievement-content .mono{font-size:11px}.achievement-card:not(:has(.achievement-image)){grid-template-columns:1fr}.news-list{border:1px solid var(--line);border-radius:10px;padding:0 20px;overflow:hidden}.news-list .news-item:first-child{border-top:none}.news-item{border-bottom:1px solid var(--line);grid-template-columns:150px minmax(0,1fr) 28px;align-items:center;gap:14px;padding:9px 0;transition:padding .2s,background .2s;display:grid}.news-item:hover{background:color-mix(in srgb,var(--gold) 5%,transparent);padding-left:10px}.news-item p{font-family:var(--sans);margin:0;font-size:14.5px;font-weight:400}.news-item time{font-family:var(--mono);font-size:11px;font-weight:500}.news-item>a{font-size:17px;text-decoration:none}.contact-card{border:1px solid var(--line);background:var(--ink);color:var(--paper-2);box-shadow:var(--shadow);grid-template-columns:minmax(0,1fr) minmax(280px,.8fr);gap:60px;padding:50px;display:grid}.contact-card .eyebrow,.contact-card p{color:color-mix(in srgb,var(--paper-2) 72%,transparent);font-family:var(--sans);font-size:15.5px}.contact-card h2{font-family:var(--serif);font-size:26px}.contact-card .button.primary{background:var(--paper-2);color:var(--ink);border-color:var(--paper-2)}.contact-card .button.ghost{border-color:color-mix(in srgb,var(--paper-2) 28%,transparent)}.contact-actions{flex-direction:column;justify-content:center;align-items:stretch;gap:9px;display:flex}.toolbox{border-bottom:1px solid var(--line);grid-template-columns:110px 1fr;gap:28px;margin-top:16px;padding:22px 0;display:grid}.toolbox .mono{font-family:var(--mono);font-size:11px;font-weight:500}.toolbox>div{flex-wrap:wrap;gap:8px;display:flex}.toolbox>div span{font-family:var(--sans);color:var(--ink-2);align-items:center;gap:7px;font-size:13px;font-weight:500;display:inline-flex}.toolbox>div span img{object-fit:contain;flex:0 0 15px;width:15px;height:15px}.toolbox>div span i{display:none}.toolbox>div span i:before{content:"⌘"}.toolbox>div span[data-skill=Python] i:before{content:"⌁"}.toolbox>div span[data-skill=C] i:before{content:"C"}.toolbox>div span[data-skill="C++"] i:before{content:"++";font-size:8px}.toolbox>div span[data-skill=Java] i:before{content:"☕";font-size:11px}.toolbox>div span[data-skill=Dart] i:before{content:"◇"}.toolbox>div span[data-skill=Flutter] i:before{content:"▦"}.toolbox>div span[data-skill=OOP] i:before{content:"◈"}.toolbox>div span[data-skill=Data\ Structures] i:before{content:"⌘"}.toolbox>div span[data-skill=Algorithms] i:before{content:"↗"}.toolbox>div span[data-skill=DBMS] i:before{content:"▤"}.toolbox>div span[data-skill=Supabase] i:before{content:"✦"}.toolbox>div span[data-skill=Firebase] i:before{content:"⚡";font-size:10px}.toolbox>div span[data-skill=MySQL] i:before{content:"◉"}.toolbox>div span[data-skill=Android\ Studio] i:before{content:"▣"}.toolbox>div span[data-skill=VS\ Code] i:before{content:"<> ";font-size:8px}.footer{width:min(var(--max), calc(100% - 64px));color:var(--muted);font-family:var(--sans);justify-content:space-between;align-items:flex-start;gap:30px;margin:0 auto;padding:34px 0 50px;font-size:13px;display:flex}.footer>div{gap:12px;display:flex}.footer strong{color:var(--ink);font-family:var(--serif)}.footer p{text-align:right;max-width:520px;margin:0;font-size:12px}.back-top{z-index:15;opacity:0;visibility:hidden;border:1px solid color-mix(in srgb,var(--ink) 18%,transparent);background:color-mix(in srgb,var(--paper-2) 68%,transparent);backdrop-filter:blur(14px)saturate(130%);border-radius:10px;place-items:center;width:46px;height:46px;text-decoration:none;transition:all .25s;display:grid;position:fixed;bottom:22px;right:22px;transform:translateY(8px);box-shadow:0 10px 30px #00000014}.back-top.show{opacity:1;visibility:visible;transform:translateY(0)}.back-top:hover{border-color:var(--gold);transform:translateY(-3px)}.reveal{opacity:1;transition:opacity .45s ease var(--delay,0s), transform .45s cubic-bezier(.2,.7,.2,1) var(--delay,0s);transform:none}.reveal.reveal-ready:not(.in-view){opacity:0;transform:translateY(14px)}.reveal.in-view{opacity:1;transform:translateY(0)}@media (width<=1040px){.desktop-nav{display:none}.nav-shell{grid-template-columns:auto 1fr auto auto}.menu-toggle{display:block}.mobile-nav{border:1px solid var(--line);background:color-mix(in srgb,var(--paper-2) 94%,transparent);backdrop-filter:blur(18px);width:min(520px,100% - 64px);box-shadow:var(--shadow);opacity:0;visibility:hidden;grid-template-columns:repeat(2,1fr);gap:7px;padding:14px;transition:all .2s;display:grid;position:absolute;top:66px;left:50%;transform:translate(-50%)translateY(-8px)}.mobile-nav.open{opacity:1;visibility:visible;transform:translate(-50%)translateY(0)}.mobile-nav a{font:500 10px var(--mono);border-bottom:1px solid var(--line);padding:8px 9px;text-decoration:none}.hero-grid{grid-template-columns:minmax(0,1fr) 320px;gap:40px}.about-grid{grid-template-columns:minmax(0,1fr) 360px;gap:48px}.achievement-grid{grid-template-columns:1fr}}@media (width<=820px){.section-pad{padding:44px 0}.hero{padding-top:60px;padding-bottom:52px}.hero-grid{grid-template-columns:1fr;gap:28px;min-height:auto}.about-grid{grid-template-columns:1fr;gap:28px}.globe-shell{max-width:430px;min-height:360px}.section-header{grid-template-columns:1fr;gap:16px}.research-summary{grid-template-columns:1fr}.research-summary>div+div{border-left:0;border-top:1px solid var(--line)}.academic-card,.project-card{grid-template-columns:minmax(0,1fr);width:100%;min-width:0}.academic-thumb,.project-thumb{border-right:0;border-bottom:1px solid var(--line);width:100%;min-height:180px;max-height:220px}.academic-thumb img,.project-thumb img{object-fit:contain;width:100%;height:180px;min-height:0;padding:12px}.contact-card{grid-template-columns:1fr;gap:30px;padding:36px}.toolbox{grid-template-columns:1fr;gap:10px}}@media (width<=560px){.announcement{white-space:nowrap;justify-content:flex-start;overflow:hidden}.announcement span:nth-child(2){text-overflow:ellipsis;overflow:hidden}.nav-shell,.section-pad,.footer{width:min(100% - 40px, var(--max))}.brand strong{display:none}.hero{padding-top:40px;padding-bottom:36px}.hero-copy h1{font-size:32px}.hero-title{font-size:13px}.hero-bio{font-size:14px}.hero-actions a{flex:auto;justify-content:center}.portrait-circle{width:136px;height:136px;margin-bottom:18px}.portrait-wrap{width:92%}.portrait-caption{bottom:16px;left:-8px}.about-grid{margin-top:44px;padding-top:44px}.section-header h2,.about-copy h2,.contact-card h2{font-size:24px}.academic-body,.project-body{padding:18px 20px}.timeline-item{grid-template-columns:1fr;gap:6px;padding-left:36px}.timeline-date{padding-top:0}.achievement-card{grid-template-columns:1fr;padding:10px 20px}.achievement-image{border-right:0;border-bottom:1px solid var(--line);width:100%;height:180px}.news-item{grid-template-columns:1fr 28px;gap:6px 14px;padding:9px 0}.news-item time{grid-column:1/-1}.news-list{padding:0 20px}.contact-card{padding:26px 22px}.footer{flex-direction:column}.footer p{text-align:left}.mobile-nav{grid-template-columns:1fr 1fr}.back-top{bottom:14px;right:14px}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}.reveal.reveal-ready,.reveal.reveal-ready:not(.in-view){opacity:1;transform:none}.announcement-spark-group>span{opacity:.8;transform:translateY(var(--star-y));animation:none}}.theme-toggle{aspect-ratio:1;clip-path:circle(50%);background-position:50%;background-size:cover;flex:0 0 34px;place-items:center;min-width:34px;max-width:34px;min-height:34px;max-height:34px;padding:0;display:grid;overflow:hidden;border-radius:50%!important;width:34px!important;height:34px!important}.theme-toggle:before{display:none}.theme-toggle .icon{width:20px;height:20px;color:var(--ink);top:50%;left:50%!important;right:auto!important;transform:translate(-50%,-50%)!important}.theme-toggle .sun{opacity:1}.theme-toggle .moon,html[data-theme=dark] .theme-toggle .sun{opacity:0}html[data-theme=light] .theme-toggle{background-image:linear-gradient(color-mix(in srgb,var(--paper-2) 24%,transparent),color-mix(in srgb,var(--paper-2) 24%,transparent)),url(/images/theme/lightmode-bg.gif)}.hero-actions a,.tag-row span,.tag-row.large span,.badge,.badge.gold,.link-row.capsule a,.unavailable-chip,.coding-profiles .button,.toolbox>div span{min-height:var(--chip-height);border:1px solid var(--line);border-radius:var(--chip-radius);background:color-mix(in srgb,var(--paper-2) 72%,transparent);color:var(--ink-2);font:500 12px/20px var(--sans);letter-spacing:0;text-transform:none;overflow-wrap:anywhere;justify-content:center;align-items:center;gap:6px;max-width:100%;padding:3px 9px;text-decoration:none;display:inline-flex}.badge.gold{color:color-mix(in srgb,var(--gold) 45%,var(--ink));border-color:color-mix(in srgb,var(--gold) 55%,var(--line));background:color-mix(in srgb,var(--gold) 9%,var(--paper-2))}.badge.team-solo{color:var(--green);background:color-mix(in srgb,var(--green) 8%,var(--paper-2));border-color:color-mix(in srgb,var(--green) 35%,var(--line))}.badge.team-group{color:var(--group);background:color-mix(in srgb,var(--group) 8%,var(--paper-2));border-color:color-mix(in srgb,var(--group) 35%,var(--line))}.unavailable-chip{color:var(--muted);cursor:help;border-style:dashed}.availability,.button{border-radius:var(--chip-radius)}.availability{min-height:32px;padding:5px 12px;line-height:1.5}.coding-profiles{flex-wrap:wrap;justify-content:center;align-items:center;gap:8px;margin:0 0 28px;display:flex}.coding-profiles>.mono{margin-right:6px}.hero-actions{margin-bottom:12px}.hero-copy h1{letter-spacing:-.035em;font-size:clamp(32px,4.5vw,48px)}.hero-title{text-transform:none;letter-spacing:0;font-size:15px;line-height:1.6}.hero-bio{max-width:65ch}.hero{padding-top:64px}.section-header{gap:32px;margin-bottom:28px}.section-header h2{margin-bottom:0;font-size:clamp(26px,3vw,32px);line-height:1.2}.section-header .eyebrow{margin-bottom:12px}.section-border{margin-top:16px}.research-summary,.contact-card,.achievement-card{border-radius:10px}.academic-body,.project-body{min-width:0;padding:24px}.academic-body h3,.project-body h3{letter-spacing:-.015em;font-size:17px;line-height:1.5}.academic-body h3:before{content:none}.meta-row{gap:8px;margin-bottom:14px}.meta-row>.mono{margin-right:4px}.venue{font:400 12px/1.65 var(--sans)}.venue-highlight{color:var(--ink);font-weight:600}.tag-link-row{flex-wrap:nowrap;align-items:flex-end;gap:20px;margin-top:16px}.tag-link-row .tag-row{min-width:0}.tag-link-row .link-row{flex-shrink:0;justify-content:flex-end;margin-left:auto}.card-actions{justify-content:flex-end;margin-top:16px}.academic-thumb,.project-thumb{border-radius:0;align-items:center;display:flex}.academic-thumb img,.project-thumb img{border-radius:0}.academic-card{grid-template-columns:128px minmax(0,1fr)}.academic-card .academic-thumb{border-right:1px solid var(--line);background:var(--paper-2);border-bottom:0;width:128px;min-height:0}.project-card{grid-template-columns:128px minmax(0,1fr)}.project-card .project-thumb{border-right:1px solid var(--line);background:var(--paper-2);border-bottom:0;width:128px;min-height:0}.research-preview{place-items:center;width:100%;height:100%;min-height:116px;padding:12px;text-decoration:none;display:grid}.academic-card .academic-thumb img{object-fit:contain;width:100%;height:96px;min-height:0;padding:0}.project-card .project-thumb img{object-fit:contain;width:100%;height:96px;min-height:0;padding:12px}.academic-card:hover .academic-thumb img{transform:scale(1.025)}.preview-label{display:none}.thumb-placeholder{width:100%;min-height:96px;color:var(--muted);place-items:center;display:grid}.achievement-card{grid-template-columns:96px minmax(0,1fr);gap:20px;padding:20px}.achievement-image{border:0;border-radius:5px}.globe-shell{border:1px solid var(--line);background:radial-gradient(ellipse at 50% 38%,color-mix(in srgb,var(--gold) 10%,var(--paper-2)),transparent 70%);border-radius:10px;gap:0;width:100%;min-width:0;min-height:360px;padding-bottom:24px}.globe-copy strong{font:500 15px var(--sans)}.globe-label{bottom:82px}.theme-toggle,.menu-toggle{width:40px;height:40px}.nav-shell{gap:12px;max-width:1440px;min-height:64px;margin-inline:auto}.desktop-nav a{padding:8px;font-size:12px}.skip-link{z-index:100;background:var(--ink);color:var(--paper);border-radius:5px;padding:10px 16px;position:fixed;top:8px;left:8px;transform:translateY(-160%)}.skip-link:focus{transform:none}:focus-visible{outline:2px solid var(--green);outline-offset:4px}.globe-shell:focus-visible{outline:2px solid var(--green)}.contact-actions{min-width:0}.contact-actions a{overflow-wrap:anywhere;text-align:center}.news-item:last-child{border-bottom:0}@media (width>=1041px) and (width<=1250px){.brand strong{display:none}}@media (width<=820px){.hero-rabbit-image{width:70px}.globe-shell{justify-self:center}.academic-card{grid-template-columns:minmax(0,1fr)}.academic-card .academic-thumb{border-right:0;border-bottom:1px solid var(--line);width:100%;height:180px}.project-card{grid-template-columns:minmax(0,1fr)}.project-card .project-thumb{border-right:0;border-bottom:1px solid var(--line);width:100%;height:180px}.research-preview{height:180px;min-height:0;padding:12px}.academic-card .academic-thumb img{width:100%;height:156px}.project-card .project-thumb img{width:100%;height:180px;padding:12px}.academic-thumb,.project-thumb{height:180px;min-height:0}.academic-thumb img,.project-thumb img{object-fit:contain;width:100%;height:180px}.contact-card{gap:24px}}@media (width<=1040px){.theme-toggle{grid-column:3}.menu-toggle{grid-column:4}}@media (width<=560px){.announcement-spark-left{left:10px}.announcement-spark-right{right:10px}.hero{padding-top:40px}.tag-link-row{flex-wrap:wrap;gap:12px}.tag-link-row .tag-row{flex-basis:100%}.tag-link-row .link-row{margin-left:auto}.quick-facts{grid-template-columns:1fr}.quick-facts>div,.quick-facts>div+div{border-left:0;padding:14px 0}.quick-facts>div+div{border-top:1px solid var(--line)}.academic-body,.project-body{padding:20px}.achievement-card{grid-template-columns:1fr}:root{--chip-height:36px}.mobile-nav{max-height:calc(100dvh - 90px);overflow-y:auto}.mobile-nav a{align-items:center;min-height:40px;font-size:12px;display:flex}}.theme-toggle{border-color:color-mix(in srgb,var(--ink) 20%,var(--line));background-image:linear-gradient(90deg,color-mix(in srgb,var(--paper-2) 15%,transparent),color-mix(in srgb,var(--ink) 18%,transparent)),url(/images/theme/lightmode-bg.gif);background-position:50%;background-size:cover;border-radius:16px;width:68px;height:32px;padding:3px;overflow:hidden;box-shadow:inset 0 1px 2px #17324d14,0 3px 10px #17324d0f}.theme-toggle:before{content:"";z-index:0;border:1px solid color-mix(in srgb,var(--paper-2) 72%,var(--line));background:radial-gradient(circle at 35% 30%,var(--paper-2),color-mix(in srgb,var(--paper-2) 74%,var(--gold-soft)));border-radius:50%;width:26px;height:26px;transition:left .35s cubic-bezier(.2,.8,.2,1),background .3s;position:absolute;top:3px;left:3px;box-shadow:0 2px 4px #17324d33,inset 0 1px 1px #ffffff8c}.theme-toggle .icon{z-index:1;width:26px;height:26px;color:var(--ink);transition:opacity .25s,color .25s;top:50%;transform:translateY(-50%)!important}.theme-toggle .sun{opacity:1;left:3px}.theme-toggle .moon{opacity:.38;right:3px}html[data-theme=dark] .theme-toggle{background-image:linear-gradient(90deg,color-mix(in srgb,var(--ink) 18%,transparent),#050b2047),url(/images/theme/darkmode-bg.gif)}html[data-theme=dark] .theme-toggle:before{background:radial-gradient(circle at 35% 30%,var(--paper-2),color-mix(in srgb,var(--paper-2) 74%,var(--gold-soft)));left:39px}html[data-theme=dark] .theme-toggle .sun{opacity:.38}html[data-theme=dark] .theme-toggle .moon{opacity:1}.theme-toggle:hover{border-color:var(--gold);transform:translateY(-1px)}@media (width<=560px){.theme-toggle{width:60px}html[data-theme=dark] .theme-toggle:before{left:33px}}html.theme-transition body,html.theme-transition body *{transition-property:background-color,color,border-color,box-shadow,fill,stroke!important;transition-duration:.45s!important;transition-timing-function:cubic-bezier(.22,.75,.2,1)!important}::view-transition-old(root),::view-transition-new(root){animation-duration:.42s;animation-timing-function:cubic-bezier(.22,.75,.2,1)}.theme-toggle:active{transform:scale(.94)}@media (prefers-reduced-motion:reduce){::view-transition-old(root),::view-transition-new(root){animation:none}.theme-toggle:active{transform:none}}
