/* Nervor · sito
   Tutti i colori stanno qui sotto: per cambiare palette basta cambiare questi valori
   (e le stesse voci in palette.html). */
@font-face{font-family:"Outfit";font-style:normal;font-weight:400;font-display:swap;src:url(../fonts/outfit-latin-400-normal.woff2) format("woff2")}
@font-face{font-family:"Outfit";font-style:normal;font-weight:500;font-display:swap;src:url(../fonts/outfit-latin-500-normal.woff2) format("woff2")}
@font-face{font-family:"Outfit";font-style:normal;font-weight:600;font-display:swap;src:url(../fonts/outfit-latin-600-normal.woff2) format("woff2")}

:root{
  /* fondo scuro */
  --ground:#0E1311;
  --surface:#171E1B;
  --surface-2:#1F2824;
  --line:#2A3330;          /* solo dentro i frammenti di interfaccia e nei campi del modulo */
  --ink:#ECEFEA;
  --soft:#C5CDC8;          /* = colore dei nodi del grafo; testo secondario su scuro */
  --node:#C5CDC8;
  --muted:#8D9691;
  /* accento */
  --accent:#FF5B2E;
  --accent-hover:#FF7650;
  --accent-press:#E2471C;
  --on-accent:#0E1311;
  --accent-soft:rgba(255,91,46,.16);   /* accento trasparente per evidenziare */
  /* fondo chiaro */
  --paper:#ECEFEA;
  --paper-2:#E0E5DF;
  --ink-paper:#0E1311;
  --muted-paper:#5A635E;
  --accent-paper:#B83A10;  /* accento usato come testo su fondo chiaro */
  /* stati, solo nei frammenti di interfaccia */
  --ok:#4CC38A;
  --warn:#F2B441;
  --danger:#FF6B6B;

  --font:"Outfit",system-ui,-apple-system,"Segoe UI",sans-serif;
  --code:ui-monospace,"Cascadia Mono",Consolas,"SFMono-Regular",monospace;
  --gutter:clamp(16px,3vw,48px);
  --section:clamp(112px,14vw,200px);
  --ease:cubic-bezier(.2,.7,.2,1);
}

*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
html,body{background:var(--ground);color:var(--ink);font-family:var(--font)}
body{-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;font-size:18px;line-height:1.5}
img,svg,canvas{display:block}
a{color:inherit}
button{font:inherit;color:inherit}
:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:4px}
::selection{background:var(--accent);color:var(--on-accent)}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.skip{position:absolute;left:var(--gutter);top:-60px;z-index:20;background:var(--ink);color:var(--ground);padding:10px 16px;border-radius:999px;text-decoration:none}
.skip:focus{top:12px}

/* ---------- bottone ---------- */
.btn{display:inline-block;background:var(--accent);color:var(--on-accent);font-weight:500;font-size:16px;line-height:1.2;padding:14px 24px;border-radius:999px;text-decoration:none;border:0;cursor:pointer;transition:transform .15s ease,background-color .15s ease}
.btn:hover{transform:translateY(-1px);background:var(--accent-hover)}
.btn:active{transform:translateY(0) scale(.98);background:var(--accent-press)}

/* ---------- HERO (identica al prototipo) ---------- */
.hero{position:relative;height:100svh;min-height:620px;overflow:hidden}
.hero canvas{position:absolute;inset:0;width:100%;height:100%;cursor:default}
.hero nav{position:absolute;top:0;left:0;right:0;z-index:3;display:flex;align-items:center;justify-content:space-between;padding:28px var(--gutter)}
.mark{font-weight:600;font-size:26px;letter-spacing:-.02em;color:var(--ink);text-decoration:none;line-height:1}
.links{display:flex;gap:32px;align-items:center}
.links a{color:var(--ink);text-decoration:none;font-size:16px;opacity:.85;transition:opacity .15s}
.links a:hover{opacity:1}
.links a.btn{opacity:1}
.langs{display:flex;gap:12px;font-size:14px}
.langs a{opacity:.55;text-decoration:none}
.langs a[aria-current]{opacity:1}
.hero .copy{position:absolute;z-index:2;left:var(--gutter);bottom:clamp(48px,11vh,120px);max-width:min(56vw,820px);pointer-events:none}
.hero .copy *{pointer-events:auto}
.hero h1{font-weight:500;font-size:clamp(44px,5.2vw,92px);line-height:.98;letter-spacing:-.035em;text-wrap:balance}
.hero h1 span{display:block;white-space:nowrap}
.hero .lead{margin-top:36px;font-size:clamp(17px,1.35vw,21px);line-height:1.5;max-width:34em;color:var(--ink)}
.hero .copy .btn{margin-top:36px}

