.blog-shell{max-width:1320px;margin:0 auto;padding:0 var(--gutter)}.blog-hero{padding:clamp(140px,18vw,240px) 0 clamp(60px,8vw,100px);border-bottom:1px solid var(--line)}.blog-hero .eyebrow{margin-bottom:24px}.blog-hero h1{font-size:clamp(56px,10vw,168px);font-weight:500;line-height:.92;letter-spacing:-.04em;margin:0;max-width:14ch}.blog-hero h1 .serif{color:var(--accent)}.blog-hero .sub{margin-top:28px;font-size:clamp(15px,1.2vw,18px);line-height:1.6;color:var(--ink-2);max-width:56ch}.filter-bar{display:flex;gap:8px;flex-wrap:wrap;padding:32px 0;border-bottom:1px solid var(--line)}.filter-bar button{font-family:var(--mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-3);padding:8px 16px;border:1px solid var(--line-2);border-radius:999px;cursor:pointer;transition:all .3s ease}.filter-bar button:hover{color:var(--ink);border-color:var(--ink-2)}.filter-bar button.on{background:var(--ink);color:var(--bg);border-color:var(--ink)}.featured-post{display:grid;grid-template-columns:1.1fr 1fr;gap:var(--gutter);padding:clamp(48px,6vw,80px) 0;border-bottom:1px solid var(--line);align-items:center}.featured-post .visual{aspect-ratio:4/3;background:var(--bg-2);border:1px solid var(--line);border-radius:4px;position:relative;overflow:hidden}.featured-post .visual:after{content:"";position:absolute;inset:0;background:radial-gradient(circle at 70% 30%,var(--accent-soft) 0%,transparent 50%);pointer-events:none}.featured-post .visual .num{position:absolute;top:24px;left:24px;font-family:var(--mono);font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--ink-3)}.featured-post .visual .glyph{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-family:var(--serif);font-style:italic;font-size:clamp(120px,18vw,240px);color:var(--accent);opacity:.85;line-height:1}.featured-post .meta{display:flex;flex-direction:column;gap:24px}.featured-post .badge{font-family:var(--mono);font-size:10px;letter-spacing:.22em;text-transform:uppercase;color:var(--accent)}.featured-post h2{font-size:clamp(36px,5.5vw,72px);font-weight:500;line-height:.98;letter-spacing:-.03em;margin:0}.featured-post h2 .serif{color:var(--accent)}.featured-post .desc{color:var(--ink-2);font-size:16px;line-height:1.6;max-width:50ch;margin:0}.featured-post .row{display:flex;gap:24px;font-family:var(--mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-3);padding-top:18px;border-top:1px solid var(--line)}.featured-post .row b{color:var(--ink);font-weight:500}.featured-post .read-cta{display:inline-flex;align-items:center;gap:12px;margin-top:8px;font-family:var(--mono);font-size:12px;letter-spacing:.16em;text-transform:uppercase;padding:14px 0;border-top:1px solid var(--line-2);border-bottom:1px solid var(--line-2);width:fit-content;transition:padding .3s ease,color .3s ease}.featured-post .read-cta:hover{color:var(--accent);padding-left:14px;padding-right:14px}@media(max-width:860px){.featured-post{grid-template-columns:1fr}}.post-list{padding:clamp(40px,5vw,64px) 0 clamp(80px,10vw,140px)}.post-row{display:grid;grid-template-columns:80px 1.5fr 1fr 140px auto;gap:var(--gutter);padding:clamp(28px,3vw,36px) 0;border-top:1px solid var(--line);align-items:baseline;position:relative;cursor:pointer;transition:padding .4s cubic-bezier(.2,.8,.2,1)}.post-row:last-child{border-bottom:1px solid var(--line)}.post-row:hover{padding-left:16px;padding-right:16px}.post-row:before{content:"";position:absolute;inset:0;background:var(--bg-2);opacity:0;transition:opacity .4s ease;z-index:-1}.post-row:hover:before{opacity:1}.post-row .yr{font-family:var(--mono);font-size:12px;letter-spacing:.1em;color:var(--ink-3)}.post-row .ttl{font-size:clamp(20px,2.4vw,32px);font-weight:500;letter-spacing:-.02em;line-height:1.1;transition:color .3s ease}.post-row .ttl .serif{color:var(--accent)}.post-row .desc{font-size:14px;color:var(--ink-2);line-height:1.5;max-width:44ch}.post-row .tag{font-family:var(--mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-3)}.post-row .arr{font-family:var(--mono);color:var(--ink-3);font-size:14px;transition:transform .4s cubic-bezier(.2,.8,.2,1),color .3s ease}.post-row:hover .ttl{color:var(--accent)}.post-row:hover .arr{color:var(--accent);transform:translate(8px)}@media(max-width:980px){.post-row{grid-template-columns:1fr;gap:8px}.post-row .arr{display:none}}.article-hero{padding:clamp(140px,16vw,220px) 0 clamp(48px,6vw,80px);border-bottom:1px solid var(--line)}.article-hero .breadcrumbs{display:flex;gap:12px;font-family:var(--mono);font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-3);margin-bottom:28px}.article-hero .breadcrumbs a{color:var(--ink-2);transition:color .3s ease}.article-hero .breadcrumbs a:hover{color:var(--accent)}.article-hero .breadcrumbs span{color:var(--ink-4)}.article-hero h1{font-size:clamp(40px,7vw,96px);font-weight:500;line-height:.98;letter-spacing:-.03em;margin:0;max-width:22ch}.article-hero h1 .serif{color:var(--accent)}.article-hero .meta-strip{display:flex;gap:32px;margin-top:40px;padding-top:24px;border-top:1px solid var(--line);flex-wrap:wrap}.article-hero .meta-strip>div{display:flex;flex-direction:column;gap:6px;font-family:var(--mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-3)}.article-hero .meta-strip>div b{font-weight:500;color:var(--ink);font-size:13px;text-transform:none;letter-spacing:.04em}.article-cover{height:clamp(300px,50vh,540px);background:var(--bg-2);border-bottom:1px solid var(--line);position:relative;overflow:hidden;display:flex;align-items:center;justify-content:center}.article-cover:after{content:"";position:absolute;inset:0;background:radial-gradient(circle at 50% 50%,var(--accent-soft) 0%,transparent 60%)}.article-cover .glyph{font-family:var(--serif);font-style:italic;font-size:clamp(160px,28vw,380px);color:var(--accent);opacity:.9;line-height:1;position:relative;z-index:1}.article-cover .badge-tl{position:absolute;top:24px;left:var(--gutter);font-family:var(--mono);font-size:10px;letter-spacing:.22em;text-transform:uppercase;color:var(--ink-3);z-index:2}.article-cover .badge-br{position:absolute;bottom:24px;right:var(--gutter);font-family:var(--mono);font-size:10px;letter-spacing:.22em;color:var(--ink-3);z-index:2}.article-body{padding:clamp(60px,8vw,100px) 0 clamp(80px,10vw,140px)}.article-body .layout{display:grid;grid-template-columns:200px 1fr;gap:var(--gutter);align-items:start}.article-body .toc{position:sticky;top:100px;display:flex;flex-direction:column;gap:8px}.article-body .toc .label{font-family:var(--mono);font-size:10px;letter-spacing:.2em;text-transform:uppercase;color:var(--ink-3);margin-bottom:12px}.article-body .toc a{font-family:var(--mono);font-size:12px;color:var(--ink-3);transition:color .3s ease,padding .3s ease;border-left:1px solid var(--line);padding:4px 0 4px 12px}.article-body .toc a:hover,.article-body .toc a.active{color:var(--accent);border-color:var(--accent)}.article-body .prose{max-width:62ch;font-size:clamp(16px,1.2vw,18px);line-height:1.7;color:var(--ink-2)}.article-body .prose p{margin:0 0 1.4em}.article-body .prose .lede{font-size:clamp(20px,1.8vw,26px);line-height:1.5;color:var(--ink);letter-spacing:-.01em;margin-bottom:2em}.article-body .prose .lede .serif{color:var(--accent)}.article-body .prose h2{font-size:clamp(28px,3.2vw,40px);font-weight:500;line-height:1.1;letter-spacing:-.02em;color:var(--ink);margin:2.2em 0 .6em}.article-body .prose h2 .num{font-family:var(--mono);font-size:14px;letter-spacing:.18em;color:var(--accent);display:block;margin-bottom:8px}.article-body .prose h3{font-size:clamp(20px,2vw,26px);font-weight:500;letter-spacing:-.01em;color:var(--ink);margin:1.8em 0 .5em}.article-body .prose strong{color:var(--ink);font-weight:500}.article-body .prose em.serif{color:var(--accent);font-family:var(--serif);font-style:italic}.article-body .prose a{color:var(--accent);border-bottom:1px solid var(--accent-soft);transition:border-color .3s ease}.article-body .prose a:hover{border-color:var(--accent)}.article-body .prose blockquote{margin:2em 0;padding:0 0 0 24px;border-left:2px solid var(--accent);font-family:var(--serif);font-style:italic;font-size:clamp(22px,2.2vw,30px);line-height:1.4;color:var(--ink)}.article-body .prose ul,.article-body .prose ol{margin:0 0 1.4em;padding-left:24px}.article-body .prose li{margin:.4em 0}.article-body .prose code{font-family:var(--mono);font-size:.9em;padding:2px 8px;background:var(--bg-2);border:1px solid var(--line);border-radius:3px;color:var(--ink)}.article-body .prose pre{background:var(--bg-2);border:1px solid var(--line);border-radius:4px;padding:20px 24px;margin:1.6em 0;overflow-x:auto;font-family:var(--mono);font-size:13px;line-height:1.7;color:var(--ink-2)}.article-body .prose pre code{background:none;border:none;padding:0;font-size:inherit}.article-body .prose pre .kw{color:var(--accent)}.article-body .prose pre .str{color:#8aaaff}.article-body .prose pre .com{color:var(--ink-3)}.callout{margin:2em 0;padding:24px;background:var(--bg-2);border:1px solid var(--line);border-left:2px solid var(--accent);border-radius:0 4px 4px 0}.callout .label{font-family:var(--mono);font-size:10px;letter-spacing:.22em;text-transform:uppercase;color:var(--accent);margin-bottom:8px}.callout p{margin:0;color:var(--ink-2);font-size:15px}.fig{margin:2.5em 0;border:1px solid var(--line);background:var(--bg-2);border-radius:4px;overflow:hidden}.fig .body{aspect-ratio:16/9;display:flex;align-items:center;justify-content:center;background:repeating-linear-gradient(135deg,transparent 0 14px,rgba(255,255,255,.025) 14px 15px);font-family:var(--mono);font-size:11px;color:var(--ink-3);letter-spacing:.14em;text-transform:uppercase;flex-direction:column;gap:8px}.fig .body b{color:var(--ink-2);font-weight:500}.fig .cap{padding:12px 16px;border-top:1px solid var(--line);font-family:var(--mono);font-size:11px;letter-spacing:.06em;color:var(--ink-3);display:flex;justify-content:space-between}@media(max-width:980px){.article-body .layout{grid-template-columns:1fr}.article-body .toc{position:static;flex-direction:row;flex-wrap:wrap}}.article-foot{padding:clamp(60px,8vw,100px) 0 clamp(80px,10vw,140px);border-top:1px solid var(--line)}.article-foot .label{font-family:var(--mono);font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--ink-3);margin-bottom:32px}.article-foot .next-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--gutter)}.article-foot a{display:flex;flex-direction:column;gap:12px;padding:32px;border:1px solid var(--line);border-radius:4px;transition:all .4s ease;background:var(--bg-2)}.article-foot a:hover{border-color:var(--ink-2);transform:translateY(-2px)}.article-foot a .dir{font-family:var(--mono);font-size:10px;letter-spacing:.22em;text-transform:uppercase;color:var(--ink-3)}.article-foot a .ttl{font-size:clamp(20px,2.2vw,26px);font-weight:500;letter-spacing:-.02em;line-height:1.15}.article-foot a:hover .ttl{color:var(--accent)}@media(max-width:760px){.article-foot .next-grid{grid-template-columns:1fr}}.read-progress{position:fixed;top:0;left:0;right:0;height:2px;background:transparent;z-index:49}.read-progress>i{display:block;height:100%;width:0;background:var(--accent);transition:width .1s linear}.curtain{position:fixed;inset:0;background:var(--bg);z-index:80;transform:translateY(100%);pointer-events:none}.curtain.in{animation:curtainIn .6s cubic-bezier(.76,0,.24,1) forwards}.curtain.out{animation:curtainOut .6s cubic-bezier(.76,0,.24,1) forwards}@keyframes curtainIn{0%{transform:translateY(100%)}to{transform:translateY(0)}}@keyframes curtainOut{0%{transform:translateY(0)}to{transform:translateY(-100%)}}.curtain .label{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-family:var(--mono);font-size:13px;letter-spacing:.3em;text-transform:uppercase;color:var(--ink-2);opacity:0;animation:fadeIn .4s ease .2s forwards}
