:root{color-scheme:dark;--bg:#000;--bg-2:#1c1c1c;--surface:#262626;--surface-2:#333;--text:#f5f5f2;--muted:#a3a3a0;--faint:#6e6e6b;--line:#2e2e2e;--paper:#f3f1ec;--ink:#111;--accent:#d7ff3a;--accent-ink:#111;--ok:#6cc08f;--warn:#e0b04a;--danger:#f0624d;--cover-1:#0e2340;--cover-2:#e8361e;--cover-3:#ece7dc;--cover-4:#121212;--cover-5:#23332b;--font-sans:-apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "Noto Sans SC", sans-serif;--font-serif:"Songti SC", "STSong", "SimSun", "Noto Serif SC", Georgia, serif;--font-mono:ui-monospace, "SF Mono", "Cascadia Mono", Consolas, monospace;--fs-xs:.8125rem;--fs-sm:.875rem;--fs-md:1rem;--fs-lg:1.125rem;--fs-xl:1.5rem;--fs-2xl:2rem;--fs-3xl:clamp(2rem, 5vw, 2.75rem);--fs-hero:clamp(3rem, 11vw, 6.5rem);--lh-body:1.8;--lh-tight:1.2;--s-1:4px;--s-2:8px;--s-3:12px;--s-4:16px;--s-5:24px;--s-6:32px;--s-7:48px;--s-8:72px;--s-9:120px;--w-read:720px;--w-app:960px;--w-wide:1280px;--gutter:20px;--radius:10px;--radius-lg:16px;--pill:999px;--ease:.2s cubic-bezier(.2, .7, .2, 1)}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;text-size-adjust:100%}body{background:var(--bg);color:var(--text);font-family:var(--font-sans);font-size:var(--fs-md);line-height:var(--lh-body);overflow-wrap:break-word;-webkit-font-smoothing:antialiased;margin:0}a{color:inherit}:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:4px}img{max-width:100%;height:auto}.wrap{max-width:calc(var(--w-wide) + 2 * var(--gutter));padding:0 var(--gutter);margin:0 auto}.wrap-read{max-width:calc(var(--w-read) + 2 * var(--gutter));padding:0 var(--gutter);margin:0 auto}.skip{left:var(--gutter);z-index:20;background:var(--paper);color:var(--ink);padding:var(--s-2) var(--s-3);border-radius:var(--radius);position:absolute;top:-100px}.skip:focus{top:var(--s-3)}.site-header{z-index:10;height:72px;padding:0 var(--gutter);pointer-events:none;justify-content:center;align-items:center;display:flex;position:sticky;top:0}.navbar{pointer-events:auto;align-items:center;gap:var(--s-1);border-radius:var(--pill);-webkit-backdrop-filter:blur(16px)saturate(140%);background:#282828b8;border:1px solid #ffffff14;max-width:100%;padding:6px;display:flex}.navbar a{font-size:var(--fs-sm);white-space:nowrap;border-radius:var(--pill);color:var(--muted);transition:background var(--ease), color var(--ease);padding:8px 16px;font-weight:600;text-decoration:none}.navbar a:hover{color:var(--text);background:#ffffff14}.navbar a[aria-current=page]{color:var(--text);background:#ffffff1f}.navbar .brand{color:var(--text);letter-spacing:-.01em;padding-right:12px;font-weight:800}.navbar .cta{background:var(--paper);color:var(--ink);margin-left:var(--s-1)}.navbar .cta:hover{color:var(--ink);background:#fff}@media (width<=520px){.navbar a{padding:7px 10px}.navbar .brand{display:none}}.hero{background:var(--bg);padding:calc(var(--s-9) + 40px) var(--gutter) var(--s-8);text-align:center;margin-top:-72px;overflow:hidden}.badge{align-items:center;gap:var(--s-2);font-size:var(--fs-xs);color:var(--muted);border:1px solid var(--line);border-radius:var(--pill);margin-bottom:var(--s-6);padding:4px 14px;display:inline-flex}.badge i{background:var(--accent);border-radius:50%;width:6px;height:6px}.hero h1{font-size:var(--fs-hero);letter-spacing:-.02em;margin:0 0 var(--s-7);font-weight:800;line-height:1.1}.hero h1 .line{display:block}.hero h1 .ch{animation:.9s cubic-bezier(.2,.7,.2,1) both reveal;animation-delay:calc(var(--i) * 70ms + .15s);display:inline-block}.hero h1 .dim{color:var(--faint)}@keyframes reveal{0%{opacity:0;filter:blur(14px);transform:translateY(.12em)}to{opacity:1;filter:none;transform:none}}.intro{text-align:left;background:var(--paper);max-width:700px;color:var(--ink);border-radius:var(--radius-lg);padding:var(--s-4) var(--s-4) var(--s-3) var(--s-5);margin:0 auto;animation:.7s cubic-bezier(.2,.7,.2,1) .7s both rise}.intro p{margin:0 0 var(--s-5);color:#55534e;font-size:var(--fs-lg)}.intro .row{justify-content:space-between;align-items:center;gap:var(--s-3);display:flex}.intro .meta{font-size:var(--fs-sm);color:#8a877f}.round{width:40px;height:40px;color:var(--ink);transition:transform var(--ease);background:#fff;border:1px solid #e2dfd7;border-radius:12px;place-items:center;text-decoration:none;display:inline-grid}.round:hover{transform:translateY(-2px)}.chips{justify-content:center;gap:var(--s-2) var(--s-6);margin-top:var(--s-5);font-size:var(--fs-sm);flex-wrap:wrap;animation:.7s .9s both rise;display:flex}.chips a{color:var(--muted);text-decoration:none}.chips a:hover{color:var(--text)}@keyframes rise{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}.band{padding-block:var(--s-8);background:var(--bg-2)}.band+.band{padding-top:var(--s-4)}.band-title{font-size:var(--fs-3xl);letter-spacing:-.01em;font-weight:800;line-height:var(--lh-tight);margin:0 0 var(--s-6)}.band-foot{text-align:center;margin-top:var(--s-7)}.btn{align-items:center;gap:var(--s-2);height:44px;font-weight:600;font-size:var(--fs-sm);background:var(--paper);color:var(--ink);transition:background var(--ease), transform var(--ease);border-radius:12px;padding:0 22px;text-decoration:none;display:inline-flex}.btn:hover{background:#fff;transform:translateY(-1px)}.btn.ghost{background:var(--surface);color:var(--text)}.btn.ghost:hover{background:var(--surface-2)}.filter-input{opacity:0;pointer-events:none;position:absolute}.tabs{gap:var(--s-2);margin:0 0 var(--s-6);flex-wrap:wrap;display:flex}.tabs label,.tabs a{cursor:pointer;border-radius:var(--pill);font-size:var(--fs-sm);color:var(--muted);transition:background var(--ease), color var(--ease);padding:8px 18px;font-weight:600;text-decoration:none}.tabs label:hover,.tabs a:hover{color:var(--text)}.tabs a[aria-current=page]{background:var(--surface-2);color:var(--text)}.grid{gap:var(--s-7) var(--s-5);grid-template-columns:repeat(auto-fill,minmax(min(100%,300px),1fr));display:grid}.card{color:var(--text);text-decoration:none;display:block}.cover{aspect-ratio:4/3;border-radius:var(--radius);background:var(--c,var(--cover-1));color:var(--cf,#f5f5f2);border:1px solid #ffffff0f;flex-direction:column;justify-content:space-between;padding:9% 9% 8%;transition:transform .4s cubic-bezier(.2,.7,.2,1);display:flex;position:relative;overflow:hidden}.card:hover .cover{transform:translateY(-4px)}.cover .top{letter-spacing:.14em;text-transform:uppercase;opacity:.7;justify-content:space-between;font-size:10px;display:flex}.cover .big{letter-spacing:-.01em;-webkit-line-clamp:3;-webkit-box-orient:vertical;max-width:90%;font-size:clamp(1.4rem,3vw,2rem);font-weight:800;line-height:1.15;display:-webkit-box;overflow:hidden}.cover .big em{color:var(--ca,inherit);font-style:normal}.cover .rule{opacity:.2;background:currentColor;height:1px}.cover .bottom{opacity:.75;justify-content:space-between;align-items:end;font-size:11px;display:flex}.cover .dot{background:var(--ca,currentColor);border-radius:50%;width:26px;height:26px}.cover[data-style=serif] .big{font-family:var(--font-serif);letter-spacing:.02em;font-weight:400}.card .kind{margin-top:var(--s-4);font-size:var(--fs-sm);color:var(--muted);display:block}.card .title{margin-top:2px;font-weight:600;display:block}.card .desc{margin-top:var(--s-1);font-size:var(--fs-sm);color:var(--muted);display:block}.card:hover .title{text-underline-offset:4px;text-decoration:underline}.empty{color:var(--muted)}.page-head{background:var(--bg);padding:calc(var(--s-9) + 20px) 0 var(--s-8);margin-top:-72px}.page-head h1{font-size:var(--fs-hero);letter-spacing:-.02em;margin:0;font-weight:800;line-height:1.1;animation:.8s both reveal}.page-head p{color:var(--muted);margin:var(--s-4) 0 0;font-size:var(--fs-lg)}.page-head .meta{font-size:var(--fs-sm)}.page-head .meta a{color:var(--muted)}.post-head{padding-bottom:var(--s-6)}.post-head h1{font-size:var(--fs-3xl)}.post-head+.prose{padding-top:var(--s-5)}.prose{padding-block:var(--s-8);font-size:1.0625rem}.prose>:first-child{margin-top:0}.prose p,.prose ul,.prose ol,.prose blockquote,.prose pre,.prose table,.prose figure{margin:0 0 var(--s-5)}.prose h2,.prose h3,.prose h4{font-weight:700;line-height:var(--lh-tight);margin:var(--s-7) 0 var(--s-4)}.prose h2{font-size:var(--fs-xl)}.prose h3{font-size:var(--fs-lg)}.prose a{color:var(--text);text-decoration-color:var(--accent);text-underline-offset:4px;text-decoration-thickness:2px}.prose a:hover{color:var(--accent)}.prose ul,.prose ol{padding-left:1.4em}.prose li+li{margin-top:var(--s-1)}.prose li::marker{color:var(--faint)}.prose blockquote{padding:var(--s-1) 0 var(--s-1) var(--s-5);border-left:3px solid var(--accent);color:var(--muted);margin-left:0}.prose hr{border:0;border-top:1px solid var(--line);margin:var(--s-7) 0}.prose :not(pre)>code{font-family:var(--font-mono);background:var(--surface);border-radius:6px;padding:.15em .4em;font-size:.875em}.prose pre{font-family:var(--font-mono);font-size:var(--fs-sm);padding:var(--s-5);border-radius:var(--radius);border:1px solid var(--line);line-height:1.65;overflow-x:auto;background:#0d0d0d!important}.prose table{border-collapse:collapse;max-width:100%;font-size:var(--fs-sm);display:block;overflow-x:auto}.prose th{color:var(--muted);text-align:left;font-weight:600}.prose th,.prose td{padding:var(--s-2) var(--s-4) var(--s-2) 0;border-bottom:1px solid var(--line)}.prose .footnotes{margin-top:var(--s-7);font-size:var(--fs-sm);color:var(--muted)}.prose .footnotes h2{font-size:var(--fs-sm)}.pager{gap:var(--s-4);padding-bottom:var(--s-8);grid-template-columns:1fr 1fr;display:grid}.pager a{padding:var(--s-5);border-radius:var(--radius);background:var(--surface);transition:background var(--ease);text-decoration:none;display:block}.pager a:hover{background:var(--surface-2)}.pager small{color:var(--muted);font-size:var(--fs-xs);display:block}.pager .next{text-align:right;grid-column:2}.list{margin:0;padding:0;list-style:none}.list li{justify-content:space-between;gap:var(--s-4);padding:var(--s-4) 0;border-bottom:1px solid var(--line);display:flex}.list a{font-weight:600;text-decoration:none}.list a:hover{color:var(--accent)}.list span{color:var(--muted);font-size:var(--fs-sm)}.site-footer{background:var(--bg-2);border-top:1px solid var(--line);padding:var(--s-6) 0;font-size:var(--fs-sm);color:var(--muted)}.site-footer .wrap{justify-content:space-between;gap:var(--s-3);flex-wrap:wrap;display:flex}.site-footer a{color:var(--muted);text-decoration:none}.site-footer a:hover{color:var(--text)}.site-footer nav{gap:var(--s-5);display:flex}@media (prefers-reduced-motion:reduce){*,:before,:after{transition:none!important;animation:none!important}}