[data-ui].card{position:absolute;z-index:4;width:300px;background:var(--surface);border:1px solid rgba(236,239,234,.10);border-radius:8px;padding:18px 18px 16px;opacity:0;transform:translateY(6px);transition:opacity .2s ease,transform .2s ease;pointer-events:none}
[data-ui].card.on{opacity:1;transform:none;pointer-events:auto}
[data-ui].card .t{font-size:17px;font-weight:500;letter-spacing:-.01em;line-height:1.3}
[data-ui].card .m{margin-top:4px;font-size:13px;color:var(--muted)}
[data-ui].card .fix{margin-top:14px;padding-top:12px;border-top:1px solid rgba(236,239,234,.08)}
[data-ui].card .who{font-size:13px;color:var(--muted)}
[data-ui].card .q{margin-top:4px;font-size:15px;line-height:1.45}
[data-ui].card .q::before{content:"+ ";color:var(--accent)}

/* ---------- barra che compare dopo la hero ---------- */
.bar{position:fixed;top:0;left:0;right:0;z-index:10;display:flex;align-items:center;justify-content:space-between;padding:14px var(--gutter);background:var(--ground);transform:translateY(-100%);transition:transform .35s var(--ease)}
.bar.on{transform:none}
.bar .btn{padding:11px 20px;font-size:15px}

/* ---------- impaginazione comune ---------- */
.wrap{padding-left:var(--gutter);padding-right:var(--gutter);max-width:1600px;margin:0 auto}
.grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:clamp(16px,2.4vw,40px)}
.h2{font-weight:500;font-size:clamp(40px,5.2vw,88px);line-height:1;letter-spacing:-.035em;text-wrap:balance}
.lead2{font-size:clamp(18px,1.45vw,22px);line-height:1.5;max-width:34em}
.statement{font-weight:500;font-size:clamp(36px,4.4vw,76px);line-height:1.02;letter-spacing:-.03em;text-wrap:balance}

/* ---------- scene a scorrimento (stage che resta fermo) ---------- */
.scene{position:relative}
.js .scene{height:calc(100svh * (1 + var(--hold,3)))}
.js .stage{position:sticky;top:0;height:100svh;overflow:hidden}
.scenes-off .scene{height:auto}
.scenes-off .stage{position:relative;height:auto}

