.post-shell{max-width:1060px;margin:0 auto;padding:18px 24px 80px}.post-shell.has-toc{display:grid;grid-template-columns:minmax(220px,260px) minmax(0,1fr);gap:16px;align-items:start}.post-shell.has-toc.is-toc-collapsed{grid-template-columns:0 minmax(0,1fr);gap:0}.post-shell:not(.has-toc) .post{max-width:920px;margin:0 auto}.post{min-width:0;border:1px solid var(--border);border-radius:var(--radius-lg);background:linear-gradient(180deg,#111826f0,#0c111df2);box-shadow:var(--shadow-panel);overflow:hidden}.post-hero{text-align:left;padding:30px 28px 22px;border-bottom:1px solid var(--border-soft);margin-bottom:0}.post-hero h1{font-size:clamp(1.65rem,4.2vw,2.45rem);font-weight:700;line-height:1.14;margin-bottom:10px;color:#eff5ff;text-wrap:balance}.post-hero .subtitle{color:var(--text-muted);font-size:1.02rem;max-width:72ch}.post-hero .meta{margin-top:14px;color:var(--text-faint);font-size:.75rem;letter-spacing:.03em;font-family:var(--font-mono)}.post-body{padding:0 28px 30px}.post-body p{margin:12px 0}.post-body h2{font-size:1.35em;font-weight:600;margin:40px 0 18px;padding-bottom:8px;border-bottom:1px solid color-mix(in srgb,var(--gold) 55%,var(--border))}.post-body h3{font-size:1.16em;font-weight:600;margin:30px 0 10px;color:var(--accent)}.post-body pre{background:color-mix(in srgb,var(--surface) 78%,#070d19);border:1px solid var(--border-soft);border-radius:10px;padding:16px 20px;overflow-x:auto;font-size:.88em;line-height:1.55;margin:16px 0}.post-body code{font-family:var(--font-mono)}.post-body :not(pre)>code{background:color-mix(in srgb,var(--surface) 70%,#070d19);padding:2px 6px;border-radius:4px;font-size:.9em;color:var(--green)}.post-body table{width:100%;border-collapse:collapse;margin:20px 0;font-size:.92em}.post-body th,.post-body td{padding:10px 14px;text-align:left;border:1px solid var(--border-soft)}.post-body th{background:color-mix(in srgb,var(--surface) 70%,#070d19);font-weight:600;color:var(--accent)}.post-body td{background:color-mix(in srgb,var(--bg) 86%,transparent)}.post-body ul,.post-body ol{margin:12px 0 12px 24px}.post-body li{margin:6px 0}.post-body img{max-width:100%;border-radius:8px;border:1px solid var(--border-soft)}.post-body blockquote{background:color-mix(in srgb,var(--surface) 76%,#070d19);border-left:3px solid var(--gold);border-radius:0 10px 10px 0;padding:16px 20px;margin:20px 0;font-size:.95em}.post-body blockquote p{margin:0}.post-body pre.diagram,.post-body .diagram pre{color:var(--text-muted);white-space:pre;font-size:.85em;line-height:1.5}.post-body .demo{border:1px solid var(--border-soft);border-radius:10px;padding:24px;margin:24px 0;background:color-mix(in srgb,var(--surface) 76%,#070d19)}.post-body .footer{margin-top:64px;padding-top:24px;border-top:1px solid var(--border-soft);color:var(--text-muted);font-size:.85em;text-align:center}.post-toc{position:sticky;top:96px;border:1px solid var(--border);border-radius:var(--radius-md);background:linear-gradient(180deg,#101624f0,#0c101bf2);padding:10px;max-height:calc(100vh - 114px);overflow-y:auto;overflow-x:hidden;display:flex;flex-direction:column;gap:10px;transition:padding .15s ease;box-shadow:var(--shadow-panel)}.post-toc .toc-collapse-toggle{align-self:flex-start;display:inline-flex;align-items:center;gap:8px;border:1px solid var(--border-soft);border-radius:8px;background:color-mix(in srgb,var(--bg) 70%,var(--surface));color:var(--text-muted);cursor:pointer;font:inherit;font-family:var(--font-mono);font-size:.72rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;padding:7px 10px}.post-toc .toc-collapse-toggle:hover{color:var(--text);border-color:color-mix(in srgb,var(--gold) 40%,var(--border))}.post-toc .toc-collapse-toggle:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.post-toc .toc-toggle-icon{font-size:.95em;line-height:1}.post-toc .toc-content{min-width:0}.post-toc .toc-title{margin:0 0 10px;font-size:.72rem;font-family:var(--font-mono);letter-spacing:.09em;text-transform:uppercase;color:var(--gold)}.post-toc ul{list-style:none;margin:0;padding:0}.post-toc li{margin:0}.post-toc a{display:block;padding:7px 10px;border-radius:7px;color:var(--text-muted);text-decoration:none;line-height:1.3;font-size:.86em}.post-toc li.toc-depth-3 a{padding-left:22px;font-size:.82em}.post-toc a:hover,.post-toc a.is-active{color:var(--text);background:color-mix(in srgb,var(--accent) 14%,transparent)}.post-shell.has-toc.is-toc-collapsed .post-toc{width:52px;margin-right:-52px;transform:translate(-64px);padding:8px}.post-shell.has-toc.is-toc-collapsed .post-toc .toc-content{display:none}.post-shell.has-toc.is-toc-collapsed .post-toc .toc-collapse-toggle{width:100%;justify-content:center;padding:8px 0}.post-shell.has-toc.is-toc-collapsed .post-toc .toc-toggle-label{display:none}.post-body details.phase-section{border:1px solid var(--border-soft);border-radius:10px;background:color-mix(in srgb,var(--surface) 76%,#070d19);margin:28px 0;overflow:hidden}.post-body details.phase-section>summary.phase-summary{list-style:none;cursor:pointer;padding:14px 16px;display:flex;align-items:center;justify-content:space-between;gap:14px}.post-body details.phase-section>summary.phase-summary::marker{content:""}.post-body details.phase-section>summary.phase-summary::-webkit-details-marker{display:none}.post-body details.phase-section>summary.phase-summary:after{content:"▸";color:var(--gold);transition:transform .15s ease;font-size:.9em}.post-body details.phase-section[open]>summary.phase-summary:after{transform:rotate(90deg)}.post-body details.phase-section>summary.phase-summary>h2.phase-heading{margin:0!important;padding:0!important;border:0!important;font-size:1.2em;color:var(--text)}.post-body details.phase-section>summary.phase-summary>h2.phase-heading a{color:inherit;text-decoration:none}.post-body details.phase-section>.phase-content{border-top:1px solid var(--border-soft);padding:0 16px 16px}.post-body details.phase-section>.phase-content>:first-child{margin-top:16px}@media(max-width:1060px){.post-shell.has-toc{display:block}.post-toc{display:none}}@media(max-width:720px){.post-shell{padding:12px 12px 64px}.post-hero{padding:20px 16px 16px}.post-body{padding:0 16px 18px}.post-hero h1{font-size:1.55em}.post-body pre{font-size:.8em;padding:12px 14px}.post-body details.phase-section>summary{padding:12px 14px}.post-body details.phase-section>.phase-content{padding:0 14px 14px}}
