:root{--accent:#1e1e1e;--accent-soft:rgba(0, 0, 0, 0.04);--accent2:#6b6b6b;--accent2-soft:rgba(0, 0, 0, 0.04);--accent3:#1e1e1e;--accent3-soft:rgba(0, 0, 0, 0.04);--accent4:#6b6b6b;--accent4-soft:transparent;--dot1:#004282;--dot2:#00A0AA;--dot3:#EA3B07;--dot4:#FCC900}.dark{--accent:#dadadb;--accent-soft:rgba(255, 255, 255, 0.05);--accent2:#9b9c9d;--accent2-soft:rgba(255, 255, 255, 0.05);--accent3:#dadadb;--accent3-soft:rgba(255, 255, 255, 0.05);--accent4:#9b9c9d;--accent4-soft:transparent;--dot1:#3fa7e8;--dot2:#1fbcc6;--dot3:#f1714c;--dot4:#fcc900}:root{--fs-xs:0.8rem;--fs-sm:0.9rem;--fs-md:1.1rem;--fs-lg:1.5rem;--fw-strong:600}.hero{display:flex;flex-wrap:wrap;align-items:center;gap:28px;margin:28px 0 8px}.hero-photo{width:170px;height:170px;border-radius:10px;object-fit:cover;border:1px solid var(--border);box-shadow:7px 7px 0 var(--accent4-soft)}.hero-text{flex:1 1 320px;min-width:0}.sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.hero-role{margin:0 0 4px;font-size:var(--fs-lg);font-weight:var(--fw-strong);line-height:1.25;color:var(--primary)}.hero-affil{margin:0 0 14px;color:var(--secondary)}.hero-affil a,.hero-more a{color:inherit;border-bottom:1px solid var(--border)}.hero-affil a:hover,.hero-more a:hover{color:var(--accent);border-color:var(--accent)}.hero-links{list-style:none;display:flex;flex-wrap:wrap;gap:8px;margin:0 0 10px;padding:0}.hero-links a{display:inline-flex;align-items:center;gap:7px;padding:5px 12px;border:1px solid var(--border);border-radius:999px;font-size:var(--fs-sm);color:var(--primary);transition:border-color .15s,color .15s,background .15s}.hero-links a:hover,.hero-links a:focus-visible{border-color:var(--accent);color:var(--accent);background:var(--accent-soft)}.hero-more{margin:0;font-size:var(--fs-sm);color:var(--secondary)}@media(max-width:520px){.hero{justify-content:center;text-align:center}.hero-links{justify-content:center}}.home-page .post-content h2{font-size:var(--fs-lg);margin:36px 0 14px;padding-bottom:6px;border-bottom:1px solid var(--border)}.post-content h2{position:relative}.post-content h2::after{content:"";position:absolute;left:0;bottom:-1px;width:44px;height:2px;background:var(--accent)}.thesis{margin:22px 0;padding:2px 0 2px 18px;border-left:3px solid var(--accent)}.thesis p{margin:0}.thesis-label{font-size:var(--fs-xs);font-weight:var(--fw-strong);letter-spacing:.02em;color:var(--accent)}.thesis-title{margin:2px 0 6px!important;font-size:var(--fs-md);font-weight:var(--fw-strong);line-height:1.35;color:var(--primary)}.thesis-summary{font-size:var(--fs-sm);line-height:1.5;color:var(--content)}.muted{color:var(--secondary);font-size:var(--fs-sm);margin:0 0 10px}.post-content .news{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}.post-content .news li{--c:var(--accent);--t:var(--accent-soft);position:relative;display:flex;align-items:baseline;gap:10px;margin:0;padding:7px 12px;background:var(--t);border-left:3px solid var(--c);border-radius:0 6px 6px 0;transition:background .15s}.post-content .news li:hover{filter:brightness(.97)}.news-when{flex:none;font-size:var(--fs-xs);font-weight:var(--fw-strong);letter-spacing:.02em;color:var(--c);font-variant-numeric:tabular-nums}.news-text{color:var(--primary);font-size:var(--fs-sm);line-height:1.4}.post-content .news a::after{content:"";position:absolute;inset:0}.pub-year{font-size:var(--fs-lg);margin:36px 0 12px;padding-bottom:6px;border-bottom:1px solid var(--border)}.pub{margin:0 0 22px}.pub-title{font-size:var(--fs-md);font-weight:var(--fw-strong);line-height:1.35;margin:0 0 4px!important}.pub-title a{color:var(--primary)}.pub-title a:hover{color:var(--accent)}.pub-badge{display:inline-block;vertical-align:1px;margin-left:6px;padding:1px 8px;font-size:var(--fs-xs);font-weight:var(--fw-strong);letter-spacing:.02em;color:var(--accent3);background:var(--accent3-soft);border:1px solid var(--accent3);border-radius:999px;white-space:nowrap}.pub-meta{margin:0 0 6px;color:var(--secondary);font-size:var(--fs-sm)}.pub-abstract{margin:0 0 8px;padding-left:14px;border-left:2px solid var(--border);font-size:var(--fs-sm);line-height:1.5;color:var(--content)}.pub-links{list-style:none;display:flex;flex-wrap:wrap;gap:6px;margin:0;padding:0}.pub-links a{display:inline-block;padding:1px 10px;font-size:var(--fs-xs);border:1px solid var(--border);border-radius:6px;color:var(--secondary)}.pub-links a:hover,.pub-links a:focus-visible{color:var(--accent2);border-color:var(--accent2)}.flip-cards{display:flex;flex-wrap:wrap;justify-content:center;gap:20px;margin:44px 0 10px}.caption{text-align:center;margin:6px 0 0}.flip-card{width:150px;height:150px;perspective:1e3px;border-radius:10px;outline-offset:3px}.flip-card:focus-visible{outline:2px solid var(--accent)}.flip-card-inner{position:relative;width:100%;height:100%;text-align:center;transition:transform .25s;transform-style:preserve-3d}.flip-card:hover .flip-card-inner,.flip-card:focus .flip-card-inner{transform:rotateY(180deg)}.flip-card-front,.flip-card-back{position:absolute;inset:0;-webkit-backface-visibility:hidden;backface-visibility:hidden;display:flex;align-items:center;justify-content:center;border-radius:10px;overflow:hidden}.flip-card-back{transform:rotateY(180deg);color:#fff}.flip-card img{width:100%;height:100%;object-fit:cover;margin:0}.card-text-overlay{position:absolute;top:50%;left:0;width:100%;transform:translateY(-50%);background:rgba(20,20,24,.6);color:#fff;text-align:center;padding:6px 0;font-size:var(--fs-sm)}@media(prefers-reduced-motion:reduce){.flip-card-inner{transition:none}}.post-content .pub-title{font-size:var(--fs-md);margin:0 0 4px}.post-content .pub-title a,.post-content .news a,.post-content .pub-links a{box-shadow:none;text-decoration:none}.post-content .pub-title a:hover{text-decoration:underline}.post-content .pub-links{margin:0;padding:0}.post-content .pub-links{margin-top:2px}.post-content .pub-links li{margin-top:0}.post-content .pub-meta,.post-content .pub-abstract{margin-top:0}.post-content .pub-year{margin-top:36px}.hero-links a,.hero-affil a,.hero-more a{box-shadow:none}.bg-dots{position:fixed;inset:0;width:100%;height:100%;z-index:-1;pointer-events:none}@media print{.bg-dots{display:none}}.untitled .post-content>h2:first-child{margin-top:24px}