:root{--font-sans:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji";--font-mono:ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;--bg:#faf9f6;--bg-elev:#fff;--bg-soft:#f1efe9;--text:#1b1e2b;--muted:#5b6070;--border:#e4e1d8;--accent:#4652c9;--accent-contrast:#fff;--accent-soft:#4652c917;--amber:#b8741a;--shadow:0 1px 2px #1416280d, 0 8px 24px #14162812;--shadow-lift:0 2px 4px #1416280f, 0 14px 36px #1416281f;--header-bg:#faf9f6d1;--star-opacity:.25}[data-theme=dark]{--bg:#0a0d18;--bg-elev:#121628;--bg-soft:#0f1322;--text:#e8eaf3;--muted:#9aa1b8;--border:#242b45;--accent:#8d95ff;--accent-contrast:#0a0d18;--accent-soft:#8d95ff1f;--amber:#e2a34f;--shadow:0 1px 2px #0006, 0 8px 24px #00000073;--shadow-lift:0 2px 4px #00000080, 0 14px 36px #0000008c;--header-bg:#0a0d18c7;--star-opacity:.9}*,:before,:after{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:5rem}body{font-family:var(--font-sans);color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased;margin:0;font-size:1.0625rem;line-height:1.65;transition:background-color .25s,color .25s}img{max-width:100%;display:block}a{color:var(--accent);text-decoration:none}a:hover{text-underline-offset:3px;text-decoration:underline}h1,h2,h3,h4{letter-spacing:-.02em;text-wrap:balance;margin:0 0 .6em;line-height:1.15}h1{font-size:clamp(2.2rem,6vw,3.6rem);font-weight:800}h2{font-size:clamp(1.5rem,3.5vw,2.1rem);font-weight:750}h3{font-size:1.2rem;font-weight:650}p{margin:0 0 1em}.container{max-width:1060px;margin-inline:auto;padding-inline:clamp(1.1rem,4vw,2rem)}.section{padding-block:clamp(3rem,8vw,5.5rem)}.kicker{letter-spacing:.14em;text-transform:uppercase;color:var(--amber);margin-bottom:.7rem;font-size:.82rem;font-weight:700;display:block}.muted{color:var(--muted)}.btn{cursor:pointer;border:1px solid #0000;border-radius:999px;align-items:center;gap:.5rem;padding:.65rem 1.25rem;font-size:.98rem;font-weight:600;transition:transform .15s,box-shadow .15s,background .15s;display:inline-flex}.btn:hover{text-decoration:none;transform:translateY(-1px)}.btn-primary{background:var(--accent);color:var(--accent-contrast);box-shadow:var(--shadow)}.btn-primary:hover{box-shadow:var(--shadow-lift)}.btn-ghost{border-color:var(--border);color:var(--text);background:var(--bg-elev)}.btn-ghost:hover{border-color:var(--accent);color:var(--accent)}.card-grid{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:1.1rem;display:grid}.card{background:var(--bg-elev);border:1px solid var(--border);color:var(--text);box-shadow:var(--shadow);border-radius:16px;padding:1.4rem 1.5rem;transition:transform .18s,box-shadow .18s,border-color .18s;display:block}a.card:hover{box-shadow:var(--shadow-lift);border-color:var(--accent);text-decoration:none;transform:translateY(-3px)}.card .card-icon{margin-bottom:.6rem;font-size:1.6rem;display:block}.card h3{margin-bottom:.35rem}.card p{color:var(--muted);margin:0;font-size:.95rem}.timeline{border-inline-start:2px solid var(--border);margin:0;padding:0;list-style:none;position:relative}.timeline li{padding:0 0 1.8rem 1.6rem;position:relative}.timeline li:before{content:"";background:var(--accent);border:2px solid var(--bg);border-radius:50%;width:12px;height:12px;position:absolute;top:.45em;left:-7px}.timeline .when{color:var(--amber);letter-spacing:.04em;font-size:.85rem;font-weight:700}.timeline h3{margin:.15rem 0}.timeline .where{color:var(--muted);margin:0;font-size:.95rem}.pub-list{margin:0;padding:0;list-style:none}.pub-list li{background:var(--bg-elev);border:1px solid var(--border);box-shadow:var(--shadow);border-radius:14px;margin-bottom:.9rem;padding:1.1rem 1.3rem}.pub-title{margin:0 0 .25rem;font-weight:650}.pub-meta{color:var(--muted);margin:0;font-size:.92rem}.pub-meta .journal{font-style:italic}.pub-links{gap:.9rem;margin-top:.45rem;font-size:.9rem;display:flex}.masonry{columns:3 260px;column-gap:1rem}.masonry figure{break-inside:avoid;border:1px solid var(--border);background:var(--bg-elev);cursor:zoom-in;border-radius:14px;margin:0 0 1rem;transition:transform .18s,box-shadow .18s;overflow:hidden}.masonry figcaption{color:var(--muted);padding:.55rem .9rem .65rem;font-size:.85rem}.masonry figure:hover{box-shadow:var(--shadow-lift);transform:scale(1.015)}.lightbox{background:0 0;border:none;max-width:min(92vw,1100px);max-height:92vh;padding:0}.lightbox::backdrop{backdrop-filter:blur(4px);background:#05060ce0}.lightbox img{border-radius:12px;width:auto;max-width:100%;max-height:82vh;margin-inline:auto}.lightbox figcaption{color:#cfd3e4;text-align:center;padding:.7rem 0 0;font-size:.95rem}.starfield{pointer-events:none;opacity:var(--star-opacity);background-image:radial-gradient(1.2px 1.2px at 22px 34px, var(--text) 50%, transparent 51%), radial-gradient(1px 1px at 120px 90px, var(--text) 50%, transparent 51%), radial-gradient(1.6px 1.6px at 210px 150px, var(--accent) 50%, transparent 51%), radial-gradient(1px 1px at 300px 60px, var(--text) 50%, transparent 51%), radial-gradient(1.3px 1.3px at 80px 210px, var(--amber) 50%, transparent 51%), radial-gradient(1px 1px at 260px 240px, var(--text) 50%, transparent 51%);background-size:340px 300px;animation:6s ease-in-out infinite alternate twinkle;position:absolute;inset:0}@keyframes twinkle{0%{opacity:calc(var(--star-opacity) * .55)}to{opacity:var(--star-opacity)}}.reveal{opacity:0;transition:opacity .6s,transform .6s;transform:translateY(18px)}.reveal.visible{opacity:1;transform:none}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.reveal{opacity:1;transition:none;transform:none}.starfield{animation:none}.btn,.card,.masonry figure{transition:none}}.site-header[data-astro-cid-nen7h5rs]{z-index:50;background:var(--header-bg);-webkit-backdrop-filter:blur(12px);border-bottom:1px solid var(--border);position:sticky;top:0}.header-inner[data-astro-cid-nen7h5rs]{justify-content:space-between;align-items:center;min-height:3.6rem;display:flex}.brand[data-astro-cid-nen7h5rs]{letter-spacing:-.02em;color:var(--text);font-size:1.05rem;font-weight:800}.brand[data-astro-cid-nen7h5rs]:hover{color:var(--accent);text-decoration:none}.nav-list[data-astro-cid-nen7h5rs]{align-items:center;gap:.25rem;margin:0;padding:0;list-style:none;display:flex}.nav-list[data-astro-cid-nen7h5rs] a[data-astro-cid-nen7h5rs]{color:var(--muted);border-radius:999px;padding:.45rem .75rem;font-size:.95rem;font-weight:550;display:block}.nav-list[data-astro-cid-nen7h5rs] a[data-astro-cid-nen7h5rs]:hover{color:var(--text);background:var(--accent-soft);text-decoration:none}.nav-list[data-astro-cid-nen7h5rs] a[data-astro-cid-nen7h5rs][aria-current=page]{color:var(--accent);background:var(--accent-soft)}.has-dropdown[data-astro-cid-nen7h5rs]{position:relative}.nav-trigger[data-astro-cid-nen7h5rs]{font:inherit;color:var(--muted);cursor:pointer;background:0 0;border:none;border-radius:999px;align-items:center;gap:.3rem;padding:.45rem .75rem;font-size:.95rem;font-weight:550;display:inline-flex}.nav-trigger[data-astro-cid-nen7h5rs]:hover,.nav-trigger[data-astro-cid-nen7h5rs][aria-expanded=true]{color:var(--text);background:var(--accent-soft)}.nav-trigger[data-astro-cid-nen7h5rs][aria-current=page]{color:var(--accent);background:var(--accent-soft)}.nav-trigger[data-astro-cid-nen7h5rs] svg[data-astro-cid-nen7h5rs]{transition:transform .18s}.nav-trigger[data-astro-cid-nen7h5rs][aria-expanded=true] svg[data-astro-cid-nen7h5rs]{transform:rotate(180deg)}.dropdown[data-astro-cid-nen7h5rs]{background:var(--bg-elev);border:1px solid var(--border);min-width:190px;box-shadow:var(--shadow-lift);z-index:60;border-radius:12px;margin:0;padding:.35rem;list-style:none;display:none;position:absolute;top:calc(100% + .45rem);left:0}.dropdown[data-astro-cid-nen7h5rs].open{display:block}.dropdown[data-astro-cid-nen7h5rs] a[data-astro-cid-nen7h5rs]{white-space:nowrap;border-radius:8px;padding:.5rem .75rem;display:block}.theme-toggle[data-astro-cid-nen7h5rs]{border:1px solid var(--border);background:var(--bg-elev);width:2.2rem;height:2.2rem;color:var(--text);cursor:pointer;border-radius:50%;place-items:center;margin-left:.35rem;display:grid}.theme-toggle[data-astro-cid-nen7h5rs]:hover{border-color:var(--accent);color:var(--accent)}[data-theme=dark] .icon-moon[data-astro-cid-nen7h5rs],[data-theme=light] .icon-sun[data-astro-cid-nen7h5rs]{display:none}.menu-btn[data-astro-cid-nen7h5rs]{border:1px solid var(--border);background:var(--bg-elev);cursor:pointer;border-radius:10px;flex-direction:column;justify-content:center;gap:4px;width:2.4rem;height:2.4rem;padding:.55rem;display:none}.menu-btn[data-astro-cid-nen7h5rs] span[data-astro-cid-nen7h5rs]{background:var(--text);border-radius:2px;height:2px;transition:transform .2s,opacity .2s;display:block}@media (width<=760px){.menu-btn[data-astro-cid-nen7h5rs]{display:flex}nav[data-astro-cid-nen7h5rs]{position:relative}.nav-list[data-astro-cid-nen7h5rs]{background:var(--bg-elev);border:1px solid var(--border);min-width:220px;box-shadow:var(--shadow-lift);border-radius:14px;flex-direction:column;align-items:stretch;padding:.5rem;display:none;position:absolute;top:calc(100% + .6rem);right:0}.nav-list[data-astro-cid-nen7h5rs].open{display:flex}.nav-list[data-astro-cid-nen7h5rs] a[data-astro-cid-nen7h5rs]{border-radius:10px;padding:.6rem .9rem}.nav-trigger[data-astro-cid-nen7h5rs]{justify-content:space-between;width:100%;padding:.6rem .9rem}.dropdown[data-astro-cid-nen7h5rs]{border:none;border-inline-start:1px solid var(--border);min-width:0;box-shadow:none;background:0 0;border-radius:0;margin:0 0 .2rem .6rem;padding:0;display:block;position:static}.dropdown[data-astro-cid-nen7h5rs] a[data-astro-cid-nen7h5rs]{padding-block:.45rem;font-size:.92rem}.theme-toggle[data-astro-cid-nen7h5rs]{margin:.3rem 0 0 .35rem}}.site-footer[data-astro-cid-jo6i4kqk]{border-top:1px solid var(--border);background:var(--bg-soft);margin-top:3rem}.footer-inner[data-astro-cid-jo6i4kqk]{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.8rem 1.5rem;padding-block:1.6rem;display:flex}.footer-inner[data-astro-cid-jo6i4kqk] p[data-astro-cid-jo6i4kqk]{margin:0;font-size:.92rem}.footer-links[data-astro-cid-jo6i4kqk]{flex-wrap:wrap;gap:1.1rem;margin:0;padding:0;font-size:.92rem;list-style:none;display:flex}
