  @font-face { font-family:'Good Times'; src:url("/fonts/good-times-400.otf") format('opentype'); font-weight:400; font-style:normal; font-display:swap; }
  @font-face { font-family:'Corporative Sans'; src:url("/fonts/corporative-sans-300.otf") format('opentype'); font-weight:300; font-style:normal; font-display:swap; }
  @font-face { font-family:'Corporative Sans'; src:url("/fonts/corporative-sans-400.otf") format('opentype'); font-weight:400; font-style:normal; font-display:swap; }
  @font-face { font-family:'Corporative Sans'; src:url("/fonts/corporative-sans-500.otf") format('opentype'); font-weight:500; font-style:normal; font-display:swap; }
  @font-face { font-family:'Corporative Sans'; src:url("/fonts/corporative-sans-700.otf") format('opentype'); font-weight:700; font-style:normal; font-display:swap; }

  :root{
    --green:#84BA26;--green-d:#6f9e1d;--green-dd:#5a8417;--dark:#2F4F1D;--dark-2:#21380f;
    --light:#EEF7DF;--light-2:#f5faea;--night:#0D2433;--night-2:#0a1b27;--night-card:#15344a;
    --purple:#7B3FF2;--ink:#13262f;--body:#52635d;--muted:#6f7e73;--line:#e4eede;--line-c:#e7ecee;
    --crit:#E5484D;--alta:#E5764D;--media:#E5A11A;--bassa:#84BA26;--white:#ffffff;
  }
  *{box-sizing:border-box}
  html{scroll-behavior:smooth}
  /* Clip orizzontale su ENTRAMBE le radici: con html non-visible al viewport si propaga
     il valore di html e il body CONSERVA il proprio clip, così taglia davvero i discendenti
     che sforassero (col solo body il clip finiva propagato e iOS Safari lasciava comunque
     trascinare la pagina di lato). Rete di sicurezza: il fix vero è il minimo fluido delle
     griglie qui sotto. `clip` e non `hidden` perché non crea uno scroll container: l'header
     position:sticky continua a funzionare. */
  html,body{overflow-x:clip;}
  body{margin:0;font-family:'Corporative Sans',system-ui,-apple-system,sans-serif;color:var(--ink);background:var(--white);-webkit-font-smoothing:antialiased;}
  a{color:inherit}
  .hidden{display:none !important;}
  /* Report parziale «N problemi» — mockup del titolare, 4 settembre 2026 */
  ul.pp-find{list-style:none;margin:0;padding:0;border:1px solid var(--line);border-radius:14px;overflow:hidden;background:#fff;}
  ul.pp-find li{display:flex;gap:12px;align-items:flex-start;padding:14px 16px;border-bottom:1px solid var(--line);}
  ul.pp-find li:last-child{border-bottom:none;}
  .pp-sev{flex:0 0 auto;font-family:'Good Times';font-size:9.5px;letter-spacing:.06em;text-transform:uppercase;padding:5px 8px;border-radius:5px;color:#fff;margin-top:2px;min-width:60px;text-align:center;}
  .pp-sev.critica{background:var(--crit);}.pp-sev.alta{background:var(--alta);}.pp-sev.media{background:var(--media);}.pp-sev.bassa{background:var(--bassa);}
  .pp-body{flex:1 1 auto;min-width:0;}
  .pp-t{font-weight:700;font-size:15px;color:var(--night);line-height:1.3;}
  .pp-d{font-size:13.5px;color:var(--body);margin-top:4px;line-height:1.5;}
  li.pp-locked{background:#fbfcfc;position:relative;padding-right:44px;}
  li.pp-locked .pp-t,li.pp-locked .pp-d{filter:blur(4.5px);user-select:none;pointer-events:none;}
  li.pp-locked.pp-conta .pp-t{filter:none;user-select:auto;}
  li.pp-locked::after{content:"🔒";position:absolute;right:16px;top:50%;transform:translateY(-50%);font-size:14px;opacity:.45;}
  .pp-urg{margin-top:14px;background:#fff6ee;border-left:3px solid var(--alta);padding:12px 16px;border-radius:0 10px 10px 0;font-size:14px;line-height:1.55;color:var(--ink);}
  .pp-urg b{color:var(--alta);}
  .pp-cta{margin-top:22px;background:var(--night);border-radius:16px;padding:22px 24px;color:#fff;}
  .pp-cta-t{font-family:'Good Times';font-size:clamp(15px,2vw,17px);line-height:1.25;margin-bottom:6px;}
  .pp-cta-s{font-size:14px;color:rgba(255,255,255,.78);margin-bottom:14px;line-height:1.5;}
  .pp-form{display:flex;gap:8px;align-items:stretch;}
  @media(max-width:560px){.pp-form{flex-direction:column;}}
  .pp-form input[type=email]{flex:1 1 auto;min-width:0;border:none;border-radius:10px;padding:13px 14px;font-family:inherit;font-size:16px;color:var(--ink);background:#fff;outline:none;}
  .pp-form input[type=email]:focus{box-shadow:0 0 0 3px rgba(132,186,38,.45);}
  .pp-consent{display:flex;gap:10px;align-items:flex-start;margin-top:12px;cursor:pointer;font-size:12.5px;line-height:1.5;color:rgba(255,255,255,.78);}
  .pp-consent a{color:#fff;}
  .pp-cta .form-msg{margin-top:8px;color:#ffd0d0;}
  .pp-micro{font-size:12.5px;color:rgba(255,255,255,.58);margin:10px 0 0;line-height:1.45;}

  /* Animations */
  @keyframes pcPulse{0%,100%{opacity:1}50%{opacity:.3}}
  @keyframes pcPing{0%{transform:scale(.5);opacity:.7}100%{transform:scale(2.4);opacity:0}}
  @keyframes pcFadeUp{from{opacity:0;transform:translateY(22px)}to{opacity:1;transform:none}}
  @keyframes pcDraw{from{stroke-dashoffset:var(--arc-empty,377)}}
  @keyframes pcSpin{to{transform:rotate(360deg)}}
  .pc-dyn{animation:pcFadeUp .55s cubic-bezier(.22,1,.36,1) both;}

  /* Reveal-on-scroll */
  [data-reveal]{opacity:0;transform:translateY(20px);transition:opacity .7s cubic-bezier(.22,1,.36,1),transform .7s cubic-bezier(.22,1,.36,1);}
  [data-reveal].in{opacity:1;transform:none;}

  /* Hover helpers (design used inline style-hover; reproduced as classes) */
  .nav-cta:hover{background:var(--green-d) !important;transform:translateY(-1px);}
  .scan-submit:hover{background:var(--green-d) !important;transform:translateY(-2px) scale(1.01);box-shadow:0 16px 32px rgba(132,186,38,.46) !important;}
  .scan-submit:active{transform:translateY(0) scale(.985);}
  .risk-card{transition:transform .26s cubic-bezier(.22,1,.36,1),box-shadow .26s;}
  .risk-card:hover{transform:translateY(-6px);box-shadow:0 26px 50px -28px rgba(0,0,0,.6);}
  .what-card{transition:transform .2s,box-shadow .2s;}
  .what-card:hover{transform:translateY(-3px);box-shadow:0 18px 38px -22px rgba(13,36,51,.2);}
  .pkg-cta-link:hover{background:var(--dark) !important;color:#fff !important;transform:translateY(-3px) scale(1.02);box-shadow:0 16px 28px -10px rgba(47,79,29,.5);}
  .cta-final-btn:hover,.talk-btn:hover{background:#fff !important;transform:translateY(-2px);}

  /* Booking in-app — colonne per giorno stile Google Calendar */
  .slot-days{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;}
  @media (max-width:560px){.slot-days{grid-template-columns:repeat(2,1fr);}}
  .slot-col-times{display:flex;flex-direction:column;gap:8px;max-height:330px;overflow-y:auto;padding:2px 4px 6px;scrollbar-width:thin;}
  .slot-pick{background:#fff;border:1px solid #cfe0b0;color:var(--green-dd);font:inherit;font-size:14.5px;font-weight:700;padding:10px 12px;border-radius:999px;cursor:pointer;transition:background .12s,border-color .12s,transform .12s;}
  .slot-pick:hover{background:#f3f7ec;border-color:var(--green);transform:translateY(-1px);}
  .slot-pick:disabled{opacity:.45;cursor:default;transform:none;}
  .slot-nav{appearance:none;background:#fff;border:1px solid var(--line);border-radius:50%;width:34px;height:34px;font-size:17px;line-height:1;color:var(--ink);cursor:pointer;flex:0 0 auto;transition:background .12s;}
  .slot-nav:hover:not(:disabled){background:#f3f7ec;}
  .slot-nav:disabled{opacity:.35;cursor:default;}

  /* Verifica tecnica (sito irraggiungibile / non-WP) — form 2 step stile mockup */
  .tc-stepper{display:flex;align-items:center;justify-content:center;gap:10px;margin:22px 0 0;}
  .tc-st{display:flex;align-items:center;gap:8px;font-size:12.5px;font-weight:600;color:var(--muted);}
  .tc-st .n{width:24px;height:24px;border-radius:50%;background:#fff;border:1px solid var(--line);display:flex;align-items:center;justify-content:center;font-family:'Good Times';font-size:11px;color:var(--muted);}
  .tc-st.on{color:var(--ink);}
  .tc-st.on .n{background:linear-gradient(135deg,#93C53C 0%,#6f9e1d 100%);border-color:transparent;color:#14260f;}
  .tc-st.done .n{background:var(--night);border-color:transparent;color:#fff;}
  .tc-bar{width:34px;height:2px;background:var(--line);border-radius:2px;}
  .tc-card{margin-top:26px;background:#fff;border:1px solid var(--line);border-radius:22px;box-shadow:0 26px 56px -30px rgba(13,36,51,.28);padding:clamp(24px,3vw,34px);}
  .tc-step{display:none;animation:tcFade .3s ease;}
  .tc-step.active{display:block;}
  @keyframes tcFade{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
  .tc-grid2{display:grid;grid-template-columns:1fr 1fr;gap:15px;margin-top:15px;}
  @media (max-width:640px){.tc-grid2{grid-template-columns:1fr;}}
  .tc-field{display:flex;flex-direction:column;gap:7px;margin-top:15px;}
  .tc-grid2 .tc-field{margin-top:0;}
  .tc-field label{font-size:13.5px;font-weight:600;color:var(--night);}
  .tc-field input,.tc-field select,.tc-field textarea{font-family:inherit;font-size:16px;color:var(--ink);background:#fbfdf6;border:1px solid var(--line);border-radius:11px;padding:13px;outline:none;width:100%;}
  .tc-field textarea{resize:vertical;min-height:92px;}
  .tc-field select{appearance:none;background-image:url('data:image/svg+xml;utf8,<svg xmlns=%22http://www.w3.org/2000/svg%22 width=%2214%22 height=%2214%22 fill=%22none%22 stroke=%22%236f7e73%22 stroke-width=%222.2%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22><polyline points=%226 9 12 15 18 9%22/></svg>');background-repeat:no-repeat;background-position:right 14px center;}
  .tc-field input:focus,.tc-field select:focus,.tc-field textarea:focus{border-color:var(--green);background:#fff;box-shadow:0 0 0 3px rgba(143,195,63,.18);}
  .tc-back{appearance:none;background:#fff;border:1px solid var(--line);color:var(--ink);font:inherit;font-weight:600;font-size:14px;padding:12px 20px;border-radius:12px;cursor:pointer;transition:border-color .15s,color .15s;}
  .tc-back:hover{border-color:var(--green);color:var(--green-d);}
  .tc-confirm{text-align:center;padding:14px 0;}
  .tc-confirm .ok{width:74px;height:74px;border-radius:50%;background:#eaf6d8;display:flex;align-items:center;justify-content:center;margin:0 auto 22px;}
  .tc-confirm .ok svg{width:36px;height:36px;color:var(--green-d);}
  .tc-recap{display:inline-flex;align-items:center;gap:10px;background:var(--light-2);border:1px solid var(--line);border-radius:14px;padding:14px 20px;margin:20px 0 0;font-size:15px;color:var(--ink);font-weight:600;}
  .tc-recap svg{width:18px;height:18px;color:var(--green-d);flex:0 0 auto;}

  /* Spinner for loading buttons */
  .spinner{display:inline-block;width:18px;height:18px;border:2px solid rgba(33,56,15,.3);border-top-color:var(--dark-2);border-radius:50%;animation:pcSpin .7s linear infinite;vertical-align:middle;}

  /* Inline form message */
  .form-msg{display:none;align-items:center;gap:9px;font-size:13.5px;line-height:1.4;margin-top:12px;padding:11px 13px;border-radius:11px;}
  .form-msg.show{display:flex;}
  .form-msg.error{background:rgba(229,72,77,.08);border:1px solid rgba(229,72,77,.3);color:#b3373b;}
  .form-msg.info{background:rgba(229,161,26,.09);border:1px solid rgba(229,161,26,.3);color:#9a6e0e;}
  .form-msg svg{width:18px;height:18px;flex:0 0 auto;}

  /* Toast */
  .toast{position:fixed;left:50%;bottom:26px;transform:translateX(-50%) translateY(20px);z-index:300;display:flex;align-items:center;gap:10px;background:var(--night);color:#fff;font-size:14px;padding:13px 18px;border-radius:13px;box-shadow:0 18px 44px -16px rgba(0,0,0,.5);opacity:0;pointer-events:none;transition:opacity .25s,transform .25s;max-width:90vw;}
  .toast.show{opacity:1;transform:translateX(-50%) translateY(0);pointer-events:auto;}
  .toast svg{width:20px;height:20px;flex:0 0 auto;color:var(--media);}

  /* Field focus */
  .pc-input:focus,.pc-select:focus{border-color:var(--green) !important;background:#fff !important;}
  .pc-input[aria-invalid="true"]{border-color:var(--crit) !important;}

  @media (max-width:560px){ .formgrid{grid-template-columns:1fr !important;} }
  @media (max-width:760px){ .navtag{display:none !important;} }

  /* ================================================================
     V4 — MOTION & POLISH LAYER (solo design: testi/colori/logica intatti)
     ================================================================ */
  #pc-progress{position:fixed;top:0;left:0;height:3px;width:0;background:linear-gradient(90deg,var(--green),var(--green-d) 60%,var(--purple));z-index:999;border-radius:0 3px 3px 0;box-shadow:0 0 12px rgba(132,186,38,.55);pointer-events:none;transition:width .12s linear;}
  header{transition:transform .38s cubic-bezier(.22,1,.36,1),box-shadow .3s;}
  /* CTA nav: compare con un "pop" solo dopo aver superato la card "Analisi del tuo sito" */
  header.pc-ctamode .nav-cta{opacity:0;transform:translateY(-18px) scale(.6) rotate(4deg);filter:blur(6px);pointer-events:none;transition:opacity .55s cubic-bezier(.34,1.56,.64,1),transform .55s cubic-bezier(.34,1.56,.64,1),filter .45s,background .2s !important;}
  header.pc-ctamode.pc-cta .nav-cta{opacity:1;transform:none;filter:none;pointer-events:auto;}
  header.pc-ctamode.pc-cta .nav-cta::after{animation:pcSweep .9s .4s ease;}
  /* Logo: parte al centro, plana a sinistra quando compare la CTA */
  header.pc-ctamode nav>a:first-child{transform:translateX(var(--logo-shift,0px));transition:transform .75s cubic-bezier(.22,1,.36,1);will-change:transform;}
  header.pc-ctamode.pc-cta nav>a:first-child{transform:translateX(0);}
  header.pc-scrolled{box-shadow:0 12px 34px -20px rgba(13,36,51,.3);}

  /* Focus ring più ricco */
  .pc-input:focus,.pc-select:focus{box-shadow:0 0 0 4px rgba(132,186,38,.16);}
  #scan-form div:focus-within{border-color:var(--green) !important;box-shadow:0 0 0 4px rgba(132,186,38,.16);transition:border-color .2s,box-shadow .2s;}

  /* Bottoni: molla + sweep di luce */
  .scan-submit,.cta-final-btn,.nav-cta,.pkg-cta-link,.talk-btn{position:relative;overflow:hidden;transition:transform .35s cubic-bezier(.34,1.56,.64,1),background .2s,box-shadow .35s,border-color .2s,color .2s !important;}
  @keyframes pcSweep{from{left:-80%}to{left:135%}}
  .scan-submit::after,.cta-final-btn::after,.nav-cta::after{content:"";position:absolute;top:0;left:-80%;width:45%;height:100%;background:linear-gradient(105deg,transparent,rgba(255,255,255,.5),transparent);transform:skewX(-18deg);pointer-events:none;}
  .scan-submit:hover::after,.cta-final-btn:hover::after,.nav-cta:hover::after{animation:pcSweep .9s ease;}

  /* Card: micro-movimenti icone + bordi vivi */
  .risk-card,.what-card{position:relative;overflow:hidden;}
  .risk-card>span,.what-card>span{transition:transform .45s cubic-bezier(.34,1.56,.64,1);}
  .risk-card:hover>span{transform:scale(1.14) rotate(-5deg);}
  .what-card:hover>span{transform:scale(1.1) rotate(4deg);}
  .risk-card:hover{border-color:rgba(132,186,38,.45) !important;}
  .what-card{transition:transform .3s cubic-bezier(.22,1,.36,1),box-shadow .3s,border-color .3s;}
  .what-card:hover{border-color:rgba(132,186,38,.5) !important;transform:translateY(-6px);box-shadow:0 22px 44px -24px rgba(13,36,51,.24);}
  .what-card::before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,var(--green),var(--green-d));transform:scaleX(0);transform-origin:left;transition:transform .45s cubic-bezier(.22,1,.36,1);}
  .what-card:hover::before{transform:scaleX(1);}

  /* FAQ: apertura fluida + hover */
  details.faq{transition:box-shadow .3s,border-color .3s;}
  details.faq summary{transition:background .2s;border-radius:14px;}
  details.faq summary:hover{background:var(--light-2);}
  details.faq[open]{border-color:rgba(132,186,38,.5);box-shadow:0 18px 38px -24px rgba(13,36,51,.26);}
  details.faq[open]>div{animation:pcFadeUp .45s cubic-bezier(.22,1,.36,1) both;}

  /* Pacchetti: lift */
  #pkg-grid article{transition:transform .35s cubic-bezier(.22,1,.36,1),box-shadow .35s;}
  #pkg-grid article:hover{transform:translateY(-7px);}

  /* Tab anteprima mockup (fasce punteggio) */
  .mkfb{transition:transform .2s cubic-bezier(.34,1.56,.64,1),box-shadow .2s,background .2s,color .2s,border-color .2s !important;}
  .mkfb:hover{transform:translateY(-2px);box-shadow:0 10px 20px -12px rgba(13,36,51,.35);}
  .mkfb:active{transform:translateY(0) scale(.97);}

  @media (prefers-reduced-motion: no-preference){

    /* Blob decorativi: deriva organica lenta */
    @keyframes pcDrift{0%,100%{transform:translate(0,0) scale(1)}33%{transform:translate(34px,-22px) scale(1.08)}66%{transform:translate(-26px,18px) scale(.94)}}
    div[style*="position:absolute"][style*="border-radius:50%"][style*="radial-gradient(circle"]{animation:pcDrift 18s ease-in-out infinite;will-change:transform;}
    div[style*="position:absolute"][style*="border-radius:50%"][style*="radial-gradient(circle"]:nth-child(odd){animation-duration:24s;animation-delay:-9s;}

    /* Trame a puntini: scorrimento impercettibile */
    @keyframes pcGridDrift{to{background-position:312px 312px}}
    div[style*="background-image:radial-gradient(circle,rgba"][style*="background-size:2"]{animation:pcGridDrift 60s linear infinite;}

    /* Strip gradiente in testa alle card: colore vivo in movimento */
    @keyframes pcGradMove{0%{background-position:0% 50%}50%{background-position:100% 50%}100%{background-position:0% 50%}}
    div[style*="height:4px;background:linear-gradient(90deg"]{background:linear-gradient(90deg,var(--green),var(--green-d),var(--purple),var(--green)) !important;background-size:300% 100% !important;animation:pcGradMove 7s linear infinite;}

    /* Linea tratteggiata "come funziona": scorre */
    @keyframes pcDash{to{background-position:24px 0}}
    div[style*="repeating-linear-gradient(90deg,var(--green)"]{animation:pcDash 1.6s linear infinite;}

    /* Reveal-on-scroll: entrata più morbida + sfocatura */
    [data-reveal]{transform:translateY(26px);filter:blur(5px);transition:opacity .8s cubic-bezier(.22,1,.36,1),transform .8s cubic-bezier(.22,1,.36,1),filter .8s cubic-bezier(.22,1,.36,1);}
    [data-reveal].in{filter:none;}
    /* Stagger dei figli (delay impostati via JS) */
    [data-reveal]>*{opacity:0;transform:translateY(18px);transition:opacity .65s cubic-bezier(.22,1,.36,1),transform .65s cubic-bezier(.22,1,.36,1);}
    [data-reveal].in>*{opacity:1;transform:none;}

    /* Hero: entrata coreografata al load */
    #top div[style*="max-width:560px"]>*{opacity:0;animation:pcFadeUp .75s cubic-bezier(.22,1,.36,1) forwards;}
    #top div[style*="max-width:560px"]>*:nth-child(1){animation-delay:.05s;}
    #top div[style*="max-width:560px"]>*:nth-child(2){animation-delay:.16s;}
    #top div[style*="max-width:560px"]>*:nth-child(3){animation-delay:.28s;}
    #top div[style*="max-width:560px"]>*:nth-child(4){animation-delay:.4s;}
    #stage-scan{opacity:0;animation:pcFadeUp .85s .3s cubic-bezier(.22,1,.36,1) forwards;}
  }

  /* ================================================================
     V5 — SPECIAL FX LAYER
     ================================================================ */
  @property --pcA{syntax:'<angle>';inherits:false;initial-value:0deg;}

  /* Grana cinematografica */
  body::after{content:"";position:fixed;inset:0;z-index:998;pointer-events:none;opacity:.038;background-image:url('data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%22180%22%20height%3D%22180%22%3E%3Cfilter%20id%3D%22n%22%3E%3CfeTurbulence%20type%3D%22fractalNoise%22%20baseFrequency%3D%220.9%22%20numOctaves%3D%222%22%2F%3E%3C%2Ffilter%3E%3Crect%20width%3D%22180%22%20height%3D%22180%22%20filter%3D%22url(%23n)%22%20opacity%3D%220.55%22%2F%3E%3C%2Fsvg%3E');}

  /* Glow cursore (solo desktop, montato via JS) */
  #pc-cursor{position:fixed;top:0;left:0;width:360px;height:360px;border-radius:50%;background:radial-gradient(circle,rgba(132,186,38,.14),rgba(123,63,242,.06) 45%,transparent 65%);pointer-events:none;z-index:900;mix-blend-mode:screen;transform:translate(-50%,-50%);opacity:0;transition:opacity .4s;}

  /* Radar di scansione dietro la card di analisi (+ parallasse mouse via --px/--py) */
  #top{isolation:isolate;}
  #top::before,#top::after{content:"";position:absolute;z-index:-1;top:50%;right:-220px;width:860px;height:860px;border-radius:50%;transform:translateY(-54%) translate(var(--px,0px),var(--py,0px));pointer-events:none;-webkit-mask:radial-gradient(circle,#000 22%,transparent 68%);mask:radial-gradient(circle,#000 22%,transparent 68%);}
  #top::before{background:
    repeating-radial-gradient(circle at center,rgba(111,158,29,.20) 0 1.5px,transparent 1.5px 68px),
    linear-gradient(rgba(111,158,29,.12),rgba(111,158,29,.12)) center/100% 1px no-repeat,
    linear-gradient(rgba(111,158,29,.12),rgba(111,158,29,.12)) center/1px 100% no-repeat;}
  #top::after{background:conic-gradient(from var(--pcA) at 50% 50%,rgba(132,186,38,.26) 0deg,rgba(132,186,38,.07) 50deg,transparent 72deg);}
  @media (prefers-reduced-motion: no-preference){
    #top::after{animation:pcRotA 7s linear infinite;}
  }
  @media (max-width:900px){ #top::before,#top::after{width:620px;height:620px;right:-260px;} }
  /* Elementi vivi del radar: blip sincronizzati col fascio, anello dashed, nucleo */
  #pc-blips{position:absolute;z-index:-1;top:50%;right:-220px;width:860px;height:860px;border-radius:50%;transform:translateY(-54%) translate(var(--px,0px),var(--py,0px));pointer-events:none;-webkit-mask:radial-gradient(circle,#000 35%,transparent 72%);mask:radial-gradient(circle,#000 35%,transparent 72%);}
  @media (max-width:900px){ #pc-blips{width:620px;height:620px;right:-260px;} }
  .pc-ring{position:absolute;inset:11%;border-radius:50%;border:1.5px dashed rgba(111,158,29,.4);}
  .pc-ring2{position:absolute;inset:30%;border-radius:50%;border:1px solid rgba(123,63,242,.22);}
  .pc-core{position:absolute;left:50%;top:50%;width:10px;height:10px;margin:-5px 0 0 -5px;border-radius:50%;background:var(--green);box-shadow:0 0 16px rgba(132,186,38,.9);}
  .pc-core::after{content:"";position:absolute;inset:0;border-radius:50%;background:var(--green);animation:pcPing 2.4s ease-out infinite;}
  .pc-blip{position:absolute;width:9px;height:9px;margin:-4.5px 0 0 -4.5px;border-radius:50%;background:var(--green);opacity:0;}
  .pc-blip.pp{background:var(--purple);}
  .pc-blip::after{content:"";position:absolute;inset:-7px;border-radius:50%;border:2px solid rgba(132,186,38,.55);opacity:0;}
  .pc-blip.pp::after{border-color:rgba(123,63,242,.5);}
  @media (prefers-reduced-motion: no-preference){
    @keyframes pcSlowSpin{to{transform:rotate(360deg);}}
    @keyframes pcSlowSpinR{to{transform:rotate(-360deg);}}
    .pc-ring{animation:pcSlowSpin 50s linear infinite;}
    .pc-ring2{animation:pcSlowSpinR 34s linear infinite;}
    @keyframes pcBlip{0%{opacity:1;box-shadow:0 0 14px currentColor;}14%{opacity:.85;}38%{opacity:.12;}60%,100%{opacity:0;}}
    @keyframes pcBlipRing{0%{opacity:.9;transform:scale(.35);}20%{opacity:0;transform:scale(2.8);}100%{opacity:0;transform:scale(2.8);}}
    .pc-blip{animation:pcBlip 7s linear infinite;color:rgba(132,186,38,.9);}
    .pc-blip.pp{color:rgba(123,63,242,.85);}
    .pc-blip::after{animation:pcBlipRing 7s linear infinite;animation-delay:inherit;}
  }

  /* Spotlight che segue il mouse sulle card */
  .risk-card::after{content:"";position:absolute;inset:0;border-radius:inherit;background:radial-gradient(260px circle at var(--mx,50%) var(--my,50%),rgba(132,186,38,.18),transparent 65%);opacity:0;transition:opacity .35s;pointer-events:none;}
  .risk-card:hover::after{opacity:1;}
  .what-card::after{content:"";position:absolute;inset:0;border-radius:inherit;background:radial-gradient(240px circle at var(--mx,50%) var(--my,50%),rgba(132,186,38,.12),transparent 65%);opacity:0;transition:opacity .35s;pointer-events:none;}
  .what-card:hover::after{opacity:1;}
  #pkg-grid article{position:relative;}
  #pkg-grid article::after{content:"";position:absolute;inset:0;border-radius:20px;background:radial-gradient(300px circle at var(--mx,50%) var(--my,50%),rgba(132,186,38,.14),transparent 65%);opacity:0;transition:opacity .35s;pointer-events:none;}
  #pkg-grid article:hover::after{opacity:1;}

  /* Reveal dei titoli parola per parola */
  .pc-w{display:inline-block;overflow:hidden;vertical-align:bottom;}
  .pc-w>span{display:inline-block;transform:translateY(115%) rotate(2deg);transition:transform .75s cubic-bezier(.22,1,.36,1);will-change:transform;}
  .pc-wr.in .pc-w>span{transform:none;}

  @media (prefers-reduced-motion: no-preference){

    /* Bordo "cometa" rotante attorno alla card di scansione */
    @keyframes pcRotA{to{--pcA:360deg;}}
    #stage-scan::before{content:"";position:absolute;inset:-3px;border-radius:25px;background:conic-gradient(from var(--pcA) at 50% 50%,rgba(132,186,38,0) 0deg,var(--green) 55deg,rgba(123,63,242,.9) 105deg,rgba(132,186,38,0) 165deg,rgba(132,186,38,0) 360deg);animation:pcRotA 4.5s linear infinite;filter:blur(1px);}

    /* Raggio scanner che percorre la card di analisi */
    @keyframes pcScanBeam{0%,55%{top:-90px;}100%{top:115%;}}
    #stage-scan>div:nth-of-type(2)::after{content:"";position:absolute;left:0;right:0;height:80px;top:-90px;background:linear-gradient(180deg,transparent,rgba(132,186,38,.16) 45%,rgba(132,186,38,.28) 50%,rgba(132,186,38,.16) 55%,transparent);animation:pcScanBeam 5s cubic-bezier(.45,0,.55,1) infinite;pointer-events:none;z-index:3;}

    /* Aurora sulle sezioni navy */
    @keyframes pcAurora{0%{transform:rotate(0deg) scale(1);}50%{transform:rotate(180deg) scale(1.15);}100%{transform:rotate(360deg) scale(1);}}
    section[style*="background:var(--night)"]::before,
    div[style*="background:var(--night);border-radius"]::before{content:"";position:absolute;inset:-45%;background:conic-gradient(from 90deg at 50% 50%,rgba(132,186,38,.11),rgba(123,63,242,.12) 25%,transparent 45%,rgba(132,186,38,.08) 70%,rgba(123,63,242,.09) 85%,rgba(132,186,38,.11));animation:pcAurora 30s linear infinite;pointer-events:none;filter:blur(46px);will-change:transform;}

    /* Alone pulsante dietro il punteggio */
    @keyframes pcHalo{0%,100%{opacity:.5;transform:scale(1);}50%{opacity:1;transform:scale(1.06);}}
    #partial-arc,#full-arc{filter:drop-shadow(0 0 9px rgba(132,186,38,.22));animation:pcHalo 3.2s ease-in-out infinite;transform-origin:center;transform-box:fill-box;}
  }

  /* ================================================================
     V5.1 — REPORT PARZIALE VIVO
     ================================================================ */
  #stage-partial{overflow:hidden;}
  /* card del report: linea gradiente animata in testa */
  #stage-partial div[style*="margin-top:40px;background:#fff"]{position:relative;}
  #stage-partial div[style*="margin-top:40px;background:#fff"]::before{content:"";position:absolute;top:0;left:0;right:0;height:4px;background:linear-gradient(90deg,var(--green),var(--green-d),var(--purple),var(--green));background-size:300% 100%;z-index:2;}
  /* pill e categorie: pop elastico a cascata (si ri-attiva ad ogni render) */
  @keyframes pcPillPop{from{opacity:0;transform:translateY(12px) scale(.65);}to{opacity:1;transform:none;}}
  #partial-pills>span,#partial-cats>span{animation:pcPillPop .55s cubic-bezier(.34,1.56,.64,1) both;}
  #partial-pills>span:nth-child(2),#partial-cats>span:nth-child(2){animation-delay:.09s;}
  #partial-pills>span:nth-child(3),#partial-cats>span:nth-child(3){animation-delay:.18s;}
  #partial-cats>span:nth-child(4){animation-delay:.27s;}
  #partial-cats>span:nth-child(5){animation-delay:.36s;}
  #partial-synth,#partial-domain{animation:pcFadeUp .6s cubic-bezier(.22,1,.36,1) both;}
  #partial-domain{animation-delay:.08s;}
  @keyframes pcScorePop{0%{transform:scale(.55);opacity:0;}60%{transform:scale(1.14);}100%{transform:scale(1);opacity:1;}}
  #partial-score{display:inline-block;animation:pcScorePop .7s cubic-bezier(.34,1.56,.64,1) both;}
  /* verdetto: shimmer periodico */
  div:has(>#partial-verdict){position:relative;overflow:hidden;}
  div:has(>#partial-verdict)::after{content:"";position:absolute;top:0;left:-80%;width:50%;height:100%;background:linear-gradient(105deg,transparent,rgba(255,255,255,.75),transparent);transform:skewX(-18deg);pointer-events:none;}
  @media (prefers-reduced-motion: no-preference){
    /* beam di scansione che percorre la sezione */
    @keyframes pcSectionBeam{0%,55%{top:-150px;}100%{top:118%;}}
    #stage-partial::after{content:"";position:absolute;left:0;right:0;top:-150px;height:130px;background:linear-gradient(180deg,transparent,rgba(132,186,38,.09) 45%,rgba(132,186,38,.16) 50%,rgba(132,186,38,.09) 55%,transparent);animation:pcSectionBeam 6.5s cubic-bezier(.45,0,.55,1) infinite;pointer-events:none;z-index:1;}
    #stage-partial div[style*="margin-top:40px;background:#fff"]::before{animation:pcGradMove 6s linear infinite;}
    /* gauge: anello dashed orbitante + alone respirante */
    #stage-partial div[style*="width:142px;height:142px"]::before{content:"";position:absolute;inset:-12px;border-radius:50%;border:2px dashed rgba(132,186,38,.42);animation:pcSlowSpin 22s linear infinite;}
    #stage-partial div[style*="width:142px;height:142px"]::after{content:"";position:absolute;inset:8px;border-radius:50%;background:radial-gradient(circle,rgba(132,186,38,.13),transparent 65%);animation:pcHalo 3.2s ease-in-out infinite;pointer-events:none;}
    div:has(>#partial-verdict)::after{animation:pcSweep 3s 1.2s ease infinite;}
  }

  /* ===== V5.2 — Report parziale: round 2 ===== */
  /* spotlight che segue il mouse (classe applicata via JS alla card del report) */
  .pc-spot{position:relative;}
  .pc-spot::after{content:"";position:absolute;inset:0;border-radius:inherit;background:radial-gradient(340px circle at var(--mx,50%) var(--my,50%),rgba(132,186,38,.10),transparent 65%);opacity:0;transition:opacity .35s;pointer-events:none;z-index:1;}
  .pc-spot:hover::after{opacity:1;}
  /* onda d'urto dal gauge ad ogni render */
  @keyframes pcShock{from{transform:scale(.55);opacity:1;}to{transform:scale(2.1);opacity:0;}}
  .pc-shock{position:absolute;inset:0;border-radius:50%;border:3px solid rgba(132,186,38,.55);animation:pcShock .95s cubic-bezier(.22,1,.36,1) forwards;pointer-events:none;}
  @media (prefers-reduced-motion: no-preference){
    /* cometa che orbita attorno al gauge */
    .pc-orbit{position:absolute;inset:-7px;border-radius:50%;background:conic-gradient(from var(--pcA) at 50% 50%,rgba(132,186,38,0) 0deg,rgba(132,186,38,.85) 45deg,rgba(123,63,242,.5) 70deg,transparent 100deg);-webkit-mask:radial-gradient(circle,transparent 60%,#000 63%,#000 71%,transparent 74%);mask:radial-gradient(circle,transparent 60%,#000 63%,#000 71%,transparent 74%);animation:pcRotA 3.6s linear infinite;pointer-events:none;}
    /* bordo gradiente rotante interno alla card del report */
    .pc-borderfx{position:absolute;inset:0;border-radius:22px;padding:2px;background:conic-gradient(from var(--pcA) at 50% 50%,rgba(132,186,38,.0) 0deg,rgba(132,186,38,.55) 60deg,rgba(123,63,242,.45) 110deg,transparent 170deg,transparent 360deg);-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);mask-composite:exclude;animation:pcRotA 6s linear infinite;pointer-events:none;z-index:3;}
    /* score con flash luminoso */
    @keyframes pcScoreGlow{0%,100%{text-shadow:none;}55%{text-shadow:0 0 22px rgba(132,186,38,.65);}}
    #partial-score{animation:pcScorePop .7s cubic-bezier(.34,1.56,.64,1) both,pcScoreGlow 1.4s ease both;}
  }

  /* ================================================================
     V5.3 — REPORT COMPLETO VIVO
     ================================================================ */
  #stage-full{overflow:hidden;}
  /* card del report: linea gradiente animata in testa */
  #stage-full > div > div[style*="margin-top:40px;background:#fff"]{position:relative;}
  #stage-full > div > div[style*="margin-top:40px;background:#fff"]::before{content:"";position:absolute;top:0;left:0;right:0;height:4px;background:linear-gradient(90deg,var(--green),var(--green-d),var(--purple),var(--green));background-size:300% 100%;z-index:4;}

  /* stagger a cascata degli elementi iniettati (si ri-attiva ad ogni render) */
  @keyframes pcRowIn{from{opacity:0;transform:translateY(16px) scale(.97);}to{opacity:1;transform:none;}}
  #full-facts>*,#full-crit>*,#full-goodnews>*,#full-risks>*{animation:pcRowIn .55s cubic-bezier(.22,1,.36,1) both;}
  #full-facts>*:nth-child(2),#full-crit>*:nth-child(2),#full-goodnews>*:nth-child(2),#full-risks>*:nth-child(2){animation-delay:.08s;}
  #full-facts>*:nth-child(3),#full-crit>*:nth-child(3),#full-goodnews>*:nth-child(3),#full-risks>*:nth-child(3){animation-delay:.16s;}
  #full-facts>*:nth-child(4),#full-crit>*:nth-child(4),#full-goodnews>*:nth-child(4){animation-delay:.24s;}
  #full-crit>*:nth-child(5),#full-goodnews>*:nth-child(5){animation-delay:.32s;}
  #full-crit>*:nth-child(6),#full-goodnews>*:nth-child(6){animation-delay:.4s;}
  #full-crit>*:nth-child(7),#full-goodnews>*:nth-child(7){animation-delay:.48s;}
  #full-crit>*:nth-child(n+8){animation-delay:.56s;}

  /* verdetto: entrata + shimmer */
  #full-verdict-pill{animation:pcPillPop .6s cubic-bezier(.34,1.56,.64,1) both;overflow:hidden;position:relative;}
  #full-synth{animation:pcFadeUp .6s .12s cubic-bezier(.22,1,.36,1) both;}
  #full-scale{animation:pcFadeUp .6s .2s cubic-bezier(.22,1,.36,1) both;}
  #full-score{display:inline-block;}
  /* spotlight che segue il mouse (classe via JS su card report + card iniettate) */
  .pc-spot::after{content:"";position:absolute;inset:0;border-radius:inherit;background:radial-gradient(300px circle at var(--mx,50%) var(--my,50%),rgba(132,186,38,.12),transparent 65%);opacity:0;transition:opacity .35s;pointer-events:none;z-index:1;}
  .pc-spot:hover::after{opacity:1;}

  @media (prefers-reduced-motion: no-preference){
    /* beam che percorre l'intera sezione */
    @keyframes pcSectionBeam{0%,55%{top:-160px;}100%{top:118%;}}
    #stage-full::after{content:"";position:absolute;left:0;right:0;top:-160px;height:140px;background:linear-gradient(180deg,transparent,rgba(132,186,38,.08) 45%,rgba(132,186,38,.15) 50%,rgba(132,186,38,.08) 55%,transparent);animation:pcSectionBeam 7s cubic-bezier(.45,0,.55,1) infinite;pointer-events:none;z-index:1;}
    #stage-full > div > div[style*="margin-top:40px;background:#fff"]::before{animation:pcGradMove 6s linear infinite;}

    /* aurora dietro le bande navy del report */
    #stage-full div[style*="background:var(--night);padding"]{position:relative;}
    #stage-full div[style*="background:var(--night);padding"]::before{content:"";position:absolute;inset:-45%;background:conic-gradient(from 90deg at 50% 50%,rgba(132,186,38,.10),rgba(123,63,242,.11) 25%,transparent 45%,rgba(132,186,38,.07) 70%,rgba(123,63,242,.08) 85%,rgba(132,186,38,.10));animation:pcAurora 30s linear infinite;pointer-events:none;filter:blur(46px);z-index:0;}
    #stage-full div[style*="background:var(--night);padding"] > *{position:relative;z-index:1;}

    /* gauge: cometa orbitante + anello dashed + alone */
    #stage-full div[style*="width:150px;height:150px"]::before{content:"";position:absolute;inset:-11px;border-radius:50%;border:2px dashed rgba(132,186,38,.4);animation:pcSlowSpin 22s linear infinite;pointer-events:none;}
    #full-score{animation:pcScorePop .7s cubic-bezier(.34,1.56,.64,1) both;}

    /* badge priorità: micro-pulse d'attenzione */
    @keyframes pcPrioPulse{0%,100%{box-shadow:0 0 0 0 rgba(0,0,0,0);}50%{box-shadow:0 0 12px -1px currentColor;}}
    #full-crit>div>span:first-child{animation:pcPrioPulse 2.6s ease-in-out infinite;}

    /* pallino verdetto full: già pulsa (pcPulse) — aggiungiamo alone */
    #full-verdict-pill::after{content:"";position:absolute;top:0;left:-80%;width:45%;height:100%;background:linear-gradient(105deg,transparent,rgba(255,255,255,.55),transparent);transform:skewX(-18deg);animation:pcSweep 3.4s 1s ease infinite;pointer-events:none;}
  }

  /* onda d'urto dal gauge (elementi montati/rimossi via JS) */
  @keyframes pcShock{from{transform:scale(.5);opacity:1;}to{transform:scale(2.2);opacity:0;}}
  .pc-shock{position:absolute;inset:0;border-radius:50%;border:3px solid rgba(132,186,38,.55);animation:pcShock 1s cubic-bezier(.22,1,.36,1) forwards;pointer-events:none;z-index:5;}
  .pc-orbit-full{position:absolute;inset:-7px;border-radius:50%;background:conic-gradient(from var(--pcA) at 50% 50%,rgba(132,186,38,0) 0deg,rgba(132,186,38,.9) 45deg,rgba(123,63,242,.55) 72deg,transparent 100deg);-webkit-mask:radial-gradient(circle,transparent 58%,#000 61%,#000 70%,transparent 73%);mask:radial-gradient(circle,transparent 58%,#000 61%,#000 70%,transparent 73%);pointer-events:none;z-index:5;}
  @media (prefers-reduced-motion: no-preference){ .pc-orbit-full{animation:pcRotA 3.6s linear infinite;} }

  /* ================================================================
     V5.4 — REPORT COMPLETO: OSA DI PIÙ (solo full, non parziale)
     ================================================================ */
  /* schede tecniche: flip-in 3D a cascata (sovrascrive il fade del parziale) */
  #full-facts{perspective:1000px;}
  @keyframes pcFlip3D{from{opacity:0;transform:rotateX(-62deg) translateY(24px);}60%{opacity:1;}to{opacity:1;transform:none;}}
  #full-facts>*{transform-origin:top center;animation:pcFlip3D .7s cubic-bezier(.22,1,.36,1) both;}

  /* punteggio: alone durante il conteggio (classe via JS) */
  #full-score.pc-counting{text-shadow:0 0 26px rgba(255,255,255,.55),0 0 40px rgba(132,186,38,.4);}
  #full-score{transition:text-shadow .3s;}

  /* testo di sintesi in decodifica: cursore a blocco */
  #full-synth.pc-decoding::after{content:"";display:inline-block;width:.6ch;height:1.05em;margin-left:2px;background:var(--green);transform:translateY(.16em);animation:pcCaret .5s steps(1) infinite;}
  @keyframes pcCaret{50%{opacity:0;}}

  /* blocco "cosa rischi": allarme — luce rossa pulsante + scansione */
  #full-risks-block{position:relative;overflow:hidden;}
  @media (prefers-reduced-motion: no-preference){
    @keyframes pcAlarm{0%,100%{box-shadow:0 0 0 0 rgba(229,72,77,0);}50%{box-shadow:0 0 26px -4px rgba(229,72,77,.5);}}
    #full-risks-block:not(.hidden){animation:pcAlarm 2.4s ease-in-out infinite;}
    @keyframes pcRedScan{0%,60%{left:-40%;}100%{left:130%;}}
    #full-risks-block:not(.hidden)::after{content:"";position:absolute;top:0;left:-40%;width:35%;height:100%;background:linear-gradient(105deg,transparent,rgba(229,72,77,.14),transparent);transform:skewX(-16deg);animation:pcRedScan 4.5s ease-in-out infinite;pointer-events:none;z-index:0;}
    #full-risks-block > *{position:relative;z-index:1;}
    /* icona allarme che vibra a intermittenza */
    @keyframes pcShake{0%,92%,100%{transform:rotate(0);}94%{transform:rotate(-9deg);}96%{transform:rotate(8deg);}98%{transform:rotate(-5deg);}}
    #full-risks-block svg{animation:pcShake 3.6s ease-in-out infinite;transform-origin:center;}

    /* CTA finale del report: anello di energia rotante dietro */
    #full-cta-block::after{content:"";position:absolute;top:50%;left:50%;width:680px;height:680px;margin:-340px 0 0 -340px;border-radius:50%;background:conic-gradient(from var(--pcA) at 50% 50%,rgba(132,186,38,.14),rgba(123,63,242,.12) 30%,transparent 52%,rgba(132,186,38,.10) 78%,rgba(123,63,242,.11));animation:pcRotA 18s linear infinite;pointer-events:none;-webkit-mask:radial-gradient(circle,transparent 30%,#000 46%,transparent 72%);mask:radial-gradient(circle,transparent 30%,#000 46%,transparent 72%);z-index:0;filter:blur(10px);}
    #full-cta-block > *{position:relative;z-index:1;}

    /* criticità: barra accento che "cresce" a sinistra su ogni riga */
    #full-crit > *{position:relative;}
    @keyframes pcBarGrow{from{transform:scaleY(0);}to{transform:scaleY(1);}}
    #full-crit > *::before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;border-radius:4px 0 0 4px;background:linear-gradient(var(--green),var(--green-d));transform-origin:top;animation:pcBarGrow .6s .2s cubic-bezier(.22,1,.36,1) both;}
  }

  /* ===== SITO NON AGGIORNABILE: il messaggio a sinistra, l'azione a destra =====
     La card di #partial-call è UNA SOLA e serve tutte e sei le cause non analizzabili.
     Cinque finiscono con un pulsante («prenota una call») e stanno bene incolonnate;
     la sesta ha un FORM, e in colonna singola il modulo restava un nastro da 520px
     appeso a sinistra con mezza card vuota accanto.
     Per questo l'impaginazione a due colonne si accende SOLO con la classe che
     paintCallCard mette quando compare il form (copy.noCall === true): senza form la
     seconda colonna sarebbe un buco, e le altre cinque cause non si toccano.
     Le celle sono assegnate a mano, non lasciate all'auto-placement: il pulsante della
     call e la conferma d'invio entrano ed escono dal flusso (display:none) e con il
     posizionamento automatico si sposterebbero addosso agli altri. */
  #partial-call.pc-call--form{display:grid;grid-template-columns:minmax(0,1fr) minmax(300px,400px);column-gap:clamp(22px,3.4vw,44px);align-items:start;}
  #partial-call.pc-call--form > #partial-call-head{grid-column:1 / -1;grid-row:1;}
  #partial-call.pc-call--form > #partial-call-text{grid-column:1;grid-row:2;margin-bottom:0;align-self:center;}
  /* Form e conferma occupano la STESSA cella: uno solo è visibile per volta, e quando
     l'invio riesce la conferma prende esattamente il posto del modulo. */
  #partial-call.pc-call--form > #stack-form,
  #partial-call.pc-call--form > #stack-done{grid-column:2;grid-row:2;max-width:none;}
  /* Il modulo diventa un riquadro: dà un bordo all'azione e bilancia il peso del
     messaggio a sinistra, che altrimenti sarebbe l'unica cosa con un contorno. */
  #partial-call.pc-call--form > #stack-form{background:var(--light);border:1px solid var(--line);border-radius:16px;padding:clamp(16px,2vw,22px);}
  #partial-call.pc-call--form > #stack-form #stack-btn{width:100%;}
  /* Sotto i 860px la card è troppo stretta perché due colonne restino leggibili:
     si torna in colonna, con il riquadro che resta ma va a tutta larghezza. */
  @media (max-width:860px){
    #partial-call.pc-call--form{display:block;}
    #partial-call.pc-call--form > #partial-call-text{margin-bottom:18px;}
    #partial-call.pc-call--form > #stack-form,
    #partial-call.pc-call--form > #stack-done{max-width:none;}
  }
