.home-hero,.archive-head{border-bottom:1px solid var(--line);align-content:end;min-height:360px;padding:34px 0 38px;display:grid;position:relative;overflow:hidden}.hero-grid{pointer-events:none;grid-template-columns:repeat(4,1fr);display:grid;position:absolute;inset:0}.hero-grid span{border-left:1px solid var(--line-soft)}.hero-grid span:nth-child(2){background:color-mix(in srgb, var(--accent) 8%, transparent)}.hero-grid span:nth-child(3){background:color-mix(in srgb, var(--accent-2) 7%, transparent)}.eyebrow{color:var(--accent);font-family:var(--font-code);letter-spacing:.08em;text-transform:uppercase;margin:0 0 12px;font-size:.82rem;font-weight:700;position:relative}.eyebrow:before{content:"> ";color:var(--accent-2)}.home-hero h1,.archive-head h1,.article-header h1{background:linear-gradient(135deg, var(--text) 0%, var(--accent) 100%);color:#0000;-webkit-background-clip:text;background-clip:text;margin:0;font-size:4.4rem;font-weight:760;line-height:.98;position:relative}.archive-head h1,.article-header h1{font-size:3.2rem;line-height:1.08}.hero-copy{max-width:100%;color:var(--muted);margin:18px 0 0;font-size:1.08rem;position:relative}.quick-stats{flex-wrap:wrap;gap:10px;margin-top:28px;display:flex;position:relative}.quick-stats span{border:1px solid var(--line);border-radius:var(--radius);background:var(--panel);min-height:36px;color:var(--muted);align-items:center;gap:8px;padding:6px 12px;font-size:.88rem;transition:border-color .15s,box-shadow .15s;display:inline-flex}.quick-stats span:hover{border-color:var(--accent);box-shadow:0 0 14px color-mix(in srgb, var(--accent) 14%, transparent)}.quick-stats strong{color:var(--accent);font-family:var(--font-code);font-weight:700}.post-feed{display:grid}.post-row{border-bottom:1px solid var(--line);border-radius:var(--radius);align-items:flex-start;gap:22px;margin:0 -20px;padding:26px 20px;transition:background .15s,box-shadow .15s;display:flex}.post-row:hover{background:var(--panel);box-shadow:0 4px 20px #0003}.post-index{border-right:1px solid var(--line-soft);flex:0 0 92px;align-content:start;min-height:82px;padding-top:4px;display:grid}.post-index strong{color:var(--accent);font-size:1rem;font-weight:700}.post-cover{border:1px solid var(--line-soft);border-radius:var(--radius);background:var(--panel-2);aspect-ratio:16/10;flex:0 0 clamp(180px,24%,320px);align-self:center;overflow:hidden}.post-cover img{object-fit:cover;border-radius:0;width:100%;height:100%;transition:transform .2s}.post-row:hover .post-cover img{transform:scale(1.05)}.post-summary{flex:1;min-width:0}.post-meta{flex-wrap:wrap;gap:8px;margin-bottom:7px;display:flex}.post-meta a{color:var(--accent-2)}.meta-time{color:var(--muted);font-variant-numeric:tabular-nums;align-items:center;gap:5px;font-size:.85rem;display:inline-flex}.meta-time svg{opacity:.85;flex:none;width:14px;height:14px}.meta-time.is-updated{color:var(--accent-4)}.post-summary h2{color:var(--text);margin:0;font-size:1.72rem;line-height:1.2}.post-summary h2 a:hover,.timeline-item a:hover,.article-content a:hover,.post-nav a:hover strong{color:var(--accent)}.post-summary p{max-width:100%;color:var(--muted);margin:10px 0 0}.tag-list,.article-tags{flex-wrap:wrap;gap:8px;margin-top:14px;display:flex}.tag-list a,.article-tags a{color:var(--accent-4)}.article{max-width:100%}.article-header{border-bottom:1px solid var(--line);padding:18px 0 34px}.article-cover{border:1px solid var(--line-soft);border-radius:calc(var(--radius) + 4px);background:var(--panel-2);aspect-ratio:16/6;margin:0 0 22px;position:relative;overflow:hidden}.article-cover img{object-fit:cover;border-radius:0;width:100%;height:100%}.article-cover-mask{pointer-events:none;background:linear-gradient(#00000014 0%,#0000009e 100%);position:absolute;inset:0}.article-cover-title{color:#fff;text-shadow:0 1px 3px #00000073;padding:34px 26px 20px;position:absolute;bottom:0;left:0;right:0}.article-cover-title h1{color:#fff;margin:0;font-size:1.5rem;line-height:1.3}@media (width<=720px){.article-cover-title{padding:22px 16px 14px}.article-cover-title h1{font-size:1.15rem}}.article-page-layout{grid-template-columns:minmax(0,1fr);gap:0;min-height:0;display:grid}.article-page-layout:has(.article-toc){grid-template-columns:minmax(0,1fr) clamp(150px,15%,240px);gap:36px}.article-page-layout[data-toc-mode^=rail]{grid-template-columns:minmax(0,1fr) 14px;gap:10px}.article-page-layout[data-toc-mode=rail-overlay]{grid-template-columns:minmax(0,1fr)}.article-page-layout[data-toc-mode=rail-overlay] .article-toc{margin:0;position:fixed;top:80px;right:4px}.article-body{min-width:0;padding:0}.article-toc{max-height:calc(var(--vh,100vh) - 98px);scrollbar-width:none;align-self:start;padding-top:22px;font-size:.84rem;position:sticky;top:0;overflow-y:auto}.article-toc::-webkit-scrollbar{display:none}.article-toc nav{border-left:1px solid var(--line);padding-left:18px}.article-toc .toc-title{text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin:0 0 12px;font-size:.76rem;font-weight:680}.article-toc ol,.article-toc ul{margin:0;padding:0;list-style:none}.article-toc li{margin:3px 0;line-height:1.4}.article-toc a{color:var(--muted);padding:2px 0;text-decoration:none;transition:color .12s;display:block}.article-toc a:hover,.article-toc a.is-active{color:var(--accent)}.article-toc .toc-child{padding-left:16px}.toc-rail{display:none}.article-page-layout[data-toc-mode=sidebar]{grid-template-columns:minmax(0,1fr) 14px clamp(150px,15%,240px)}.article-page-layout[data-toc-mode=sidebar]>nav{max-height:calc(var(--vh,100vh) - 98px);border-left:1px solid var(--line);scrollbar-width:none;align-self:start;padding-top:22px;padding-left:18px;font-size:.84rem;position:sticky;top:0;overflow-y:auto}.article-page-layout[data-toc-mode=sidebar]>nav::-webkit-scrollbar{display:none}.article-page-layout[data-toc-mode=sidebar]>nav .toc-title{text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin:0 0 12px;font-size:.76rem;font-weight:680}.article-page-layout[data-toc-mode=sidebar]>nav ol,.article-page-layout[data-toc-mode=sidebar]>nav ul{margin:0;padding:0;list-style:none}.article-page-layout[data-toc-mode=sidebar]>nav li{margin:3px 0;line-height:1.4}.article-page-layout[data-toc-mode=sidebar]>nav a{color:var(--muted);padding:2px 0;text-decoration:none;transition:color .12s;display:block}.article-page-layout[data-toc-mode=sidebar]>nav a:hover,.article-page-layout[data-toc-mode=sidebar]>nav a.is-active{color:var(--accent)}.article-page-layout[data-toc-mode=sidebar]>nav .toc-child{padding-left:16px}.article-page-layout[data-toc-mode] .article-toc{z-index:30;width:14px;height:calc(var(--vh,100vh) - 98px);max-height:none;padding:0;overflow:visible}.article-page-layout[data-toc-mode] .article-toc .toc-rail{display:block;position:absolute;inset:0}.article-page-layout[data-toc-mode] .toc-track{background:var(--line-soft);cursor:pointer;user-select:none;touch-action:none;border-radius:2px;width:3px;transition:background .15s;position:absolute;top:26px;bottom:26px;left:50%;transform:translate(-50%)}.article-page-layout[data-toc-mode] .article-toc:hover .toc-track{background:color-mix(in srgb, var(--accent) 22%, var(--line-soft))}.toc-track.is-dragging{cursor:grabbing}.toc-progress{background:color-mix(in srgb, var(--accent) 55%, transparent);border-radius:2px;width:3px;position:absolute;top:0;left:0}.toc-tick{background:var(--line);cursor:pointer;border-radius:1px;width:7px;height:2px;margin-left:-3.5px;transition:background .12s,transform .12s;position:absolute;left:50%}.toc-tick.is-active{background:var(--accent);transform:scaleX(1.2)}.toc-knob{background:var(--accent);width:10px;height:10px;box-shadow:0 0 0 2px color-mix(in srgb, var(--accent) 24%, transparent);cursor:grab;touch-action:none;border-radius:50%;margin-top:-5px;margin-left:-5px;transition:transform .12s;position:absolute;left:50%}.toc-knob:hover{transform:scale(1.25)}.toc-track.is-dragging .toc-knob{cursor:grabbing;transform:scale(1.25)}.editor-surface.is-rail-scroll{scrollbar-width:none}.editor-surface.is-rail-scroll::-webkit-scrollbar{display:none}.article-page-layout[data-toc-mode^=rail] .article-toc>nav{width:224px;max-height:calc(var(--vh,100vh) - 118px);border:1px solid var(--line);border-radius:var(--radius);background:var(--panel);opacity:0;pointer-events:none;padding:12px 14px;transition:opacity .15s,transform .15s;position:absolute;top:4px;right:calc(100% + 12px);overflow-y:auto;transform:translate(12px);box-shadow:0 12px 32px #0000002e}.article-page-layout[data-toc-mode^=rail] .article-toc:hover>nav,.article-page-layout[data-toc-mode^=rail] .article-toc.is-open>nav,.article-page-layout[data-toc-mode^=rail] .article-toc:focus-within>nav{opacity:1;pointer-events:auto;transform:translate(0)}.article-page-layout[data-toc-mode^=rail] .article-toc:after{content:"";width:12px;position:absolute;top:0;bottom:0;right:100%}@media (width<=1020px){.article-page-layout:not([data-toc-mode]){grid-template-columns:minmax(0,1fr)}.article-page-layout:not([data-toc-mode]) .article-toc{display:none}}@media (width<=760px){.post-row{flex-direction:column;gap:12px;margin:0 -18px}.post-index{border-right:0;border-bottom:1px solid var(--line-soft);flex:none;min-height:0;padding-bottom:10px}.post-cover{flex:none;width:100%}.article-cover{aspect-ratio:16/9}}.article-content{color:var(--text);font-family:var(--font-article);padding-top:30px;font-size:1rem}.article-content>:first-child{margin-top:0}.article-content h2,.article-content h3,.article-content h4{margin:2em 0 .72em;font-weight:720;line-height:1.24}.article-content h2{border-bottom:1px solid var(--line);color:var(--accent-2);padding-bottom:8px;font-size:1.7rem}.article-content h3{color:var(--accent-3);font-size:1.28rem}.article-content h4{color:var(--accent-4);font-size:1.06rem}.article-content p,.article-content ul,.article-content ol,.article-content blockquote,.article-content table,.article-content figure.highlight,.article-content pre{margin:1.08em 0}.article-content a{color:var(--accent);border-bottom:1px solid color-mix(in srgb, var(--accent) 45%, transparent)}.article-content blockquote{border-left:3px solid var(--accent-2);color:var(--muted);padding:2px 0 2px 18px}.article-content code{border:1px solid var(--line);background:var(--code-bg);color:var(--accent-3);font-family:var(--font-code);border-radius:5px;padding:.16em .34em;font-size:.92em}.article-content pre{border:1px solid var(--line);border-radius:var(--radius);background:var(--code-bg);color:var(--text);padding:18px;position:relative;overflow:auto}.article-content figure.highlight{border:1px solid var(--line);border-radius:var(--radius);background:var(--code-bg);position:relative;overflow:auto}.article-content figure.highlight table{border-collapse:collapse;width:100%;margin:0;display:table;overflow:visible}.article-content figure.highlight td{vertical-align:top;border:0;padding:0}.article-content figure.highlight pre{background:0 0;border:0;border-radius:0;margin:0}.article-content figure.highlight .gutter{border-right:1px solid var(--line-soft);background:color-mix(in srgb, var(--bg) 74%, var(--code-bg));width:1%;color:var(--dim);text-align:right;user-select:none}.article-content figure.highlight .gutter pre{min-width:42px;color:var(--dim);padding:18px 10px}.article-content figure.highlight .code pre{padding:18px 68px 18px 16px}.article-content figure.highlight .line{min-height:1.58em}.article-content pre code{color:inherit;background:0 0;border:0;padding:0}.copy-code{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);min-width:48px;min-height:26px;color:var(--muted);cursor:pointer;font-family:var(--font-code);font-size:.72rem;position:absolute;top:8px;right:8px}.copy-code:hover{color:var(--text);border-color:var(--accent)}.article-content table{border-collapse:collapse;width:100%;display:block;overflow:auto}.article-content th,.article-content td{border:1px solid var(--line);padding:9px 11px}.article-content th{background:var(--surface-hot);color:var(--accent-2)}.post-nav{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;max-width:100%;margin-top:34px;display:grid}.pager{flex-wrap:wrap;justify-content:center;align-items:center;gap:6px;margin-top:34px;display:flex}.pager-page,.pager-arrow{background:var(--surface);width:2.5em;height:2.5em;box-shadow:0 2px 8px color-mix(in srgb, var(--text) 7%, transparent);color:var(--muted);font-variant-numeric:tabular-nums;border-radius:8px;place-items:center;transition:box-shadow .12s,background .12s,color .12s;display:grid}.pager-page:hover,.pager-arrow:hover{box-shadow:0 3px 12px color-mix(in srgb, var(--text) 12%, transparent);color:var(--accent)}.pager-page.is-current{background:var(--accent);box-shadow:0 3px 12px color-mix(in srgb, var(--accent) 35%, transparent);color:#fff}.pager-ellipsis{color:var(--muted);user-select:none;padding:0 2px}.post-nav a{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);min-height:78px;padding:14px}.post-nav a:last-child{text-align:right}.post-nav strong{overflow-wrap:anywhere;color:var(--text);margin-top:3px;font-weight:600;display:block}.archive-head{min-height:230px}.timeline{gap:4px;max-width:840px;display:grid}.timeline h2{color:var(--accent-2);text-transform:uppercase;margin:28px 0 8px;font-size:.82rem}.timeline-item{border-bottom:1px solid var(--line-soft);grid-template-columns:74px minmax(0,1fr) auto;align-items:center;gap:14px;min-height:46px;padding:8px 0;display:grid}.timeline-item>a{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.timeline-item>span{color:var(--accent-4);font-family:var(--font-code);font-size:.76rem}.taxonomy-grid{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px;max-width:840px;padding-top:28px;display:grid}.taxonomy-item{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);align-content:center;gap:6px;min-height:92px;padding:14px;display:grid}.taxonomy-item:hover{border-color:var(--accent);background:var(--surface-hot)}.taxonomy-item strong,.taxonomy-item span{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.taxonomy-item strong{color:var(--accent-2);font-size:1.02rem}.taxonomy-item span{color:var(--muted);font-family:var(--font-code);font-size:.78rem}.empty-state{max-width:640px;padding:30px 0}.empty-state h2{color:var(--accent-2);margin:0}.empty-state p{color:var(--muted)}