/* =====================================================================
   Rigo, sito vetrina. BASE condivisa da tutte le sezioni.
   Palette C "Grafite Ciano" (brand/02-palette-tipografia.md, sez. 7).
   Il sito e' SCURO di base: chiaro solo se il sistema lo chiede
   o se la persona lo sceglie col pulsante (data-theme sull'html).
   Leggi CONTRATTO.md prima di toccare qualcosa qui.
   ===================================================================== */

/* ---------- caratteri locali (OFL, nessuna richiesta a terzi) ---------- */
@font-face{font-family:"Atkinson Hyperlegible Next";font-style:normal;font-weight:400;font-display:swap;src:url(../fonts/atkinson-hyperlegible-next-latin-400-normal.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Atkinson Hyperlegible Next";font-style:normal;font-weight:400;font-display:swap;src:url(../fonts/atkinson-hyperlegible-next-latin-ext-400-normal.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+1E00-1E9F,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:"Atkinson Hyperlegible Next";font-style:normal;font-weight:500;font-display:swap;src:url(../fonts/atkinson-hyperlegible-next-latin-500-normal.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Atkinson Hyperlegible Next";font-style:normal;font-weight:500;font-display:swap;src:url(../fonts/atkinson-hyperlegible-next-latin-ext-500-normal.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+1E00-1E9F,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:"Atkinson Hyperlegible Next";font-style:normal;font-weight:700;font-display:swap;src:url(../fonts/atkinson-hyperlegible-next-latin-700-normal.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Atkinson Hyperlegible Next";font-style:normal;font-weight:700;font-display:swap;src:url(../fonts/atkinson-hyperlegible-next-latin-ext-700-normal.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+1E00-1E9F,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:"Atkinson Hyperlegible Next";font-style:normal;font-weight:800;font-display:swap;src:url(../fonts/atkinson-hyperlegible-next-latin-800-normal.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Atkinson Hyperlegible Next";font-style:normal;font-weight:800;font-display:swap;src:url(../fonts/atkinson-hyperlegible-next-latin-ext-800-normal.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+1E00-1E9F,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:"IBM Plex Mono";font-style:normal;font-weight:400;font-display:swap;src:url(../fonts/ibm-plex-mono-latin-400-normal.woff2) format("woff2")}
@font-face{font-family:"IBM Plex Mono";font-style:normal;font-weight:500;font-display:swap;src:url(../fonts/ibm-plex-mono-latin-500-normal.woff2) format("woff2")}

/* ---------- token: SCURO di base ---------- */
:root{
  --bg:#121316; --surface:#1B1C20; --surface-2:#22242A; --ink:#ECECEF; --muted:#A0A3AB;
  --line:#2C2E34; --line-strong:#6A6E78; --accent:#4FD1E8; --on-accent:#0B1E24;
  --pivot:#FF4D63; --ok:#5FD39A; --warn:#F08BC0; --err:#FF6B7A;
  --accent-soft:rgba(79,209,232,.12); --pivot-soft:rgba(255,77,99,.14);
  --scrim:rgba(18,19,22,.72); --shadow:0 1px 0 rgba(255,255,255,.04) inset, 0 24px 60px -30px rgba(0,0,0,.7);
  color-scheme:dark;
}
/* chiaro dal sistema, salvo scelta "scuro" a mano */
@media (prefers-color-scheme: light){
  :root:not([data-theme="dark"]){
    --bg:#F4F5F7; --surface:#FFFFFF; --surface-2:#ECEEF1; --ink:#17181C; --muted:#5A5E67;
    --line:#DCDEE3; --line-strong:#7D818B; --accent:#0A6C8A; --on-accent:#FFFFFF;
    --pivot:#D00F3A; --ok:#1B7A4B; --warn:#A8206B; --err:#D00F3A;
    --accent-soft:rgba(10,108,138,.09); --pivot-soft:rgba(208,15,58,.08);
    --scrim:rgba(244,245,247,.78); --shadow:0 1px 0 rgba(255,255,255,.9) inset, 0 24px 60px -34px rgba(23,24,28,.28);
    color-scheme:light;
  }
}
/* chiaro a mano */
:root[data-theme="light"]{
  --bg:#F4F5F7; --surface:#FFFFFF; --surface-2:#ECEEF1; --ink:#17181C; --muted:#5A5E67;
  --line:#DCDEE3; --line-strong:#7D818B; --accent:#0A6C8A; --on-accent:#FFFFFF;
  --pivot:#D00F3A; --ok:#1B7A4B; --warn:#A8206B; --err:#D00F3A;
  --accent-soft:rgba(10,108,138,.09); --pivot-soft:rgba(208,15,58,.08);
  --scrim:rgba(244,245,247,.78); --shadow:0 1px 0 rgba(255,255,255,.9) inset, 0 24px 60px -34px rgba(23,24,28,.28);
  color-scheme:light;
}

/* ---------- token non di colore ---------- */
:root{
  --font-ui:"Atkinson Hyperlegible Next","Atkinson Hyperlegible",system-ui,-apple-system,"Segoe UI",sans-serif;
  --font-word:var(--font-ui);
  --font-num:"IBM Plex Mono",ui-monospace,"SF Mono",Menlo,Consolas,monospace;

  /* scala tipografica fluida (360px -> 1440px) */
  --fs-mono:clamp(.72rem, .69rem + .12vw, .8rem);     /* etichette mono, maiuscolo */
  --fs-small:clamp(.875rem, .85rem + .1vw, .94rem);
  --fs-body:clamp(1.0625rem, 1rem + .25vw, 1.1875rem);
  --fs-lead:clamp(1.1875rem, 1.06rem + .55vw, 1.5rem);
  --fs-h3:clamp(1.3rem, 1.15rem + .65vw, 1.75rem);
  --fs-h2:clamp(2rem, 1.5rem + 2.3vw, 3.75rem);
  --fs-h1:clamp(2.1rem, 1.2rem + 4.6vw, 6.25rem);
  --fs-word:clamp(2.4rem, 1.6rem + 3.8vw, 5.25rem);   /* la parola RSVP */
  --lh-tight:1.04; --lh-snug:1.2; --lh-body:1.6;
  --track-tight:-.025em; --track-mono:.14em;

  /* spaziature (base 4px, fluide dove serve) */
  --s-1:.25rem; --s-2:.5rem; --s-3:.75rem; --s-4:1rem; --s-5:1.5rem; --s-6:2rem;
  --s-7:3rem; --s-8:4rem; --s-9:6rem; --s-10:8rem;
  --gutter:clamp(1rem, .6rem + 2vw, 2.5rem);               /* margine laterale pagina */
  --section-y:clamp(5rem, 3rem + 9vw, 11rem);              /* respiro sopra/sotto ogni sezione */
  --stack:clamp(1.25rem, 1rem + 1vw, 2rem);                /* distanza fra blocchi in una sezione */
  --max:76rem;          /* larghezza contenuto */
  --max-text:38rem;     /* misura di lettura */
  --header-h:64px;

  --radius:16px; --radius-sm:10px; --radius-lg:28px; --radius-pill:999px;
  --rule:1px solid var(--line);

  /* movimento: stessi valori di Rigo.ease / Rigo.dur in base.js */
  --ease-out:cubic-bezier(.22,1,.36,1);      /* "rigo": entrate */
  --ease-inout:cubic-bezier(.65,0,.35,1);    /* "battuta": spostamenti */
  --dur-fast:.2s; --dur:.45s; --dur-slow:.9s;
}

/* ---------- reset essenziale ---------- */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%;scroll-padding-top:calc(var(--header-h) + 16px)}
html:not(.lenis){scroll-behavior:smooth}
body{margin:0;min-height:100vh;background:var(--bg);color:var(--ink);font-family:var(--font-ui);font-size:var(--fs-body);line-height:var(--lh-body);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overflow-x:clip;text-rendering:optimizeLegibility}
img,svg,video,canvas{display:block;max-width:100%;height:auto}
button,input,select,textarea{font:inherit;color:inherit}
button{cursor:pointer;background:none;border:0;padding:0}
a{color:inherit}
p,h1,h2,h3,h4,figure,blockquote,ul,ol,dl,dd{margin:0}
ul[role="list"],ol[role="list"]{list-style:none;padding:0}
::selection{background:var(--accent);color:var(--on-accent)}
:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:4px}
[hidden]{display:none !important}

/* ---------- testo ---------- */
h1,h2,h3,h4{font-weight:800;letter-spacing:var(--track-tight);line-height:var(--lh-tight);text-wrap:balance}
.t-h1{font-size:var(--fs-h1);font-weight:800;line-height:var(--lh-tight);letter-spacing:-.035em}
.t-h2{font-size:var(--fs-h2);font-weight:800;line-height:1.06;letter-spacing:-.03em}
.t-h3{font-size:var(--fs-h3);font-weight:700;line-height:var(--lh-snug);letter-spacing:-.015em}
.t-lead{font-size:var(--fs-lead);line-height:1.5;color:var(--muted);max-width:var(--max-text);text-wrap:pretty}
.t-body{font-size:var(--fs-body);line-height:var(--lh-body);max-width:var(--max-text);text-wrap:pretty}
.t-small{font-size:var(--fs-small);color:var(--muted)}
.t-mono{font-family:var(--font-num);font-size:var(--fs-mono);letter-spacing:var(--track-mono);text-transform:uppercase;font-weight:500}
.t-num{font-family:var(--font-num);font-variant-numeric:tabular-nums}
.t-muted{color:var(--muted)}
.t-accent{color:var(--accent)}
.pv{color:var(--pivot)}                 /* la lettera rossa. UNA per blocco, mai decorativa */
.nowrap{white-space:nowrap}
.line{display:block}                    /* "a capo con senso": ogni .line e' una riga voluta */
.sr-only{position:absolute !important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}

/* etichetta di sezione: "01 · Come funziona" con tacca */
.eyebrow{display:inline-flex;align-items:center;gap:.75em;font-family:var(--font-num);font-size:var(--fs-mono);letter-spacing:var(--track-mono);text-transform:uppercase;font-weight:500;color:var(--muted)}
.eyebrow::before{content:"";width:2px;height:1.1em;background:var(--accent);flex:none}
.eyebrow b{color:var(--accent);font-weight:500}

/* ---------- impaginazione ---------- */
.wrap{width:100%;max-width:calc(var(--max) + 2 * var(--gutter));margin-inline:auto;padding-inline:var(--gutter)}
.wrap--narrow{max-width:calc(52rem + 2 * var(--gutter))}
.wrap--wide{max-width:calc(90rem + 2 * var(--gutter))}
.section{position:relative;padding-block:var(--section-y)}
.section--tight{padding-block:calc(var(--section-y) * .6)}
.section-head{display:grid;gap:var(--s-5);margin-bottom:clamp(2.5rem, 1.5rem + 4vw, 5rem);max-width:48rem}
.stack{display:flex;flex-direction:column;gap:var(--stack)}
.stack-s{display:flex;flex-direction:column;gap:var(--s-3)}
.cluster{display:flex;flex-wrap:wrap;align-items:center;gap:var(--s-3) var(--s-4)}

/* griglia a 12 colonne da 48em, una colonna sola su telefono.
   .col-N e .start-N agiscono solo da 48em in su */
.grid{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--s-5)}
@media (min-width:48em){
  .grid{grid-template-columns:repeat(12,minmax(0,1fr));gap:var(--s-6)}
  .grid > *{grid-column:1/-1}
  .grid > .col-3{grid-column-end:span 3}.grid > .col-4{grid-column-end:span 4}.grid > .col-5{grid-column-end:span 5}
  .grid > .col-6{grid-column-end:span 6}.grid > .col-7{grid-column-end:span 7}.grid > .col-8{grid-column-end:span 8}
  .grid > .col-9{grid-column-end:span 9}.grid > .col-12{grid-column:1/-1}   /* end:span cosi' .start-N non le stringe */
  .grid > .start-2{grid-column-start:2}.grid > .start-4{grid-column-start:4}.grid > .start-5{grid-column-start:5}
  .grid > .start-6{grid-column-start:6}.grid > .start-7{grid-column-start:7}
}

/* ---------- il "rigo": il segno grafico del sito ---------- */
/* Riga sottile con tacca: separatore, base di titoli, cornice della demo */
.rule{position:relative;height:1px;background:var(--line);border:0;margin:0}
.rule--notch::after{content:"";position:absolute;left:var(--notch-x,38%);top:-6px;width:2px;height:13px;background:var(--accent);transform:translateX(-1px)}
.rule--strong{background:var(--line-strong)}

/* Il mirino (stessa geometria dell'app: colonne 38/auto/62).
   Lo genera Rigo.rsvp(); qui lo stile, per chi lo vuole statico. */
.reticle{--word-size:var(--fs-word);position:relative;width:100%;font-size:var(--word-size);display:grid;grid-template-columns:minmax(0,38fr) auto minmax(0,62fr);grid-template-rows:26px auto 26px;align-items:center;user-select:none;-webkit-user-select:none}
.reticle__rule{grid-column:1/-1;height:0;border-top:2px solid var(--line)}
.reticle__rule--top{grid-row:1;align-self:start}
.reticle__rule--bot{grid-row:3;align-self:end}
.reticle__notch{grid-column:2;justify-self:center;width:2px;height:12px;background:var(--accent)}
.reticle__notch--top{grid-row:1;align-self:start}
.reticle__notch--bot{grid-row:3;align-self:end}
.reticle__w{grid-row:2;font-family:var(--font-word);font-size:1em;font-weight:500;line-height:1.15;white-space:pre;padding-block:.18em;letter-spacing:-.01em}
.reticle__w--l{grid-column:1;display:flex;justify-content:flex-end;min-width:0}
.reticle__w--p{grid-column:2;color:var(--pivot)}
.reticle__w--r{grid-column:3;display:flex;justify-content:flex-start;min-width:0}
.reticle.is-head .reticle__w{font-weight:800}
.reticle.is-idle .reticle__w{opacity:.55;transition:opacity var(--dur) var(--ease-out)}

/* Superficie: pannelli. Varia raggio e proporzioni, non fare card tutte uguali */
.panel{background:var(--surface);border:var(--rule);border-radius:var(--radius);box-shadow:var(--shadow)}
.panel--flat{box-shadow:none}
.panel--ghost{background:transparent}

/* sfondo a righe di quaderno, molto tenue: usalo al massimo una volta per sezione */
.bg-rigo{background-image:repeating-linear-gradient(to bottom, transparent 0 calc(var(--rigo-gap,2.2rem) - 1px), var(--line) calc(var(--rigo-gap,2.2rem) - 1px) var(--rigo-gap,2.2rem))}

/* ---------- pulsanti ---------- */
.btn{--btn-h:52px;display:inline-flex;align-items:center;justify-content:center;gap:.6em;min-height:var(--btn-h);padding:0 1.4em;border-radius:var(--radius-pill);font-weight:700;font-size:1rem;line-height:1;text-decoration:none;white-space:nowrap;border:1px solid transparent;transition:background-color var(--dur-fast) ease, color var(--dur-fast) ease, border-color var(--dur-fast) ease, transform var(--dur) var(--ease-out);-webkit-tap-highlight-color:transparent}
.btn:active{transform:scale(.97)}
.btn--primary{background:var(--accent);color:var(--on-accent)}
.btn--primary:hover{background:color-mix(in srgb, var(--accent) 86%, var(--ink))}
.btn--ghost{border-color:var(--line-strong);color:var(--ink)}
.btn--ghost:hover{border-color:var(--ink)}
.btn--quiet{padding-inline:.4em;min-height:44px;color:var(--muted);font-weight:500}
.btn--quiet:hover{color:var(--ink)}
.btn--sm{--btn-h:40px;padding:0 1.05em;font-size:.94rem}
.btn--icon{width:44px;min-height:44px;padding:0;border-radius:50%}
.btn .arrow{display:inline-block;transition:transform var(--dur) var(--ease-out)}
.btn:hover .arrow{transform:translateX(4px)}
.btn[aria-pressed="true"]{border-color:var(--accent);color:var(--accent)}

/* slider di velocita' coerente in tutte le sezioni */
.range{-webkit-appearance:none;appearance:none;width:100%;height:44px;background:transparent;cursor:pointer;--fill:50%}
.range::-webkit-slider-runnable-track{height:4px;border-radius:4px;background:linear-gradient(to right,var(--accent) 0 var(--fill),var(--line) var(--fill) 100%)}
.range::-moz-range-track{height:4px;border-radius:4px;background:var(--line)}
.range::-moz-range-progress{height:4px;border-radius:4px;background:var(--accent)}
.range::-webkit-slider-thumb{-webkit-appearance:none;width:22px;height:22px;margin-top:-9px;border-radius:50%;background:var(--ink);border:4px solid var(--bg);box-shadow:0 0 0 1px var(--line-strong)}
.range::-moz-range-thumb{width:16px;height:16px;border-radius:50%;background:var(--ink);border:4px solid var(--bg);box-shadow:0 0 0 1px var(--line-strong)}

/* ---------- salto al contenuto ---------- */
.skip{position:fixed;left:var(--gutter);top:-100px;z-index:100;padding:.7em 1em;background:var(--accent);color:var(--on-accent);border-radius:var(--radius-sm);font-weight:700;text-decoration:none}
.skip:focus{top:12px}

/* ---------- header fisso ---------- */
.site-header{position:fixed;inset:0 0 auto 0;z-index:50;height:var(--header-h);transition:transform var(--dur) var(--ease-out), background-color var(--dur) ease, border-color var(--dur) ease;border-bottom:1px solid transparent}
.site-header.is-scrolled{background:var(--scrim);-webkit-backdrop-filter:saturate(140%) blur(14px);backdrop-filter:saturate(140%) blur(14px);border-bottom-color:var(--line)}
.site-header.is-hidden{transform:translateY(-100%)}
.site-header__in{height:100%;display:flex;align-items:center;gap:var(--s-4)}
.brand{display:inline-flex;align-items:center;text-decoration:none;color:var(--ink);padding:10px 4px;margin-left:-4px;border-radius:8px}
.brand svg{height:30px;width:auto}
.logo-ink{fill:var(--ink)} .logo-ink-s{stroke:var(--ink)} .logo-pv{fill:var(--pivot)} .logo-ac{fill:var(--accent)}
.site-nav{margin-left:auto;display:none}
.site-nav ul{display:flex;gap:var(--s-1);list-style:none;margin:0;padding:0}
.site-nav a{display:inline-flex;align-items:center;min-height:44px;padding:0 .8em;text-decoration:none;color:var(--muted);font-size:.95rem;font-weight:500;border-radius:var(--radius-pill);transition:color var(--dur-fast) ease}
.site-nav a:hover,.site-nav a[aria-current="true"]{color:var(--ink)}
.site-header__actions{margin-left:auto;display:flex;align-items:center;gap:var(--s-2)}
@media (min-width:60em){ .site-nav{display:block} .site-header__actions{margin-left:var(--s-3)} }
.theme-toggle svg{width:20px;height:20px}
.theme-toggle .i-sun{display:none}
:root[data-theme-resolved="dark"] .theme-toggle .i-sun{display:block}
:root[data-theme-resolved="dark"] .theme-toggle .i-moon{display:none}

/* barra di avanzamento: il rigo della pagina, con la tacca rossa che avanza */
.page-progress{position:absolute;left:0;right:0;bottom:-1px;height:1px;pointer-events:none}
.page-progress__bar{height:100%;background:var(--accent);transform-origin:0 50%;transform:scaleX(var(--p,0))}
.page-progress__head{position:absolute;top:-3px;left:calc(var(--p,0) * 100%);width:2px;height:7px;background:var(--accent);transform:translateX(-1px);opacity:var(--o,0);transition:opacity var(--dur) ease}

/* ---------- main e sezioni ---------- */
main{display:block}
main > section{position:relative;padding-block:var(--section-y)}   /* ogni sezione ha gia' il suo respiro */
#hero{padding-top:calc(var(--header-h) + clamp(2rem, 1rem + 5vw, 5rem))}
main > section + section{border-top:var(--rule)}   /* il rigo fra una sezione e l'altra */
#hero{border-top:0}

/* ---------- piede ---------- */
.site-footer{border-top:var(--rule);padding-block:clamp(3.5rem, 2rem + 5vw, 6rem) calc(2rem + env(safe-area-inset-bottom));font-size:var(--fs-small);color:var(--muted)}
.site-footer__top{display:grid;gap:var(--s-6)}
@media (min-width:48em){ .site-footer__top{grid-template-columns:1fr auto;align-items:end} }
.site-footer .brand svg{height:40px}
.site-footer__claim{margin-top:var(--s-4);font-size:var(--fs-body);color:var(--ink);max-width:28rem}
.site-footer__claim a{color:var(--ink);text-decoration-color:var(--accent);text-underline-offset:.2em;text-decoration-thickness:1px}
.site-footer__links{display:flex;flex-wrap:wrap;gap:var(--s-1) var(--s-2);list-style:none;margin:0;padding:0}
.site-footer__links a{display:inline-flex;align-items:center;min-height:44px;padding:0 .6em;text-decoration:none;color:var(--muted)}
.site-footer__links a:hover{color:var(--ink)}
.site-footer__bottom{margin-top:var(--s-7);padding-top:var(--s-5);border-top:var(--rule);display:flex;flex-wrap:wrap;gap:var(--s-2) var(--s-5);justify-content:space-between}

/* ---------- utility di animazione ----------
   Gli stati iniziali valgono SOLO se il JS e' attivo (html.js) e il
   movimento e' consentito (html:not(.reduced)). Senza JS si vede tutto. */
.js:not(.reduced) [data-reveal]{opacity:0;transform:translate3d(0,28px,0)}
.js:not(.reduced) [data-reveal="fade"]{transform:none}
.js:not(.reduced) [data-reveal="left"]{transform:translate3d(-32px,0,0)}
.js:not(.reduced) [data-reveal="right"]{transform:translate3d(32px,0,0)}
.js:not(.reduced) [data-reveal="scale"]{transform:scale(.96)}
.js:not(.reduced) [data-split]{visibility:hidden}     /* evita il lampo prima dello split */
[data-split].is-split{visibility:visible !important}
/* paracadute: se il JS non arriva a "pronto" entro 4 s, tutto si mostra fermo */
.anim-failed [data-reveal],.anim-failed [data-reveal-manual],.anim-failed [data-split]{opacity:1 !important;transform:none !important;visibility:visible !important}
.split-line{display:block}
.split-mask{display:inline-block;overflow:hidden;vertical-align:top;padding-bottom:.08em;margin-bottom:-.08em}
.split-word{display:inline-block;will-change:transform}
.split-char{display:inline-block}
.will-move{will-change:transform,opacity}

/* scorrimento orizzontale "a rigo": una striscia che scorre sotto un punto fermo */
.marquee{overflow:hidden;white-space:nowrap;mask-image:linear-gradient(to right,transparent,#000 12%,#000 88%,transparent);-webkit-mask-image:linear-gradient(to right,transparent,#000 12%,#000 88%,transparent)}
.marquee__track{display:inline-flex;gap:1.2em;will-change:transform}

/* movimento ridotto: niente transizioni lunghe */
@media (prefers-reduced-motion: reduce){
  *,*::before,*::after{transition-duration:.01ms !important;animation-duration:.01ms !important;animation-iteration-count:1 !important}
  html{scroll-behavior:auto !important}
}

/* stampa: niente header, niente animazioni */
@media print{ .site-header,.skip{display:none} [data-reveal],[data-split]{opacity:1 !important;transform:none !important;visibility:visible !important} }
