@font-face{font-family:'Anybody';font-style:normal;font-display:swap;font-weight:100 900;font-stretch:50% 150%;src:url(/fonts/anybody-latin-wdth-normal.woff2) format('woff2-variations');}
@font-face{font-family:'Instrument Sans';font-style:normal;font-display:swap;font-weight:400 700;font-stretch:75% 100%;src:url(/fonts/instrument-sans-latin-wdth-normal.woff2) format('woff2-variations');}
@font-face{font-family:'Martian Mono';font-style:normal;font-display:swap;font-weight:100 800;font-stretch:75% 112.5%;src:url(/fonts/martian-mono-latin-wdth-normal.woff2) format('woff2-variations');}
/* Componenti condivisi delle sottopagine: barra in alto, footer, dialog della privacy.
   Gli stessi valori della home (assets/build/site.*.css: .top, .foot, dialog.tro). Non si ridefiniscono altrove. */
/* Tema: solo scuro, su ogni pagina e nella home (Fabio, 22 ottobre 2026: niente più chiaro, niente selettore).
   Gli stessi valori di brand/tokens.css. Le pagine non ridefiniscono questi colori.
   .palco: un riquadro scuro con i colori del tema (demo del Lab, slide social, illustrazioni delle regole). */
/* font del sito (tokens.css): una pagina li riceve da qui, i file si dichiarano con @font-face nella sua build */
:root{--f-display:"Anybody","Arial Narrow",system-ui,sans-serif;--f-body:"Instrument Sans","Helvetica Neue",Arial,sans-serif;--f-mono:"Martian Mono",ui-monospace,SFMono-Regular,Menlo,monospace}
/* misure, spazi, raggi, ombre e tempi: copiati da brand/tokens.css (componenti.py controlla che restino uguali) */
:root{--max:1120px;--gutter:clamp(16px,4vw,56px);--top-h:58px;--measure:64ch;--measure-lead:42ch;--tap:44px;--s-1:4px;--s-2:8px;--s-3:12px;--s-4:16px;--s-5:24px;--s-6:32px;--s-7:48px;--s-8:64px;--s-9:96px;--s-10:128px;--r-ui:0;--r-pill:999px;--r-tile:20%;--r-window:18px;--shadow-hard:6px 6px 0 var(--brand);--shadow-dialog:10px 10px 0 var(--brand);--t-fast:.2s;--t-fade:.35s;--t-move:.5s;--ease:cubic-bezier(.2,.8,.2,1);--fs-label:12px;--fs-note:14px;--fs-ui:16px;--fs-text:18px;--fs-title-s:20px;--fs-card:26px;--z-bar:50;--z-toast:80;--z-game:94;--z-skip:120}
:root,.palco{color-scheme:dark;--paper:#0F1015;--wash:#1B1D25;--wash2:#23252F;--line:#2C2F39;--line2:#4A4E5C;--muted:#A0A4B0;--ink:#ECEDF2;--link:#8F8FFF;--on-link:#0F1015;--brand:#2B2BEA;--on-brand:#FFFFFF;--yellow:#FFC53D;--lilac:#8F8FFF;--coral:#FF7A66;--green:#2DD4A7;--pink:#FF6EB4;--on-yellow:#15161B;--dot:#22242C}
.palco{color:var(--ink)}
html{scroll-padding-top:calc(env(safe-area-inset-top,0px) + 72px)}

.vh{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.skiplink{position:absolute;left:-999px;top:8px;z-index:var(--z-skip);background:var(--ink);color:var(--paper);padding:10px 14px}
.skiplink:focus{left:8px}

.sitebar{box-sizing:border-box;min-height:calc(env(safe-area-inset-top,0px) + 57.6875px);position:sticky;top:0;z-index:var(--z-bar);display:flex;align-items:center;justify-content:space-between;gap:var(--s-4);
  padding:calc(env(safe-area-inset-top,0px) + 12px) var(--gutter) 12px;
  background:color-mix(in srgb,var(--paper) 86%,transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}
.sitebar .brand{display:flex;align-items:center;gap:10px;color:var(--ink);text-decoration:none;min-height:28px;position:relative}
/* aree da 44 px senza alzare la barra: la zona cliccabile si allunga sopra e sotto */
.sitebar .brand::after{content:"";position:absolute;inset:-8px 0}
.sitebar .brand-logo{width:26px;height:28px;flex:none;overflow:visible;color:var(--ink)}
.sitebar .brand-name svg{display:block;width:auto;height:auto}
/* percorso a briciole dopo il nome: stesso mono del selettore di lingua; i passaggi sono link, l'ultima voce è la pagina */
.sitebar .path{display:flex;align-items:center;gap:10px;min-width:0;flex:1 1 auto}
.sitebar .crumbs{min-width:0}
.sitebar .crumbs ol{list-style:none;margin:0;padding:0;display:flex;align-items:center;gap:10px;min-width:0}
.sitebar .crumbs li{display:flex;align-items:center;gap:10px;min-width:0}
/* le voci prima dell'ultima non si stringono: se manca spazio si accorcia solo la pagina corrente, coi puntini */
.sitebar .crumbs li:not(:last-child){flex:none}
/* su telefono restano la prima voce e la pagina corrente: quelle in mezzo (es. Exploded UI in una scheda) lasciano spazio */
@media (max-width:480px){.sitebar .crumbs li:not(:first-child):not(:last-child){display:none}}
.sitebar .sep{font-family:var(--f-mono);font-size:var(--fs-note);color:var(--muted)}
.sitebar .sect{font-family:var(--f-mono);font-size:var(--fs-label);letter-spacing:.06em;text-transform:uppercase;color:var(--muted);text-decoration:none;min-height:28px;display:inline-flex;align-items:center;padding:var(--s-1) 0;white-space:nowrap}
.sitebar a.sect:hover{color:var(--ink);text-decoration:underline;text-underline-offset:4px}
.sitebar .sect[aria-current="page"]{color:var(--ink);display:block;line-height:20px;overflow:hidden;text-overflow:ellipsis}
/* targhetta accanto alla voce (Beta): pillola come i tag delle schede, ma col colore del testo */
.sitebar .crumbs .chip{flex:none;font-family:var(--f-mono);font-size:var(--fs-label);line-height:1;letter-spacing:.08em;text-transform:uppercase;color:var(--ink);border:1px solid var(--muted);padding:var(--s-1) var(--s-2);border-radius:var(--r-pill)}
@media (max-width:420px){.sitebar .crumbs li:has(.chip){gap:6px}.sitebar .crumbs .chip{padding:3px 6px;letter-spacing:.04em}}
.sitebar :focus-visible{outline:2px solid var(--link);outline-offset:2px}
@media (max-width:560px){.sitebar .brand-name{display:none}}

.sitefoot{padding:clamp(56px,8vw,96px) 0 28px;border-top:1px solid var(--line);color:var(--ink);font-family:var(--f-body);font-size:var(--fs-ui);line-height:1.5}
.sitefoot .wrap{max-width:var(--max);margin-inline:auto;padding-inline:var(--gutter)}
/* la porta in cima al footer: stessi valori della home (.door-row in site.*.css) */
.door-row{display:flex;align-items:flex-end;gap:clamp(18px,3vw,40px);flex-wrap:wrap;margin-bottom:clamp(56px,8vw,96px)}
.door-line{display:grid;font-family:var(--f-display);font-weight:800;font-variation-settings:"wdth" 78;font-size:clamp(34px,6vw,94px);line-height:.98;margin:0;max-width:16ch;text-wrap:balance}
.door-line > span{grid-area:1/1;align-self:end}
.door-line .dl-b,.door-line.shut .dl-a{visibility:hidden}
.door-line.shut .dl-b{visibility:visible}
.door{position:relative;flex:none;width:clamp(64px,6.6vw,92px);aspect-ratio:.62;box-sizing:border-box;margin:0;padding:0;border:2px solid var(--ink);border-bottom:0;background:none;color:inherit;perspective:320px;cursor:pointer;-webkit-tap-highlight-color:transparent}
.door:focus-visible{outline-offset:6px}
.door-light{position:absolute;inset:3px 3px 0;background:var(--yellow);box-shadow:0 0 22px 2px rgba(255,197,61,.45);transition:opacity .35s ease .25s,box-shadow .35s ease .25s}
.door i{position:absolute;inset:3px 3px 0;background:var(--link);transform-origin:left center;transform:rotateY(-58deg);transition:transform 1.1s cubic-bezier(.2,.8,.2,1)}
.door i::after{content:"";position:absolute;right:14%;top:52%;width:12%;aspect-ratio:1;border-radius:50%;background:var(--paper)}
@media (hover:hover){.door:not(.shut):hover i{transform:rotateY(-46deg);transition-duration:.6s}}
.door.shut i{transform:rotateY(0deg);transition:transform .42s cubic-bezier(.6,0,.95,.45)}
.door.shut .door-light{opacity:0;box-shadow:none}
.door.thud{animation:thud .38s ease-out}
.door.creak i{animation:creak 1.6s ease-in-out}
@keyframes thud{0%{transform:none}25%{transform:translateX(-2px) rotate(-.8deg)}50%{transform:translateX(2px) rotate(.6deg)}75%{transform:translateX(-1px)}100%{transform:none}}
@keyframes creak{0%,100%{transform:rotateY(-58deg)}35%{transform:rotateY(-68deg)}70%{transform:rotateY(-52deg)}}
@media (prefers-reduced-motion:reduce){.door i,.door-light{transition:none !important}.door.thud,.door.creak i{animation:none}}
.sitefoot .foot-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:32px clamp(24px,4vw,64px);padding-block:28px 40px;border-top:1px solid var(--ink)}
.sitefoot .foot-k{font-family:var(--f-mono);font-size:var(--fs-label);letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin:0 0 var(--s-3)}
.sitefoot .foot-k2{margin-top:28px}
.sitefoot .foot-links{list-style:none;margin:0;padding:0;display:grid;gap:0}
.sitefoot .foot-links a,.sitefoot .mail a{color:var(--ink);font-weight:600;text-decoration:none;display:inline-flex;align-items:center;min-height:var(--tap);padding:0}
.sitefoot .foot-links a:hover,.sitefoot .mail a:hover{color:var(--link);text-decoration:underline;text-underline-offset:4px}
.sitefoot .mail{display:flex;align-items:center;gap:var(--s-2) var(--s-3);flex-wrap:wrap;margin:0}
.sitefoot .mail a{font-family:var(--f-mono);font-weight:500;font-size:var(--fs-note);overflow-wrap:anywhere}
.sitefoot .mail button{font:600 var(--fs-note) var(--f-body);color:var(--ink);background:none;border:1px solid var(--line);padding:6px 12px;min-height:var(--tap);cursor:pointer}
.sitefoot .foot-legal{display:flex;flex-wrap:wrap;gap:var(--s-2) var(--s-5);align-items:center;justify-content:space-between;padding-top:var(--s-4);border-top:1px solid var(--line);font-family:var(--f-mono);font-size:var(--fs-label);letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
.sitefoot .linkish{font:inherit;letter-spacing:inherit;text-transform:inherit;color:inherit;background:none;border:0;margin:0;padding:0;min-height:var(--tap);font-weight:600;cursor:pointer;text-decoration:underline;text-underline-offset:3px}
.sitefoot a.linkish{display:inline-flex;align-items:center}
.sitefoot :focus-visible{outline:2px solid var(--link);outline-offset:2px}
@media (max-width:760px){.sitefoot .foot-grid{grid-template-columns:minmax(0,1fr);gap:28px}}

.sitedlg{border:0;padding:0;width:min(620px,calc(100vw - 32px));max-height:min(84svh,760px);background:var(--wash);color:var(--ink);outline:1px solid var(--line);box-shadow:var(--shadow-dialog);overscroll-behavior:contain;font-family:var(--f-body);font-size:var(--fs-ui);line-height:1.5}
.sitedlg::backdrop{background:rgba(0,0,0,.72)}
.sitedlg-in{position:relative;padding:clamp(22px,4vw,36px)}
.sitedlg h2{font-family:var(--f-display);font-weight:800;font-variation-settings:"wdth" 88;font-size:clamp(34px,4.4vw,52px);line-height:1;margin:0 0 .3em}
.sitedlg-x{position:sticky;top:12px;float:right;z-index:1;width:44px;min-height:var(--tap);margin:-8px -8px 0 12px;padding:0;background:var(--paper);border:1.5px solid var(--line);color:var(--ink);font-size:var(--fs-title-s);line-height:1;cursor:pointer}
.sitedlg .pv-body{max-width:60ch}
.sitedlg .pv-body h3{font-family:var(--f-display);font-weight:700;font-variation-settings:"wdth" 96;font-size:var(--fs-title-s);line-height:1.2;margin:26px 0 6px}
.sitedlg .pv-body p{margin:0 0 10px}
.sitedlg .pv-body a{color:var(--link)}
.sitedlg .pv-body .pv-date{margin-top:22px;font-family:var(--f-mono);font-size:var(--fs-label);letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}

/* Disegni delle schede (DESIGN.md, Illustrazioni). Il riquadro prende .palco .dotgrid: scuro in ogni tema, puntini ogni 12 px.
   SVG con viewBox 240×140; i colori arrivano solo da queste classi, mai scritti nel disegno. */
.dotgrid{background-color:var(--paper);background-image:radial-gradient(var(--dot) 1px,transparent 1.2px);background-size:12px 12px}
.f-blue{fill:var(--brand)} .f-white{fill:#fff;color:#fff} .f-ink{fill:var(--ink)} .f-dim{fill:var(--muted)} .f-muted{fill:var(--line2)}
.f-line{fill:var(--line)} .f-wash{fill:var(--wash)} .f-wash2{fill:var(--wash2)} .f-paper{fill:var(--paper)}
.f-yellow{fill:var(--yellow)} .f-lilac{fill:var(--lilac)} .f-coral{fill:var(--coral)} .f-green{fill:var(--green)} .f-pink{fill:var(--pink)}
.s-line{stroke:var(--line2);stroke-width:1} .s-paper{stroke:var(--paper);stroke-width:1.5;stroke-linejoin:round}
.s-dash{fill:none;stroke:var(--muted);stroke-width:1.5;stroke-dasharray:4 4} .s-guide{fill:none;stroke:var(--pink);stroke-width:1.5;stroke-dasharray:3 4}
.s-blue{fill:none;stroke:var(--brand);stroke-width:4;stroke-linecap:round} .s-handle{stroke:var(--muted);stroke-width:1}
.t-lab{font-family:var(--f-mono);font-size:10px;letter-spacing:.08em} .t-chip{font-family:var(--f-mono);font-size:10px;font-weight:500;letter-spacing:.04em}
.t-glyph{font-family:var(--f-display);font-weight:800}

/* Preferenze di accessibilità del sistema (DESIGN.md, regola 1 e Tema): cambiano il sito solo per chi le ha attivate.
   «Aumenta contrasto» (macOS, iOS, Windows): testo secondario più chiaro e bordi da 3:1, gli stessi valori di brand/tokens.css.
   Contrasto elevato di Windows (forced-colors): i colori li sceglie il sistema e le ombre spariscono. I disegni sul palco
   restano com'erano; bottoni, campi, tag e dialog prendono un bordo; il focus usa Highlight; le icone il colore del testo.
   Sta dentro il blocco che aggiorna_home.py copia nel foglio della home, così vale anche lì; gli !important battono i fogli
   delle pagine, che arrivano dopo, ma solo con il contrasto elevato attivo. */
@media (prefers-contrast:more){:root,.palco{--muted:#C4C7D0}:root{--line:#6B7080}}
@media (forced-colors:active){
  .palco{forced-color-adjust:none}
  svg:not(.palco svg){color:inherit !important}
  :is(.btn,.sp-btn,.tag,.chip,input,select,textarea,dialog):not(.palco *){border:1.5px solid CanvasText !important}
  :is(.btn,.sp-btn):not(.palco *){border-color:ButtonText !important}
  :focus-visible{outline:2px solid Highlight !important}
  .mn-btn i,.mn-btn i::before,.door i{forced-color-adjust:none;background:ButtonText !important}
  .door i::after{background:ButtonFace !important}
  .door-light{forced-color-adjust:none;background:Highlight !important;box-shadow:none !important}
}

/* Menu della barra (DESIGN.md, Componenti), ultimo a destra su ogni pagina: Gratis per te, Lingua.
   Bottone vuoto quadrato (bordo --line, poi --ink), pannello squadrato come i dialog con l'ombra dura 6 px in --brand.
   Sta qui, dentro il blocco che aggiorna_home.py copia nel foglio della home: --brand ha il valore di riserva perché la home non lo definisce. */
.mn{position:relative;flex:none}
.mn-btn{position:relative;width:32px;height:32px;box-sizing:border-box;margin:0;padding:0;display:grid;place-items:center;background:none;border:1.5px solid var(--line);border-radius:var(--r-ui);color:var(--ink);cursor:pointer;-webkit-tap-highlight-color:transparent}
.mn-btn::after{content:"";position:absolute;inset:-7px}
.mn-btn:hover,.mn-btn[aria-expanded="true"]{border-color:var(--ink)}
.mn-btn i,.mn-btn i::before{display:block;width:12px;height:1.5px;background:currentColor}
.mn-btn i{position:relative;transition:transform .25s cubic-bezier(.2,.8,.2,1)}
.mn-btn i::before{content:"";position:absolute;inset:0;transform:rotate(90deg)}
.mn-btn[aria-expanded="true"] i{transform:rotate(45deg)}
.mn-panel{position:absolute;right:0;top:calc(100% + 14px);z-index:1;width:min(280px,calc(100vw - 32px));box-sizing:border-box;padding:18px 20px 4px;background:var(--wash);color:var(--ink);outline:1px solid var(--line);box-shadow:var(--shadow-hard);font-family:var(--f-body);font-size:var(--fs-ui);line-height:1.5;text-align:left}
.mn-panel[hidden]{display:none}
.mn-k{margin:0;font-family:var(--f-mono);font-size:var(--fs-label);line-height:1.5;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.mn-links{list-style:none;margin:6px 0 10px;padding:0}
.mn-links a{display:flex;align-items:center;min-height:var(--tap);color:var(--ink);font-weight:600;text-decoration:none}
.mn-links a:hover{color:var(--link);text-decoration:underline;text-underline-offset:4px}
/* Lingua: una riga alta 52 px, scelte in mono, quella attiva in --ink e sottolineata */
.mn-row{display:flex;align-items:center;justify-content:space-between;gap:var(--s-3);min-height:52px;box-sizing:border-box;border-top:1px solid var(--line)}
.mn .lang{display:flex;align-items:center;gap:2px;min-height:var(--tap);font-family:var(--f-mono);font-size:var(--fs-label);letter-spacing:.06em;color:var(--muted)}
.mn .lang :is(a,button){font:inherit;letter-spacing:inherit;color:var(--muted);background:none;border:0;margin:0;padding:0 var(--s-1);min-width:var(--tap);min-height:var(--tap);box-sizing:border-box;display:inline-flex;align-items:center;justify-content:center;text-decoration:none;cursor:pointer}
.mn .lang :is(a,button)::after{content:none}
.mn .lang :is(a,button):hover{color:var(--ink)}
.mn .lang :is(a[aria-current="page"],button[aria-pressed="true"]){color:var(--ink);text-decoration:underline;text-underline-offset:4px;cursor:default}
.mn :focus-visible{outline:2px solid var(--link);outline-offset:2px}
@media (prefers-reduced-motion:reduce){.mn-btn i{transition:none}}

/* Schede animate: le stesse regole delle otto card del design system (DESIGN.md, Movimento).
   Il contenitore ha la classe .anim, ogni figlio è una scheda con il disegno (.thumb) e il testo (.body).
   Il disegno si muove al passaggio del mouse, al focus da tastiera o, su touch, quando la scheda arriva a metà schermo
   (classe .on da componenti.js; la lista prende .has-on). Su touch le altre schede si attenuano: disegno a .4, testo a .8. */
.anim svg *{transform-box:fill-box;transform-origin:center}
.anim :is(.a-grow,.a-shrink,.a-dim,.a-tilt,.a-big,.a-back,.a-away,.a-press,.a-fill){transition:transform .5s cubic-bezier(.2,.8,.2,1),opacity .4s}
.anim .a-big{transform-origin:left bottom}
.anim .a-fill{transform-origin:left center}
@media (hover:none){.anim>* .thumb,.anim>* .body{transition:opacity .35s} .anim.has-on>:not(.on) .thumb{opacity:.4} .anim.has-on>:not(.on) .body{opacity:.8}}
.anim>:is(:hover,:focus-visible,.on) .a-grow{transform:scale(1.18)}
.anim>:is(:hover,:focus-visible,.on) .a-shrink{transform:scale(.45);opacity:.35}
.anim>:is(:hover,:focus-visible,.on) .a-dim{opacity:.45}
.anim>:is(:hover,:focus-visible,.on) .a-pulse{animation:ds-pulse 1.2s ease-in-out infinite}
.anim>:is(:hover,:focus-visible,.on) .a-tilt{transform:rotate(-7deg) scale(1.06)}
.anim>:is(:hover,:focus-visible,.on) .a-hop{animation:ds-hop .6s cubic-bezier(.3,0,.3,1) .1s}
.anim>:is(:hover,:focus-visible,.on) .a-big{transform:scale(1.12)}
.anim>:is(:hover,:focus-visible,.on) .a-back{transform:translateX(8px);opacity:.55}
.anim>:is(:hover,:focus-visible,.on) .a-nod{animation:ds-nod .9s ease-in-out}
.anim>:is(:hover,:focus-visible,.on) .a-away{transform:translateX(-14px) scale(.85);opacity:.25}
.anim>:is(:hover,:focus-visible,.on) .a-ants{animation:ds-ants .9s linear infinite}
.anim>:is(:hover,:focus-visible,.on) .a-press{transform:scale(.86)}
.anim>:is(:hover,:focus-visible,.on) .a-settle{animation:ds-settle .8s cubic-bezier(.3,1.6,.5,1)}
.anim>:is(:hover,:focus-visible,.on) .a-pop{animation:ds-pop .5s cubic-bezier(.3,1.8,.5,1) .55s backwards}
.anim>:is(:hover,:focus-visible,.on) .a-fill{transform:scaleX(1.72)}
.anim>:is(:hover,:focus-visible,.on) .a-late{animation-delay:.7s}
.anim>:is(:hover,:focus-visible,.on) .a-d1{animation-delay:.08s}
.anim>:is(:hover,:focus-visible,.on) .a-d2{animation-delay:.16s}
.anim>:is(:hover,:focus-visible,.on) .a-d3{animation-delay:.24s}
.anim>:is(:hover,:focus-visible,.on) .a-d4{animation-delay:.32s}
@keyframes ds-pulse{50%{transform:scale(1.35)}}
@keyframes ds-hop{40%{transform:translateY(-6px)}}
@keyframes ds-nod{25%{transform:rotate(-8deg)}60%{transform:rotate(6deg)}}
@keyframes ds-ants{to{stroke-dashoffset:-8}}
@keyframes ds-settle{0%{transform:translateY(-14px)}}
@keyframes ds-pop{from{transform:scale(0)}}
@media (prefers-reduced-motion:reduce){.anim *{animation:none !important;transition:none !important}}

*{box-sizing:border-box}
html,body{margin:0;background:var(--paper);color:var(--ink)}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%}
body{font-family:var(--f-body);font-size:var(--fs-text);line-height:1.55}
a{color:var(--link);text-underline-offset:4px}
:focus-visible{outline:2px solid var(--link);outline-offset:2px}
main{max-width:var(--max);margin:0 auto;padding:clamp(48px,10vw,120px) var(--gutter) clamp(64px,10vw,128px)}
.k{margin:0;font-family:var(--f-mono);font-size:var(--fs-label);letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
h1{margin:var(--s-3) 0 0;font-family:var(--f-display);font-weight:800;font-variation-settings:"wdth" 120;font-size:clamp(44px,7vw,88px);line-height:.9;letter-spacing:-.02em;text-wrap:balance}
.lead{max-width:var(--measure-lead);margin:var(--s-5) 0 0;font-size:clamp(17px,2vw,21px);color:var(--muted)}
.prose{max-width:68ch;margin-top:clamp(40px,6vw,72px);line-height:1.6}
.prose h2{margin:40px 0 0;font-family:var(--f-display);font-weight:800;font-variation-settings:"wdth" 110;font-size:clamp(22px,2.4vw,28px);line-height:1.1}
.prose h2:first-child{margin-top:0}
.prose p{margin:var(--s-3) 0 0}
.prose .pv-date{margin-top:40px;font-family:var(--f-mono);font-size:var(--fs-label);letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