/* ---------- IL CICLO ---------- */
#come-funziona .stage{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:clamp(16px,2.4vw,40px);align-items:center;padding:0 var(--gutter);max-width:1600px;margin:0 auto}
.says{grid-column:1/6;position:relative;height:3.2em;font-size:clamp(36px,4.4vw,76px)}
.says p{position:absolute;left:0;right:0;bottom:0;font-size:1em;opacity:0;transform:translateY(.35em);transition:opacity .45s var(--ease),transform .45s var(--ease)}
.says p.on{opacity:1;transform:none}
.says p.gone{opacity:0;transform:translateY(-.35em)}
.win{grid-column:7/13;height:min(74svh,700px);position:relative;overflow:hidden;-webkit-mask-image:linear-gradient(to bottom,transparent 0,#000 40px,#000 calc(100% - 40px),transparent 100%);mask-image:linear-gradient(to bottom,transparent 0,#000 40px,#000 calc(100% - 40px),transparent 100%)}
.track{padding:0;transition:transform .7s var(--ease)}
.tl-fill{display:none}
.rest-label{display:none}

[data-ui].ui{font-size:16px;line-height:1.45;color:var(--ink)}
[data-ui].ui .blk{background:var(--surface);border:1px solid rgba(236,239,234,.07);border-radius:10px;padding:22px 24px;margin-bottom:14px;transition:opacity .5s var(--ease),transform .5s var(--ease),background-color .4s}
.js:not(.scenes-off) [data-ui].ui .blk{opacity:0;transform:translateY(28px)}
.js:not(.scenes-off) [data-ui].ui .blk.in{opacity:1;transform:none}
.js:not(.scenes-off) [data-ui].ui .blk.past{opacity:.38}
[data-ui].ui .row{display:flex;justify-content:space-between;gap:16px;align-items:baseline}
[data-ui].ui .k{font-size:13px;color:var(--muted)}
[data-ui].ui .from{font-weight:500}
[data-ui].ui .subj{margin-top:10px;font-weight:500;font-size:17px}
[data-ui].ui .body{margin-top:4px;color:var(--soft)}
[data-ui].ui .kv{display:grid;grid-template-columns:110px 1fr;row-gap:6px;margin-top:12px}
[data-ui].ui .kv dt{color:var(--muted);font-size:14px}
[data-ui].ui .kv dd{font-size:16px}
[data-ui].ui pre{margin-top:12px;background:var(--ground);border-radius:6px;padding:12px 14px;font-family:var(--code);font-size:14px;line-height:1.6;color:var(--soft);white-space:pre-wrap;word-break:break-word}
[data-ui].ui pre b{color:var(--ink);font-weight:600}
[data-ui].ui pre .s{color:var(--ok)}
[data-ui].ui .state{margin-top:12px;background:var(--ground);border-radius:6px;padding:12px 14px;font-family:var(--code);font-size:14px;line-height:1.6;color:var(--soft);display:grid;grid-template-columns:auto 1fr;column-gap:24px;row-gap:2px;overflow-wrap:anywhere}
[data-ui].ui .state b{color:var(--ink);font-weight:600}
[data-ui].ui pre .hl{color:var(--accent);background:var(--accent-soft);border-radius:3px}
[data-ui].ui .btns{display:flex;gap:8px;margin-top:14px}
[data-ui].ui .ub{font-size:14px;padding:8px 14px;border-radius:6px;background:var(--surface-2);border:1px solid var(--line);transition:background-color .3s,color .3s,border-color .3s}
[data-ui].ui .ub.pri{background:var(--ink);color:var(--ground);border-color:var(--ink)}
[data-ui].ui .ub.hot{background:var(--accent);color:var(--on-accent);border-color:var(--accent)}
[data-ui].ui .typed{margin-top:8px;font-size:17px;min-height:1.5em}
[data-ui].ui .caret{display:inline-block;width:2px;height:1.1em;vertical-align:-.15em;background:var(--accent);margin-left:2px;animation:blink 1s steps(1) infinite}
@keyframes blink{50%{opacity:0}}
[data-ui].ui ol{list-style:none;margin-top:12px;counter-reset:s}
[data-ui].ui ol li{counter-increment:s;display:flex;gap:10px;padding:6px 0;color:var(--soft)}
[data-ui].ui ol li::before{content:counter(s);color:var(--muted);font-size:13px;width:14px;padding-top:2px}
[data-ui].ui ol li.new{color:var(--ink)}
[data-ui].ui ol li.new span{background:var(--accent-soft);box-shadow:0 0 0 4px var(--accent-soft);border-radius:3px}
[data-ui].ui .tag{display:inline-block;margin-top:12px;font-size:13px;color:var(--accent);background:var(--accent-soft);padding:4px 10px;border-radius:999px}
[data-ui].ui .dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--accent);margin-right:8px;vertical-align:1px}
[data-ui].ui .ok{color:var(--ok)}

