.progress{position:fixed;top:var(--admin-offset);left:0;height:2px;width:0;background:var(--accent);z-index:calc(var(--z-header) + 1);transition:width 80ms linear}
.breadcrumbs{padding-block:var(--space-5) 0;font-family:var(--font-mono);font-size:var(--fs-200);color:var(--muted)}
.breadcrumbs ol{display:flex;flex-wrap:wrap;gap:.5rem}
.breadcrumbs li:not(:last-child)::after{content:"/";margin-left:.5rem;color:var(--rule-strong)}
.breadcrumbs [aria-current]{color:var(--ink-soft)}
.breadcrumbs a{color:var(--muted)}
.breadcrumbs a:hover{color:var(--accent)}
.article-head{padding-block:var(--space-5) var(--space-6);max-width:calc(var(--w-text) + 8ch)}
.article-head .pill{margin-bottom:.9rem}
.article-title{font-size:var(--fs-1100);letter-spacing:-.03em;line-height:1.08}
.article-deck{margin-top:var(--space-4);font-size:clamp(1.125rem,.5vw + 1rem,1.3125rem);line-height:1.5;color:var(--muted);text-wrap:balance}
.byline{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-4);margin-top:var(--space-5);padding-top:var(--space-4);border-top:var(--border)}
.avatar{display:grid;place-items:center;width:42px;height:42px;border-radius:50%;background:var(--cat);color:var(--paper);font-family:var(--font-display);font-size:var(--fs-400);font-weight:600;flex-shrink:0;overflow:hidden}
.avatar img{border-radius:50%}
.byline__text{display:flex;flex-direction:column;gap:.2rem}
.byline__name{font-size:var(--fs-500);font-weight:600;color:var(--ink)}
.byline__dates{font-family:var(--font-mono);font-size:var(--fs-200);color:var(--muted);display:flex;flex-wrap:wrap;gap:.9rem}
.byline__dates span{position:relative;padding-left:.9rem}
.byline__dates span::before{content:"";position:absolute;left:0;top:50%;width:3px;height:3px;background:var(--rule-strong);border-radius:50%;transform:translateY(-50%)}
.figure{margin-block:0 var(--space-6)}
.figure img,.figure .ph{width:100%;aspect-ratio:16/9;object-fit:cover;color:var(--cat);border-radius:var(--radius);background:var(--surface-alt)}
.figure figcaption{margin-top:.6rem;font-size:var(--fs-300);color:var(--muted);line-height:1.5;max-width:70ch}
.article-layout{display:grid;grid-template-columns:minmax(0,1fr) 260px;gap:var(--space-8);padding-bottom:var(--space-9)}
.article-body{max-width:var(--w-text)}
.prose{font-size:1.1875rem;line-height:var(--lh-read);color:var(--ink-soft)}
.prose > * + *{margin-top:var(--space-5)}
.prose h2{margin-top:var(--space-8);font-size:var(--fs-900);letter-spacing:-.025em;scroll-margin-top:8rem}
.prose h3{margin-top:var(--space-7);font-size:var(--fs-800);letter-spacing:-.02em;scroll-margin-top:8rem}
.prose h4{margin-top:var(--space-6);scroll-margin-top:8rem}
.prose h2 + p,.prose h3 + p,.prose h4 + p{margin-top:var(--space-4)}
.prose a{color:var(--accent);text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:1px}
.prose strong{color:var(--ink);font-weight:600}
.prose ul,.prose ol{padding-left:1.4rem;display:flex;flex-direction:column;gap:.6rem}
.prose ul{list-style:disc}
.prose ol{list-style:decimal}
.prose li::marker{color:var(--cat)}
.prose blockquote{margin-block:var(--space-7);padding-left:var(--space-5);border-left:3px solid var(--cat);font-family:var(--font-display);font-size:clamp(1.25rem,1vw + 1rem,1.5rem);line-height:1.35;letter-spacing:-.02em;color:var(--ink)}
.prose blockquote p{margin:0}
.prose blockquote cite,.prose blockquote .wp-block-quote__citation{display:block;margin-top:.8rem;font-family:var(--font-mono);font-size:var(--fs-200);font-style:normal;letter-spacing:var(--ls-mono);text-transform:uppercase;color:var(--muted)}
.prose figure{margin-block:var(--space-7)}
.prose figure img{border-radius:var(--radius)}
.prose figcaption{margin-top:.6rem;font-size:var(--fs-300);color:var(--muted)}
.prose code{font-family:var(--font-mono);font-size:.875em;background:var(--surface-alt);padding:.15em .4em;border-radius:var(--radius-sm)}
.prose pre{margin-block:var(--space-6);padding:var(--space-5);background:var(--surface);border-radius:var(--radius);overflow-x:auto;font-size:var(--fs-400);line-height:1.6}
.prose pre code{background:none;padding:0}
.prose table{margin-block:var(--space-7);width:100%}
.prose .wp-block-table{margin-block:var(--space-7);overflow-x:auto}
.prose .wp-block-table table{margin-block:0}
.prose table th{text-align:left;padding:.7rem .8rem;background:var(--ink);color:var(--paper);font-family:var(--font-mono);font-size:var(--fs-200);font-weight:500;text-transform:uppercase;letter-spacing:.06em}
.prose table td{padding:.7rem .8rem;border-bottom:var(--border);vertical-align:top;font-size:var(--fs-400)}
.prose table tbody tr:nth-child(odd) td{background:var(--surface)}
.prose .wp-block-pullquote,.prose .callout{margin-block:var(--space-7);padding:var(--space-5);background:var(--surface);border-left:3px solid var(--ink);border-radius:0 var(--radius) var(--radius) 0}
.tags{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:var(--space-7);padding-top:var(--space-5);border-top:var(--border)}
.tag{padding:.35rem .75rem;border:var(--border);border-radius:100px;font-family:var(--font-mono);font-size:var(--fs-200);color:var(--ink-soft)}
.tag:hover{border-color:var(--ink);color:var(--ink)}
.share{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem;margin-top:var(--space-5)}
.share__label{font-family:var(--font-mono);font-size:var(--fs-200);text-transform:uppercase;letter-spacing:var(--ls-mono);color:var(--muted);margin-right:.35rem}
.share a,.share button{display:grid;place-items:center;min-width:36px;height:36px;padding-inline:.6rem;border:var(--border);border-radius:var(--radius);font-family:var(--font-mono);font-size:var(--fs-200);color:var(--ink-soft)}
.share a:hover,.share button:hover{border-color:var(--ink);color:var(--ink)}
.author-card{display:grid;grid-template-columns:56px minmax(0,1fr);gap:var(--space-4);margin-top:var(--space-7);padding:var(--space-5);border:var(--border);border-radius:var(--radius)}
.author-card .avatar{width:56px;height:56px;font-size:var(--fs-600)}
.author-card__name{font-size:var(--fs-600)}
.author-card__role{font-family:var(--font-mono);font-size:var(--fs-200);text-transform:uppercase;letter-spacing:var(--ls-mono);color:var(--muted);margin-top:.25rem}
.author-card__bio{margin-top:.7rem;font-size:var(--fs-400);line-height:1.6;color:var(--ink-soft)}
.author-card__link{display:inline-block;margin-top:.7rem;font-family:var(--font-mono);font-size:var(--fs-200);text-transform:uppercase;letter-spacing:var(--ls-mono);color:var(--accent)}
.post-nav{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-5);margin-top:var(--space-7);border-top:var(--border);padding-top:var(--space-5)}
.post-nav__item{display:flex;flex-direction:column;gap:.4rem}
.post-nav__item--next{text-align:right}
.post-nav__dir{font-family:var(--font-mono);font-size:var(--fs-200);text-transform:uppercase;letter-spacing:var(--ls-mono);color:var(--muted)}
.post-nav__title{font-family:var(--font-display);font-size:var(--fs-500);font-weight:700;line-height:1.3;color:var(--ink);letter-spacing:var(--ls-snug)}
.post-nav a:hover .post-nav__title{color:var(--accent)}
.article-side{position:sticky;top:calc(var(--header-h) + var(--admin-offset) + var(--space-5));align-self:start;display:flex;flex-direction:column;gap:var(--space-6);max-height:calc(100dvh - var(--header-h) - var(--space-6));overflow-y:auto;scrollbar-width:none}
.article-side::-webkit-scrollbar{display:none}
.side-title{font-family:var(--font-mono);font-size:var(--fs-200);font-weight:500;text-transform:uppercase;letter-spacing:var(--ls-mono);color:var(--ink);padding-bottom:.6rem;border-bottom:1px solid var(--ink);margin-bottom:var(--space-4)}
.toc li + li{margin-top:.7rem}
.toc a{display:block;font-size:var(--fs-400);line-height:1.4;color:var(--muted);border-left:2px solid var(--rule);padding-left:.75rem}
.toc a:hover{color:var(--ink)}
.toc .toc--sub{padding-left:1.5rem}
.toc a.is-active{color:var(--ink);border-left-color:var(--cat);font-weight:500}
.side-list li + li{margin-top:var(--space-4);padding-top:var(--space-4);border-top:var(--border)}
.side-list a{font-size:var(--fs-400);font-weight:500;color:var(--ink);line-height:1.4}
.side-list a:hover{color:var(--accent)}
.side-list time{display:block;margin-top:.3rem;font-family:var(--font-mono);font-size:var(--fs-200);color:var(--muted)}
.page-body{padding-block:var(--space-6) var(--space-9)}
.error-404{padding-block:var(--space-8) var(--space-9);max-width:60ch}
.error-404__code{font-family:var(--font-mono);font-size:var(--fs-200);letter-spacing:var(--ls-mono);color:var(--accent)}
.error-404__text{margin-top:var(--space-4);color:var(--muted)}
.error-404 .search-form{margin-top:var(--space-5);max-width:440px}
.comments{padding-block:var(--space-7) var(--space-9);max-width:var(--w-text)}
.comment-list{margin-top:var(--space-5)}
.comment-list li{padding-block:var(--space-5);border-top:var(--border)}
.comment-list .children{padding-left:var(--space-5)}
.comment-meta{font-family:var(--font-mono);font-size:var(--fs-200);color:var(--muted);margin-bottom:.5rem}
.comment-form{margin-top:var(--space-6);display:flex;flex-direction:column;gap:var(--space-4)}
.comment-form input[type=text],.comment-form input[type=email],.comment-form input[type=url],.comment-form textarea{width:100%;padding:.7rem .9rem;border:1px solid var(--rule-strong);border-radius:var(--radius);background:var(--paper)}
.comment-form label{display:block;font-size:var(--fs-400);font-weight:500;color:var(--ink);margin-bottom:.35rem}
.comment-form .submit{display:inline-flex;align-items:center;padding:.7rem 1.15rem;background:var(--ink);color:var(--paper);border-radius:var(--radius);font-size:var(--fs-400);font-weight:600;width:max-content}
/* Contact Form 7 */
.wpcf7{margin-top:var(--space-6)}
.wpcf7 form p{margin-top:0;margin-bottom:var(--space-4)}
.wpcf7 label{display:block;font-size:var(--fs-400);font-weight:500;color:var(--ink);margin-bottom:.35rem}
.wpcf7 .req{color:var(--accent)}
.wpcf7 input[type=text],.wpcf7 input[type=email],.wpcf7 input[type=url],.wpcf7 input[type=tel],.wpcf7 input[type=date],.wpcf7 input[type=number],.wpcf7 select,.wpcf7 textarea{width:100%;padding:.7rem .9rem;background:var(--paper);border:1px solid var(--rule-strong);border-radius:var(--radius);font-family:var(--font-body);font-size:var(--fs-500);color:var(--ink);line-height:1.5}
.wpcf7 select{appearance:none;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8' fill='none' stroke='%236b7280' stroke-width='1.6'%3E%3Cpath d='m1 1 5 5 5-5'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right .9rem center;background-size:12px;padding-right:2.4rem}
.wpcf7 textarea{min-height:190px;resize:vertical}
.wpcf7 input:focus,.wpcf7 select:focus,.wpcf7 textarea:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-tint)}
.wpcf7 .form-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 var(--space-4)}
.wpcf7 .cf-consent label,.wpcf7 .wpcf7-acceptance label{display:flex;align-items:flex-start;gap:.6rem;font-weight:400;font-size:var(--fs-400);color:var(--ink-soft);line-height:1.55}
.wpcf7 .wpcf7-list-item{margin:0}
.wpcf7 input[type=checkbox]{width:auto;margin-top:.25rem;accent-color:var(--accent)}
.wpcf7 input[type=submit]{width:auto;padding:.75rem 1.4rem;background:var(--ink);color:var(--paper);border:0;border-radius:var(--radius);font-size:var(--fs-400);font-weight:600;cursor:pointer;transition:background var(--dur) var(--ease)}
.wpcf7 input[type=submit]:hover{background:var(--accent)}
.wpcf7 .wpcf7-spinner{margin-left:.6rem}
.wpcf7 .wpcf7-not-valid{border-color:#b91c1c}
.wpcf7 .wpcf7-not-valid-tip{margin-top:.35rem;font-size:var(--fs-300);color:#b91c1c}
.prose .wpcf7 form .wpcf7-response-output{margin:var(--space-5) 0 0;padding:.8rem 1rem;border:0;border-left:3px solid var(--rule-strong);border-radius:0 var(--radius) var(--radius) 0;background:var(--surface);font-size:var(--fs-400);line-height:1.55;color:var(--ink-soft)}
.prose .wpcf7 form.sent .wpcf7-response-output{border-left-color:var(--accent);background:var(--accent-tint);color:var(--ink)}
.prose .wpcf7 form.invalid .wpcf7-response-output,.prose .wpcf7 form.unaccepted .wpcf7-response-output,.prose .wpcf7 form.failed .wpcf7-response-output,.prose .wpcf7 form.spam .wpcf7-response-output{border-left-color:#b91c1c;background:#fef2f2;color:#991b1b}
@media (max-width:640px){.wpcf7 .form-row{grid-template-columns:minmax(0,1fr)}}
@media (max-width:1040px){
.article-layout{grid-template-columns:minmax(0,1fr);gap:var(--space-7)}
.article-side{position:static;max-height:none;flex-direction:row;flex-wrap:wrap;gap:var(--space-6);border-top:var(--border);padding-top:var(--space-6)}
.article-side > *{flex:1 1 260px}
.toc{display:none}
}
@media (max-width:640px){
.prose{font-size:1.0625rem}
.prose table{display:block;overflow-x:auto;white-space:nowrap}
.post-nav{grid-template-columns:minmax(0,1fr)}
.post-nav__item--next{text-align:left}
.author-card{grid-template-columns:minmax(0,1fr)}
}
