.astro-route-announcer{position:absolute;left:0;top:0;clip:rect(0 0 0 0);clip-path:inset(50%);overflow:hidden;white-space:nowrap;width:1px;height:1px}:root{--bg: #f7f5ef;--text: #1d2a32;--muted: #556872;--border: #dbe3e8;--accent: #2f5f6b;--paper: #fffdf8}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--text);font-family:Georgia,Times New Roman,Songti SC,serif;font-size:18px;line-height:1.7}a{color:var(--accent);text-decoration:none;border-bottom:1px solid rgba(47,95,107,.35)}a:hover{border-bottom-color:currentColor}.site-header{position:sticky;top:0;z-index:10;display:flex;align-items:center;justify-content:space-between;gap:1.5rem;padding:1rem min(6vw,4rem);border-bottom:1px solid var(--border);background:#f7f5efdb;backdrop-filter:blur(14px)}.site-title{color:var(--text);border-bottom:0;font-weight:700;white-space:nowrap}.site-nav{display:flex;flex-wrap:wrap;gap:.55rem 1rem;font-size:.95rem}.site-nav a{color:var(--muted);border-bottom:0}.site-nav a:hover,.site-nav a.active{color:var(--text)}.page-shell{width:min(900px,calc(100% - 2rem));margin:0 auto;padding:4rem 0 5rem;animation:fade-in-up .65s ease both}.site-footer{border-top:1px solid var(--border);padding:1.5rem 1rem;color:var(--muted);font-size:.95rem;text-align:center}.home-hero{padding:2rem 0 1rem}.home-subtitle{margin:0 0 .5rem;color:var(--muted);font-style:italic}.home-hero h1{margin:0;font-size:clamp(2.6rem,8vw,4.8rem);line-height:1.05;letter-spacing:0}.home-intro{max-width:720px;margin:1.2rem 0 0;color:var(--text);font-size:1.15rem}.home-links{display:flex;flex-wrap:wrap;gap:.7rem 1rem;margin-top:1.2rem}.motto{margin:3rem 0 0;padding:1.2rem 0;border-top:1px solid var(--border);border-bottom:1px solid var(--border);color:#344853;font-size:clamp(1.4rem,4vw,2rem);font-style:italic;line-height:1.35;text-align:center}.page-header{margin-bottom:2.5rem}.page-title{margin:0;font-size:clamp(2.4rem,7vw,4.2rem);line-height:1.08}.page-intro{max-width:720px;margin:1rem 0 0;color:var(--muted);font-size:1.12rem}.content-section{margin-top:2.5rem}.content-section h2{margin:0 0 .8rem;padding-bottom:.45rem;border-bottom:1px solid var(--border);font-size:1.25rem}.simple-list{margin:0;padding-left:1.2rem}.simple-list li{margin:.75rem 0}.item-year{color:#344853;font-weight:700}.publication-list{display:grid;gap:1.4rem;margin:0;padding:0;list-style:none}.publication-item{padding-bottom:1.4rem;border-bottom:1px solid var(--border)}.publication-title{margin:.25rem 0;font-weight:700}.gallery-grid{column-count:3;column-gap:1rem}.gallery-grid figure{break-inside:avoid;margin:0 0 1rem}.gallery-grid img{display:block;width:100%;height:auto;border:1px solid var(--border);border-radius:6px}@keyframes fade-in-up{0%{opacity:0}to{opacity:1}}::view-transition-old(root){animation:page-out .24s ease both}::view-transition-new(root){animation:page-in .46s ease both}@keyframes page-out{0%{opacity:1}to{opacity:0}}@keyframes page-in{0%{opacity:0}to{opacity:1}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}@media(max-width:720px){body{font-size:17px}.site-header{align-items:flex-start;flex-direction:column;padding:.9rem 1rem}.page-shell{padding-top:2.8rem}.gallery-grid{column-count:2}}@media(max-width:520px){.gallery-grid{column-count:1}}@keyframes astroFadeInOut{0%{opacity:1}to{opacity:0}}@keyframes astroFadeIn{0%{opacity:0;mix-blend-mode:plus-lighter}to{opacity:1;mix-blend-mode:plus-lighter}}@keyframes astroFadeOut{0%{opacity:1;mix-blend-mode:plus-lighter}to{opacity:0;mix-blend-mode:plus-lighter}}@keyframes astroSlideFromRight{0%{transform:translate(100%)}}@keyframes astroSlideFromLeft{0%{transform:translate(-100%)}}@keyframes astroSlideToRight{to{transform:translate(100%)}}@keyframes astroSlideToLeft{to{transform:translate(-100%)}}@media(prefers-reduced-motion){::view-transition-group(*),::view-transition-old(*),::view-transition-new(*){animation:none!important}[data-astro-transition-scope]{animation:none!important}}
