/* ==========================================================================
   AskAsif — Article / editorial template
   ========================================================================== */
.progress { position: fixed; inset-inline: 0; inset-block-start: 0; z-index: 60; block-size: 3px; background: transparent; }
.progress span { display: block; block-size: 100%; background: var(--accent); transform: scaleX(0); transform-origin: left; transition: transform 80ms linear; }
[dir="rtl"] .progress span { transform-origin: right; }

.article-head { padding-block: var(--s-8) var(--s-6); }
.crumbs ol { display: flex; flex-wrap: wrap; gap: .4rem; font-size: var(--fs-xs); color: var(--text-muted); list-style: none; padding: 0; margin: 0 0 var(--s-6); }
.crumbs li + li::before { content: "/"; margin-inline-end: .4rem; opacity: .5; }
.crumbs a { text-decoration: none; }
.crumbs a:hover { color: var(--text); text-decoration: underline; }
.crumbs [aria-current] { color: var(--text); }
.article-head h1 { font-size: var(--fs-3xl); line-height: 1.04; letter-spacing: -0.03em; font-weight: 400; max-width: 20ch; margin-block: var(--s-4) var(--s-5); }
html[lang="ur"] .article-head h1 { line-height: 1.75; letter-spacing: 0; font-weight: 700; }
.dek { font-size: var(--fs-lg); line-height: 1.5; color: var(--text-muted); max-width: 46rem; }
.byline { display: flex; flex-wrap: wrap; align-items: center; gap: var(--s-3) var(--s-5); margin-block-start: var(--s-6); padding-block-start: var(--s-5); border-block-start: 1px solid var(--line); font-size: var(--fs-sm); }
.avatar { inline-size: 44px; block-size: 44px; border-radius: 50%; background: var(--ink-900); color: var(--saffron-300); display: grid; place-items: center; font: 500 .95rem var(--font-display); flex-shrink: 0; }
.byline__who { display: flex; align-items: center; gap: var(--s-3); }
.byline__who strong { display: block; }
.byline__meta { display: flex; flex-wrap: wrap; gap: var(--s-2) var(--s-4); color: var(--text-muted); }
.byline__meta .verify { color: var(--text-muted); }

.article-hero { margin-block-end: var(--s-8); }
.article-hero .art { aspect-ratio: 21/9; border-radius: var(--r-xl); }
.article-hero figcaption { font-size: var(--fs-xs); color: var(--text-muted); margin-block-start: var(--s-3); }

.article-layout { display: grid; gap: var(--s-7); }
@media (min-width: 1100px) {
  .article-layout { grid-template-columns: 14rem minmax(0, var(--w-content)) 1fr; gap: var(--s-8); }
}
.toc { position: sticky; inset-block-start: 6rem; align-self: start; font-size: var(--fs-sm); }
.toc h2 { font: 600 var(--fs-xs) var(--font-mono); letter-spacing: .1em; text-transform: uppercase; color: var(--text-muted); margin-block-end: var(--s-3); }
html[lang="ur"] .toc h2 { font-family: var(--font-sans); letter-spacing: 0; }
.toc ol { list-style: none; padding: 0; margin: 0; border-inline-start: 1px solid var(--line); }
.toc a { display: block; padding: .4rem 0 .4rem var(--s-4); margin-inline-start: -1px; border-inline-start: 2px solid transparent; text-decoration: none; color: var(--text-muted); transition: color var(--t-fast), border-color var(--t-fast); }
.toc a:hover { color: var(--text); }
.toc a[aria-current] { color: var(--text); border-inline-start-color: var(--accent); font-weight: 600; }
@media (max-width: 1099px) {
  .toc { position: static; padding: var(--s-4) var(--s-5); border-radius: var(--r-md); background: var(--bg-raised); border: 1px solid var(--line); }
}
.share-rail { position: sticky; inset-block-start: 6rem; align-self: start; display: none; flex-direction: column; gap: var(--s-2); align-items: start; }
@media (min-width: 1100px) { .share-rail { display: flex; } }
.share-rail .mono { color: var(--text-muted); margin-block-end: var(--s-2); }

/* Prose */
.prose { font-size: var(--fs-md); line-height: var(--lh-body); }
.prose > * + * { margin-block-start: 1.25em; }
.prose h2 { font-size: var(--fs-xl); margin-block-start: 2.2em; line-height: 1.2; }
html[lang="ur"] .prose h2 { line-height: 1.9; }
.prose h3 { font-size: var(--fs-lg); margin-block-start: 1.8em; }
.prose p:first-of-type::first-letter { font-family: var(--font-display); float: inline-start; font-size: 3.6em; line-height: .85; padding-inline-end: .1em; padding-block-start: .08em; color: var(--accent-ink); }
html[lang="ur"] .prose p:first-of-type::first-letter { float: none; font-size: inherit; padding: 0; color: inherit; }
.prose ul, .prose ol { padding-inline-start: 1.3em; }
.prose li + li { margin-block-start: .4em; }
.prose li::marker { color: var(--accent-ink); }
.prose a { color: var(--accent-ink); text-decoration-thickness: 1px; }
.prose strong { font-weight: 650; }
.prose code { font-family: var(--font-mono); font-size: .88em; padding: .12em .4em; border-radius: 4px; background: var(--bg-sunken); }

