
:root{--bg:#f7f8f4;--paper:#fff;--ink:#21352e;--muted:#64756b;--line:#d8e0d6;--accent:#30654d;--soft:#eaf0e5;--orange:#ca7650}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--ink);font-family:Inter,"Segoe UI","PingFang SC","Microsoft YaHei",sans-serif;line-height:1.8;-webkit-font-smoothing:antialiased}a{color:inherit;text-underline-offset:5px}a:hover{color:var(--accent)}a:focus-visible{outline:2px solid var(--accent);outline-offset:6px}.wrap{width:min(1080px,calc(100% - 64px));margin:auto}.topbar{display:flex;align-items:center;justify-content:space-between;padding:31px 0;border-bottom:1px solid var(--line)}.brand{font-size:24px;font-weight:750;text-decoration:none;letter-spacing:-1px;display:inline-flex;align-items:center;gap:12px}.brand i{width:13px;height:13px;background:var(--accent);border-radius:50%;display:inline-block}.nav{display:flex;gap:31px;font-size:14px}.nav a{text-decoration:none;color:var(--muted)}.nav a[aria-current=page]{color:var(--ink);text-decoration:underline}.eyebrow,.mono{font:11px/1.6 ui-monospace,SFMono-Regular,Consolas,monospace;letter-spacing:1.7px;text-transform:uppercase}.eyebrow{color:var(--accent);display:flex;align-items:center;gap:9px}.eyebrow:before{content:"";height:1px;width:27px;background:currentColor}.hero{display:grid;grid-template-columns:minmax(0,1fr) 280px;gap:65px;padding:83px 0 85px;align-items:end}h1{font-family:"Noto Serif SC","Songti SC",SimSun,serif;font-size:59px;font-weight:500;letter-spacing:-2.4px;line-height:1.34;margin:23px 0 25px}.intro{max-width:530px;font-size:16px;color:var(--muted);margin:0}.hero-link{display:inline-flex;gap:23px;align-items:center;margin-top:30px;color:var(--accent);text-decoration:none;font-size:14px;font-weight:600}.sidebar{background:var(--soft);padding:27px 29px 25px;border-radius:3px}.sidebar .mono{color:var(--muted)}.sidebar h2{font-size:20px;font-weight:550;margin:20px 0 11px}.sidebar p{color:var(--muted);font-size:13px;margin:0}.leaf{width:47px;height:47px;border:1px solid #9eb49d;border-radius:50% 50% 50% 0;transform:rotate(-25deg);margin:21px 0 26px;position:relative}.leaf:after{content:"";position:absolute;width:1px;height:35px;background:#9eb49d;left:23px;top:17px;transform:rotate(23deg)}.section-heading{display:flex;align-items:baseline;justify-content:space-between;padding-bottom:18px}.section-heading h2{font-size:22px;font-weight:550;margin:0}.section-heading span{color:var(--muted);font-size:12px}.notes-list{border-top:1px solid var(--line)}.note-row{display:grid;grid-template-columns:55px minmax(0,1fr) 105px;gap:22px;padding:28px 0 30px;border-bottom:1px solid var(--line);text-decoration:none}.note-num{font-size:12px;color:#91a08d;padding-top:6px;font-family:ui-monospace,monospace}.note-row h3{font-size:20px;line-height:1.6;font-weight:550;margin:0 0 6px}.note-row p{font-size:14px;color:var(--muted);margin:0;max-width:700px}.note-meta{text-align:right;font-size:11px;color:var(--muted);padding-top:5px}.note-meta .tag{display:inline-block;font-size:10px;border:1px solid var(--line);padding:1px 9px;border-radius:20px;margin-bottom:9px}.note-row:hover h3{color:var(--accent)}.bottom-note{display:flex;gap:22px;align-items:flex-start;padding:40px 0 54px;font-size:14px;color:var(--muted)}.bottom-note b{font-weight:450;color:var(--orange);font-size:22px;line-height:1.1}.footer{border-top:1px solid var(--line);padding:27px 0 36px;display:flex;justify-content:space-between;align-items:center;gap:20px;font-size:12px;color:var(--muted)}.footer-links{display:flex;gap:20px}.footer-links a{text-decoration:none}.article-shell{max-width:750px;margin:auto;padding:54px 0 72px}.back{font-size:12px;color:var(--muted);text-decoration:none}.article-shell h1{font-size:42px;letter-spacing:-1px;line-height:1.5;margin:30px 0 15px}.article-meta{display:flex;gap:18px;flex-wrap:wrap;color:var(--muted);font-size:12px;border-bottom:1px solid var(--line);padding-bottom:29px;margin-bottom:32px}.article-body{font-size:16px;line-height:2.05}.article-body p{margin:0 0 22px}.article-body h2{font-size:23px;font-weight:550;line-height:1.6;margin:38px 0 17px}.article-body ul{padding-left:24px;margin-bottom:25px}.article-body li{padding-left:5px;margin:9px 0}.article-body code{font:13px/1.7 ui-monospace,monospace;background:var(--soft);padding:3px 6px;border-radius:3px;overflow-wrap:anywhere}.article-body blockquote{margin:28px 0;border-left:2px solid #99af91;padding:6px 21px;color:var(--muted);background:#eff3eb}.article-body pre{background:var(--soft);padding:20px;overflow:auto}.article-body pre code{padding:0}.reading-end{margin-top:46px;padding-top:24px;border-top:1px solid var(--line);color:var(--muted);font-size:13px}.reading-end a{margin-left:12px}.about-mark{color:var(--orange)}
@media(max-width:800px){.hero{grid-template-columns:1fr 220px;gap:30px;padding:61px 0}h1{font-size:46px}.sidebar{padding:23px}.note-row{grid-template-columns:35px minmax(0,1fr) 88px;gap:16px}.note-row h3{font-size:18px}}
@media(max-width:600px){.wrap{width:calc(100% - 38px)}.topbar{padding:23px 0}.brand{font-size:22px}.nav{gap:20px;font-size:13px}.hero{display:block;padding:48px 0 45px}h1{font-size:43px;letter-spacing:-1.5px;margin:22px 0}.intro{font-size:15px}.sidebar{margin-top:35px;display:grid;grid-template-columns:42px 1fr;gap:0 19px;padding:21px 23px}.sidebar .mono{grid-column:2}.sidebar .leaf{grid-column:1;grid-row:1/4;width:33px;height:33px;margin:14px 0 0}.leaf:after{height:25px;left:16px;top:12px}.sidebar h2{font-size:17px;margin:5px 0}.sidebar p{grid-column:2;font-size:12px}.section-heading h2{font-size:20px}.section-heading span{font-size:11px}.note-row{grid-template-columns:24px minmax(0,1fr);gap:12px;padding:24px 0}.note-meta{grid-column:2;grid-row:2;text-align:left;padding:0;display:flex;gap:12px;align-items:center}.note-meta .tag{margin:0}.note-row p{font-size:13px}.note-row h3{font-size:18px}.bottom-note{padding:30px 0 36px;font-size:13px}.footer{font-size:11px;align-items:flex-start;flex-direction:column;gap:13px}.article-shell{padding-top:32px}.article-shell h1{font-size:32px;margin-top:25px}.article-body{font-size:15px}.article-body h2{font-size:21px}.article-meta{gap:12px}.reading-end{font-size:12px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
