:root{--bg:#f5f6f8;--surface:#fff;--surface-tint:#f7f8fa;--ink:#16181d;--ink-soft:#383d46;--muted:#5f6673;--muted-light:#6e7683;--line:#e3e6ea;--line-strong:#cdd3da;--accent:#0f766e;--accent-dark:#0b5f59;--accent-soft:#e4f4f1;--amber:#a15c0a;--amber-soft:#fdf4e6;--radius-lg:16px;--radius-md:12px;--radius-sm:9px;--shadow-sm:0 1px 2px #1018280a;--shadow-md:0 10px 24px -12px #1018282e;--ease-out:cubic-bezier(.22, 1, .36, 1);--font-sans:"PingFang SC", "Microsoft YaHei", "Noto Sans SC", system-ui, sans-serif;--font-serif:"Songti SC", "STSong", "Noto Serif SC", "SimSun", serif}*{box-sizing:border-box}html{background:var(--bg);scroll-behavior:smooth}body{background:var(--bg);min-width:320px;color:var(--ink);font-family:var(--font-sans);-webkit-font-smoothing:antialiased;margin:0;font-size:15px;line-height:1.7}a{color:var(--accent);text-underline-offset:2px;text-decoration-thickness:1px}a:hover{color:var(--accent-dark)}button,input,textarea{font:inherit}:focus-visible{outline:2px solid var(--accent);outline-offset:3px}::selection{background:var(--accent-soft)}.shell{width:min(1120px,100% - 40px);margin:0 auto}.site-header{z-index:20;border-bottom:1px solid var(--line);backdrop-filter:blur(16px);background:#ffffffeb;position:sticky;top:0}.header-inner{align-items:center;gap:24px;min-height:68px;display:flex}.brand{color:var(--ink);flex-shrink:0;align-items:center;gap:10px;text-decoration:none;display:inline-flex}.brand-mark{background:var(--accent);color:#fff;width:36px;height:36px;font-family:var(--font-serif);border-radius:11px;place-items:center;font-size:20px;font-weight:700;display:grid;box-shadow:0 4px 10px -4px #0f766e73}.brand-copy{flex-direction:column;line-height:1.25;display:flex}.brand-copy strong{letter-spacing:-.01em;font-size:15px}.brand-copy small{color:var(--muted);font-size:11px}.nav{align-items:center;gap:4px;margin-left:auto;display:flex}.nav a{color:var(--muted);transition:background .16s var(--ease-out), color .16s var(--ease-out);border-radius:8px;padding:7px 10px;font-size:13px;font-weight:600;text-decoration:none}.nav a:hover,.nav a.active{background:var(--surface-tint);color:var(--ink)}.btn{border:1px solid var(--line-strong);background:var(--surface);min-height:40px;color:var(--ink-soft);transition:transform .16s var(--ease-out), box-shadow .16s var(--ease-out);border-radius:10px;justify-content:center;align-items:center;padding:0 16px;font-size:13px;font-weight:700;text-decoration:none;display:inline-flex}.btn:hover{color:var(--ink);box-shadow:var(--shadow-sm);transform:translateY(-1px)}.btn-primary{border-color:var(--accent);background:var(--accent);color:#fff}.btn-primary:hover{border-color:var(--accent-dark);background:var(--accent-dark);color:#fff}.btn-small{min-height:34px;padding:0 12px;font-size:12px}.hero{padding:84px 0 54px}.eyebrow{color:var(--accent);letter-spacing:.1em;text-transform:uppercase;margin:0 0 14px;font-size:11px;font-weight:800}.hero h1,.page-head h1,.project-detail h1{font-family:var(--font-serif);letter-spacing:-.035em;margin:0;font-weight:700;line-height:1.2}.hero h1{max-width:760px;font-size:clamp(36px,6vw,64px)}.hero .lead{max-width:620px;color:var(--muted);margin:20px 0 0;font-size:clamp(15px,2vw,17px);line-height:1.9}.hero-actions{flex-wrap:wrap;gap:10px;margin-top:28px;display:flex}.section{padding:36px 0 48px}.section+.section{border-top:1px solid var(--line)}.section-head{justify-content:space-between;align-items:flex-end;gap:20px;margin-bottom:20px;display:flex}.section-head h2{font-family:var(--font-serif);letter-spacing:-.03em;margin:0;font-size:clamp(24px,3vw,32px)}.section-head p{color:var(--muted);margin:0;font-size:13px}.text-link{align-items:center;gap:4px;font-size:13px;font-weight:700;text-decoration:none;display:inline-flex}.grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;display:grid}.project-card{border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--surface);box-shadow:var(--shadow-sm);transition:transform .18s var(--ease-out), box-shadow .18s var(--ease-out);flex-direction:column;gap:12px;padding:22px;display:flex}.project-card:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}.card-top{justify-content:space-between;align-items:center;gap:10px;display:flex}.badge,.status,.tag{border-radius:999px;align-items:center;min-height:22px;padding:0 8px;font-size:10.5px;font-weight:700;display:inline-flex}.badge{background:var(--accent-soft);color:var(--accent-dark)}.status{background:var(--surface-tint);color:var(--muted)}.status.live{background:var(--accent-soft);color:var(--accent-dark)}.status.building{background:var(--amber-soft);color:var(--amber)}.status.archived{background:var(--surface-tint);color:var(--muted-light)}.project-card h2{font-family:var(--font-serif);letter-spacing:-.02em;margin:0;font-size:22px}.project-card h2 a{color:var(--ink);text-decoration:none}.project-card p{color:var(--muted);flex:1;margin:0;font-size:13.5px;line-height:1.75}.stack{flex-wrap:wrap;gap:6px;display:flex}.stack span{border:1px solid var(--line);color:var(--muted);border-radius:6px;padding:2px 7px;font-size:10.5px}.note-list{border-top:1px solid var(--line);flex-direction:column;display:flex}.note-item{border-bottom:1px solid var(--line);grid-template-columns:112px minmax(0,1fr);gap:18px;padding:18px 0;display:grid}.note-item time{color:var(--muted-light);font-variant-numeric:tabular-nums;font-size:12px}.note-item h3{letter-spacing:-.01em;margin:0 0 4px;font-size:16px}.note-item h3 a{color:var(--ink);text-decoration:none}.note-item p{color:var(--muted);margin:0;font-size:13px;line-height:1.7}.tags{flex-wrap:wrap;gap:6px;margin-top:8px;display:flex}.tag{background:var(--surface-tint);color:var(--muted);text-decoration:none}.tag:hover{background:var(--accent-soft);color:var(--accent-dark)}.tag-cloud{flex-wrap:wrap;gap:10px;display:flex}.tag-cloud .tag{border:1px solid var(--line);gap:6px;min-height:32px;padding:0 12px;font-size:12px}.tag-cloud .tag span{color:var(--muted-light);font-size:10.5px}.search-wrap{max-width:780px;margin-top:8px}:root{--pagefind-ui-scale:.85;--pagefind-ui-primary:var(--accent);--pagefind-ui-text:var(--ink);--pagefind-ui-background:var(--surface);--pagefind-ui-border:var(--line);--pagefind-ui-tag:var(--surface-tint);--pagefind-ui-border-width:1px;--pagefind-ui-border-radius:10px;--pagefind-ui-font:var(--font-sans)}.about-strip{border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--surface);grid-template-columns:minmax(0,1.2fr) minmax(220px,.8fr);align-items:start;gap:28px;padding:26px;display:grid}.about-strip h2{font-family:var(--font-serif);margin:0 0 8px;font-size:26px}.about-strip p{color:var(--muted);margin:0;font-size:13.5px;line-height:1.8}.about-links{flex-direction:column;gap:8px;font-size:13px;display:flex}.page-head{padding:64px 0 28px}.page-head h1{font-size:clamp(34px,5vw,48px)}.page-head p{max-width:640px;color:var(--muted);margin:14px 0 0}.project-detail{padding:52px 0 80px}.back-link{color:var(--muted);margin-bottom:22px;font-size:13px;text-decoration:none;display:inline-block}.project-detail h1{margin-top:6px;font-size:clamp(34px,6vw,56px)}.project-detail .lead{max-width:720px;color:var(--muted);margin:16px 0 0;font-size:17px;line-height:1.8}.detail-meta{border-top:1px solid var(--line);border-bottom:1px solid var(--line);color:var(--muted);flex-wrap:wrap;gap:10px 18px;margin-top:22px;padding:14px 0;font-size:12px;display:flex}.detail-meta strong{color:var(--ink-soft);font-weight:700}.detail-actions{flex-wrap:wrap;gap:10px;margin-top:24px;display:flex}.prose{max-width:760px;color:var(--ink-soft);margin-top:34px;font-size:15px;line-height:1.9}.related-project{margin-top:34px}.prose h2{font-family:var(--font-serif);letter-spacing:-.02em;margin:36px 0 12px;font-size:26px}.prose h3{margin:28px 0 10px;font-size:18px}.prose p{margin:0 0 14px}.prose ul,.prose ol{margin:0 0 16px;padding-left:22px}.prose li{margin:4px 0}.prose code{background:var(--surface-tint);border-radius:5px;padding:1px 5px;font-size:.9em}.prose pre{border:1px solid var(--line);border-radius:var(--radius-md);color:#e7ecea;background:#101418;padding:16px;font-size:12.5px;line-height:1.7;overflow:auto}.prose blockquote{border-left:3px solid var(--accent);color:var(--muted);margin:18px 0;padding:2px 0 2px 16px}.note-detail{padding:56px 0 80px}.note-detail h1{max-width:820px;font-family:var(--font-serif);letter-spacing:-.03em;margin:6px 0 14px;font-size:clamp(30px,5vw,46px);line-height:1.25}.note-detail .lead{max-width:720px;color:var(--muted);margin:0;font-size:16px}.note-detail .note-meta{color:var(--muted);flex-wrap:wrap;align-items:center;gap:10px;margin-top:18px;font-size:12px;display:flex}.site-footer{border-top:1px solid var(--line);background:var(--surface);margin-top:48px}.footer-inner{grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:24px;padding:30px 0;display:grid}.footer-inner strong{font-family:var(--font-serif);font-size:18px}.footer-inner p{color:var(--muted);margin:4px 0 0;font-size:12px}.footer-links{flex-wrap:wrap;gap:12px;margin-top:12px;font-size:12px;display:flex}.footer-links a{color:var(--muted);text-decoration:none}.icp{color:var(--muted-light);text-align:right;font-size:11px}.icp a{color:inherit}.empty-state{border:1px dashed var(--line-strong);border-radius:var(--radius-lg);color:var(--muted);text-align:center;padding:28px}.not-found{text-align:center;padding:96px 0}.not-found h1{font-family:var(--font-serif);margin:0;font-size:clamp(40px,8vw,72px)}.not-found p{color:var(--muted);margin:12px 0 24px}@media (width<=820px){.header-inner{flex-wrap:wrap;gap:10px;padding:10px 0}.nav{order:3;width:100%;margin-left:0;overflow-x:auto}.header-inner>.btn{margin-left:auto}.hero{padding-top:56px}.grid,.about-strip{grid-template-columns:1fr}.note-item{grid-template-columns:1fr;gap:4px}.footer-inner{grid-template-columns:1fr}.icp{text-align:left}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition-duration:.01ms!important}}