.prompt-block { border-radius: var(--r-md); background: var(--ink-900); color: var(--paper-100); overflow: hidden; border: 1px solid var(--ink-700); }
.prompt-block__bar { display: flex; justify-content: space-between; align-items: center; padding: .5rem .5rem .5rem var(--s-4); border-block-end: 1px solid var(--ink-700); font: 500 11px var(--font-mono); letter-spacing: .08em; text-transform: uppercase; color: var(--ink-300); }
.prompt-block__bar button { border: 1px solid var(--ink-700); background: transparent; color: var(--paper-100); border-radius: var(--r-sm); padding: .4rem .7rem; min-block-size: 34px; font: 500 11px var(--font-mono); display: inline-flex; gap: .4em; align-items: center; }
.prompt-block__bar button:hover { background: var(--ink-700); }
.prompt-block pre { margin: 0; padding: var(--s-4); font: 500 13.5px/1.75 var(--font-mono); white-space: pre-wrap; direction: ltr; text-align: left; overflow-x: auto; }
.prompt-block--bad { opacity: .85; }
.prompt-block--bad .prompt-block__bar { color: #ff9f8a; }
.prompt-block--good .prompt-block__bar { color: var(--jade-400); }

.takeaways { padding: var(--s-5); border-radius: var(--r-lg); background: var(--ink-950); color: var(--paper-100); }
.takeaways h2 { margin: 0 0 var(--s-4) !important; font-size: var(--fs-lg) !important; color: var(--saffron-300); }
.takeaways ul { margin: 0; }
.takeaways li::marker { color: var(--saffron-300); }

.author-box { display: grid; grid-template-columns: auto 1fr; gap: var(--s-4); padding: var(--s-5); border-radius: var(--r-lg); border: 1px solid var(--line); background: var(--bg-raised); margin-block-start: var(--s-8); }
.author-box .avatar { inline-size: 64px; block-size: 64px; font-size: 1.3rem; }
.author-box p { font-size: var(--fs-sm); color: var(--text-muted); margin-block-start: .3rem; }

.next-lesson { display: flex; justify-content: space-between; align-items: center; gap: var(--s-4); padding: var(--s-5); margin-block-start: var(--s-6); border-radius: var(--r-lg); border: 1px solid var(--line-strong); text-decoration: none; transition: background-color var(--t-med), color var(--t-med); }
.next-lesson:hover { background: var(--text); color: var(--bg); }
.next-lesson small { display: block; font: 500 var(--fs-xs) var(--font-mono); opacity: .7; }
.next-lesson strong { font-family: var(--font-display); font-size: var(--fs-lg); font-weight: 500; }

/* Screenshots, side-by-side comparisons and data tables inside articles */
.prose figure.shot { margin-inline: auto; max-inline-size: 24rem; }
.prose figure.shot img { display: block; inline-size: 100%; block-size: auto; border: 1px solid var(--line-strong); border-radius: var(--r-md); box-shadow: var(--shadow-1); background: var(--bg-raised); }
.prose figure.shot figcaption { font-size: var(--fs-xs); color: var(--text-muted); margin-block-start: var(--s-2); text-align: center; line-height: 1.7; }
.article-layout > * { min-inline-size: 0; }
.prose .shot-pair { display: grid; gap: var(--s-5); grid-template-columns: minmax(0, 1fr); }
@media (min-width: 48rem) { .prose .shot-pair { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); align-items: start; } .prose .shot-pair figure.shot { max-inline-size: none; } }
.prose .table-wrap { overflow-x: auto; -webkit-overflow-scrolling: touch; border: 1px solid var(--line); border-radius: var(--r-md); }
.prose table { border-collapse: collapse; inline-size: 100%; min-inline-size: 36rem; font-size: var(--fs-sm); line-height: 1.8; }
.prose th, .prose td { padding: var(--s-3); border-block-end: 1px solid var(--line); text-align: start; vertical-align: top; }
.prose th { background: var(--bg-sunken); font-weight: 650; }
.prose tr:last-child td { border-block-end: 0; }
.prose .test-note { font-size: var(--fs-sm); padding: var(--s-4) var(--s-5); border-radius: var(--r-md); background: var(--bg-sunken); border-inline-start: 3px solid var(--accent); }
