:root {
  --paper:#f4f7f5; --ink:#112a24; --muted:#485d54; --accent:#136e52;
  --line:#d2dfd7; --white:#fff; --night:#122a24;
  --bs-body-font-family:system-ui,-apple-system,"PingFang SC","Microsoft YaHei",sans-serif;
  --bs-body-bg:var(--paper); --bs-body-color:var(--ink); --bs-body-line-height:1.75;
}
body { margin:0; }
.site-header { border-bottom:1px solid var(--line); }
.site-header .container { min-height:4.2rem; }
.brand { display:inline-flex; align-items:center; gap:.65rem; font-weight:800; letter-spacing:.04em; }
.brand-icon { display:grid; place-items:center; width:2rem; height:2rem; color:#e6f7ea; background:var(--night); border-radius:.5rem; }
.brand,.site-nav a { color:var(--ink); text-decoration:none; }
.site-nav a { font-size:.91rem; }
.site-nav a:hover,.site-footer a:hover,.back-link:hover { text-decoration:underline; text-underline-offset:.25em; }
.skip:focus { position:fixed; z-index:10; top:.5rem; left:.5rem; padding:.45rem .8rem; background:var(--white); color:var(--ink); }
a:focus-visible,button:focus-visible { outline:2px solid var(--accent); outline-offset:4px; }
.hero { padding-block:clamp(3.4rem,9vw,7rem) clamp(3rem,7vw,6rem); }
.eyebrow,.terminal-bar,.post-index,.terminal-label,.terminal-command {
  font-family:ui-monospace,SFMono-Regular,Consolas,monospace;
}
.eyebrow { margin:0 0 .7rem; color:var(--accent); font-size:.82rem; font-weight:700; letter-spacing:.085em; }
.signal { display:inline-block; width:.52rem; height:.52rem; border-radius:50%; background:var(--accent); }
.hero h1 { font-size:clamp(3.2rem,8vw,6.25rem); line-height:1.07; letter-spacing:-.07em; font-weight:850; margin:0 0 1.2rem; }
.accent { color:var(--accent); }
.hero-copy { max-width:34rem; font-size:clamp(1.04rem,2vw,1.18rem); color:var(--muted); margin-bottom:1.6rem; }
.btn-ink { background:var(--night); border:1px solid var(--night); color:#f4faf6; font-weight:650; padding:.6rem .95rem; }
.btn-ink:hover,.btn-ink:focus-visible { background:var(--accent); color:#fff; }
.btn-ink span { margin-left:.6rem; }
.terminal { background:var(--night); color:#e6f4ec; border:1px solid #2e5041; border-radius:1rem; box-shadow:0 1.15rem 2.2rem #112a241f; overflow:hidden; }
.terminal-bar { display:flex; align-items:center; justify-content:space-between; gap:.55rem; padding:.72rem 1.15rem; color:#b9d0c1; font-size:.77rem; border-bottom:1px solid #385648; }
.terminal-dots { color:#9bdaa9; letter-spacing:.22em; font-size:.63rem; }
.terminal-body { padding:clamp(1.2rem,4vw,2.3rem); }
.terminal-body a { color:#f6fff8; display:inline-block; text-decoration:none; font-weight:750; font-size:1.24rem; margin:.15rem 0 1.15rem; }
.terminal-body a:hover { text-decoration:underline; }
.terminal-body a:focus-visible { outline-color:#9bdaa9; }
.terminal-label { color:#9bdaa9; font-size:.82rem; margin:0; }
.terminal-command { padding:.62rem .8rem; background:#1d3a30; border-radius:.45rem; overflow-wrap:anywhere; }
.terminal-command span { color:#9bdaa9; }
.terminal-command code { color:#effbf3; }
.terminal-caption { color:#b9d0c1; font-size:.88rem; margin:.9rem 0 0; }
.section-block { border-top:1px solid var(--line); padding-block:2.5rem 3.5rem; }
.section-heading { margin-bottom:1.3rem; }
.section-heading h2,.about h2 { margin:0; font-weight:760; letter-spacing:-.035em; }
.section-heading > p { margin:0; color:var(--muted); font-size:.9rem; }
.post-card { display:flex; flex-direction:column; height:100%; padding:1.25rem; border:1px solid var(--line); border-radius:.85rem; background:var(--white); text-decoration:none; color:var(--ink); transition:border-color .16s,box-shadow .16s; }
.post-card:hover { border-color:var(--accent); box-shadow:0 .45rem 1.3rem #112a2410; }
.topic { color:#145c44; background:#e7f3ea; border-radius:5rem; font-size:.79rem; font-weight:650; padding:.2rem .58rem; }
.post-index { color:var(--muted); font-size:.84rem; }
.post-card h3 { margin:1.05rem 0 .45rem; font-size:1.17rem; line-height:1.45; font-weight:730; }
.post-card p { color:var(--muted); font-size:.94rem; margin:0 0 .9rem; }
.card-cta { margin-top:auto; color:var(--accent); font-size:.87rem; font-weight:680; }
.card-cta span { margin-left:.2rem; }
.about { border-block:1px solid var(--line); padding-block:2rem; margin-bottom:3rem; }
.about p:not(.eyebrow) { color:var(--muted); margin:0 0 .65rem; }
.site-footer { padding:1.7rem 0 2.1rem; color:var(--muted); font-size:.85rem; }
.site-footer a,.back-link,.prose a { color:var(--accent); text-underline-offset:.2em; }
.article-layout { padding-block:clamp(2.3rem,7vw,5rem) 1.8rem; }
.article-wrap { max-width:46rem; margin-inline:auto; }
.back-link { text-decoration:none; font-size:.92rem; font-weight:650; }
.article-header { margin:1.9rem 0 2rem; border-bottom:1px solid var(--line); padding-bottom:1.25rem; }
.article-header h1 { font-weight:800; font-size:clamp(2rem,6vw,3.55rem); line-height:1.19; letter-spacing:-.05em; margin-bottom:.75rem; overflow-wrap:anywhere; }
.article-header > p:last-child { color:var(--muted); margin:0; }
.prose { font-size:1.02rem; overflow-wrap:anywhere; }
.prose h2 { font-size:1.38rem; font-weight:740; margin:2rem 0 .75rem; }
.prose p,.prose li { line-height:1.84; }
.prose li + li { margin-top:.35rem; }
.prose pre { max-width:100%; overflow:auto; padding:1rem 1.15rem; margin:1rem 0 1.35rem; background:var(--night); color:#ebf8ef; border-radius:.7rem; font-size:.87rem; line-height:1.65; }
.prose pre code { color:inherit; }
.prose :not(pre)>code { color:#12553f; background:#e4efe7; padding:.08em .29em; border-radius:.25em; }
.article-end { border-top:1px solid var(--line); padding-top:1.3rem; margin-top:2.25rem; }
@media (prefers-reduced-motion:reduce) { *,*::before,*::after { scroll-behavior:auto!important; transition:none!important; } }
@media (max-width:576px) { .site-header .container,.container { padding-inline:1rem; } .article-layout { padding-top:2.2rem; } }
