@import"https://fonts.googleapis.com/css2?family=Cormorant+Garamond:wght@500;600;700&family=IBM+Plex+Sans:wght@400;500;600&display=swap";:root{--bg: #f8f8f5;--ink: #112332;--muted: #425b6c;--line: #d3dbe0;--panel: #ffffffcc;--accent: #0f4d6d;--accent-soft: #dce8ef;--accent-2: #1f7a6a;--shadow: 0 18px 46px rgba(21, 44, 61, .12)}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;min-height:100vh;color:var(--ink);font-family:IBM Plex Sans,sans-serif;background:linear-gradient(130deg,#f9faf6,#f0f4f7 52%,#f7f8f2)}a{color:inherit;text-decoration:none}.page{position:relative;max-width:1160px;margin:0 auto;padding:1rem 1.2rem 2rem}.ambient-bg{position:fixed;top:0;right:0;bottom:0;left:0;z-index:-1;overflow:hidden;pointer-events:none}.blob{position:absolute;border-radius:999px;filter:blur(34px);opacity:.22;animation:drift 13s ease-in-out infinite}.blob-a{width:360px;height:360px;background:#8fb8d1;top:-90px;left:-90px}.blob-b{width:300px;height:300px;background:#8ec8c2;right:-60px;top:48%;animation-delay:-4s}.blob-c{width:220px;height:220px;background:#c8d5e2;bottom:-70px;left:45%;animation-delay:-7s}@keyframes drift{0%,to{transform:translate(0)}50%{transform:translate(20px,-18px)}}.site-header{position:sticky;top:.6rem;z-index:100;margin-top:.2rem;padding:.8rem 1rem;border:1px solid #ffffff;border-radius:14px;background:#ffffffd4;box-shadow:0 8px 24px #11233214;-webkit-backdrop-filter:blur(9px);backdrop-filter:blur(9px);display:flex;align-items:center;justify-content:space-between;gap:.8rem}.logo{font-family:Cormorant Garamond,serif;font-size:1.5rem;font-weight:700;letter-spacing:.02em}nav ul{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;align-items:center;gap:.3rem}nav a{display:inline-flex;align-items:center;justify-content:center;padding:.4rem .72rem;border-radius:999px;font-size:.86rem;color:var(--muted);transition:color .18s ease,background .18s ease}nav a:hover{color:var(--accent);background:var(--accent-soft)}main{display:flex;flex-direction:column;gap:1rem}.hero{margin-top:1.2rem;padding:2rem 1.4rem 1.5rem;border-radius:20px;background:linear-gradient(140deg,#ffffffea,#eef4f8da);border:1px solid #ffffff;box-shadow:var(--shadow)}.hero-top{display:grid;grid-template-columns:minmax(0,1fr) minmax(220px,300px);gap:1rem;align-items:start}.hero-copy{min-width:0}.eyebrow{margin:0 0 .6rem;color:var(--accent);font-size:.76rem;letter-spacing:.12em;text-transform:uppercase;font-weight:600}.hero h1{margin:0;max-width:860px;font-family:Cormorant Garamond,serif;font-size:clamp(2.2rem,4vw,3.4rem);line-height:1.02}.subheadline{margin:.5rem 0 0;color:#27485b;font-size:1.02rem;font-weight:500}.hero-focus-tags{margin-top:.6rem;display:flex;flex-wrap:wrap;gap:.42rem}.hero-focus-tags span{padding:.2rem .56rem;border-radius:999px;background:#eaf3f8;color:#23526a;font-size:.74rem;font-weight:500}.intro{margin:.95rem 0 0;max-width:780px;color:var(--muted);line-height:1.65}.hero-meta{margin-top:.95rem;display:flex;flex-wrap:wrap;gap:.5rem}.hero-meta span{font-size:.82rem;padding:.38rem .64rem;border-radius:999px;color:#26485b;border:1px solid #c7d8e3;background:#f7fbff}.hero-actions{margin-top:1rem;display:flex;flex-wrap:wrap;gap:.55rem}.hero-actions a{display:inline-flex;align-items:center;justify-content:center;gap:.42rem;padding:.58rem .9rem;border:1px solid #d7dee4;border-radius:9px;font-size:.88rem;font-weight:500;background:#fff;transition:transform .2s ease,border-color .2s ease,color .2s ease}.hero-actions a:hover{transform:translateY(-2px);border-color:#7da3ba;color:var(--accent)}.hero-link-icon{width:1rem;height:1rem;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;background:#fff;border-radius:3px;padding:1px}.hero-link-icon img{width:100%;height:100%;display:block}.hero-portrait-card{margin:0;border:1px solid #cfdee8;border-radius:16px;padding:.55rem;background:linear-gradient(170deg,#f7fbff,#edf5fa);box-shadow:0 16px 28px #122f421f}.hero-portrait-card img{width:100%;aspect-ratio:5 / 7;object-fit:cover;object-position:center 16%;display:block;border-radius:12px}.stats-grid{margin-top:1.1rem;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.58rem}.stat-card{border:1px solid #d9e3ea;border-radius:11px;padding:.75rem;background:#fbfdff}.stat-card h2{margin:0;font-size:1.15rem;font-family:Cormorant Garamond,serif}.stat-card p{margin:.24rem 0 0;font-size:.76rem;color:var(--muted)}.section{padding:1.35rem 1.2rem 1.2rem;border-radius:18px;border:1px solid var(--line);background:var(--panel);box-shadow:var(--shadow)}.section-title-wrap{margin-bottom:.9rem}.section-eyebrow{margin:0;color:var(--accent-2);font-size:.74rem;letter-spacing:.12em;text-transform:uppercase;font-weight:600}.section h2{margin:.18rem 0 0;font-family:Cormorant Garamond,serif;font-size:clamp(1.65rem,2.8vw,2.2rem);line-height:1.1}.subsection-title{margin:1rem 0 .7rem;font-size:1.05rem;font-weight:600;color:#1b4158}.timeline-order-note{margin:0 0 .6rem;font-size:.74rem;color:var(--muted);letter-spacing:.1em;text-transform:uppercase;font-weight:700}.timeline{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.7rem}.cv-timeline{position:relative;display:grid;gap:.8rem;margin-top:.2rem}.cv-timeline:before{content:"";position:absolute;top:.2rem;bottom:.2rem;left:156px;width:2px;background:#c6d7e2}.cv-entry{display:grid;grid-template-columns:148px 16px minmax(0,1fr);gap:.7rem;align-items:start}.cv-date{font-size:.86rem;font-weight:600;color:#2f566e;line-height:1.25;padding-top:.25rem}.cv-track-node{width:16px;height:16px;border-radius:999px;background:#f1f8fc;border:3px solid #6d9fbb;margin-top:.24rem;z-index:1}.cv-card{padding:1rem}.cv-card-head{display:flex;flex-direction:column;gap:.25rem}.cv-subtitle{margin:0;font-size:.96rem;color:var(--muted)}.cv-kind{display:inline-flex;width:fit-content;border-radius:999px;padding:.2rem .55rem;font-size:.72rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;border:1px solid transparent}.cv-kind-education{color:#185365;background:#e3f1f7;border-color:#b7d5e1}.cv-kind-appointment{color:#3f3a0d;background:#faf3d8;border-color:#e5d49b}.cv-kind-journal{color:#4f123b;background:#f6e4ef;border-color:#dfbfd2}.cv-kind-conference{color:#214233;background:#e3f3eb;border-color:#badfce}.cv-kind-outreach{color:#4b2d0e;background:#f9ebdf;border-color:#e5c9ad}.cv-kind-certification{color:#1d4a2a;background:#e5f5ea;border-color:#b9dfc5}.cv-kind-teaching{color:#5a2f12;background:#f9ecd9;border-color:#e8cfab}.timeline-card{padding:.95rem;border:1px solid #d6dfe7;border-radius:12px;background:#ffffffef}.timeline-card header h3{margin:0;font-size:1.02rem}.timeline-card header p{margin:.3rem 0;color:var(--muted);font-size:.9rem}.timeline-card header span{font-size:.79rem;color:var(--accent);font-weight:600}.timeline-card ul{margin:.72rem 0 0;padding-left:1.05rem;display:grid;gap:.36rem;color:#1d3949}.timeline-card a{margin-top:.65rem;display:inline-flex;align-items:center;justify-content:center;width:fit-content;font-size:.78rem;color:var(--accent);border:1px solid #b7ccda;border-radius:999px;padding:.18rem .6rem}.proceedings-list{display:grid;gap:.8rem;margin-top:.2rem}.proceeding-group{display:grid;grid-template-columns:148px minmax(0,1fr);gap:.7rem;align-items:start}.proceeding-group-items{display:grid;gap:.62rem}.proceeding-year{margin:0;font-size:.86rem;font-weight:600;color:#2f566e;line-height:1.25;padding-top:.25rem}.proceeding-item{min-width:0}.proceeding-content{padding:1rem;position:relative}.proceeding-content .card-note{margin:0;color:#1d3949}.interactive-card-link{display:grid;grid-template-columns:minmax(0,1fr) auto;column-gap:.55rem;row-gap:.55rem;align-items:start;transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease}.interactive-card-link:hover{transform:translateY(-2px);border-color:#98b8cb;box-shadow:0 10px 22px #1630421f}.interactive-card-link:focus-visible{outline:2px solid #6e9db8;outline-offset:2px;border-color:#7ea8c0}.interactive-card-link>:not(.card-link-icon){grid-column:1}.interactive-card-link>.card-link-icon{grid-column:2;grid-row:1;justify-self:end;align-self:start}.card-link-icon{position:static}.card-status-pill{margin-top:.62rem;width:fit-content;display:inline-flex;align-items:center;justify-content:center;border-radius:999px;border:1px solid #c4d6e2;background:#f3f8fc;color:#2a556c;font-size:.72rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase;padding:.2rem .56rem}.presentation-content h3{margin:0;font-size:1.02rem}.presentation-content .card-note{margin-top:.55rem}.presentation-content .tag-row{margin-top:.62rem}.outreach-content .card-note,.media-coverage-content .card-note{margin-top:.72rem}.card-note{margin:.72rem 0 0;color:#2c4b5e}.service-group{margin-top:.8rem}.service-group ul{margin-top:.45rem}.group-title{margin:.85rem 0 0;color:#1b4158;font-size:.88rem;font-weight:600}.card-subheading{margin:.85rem 0 .45rem;font-size:1.02rem;font-weight:600}.split-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.7rem}.manuscript-card{background:linear-gradient(180deg,#fffffff7,#f5fbffe6);border-color:#c8d9e5;box-shadow:0 10px 22px #12364f14}.manuscript-card-review{background:linear-gradient(180deg,#fafffcfa,#ecf8f2e6)}.manuscript-card-prep{background:linear-gradient(180deg,#fffdf7fa,#faf1deeb)}.manuscript-card-head{display:flex;align-items:center;justify-content:space-between;gap:.6rem}.manuscript-card-count{margin:0;min-width:1.7rem}.manuscript-list{list-style:none;margin:.8rem 0 0;padding:0;display:grid;gap:.6rem}.manuscript-item{border:1px solid #d7e3eb;border-radius:10px;padding:.7rem .75rem;background:#ffffffe6;display:flex;align-items:center;justify-content:space-between;gap:.7rem}.manuscript-copy{display:grid;gap:.18rem}.manuscript-line{margin:0;color:#1c3d4f;line-height:1.35}.manuscript-title{font-weight:400}.manuscript-venue{color:#356179}.manuscript-venue-line{font-size:.9rem}.card-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.7rem}.card-grid.compact{margin-bottom:.7rem}.publication-list{display:grid;grid-template-columns:1fr;gap:.8rem}.paper-card,.repo-card{border:1px solid #d6dfe8;border-radius:12px;padding:.9rem;background:#ffffffef;display:flex;flex-direction:column;gap:.58rem;transition:transform .2s ease,box-shadow .2s ease}.paper-card:hover,.repo-card:hover{transform:translateY(-3px);box-shadow:0 9px 20px #1935491f}.publication-card{padding:1rem}.paper-head{display:flex;justify-content:space-between;align-items:center;gap:.55rem}.paper-head p{margin:0;color:var(--muted);font-size:.8rem}.paper-actions{display:flex;flex-wrap:wrap;gap:.35rem}.paper-head a,.repo-card a{display:inline-flex;align-items:center;justify-content:center;width:fit-content;font-size:.78rem;color:var(--accent);border:1px solid #b7ccda;border-radius:999px;padding:.18rem .6rem}.repo-card-link{cursor:pointer}.repo-card-link:focus-visible{outline:2px solid #6e9db8;outline-offset:2px;border-color:#7ea8c0}.repo-link-arrow{display:inline-flex;align-items:center;justify-content:center;width:fit-content;font-size:.78rem;padding:.18rem .6rem;border:1px solid #b7ccda;border-radius:999px;color:var(--accent)}.paper-card h3,.repo-card h3{margin:0;font-size:1rem}.paper-card p,.repo-card p{margin:0;color:#244355;line-height:1.55}.publication-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.15fr);gap:.75rem;align-items:start}.publication-copy{display:flex;flex-direction:column;gap:.55rem}.media-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.45rem}.media-card{margin:0;border:1px solid #d6dfe8;border-radius:9px;background:#f8fbfd;padding:.35rem;position:relative}.media-card-trigger{width:100%;border:0;padding:0;margin:0;background:transparent;display:block;cursor:zoom-in;text-align:left;border-radius:6px}.media-card .media-thumb{width:100%;height:auto;max-height:420px;object-fit:contain;object-position:center;border-radius:6px;display:block;background:#fff}.media-zoom-hint{position:absolute;right:.6rem;bottom:.6rem;padding:.2rem .48rem;border-radius:999px;font-size:.69rem;color:#18425a;background:#f0f7fce6;border:1px solid rgba(130,161,180,.6);opacity:0;transition:opacity .16s ease}.media-card:hover .media-zoom-hint{opacity:1}.media-card-trigger:focus-visible .media-zoom-hint{opacity:1}.hover-preview-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1200;background:#0e222f8f;display:flex;align-items:center;justify-content:center;padding:1rem}.hover-preview-panel{width:min(90vw,1280px);max-height:90vh;padding:.45rem;border-radius:13px;background:#f7fbfff7;border:1px solid #b8ccda;box-shadow:0 24px 70px #0f2b3f59;animation:preview-in .14s ease;position:relative}.hover-preview-close{position:absolute;top:.75rem;right:.75rem;border:1px solid #b7ccda;border-radius:999px;background:#f7fbff;color:#18425a;padding:.2rem .62rem;font-size:.76rem;font-weight:600;cursor:pointer}.hover-preview-panel img{width:100%;max-height:calc(90vh - 2.4rem);object-fit:contain;display:block;border-radius:10px;background:#fff}@keyframes preview-in{0%{opacity:0;transform:scale(.96)}to{opacity:1;transform:scale(1)}}.publication-media{gap:.5rem}.publication-media.media-count-1{grid-template-columns:1fr}.publication-media.media-count-3 .media-card:first-child{grid-column:1 / -1}.publication-media.media-count-3 .media-card{align-self:start}.publication-media.media-count-3 .media-card.media-card-uniform{grid-column:1;grid-row:1 / span 2}.publication-media.media-count-3 .media-card.media-card-uniform .media-thumb{max-height:none;height:412px}.publication-media.media-count-3 .media-card.media-card-under-second{grid-column:2;grid-row:2}.tag-row{display:flex;flex-wrap:wrap;gap:.36rem}.timeline-card .tag-row{margin-top:.65rem}.tag-row span{padding:.2rem .54rem;border-radius:999px;background:#eaf3f8;color:#23526a;font-size:.74rem}.repo-meta{display:flex;gap:.7rem;flex-wrap:wrap;color:var(--muted);font-size:.78rem}.notice{margin-top:0;margin-bottom:.72rem;color:var(--muted)}.contact-card{border:1px dashed #b8c8d2;border-radius:12px;padding:1rem;background:#f9fcfe}.contact-card p{margin:0;color:var(--muted)}.contact-card a{margin-top:.55rem;display:inline-flex;color:var(--accent);font-size:1.08rem;font-weight:600}.visitor-widget-card{display:flex;flex-direction:column;gap:.65rem;align-items:center}.mapmyvisitors-host{width:100%;min-height:145px;display:flex;align-items:center;justify-content:center}.visitor-map-fallback{display:inline-flex;align-items:center;justify-content:center;padding:.45rem;border:1px solid #d6dfe8;border-radius:10px;background:#f8fbfd;width:fit-content;max-width:100%}.visitor-map-fallback img{display:block;max-width:100%;height:auto}footer{margin-top:1rem}footer p{margin:0;text-align:center;color:var(--muted);font-size:.84rem}.reveal{opacity:0;transform:translateY(22px);transition:opacity .65s ease,transform .65s ease}.reveal.is-visible{opacity:1;transform:translateY(0)}@media (max-width: 1000px){.hero-top{grid-template-columns:1fr}.hero-portrait-card{width:min(320px,100%);justify-self:start}.timeline,.card-grid,.split-grid{grid-template-columns:1fr}.cv-timeline:before{left:136px}.cv-entry{grid-template-columns:128px 16px minmax(0,1fr)}.proceeding-group{grid-template-columns:128px minmax(0,1fr)}.publication-layout{grid-template-columns:1fr}.stats-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.site-header{position:static;border-radius:12px;flex-direction:column;align-items:stretch}nav{width:100%;min-width:0}nav ul{width:100%;overflow-x:visible;flex-wrap:wrap}}@media (max-width: 640px){.page{padding:.8rem .75rem 1.2rem}.hero,.section{border-radius:14px;padding:1.08rem .9rem}.hero-actions a{width:100%}.hero-portrait-card{width:min(300px,100%);margin-top:.2rem}.stats-grid,.publication-media{grid-template-columns:1fr}.publication-media .media-card,.publication-media.media-count-3 .media-card:first-child{grid-column:auto}.publication-media.media-count-3 .media-card.media-card-uniform,.publication-media.media-count-3 .media-card.media-card-under-second{grid-column:auto;grid-row:auto}.proceeding-group{grid-template-columns:1fr;gap:.38rem}.manuscript-item{flex-direction:column;align-items:flex-start}.proceeding-year{padding-top:0;font-size:.8rem}.cv-timeline:before{display:none}.cv-entry{grid-template-columns:1fr;gap:.35rem}.cv-track-node{display:none}.cv-date{padding-top:0;font-size:.8rem}}@media (hover: none),(pointer: coarse){.media-zoom-hint{display:none}}
