.post{padding:4rem 0 6rem}.post .container{max-width:720px}.post-header{margin-bottom:2.5rem}.post-eyebrow{display:flex;align-items:center;flex-wrap:wrap;gap:.5rem;font-family:var(--font-mono);font-size:.78rem;color:var(--red);text-transform:uppercase;letter-spacing:.04em;margin-bottom:1.25rem}.post-sep{color:var(--text-3)}.post-updated{font-family:var(--font-mono);font-size:.72rem;color:var(--text-3);text-transform:uppercase;letter-spacing:.04em;margin:-.75rem 0 1rem}.post-title{font-family:var(--font-head);font-size:clamp(1.75rem,4vw,2.75rem);font-weight:700;line-height:1.15;color:var(--text);margin:0 0 1.25rem;letter-spacing:-.02em}.post-lead{font-family:var(--font-body);font-size:1.1rem;font-style:italic;color:var(--text-2);line-height:1.65;margin:0;max-width:60ch}.post-rule{height:1px;background:var(--border);margin:2.5rem 0}.post-author{font-family:var(--font-mono);font-size:.78rem;color:var(--text-3);letter-spacing:.04em;text-decoration:none}a.post-author:hover{color:var(--text-2)}.post-reading-time{font-family:var(--font-mono);font-size:.78rem;color:var(--text-3);letter-spacing:.04em}.post-series{background:var(--surface);border:1px solid var(--border);border-radius:2px;padding:1rem 1.25rem;margin-bottom:2rem}.post-series-label{font-family:var(--font-mono);font-size:.72rem;text-transform:uppercase;letter-spacing:.06em;color:var(--text-3);margin:0 0 .75rem}.post-series-label strong{color:var(--red)}.post-series-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:.4rem}.post-series-item{font-family:var(--font-head);font-size:.875rem}.post-series-link{color:var(--text-2);text-decoration:none;transition:color .15s}.post-series-link:hover{color:var(--text)}.post-series-current{color:var(--text);font-weight:600}.post-tags{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:2rem}.post-tag{font-family:var(--font-mono);font-size:.72rem;color:var(--red);text-transform:uppercase;letter-spacing:.04em;border:1px solid var(--red-border);padding:.15em .5em;border-radius:2px;text-decoration:none;transition:color .15s,border-color .15s,background .15s}.post-tag:hover{background:var(--red-bg);border-color:var(--red)}.post-body{font-family:var(--font-body);font-size:1.05rem;line-height:1.8;color:var(--text-2)}.post-body h2{font-family:var(--font-head);font-size:1.35rem;font-weight:600;color:var(--text);margin:2.5rem 0 .75rem;letter-spacing:-.01em}.post-body h3{font-family:var(--font-head);font-size:1.1rem;font-weight:600;color:var(--text);margin:2rem 0 .5rem}.post-body h4{font-family:var(--font-head);font-size:1rem;font-weight:600;color:var(--text);margin:1.5rem 0 .4rem}.post-body p{margin:0 0 1.4rem}.post-body ul,.post-body ol{margin:0 0 1.4rem 1.5rem;padding-left:.5rem}.post-body li{margin-bottom:.5rem}.post-body strong{color:var(--text);font-weight:600}.post-body em{font-style:italic}.post-body a{color:var(--red);text-decoration:underline;text-decoration-color:color-mix(in srgb,var(--red) 40%,transparent);text-underline-offset:3px}.post-body a:hover{text-decoration-color:var(--red)}.post-body code{font-family:var(--font-mono);font-size:.875em;background:var(--raised);border:1px solid var(--border);padding:.15em .4em;border-radius:2px;color:var(--text)}.post-body pre{background:var(--surface);border:1px solid var(--border);border-radius:2px;padding:1.25rem;overflow-x:auto;margin:0 0 1.4rem}.post-body pre code{background:none;border:none;padding:0;font-size:.875rem;color:var(--text-2)}.post-body blockquote{border-left:3px solid var(--red);margin:1.5rem 0;padding:.25rem 0 .25rem 1.25rem;color:var(--text-2);font-style:italic}.post-body blockquote p{margin:0}.post-body table{width:100%;border-collapse:collapse;margin:0 0 1.4rem;font-size:.9rem}.post-body th,.post-body td{padding:.6rem .75rem;border:1px solid var(--border);text-align:left}.post-body th{font-family:var(--font-head);font-weight:600;color:var(--text);background:var(--surface)}.post-body img{max-width:100%;height:auto;display:block;margin:1.5rem auto}.post-body figure{margin:1.5rem 0}.post-body figcaption{font-size:.825rem;color:var(--text-3);text-align:center;margin-top:.5rem;font-style:italic}.post-body hr{border:none;border-top:1px solid var(--border);margin:2rem 0}.post-share{display:flex;flex-wrap:wrap;gap:.75rem;margin-bottom:2.5rem}.share-link{display:inline-flex;align-items:center;gap:.5rem;font-family:var(--font-head);font-size:.875rem;font-weight:500;color:var(--text-2);text-decoration:none;border:1px solid var(--border);padding:.45rem .9rem;border-radius:2px;transition:color .15s,border-color .15s}.share-link:hover{color:var(--text);border-color:var(--text-3)}.post-nav{display:grid;grid-template-columns:1fr 1fr;gap:2rem;margin-bottom:2rem}.post-nav-link{display:flex;flex-direction:column;gap:.35rem;text-decoration:none}.post-nav-link--right{text-align:right}.post-nav-dir{font-family:var(--font-mono);font-size:.72rem;text-transform:uppercase;letter-spacing:.06em;color:var(--red)}.post-nav-name{font-family:var(--font-head);font-size:.9rem;color:var(--text-2);line-height:1.35;transition:color .15s}.post-nav-link:hover .post-nav-name{color:var(--text)}.post-back{margin-top:1rem}.post-back a{font-family:var(--font-head);font-size:.875rem;color:var(--text-3);text-decoration:none;transition:color .15s}.post-back a:hover{color:var(--text-2)}.post-lang-toggle{display:inline-flex;align-items:center;gap:.3rem;font-family:var(--font-mono);font-size:.78rem;letter-spacing:.06em}.lang-current{color:var(--text-3)}.lang-alt{color:var(--text-3);text-decoration:none;border-bottom:1px solid var(--border);transition:color .15s,border-color .15s}.lang-alt:hover{color:var(--text-2);border-color:var(--text-3)}@media(max-width:640px){.post-nav{grid-template-columns:1fr;gap:1.25rem}.post-nav-link--right{text-align:left}}.reading-progress{position:fixed;top:var(--tw-header-height);left:0;width:100%;height:2px;background:var(--red);transform-origin:left center;transform:scaleX(0);z-index:999;pointer-events:none;opacity:.85}@supports (animation-timeline: scroll()){.reading-progress{animation:reading-progress-grow linear both;animation-timeline:scroll(root)}}@keyframes reading-progress-grow{0%{transform:scaleX(0)}to{transform:scaleX(1)}}
