/* Articles: the index at /blog and every post under it.
   Post templates carry no <style> of their own; anything an article needs
   lives here so the three posts, and the next ones, read the same way. */

/* ---- index ---- */
.articlesIntro{max-width:60ch;margin:0 0 6px}

/* ---- reading column ---- */
.article{max-width:760px}
.article h1{max-width:22ch}
.article h2{font-size:1.45rem;line-height:1.3;margin:40px 0 14px}
.article h3{margin-top:26px}
.article p,.article li{max-width:68ch;line-height:1.7}
.article li{margin-bottom:6px}
.article-meta{font-size:14px;color:var(--pt-subtle);margin:22px 0 0}
.article-guide{width:100%;max-width:760px;margin:0 auto}
.article-guide h1{max-width:22ch}
.article-guide h2{font-size:24px;line-height:1.3;margin:36px 0 14px}
.article-guide p{line-height:1.7}
.article-guide .article-meta{font-size:14px;color:var(--pt-subtle)}

/* ---- figures ---- */
.article-figure{margin:30px 0}
.article-image-placeholder{display:flex;align-items:center;justify-content:center;aspect-ratio:16/9;
  border:1px solid var(--pt-border);border-radius:var(--pt-radius-card);background:var(--pt-surface);color:var(--pt-subtle);font-size:14px}
.article-figure figcaption{font-size:14px;color:var(--pt-muted);margin-top:10px;line-height:1.5}

/* ---- key figures (dl.big) ---- */
.article .big{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px;margin:26px 0;padding:0}
.article .big div{background:var(--pt-panel);border:1px solid var(--pt-border);border-radius:var(--pt-radius-card);padding:18px 20px}
.article .big dt{font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--pt-subtle);margin-bottom:8px;font-weight:600}
.article .big dd{margin:0;font-size:30px;font-weight:700;letter-spacing:-.02em;color:var(--pt-ink);line-height:1;font-variant-numeric:tabular-nums}
.article .big dd span{font-size:13px;font-weight:600;color:var(--pt-subtle);margin-left:5px;letter-spacing:0}

/* ---- parts table ---- */
.article .kit{width:100%;border-collapse:collapse;margin:14px 0 28px;font-size:14.5px}
.article .kit th,.article .kit td{text-align:left;padding:10px 0;border-bottom:1px solid var(--pt-border);vertical-align:top}
.article .kit th{font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--pt-subtle);font-weight:600}
.article .kit td.n{text-align:right;white-space:nowrap;padding-left:18px;font-variant-numeric:tabular-nums;color:var(--pt-ink)}
.article .kit td small{display:block;color:var(--pt-subtle);font-size:13px;margin-top:2px}
.article .kit td a{text-underline-offset:3px}
.article .kit tr.sum td{font-weight:600;color:var(--pt-ink);border-top:2px solid var(--pt-ink);border-bottom:0;padding-top:14px}

/* ---- aside: a plain bordered note, no accent stripe ---- */
.article .aside{background:var(--pt-panel);border:1px solid var(--pt-border);border-radius:var(--pt-radius-card);padding:16px 20px;margin:22px 0;max-width:68ch}
.article .aside p{margin:0 0 8px;font-size:14.5px}
.article .aside p:last-child{margin-bottom:0}

/* ---- end of article ---- */
.article .next{margin-top:56px;padding-top:18px;border-top:1px solid var(--pt-border);font-size:14px;color:var(--pt-subtle);max-width:none}

@media(max-width:600px){
  .article-guide h1,.article h1{font-size:2rem}
  .article-guide h2,.article h2{font-size:1.3rem}
}
.article-figure img{display:block;width:100%;height:auto;border:1px solid var(--pt-border);border-radius:var(--pt-radius-card)}

/* Article index: a grid of cards. The title link is the only link; its ::after
   covers the card so the whole card is clickable. A post with no image keeps
   an empty flat block in the image slot so every row lines up. */
.article-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;margin:32px 0}
.article-card{position:relative;display:flex;flex-direction:column;overflow:hidden;
  background:var(--pt-paper);border:1px solid var(--pt-border);border-radius:var(--pt-radius-card);transition:border-color .15s}
.article-card:hover{border-color:var(--pt-accent)}
.article-card-media{aspect-ratio:16/9;background:var(--pt-canvas);border-bottom:1px solid var(--pt-border)}
.article-card-media img{display:block;width:100%;height:auto;aspect-ratio:16/9;object-fit:cover}
.article-card-body{display:flex;flex-direction:column;gap:8px;padding:18px 20px 22px}
.article-card .eyebrow{margin:0;flex-wrap:wrap;gap:4px 12px}
.article-card h2{font-size:1.2rem;font-weight:700;line-height:1.3;letter-spacing:-.015em;margin:0}
.article-card h2 a{color:var(--pt-ink);text-decoration:none}
.article-card h2 a::after{content:"";position:absolute;inset:0;border-radius:inherit}
.article-card:hover h2 a{color:var(--pt-link)}
.article-card h2 a:focus-visible{outline:none}
.article-card h2 a:focus-visible::after{outline:3px solid var(--pt-accent);outline-offset:-3px}
.article-card p{margin:0;font-size:15px;line-height:1.6;color:var(--pt-muted)}
@media(max-width:900px){.article-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}}
@media(max-width:600px){.article-grid{grid-template-columns:minmax(0,1fr);gap:16px;margin:24px 0}}
@media(prefers-reduced-motion:reduce){.article-card{transition:none}}

/* Hero image at the top of a guide. */
.article-hero{display:block;width:100%;height:auto;aspect-ratio:16/9;object-fit:cover;margin:24px 0 8px;
  background:var(--pt-canvas);border:1px solid var(--pt-border);border-radius:var(--pt-radius-card)}

/* Worked-example tables. */
.article-measures{width:100%;border-collapse:collapse;margin:24px 0;font-size:16px}
.article-measures caption{text-align:left;color:var(--pt-muted);font-size:14px;margin-bottom:12px}
.article-measures th,.article-measures td{text-align:left;padding:12px 8px;border-bottom:1px solid var(--pt-border);vertical-align:top}
.article-measures th:first-child{padding-left:0}
.article-credit{font-size:14px;color:var(--pt-muted);margin-top:36px}
/* Native disclosure: references stay in the document and open in one click. */
.article-sources{margin:36px 0 0;border-top:1px solid var(--pt-border);border-bottom:1px solid var(--pt-border)}
.article-sources>summary{cursor:pointer;padding:14px 0;min-height:44px;box-sizing:border-box;font-weight:600;color:var(--pt-ink)}
.article-sources>summary:focus-visible{outline:3px solid var(--pt-accent);outline-offset:3px}
.article-sources ul{margin:0 0 18px;padding-left:24px}
.article-sources li{line-height:1.6;margin-bottom:8px;overflow-wrap:anywhere}
.article-sources a{text-underline-offset:3px}
@media(max-width:640px){.article-measures{font-size:14px;display:block;overflow-x:auto}}