/* ---------- SICUREZZA ---------- */
#sicurezza{padding:var(--section) 0}
#sicurezza .h2{grid-column:1/10}
#sicurezza .lead2{grid-column:1/8;margin-top:36px}
.net{grid-column:1/13;margin-top:clamp(56px,7vw,96px);display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:clamp(16px,2.4vw,40px);align-items:center}
.field{grid-column:1/8;background:var(--surface);border-radius:20px;padding:clamp(20px,2.4vw,36px)}
.field .nl{font-size:15px;color:var(--soft)}
.tiles{margin-top:20px;display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
.tile{background:var(--surface-2);border-radius:12px;padding:22px 18px;font-size:clamp(15px,1.25vw,19px);font-weight:500;min-height:96px;display:flex;align-items:flex-end}
.tile.me{background:var(--ink);color:var(--ground)}
.out{grid-column:8/10;position:relative;height:100%;display:flex;align-items:center}
.out svg{width:100%;height:40px;overflow:visible;color:var(--accent)}
.out .ol{position:absolute;left:0;right:0;bottom:calc(50% + 14px);text-align:center;font-size:15px;line-height:1.3;color:var(--accent)}
.model{grid-column:10/13;border-radius:12px;padding:22px 18px;font-size:clamp(15px,1.25vw,19px);font-weight:500;min-height:96px;display:flex;align-items:flex-end;background:transparent;box-shadow:inset 0 0 0 2px var(--surface-2)}
.facts{grid-column:1/13;margin-top:clamp(64px,8vw,112px);display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:clamp(24px,4vw,80px);row-gap:48px;list-style:none}
.facts h3{font-weight:500;font-size:clamp(22px,1.9vw,28px);letter-spacing:-.015em;line-height:1.2}
.facts p{margin-top:10px;color:var(--soft);max-width:30em}

/* ---------- MARCO ---------- */
#memoria .stage canvas{position:absolute;inset:0;width:100%;height:100%}
.mtext{position:absolute;z-index:2;left:var(--gutter);bottom:clamp(48px,11vh,120px);width:min(46vw,700px)}
.msays{position:relative;height:2.2em;font-size:clamp(36px,4.4vw,76px)}
.msays p{position:absolute;left:0;bottom:0;font-size:1em;opacity:0;transform:translateY(.3em);transition:opacity .45s var(--ease),transform .45s var(--ease)}
.msays p.on{opacity:1;transform:none}
.msays p.gone{opacity:0;transform:translateY(-.3em)}
.team{display:flex;flex-wrap:wrap;gap:10px;margin-top:32px;list-style:none}
.team li{font-size:15px;padding:8px 14px;border-radius:999px;background:var(--surface);color:var(--soft);transition:opacity .6s,background-color .6s,color .6s}
.team li.m{background:var(--accent);color:var(--on-accent)}
.team li.left{opacity:.28;background:var(--surface);color:var(--muted);text-decoration:line-through}
.scenes-off #memoria .stage{height:100svh;min-height:620px}
.scenes-off .msays{height:auto}
.scenes-off .msays p{position:static;opacity:1;transform:none;display:none}
.scenes-off .msays p:nth-child(4),.scenes-off .msays p:nth-child(5){display:block}

/* ---------- FONDO CHIARO: competenze e domande ---------- */
.paper{background:var(--paper);color:var(--ink-paper);padding:var(--section) 0}
.paper ::selection{background:var(--ink-paper);color:var(--paper)}
.caps-h{grid-column:1/6}
.caps{grid-column:6/13;list-style:none}
.caps li{font-size:clamp(26px,2.6vw,42px);font-weight:500;letter-spacing:-.02em;line-height:1.15;padding:10px 0;display:flex;align-items:baseline;gap:18px}
.caps li.more{color:var(--muted-paper)}
.caps li.more::before{background:transparent;box-shadow:inset 0 0 0 2px var(--accent-paper)}
.caps li::before{content:"";flex:0 0 auto;width:12px;height:12px;border-radius:50%;background:var(--accent-paper);transform:translateY(-.12em)}
.caps-note{grid-column:6/13;margin-top:28px;color:var(--muted-paper);max-width:32em}
.faq-h{grid-column:1/6;margin-top:var(--section)}
.faq-h .h2{position:sticky;top:110px}
.faq{grid-column:6/13;margin-top:var(--section)}
.faq details{background:var(--paper-2);border-radius:14px;margin-bottom:10px;transition:background-color .2s}
.faq details[open]{background:#D5DBD4}
.faq summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;gap:24px;align-items:center;padding:24px 26px;font-size:clamp(19px,1.5vw,23px);font-weight:500;letter-spacing:-.01em;line-height:1.3}
.faq summary::-webkit-details-marker{display:none}
.faq summary i{flex:0 0 auto;width:30px;height:30px;border-radius:50%;background:var(--ink-paper);position:relative;transition:transform .25s var(--ease)}
.faq summary i::before,.faq summary i::after{content:"";position:absolute;left:50%;top:50%;width:12px;height:2px;background:var(--paper);transform:translate(-50%,-50%)}
.faq summary i::after{transform:translate(-50%,-50%) rotate(90deg)}
.faq details[open] summary i{transform:rotate(45deg);background:var(--accent-paper)}
.faq details p{padding:0 26px 26px;max-width:38em;font-size:18px}
.faq summary:focus-visible{outline-color:var(--ink-paper);outline-offset:-4px;border-radius:14px}

/* ---------- PILOTA ---------- */
#contatti{padding:var(--section) 0}
.pilot-h{grid-column:1/6}
.pilot-h .lead2{margin-top:32px;color:var(--soft)}
form.f{grid-column:7/13}
.f fieldset{border:0}
.f legend,.f label{display:block;font-size:15px;color:var(--soft);margin-bottom:8px}
.seg{display:flex;flex-wrap:wrap;gap:8px}
.seg label{margin:0;cursor:pointer}
.seg input{position:absolute;opacity:0;pointer-events:none}
.seg span{display:inline-block;padding:11px 20px;border-radius:999px;background:var(--surface);color:var(--ink);font-size:16px;transition:background-color .2s,color .2s}
.seg input:checked+span{background:var(--ink);color:var(--ground)}
.seg input:focus-visible+span{outline:2px solid var(--accent);outline-offset:3px}
.fr{margin-top:24px}
.fr2{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.f input[type=text],.f input[type=email],.f textarea{width:100%;font:inherit;font-size:17px;color:var(--ink);background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:14px 16px;transition:border-color .2s}
.f textarea{min-height:130px;resize:vertical}
.f input:focus,.f textarea:focus{outline:0;border-color:var(--accent)}
.f ::placeholder{color:var(--muted)}
.f .hp{position:absolute;left:-9999px}
.f .send{margin-top:28px;display:flex;flex-wrap:wrap;align-items:center;gap:20px}
.f .pv{font-size:14px;color:var(--muted)}
.f .pv a{color:var(--soft)}
.f .msg{margin-top:20px;font-size:17px;min-height:1.5em}
.f .msg.ok{color:var(--ok)}
.f .msg.err{color:var(--danger)}

/* ---------- FOOTER ---------- */
footer{padding:72px 0 32px}
.foot-row{display:flex;flex-wrap:wrap;gap:16px 40px;align-items:baseline;font-size:16px}
.foot-row a{text-decoration:none;opacity:.85}
.foot-row a:hover{opacity:1}
.foot-row .sp{flex:1}
.big .dot,.mark .dot{color:var(--accent);margin-left:.03em}
.pilot-h .lead-next{margin-top:16px}
.big{font-weight:600;font-size:min(calc((100vw - 2 * var(--gutter)) / 3.22),467px);letter-spacing:-.02em;line-height:.8;margin-top:40px;color:var(--ink);white-space:nowrap;overflow:hidden}

/* ---------- pagina privacy ---------- */
.legal{padding:140px 0 var(--section)}
.legal .h2{max-width:14em}
.legal .txt{margin-top:48px;max-width:42em}
.legal .txt h2{font-size:22px;font-weight:500;margin-top:40px}
.legal .txt p,.legal .txt li{margin-top:12px;color:var(--soft)}
.legal .txt ul{padding-left:20px}
.legal-nav{position:absolute;top:0;left:0;right:0;display:flex;justify-content:space-between;align-items:center;padding:28px var(--gutter)}

/* ---------- entrate al passaggio ---------- */
.js:not(.scenes-off) .rv{opacity:0;transform:translateY(24px);transition:opacity .7s var(--ease),transform .7s var(--ease);transition-delay:calc(var(--d,0) * 80ms)}
.js:not(.scenes-off) .rv.in{opacity:1;transform:none}

/* ---------- tablet ---------- */
@media (max-width:1080px){
  .field{grid-column:1/13}
  .out{grid-column:1/13;height:110px;justify-content:center}
  .out svg{width:90px;height:40px;transform:rotate(90deg)}
  .out .ol{left:calc(50% + 36px);right:auto;bottom:auto;top:50%;transform:translateY(-50%);text-align:left;max-width:50%}
  .model{grid-column:3/11;text-align:center;justify-content:center;align-items:center;min-height:80px}
}

/* ---------- telefono ---------- */
@media (max-width:820px){
  body{font-size:17px}
  .links a:not(.btn){display:none}
  .langs{display:none}
  .hero .copy{max-width:none;right:16px;bottom:40px}
  .hero h1{font-size:clamp(30px,8.6vw,56px)}
  .hero .lead{margin-top:20px}
  .hero .copy .btn{margin-top:24px}
  [data-ui].card{width:min(300px,calc(100vw - 32px))}
  .bar .links a:not(.btn){display:none}

  #come-funziona .stage{grid-template-columns:1fr;align-content:center;row-gap:20px;padding-top:24px}
  .says{grid-column:1;height:2.3em;font-size:clamp(30px,8.4vw,44px)}
  .win{grid-column:1;height:62svh}
  [data-ui].ui{font-size:14px}
  [data-ui].ui .blk{padding:16px}
  [data-ui].ui .kv{grid-template-columns:96px 1fr}
  [data-ui].ui .state{grid-template-columns:1fr;row-gap:0}
  [data-ui].ui .state b{margin-bottom:6px}

  #sicurezza .h2,#sicurezza .lead2{grid-column:1/13}
  .tiles{grid-template-columns:1fr 1fr}
  .tile{min-height:76px;padding:16px 14px}
  .model{grid-column:1/13}
  .facts{grid-template-columns:1fr;row-gap:36px}

  .mtext{width:auto;right:var(--gutter);bottom:40px}
  .msays{font-size:clamp(30px,8.4vw,44px)}

  .caps-h,.caps,.caps-note,.faq-h,.faq,.pilot-h,form.f{grid-column:1/13}
  .caps{margin-top:32px}
  .faq-h .h2{position:static}
  .faq{margin-top:32px}
  .faq summary{padding:20px}
  .faq details p{padding:0 20px 22px}
  form.f{margin-top:48px}
  .fr2{grid-template-columns:1fr}
}

/* ---------- telefono: le scene scorrono come una pagina normale ---------- */
.flow .scene{height:auto}
.flow .stage{position:relative;height:auto;overflow:visible}
.flow #come-funziona .stage{display:block;padding-top:var(--section)}
.flow .says{display:none}
.flow .win{height:auto;overflow:visible;-webkit-mask-image:none;mask-image:none}
.flow .track{transform:none!important}
.flow .track{position:relative;padding-left:36px}
.flow .track::before{content:"";position:absolute;left:6px;top:16px;bottom:28px;width:2px;background:var(--surface-2)}
.flow .tl-fill{display:block;position:absolute;left:6px;top:16px;width:2px;height:0;background:var(--accent)}
.flow .rest-label{position:relative;display:block;font-weight:500;font-size:clamp(28px,7.6vw,36px);letter-spacing:-.025em;line-height:1.1;margin:150px 0 22px;opacity:0;transform:translateY(20px);transition:opacity .6s var(--ease),transform .6s var(--ease)}
.flow .rest-label:first-of-type{margin-top:0}
.flow .rest-label::before{content:"";position:absolute;left:-36px;top:calc((1.1em - 14px) / 2);width:14px;height:14px;border-radius:50%;background:var(--ground);box-shadow:inset 0 0 0 2px var(--surface-2);transition:background-color .4s,box-shadow .4s}
.flow .rest-label.lit::before{background:var(--accent);box-shadow:inset 0 0 0 2px var(--accent)}
.flow .rest-label.in{opacity:1;transform:none}
.js.flow [data-ui].ui .blk.past{opacity:1}
.flow #memoria{margin-top:var(--section)}
.flow #memoria .stage{height:100svh;min-height:560px;overflow:hidden}
.replay{display:inline-block;margin-top:18px;background:none;border:0;color:var(--soft);font-size:16px;padding:10px 0;cursor:pointer;text-decoration:underline;text-underline-offset:5px}
.replay[hidden]{display:none}

/* ---------- senza scene (movimento ridotto o senza script) ---------- */
.scenes-off .says{display:none}
.scenes-off .win{-webkit-mask-image:none;mask-image:none;height:auto;overflow:visible}
.scenes-off .track{transform:none!important;padding:0}
.scenes-off #come-funziona .stage{padding-top:var(--section);padding-bottom:0}
.scenes-off .rest-label{display:block;font-size:clamp(24px,2.4vw,36px);font-weight:500;letter-spacing:-.02em;margin:40px 0 16px}
.scenes-off .rest-label:first-of-type{margin-top:0}
.scenes-off .win{grid-column:1/13;max-width:760px}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{transition-duration:.01ms!important;animation:none!important}
}
