:root{color-scheme:light;--bg: #fff;--surface: #f5f5f7;--soft: #ededf0;--ink: #1d1d1f;--muted: #6e6e73;--line: #d2d2d7;--accent: #0071e3;--accent-soft: #e8f2ff;--sans: -apple-system, BlinkMacSystemFont, "SF Pro Display", "SF Pro Text", "Helvetica Neue", "PingFang SC", "Microsoft YaHei", sans-serif;--mono: "SFMono-Regular", Consolas, "Liberation Mono", monospace}:root[data-theme=dark]{color-scheme:dark;--bg: #101011;--surface: #1c1c1e;--soft: #29292c;--ink: #f5f5f7;--muted: #a1a1a6;--line: #38383b;--accent: #2997ff;--accent-soft: #172b40}*{box-sizing:border-box}html{background:var(--bg);color:var(--ink);font-family:var(--sans);scroll-behavior:smooth;scroll-padding-top:90px;-webkit-font-smoothing:antialiased}body{margin:0;min-width:320px;min-height:100vh;display:flex;flex-direction:column}main{flex:1;min-width:0}a{color:inherit;text-underline-offset:4px;text-decoration-thickness:1px;transition:color .2s,background .2s}a:hover{color:var(--accent)}button,input{font:inherit}button,a,input{-webkit-tap-highlight-color:transparent}:focus-visible{outline:3px solid var(--accent);outline-offset:5px}::selection{background:var(--accent-soft);color:var(--ink)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}.skip-link{position:fixed;top:-80px;left:20px;z-index:30;background:var(--bg);padding:12px 20px;border-radius:12px;transition:top .2s ease,color .2s,background .2s}.skip-link:focus{top:12px}.wrap{width:min(100% - 48px,760px);margin-inline:auto}.wide-wrap,.nav-wrap,.footer-inner{width:min(100% - 64px,1040px);margin-inline:auto}.site-header{position:sticky;top:0;z-index:10;background:color-mix(in srgb,var(--bg) 85%,transparent);backdrop-filter:saturate(180%) blur(20px);-webkit-backdrop-filter:saturate(180%) blur(20px);border-bottom:1px solid color-mix(in srgb,var(--line) 65%,transparent)}.nav-wrap{display:flex;align-items:center;min-height:64px;gap:32px}.brand{margin-right:auto;text-decoration:none;font-size:21px;font-weight:650;letter-spacing:-.7px}.brand-subtitle{color:var(--muted);font-size:12px;font-weight:400;margin-left:14px;letter-spacing:1px}nav{display:flex;gap:30px;align-items:center}nav a{display:flex;align-items:center;min-height:44px;color:var(--muted);font-size:13px;text-decoration:none}nav a[aria-current=page]{color:var(--ink);font-weight:600}.theme-toggle{display:grid;place-items:center;width:44px;height:44px;border:0;border-radius:50%;color:var(--ink);background:transparent;cursor:pointer;transition:background .2s;flex-shrink:0}.theme-toggle:hover{background:var(--surface)}.sun,[data-theme=dark] .moon{display:none}[data-theme=dark] .sun{display:block}.hero{text-align:center;padding-block:96px 80px}.hero .eyebrow{margin-bottom:20px}.eyebrow{color:var(--muted);font-size:12px;font-weight:600;line-height:1.5;letter-spacing:.12em;margin:0 0 22px}.hero h1{font-size:clamp(42px,6.2vw,72px);font-weight:650;line-height:1.18;letter-spacing:-.055em;margin:0;text-wrap:balance}.hero h1 span{color:var(--muted)}.hero-description{color:var(--muted);font-size:19px;line-height:1.8;margin:24px 0 32px;text-wrap:balance}.hero-actions{display:flex;justify-content:center;align-items:center;gap:28px}.button-link{display:inline-flex;align-items:center;justify-content:center;min-height:44px;background:var(--accent);color:var(--bg);border-radius:24px;padding:11px 24px;font-size:14px;text-decoration:none}.button-link:hover{background:color-mix(in srgb,var(--accent) 90%,var(--ink));color:var(--bg)}.text-link{display:inline-flex;gap:8px;align-items:center;color:var(--accent);font-size:14px;text-decoration:none;min-height:44px}.text-link:hover{text-decoration:underline}.explore-bar{border-block:1px solid var(--line);padding-block:26px;display:grid;grid-template-columns:1fr 1fr;gap:64px;align-items:start}.explore-copy h2{font-size:19px;font-weight:600;margin:5px 0 10px;letter-spacing:-.4px}.explore-copy p{color:var(--muted);font-size:14px;line-height:1.8;margin:0}.search-form{display:flex;gap:8px}.search-input-wrap{position:relative;flex:1;min-width:0}.search-icon{position:absolute;left:14px;top:14px;color:var(--muted);pointer-events:none}.search-form input{width:100%;height:46px;background:var(--surface);border:1px solid transparent;border-radius:12px;color:var(--ink);padding:12px 14px 12px 42px;font-size:14px}.search-form input::placeholder{color:var(--muted);opacity:1}.search-form input:focus{border-color:var(--accent)}.search-form button{cursor:pointer;border:1px solid var(--line);border-radius:12px;background:var(--bg);color:var(--ink);font-size:14px;white-space:nowrap;padding:0 18px;min-height:46px}.search-form button:hover{background:var(--surface)}.search-status{font-size:12px;color:var(--muted);line-height:1.7;margin:9px 0 0}.search-results{list-style:none;padding:0;margin:0}.search-results li{border-bottom:1px solid var(--line)}.search-results a{display:block;padding:20px 4px;text-decoration:none}.search-results strong{font-size:16px;line-height:1.6}.search-results span{display:block;margin-top:6px;color:var(--muted);font-size:12px;line-height:1.7}.search-results p{color:var(--muted);font-size:13px;line-height:1.8;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;margin-bottom:0;overflow-wrap:anywhere}.home-writing{padding-block:64px 80px}.section-heading{display:flex;align-items:baseline;justify-content:space-between;gap:16px;margin-bottom:28px}.section-heading h2{line-height:1.4;font-size:28px;letter-spacing:-.8px;margin:0;font-weight:650}.count-label{line-height:1.4;font-size:13px;color:var(--muted);white-space:nowrap}.post-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.post-card{display:flex;flex-direction:column;padding:clamp(24px,4vw,32px);background:var(--surface);border-radius:20px;min-width:0;transition:transform .25s ease,box-shadow .25s ease}.post-meta{display:flex;flex-wrap:wrap;gap:9px;align-items:center;color:var(--muted);font-size:12px;line-height:1.6}time{font-variant-numeric:tabular-nums}.meta-divider{opacity:.55}.post-card h2{font-size:24px;line-height:1.45;font-weight:600;letter-spacing:-.6px;margin:20px 0 12px;overflow-wrap:anywhere}.post-card h2 a{display:flex;justify-content:space-between;align-items:baseline;gap:20px;text-decoration:none}.post-arrow{color:var(--muted);font-size:21px;font-weight:400;flex-shrink:0;transition:transform .2s}.post-card p{color:var(--muted);font-size:14px;line-height:1.85;margin:0 0 28px;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;overflow:hidden;overflow-wrap:anywhere}.tag-list{display:flex;flex-wrap:wrap;gap:8px}.post-card .tag-list{margin-top:auto;padding-top:8px}.tag-list a{color:var(--muted);font-size:12px;line-height:1.6;text-decoration:none;padding:5px 11px;border:1px solid var(--line);border-radius:20px;overflow-wrap:anywhere}.tag-list a:hover{color:var(--ink);background:var(--soft)}.home-topics{padding-block:40px 72px;border-top:1px solid var(--line)}.topic-list{display:flex;flex-wrap:wrap;gap:10px}.topic-list a{display:flex;gap:18px;align-items:center;border-radius:24px;padding:12px 18px;background:var(--surface);text-decoration:none;font-size:14px}.topic-list a span:last-child{color:var(--muted);font-size:12px}.article{padding-block:56px 100px}.back-link{display:inline-flex;align-items:center;min-height:44px;font-size:14px;color:var(--muted);text-decoration:none;margin-bottom:32px}.article-header{border-bottom:1px solid var(--line);padding-bottom:36px;margin-bottom:40px}.article h1,.archive-page h1,.not-found h1{font-size:clamp(34px,4.8vw,52px);line-height:1.25;letter-spacing:-.04em;font-weight:650;margin:24px 0;overflow-wrap:anywhere;text-wrap:balance}.article-deck{color:var(--muted);font-size:19px;line-height:1.8;margin:24px 0}.article-meta{color:var(--muted);font-size:13px;line-height:1.9;margin:24px 0 0}.toc{background:var(--surface);border-radius:16px;color:var(--muted);font-size:14px;line-height:1.8;margin-bottom:44px;padding:24px 28px}.toc summary{color:var(--ink);font-weight:600;cursor:pointer}.toc ol{padding-left:20px;margin-bottom:0}.toc a{text-decoration:none}.toc li{margin-top:10px}.toc .depth-3{margin-left:16px}.prose{font-size:17px;line-height:1.95;overflow-wrap:anywhere}.prose>:first-child{margin-top:0}.prose p{margin:1.5em 0}.prose :is(h1,h2,h3,h4){line-height:1.4;margin:2.3em 0 .8em;letter-spacing:-.025em;font-weight:600}.prose h1{font-size:34px}.prose h2{font-size:28px;padding-bottom:.4em;border-bottom:1px solid var(--line)}.prose h3{font-size:22px}.prose a{color:var(--accent)}.prose li{margin-block:.45em;line-height:1.7}.prose :is(ul,ol){padding-left:2em}.prose :is(img,video){display:block;margin-inline:auto;max-width:100%;height:auto;border-radius:12px;margin-block:28px}.prose :is(iframe,audio){max-width:100%}.prose pre{padding:20px 24px;background:var(--surface);border:1px solid var(--line);border-radius:12px;overflow-x:auto;font:14px/1.8 var(--mono)}.prose code{font-family:var(--mono);font-size:.86em}.prose :not(pre)>code{padding:3px 6px;background:var(--surface);border-radius:5px}.prose pre code{font-size:inherit}[data-theme=dark] .astro-code,[data-theme=dark] .astro-code span{color:var(--shiki-dark)!important;background-color:var(--shiki-dark-bg)!important}.prose blockquote{margin:32px 0;padding:16px 24px;border-left:3px solid var(--accent);background:var(--surface);color:var(--ink)}.prose blockquote>:first-child{margin-top:0}.prose blockquote>:last-child{margin-bottom:0}.prose table{display:block;max-width:100%;overflow-x:auto;border-collapse:collapse;font-size:14px}.prose td,.prose th{border-bottom:1px solid var(--line);padding:14px 18px;text-align:left}.prose th{position:sticky;top:0;z-index:1;background:var(--surface);font-weight:600}.prose hr{border:0;border-top:1px solid var(--line);margin-block:48px}.article-end{border-top:1px solid var(--line);padding-top:28px;margin-top:64px;display:flex;justify-content:space-between;gap:20px;font-size:13px;line-height:1.8;color:var(--muted)}.article-end a{text-decoration:none;color:var(--accent)}.archive-page{padding-block:80px 100px;min-height:65vh}.archive-page .post-list{display:grid;gap:20px;margin-top:48px}.page-intro{color:var(--muted);line-height:1.8;font-size:18px}.tag-cloud{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-top:48px}.tag-cloud a{display:flex;align-items:center;justify-content:space-between;gap:14px;background:var(--surface);border-radius:16px;padding:26px 24px;font-size:17px;text-decoration:none;overflow-wrap:anywhere}.tag-cloud a:hover{background:var(--soft)}.tag-count{color:var(--muted);font-size:13px;font-variant-numeric:tabular-nums}.not-found{padding-block:100px;max-width:640px}.not-found-intro{color:var(--muted);line-height:1.9;margin-bottom:32px}.not-found-home{margin-top:28px;font-size:14px;color:var(--accent)}.not-found-latest{margin-top:40px;padding-top:28px;border-top:1px solid var(--line)}.not-found-latest h2{margin:0 0 16px;font-size:19px;font-weight:600}.not-found-latest ul{list-style:none;padding:0;margin:0}.not-found-latest a{display:block;padding-block:10px;font-size:16px;line-height:1.7;overflow-wrap:anywhere}.site-footer{background:var(--surface);padding-block:36px}.footer-inner{display:flex;justify-content:space-between;gap:28px}.footer-brand{font-size:16px;font-weight:600;text-decoration:none}.footer-inner p{font-size:12px;color:var(--muted);line-height:1.8;margin:10px 0 0}.footer-meta{text-align:right}.footer-meta p{margin:0 0 8px}.footer-meta a{display:inline-flex;align-items:center;min-height:32px;color:var(--muted);font-size:12px;text-decoration:none;margin-left:20px}@media(hover:hover){.post-card:hover{transform:translateY(-3px);box-shadow:0 12px 32px color-mix(in srgb,var(--ink) 5%,transparent)}[data-theme=dark] .post-card:hover{box-shadow:0 12px 32px color-mix(in srgb,var(--bg) 65%,transparent)}.post-card:hover .post-arrow{transform:translate(3px)}}@media(max-width:700px){.wide-wrap,.nav-wrap,.footer-inner,.wrap{width:calc(100% - 40px)}.nav-wrap{min-height:60px;gap:16px}.brand{font-size:19px}.brand-subtitle{display:none}nav{gap:18px}nav a{font-size:12px}.theme-toggle{width:44px;margin-right:-10px}.hero{padding-block:68px 60px}.hero h1{font-size:clamp(38px,7.5vw,52px)}.hero-description{font-size:16px;margin-block:20px 28px}.explore-bar{grid-template-columns:1fr;gap:20px;padding-block:26px}.explore-copy h2{font-size:18px}.explore-copy p{font-size:13px}.home-writing{padding-block:40px 56px}.section-heading{margin-bottom:22px}.section-heading h2{font-size:24px}.post-grid{grid-template-columns:1fr;gap:16px}.post-card h2{font-size:22px}.home-topics{padding-bottom:48px}.article{padding-block:32px 64px}.article-header{padding-bottom:28px;margin-bottom:32px}.article-deck{font-size:17px}.prose{font-size:16px}.prose h2{font-size:25px}.toc{padding:20px 24px}.article-end{flex-direction:column;gap:12px}.back-link{margin-bottom:20px}.archive-page{padding-block:48px 64px}.page-intro{font-size:16px}.tag-cloud{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:32px}.tag-cloud a{padding:22px 18px;font-size:15px}.footer-inner{flex-direction:column;gap:24px}.footer-meta{text-align:left}.footer-meta a{margin:0 20px 0 0}.not-found{padding-block:64px}}@media(max-width:380px){.nav-wrap{gap:8px}nav{gap:12px}.brand{font-size:17px}.hero h1{font-size:36px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition:none!important;animation:none!important}.post-card:hover{transform:none}}@media print{:root,:root[data-theme=dark]{color-scheme:light}*,*:before,*:after{color:#000!important;background:transparent!important;box-shadow:none!important;text-shadow:none!important}html,body{background:#fff!important}.site-header,nav,footer,.theme-toggle,.search-panel,.explore-bar,.toc,.skip-link,.back-link,.not-found-home,a[href="#main-content"]{display:none!important}.wrap,.wide-wrap{width:100%;max-width:44em}.article,.archive-page,.not-found{padding-block:0;min-height:0}.prose{font-size:12pt;line-height:1.8}.prose :is(h1,h2,h3,h4){break-after:avoid}.prose :is(pre,blockquote,img,tr){break-inside:avoid}.prose pre{white-space:pre-wrap;overflow-wrap:anywhere}.prose table{display:table;width:100%;overflow:visible}.prose th{position:static}.prose :is(pre,blockquote,td,th,hr,h2),.article-header{border-color:#000}[data-theme=dark] .astro-code,[data-theme=dark] .astro-code span{color:#000!important;background:transparent!important}}
