:root{--bg: #fbfaf7;--bg-elev: #ffffff;--bg-soft: #f4f1ea;--ink: #191817;--ink-soft: #55504a;--muted: #8a8378;--line: #e6e1d7;--accent: #b45309;--accent-ink: #8f4104;--accent-soft: rgba(180, 83, 9, .09);--font-display: "Songti SC", "Noto Serif SC", "Source Han Serif SC", "STSong", Georgia, serif;--font-body: -apple-system, BlinkMacSystemFont, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", system-ui, sans-serif;--font-mono: ui-monospace, "SF Mono", Menlo, Consolas, monospace;--w-page: 1080px;--w-text: 680px;--radius: 14px;--shadow: 0 1px 2px rgba(25, 24, 23, .04), 0 8px 24px rgba(25, 24, 23, .05);--shadow-lift: 0 2px 4px rgba(25, 24, 23, .05), 0 16px 40px rgba(25, 24, 23, .09)}:root[data-theme=dark]{--bg: #131210;--bg-elev: #1a1916;--bg-soft: #1f1d19;--ink: #f2eee5;--ink-soft: #b9b2a6;--muted: #857e72;--line: #2b2924;--accent: #e9a13b;--accent-ink: #f0b45f;--accent-soft: rgba(233, 161, 59, .12);--shadow: 0 1px 2px rgba(0, 0, 0, .3), 0 8px 24px rgba(0, 0, 0, .28);--shadow-lift: 0 2px 4px rgba(0, 0, 0, .35), 0 16px 40px rgba(0, 0, 0, .4)}*,*:before,*:after{box-sizing:border-box}html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}body{margin:0;background:var(--bg);background-image:radial-gradient(1200px 600px at 50% -10%,var(--accent-soft),transparent 70%);background-repeat:no-repeat;color:var(--ink);font-family:var(--font-body);font-size:17px;line-height:1.75;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;transition:background-color .3s ease,color .3s ease}h1,h2,h3,h4{font-family:var(--font-display);font-weight:600;line-height:1.2;letter-spacing:-.01em;margin:0}p{margin:0 0 1.1em}a{color:inherit;text-decoration:none}img{max-width:100%;display:block}::selection{background:var(--accent);color:#fff}:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:4px}.wrap{width:min(100% - 3rem,var(--w-page));margin-inline:auto}.wrap-narrow{width:min(100% - 3rem,var(--w-text));margin-inline:auto}main{min-height:60vh;padding-block:4rem 6rem}.section{margin-top:5.5rem}.section-head{display:flex;align-items:baseline;justify-content:space-between;gap:1rem;padding-bottom:.9rem;border-bottom:1px solid var(--line);margin-bottom:2rem}.section-head h2{font-size:1.5rem}.section-head a{font-size:.86rem;color:var(--muted);letter-spacing:.02em;transition:color .2s ease}.section-head a:hover{color:var(--accent)}.site-header{position:sticky;top:0;z-index:50;background:color-mix(in srgb,var(--bg) 82%,transparent);backdrop-filter:saturate(180%) blur(14px);border-bottom:1px solid var(--line)}.site-header .inner{display:flex;align-items:center;justify-content:space-between;height:4.25rem}.brand{display:flex;align-items:center;gap:.6rem;font-family:var(--font-display);font-size:1.05rem;letter-spacing:.01em}.brand .dot{width:.5rem;height:.5rem;border-radius:50%;background:var(--accent)}.nav{display:flex;align-items:center;gap:1.7rem;font-size:.92rem}.nav a{color:var(--ink-soft);position:relative;transition:color .2s ease}.nav a:after{content:"";position:absolute;left:0;bottom:-.35rem;width:0;height:1.5px;background:var(--accent);transition:width .25s ease}.nav a:hover,.nav a[aria-current=page]{color:var(--ink)}.nav a:hover:after,.nav a[aria-current=page]:after{width:100%}.theme-toggle{display:grid;place-items:center;width:2.1rem;height:2.1rem;border:1px solid var(--line);border-radius:50%;background:transparent;color:var(--ink-soft);cursor:pointer;transition:border-color .2s ease,color .2s ease,transform .2s ease}.theme-toggle:hover{border-color:var(--accent);color:var(--accent);transform:rotate(12deg)}.hero{padding-block:2.5rem 1rem}.eyebrow{font-size:.78rem;letter-spacing:.22em;text-transform:uppercase;color:var(--muted);margin-bottom:1.5rem}.hero h1{font-size:clamp(2.4rem,6vw,4rem);line-height:1.12;margin-bottom:1.6rem}.hero .lead{font-size:clamp(1.05rem,2vw,1.22rem);line-height:1.85;color:var(--ink-soft);max-width:34em}.hero .actions{display:flex;flex-wrap:wrap;gap:.8rem;margin-top:2.2rem}.btn{display:inline-flex;align-items:center;gap:.5rem;padding:.7rem 1.35rem;border-radius:999px;font-size:.94rem;border:1px solid transparent;transition:transform .2s ease,background-color .2s ease,border-color .2s ease,color .2s ease}.btn:hover{transform:translateY(-2px)}.btn-primary{background:var(--ink);color:var(--bg)}.btn-ghost{border-color:var(--line);color:var(--ink-soft)}.btn-ghost:hover{border-color:var(--accent);color:var(--accent)}.grid{display:grid;gap:1.25rem;grid-template-columns:repeat(auto-fit,minmax(260px,1fr))}.card{display:block;padding:1.6rem;background:var(--bg-elev);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);transition:transform .25s ease,box-shadow .25s ease,border-color .25s ease}.card:hover{transform:translateY(-4px);box-shadow:var(--shadow-lift);border-color:color-mix(in srgb,var(--accent) 45%,var(--line))}.card h3{font-size:1.16rem;margin-bottom:.6rem}.card p{color:var(--ink-soft);font-size:.94rem;line-height:1.7;margin:0}.card .meta{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:1.1rem;font-size:.78rem;color:var(--muted)}.tag{padding:.16rem .6rem;border:1px solid var(--line);border-radius:999px;font-family:var(--font-mono);font-size:.74rem;letter-spacing:.02em}.post-list{list-style:none;padding:0;margin:0}.post-list li{border-bottom:1px solid var(--line)}.post-list li:first-child{border-top:1px solid var(--line)}.post-link{display:grid;grid-template-columns:8rem 1fr auto;gap:1.5rem;align-items:baseline;padding:1.35rem .25rem;transition:padding-left .25s ease,color .25s ease}.post-link:hover{padding-left:.9rem;color:var(--accent)}.post-link time{font-family:var(--font-mono);font-size:.8rem;color:var(--muted);letter-spacing:.02em}.post-link .title{font-family:var(--font-display);font-size:1.12rem}.post-link .desc{font-size:.88rem;color:var(--muted);margin-top:.3rem}.post-link .arrow{color:var(--muted);transition:transform .25s ease,color .25s ease}.post-link:hover .arrow{transform:translate(4px);color:var(--accent)}.article-head{margin-bottom:2.6rem;padding-bottom:1.6rem;border-bottom:1px solid var(--line)}.article-head h1{font-size:clamp(1.9rem,4vw,2.7rem);margin-bottom:1rem}.article-head .meta{display:flex;flex-wrap:wrap;gap:.9rem;align-items:center;font-size:.84rem;color:var(--muted);font-family:var(--font-mono)}.prose{font-size:1.05rem;line-height:1.95}.prose h2{font-size:1.45rem;margin:2.6rem 0 1rem}.prose h3{font-size:1.18rem;margin:2rem 0 .8rem}.prose p{margin:0 0 1.35em}.prose a{color:var(--accent-ink);border-bottom:1px solid color-mix(in srgb,var(--accent) 40%,transparent);transition:border-color .2s ease}.prose a:hover{border-bottom-color:var(--accent)}.prose blockquote{margin:1.8rem 0;padding:.2rem 0 .2rem 1.4rem;border-left:2px solid var(--accent);color:var(--ink-soft);font-family:var(--font-display);font-size:1.08rem}.prose code{font-family:var(--font-mono);font-size:.88em;padding:.15em .4em;background:var(--bg-soft);border-radius:5px}.prose pre{padding:1.2rem 1.3rem;background:var(--bg-soft);border:1px solid var(--line);border-radius:var(--radius);overflow-x:auto;font-size:.86rem;line-height:1.7}.prose pre code{background:none;padding:0}.prose img{border-radius:var(--radius);margin:2rem 0}.prose ul,.prose ol{padding-left:1.3rem;margin:0 0 1.35em}.prose li{margin-bottom:.4em}.prose hr{border:0;border-top:1px solid var(--line);margin:3rem 0}.about-grid{display:grid;grid-template-columns:1fr 2fr;gap:3.5rem;align-items:start}.avatar{aspect-ratio:4 / 5;border-radius:var(--radius);background:linear-gradient(160deg,var(--bg-soft),var(--bg-elev));border:1px solid var(--line);display:grid;place-items:center;font-family:var(--font-display);font-size:3rem;color:var(--muted);overflow:hidden}.avatar img{width:100%;height:100%;object-fit:cover}.timeline{list-style:none;padding:0;margin:0;border-left:1px solid var(--line)}.timeline li{position:relative;padding:0 0 1.8rem 1.6rem}.timeline li:before{content:"";position:absolute;left:-4px;top:.6rem;width:7px;height:7px;border-radius:50%;background:var(--accent)}.timeline .when{font-family:var(--font-mono);font-size:.78rem;color:var(--muted)}.timeline .what{font-family:var(--font-display);font-size:1.05rem;margin:.15rem 0 .2rem}.timeline .where{font-size:.9rem;color:var(--ink-soft)}.chips{display:flex;flex-wrap:wrap;gap:.5rem;padding:0;list-style:none;margin:0}.chips li{padding:.3rem .75rem;border:1px solid var(--line);border-radius:999px;font-size:.84rem;color:var(--ink-soft)}.site-footer{border-top:1px solid var(--line);padding-block:2.5rem 3rem;font-size:.86rem;color:var(--muted)}.site-footer .inner{display:flex;flex-wrap:wrap;gap:1rem;justify-content:space-between;align-items:center}.site-footer .links{display:flex;gap:1.3rem}.site-footer a:hover{color:var(--accent)}[data-reveal]{opacity:0;transform:translateY(16px);transition:opacity .7s cubic-bezier(.2,.7,.2,1),transform .7s cubic-bezier(.2,.7,.2,1)}[data-reveal].is-visible{opacity:1;transform:none}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}[data-reveal]{opacity:1;transform:none;transition:none}.btn:hover,.card:hover,.post-link:hover{transform:none;padding-left:.25rem}}@media(max-width:860px){.about-grid{grid-template-columns:1fr;gap:2rem}.avatar{max-width:240px}}@media(max-width:640px){body{font-size:16px}main{padding-block:2.5rem 4rem}.site-header .inner{height:auto;flex-wrap:wrap;padding-block:.7rem;row-gap:.4rem}.brand span:last-child{font-size:.95rem}.nav{width:100%;justify-content:space-between;gap:.8rem;font-size:.9rem}.theme-toggle{width:1.9rem;height:1.9rem}.section{margin-top:3.5rem}.post-link{grid-template-columns:1fr auto;gap:.4rem 1rem}.post-link time{grid-column:1 / -1}.post-link .arrow{grid-row:2;grid-column:2}}
