@import"https://fonts.googleapis.com/css2?family=EB+Garamond:ital,wght@0,400;0,500;1,400&family=Noto+Serif+SC:wght@400;500&family=Crimson+Pro:ital,wght@0,400;1,400&family=DM+Mono:wght@400&display=swap";:root{--cream: #f7f4ee;--ink: #1a1814;--ink-muted: #6b6760;--ink-faint: #b0ada6;--rule: #dedad3;--accent: #8b4a2f;--accent-light: #f0e6df;--font-serif-en: "EB Garamond", "Crimson Pro", Georgia, serif;--font-serif-zh: "Noto Serif SC", "Songti SC", STSong, serif;--font-mono: "DM Mono", monospace;--space-xs: .5rem;--space-sm: 1rem;--space-md: 2rem;--space-lg: 4rem;--space-xl: 8rem;--max-w: 680px;--max-w-wide: 960px}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{background:var(--cream);color:var(--ink);font-family:var(--font-serif-en);font-size:18px;line-height:1.75;-webkit-font-smoothing:antialiased}body.zh{font-family:var(--font-serif-zh);font-size:17px;line-height:1.9;letter-spacing:.02em}h1,h2,h3{font-weight:400;line-height:1.25}h1{font-size:clamp(2rem,5vw,3.25rem)}h2{font-size:clamp(1.4rem,3vw,2rem)}h3{font-size:1.2rem}.timeline{position:relative;padding-left:0;margin:1.5rem 0}.timeline-line{position:absolute;left:52px;top:8px;bottom:8px;width:1px;background:var(--rule)}.timeline-item{display:flex;align-items:flex-start;gap:1.5rem;padding:.55rem 0;opacity:0;transform:translateY(10px);animation:tl-fadein .4s ease forwards}.timeline-item:nth-child(2){animation-delay:.05s}.timeline-item:nth-child(3){animation-delay:.1s}.timeline-item:nth-child(4){animation-delay:.15s}.timeline-item:nth-child(5){animation-delay:.2s}.timeline-item:nth-child(6){animation-delay:.25s}.timeline-item:nth-child(7){animation-delay:.3s}@keyframes tl-fadein{to{opacity:1;transform:translateY(0)}}.timeline-year{font-size:12px;font-weight:500;color:var(--ink-faint);min-width:36px;text-align:right;padding-top:2px;flex-shrink:0}.timeline-dot-wrap{position:relative;display:flex;align-items:center;justify-content:center;width:16px;flex-shrink:0;padding-top:5px;z-index:1}.timeline-dot{width:6px;height:6px;border-radius:50%;background:var(--ink-muted);transition:background .2s,transform .2s}.timeline-item:last-child .timeline-dot{background:var(--ink);width:8px;height:8px;box-shadow:0 0 0 2px var(--cream),0 0 0 3px var(--ink)}.timeline-text{font-size:13px;color:var(--ink-muted);padding-top:2px}.timeline-item:last-child .timeline-text{color:var(--ink);font-weight:500}.timeline-item:hover .timeline-dot{background:var(--ink);transform:scale(1.4)}.timeline-item:hover .timeline-text{color:var(--ink)}.timeline-item:hover .timeline-year{color:var(--ink-muted)}a{color:inherit;text-decoration-color:var(--rule);text-underline-offset:3px;transition:text-decoration-color .2s}a:hover{text-decoration-color:var(--accent)}p{max-width:65ch}p+p{margin-top:1.25em}em{font-style:italic}hr{border:none;border-top:.5px solid var(--rule);margin:var(--space-md) 0}.container{max-width:var(--max-w);margin:0 auto;padding:0 var(--space-md)}.container--wide{max-width:var(--max-w-wide);margin:0 auto;padding:0 var(--space-md)}nav{border-bottom:.5px solid var(--rule);padding:var(--space-sm) 0;position:sticky;top:0;background:var(--cream);z-index:100}.nav-inner{display:flex;align-items:center;justify-content:space-between;max-width:var(--max-w-wide);margin:0 auto;padding:0 var(--space-md)}.nav-logo{font-size:1rem;font-weight:400;letter-spacing:.01em;text-decoration:none;color:var(--ink)}.nav-links{display:flex;align-items:center;gap:var(--space-md);list-style:none}.nav-toggle{display:none;background:none;border:none;cursor:pointer;padding:.5rem;margin-left:auto}.hamburger{display:block;width:20px;height:2px;background:var(--ink);position:relative;transition:background .3s}.hamburger:before,.hamburger:after{content:"";display:block;width:20px;height:2px;background:var(--ink);position:absolute;transition:all .3s}.hamburger:before{top:-6px}.hamburger:after{top:6px}.nav-toggle.active .hamburger{background:transparent}.nav-toggle.active .hamburger:before{transform:rotate(45deg);top:0}.nav-toggle.active .hamburger:after{transform:rotate(-45deg);top:0}.nav-links a{font-size:.875rem;color:var(--ink-muted);text-decoration:none;letter-spacing:.03em;transition:color .2s}.nav-links a:hover{color:var(--ink)}.lang-toggle{font-size:.8rem;letter-spacing:.08em;border:.5px solid var(--rule);padding:.2rem .6rem;border-radius:2px;text-decoration:none;color:var(--ink-muted);transition:all .2s;font-family:var(--font-mono)}.lang-toggle:hover{border-color:var(--ink-muted);color:var(--ink)}footer{border-top:.5px solid var(--rule);padding:var(--space-lg) 0 var(--space-md);margin-top:var(--space-xl)}.footer-inner{max-width:var(--max-w-wide);margin:0 auto;padding:0 var(--space-md);display:flex;justify-content:space-between;align-items:flex-end;gap:var(--space-md);flex-wrap:wrap}.footer-meta{font-size:.8rem;color:var(--ink-faint);line-height:1.8}.footer-links{display:flex;gap:var(--space-md);list-style:none}.footer-links a{font-size:.8rem;color:var(--ink-faint);text-decoration:none;font-family:var(--font-mono);transition:color .2s}.footer-links a:hover{color:var(--ink-muted)}@keyframes fadeUp{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.fade-up{animation:fadeUp .6s ease both}.fade-up-1{animation-delay:.1s}.fade-up-2{animation-delay:.22s}.fade-up-3{animation-delay:.34s}.fade-up-4{animation-delay:.46s}.tag{display:inline-block;font-size:.72rem;font-family:var(--font-mono);letter-spacing:.06em;color:var(--ink-muted);border:.5px solid var(--rule);padding:.15rem .5rem;border-radius:2px}.prose{max-width:65ch}.prose h2{margin-top:2.5em;margin-bottom:.6em}.prose p{margin-bottom:1.25em}.prose blockquote{border-left:2px solid var(--rule);padding-left:1.25rem;color:var(--ink-muted);font-style:italic}@media (max-width: 768px){.nav-toggle{display:block}.nav-links{position:absolute;top:100%;left:0;right:0;background:var(--cream);border-bottom:.5px solid var(--rule);flex-direction:column;align-items:stretch;gap:0;padding:var(--space-md) 0;transform:translateY(-100%);opacity:0;visibility:hidden;transition:all .3s ease;z-index:99}.nav-links.nav-open{transform:translateY(0);opacity:1;visibility:visible}.nav-links li{margin:0}.nav-links a{display:block;padding:var(--space-sm) var(--space-md);border-bottom:.5px solid var(--rule-faint)}.nav-links a:last-child{border-bottom:none}.nav-links .lang-toggle{margin:var(--space-sm) var(--space-md);align-self:flex-start}}
