.article-head>*+*{margin-top:var(--space-3)}.article-head h1{margin-top:var(--space-3);max-width:24ch}.article-dek{font-size:var(--step-1);color:var(--color-text-muted);max-width:var(--measure);line-height:1.5}.byline{column-gap:var(--space-4);row-gap:var(--space-1);font-size:var(--step--1);color:var(--color-text-muted);line-height:var(--leading-ui);padding-block:var(--space-3);border-block:var(--border-hair) solid var(--color-border);flex-wrap:wrap;display:flex}.byline__who{color:var(--color-text);flex-basis:100%}.byline__who strong{font-weight:var(--weight-semibold)}.byline a{color:var(--color-text-muted)}.byline a:hover{color:var(--color-link-hover)}.byline time{font-variant-numeric:tabular-nums}.byline__item{align-items:center;gap:var(--space-1);display:inline-flex}.byline__item svg{flex:none;width:15px;height:15px}.toc{border:var(--border-hair) solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);font-size:var(--step--1);line-height:var(--leading-ui)}.toc>summary{cursor:pointer;padding:var(--space-3) var(--space-4);font-weight:var(--weight-semibold);justify-content:space-between;align-items:center;list-style:none;display:flex}.toc>summary::-webkit-details-marker{display:none}.toc>summary:after{content:"+";font-family:var(--font-mono);color:var(--color-text-muted);font-size:1.1em}.toc[open]>summary:after{content:"−"}.toc ol{padding:0 var(--space-4) var(--space-4) var(--space-4);counter-reset:toc;margin:0;list-style:none}.toc>ol>li{counter-increment:toc;grid-template-columns:1.6em 1fr;display:grid}.toc>ol>li:before{content:counter(toc);color:var(--color-text-muted);font-family:var(--font-mono);padding-top:.32em;font-size:.85em}.toc li{padding-block:.2em}.toc ol ol{grid-column:2;padding:.15em 0 0}.toc ol ol li{border-left:1px solid var(--color-border);padding-left:.85em}.toc a{color:var(--color-text);text-decoration:none}.toc a:hover{color:var(--color-link-hover);text-decoration:underline}.toc a[aria-current=true]{color:var(--color-accent);font-weight:var(--weight-semibold)}.toc__title{padding:var(--space-3) var(--space-4);font-weight:var(--weight-semibold)}.toc__footer{padding:var(--space-3) var(--space-4);border-top:1px solid var(--color-border)}.article-grid{gap:var(--space-5);padding-block:var(--space-5) var(--space-8);max-width:calc(var(--width-content) + 2 * var(--gutter));grid-template-columns:minmax(0,1fr);display:grid}.toc--rail{display:none}@media (width>=64em){.article-grid{max-width:var(--width-wide);grid-template-columns:minmax(0, var(--width-content)) var(--width-rail);column-gap:var(--space-8);justify-content:center;row-gap:var(--space-5);grid-template-areas:"head.""body rail"}.article-grid>.article-head{grid-area:head}.article-grid>.article-rail{grid-area:rail}.article-grid>.article-body{grid-area:body}.toc--inline{display:none}.toc--rail{top:var(--space-5);max-height:calc(100vh - 2 * var(--space-5));display:block;position:sticky;overflow:auto}}.sources{border-top:var(--border-rule) solid var(--color-rule);padding-top:var(--space-3);margin-top:var(--space-7)}.sources h2{font-size:var(--step-2)}.sources__intro{color:var(--color-text-muted);font-size:var(--step--1);margin-top:var(--space-2)}.sources ol{counter-reset:src;margin:var(--space-4) 0 0;font-size:var(--step--1);line-height:var(--leading-ui);padding:0;list-style:none}.sources li{counter-increment:src;gap:0 var(--space-2);padding-block:var(--space-3);border-bottom:1px solid var(--color-border);grid-template-columns:2.2em 1fr;display:grid}.sources li:before{content:counter(src);font-family:var(--font-mono);color:var(--color-text-muted);text-align:right}.sources li:target{background:var(--color-accent-wash)}.source__title{font-weight:var(--weight-semibold)}.source__meta{color:var(--color-text-muted);grid-column:2}.source__type{font-size:.78em;font-weight:var(--weight-semibold);text-transform:uppercase;letter-spacing:.05em;border:1px solid var(--color-border-control);border-radius:var(--radius-sm);color:var(--color-text-muted);margin-right:var(--space-1);padding:.05em .45em;display:inline-block}.related{margin-top:var(--space-7)}.related ul{gap:0;margin:0;padding:0;list-style:none;display:grid}.related li{padding-block:var(--space-3);border-bottom:1px solid var(--color-border);gap:.15rem;display:grid;position:relative}.related a{font-family:var(--font-serif);font-weight:var(--weight-bold);font-size:var(--step-1);color:var(--color-text);line-height:1.3;text-decoration:none}.related a:after{content:"";position:absolute;inset:0}.related li:hover a{text-decoration:underline;text-decoration-color:var(--color-accent)}.related span{font-size:var(--step--2);color:var(--color-text-muted)}.article-end-note{margin-top:var(--space-6);padding-top:var(--space-4);border-top:1px solid var(--color-border);font-size:var(--step--2);color:var(--color-text-muted);max-width:var(--measure);line-height:var(--leading-ui)}.article-end-note>*+*{margin-top:var(--space-2)}.article-end-note a{color:var(--color-text-muted)}.article-grid--no-rail{max-width:calc(var(--width-content) + 2 * var(--gutter))}@media (width>=64em){.article-grid--no-rail{grid-template-columns:minmax(0, var(--width-content));max-width:calc(var(--width-content) + 2 * var(--gutter));grid-template-areas:"head""body"}}.article-head .breadcrumbs{margin-bottom:var(--space-2)}.post-cats a{color:inherit;text-decoration:none}.post-cats a:hover{text-decoration:underline}.toc--inline>details>summary{cursor:pointer;padding:var(--space-3) var(--space-4);font-weight:var(--weight-semibold);justify-content:space-between;align-items:center;list-style:none;display:flex}.toc--inline>details>summary::-webkit-details-marker{display:none}.toc--inline>details>summary:after{content:"+";font-family:var(--font-mono);color:var(--color-text-muted);font-size:1.1em}.toc--inline>details[open]>summary:after{content:"−"}.toc .toc__list{counter-reset:toc}.toc .toc__list>li{counter-increment:toc;grid-template-columns:1.6em 1fr;display:grid}.toc .toc__list>li:before{content:counter(toc);color:var(--color-text-muted);font-family:var(--font-mono);padding-top:.32em;font-size:.85em}.prose .toc ol,.prose .toc li{margin:0}.prose .toc li+li{margin-top:0}.prose .toc ol{padding:0 var(--space-4) var(--space-4) var(--space-4);list-style:none}.prose .toc ol ol{padding:.15em 0 0}.prose .toc li::marker{content:none}.related-post-date{font-size:var(--step--2);color:var(--color-text-muted)}.page-grid{padding-block:var(--space-5) var(--space-8);max-width:calc(var(--width-content) + 2 * var(--gutter))}.page-grid>.entry-content{margin-top:var(--space-5)}.page-grid>.contact-form{margin-top:var(--space-6)}.contact-form{gap:var(--space-4);max-width:36rem;display:grid}.contact-form fieldset{border:0;margin:0;padding:0}.contact-form legend{font-size:var(--step--1);font-weight:var(--weight-semibold);margin-bottom:var(--space-2)}.contact-form .row{gap:var(--space-4);grid-template-columns:repeat(auto-fit,minmax(min(100%,13rem),1fr));display:grid}.contact-form label{gap:var(--space-1);font-size:var(--step--1);font-weight:var(--weight-semibold);display:grid}.contact-form input,.contact-form textarea{width:100%;min-height:44px;padding:var(--space-2) var(--space-3);background:var(--color-field);border:var(--border-hair) solid var(--color-border-control);border-radius:var(--radius-sm);font-size:max(16px, var(--step-0));font-weight:var(--weight-regular)}.contact-form textarea{resize:vertical;min-height:9rem}.contact-form input:hover,.contact-form textarea:hover{border-color:var(--color-text)}.contact-form input:focus-visible,.contact-form textarea:focus-visible{outline:3px solid var(--color-focus);outline-offset:0;border-color:var(--color-focus)}.contact-form button{min-height:44px;padding:0 var(--space-5);border-radius:var(--radius-sm);background:var(--color-accent);color:#fff;font-weight:var(--weight-semibold);font-size:var(--step--1);cursor:pointer;border:0;justify-self:start;align-items:center;display:inline-flex}.contact-form button:hover{background:var(--color-accent-hover)}.contact-form .hp{width:1px;height:1px;position:absolute;left:-10000px;overflow:hidden}.contact-form .form-status{padding:var(--space-3) var(--space-4);border-radius:var(--radius-sm);background:var(--color-info-bg);font-size:var(--step--1)}
