:root{--bg:#faf8f3;--ink:#26221c;--ink-soft:#6b6357;--ink-faint:#9a9184;--line:#ddd6c9;--line-strong:#c8c0b0;--accent:#c2452d;--accent-tint:#c2452d12;--card:#fffdf8;--serif:"Noto Serif SC", "Source Han Serif SC", "Songti SC", "STSong", "SimSun", serif;--mono:"SF Mono", "JetBrains Mono", Menlo, Consolas, "Courier New", monospace;--sans:-apple-system, BlinkMacSystemFont, "Helvetica Neue", "PingFang SC", "Microsoft YaHei", sans-serif}*{box-sizing:border-box;margin:0;padding:0}html{background:var(--bg);scroll-behavior:smooth}@media (width>=721px){html{scroll-snap-type:y proximity}.hero,.modules,.stream{scroll-snap-align:start}}body{background:var(--bg);color:var(--ink);font-family:var(--sans);-webkit-font-smoothing:antialiased;font-size:18px;line-height:1.75}.mono{font-family:var(--mono)}.wrap{max-width:1280px;margin:0 auto;padding:0 48px}header.top{border-bottom:1px solid var(--line)}.top-inner{justify-content:space-between;align-items:baseline;padding:22px 0 18px;display:flex}.brand{align-items:baseline;gap:14px;display:flex}.brand-name{font-family:var(--serif);letter-spacing:.14em;font-size:25px;font-weight:700}.brand-seal{font-family:var(--mono);letter-spacing:.18em;color:var(--accent);border:1px solid var(--accent);padding:2px 7px;font-size:10px;display:inline-block;transform:translateY(-2px)}nav.main{font-family:var(--mono);letter-spacing:.06em;font-size:13px}nav.main a{color:var(--ink-soft);margin-left:22px;text-decoration:none}nav.main a:hover,nav.main a.cur{color:var(--accent)}.hero{border-bottom:1px solid var(--line);flex-direction:column;justify-content:center;min-height:100vh;padding:80px 0 72px;display:flex}.hero-grid{grid-template-columns:9fr 11fr;align-items:center;gap:48px;display:grid}.hero-kicker{font-family:var(--mono);letter-spacing:.22em;color:var(--ink-faint);align-items:center;gap:14px;margin-bottom:28px;font-size:12px;display:flex}.hero-kicker .dot{background:var(--accent);width:6px;height:6px;display:inline-block}.hero h1{font-family:var(--serif);letter-spacing:.02em;font-size:54px;font-weight:700;line-height:1.36}.hero h1 em{color:var(--accent);font-style:normal}.hero-sub{max-width:620px;color:var(--ink-soft);margin-top:32px;font-size:17px;line-height:2}.hero-meta{font-family:var(--mono);letter-spacing:.12em;color:var(--ink-faint);gap:28px;margin-top:40px;font-size:12.5px;display:flex}.hero-meta b{color:var(--ink-soft);font-weight:400}.modules,.stream{flex-direction:column;justify-content:center;min-height:100vh;padding:56px 0;display:flex}.section-head{border-bottom:2px solid var(--ink);justify-content:space-between;align-items:baseline;padding:56px 0 24px;display:flex}.section-head .t{font-family:var(--serif);letter-spacing:.1em;font-size:26px;font-weight:700}.section-head .t span.en{font-family:var(--mono);letter-spacing:.24em;color:var(--ink-faint);margin-left:14px;font-size:11px;font-weight:400}.section-head .count{font-family:var(--mono);color:var(--accent);letter-spacing:.1em;font-size:12px}.grid{background:var(--line);border:1px solid var(--line);grid-template-columns:repeat(3,1fr);gap:1px;margin-top:40px;display:grid}.cell{background:var(--card);padding:30px 28px 26px;position:relative}.cell:hover{background:var(--accent-tint)}.cell .idx{font-family:var(--mono);letter-spacing:.2em;color:var(--ink-faint);justify-content:space-between;font-size:10px;display:flex}.cell .idx .no{color:var(--accent)}.cell h3{font-family:var(--serif);letter-spacing:.08em;margin-top:22px;font-size:28px;font-weight:700}.cell .en{font-family:var(--mono);letter-spacing:.28em;color:var(--ink-faint);text-transform:uppercase;margin-top:4px;font-size:10px}.cell p{color:var(--ink-soft);margin-top:16px;font-size:14.5px;line-height:1.9}.cell .foot{border-top:1px dashed var(--line-strong);font-family:var(--mono);letter-spacing:.08em;color:var(--ink-faint);justify-content:space-between;margin-top:20px;padding-top:14px;font-size:11px;display:flex}.stream{margin-top:8px}.entry{border-bottom:1px solid var(--line);grid-template-columns:120px 1fr 150px;align-items:start;gap:36px;padding:34px 0;display:grid}.entry .rs{font-family:var(--mono);letter-spacing:.1em;color:var(--accent);padding-top:6px;font-size:12px}.entry .rs .kind{color:var(--ink-faint);letter-spacing:.2em;margin-top:6px;font-size:10px;display:block}.entry h4{font-family:var(--serif);letter-spacing:.03em;font-size:24px;font-weight:700;line-height:1.5}.entry .excerpt{color:var(--ink-soft);margin-top:10px;font-size:15.5px;line-height:1.9}.entry .tags{flex-wrap:wrap;gap:8px;margin-top:14px;display:flex}.tag{font-family:var(--mono);letter-spacing:.12em;color:var(--ink-soft);border:1px solid var(--line-strong);padding:2px 8px;font-size:10px}.entry .meta{text-align:right;font-family:var(--mono);letter-spacing:.08em;color:var(--ink-faint);font-size:11px}.badge{font-family:var(--mono);letter-spacing:.16em;border:1px solid;margin-bottom:12px;padding:3px 9px;font-size:10px;display:inline-block}.badge.seed{color:var(--ink-soft);border-color:var(--line-strong);background:0 0}.badge.grow{color:var(--accent);border-color:var(--accent);background:var(--accent-tint)}.badge.done{color:var(--bg);border-color:var(--ink);background:var(--ink)}.entry.fragment{background:0 0;grid-template-columns:120px 1fr}.frag-body{border-left:2px solid var(--accent);padding:4px 0 4px 28px}.frag-label{font-family:var(--mono);letter-spacing:.24em;color:var(--accent);margin-bottom:12px;font-size:10px}.frag-text{font-family:var(--serif);letter-spacing:.02em;color:var(--ink);font-size:19px;line-height:2}.frag-time{font-family:var(--mono);letter-spacing:.1em;color:var(--ink-faint);margin-top:12px;font-size:11px}.entry.fragment .rs{color:var(--ink-faint)}.more{text-align:center;font-family:var(--mono);letter-spacing:.2em;padding:40px 0 8px;font-size:12px}.more a{color:var(--accent);border-bottom:1px solid var(--accent);padding-bottom:3px;text-decoration:none}.hero-fig{z-index:2;position:relative}.hero-fig img{border-radius:4px;width:100%;height:auto;display:block}.cell .pic img,.page-fig img,.post-body img{height:auto}.anim .hero-fig{animation:1.5s cubic-bezier(.25,.8,.25,1) 50ms both heroIn}.hero-fig figcaption{font-family:var(--mono);letter-spacing:.14em;color:var(--ink-faint);justify-content:space-between;padding:8px 2px 0;font-size:11px;display:flex}@keyframes heroIn{0%{opacity:0;transform:translate(-290px,3vh)scale(1.12)}16%{opacity:1}34%{opacity:1;transform:translate(-290px,3vh)scale(1.12)}to{opacity:1;transform:none}}.anim .hero-copy>*{animation:.9s cubic-bezier(.2,.7,.2,1) both fadeUp}.anim .hero-copy .hero-kicker{animation-delay:1.25s}.anim .hero-copy h1{animation-delay:1.38s}.anim .hero-copy .hero-sub{animation-delay:1.52s}.anim .hero-copy .hero-meta{animation-delay:1.66s}@keyframes fadeUp{0%{opacity:0;transform:translateY(26px)}to{opacity:1;transform:none}}.anim .reveal{opacity:0;transition:opacity .8s,transform .8s cubic-bezier(.2,.7,.2,1);transform:translateY(30px)}.anim .reveal.in{opacity:1;transform:none}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.anim .hero-fig,.anim .hero-copy>*{animation:none}.anim .reveal{opacity:1;transition:none;transform:none}}.cell .pic{border-bottom:1px solid var(--line);margin:-30px -28px 22px}.cell .pic img{aspect-ratio:16/11;object-fit:cover;width:100%;display:block}.cell .pic img.fit-c{object-fit:contain}footer{border-top:2px solid var(--ink);margin-top:96px;padding:44px 0 52px}.foot-grid{justify-content:space-between;align-items:flex-start;display:flex}.foot-brand{font-family:var(--serif);letter-spacing:.12em;font-size:18px;font-weight:700}.foot-note{color:var(--ink-faint);margin-top:10px;font-size:12px}.foot-links{font-family:var(--mono);letter-spacing:.1em;gap:26px;font-size:12px;display:flex}.foot-links a{color:var(--ink-soft);text-decoration:none}.foot-links a:hover{color:var(--accent)}.foot-base{border-top:1px solid var(--line);font-family:var(--mono);letter-spacing:.18em;color:var(--ink-faint);justify-content:space-between;margin-top:36px;padding-top:18px;font-size:10px;display:flex}@media (width<=720px){.wrap{padding:0 22px}nav.main{display:none}.hero{min-height:0;padding:64px 0 56px}.modules,.stream{min-height:0;padding:40px 0}.hero h1{font-size:34px}.hero-meta{flex-wrap:wrap;gap:12px}.grid{grid-template-columns:1fr}.entry{grid-template-columns:1fr;gap:10px}.entry .meta{text-align:left}.entry.fragment{grid-template-columns:1fr}.foot-grid{flex-direction:column;gap:24px}.foot-links{flex-wrap:wrap;gap:16px}.hero-grid{grid-template-columns:1fr}.anim .hero-fig{animation:.8s cubic-bezier(.2,.7,.2,1) both fadeUp}}.brand-name{color:var(--ink);text-decoration:none}a.brand-name:hover{color:var(--accent)}.post-head{border-bottom:1px solid var(--line);padding:72px 0 40px}.post-head .crumbs{font-family:var(--mono);letter-spacing:.14em;color:var(--accent);margin-bottom:22px;font-size:12px}.post-head h1{font-family:var(--serif);letter-spacing:.03em;font-size:40px;font-weight:700;line-height:1.4}.post-head .post-meta{font-family:var(--mono);letter-spacing:.1em;color:var(--ink-faint);flex-wrap:wrap;align-items:center;gap:20px;margin-top:20px;font-size:12px;display:flex}.post-body{max-width:720px;padding:48px 0 96px;font-size:17px;line-height:2.05}.post-body p{margin:1.2em 0}.list-head{border-bottom:2px solid var(--ink);justify-content:space-between;align-items:baseline;padding:64px 0 28px;display:flex}.list-head h1{font-family:var(--serif);letter-spacing:.1em;font-size:34px;font-weight:700}.list-head .en{font-family:var(--mono);letter-spacing:.24em;color:var(--ink-faint);margin-left:14px;font-size:11px}.list-head .count{font-family:var(--mono);color:var(--accent);letter-spacing:.1em;font-size:12px}.list-section{padding:0 0 96px}.list-note{color:var(--ink-soft);padding:18px 0 6px;font-size:14.5px}.empty-note{font-family:var(--mono);letter-spacing:.08em;color:var(--ink-faint);padding:40px 0;font-size:12.5px}.page-hero{border-bottom:1px solid var(--line);padding:72px 0 56px}.page-hero-grid{grid-template-columns:11fr 9fr;align-items:center;gap:48px;display:grid}.page-title{font-family:var(--serif);letter-spacing:.06em;font-size:44px;font-weight:700;line-height:1.35}.page-title-en{font-family:var(--mono);letter-spacing:.26em;color:var(--ink-faint);text-transform:uppercase;margin-left:16px;font-size:11px;font-weight:400}.page-desc{max-width:620px;color:var(--ink-soft);margin-top:22px;font-size:17px;line-height:1.95}.page-meta{font-family:var(--mono);letter-spacing:.12em;color:var(--ink-faint);flex-wrap:wrap;gap:28px;margin-top:32px;font-size:12.5px;display:flex}.page-meta b{color:var(--ink-soft);font-weight:400}.page-fig{position:relative}.page-fig img{border-radius:4px;width:100%;height:auto;display:block}.page-fig img.fit-c{object-fit:contain}.page-fig figcaption{font-family:var(--mono);letter-spacing:.14em;color:var(--ink-faint);justify-content:space-between;padding:8px 2px 0;font-size:11px;display:flex}.post-head .crumbs a{color:var(--accent);text-decoration:none}.entry h4 a{color:inherit;text-decoration:none}.entry h4 a:hover,.post-body a{color:var(--accent)}.post-body h2{font-family:var(--serif);letter-spacing:.06em;margin:2em 0 .6em;font-size:26px;font-weight:700}.post-body ul,.post-body ol{margin:1.2em 0;padding-left:1.4em}.post-body li{margin:.4em 0}.post-body code{font-family:var(--mono);background:var(--accent-tint);padding:1px 6px;font-size:.92em}.post-body blockquote{border-left:2px solid var(--accent);color:var(--ink-soft);margin:1.4em 0;padding-left:20px}.about-body{max-width:720px;padding:44px 0 0;font-size:17px;line-height:2.05}.about-body p{margin:1.1em 0}.about-body h2{font-family:var(--serif);letter-spacing:.06em;margin:1.8em 0 .5em;font-size:24px;font-weight:700}.about-body ul{margin:1em 0;padding-left:1.4em}.about-body li{margin:.4em 0}.about-body code{font-family:var(--mono);background:var(--accent-tint);padding:1px 6px;font-size:.92em}.about-body b{font-weight:700}@media (prefers-color-scheme:dark){:root{--bg:#16140f;--ink:#e8e2d6;--ink-soft:#a89e8d;--ink-faint:#7a7264;--line:#35301f;--line-strong:#4a4433;--accent:#d96a52;--accent-tint:#d96a521a;--card:#1e1a13}.cell .pic img,.hero-fig img{filter:brightness(.92)sepia(.12)}}
