.nafnav-single{--nafnav-single-article: 42rem;--nafnav-single-rail: 15rem;--nafnav-single-gap: clamp(2.5rem, 4vw, 4rem);--nafnav-single-measure: 68ch;--nafnav-single-gutter: clamp(1.25rem, 4vw, 2rem);--nafnav-single-top: 6rem}.nafnav-read-progress{position:fixed;inset:0 0 auto;z-index:110;height:3px;pointer-events:none}.nafnav-read-progress__bar{display:block;height:100%;background:var(--naf-accent);transform:scaleX(0);transform-origin:0 50%;will-change:transform}.nafnav-single__main{display:grid;grid-template-columns:minmax(0,1fr);row-gap:var(--naf-space-8);max-width:calc(var(--nafnav-single-article) + 2 * var(--nafnav-single-gutter));margin-inline:auto}.nafnav-single__article{grid-column:1;padding-inline:var(--nafnav-single-gutter);min-width:0}.nafnav-single .nafnav-breadcrumb{grid-column:1;margin:0;padding-inline:var(--nafnav-single-gutter)}.nafnav-post-rail{display:none}.nafnav-post-head{margin:0 0 var(--naf-space-10)}.nafnav-post-cat{display:inline-block;margin-bottom:var(--naf-space-3);color:var(--naf-accent-text);font-size:var(--naf-text-13);font-weight:600;letter-spacing:.05em;text-decoration:none}.nafnav-post-cat:hover,.nafnav-post-cat:focus-visible{color:var(--naf-accent-text-hover);text-decoration:underline;text-underline-offset:4px}.nafnav-post-title{margin:0 0 var(--naf-space-4);color:var(--naf-text-primary);font-family:var(--naf-font-serif);font-size:clamp(1.75rem,1.3rem + 2.2vw,2.625rem);font-weight:700;line-height:1.32;letter-spacing:var(--naf-tracking-tight);text-wrap:pretty}.nafnav-post-dek{max-width:36ch;margin:0 0 var(--naf-space-6);color:var(--naf-text-secondary);font-size:var(--naf-text-16);line-height:1.8;text-wrap:pretty}.nafnav-post-meta{display:flex;flex-wrap:wrap;align-items:center;gap:var(--naf-space-2) var(--naf-space-4);color:var(--naf-text-muted);font-size:var(--naf-text-13);line-height:1.6;font-variant-numeric:tabular-nums}.nafnav-post-meta__author{display:inline-flex;align-items:center;gap:var(--naf-space-2);font-weight:600;color:var(--naf-text-secondary)}.nafnav-post-meta__author a{color:inherit;text-decoration:none}.nafnav-post-meta__author a:hover,.nafnav-post-meta__author a:focus-visible{color:var(--naf-accent-text);text-decoration:underline;text-underline-offset:3px}.nafnav-post-meta__avatar{display:block;width:1.5rem;height:1.5rem;border-radius:50%;background:var(--naf-surface-2)}.nafnav-post-cover{margin-top:var(--naf-space-8);overflow:hidden;border-radius:2px;background:var(--naf-surface-2)}.nafnav-post-cover__img{display:block;width:100%;aspect-ratio:2 / 1;object-fit:cover}.nafnav-post-head:not(.has-cover) .nafnav-post-title{font-size:clamp(1.875rem,1.35rem + 2.5vw,2.875rem)}.nafnav-post-rail__inner{position:sticky;top:var(--nafnav-single-top);max-height:calc(100vh - var(--nafnav-single-top) - 2rem);overflow:auto;scrollbar-width:thin}.nafnav-post-rail__title{margin:0 0 var(--naf-space-3);color:var(--naf-text-muted);font-size:var(--naf-text-12);letter-spacing:.08em}.nafnav-post-rail__track{position:relative;border-inline-start:1px solid var(--naf-border)}.nafnav-post-rail__list{margin:0;padding:0;list-style:none}.nafnav-post-rail__list a{display:block;padding:.375rem 0 .375rem var(--naf-space-4);color:var(--naf-text-muted);font-size:var(--naf-text-13);line-height:1.55;text-decoration:none;transition:color var(--naf-duration-fast) var(--naf-ease)}.nafnav-post-rail__list a:hover,.nafnav-post-rail__list a:focus-visible{color:var(--naf-text-primary)}.nafnav-post-rail__list a.is-active{color:var(--naf-accent-text);font-weight:600}.nafnav-post-rail__item--sub a{padding-inline-start:var(--naf-space-8);font-size:var(--naf-text-12)}.nafnav-post-rail__spine{position:absolute;inset-inline-start:-1px;top:0;width:2px;height:0;background:var(--naf-accent);transition:top var(--naf-duration-base) var(--naf-ease),height var(--naf-duration-base) var(--naf-ease)}@media (prefers-reduced-motion: reduce){.nafnav-post-rail__spine{transition:none}}.nafnav-post-rail__top{margin-top:var(--naf-space-5);padding:0;border:0;background:none;color:var(--naf-text-muted);font-size:var(--naf-text-12);cursor:pointer}.nafnav-post-rail__top:hover,.nafnav-post-rail__top:focus-visible{color:var(--naf-accent-text)}.nafnav-post-body .nafnav-prose{max-width:var(--nafnav-single-measure);font-size:var(--naf-text-17);line-height:1.9;color:var(--naf-text-primary)}.nafnav-post-body .nafnav-prose h2{margin-top:var(--naf-space-10);padding-bottom:0;border-bottom:0;font-family:var(--naf-font-serif);font-size:var(--naf-text-24);font-weight:700;scroll-margin-top:calc(var(--nafnav-single-top) + .5rem)}.nafnav-post-body .nafnav-prose h3{margin-top:var(--naf-space-8);font-family:var(--naf-font-serif);font-size:var(--naf-text-18);font-weight:600;scroll-margin-top:calc(var(--nafnav-single-top) + .5rem)}.nafnav-post-tags{display:flex;flex-wrap:wrap;align-items:center;gap:var(--naf-space-2);margin-top:var(--naf-space-10)}.nafnav-post-tags__title{display:inline-flex;align-items:center;gap:var(--naf-space-1);margin-right:var(--naf-space-2);color:var(--naf-text-muted);font-size:var(--naf-text-13)}.nafnav-post-tags a{display:inline-flex;align-items:center;padding:.25rem .625rem;border-radius:var(--naf-radius-sm);background:var(--naf-surface-2);color:var(--naf-text-secondary);font-size:var(--naf-text-12);text-decoration:none;transition:color var(--naf-duration-fast) var(--naf-ease),background-color var(--naf-duration-fast) var(--naf-ease)}.nafnav-post-tags a:hover,.nafnav-post-tags a:focus-visible{color:var(--naf-accent-text);background:var(--naf-accent-soft)}.nafnav-post-copyright{display:flex;flex-wrap:wrap;gap:var(--naf-space-2) var(--naf-space-4);margin-top:var(--naf-space-6);padding:var(--naf-space-4) var(--naf-space-5);border-left:2px solid var(--naf-border-strong);color:var(--naf-text-secondary);font-size:var(--naf-text-12);line-height:1.7}.nafnav-post-copyright>span{font-weight:600;color:var(--naf-text-secondary)}.nafnav-nav-pair{display:grid;grid-template-columns:1fr 1fr;margin-top:var(--naf-space-12);border-block:1px solid var(--naf-border)}.nafnav-nav-card{display:flex;flex-direction:column;gap:var(--naf-space-1);padding:var(--naf-space-5) var(--naf-space-4);border:0;border-radius:0;background:none;color:inherit;text-decoration:none;transition:background-color var(--naf-duration-fast) var(--naf-ease)}.nafnav-nav-card+.nafnav-nav-card{border-inline-start:1px solid var(--naf-border)}.nafnav-nav-card:hover,.nafnav-nav-card:focus-visible{background:var(--naf-surface-sunken);color:inherit;text-decoration:none}.nafnav-nav-label{color:var(--naf-text-muted);font-size:var(--naf-text-12)}.nafnav-nav-title{margin:0;font-family:var(--naf-font-serif);font-size:var(--naf-text-15);font-weight:600;line-height:1.6}.nafnav-nav-card--empty .nafnav-nav-title{color:var(--naf-text-muted);font-weight:400}.nafnav-nav-card:hover .nafnav-nav-title,.nafnav-nav-card:focus-visible .nafnav-nav-title{color:var(--naf-accent-text)}.nafnav-nav-card--empty:hover{background:none}.nafnav-nav-card--empty:hover .nafnav-nav-title{color:var(--naf-text-muted)}.nafnav-single__article>h4{display:flex;align-items:center;gap:var(--naf-space-2);margin:var(--naf-space-10) 0 var(--naf-space-5);color:var(--naf-text-primary);font-size:var(--naf-text-18)!important;font-weight:700}.nafnav-single__article>h4 .iconfont{color:var(--naf-accent)}.nafnav-single__article>.posts-row{--this-card-padding: var(--naf-space-4)}.nafnav-single__article>.nafnav-comments{margin-top:var(--naf-space-10)}@media (min-width: 1080px){.nafnav-single__main.has-rail{grid-template-columns:var(--nafnav-single-article) var(--nafnav-single-rail);column-gap:var(--nafnav-single-gap);max-width:calc(var(--nafnav-single-article) + var(--nafnav-single-gap) + var(--nafnav-single-rail))}.nafnav-single__main.has-rail .nafnav-single__article,.nafnav-single__main.has-rail .nafnav-breadcrumb{padding-inline:0}.nafnav-single__main.has-rail .nafnav-post-rail{display:block;grid-column:2;grid-row:2;min-width:0}}@media (max-width: 767.98px){.nafnav-post-cover__img{aspect-ratio:4 / 3}.nafnav-post-title{font-size:clamp(1.5rem,6.4vw,1.875rem)}.nafnav-post-head:not(.has-cover) .nafnav-post-title{font-size:clamp(1.625rem,7vw,2rem)}.nafnav-post-body .nafnav-prose h2{margin-top:var(--naf-space-8)}.nafnav-nav-pair{grid-template-columns:1fr}.nafnav-nav-card+.nafnav-nav-card{border-inline-start:0;border-top:1px solid var(--naf-border)}}
