/* =====================================================================
   Rigo, il blog. Si appoggia a base.css (token, caratteri, header, piede)
   e aggiunge solo le pagine del blog. Ogni selettore comincia con .b-
   o sta sotto .b-page: niente colori scritti a mano, solo var(--token).
   ===================================================================== */

.b-page main{padding-top:calc(var(--header-h) + clamp(1.5rem, 1rem + 3vw, 4rem));padding-bottom:var(--section-y)}
.b-page .site-nav a[aria-current="page"]{color:var(--ink)}

/* ---------- briciole ---------- */
.b-crumbs{font-family:var(--font-num);font-size:var(--fs-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.b-crumbs ol{display:flex;flex-wrap:wrap;gap:.2em .6em;list-style:none;margin:0;padding:0}
.b-crumbs li{display:inline-flex;align-items:center;gap:.6em;min-width:0}
.b-crumbs li + li::before{content:"";width:1px;height:1em;background:var(--line-strong);flex:none}
.b-crumbs a{color:var(--muted);text-decoration:none;display:inline-flex;align-items:center;min-height:32px}
.b-crumbs a:hover{color:var(--ink)}
.b-crumbs [aria-current]{color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:26ch}

/* ---------- testa dell'articolo ---------- */
.b-head{display:grid;gap:var(--s-5);margin-top:var(--s-6);max-width:52rem}
.b-head h1{font-size:clamp(2rem, 1.35rem + 2.9vw, 3.6rem);line-height:1.06;letter-spacing:-.03em}
.b-lead{font-size:var(--fs-lead);line-height:1.5;color:var(--muted);max-width:var(--max-text);text-wrap:pretty}
.b-meta{display:flex;flex-wrap:wrap;gap:var(--s-2) var(--s-5);align-items:baseline;font-size:var(--fs-small);color:var(--muted)}
.b-meta strong{color:var(--ink);font-weight:700}
.b-agg{flex-basis:100%;margin:0;padding:var(--s-3) var(--s-4);border-left:2px solid var(--accent);background:var(--accent-soft);border-radius:0 var(--radius-sm) var(--radius-sm) 0;color:var(--ink)}

/* ---------- copertina ---------- */
.b-cover{margin-top:clamp(2rem, 1.2rem + 3vw, 3.5rem)}
.b-cover img{width:100%;aspect-ratio:16/9;object-fit:cover;border-radius:var(--radius-lg);border:var(--rule);background:var(--surface)}

/* ---------- corpo: colonna di lettura con indice a lato da 64em ---------- */
.b-layout{display:grid;gap:var(--s-7);margin-top:clamp(2.5rem, 1.5rem + 3vw, 4.5rem)}
@media (min-width:64em){
  .b-layout{grid-template-columns:minmax(0,15rem) minmax(0,var(--max-text));justify-content:space-between;gap:var(--s-8)}
  .b-toc{position:sticky;top:calc(var(--header-h) + var(--s-5));align-self:start}
}
@media (min-width:80em){ .b-layout{grid-template-columns:minmax(0,16rem) minmax(0,40rem);justify-content:start;gap:clamp(4rem, 2rem + 6vw, 9rem)} }

.b-toc{font-size:var(--fs-small)}
.b-toc h2{font-family:var(--font-num);font-size:var(--fs-mono);letter-spacing:var(--track-mono);text-transform:uppercase;font-weight:500;color:var(--muted);display:flex;align-items:center;gap:.75em}
.b-toc h2::before{content:"";width:2px;height:1.1em;background:var(--accent);flex:none}
.b-toc ol{list-style:none;margin:var(--s-3) 0 0;padding:0;border-left:var(--rule);counter-reset:toc}
.b-toc li{counter-increment:toc}
.b-toc a{position:relative;display:flex;gap:.7em;padding:.45rem 0 .45rem var(--s-4);color:var(--muted);text-decoration:none;line-height:1.35}
.b-toc a::before{content:counter(toc, decimal-leading-zero);font-family:var(--font-num);font-size:.78em;padding-top:.15em;color:var(--line-strong)}
.b-toc a:hover,.b-toc a[aria-current="true"]{color:var(--ink)}
.b-toc a[aria-current="true"]::after{content:"";position:absolute;left:-1px;top:.4rem;bottom:.4rem;width:2px;background:var(--accent)}

/* ---------- testo dell'articolo ---------- */
.b-prose{min-width:0;font-size:var(--fs-body);line-height:1.68}
.b-prose > * + *{margin-top:1.15em}
.b-prose p,.b-prose li{text-wrap:pretty}
.b-prose h2{font-size:clamp(1.5rem, 1.2rem + 1.2vw, 2.1rem);line-height:1.15;letter-spacing:-.022em;margin-top:2.4em;padding-top:var(--s-5);position:relative;scroll-margin-top:calc(var(--header-h) + 24px)}
.b-prose h2::before{content:"";position:absolute;left:0;right:0;top:0;height:1px;background:var(--line)}
.b-prose h2::after{content:"";position:absolute;left:38%;top:-6px;width:2px;height:13px;background:var(--accent);transform:translateX(-1px)}
.b-prose h3{font-size:var(--fs-h3);line-height:1.2;letter-spacing:-.015em;margin-top:1.8em;scroll-margin-top:calc(var(--header-h) + 24px)}
.b-prose h4{font-size:1.05em;margin-top:1.6em}
.b-prose h2 + *,.b-prose h3 + *,.b-prose h4 + *{margin-top:.7em}
.b-prose a{color:var(--ink);text-decoration:underline;text-decoration-color:var(--accent);text-decoration-thickness:1px;text-underline-offset:.22em;transition:text-decoration-thickness var(--dur-fast) ease}
.b-prose a:hover{text-decoration-thickness:2px}
.b-prose strong{font-weight:700}
.b-prose ul,.b-prose ol{padding-left:1.3em}
.b-prose li + li{margin-top:.4em}
.b-prose li::marker{color:var(--muted)}
.b-prose ol li::marker{font-family:var(--font-num);font-size:.9em}
.b-prose li > ul,.b-prose li > ol{margin-top:.4em}
.b-prose code{font-family:var(--font-num);font-size:.86em;background:var(--surface-2);padding:.1em .35em;border-radius:6px}
.b-prose pre{overflow-x:auto;background:var(--surface);border:var(--rule);border-radius:var(--radius-sm);padding:var(--s-4);font-size:.85em;line-height:1.5}
.b-prose pre code{background:none;padding:0}
.b-prose hr{border:0;height:1px;background:var(--line);margin-block:2.4em}
.b-prose blockquote{padding:.2em 0 .2em var(--s-5);border-left:2px solid var(--line-strong);color:var(--muted);font-size:1.04em}
.b-prose blockquote > * + *{margin-top:.8em}

/* la risposta corta: il riquadro che si copia da solo */
.b-prose .b-corta{position:relative;margin-block:1.6em;padding:var(--s-5) var(--s-5) var(--s-5) calc(var(--s-5) + 2px);background:var(--surface);border:var(--rule);border-radius:var(--radius);box-shadow:var(--shadow);font-size:1.02em}
.b-prose .b-corta::before{content:"";position:absolute;left:-1px;top:var(--s-5);bottom:var(--s-5);width:3px;border-radius:3px;background:var(--accent)}
.b-prose .b-corta strong:first-child{display:block;margin-bottom:.35em;font-family:var(--font-num);font-size:var(--fs-mono);letter-spacing:var(--track-mono);text-transform:uppercase;font-weight:500;color:var(--accent)}

/* figure */
.b-prose figure{margin-block:2em}
.b-prose figure img{width:100%;height:auto;border-radius:var(--radius);border:var(--rule);background:var(--surface)}
.b-prose figcaption{margin-top:var(--s-3);font-size:var(--fs-small);line-height:1.5;color:var(--muted);display:flex;gap:.75em}
.b-prose figcaption::before{content:"";width:2px;margin-block:.25em;background:var(--accent);flex:none}

/* tabelle: scorrono dentro il loro riquadro, mai la pagina */
.b-table{overflow-x:auto;border:var(--rule);border-radius:var(--radius-sm);-webkit-overflow-scrolling:touch}
.b-prose table{width:100%;border-collapse:collapse;font-size:var(--fs-small);line-height:1.45}
.b-prose th,.b-prose td{padding:.7rem .9rem;text-align:left;vertical-align:top;border-bottom:var(--rule)}
.b-prose tr:last-child td{border-bottom:0}
.b-prose th{font-weight:700;background:var(--surface);white-space:nowrap}
.b-prose td.n,.b-prose th.n{text-align:right;font-family:var(--font-num);font-variant-numeric:tabular-nums}
.b-prose td.c,.b-prose th.c{text-align:center}

/* ---------- riquadro finale: prova Rigo ---------- */
.b-prova{margin-top:clamp(3rem, 2rem + 4vw, 5rem);padding:clamp(1.5rem, 1rem + 2.5vw, 3rem);background:var(--surface);border:var(--rule);border-radius:var(--radius-lg);box-shadow:var(--shadow);display:grid;gap:var(--s-5)}
.b-prose .b-prova h2{font-size:clamp(1.5rem, 1.2rem + 1.4vw, 2.3rem);line-height:1.1;margin-top:0;padding-top:0}
.b-prose .b-prova h2::before,.b-prose .b-prova h2::after{content:none}
.b-prova p{color:var(--muted);max-width:var(--max-text)}
.b-prova .reticle{--word-size:clamp(1.8rem, 1.2rem + 2.6vw, 3rem);max-width:30rem}
.b-prova .cluster .btn--quiet{text-decoration:underline;text-decoration-color:var(--accent);text-underline-offset:.22em}

/* ---------- correlati ed elenco ---------- */
.b-rel{margin-top:clamp(3.5rem, 2rem + 5vw, 6rem)}
.b-rel > h2{font-size:var(--fs-h3);margin-bottom:var(--s-5)}
.b-list{display:grid;gap:var(--s-6);list-style:none;margin:0;padding:0}
@media (min-width:48em){ .b-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--s-7) var(--s-6)} }
@media (min-width:72em){ .b-list--3{grid-template-columns:repeat(3,minmax(0,1fr))} }
.b-card{position:relative;display:grid;gap:var(--s-3);align-content:start}
.b-card img{width:100%;aspect-ratio:16/9;object-fit:cover;border-radius:var(--radius);border:var(--rule);background:var(--surface);transition:transform var(--dur) var(--ease-out)}
.b-card:hover img{transform:translateY(-3px)}
.b-card > div{display:grid;gap:var(--s-2);align-content:start}
.b-card h2,.b-card h3{font-size:var(--fs-h3);line-height:1.18;letter-spacing:-.018em}
.b-card a{text-decoration:none;color:var(--ink)}
.b-card a::after{content:"";position:absolute;inset:0;border-radius:var(--radius)}
.b-card a:focus-visible{outline:none}
.b-card:has(a:focus-visible){outline:2px solid var(--accent);outline-offset:6px;border-radius:var(--radius)}
.b-card p{color:var(--muted);font-size:var(--fs-small);line-height:1.55}
.b-card time{font-family:var(--font-num);font-size:var(--fs-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.b-card .b-tag{color:var(--accent)}

/* la prima dell'elenco, piu' grande da 48em */
@media (min-width:48em){
  .b-list--home > li:first-child{grid-column:1/-1}
  .b-list--home > li:first-child .b-card{grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);gap:var(--s-6);align-items:center}
  .b-list--home > li:first-child .b-card > div{display:grid;gap:var(--s-3)}
  .b-list--home > li:first-child h2{font-size:clamp(1.6rem, 1.2rem + 1.4vw, 2.5rem)}
}

.b-intro{display:grid;gap:var(--s-5);margin:var(--s-6) 0 clamp(2.5rem, 1.5rem + 4vw, 5rem);max-width:48rem}
.b-intro h1{font-size:clamp(2.2rem, 1.4rem + 3.4vw, 4.2rem);line-height:1.04;letter-spacing:-.033em}
.b-vuoto{padding:var(--s-6);border:1px dashed var(--line-strong);border-radius:var(--radius);color:var(--muted);max-width:var(--max-text)}
