.hc-readprog{z-index:70;pointer-events:none;background:0 0;height:3px;position:fixed;top:0;left:0;right:0}.hc-readprog>span{transform-origin:0;background:linear-gradient(90deg, var(--accent), var(--primary-500));height:100%;transition:transform .1s linear;display:block}.hc-arthead{min-height:auto}.hc-arthead .wrap{padding-block:clamp(96px,13vw,150px) clamp(26px,4vw,44px)}.hc-arthead h1{max-width:20ch;margin-top:10px}.hc-arthead .hc-lead{margin-top:14px}.hc-draft-banner{background:var(--warn);color:#2a1a04;text-align:center;font-family:var(--font-display);padding:8px 16px;font-size:.85rem;font-weight:700}.hc-article{padding-block:clamp(28px,5vw,56px)}.hc-artcta{margin-top:clamp(28px,4vw,40px)}.hc-article-grid{grid-template-columns:minmax(0,1fr);gap:clamp(24px,4vw,56px);display:grid}@media (min-width:1040px){.hc-article-grid{grid-template-columns:240px minmax(0,1fr);align-items:start}}.hc-artmeta{color:var(--muted);flex-wrap:wrap;align-items:center;gap:10px;font-size:.92rem;display:flex}.hc-artmeta-author{font-family:var(--font-display);color:var(--ink);font-weight:700}.hc-artmeta-upd{color:var(--success)}.hc-article-cover{border-radius:var(--r-lg);box-shadow:var(--shadow-md);margin-top:clamp(16px,3vw,28px);overflow:hidden}.hc-article-cover-cap{color:var(--muted);margin-top:.6em;font-size:.85rem}.hc-toc{font-size:.9rem}@media (min-width:1040px){.hc-toc{max-height:calc(100dvh - 140px);position:sticky;top:108px;overflow-y:auto}}.hc-toc-title{font-family:var(--font-display);letter-spacing:.16em;text-transform:uppercase;color:var(--muted);margin-bottom:12px;font-size:.72rem;font-weight:700}.hc-toc ul{border-left:2px solid var(--line);flex-direction:column;gap:2px;list-style:none;display:flex}.hc-toc-item a{color:var(--muted);transition:color .2s var(--ease), border-color .2s var(--ease);border-left:2px solid #0000;margin-left:-2px;padding:6px 0 6px 14px;line-height:1.35;display:block}.hc-toc-item.l3 a{padding-left:28px;font-size:.86rem}.hc-toc-item a:hover{color:var(--ink)}.hc-toc-item.is-active a{color:var(--primary-dark);border-left-color:var(--accent);font-weight:600}@media (max-width:1039px){.hc-toc{background:var(--surface-alt);border:1px solid var(--line);border-radius:var(--r-md);padding:16px 18px}}.hc-h-anchor{color:var(--accent);opacity:0;transition:opacity .15s var(--ease);margin-left:-1.1em;padding-right:.35em;text-decoration:none}.hc-prose h2:hover .hc-h-anchor,.hc-prose h3:hover .hc-h-anchor{opacity:1}@media (max-width:760px){.hc-h-anchor{display:none}}.hc-share{border-top:1px solid var(--line);border-bottom:1px solid var(--line);flex-wrap:wrap;align-items:center;gap:10px;padding-block:clamp(18px,3vw,26px);display:flex}.hc-share-label{font-family:var(--font-display);letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin-right:4px;font-size:.78rem;font-weight:700}.hc-share-btn{font-family:var(--font-body);color:var(--primary-dark);background:var(--surface);border:1px solid var(--line);cursor:pointer;transition:border-color .2s var(--ease), transform .2s var(--ease), color .2s var(--ease);border-radius:999px;padding:7px 14px;font-size:.86rem}.hc-share-btn:hover{border-color:var(--primary-500);color:var(--primary);transform:translateY(-1px)}.hc-callout{border-radius:var(--r-md);border-left:4px solid var(--primary-500);background:var(--mist);padding:clamp(14px,2vw,20px) clamp(16px,2.4vw,22px)}.hc-callout b{font-family:var(--font-display);color:var(--ink);margin-bottom:4px;display:block}.hc-callout p{color:var(--muted);margin:0}.hc-callout.is-success{border-left-color:var(--accent);background:var(--halo)}.hc-callout.is-warn{border-left-color:var(--warn);background:#fdf5ea}.hc-code{margin:0}.hc-code-name{color:var(--muted);background:var(--surface-alt);border:1px solid var(--line);border-radius:var(--r-md) var(--r-md) 0 0;border-bottom:0;padding:6px 12px;font-family:ui-monospace,SFMono-Regular,monospace;font-size:.78rem}.hc-code-name+pre{border-radius:0 0 var(--r-md) var(--r-md)}.hc-figure{margin:0}.hc-figure.is-wide{width:min(100%,1100px);max-width:100vw;margin-inline:calc(50% - 50vw)}@media (min-width:1040px){.hc-figure.is-wide{width:calc(100% + 160px);margin-inline:-80px}}.hc-figure>span{border-radius:var(--r-md);overflow:hidden}.hc-figure figcaption{color:var(--muted);text-align:center;margin-top:.6em;font-size:.85rem}.hc-authorcard{background:var(--surface-alt);border:1px solid var(--line);border-radius:var(--r-lg);align-items:flex-start;gap:18px;margin-top:clamp(28px,4vw,40px);padding:clamp(18px,3vw,26px);display:flex}.hc-authorcard-avatar{border-radius:999px;flex:none;width:64px;height:64px;overflow:hidden}.hc-authorcard-avatar>span{border-radius:999px}.hc-authorcard-kick{letter-spacing:.14em;text-transform:uppercase;color:var(--success);font-size:.72rem;font-weight:700;display:block}.hc-authorcard-text b{font-family:var(--font-display);color:var(--ink);font-size:1.1rem}.hc-authorcard-role{color:var(--muted);margin-bottom:6px;font-size:.9rem;display:block}.hc-authorcard-text p{color:var(--muted);margin:0;font-size:.95rem}.hc-taglist{flex-wrap:wrap;gap:8px;display:flex}.hc-tagpill{color:var(--primary-500);background:var(--mist-2);transition:background .2s var(--ease), color .2s var(--ease);border-radius:999px;padding:4px 12px;font-size:.8rem}.hc-tagpill:hover{background:var(--primary-dark);color:#fff}.hc-artgrid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:clamp(20px,2.5vw,30px);display:grid}.hc-artgrid-3{grid-template-columns:repeat(auto-fill,minmax(260px,1fr))}.hc-artcard{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);transition:transform .3s var(--ease), box-shadow .3s var(--ease), border-color .3s var(--ease);overflow:hidden}.hc-artcard:hover{box-shadow:var(--shadow-lg);border-color:color-mix(in srgb, var(--success) 40%, var(--line));transform:translateY(-4px)}.hc-artcard-link{flex-direction:column;height:100%;display:flex}.hc-artcard-media{background:var(--surface-alt);display:block;position:relative}.hc-catbadge-static{z-index:2;position:absolute;top:12px;left:12px}.hc-artcard-body{flex-direction:column;flex:1;gap:8px;padding:clamp(16px,2vw,22px);display:flex}.hc-artcard-body h3{color:var(--ink);font-size:1.18rem;line-height:1.2}.hc-artcard-body .hc-pmeta{color:var(--muted);-webkit-line-clamp:3;-webkit-box-orient:vertical;font-size:.95rem;display:-webkit-box;overflow:hidden}.hc-artcard-foot{color:var(--muted);justify-content:space-between;align-items:center;margin-top:auto;padding-top:10px;font-size:.85rem;display:flex}.hc-artcard-foot .hc-penq{color:var(--success);font-weight:600}.hc-feature{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--shadow-md);align-items:center;gap:clamp(20px,3vw,40px);display:grid;overflow:hidden}@media (min-width:860px){.hc-feature{grid-template-columns:1.1fr 1fr}}.hc-feature-media{background:var(--surface-alt);display:block}.hc-feature-body{padding:clamp(22px,3vw,40px) clamp(22px,3vw,40px) clamp(22px,3vw,40px) clamp(22px,3vw,10px)}.hc-feature-body h2{margin:10px 0 12px;font-size:clamp(1.5rem,2vw + 1rem,2.2rem);line-height:1.12}.hc-feature-body h2 a:hover{color:var(--primary)}.hc-feature-lead{color:var(--muted);max-width:none}.hc-feature-meta{color:var(--muted);flex-wrap:wrap;gap:8px;margin:14px 0 20px;font-size:.9rem;display:flex}.hc-blogtoolbar .wrap{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;display:flex}.hc-related{background:var(--surface-alt)}.hc-related h2{margin-bottom:clamp(20px,3vw,32px)}@media (prefers-reduced-motion:reduce){.hc-readprog>span,.hc-artcard,.hc-share-btn,.hc-tagpill,.hc-toc-item a,.hc-h-anchor{transition:none}}
.hc-prose{--prose-measure:68ch;--prose-flow:clamp(1.1rem, 1.4vw, 1.35rem);color:var(--ink);font-family:var(--font-body);max-width:var(--prose-measure);font-size:clamp(1.02rem,.4vw + .95rem,1.18rem);line-height:1.75}.hc-prose>*+*{margin-top:var(--prose-flow)}.hc-prose p{color:var(--ink);text-wrap:pretty}.hc-prose h2,.hc-prose h3,.hc-prose h4{font-family:var(--font-display);color:var(--ink);letter-spacing:-.02em;scroll-margin-top:96px;line-height:1.15}.hc-prose h2{border-top:1px solid var(--line);margin-top:clamp(2.4rem,4vw,3.4rem);padding-top:clamp(1rem,2vw,1.6rem);font-size:clamp(1.5rem,1.4vw + 1.1rem,2rem);font-weight:800}.hc-prose h3{margin-top:clamp(1.8rem,3vw,2.6rem);font-size:clamp(1.25rem,.9vw + 1rem,1.55rem);font-weight:700}.hc-prose h4{margin-top:clamp(1.4rem,2.4vw,2rem);font-size:clamp(1.08rem,.6vw + .95rem,1.28rem);font-weight:700}.hc-prose a{color:var(--primary-dark);text-decoration:underline;-webkit-text-decoration-color:color-mix(in srgb, var(--accent) 55%, transparent);text-decoration-color:color-mix(in srgb, var(--accent) 55%, transparent);text-underline-offset:3px;transition:color .2s var(--ease), text-decoration-color .2s var(--ease);text-decoration-thickness:1.5px}.hc-prose a:hover{color:var(--primary);-webkit-text-decoration-color:var(--accent);text-decoration-color:var(--accent)}.hc-prose ul,.hc-prose ol{padding-left:1.4em}.hc-prose li+li{margin-top:.5em}.hc-prose ul>li::marker{color:var(--accent)}.hc-prose ol>li::marker{color:var(--muted);font-family:var(--font-display);font-weight:700}.hc-prose blockquote{border-left:3px solid var(--accent);color:var(--muted);margin-left:0;padding:.4em 0 .4em 1.25em;font-size:1.08em;font-style:italic}.hc-prose blockquote p{color:var(--muted)}.hc-prose :not(pre)>code{background:var(--surface-alt);border:1px solid var(--line);border-radius:var(--r-sm);color:var(--primary-dark);padding:.12em .4em;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.88em}.hc-prose pre{background:var(--ink);color:#e6edf6;border-radius:var(--r-md);padding:clamp(1rem,2vw,1.4rem);font-size:.9rem;line-height:1.6;overflow-x:auto}.hc-prose pre code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.hc-prose hr{background:var(--line);border:0;height:1px;margin-block:clamp(2rem,4vw,3rem)}.hc-prose .hc-prose-tablewrap{overflow-x:auto}.hc-prose table{border-collapse:collapse;width:100%;font-size:.95rem}.hc-prose th,.hc-prose td{text-align:left;border-bottom:1px solid var(--line);padding:.6em .8em}.hc-prose th{font-family:var(--font-display);color:var(--ink);background:var(--surface-alt);font-weight:700}.hc-prose figure{margin-inline:0}.hc-prose figure img{border-radius:var(--r-md);width:100%}.hc-prose figcaption{color:var(--muted);text-align:center;margin-top:.6em;font-size:.85rem}
