/* =========================================================
   HOTURE — styles.css
   Tutti gli stili della pagina sono stati spostati qui.
   ========================================================= */

:root{
      --bg:#050307;
      --bg2:#0b0711;
      --cream:#f6f1ea;
      --muted:rgba(246,241,234,.70);
      --dim:rgba(246,241,234,.44);
      --line:rgba(246,241,234,.11);
      --violet:#8f63ff;
      --violet2:#c8b0ff;
      --ease:cubic-bezier(.19,1,.22,1);
      --header-h:78px;
    }

    *{box-sizing:border-box}

    html{
      scroll-behavior:smooth;
      background:var(--bg);
    }

    body{
      margin:0;
      background:var(--bg);
      color:var(--cream);
      font-family:'Poppins',system-ui,-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
      -webkit-font-smoothing:antialiased;
      text-rendering:geometricPrecision;
      overflow-x:hidden;
    }

    body.no-scroll{overflow:hidden}

    a{color:inherit;text-decoration:none}
    img{display:block;max-width:100%}
    button,input,textarea{font:inherit}
    button{cursor:pointer}
    ::selection{background:var(--violet);color:#fff}

    .app{
      position:relative;
      min-height:100vh;
      overflow:hidden;
      background:
        radial-gradient(circle at 84% -8%, rgba(143,99,255,.21), transparent 32%),
        radial-gradient(circle at 8% 26%, rgba(200,176,255,.08), transparent 25%),
        linear-gradient(180deg,#050307 0%,#0c0712 54%,#050307 100%);
    }

    .grain{
      position:fixed;
      inset:0;
      z-index:2;
      pointer-events:none;
      opacity:.055;
      mix-blend-mode:soft-light;
      background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 170 170' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.84' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='170' height='170' filter='url(%23n)' opacity='.7'/%3E%3C/svg%3E");
    }

    .wrap{
      width:min(100%,1500px);
      margin:0 auto;
      padding-inline:clamp(18px,4vw,68px);
    }

    .section{
      border-bottom:1px solid var(--line);
      position:relative;
    }

    .eyebrow{
      color:var(--dim);
      font-size:11px;
      font-weight:700;
      letter-spacing:.16em;
      text-transform:uppercase;
      margin-bottom:18px;
    }

    .title{
      margin:0;
      color:#fff;
      font-size:clamp(34px,4.8vw,76px);
      line-height:.96;
      letter-spacing:.03em;
      font-weight:900;
      text-transform:uppercase;
    }

    .copy{
      color:var(--muted);
      font-size:clamp(15px,1.04vw,18px);
      line-height:1.74;
    }

    .link{
      position:relative;
      display:inline-flex;
      width:max-content;
      color:#fff;
      font-size:12px;
      font-weight:800;
      letter-spacing:.14em;
      text-transform:uppercase;
    }

    .link::after{
      content:"";
      position:absolute;
      left:0;
      right:0;
      bottom:-8px;
      height:1px;
      background:currentColor;
      transform:scaleX(.36);
      transform-origin:left;
      opacity:.7;
      transition:transform .35s var(--ease);
    }

    .link:hover::after{transform:scaleX(1)}

    /* TRUE FIXED HEADER: outside animated content, no transformed parent */
    .site-header{
      position:fixed;
      top:0;
      left:0;
      width:100%;
      height:var(--header-h);
      z-index:500;
      display:grid;
      grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);
      align-items:center;
      padding:12px clamp(18px,4vw,54px);
      background:transparent;
      isolation:isolate;
    }

    .site-header::before{
      content:"";
      position:absolute;
      inset:0;
      z-index:-1;
      background:linear-gradient(180deg, rgba(5,3,7,.84) 0%, rgba(5,3,7,.48) 58%, rgba(5,3,7,0) 100%);
      backdrop-filter:blur(12px);
      pointer-events:none;
      transition:background .35s ease, backdrop-filter .35s ease, border-color .35s ease;
      border-bottom:1px solid transparent;
    }

    .site-header.is-scrolled::before{
      background:rgba(5,3,7,.88);
      backdrop-filter:blur(18px);
      border-bottom-color:rgba(255,255,255,.08);
    }

    .header-left{
      justify-self:start;
      min-width:0;
    }

    .header-micro{
      color:rgba(246,241,234,.68);
      font-size:11px;
      font-weight:700;
      letter-spacing:.12em;
      text-transform:uppercase;
      white-space:nowrap;
    }

    .header-micro i{
      width:5px;
      height:5px;
      display:inline-block;
      border-radius:50%;
      background:var(--violet2);
      margin:0 10px;
      vertical-align:middle;
      box-shadow:0 0 18px rgba(201,179,255,.6);
    }

    .header-logo{
      position:relative;
      width:132px;
      height:34px;
      display:grid;
      place-items:center;
      justify-self:center;
    }

    .header-logo a{
      position:absolute;
      inset:0;
      display:grid;
      place-items:center;
      transition:opacity .35s ease, transform .35s var(--ease);
    }

    .logo-mini img{width:30px;height:auto}
    .logo-full img{width:116px;height:auto}

    .site-header:not(.is-scrolled) .logo-mini{opacity:1;transform:translateY(0) scale(1)}
    .site-header:not(.is-scrolled) .logo-full{opacity:0;transform:translateY(6px) scale(.97);pointer-events:none}
    .site-header.is-scrolled .logo-mini{opacity:0;transform:translateY(-6px) scale(.86);pointer-events:none}
    .site-header.is-scrolled .logo-full{opacity:1;transform:translateY(0) scale(1)}

    .header-right{
      justify-self:end;
      display:flex;
      align-items:center;
      justify-content:flex-end;
      gap:16px;
      min-width:0;
    }

    .call-link{
      color:#fff;
      font-size:11px;
      font-weight:800;
      letter-spacing:.14em;
      text-transform:uppercase;
      position:relative;
      white-space:nowrap;
    }

    .call-link::after{
      content:"";
      position:absolute;
      left:0;
      right:0;
      bottom:-8px;
      height:1px;
      background:currentColor;
      transform:scaleX(.4);
      transform-origin:left;
      opacity:.7;
      transition:transform .35s var(--ease);
    }

    .call-link:hover::after{transform:scaleX(1)}

    .hamburger{
      width:42px;
      height:42px;
      border:0;
      background:transparent;
      color:#fff;
      display:grid;
      place-items:center;
      padding:0;
    }

    .hamburger .lines{
      width:20px;
      height:12px;
      position:relative;
    }

    .hamburger .lines::before,
    .hamburger .lines::after,
    .hamburger .lines span{
      content:"";
      position:absolute;
      left:0;
      height:1.5px;
      background:currentColor;
      border-radius:2px;
      transition:width .3s var(--ease);
    }

    .hamburger .lines::before{top:0;width:20px}
    .hamburger .lines span{top:5px;width:14px}
    .hamburger .lines::after{bottom:0;width:18px}
    .hamburger:hover .lines span{width:20px}

    /* MENU */
    .menu{
      position:fixed;
      inset:0;
      z-index:900;
      visibility:hidden;
      pointer-events:none;
    }

    .menu.open{
      visibility:visible;
      pointer-events:auto;
    }

    .menu-bg{
      position:absolute;
      inset:0;
      background:
        radial-gradient(circle at 82% 10%,rgba(143,99,255,.24),transparent 34%),
        #000;
      transform:translateY(-100%);
      transition:transform .8s var(--ease);
    }

    .menu.open .menu-bg{transform:translateY(0)}

    .menu-content{
      position:relative;
      z-index:2;
      min-height:100vh;
      padding:28px clamp(22px,5vw,78px) 46px;
      display:grid;
      grid-template-rows:auto 1fr auto;
      opacity:0;
      transform:translateY(22px);
      transition:opacity .4s ease .25s, transform .4s var(--ease) .25s;
    }

    .menu.open .menu-content{
      opacity:1;
      transform:translateY(0);
    }

    .menu-top,
    .menu-bottom{
      display:flex;
      justify-content:space-between;
      align-items:center;
      gap:24px;
    }

    .menu-close{
      border:0;
      background:transparent;
      color:rgba(246,241,234,.74);
      font-size:12px;
      font-weight:700;
      letter-spacing:.14em;
      text-transform:uppercase;
    }

    .menu-grid{
      align-self:center;
      display:grid;
      grid-template-columns:minmax(0,1fr) minmax(280px,420px);
      gap:clamp(40px,6vw,92px);
      align-items:end;
    }

    .menu-links{
      display:grid;
      gap:6px;
      max-width:1080px;
    }

    .menu-links a{
      width:fit-content;
      font-size:clamp(42px,7.2vw,118px);
      line-height:.9;
      font-weight:900;
      letter-spacing:.03em;
      text-transform:uppercase;
      transition:transform .35s var(--ease), opacity .35s ease, color .35s ease;
    }

    .menu-links:hover a{opacity:.22}
    .menu-links a:hover{
      opacity:1;
      transform:translateX(18px);
      color:var(--violet2);
    }

    .menu-cta{
      border:1px solid rgba(255,255,255,.12);
      padding:28px;
      background:linear-gradient(180deg, rgba(255,255,255,.055), rgba(255,255,255,.025));
    }

    .menu-cta span{
      color:rgba(246,241,234,.48);
      font-size:11px;
      font-weight:800;
      letter-spacing:.14em;
      text-transform:uppercase;
    }

    .menu-cta h3{
      margin:18px 0 16px;
      color:#fff;
      font-size:24px;
      line-height:1.12;
      letter-spacing:.04em;
      font-weight:900;
      text-transform:uppercase;
    }

    .menu-cta p{
      margin:0 0 24px;
      color:var(--muted);
      font-size:14px;
      line-height:1.65;
    }

    .menu-bottom{
      color:rgba(246,241,234,.48);
      font-size:12px;
      font-weight:700;
      letter-spacing:.12em;
      text-transform:uppercase;
    }

    /* LOADER / INTRO */
    .loader{
      position:fixed;
      inset:0;
      z-index:1200;
      display:grid;
      place-items:center;
      background:#000;
      transition:opacity .55s ease, visibility .55s ease;
    }

    .loader.hidden{
      opacity:0;
      visibility:hidden;
      pointer-events:none;
    }

    .loader img{
      width:clamp(58px,6vw,78px);
      opacity:0;
      transform:translateY(10px) scale(.92);
      animation:loaderIn 1s var(--ease) .12s forwards;
    }

    @keyframes loaderIn{
      to{opacity:1;transform:translateY(0) scale(1)}
    }

    .intro{
      position:fixed;
      inset:0;
      z-index:1100;
      background:#050306;
      display:grid;
      place-items:center;
      visibility:hidden;
      opacity:0;
      overflow:hidden;
      transition:opacity .55s ease, visibility .55s ease;
    }

    .intro.visible{visibility:visible;opacity:1}
    .intro.hidden{visibility:hidden;opacity:0;pointer-events:none}

    .intro::before{
      content:"";
      position:absolute;
      inset:0;
      background:
        radial-gradient(circle at 50% 46%,rgba(143,99,255,.22),transparent 34%),
        linear-gradient(180deg,#040305,#140a1f);
    }

    .intro-words{
      position:relative;
      z-index:2;
      width:100%;
      padding:0 4vw;
    }

    .intro-line{
      overflow:hidden;
      text-align:center;
    }

    .intro-line span{
      display:block;
      font-size:clamp(44px,8vw,146px);
      line-height:.92;
      letter-spacing:.03em;
      font-weight:900;
      text-transform:uppercase;
      transform:translateY(118%) rotate(2deg);
      opacity:.06;
    }

    .intro.play .intro-line:nth-child(1) span{animation:introWord .95s var(--ease) .08s forwards}
    .intro.play .intro-line:nth-child(2) span{animation:introWord .95s var(--ease) .24s forwards}
    .intro.play .intro-line:nth-child(3) span{animation:introWord .95s var(--ease) .40s forwards}

    @keyframes introWord{
      to{transform:translateY(0) rotate(0);opacity:1}
    }

    .intro-caption{
      position:absolute;
      left:50%;
      bottom:28px;
      transform:translateX(-50%);
      z-index:2;
      color:rgba(246,241,234,.5);
      font-size:11px;
      font-weight:700;
      letter-spacing:.14em;
      text-transform:uppercase;
      white-space:nowrap;
    }

    /* PAGE */
    .site{
      opacity:0;
      transition:opacity .9s ease;
    }

    .site.ready{opacity:1}

    .hero{
      min-height:100vh;
      padding-top:var(--header-h);
      display:grid;
      grid-template-columns:minmax(0,.95fr) minmax(420px,1.05fr);
      border-bottom:1px solid var(--line);
    }

    .hero-copy{
      min-height:calc(100vh - var(--header-h));
      display:flex;
      flex-direction:column;
      justify-content:center;
      padding:clamp(54px,7vw,98px) clamp(22px,5vw,64px) clamp(40px,6vw,66px) clamp(18px,4vw,56px);
    }

    .hero h1{
      margin:0 0 22px;
      max-width:680px;
      font-size:clamp(38px,4.8vw,74px);
      line-height:.98;
      letter-spacing:.03em;
      font-weight:900;
      text-transform:uppercase;
    }

    .hero h1 span{display:block}

    .hero p{
      max-width:560px;
      margin:0 0 30px;
      color:var(--muted);
      font-size:clamp(15px,1.06vw,18px);
      line-height:1.76;
    }

    .hero-actions{
      display:flex;
      gap:20px;
      flex-wrap:wrap;
    }

    .hero-cases{
      min-height:calc(100vh - var(--header-h));
      border-left:1px solid var(--line);
      padding:clamp(22px,3vw,30px);
      display:grid;
      grid-template-rows:1fr auto;
      gap:16px;
      background:
        radial-gradient(circle at 80% 12%,rgba(143,99,255,.16),transparent 34%),
        linear-gradient(180deg,rgba(255,255,255,.015),rgba(255,255,255,.025));
    }

    .case-view{
      position:relative;
      min-height:620px;
      border:1px solid rgba(255,255,255,.08);
      overflow:hidden;
      background:#09060e;
    }

    .case-slide{
      position:absolute;
      inset:0;
      opacity:0;
      pointer-events:none;
      transition:opacity .55s ease, transform .7s var(--ease);
      transform:scale(1.02);
      background:
        linear-gradient(180deg,rgba(6,4,10,.10),rgba(6,4,10,.82)),
        var(--img);
      background-size:cover;
      background-position:center;
      padding:20px;
      display:flex;
      flex-direction:column;
      justify-content:space-between;
    }

    .case-slide.active{
      opacity:1;
      pointer-events:auto;
      transform:scale(1);
    }

    .case-slide .meta{
      display:flex;
      justify-content:space-between;
      gap:20px;
      color:rgba(246,241,234,.72);
      font-size:11px;
      font-weight:700;
      letter-spacing:.16em;
      text-transform:uppercase;
    }

    .case-slide .inner{
      max-width:520px;
      padding-right:20px;
    }

    .case-slide h3{
      margin:0 0 14px;
      font-size:clamp(24px,2.4vw,38px);
      line-height:1.02;
      letter-spacing:.03em;
      font-weight:900;
      text-transform:uppercase;
    }

    .case-slide p{
      margin:0;
      color:rgba(246,241,234,.88);
      font-size:14px;
      line-height:1.68;
      max-width:470px;
    }

    .case-slide .site-link{
      display:inline-flex;
      margin-top:18px;
      font-size:11px;
      font-weight:800;
      letter-spacing:.16em;
      text-transform:uppercase;
    }

    .case-controls{
      display:flex;
      align-items:center;
      justify-content:space-between;
      gap:16px;
      padding:2px 2px 0;
    }

    .case-pills{
      display:flex;
      flex-wrap:wrap;
      gap:8px;
    }

    .case-pill{
      border:1px solid rgba(255,255,255,.10);
      background:rgba(255,255,255,.03);
      color:rgba(246,241,234,.62);
      padding:10px 14px;
      font-size:10px;
      font-weight:700;
      letter-spacing:.14em;
      text-transform:uppercase;
      transition:background .3s ease,border-color .3s ease,color .3s ease,transform .3s var(--ease);
    }

    .case-pill:hover{
      transform:translateY(-2px);
      border-color:rgba(200,176,255,.32);
      color:#fff;
    }

    .case-pill.active{
      background:rgba(143,99,255,.16);
      border-color:rgba(200,176,255,.42);
      color:#fff;
    }

    .case-note{
      color:rgba(246,241,234,.44);
      font-size:10px;
      font-weight:700;
      letter-spacing:.14em;
      text-transform:uppercase;
      white-space:nowrap;
    }

    /* VERTICAL METHOD */
    .vertical-method{
      padding-block:clamp(70px,8vw,116px);
    }

    .section-head{
      display:grid;
      grid-template-columns:minmax(0,1fr) minmax(280px,.9fr);
      gap:clamp(26px,5vw,70px);
      align-items:end;
      margin-bottom:36px;
    }

    .tab-stack{
      display:grid;
      grid-template-columns:repeat(6,minmax(0,1fr));
      min-height:580px;
      border-top:1px solid var(--line);
      border-left:1px solid var(--line);
    }

    .tab-card{
      position:relative;
      min-height:580px;
      padding:26px;
      overflow:hidden;
      display:flex;
      flex-direction:column;
      justify-content:space-between;
      border-right:1px solid var(--line);
      border-bottom:1px solid var(--line);
      background:rgba(255,255,255,.018);
      isolation:isolate;
    }

    .tab-card::before{
      content:"";
      position:absolute;
      inset:0;
      z-index:-2;
      background:linear-gradient(180deg,rgba(143,99,255,.16),rgba(0,0,0,.88)),var(--img);
      background-position:center;
      background-size:cover;
      opacity:0;
      transform:scale(1.08);
      transition:opacity .55s ease, transform .75s var(--ease);
    }

    .tab-card::after{
      content:"";
      position:absolute;
      inset:0;
      z-index:-1;
      background:linear-gradient(180deg,transparent,rgba(0,0,0,.38));
    }

    .tab-card.active::before,
    .tab-card:hover::before{
      opacity:.92;
      transform:scale(1);
    }

    .tab-card span{
      color:rgba(246,241,234,.46);
      font-size:13px;
      font-weight:700;
      letter-spacing:.08em;
      text-transform:uppercase;
    }

    .tab-card h3{
      margin:0;
      writing-mode:vertical-rl;
      transform:rotate(180deg);
      color:#fff;
      font-size:clamp(28px,3.1vw,52px);
      line-height:.96;
      letter-spacing:.02em;
      font-weight:900;
      text-transform:uppercase;
    }

    .tab-card small{
      max-width:220px;
      color:var(--muted);
      line-height:1.55;
      opacity:0;
      transform:translateY(18px);
      transition:opacity .35s ease, transform .35s var(--ease);
      font-size:13px;
    }

    .tab-card.active small,
    .tab-card:hover small{
      opacity:1;
      transform:translateY(0);
    }

    /* CARDS SECTIONS */
    .primary,
    .secondary,
    .consulting,
    .portfolio{
      padding-block:clamp(70px,8vw,116px);
    }

    .primary-grid{
      display:grid;
      grid-template-columns:repeat(4,minmax(0,1fr));
      gap:16px;
    }

    .secondary-grid{
      display:grid;
      grid-template-columns:repeat(3,minmax(0,1fr));
      gap:16px;
    }

    .consulting-grid{
      display:grid;
      grid-template-columns:repeat(5,minmax(0,1fr));
      gap:14px;
    }

    .card,
    .mini-card,
    .consulting-item,
    .portfolio-card{
      border:1px solid var(--line);
      background:linear-gradient(180deg,rgba(255,255,255,.03),rgba(255,255,255,.018));
      transition:transform .35s var(--ease), border-color .35s ease, background .35s ease;
      min-width:0;
    }

    .card:hover,
    .mini-card:hover,
    .consulting-item:hover,
    .portfolio-card:hover{
      transform:translateY(-5px);
      border-color:rgba(200,176,255,.34);
      background:linear-gradient(180deg,rgba(143,99,255,.10),rgba(255,255,255,.02));
    }

    .card{
      min-height:260px;
      padding:24px;
    }

    .mini-card{
      min-height:220px;
      padding:22px;
    }

    .consulting-item{
      min-height:168px;
      padding:18px;
      display:flex;
      flex-direction:column;
      justify-content:space-between;
    }

    .icon{
      width:44px;
      height:44px;
      display:grid;
      place-items:center;
      border:1px solid rgba(255,255,255,.1);
      background:rgba(255,255,255,.03);
      margin-bottom:22px;
    }

    .icon svg{
      width:22px;
      height:22px;
    }

    .card h3{
      margin:0 0 10px;
      font-size:22px;
      line-height:1.08;
      letter-spacing:.04em;
      font-weight:900;
      text-transform:uppercase;
    }

    .mini-card h4{
      margin:18px 0 10px;
      font-size:18px;
      line-height:1.18;
      letter-spacing:.04em;
      font-weight:800;
      text-transform:uppercase;
    }

    .card p,
    .mini-card p{
      margin:0;
      color:var(--muted);
      font-size:14px;
      line-height:1.66;
    }

    .consulting-item .num,
    .portfolio-card .num{
      color:rgba(246,241,234,.42);
      font-size:10px;
      font-weight:800;
      letter-spacing:.14em;
      text-transform:uppercase;
    }

    .consulting-item h4{
      margin:0;
      font-size:16px;
      line-height:1.26;
      letter-spacing:.04em;
      font-weight:800;
      text-transform:uppercase;
    }

    .analysis-cta{
      border-bottom:1px solid var(--line);
      padding-block:clamp(70px,8vw,118px);
      background:
        radial-gradient(circle at 82% 20%, rgba(143,99,255,.12), transparent 32%),
        rgba(255,255,255,.012);
    }

    .analysis-box{
      display:grid;
      grid-template-columns:minmax(0,1.1fr) minmax(280px,.9fr);
      gap:clamp(30px,6vw,90px);
      align-items:end;
      border:1px solid var(--line);
      padding:clamp(28px,4vw,58px);
      background:linear-gradient(180deg,rgba(255,255,255,.045),rgba(255,255,255,.018));
    }

    .analysis-box p{
      margin:0 0 28px;
    }

    .visuals{
      display:grid;
      grid-template-columns:minmax(0,1.04fr) minmax(0,.96fr);
      min-height:680px;
      border-top:1px solid var(--line);
      border-bottom:1px solid var(--line);
    }

    .visual-large,
    .visual-stack,
    .visual{
      position:relative;
      overflow:hidden;
    }

    .visual-large{
      min-height:680px;
      border-right:1px solid var(--line);
    }

    .visual-large img,
    .visual img{
      width:100%;
      height:100%;
      object-fit:cover;
      filter:grayscale(.10) saturate(.86) contrast(1.04);
    }

    .visual-stack{
      display:grid;
      grid-template-rows:1fr 1fr;
      min-height:680px;
    }

    .visual-stack .visual:first-child{
      border-bottom:1px solid var(--line);
    }

    .visual-label{
      position:absolute;
      left:18px;
      bottom:18px;
      z-index:3;
      padding:11px 13px;
      border:1px solid rgba(255,255,255,.12);
      background:rgba(5,3,7,.42);
      backdrop-filter:blur(14px);
      color:#fff;
      font-size:10px;
      font-weight:800;
      letter-spacing:.14em;
      text-transform:uppercase;
    }

    .portfolio-grid{
      display:grid;
      grid-template-columns:repeat(5,minmax(0,1fr));
      gap:14px;
    }

    .portfolio-card{
      min-height:156px;
      padding:18px;
      display:flex;
      flex-direction:column;
      justify-content:space-between;
    }

    .portfolio-card h4{
      margin:0;
      font-size:17px;
      line-height:1.22;
      letter-spacing:.04em;
      font-weight:800;
      text-transform:uppercase;
    }

    .portfolio-card p{
      margin:8px 0 0;
      color:var(--muted);
      font-size:13px;
      line-height:1.5;
    }

    /* CONTACT */
    .contact-form-section{
      padding-block:clamp(76px,8vw,122px);
      border-top:1px solid var(--line);
      border-bottom:1px solid var(--line);
      background:
        radial-gradient(circle at 14% 16%, rgba(143,99,255,.10), transparent 24%),
        radial-gradient(circle at 84% 76%, rgba(143,99,255,.08), transparent 24%),
        rgba(255,255,255,.01);
    }

    .contact-grid{
      display:grid;
      grid-template-columns:minmax(0,.88fr) minmax(320px,1.12fr);
      gap:clamp(28px,5vw,86px);
      align-items:start;
    }

    .contact-copy .title{
      max-width:740px;
      margin-bottom:22px;
    }

    .contact-copy .copy{
      max-width:600px;
    }

    .contact-meta{
      display:grid;
      gap:12px;
      margin-top:28px;
      color:rgba(246,241,234,.56);
      font-size:12px;
      font-weight:700;
      letter-spacing:.12em;
      text-transform:uppercase;
    }

    .form-shell{
      border:1px solid var(--line);
      background:linear-gradient(180deg,rgba(255,255,255,.045),rgba(255,255,255,.02));
      padding:clamp(24px,3vw,34px);
      min-width:0;
    }

    .hoture-form{
      display:grid;
      grid-template-columns:repeat(2,minmax(0,1fr));
      gap:14px;
    }

    .field{
      display:grid;
      gap:8px;
      min-width:0;
    }

    .field.full{
      grid-column:1 / -1;
    }

    .field label{
      color:rgba(246,241,234,.54);
      font-size:11px;
      font-weight:700;
      letter-spacing:.14em;
      text-transform:uppercase;
    }

    .field input,
    .field textarea{
      width:100%;
      border:1px solid rgba(255,255,255,.10);
      background:rgba(255,255,255,.035);
      color:#fff;
      padding:16px 18px;
      outline:none;
      border-radius:0;
      transition:border-color .3s ease, background .3s ease;
    }

    .field textarea{
      min-height:150px;
      resize:vertical;
    }

    .field input:focus,
    .field textarea:focus{
      border-color:rgba(200,176,255,.42);
      background:rgba(255,255,255,.05);
    }

    .submit-row{
      grid-column:1 / -1;
      display:flex;
      align-items:center;
      justify-content:space-between;
      gap:18px;
      margin-top:4px;
    }

    .submit-note{
      color:rgba(246,241,234,.48);
      font-size:11px;
      font-weight:700;
      letter-spacing:.12em;
      text-transform:uppercase;
      line-height:1.6;
      max-width:360px;
    }

    .submit-btn{
      appearance:none;
      border:1px solid rgba(255,255,255,.12);
      background:#fff;
      color:#08050d;
      padding:16px 26px;
      font-size:12px;
      font-weight:800;
      letter-spacing:.14em;
      text-transform:uppercase;
      transition:transform .35s var(--ease), box-shadow .35s ease;
      white-space:nowrap;
    }

    .submit-btn:hover{
      transform:translateY(-3px);
      box-shadow:0 18px 40px rgba(255,255,255,.12);
    }

    /* FOOTER FIXED GRIDS */
    .super-footer{
      position:relative;
      padding-top:42px;
      border-top:1px solid var(--line);
      background:
        radial-gradient(circle at 50% 0%, rgba(143,99,255,.10), transparent 36%),
        linear-gradient(180deg, rgba(255,255,255,.01), rgba(255,255,255,0));
    }

    .footer-main{
      display:grid;
      grid-template-columns:minmax(220px,1fr) minmax(260px,520px) minmax(220px,1fr);
      gap:clamp(24px,4vw,54px);
      align-items:start;
      padding-block:44px 34px;
      border-bottom:1px solid var(--line);
    }

    .footer-col{
      display:grid;
      gap:18px;
      min-width:0;
    }

    .footer-col.right{
      justify-items:end;
      text-align:right;
    }

    .footer-label{
      display:block;
      margin-bottom:10px;
      color:rgba(246,241,234,.44);
      font-size:11px;
      font-weight:800;
      letter-spacing:.14em;
      text-transform:uppercase;
    }

    .footer-list{
      display:grid;
      gap:10px;
    }

    .footer-list a{
      font-size:15px;
      font-weight:600;
      color:#fff;
      transition:opacity .35s ease;
      word-break:break-word;
    }

    .footer-list a:hover{opacity:.72}

    .footer-brand{
      display:grid;
      justify-items:center;
      text-align:center;
      gap:18px;
      min-width:0;
    }

    .footer-brand img{
      width:min(180px,38vw);
      height:auto;
    }

    .footer-brand p{
      max-width:460px;
      margin:0;
      color:var(--muted);
      font-size:14px;
      line-height:1.75;
    }

    .footer-badges{
      display:flex;
      flex-wrap:wrap;
      justify-content:center;
      gap:10px;
    }

    .footer-badges span{
      display:inline-flex;
      padding:10px 12px;
      border:1px solid rgba(255,255,255,.10);
      color:rgba(246,241,234,.64);
      font-size:10px;
      font-weight:800;
      letter-spacing:.12em;
      text-transform:uppercase;
      background:rgba(255,255,255,.02);
    }

    .footer-info{
      display:grid;
      grid-template-columns:repeat(3,minmax(0,1fr));
      gap:24px;
      padding-block:30px;
      border-bottom:1px solid var(--line);
    }

    .footer-info .center{
      text-align:center;
      justify-items:center;
    }

    .footer-info .right{
      text-align:right;
      justify-items:end;
    }

    .footer-bottom{
      min-height:92px;
      display:grid;
      grid-template-columns:1fr auto 1fr;
      align-items:center;
      gap:20px;
      color:rgba(246,241,234,.42);
      font-size:11px;
      font-weight:700;
      letter-spacing:.12em;
      text-transform:uppercase;
    }

    .footer-bottom .center-note{
      justify-self:center;
      text-align:center;
    }

    .footer-bottom .right-note{
      justify-self:end;
      text-align:right;
    }

    /* REVEAL */
    .reveal{
      opacity:0;
      transform:translateY(28px);
      transition:opacity .8s ease, transform .8s var(--ease);
    }

    .reveal.visible{
      opacity:1;
      transform:translateY(0);
    }

    .clip{
      position:relative;
      overflow:hidden;
    }

    .clip::before{
      content:"";
      position:absolute;
      inset:0;
      z-index:4;
      background:var(--violet2);
      transform:translateY(0);
      transition:transform 1.05s var(--ease);
    }

    .clip.visible::before{
      transform:translateY(-102%);
    }

    .clip img{
      transform:scale(1.08);
      transition:transform 1.35s var(--ease);
    }

    .clip.visible img{
      transform:scale(1);
    }

    @media (hover:none){
      .cursor{display:none}
    }

    @media(max-width:1320px){
      .hero{
        grid-template-columns:1fr;
      }

      .hero-copy{
        min-height:auto;
        padding-top:118px;
      }

      .hero-cases{
        min-height:640px;
        border-left:0;
        border-top:1px solid var(--line);
      }

      .section-head,
      .analysis-box,
      .contact-grid{
        grid-template-columns:1fr;
      }

      .tab-stack{
        grid-template-columns:repeat(3,minmax(0,1fr));
      }

      .primary-grid{
        grid-template-columns:repeat(2,minmax(0,1fr));
      }

      .secondary-grid{
        grid-template-columns:repeat(3,minmax(0,1fr));
      }

      .consulting-grid{
        grid-template-columns:repeat(3,minmax(0,1fr));
      }

      .visuals{
        grid-template-columns:1fr;
      }

      .visual-large{
        border-right:0;
      }

      .portfolio-grid{
        grid-template-columns:repeat(3,minmax(0,1fr));
      }

      .footer-main{
        grid-template-columns:1fr;
      }

      .footer-col.right,
      .footer-brand{
        justify-items:start;
        text-align:left;
      }

      .footer-badges{
        justify-content:flex-start;
      }

      .footer-info{
        grid-template-columns:1fr;
      }

      .footer-info .center,
      .footer-info .right{
        text-align:left;
        justify-items:start;
      }

      .footer-bottom{
        grid-template-columns:1fr;
        justify-items:start;
      }

      .footer-bottom .center-note,
      .footer-bottom .right-note{
        justify-self:start;
        text-align:left;
      }
    }

    @media(max-width:960px){
      .site-header{
        grid-template-columns:auto 1fr auto;
      }

      .header-micro{
        display:none;
      }

      .tab-stack{
        grid-template-columns:repeat(2,minmax(0,1fr));
      }

      .primary-grid,
      .secondary-grid{
        grid-template-columns:1fr;
      }

      .consulting-grid{
        grid-template-columns:repeat(2,minmax(0,1fr));
      }

      .portfolio-grid{
        grid-template-columns:repeat(2,minmax(0,1fr));
      }

      .case-controls{
        flex-direction:column;
        align-items:flex-start;
      }

      .case-note{
        white-space:normal;
      }

      .menu-grid{
        grid-template-columns:1fr;
      }

      .hoture-form{
        grid-template-columns:1fr;
      }

      .submit-row{
        flex-direction:column;
        align-items:flex-start;
      }
    }

    @media(max-width:720px){
      :root{--header-h:70px}

      .site-header{
        height:var(--header-h);
        padding-inline:18px;
      }

      .header-logo{
        width:108px;
      }

      .logo-full img{
        width:98px;
      }

      .call-link{
        display:none;
      }

      .hero{
        padding-top:var(--header-h);
      }

      .hero-copy{
        padding:46px 18px 34px;
      }

      .hero h1{
        font-size:34px;
      }

      .hero-cases{
        padding:18px;
        min-height:560px;
      }

      .case-view{
        min-height:420px;
      }

      .case-slide{
        padding:16px;
      }

      .case-slide .meta{
        font-size:9px;
      }

      .case-slide h3{
        font-size:22px;
      }

      .case-slide p{
        font-size:13px;
      }

      .vertical-method,
      .primary,
      .secondary,
      .consulting,
      .analysis-cta,
      .portfolio,
      .contact-form-section{
        padding-block:64px;
      }

      .tab-stack,
      .consulting-grid,
      .portfolio-grid{
        grid-template-columns:1fr;
      }

      .tab-card{
        min-height:300px;
      }

      .tab-card h3{
        writing-mode:initial;
        transform:none;
      }

      .visuals,
      .visual-large,
      .visual-stack{
        min-height:auto;
      }

      .visual-large{
        height:420px;
      }

      .visual{
        height:260px;
      }

      .menu-bottom{
        flex-direction:column;
        align-items:flex-start;
      }

      .intro-caption{
        font-size:10px;
        bottom:20px;
      }
    }

/*
      V10 PATCH — layout stabile a zoom 100%, 90% e su laptop.
      Il problema era dato da griglie troppo tirate: 6 colonne su container non abbastanza larghi,
      5 colonne portfolio/consulenza e footer con colonne rigide.
    */

    html,
    body{
      width:100%;
      max-width:100%;
      overflow-x:hidden !important;
    }

    .wrap{
      width:100%;
      max-width:1440px;
      margin-inline:auto;
      padding-inline:clamp(20px, 4vw, 64px);
    }

    .site-header{
      width:100%;
      max-width:100vw;
      grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);
    }

    .header-left,
    .header-right{
      min-width:0;
    }

    .header-micro{
      max-width:100%;
      overflow:hidden;
      text-overflow:ellipsis;
    }

    .hero{
      grid-template-columns:minmax(0, .92fr) minmax(520px, 1.08fr);
    }

    .hero-copy,
    .hero-cases{
      min-width:0;
    }

    .case-view{
      min-height:clamp(520px, 68vh, 700px);
    }

    .section-head{
      grid-template-columns:minmax(0, 1fr) minmax(320px, 520px);
    }

    .section-head > *{
      min-width:0;
    }

    .title{
      overflow-wrap:normal;
      word-break:normal;
      hyphens:none;
    }

    .copy{
      max-width:680px;
    }

    /* La sezione verticale deve essere 6 colonne solo su schermi davvero larghi */
    .tab-stack{
      grid-template-columns:repeat(6, minmax(0, 1fr));
    }

    .tab-card{
      min-width:0;
      min-height:560px;
    }

    .tab-card h3{
      white-space:nowrap;
    }

    .primary-grid{
      grid-template-columns:repeat(4, minmax(230px, 1fr));
    }

    .secondary-grid{
      grid-template-columns:repeat(3, minmax(260px, 1fr));
    }

    .consulting-grid{
      grid-template-columns:repeat(5, minmax(180px, 1fr));
    }

    .portfolio-grid{
      grid-template-columns:repeat(5, minmax(180px, 1fr));
    }

    .contact-grid{
      grid-template-columns:minmax(0, .88fr) minmax(420px, 1.12fr);
    }

    .footer-main{
      grid-template-columns:minmax(220px, 1fr) minmax(320px, 520px) minmax(220px, 1fr);
    }

    .footer-info{
      grid-template-columns:repeat(3, minmax(0, 1fr));
    }

    /* Laptop / viewport medi: layout molto più affidabile */
    @media (max-width: 1599px){
      .wrap{
        max-width:1320px;
      }

      .hero{
        grid-template-columns:minmax(0, .9fr) minmax(470px, 1.1fr);
      }

      .tab-stack{
        grid-template-columns:repeat(3, minmax(0, 1fr));
      }

      .tab-card{
        min-height:360px;
      }

      .tab-card h3{
        writing-mode:initial;
        transform:none;
        white-space:normal;
        font-size:clamp(28px, 3.2vw, 46px);
      }

      .tab-card small{
        opacity:1;
        transform:none;
      }

      .primary-grid{
        grid-template-columns:repeat(2, minmax(260px, 1fr));
      }

      .consulting-grid,
      .portfolio-grid{
        grid-template-columns:repeat(3, minmax(220px, 1fr));
      }
    }

    @media (max-width: 1240px){
      .hero{
        grid-template-columns:1fr;
      }

      .hero-copy{
        min-height:auto;
        padding-top:calc(var(--header-h) + 56px);
      }

      .hero-cases{
        min-height:auto;
        border-left:0;
        border-top:1px solid var(--line);
      }

      .case-view{
        min-height:560px;
      }

      .section-head,
      .analysis-box,
      .contact-grid{
        grid-template-columns:1fr;
      }

      .secondary-grid{
        grid-template-columns:repeat(2, minmax(260px, 1fr));
      }

      .footer-main{
        grid-template-columns:1fr;
      }

      .footer-col,
      .footer-col.right,
      .footer-brand{
        justify-items:start;
        text-align:left;
      }

      .footer-badges{
        justify-content:flex-start;
      }

      .footer-info{
        grid-template-columns:1fr;
      }

      .footer-info .center,
      .footer-info .right{
        justify-items:start;
        text-align:left;
      }

      .footer-bottom{
        grid-template-columns:1fr;
        justify-items:start;
      }

      .footer-bottom .center-note,
      .footer-bottom .right-note{
        justify-self:start;
        text-align:left;
      }
    }

    @media (max-width: 900px){
      .site-header{
        grid-template-columns:auto 1fr auto;
      }

      .header-micro{
        display:none;
      }

      .tab-stack{
        grid-template-columns:repeat(2, minmax(0, 1fr));
      }

      .primary-grid,
      .secondary-grid,
      .consulting-grid,
      .portfolio-grid{
        grid-template-columns:1fr;
      }

      .hoture-form{
        grid-template-columns:1fr;
      }

      .submit-row{
        flex-direction:column;
        align-items:flex-start;
      }

      .case-controls{
        flex-direction:column;
        align-items:flex-start;
      }

      .case-note{
        white-space:normal;
      }
    }

    @media (max-width: 640px){
      .wrap{
        padding-inline:18px;
      }

      .hero h1{
        font-size:34px;
      }

      .case-view{
        min-height:420px;
      }

      .tab-stack{
        grid-template-columns:1fr;
      }

      .tab-card{
        min-height:300px;
      }

      .menu-grid{
        grid-template-columns:1fr;
      }

      .menu-bottom{
        flex-direction:column;
        align-items:flex-start;
      }
    }

/* Header: menu principale al posto della microlinea */
    .header-left{
      display:flex;
      align-items:center;
      min-width:0;
    }

    .header-nav{
      display:flex;
      align-items:center;
      gap:clamp(16px, 2.2vw, 34px);
      min-width:0;
    }

    .header-nav a{
      color:rgba(246,241,234,.72);
      font-size:11px;
      font-weight:800;
      letter-spacing:.12em;
      text-transform:uppercase;
      white-space:nowrap;
      transition:color .28s ease, opacity .28s ease;
    }

    .header-nav a:hover{
      color:#fff;
    }

    /* Logo header più piccolo quando compare completo allo scroll */
    .site-header.is-scrolled .logo-full img{
      width:88px !important;
      max-height:26px;
      object-fit:contain;
    }

    .site-header.is-scrolled .header-logo{
      width:104px;
      height:30px;
    }

    .site-header:not(.is-scrolled) .logo-mini img{
      width:28px;
    }

    /* Hover card: cambia solo sfondo/bordo, niente spostamenti */
    .card,
    .mini-card,
    .consulting-item,
    .portfolio-card,
    .tab-card{
      will-change:auto;
    }

    .card:hover,
    .mini-card:hover,
    .consulting-item:hover,
    .portfolio-card:hover,
    .tab-card:hover{
      transform:none !important;
    }

    .card.magnetic,
    .mini-card.magnetic,
    .consulting-item.magnetic,
    .portfolio-card.magnetic,
    .tab-card.magnetic{
      transform:none !important;
    }

    .card.magnetic *,
    .mini-card.magnetic *,
    .consulting-item.magnetic *,
    .portfolio-card.magnetic *,
    .tab-card.magnetic *{
      pointer-events:auto;
    }

    /* Evita che la magnetica JS sposti questi blocchi tramite inline style */
    .card[style*="transform"],
    .mini-card[style*="transform"],
    .consulting-item[style*="transform"],
    .portfolio-card[style*="transform"],
    .tab-card[style*="transform"]{
      transform:none !important;
    }

    /* Titolo contact più compatto */
    .contact-copy .title{
      max-width:620px;
    }

    @media (max-width: 1100px){
      .header-nav{
        gap:18px;
      }

      .header-nav a{
        font-size:10px;
        letter-spacing:.10em;
      }
    }

    @media (max-width: 900px){
      .header-nav{
        display:none;
      }
    }

/* LOGO COMPLETO ALLO SCROLL */
    .site-header.is-scrolled{
      height:96px;
    }

    .site-header.is-scrolled .logo-full img{
      height:80px !important;
      width:auto !important;
      max-height:80px !important;
      max-width:none !important;
      object-fit:contain;
    }

    .site-header.is-scrolled .header-logo{
      width:220px;
      height:84px;
    }

    /* SEZIONE VERTICALE COME NELLO SCREEN, PIÙ FIGA */
    @media (min-width: 1200px){
      .tab-stack{
        grid-template-columns:repeat(6, minmax(0, 1fr)) !important;
        min-height:760px !important;
      }

      .tab-card{
        min-height:760px !important;
        padding:28px 26px 26px !important;
        background:
          radial-gradient(circle at 50% 0%, rgba(143,99,255,.10), transparent 58%),
          rgba(255,255,255,.01);
      }

      .tab-card span{
        font-size:14px !important;
        letter-spacing:.08em !important;
      }

      .tab-card h3{
        writing-mode:vertical-rl !important;
        transform:rotate(180deg) !important;
        white-space:nowrap !important;
        font-size:clamp(34px, 3vw, 60px) !important;
        line-height:.92 !important;
        letter-spacing:.015em !important;
      }

      .tab-card small{
        max-width:210px !important;
        font-size:12px !important;
        line-height:1.55 !important;
      }

      .tab-card::before{
        background:
          linear-gradient(180deg, rgba(143,99,255,.18), rgba(0,0,0,.92)),
          var(--img) !important;
        background-position:center !important;
        background-size:cover !important;
      }
    }

    /* Sezione ancora leggibile su desktop medi */
    @media (min-width: 901px) and (max-width: 1199px){
      .tab-stack{
        grid-template-columns:repeat(3, minmax(0, 1fr)) !important;
      }

      .tab-card{
        min-height:420px !important;
      }

      .tab-card h3{
        writing-mode:initial !important;
        transform:none !important;
        white-space:normal !important;
        font-size:clamp(28px, 3vw, 44px) !important;
      }

      .tab-card small{
        opacity:1 !important;
        transform:none !important;
      }
    }

    @media (max-width: 900px){
      .site-header.is-scrolled{
        height:74px;
      }

      .site-header.is-scrolled .header-logo{
        width:120px;
        height:40px;
      }

      .site-header.is-scrolled .logo-full img{
        height:34px !important;
        max-height:34px !important;
      }
    }

/* CHI SIAMO */
    .about-section{
      padding-block:clamp(76px, 8vw, 126px);
      border-bottom:1px solid var(--line);
      background:
        radial-gradient(circle at 14% 18%, rgba(143,99,255,.10), transparent 24%),
        rgba(255,255,255,.008);
    }

    .about-grid{
      display:grid;
      grid-template-columns:minmax(0,.92fr) minmax(360px,1.08fr);
      gap:clamp(34px, 6vw, 96px);
      align-items:end;
    }

    .about-kicker{
      display:flex;
      align-items:center;
      gap:14px;
      color:rgba(246,241,234,.48);
      font-size:11px;
      font-weight:800;
      letter-spacing:.16em;
      text-transform:uppercase;
      margin-bottom:22px;
    }

    .about-kicker::before{
      content:"";
      width:34px;
      height:1px;
      background:rgba(246,241,234,.34);
    }

    .about-lead{
      margin:0;
      color:#fff;
      font-size:clamp(30px, 3.9vw, 66px);
      line-height:1.02;
      letter-spacing:.025em;
      font-weight:900;
      text-transform:uppercase;
    }

    .about-copy{
      display:grid;
      gap:22px;
    }

    .about-copy p{
      margin:0;
      color:var(--muted);
      font-size:clamp(15px, 1.04vw, 18px);
      line-height:1.78;
      max-width:780px;
    }

    .about-stats{
      display:grid;
      grid-template-columns:repeat(3, minmax(0,1fr));
      gap:12px;
      margin-top:16px;
    }

    .about-stat{
      border:1px solid var(--line);
      background:linear-gradient(180deg,rgba(255,255,255,.035),rgba(255,255,255,.015));
      padding:18px;
      min-height:116px;
      display:flex;
      flex-direction:column;
      justify-content:space-between;
    }

    .about-stat strong{
      color:#fff;
      font-size:clamp(26px, 2.5vw, 42px);
      line-height:1;
      letter-spacing:.02em;
      font-weight:900;
      text-transform:uppercase;
    }

    .about-stat span{
      color:rgba(246,241,234,.52);
      font-size:10px;
      line-height:1.5;
      font-weight:800;
      letter-spacing:.14em;
      text-transform:uppercase;
    }

    .about-piva{
      margin-top:18px;
      color:rgba(246,241,234,.48);
      font-size:11px;
      font-weight:800;
      letter-spacing:.14em;
      text-transform:uppercase;
    }

    /* CONSULENZA: più servizi senza rompere la griglia */
    .consulting-grid{
      grid-template-columns:repeat(5, minmax(170px, 1fr));
    }

    /* PORTFOLIO CON IMMAGINI */
    .portfolio-image-grid{
      display:grid;
      grid-template-columns:repeat(5, minmax(0,1fr));
      gap:14px;
    }

    .portfolio-image-card{
      position:relative;
      min-height:330px;
      border:1px solid var(--line);
      overflow:hidden;
      isolation:isolate;
      background:#08050d;
    }

    .portfolio-image-card::before{
      content:"";
      position:absolute;
      inset:0;
      z-index:-2;
      background:
        linear-gradient(180deg, rgba(5,3,7,.08), rgba(5,3,7,.92)),
        var(--img);
      background-size:cover;
      background-position:center;
      transform:scale(1.04);
      transition:transform .75s var(--ease), filter .55s ease;
      filter:saturate(.84) contrast(1.03);
    }

    .portfolio-image-card::after{
      content:"";
      position:absolute;
      inset:0;
      z-index:-1;
      background:radial-gradient(circle at 80% 10%, rgba(143,99,255,.13), transparent 34%);
      opacity:.8;
    }

    .portfolio-image-card:hover::before{
      transform:scale(1.10);
      filter:saturate(.96) contrast(1.08);
    }

    .portfolio-image-card a{
      position:absolute;
      inset:0;
      z-index:4;
    }

    .portfolio-image-content{
      position:relative;
      z-index:2;
      min-height:330px;
      padding:20px;
      display:flex;
      flex-direction:column;
      justify-content:space-between;
    }

    .portfolio-image-top{
      display:flex;
      justify-content:space-between;
      gap:14px;
      color:rgba(246,241,234,.62);
      font-size:10px;
      font-weight:800;
      letter-spacing:.14em;
      text-transform:uppercase;
    }

    .portfolio-image-card h4{
      margin:0 0 10px;
      color:#fff;
      font-size:clamp(20px, 1.45vw, 28px);
      line-height:1.05;
      letter-spacing:.04em;
      font-weight:900;
      text-transform:uppercase;
    }

    .portfolio-image-card p{
      margin:0;
      color:rgba(246,241,234,.75);
      font-size:13px;
      line-height:1.55;
      max-width:310px;
    }

    .portfolio-image-meta{
      display:inline-flex;
      width:max-content;
      margin-top:16px;
      color:#fff;
      font-size:10px;
      font-weight:800;
      letter-spacing:.14em;
      text-transform:uppercase;
    }

    /* Footer: solo P.IVA richiesta */
    .footer-info{
      grid-template-columns:repeat(3,minmax(0,1fr));
    }

    @media (max-width: 1599px){
      .portfolio-image-grid{
        grid-template-columns:repeat(3, minmax(0,1fr));
      }

      .consulting-grid{
        grid-template-columns:repeat(5, minmax(160px,1fr));
      }
    }

    @media (max-width: 1320px){
      .about-grid{
        grid-template-columns:1fr;
      }

      .about-stats{
        grid-template-columns:repeat(3, minmax(0,1fr));
      }

      .consulting-grid{
        grid-template-columns:repeat(3, minmax(200px,1fr));
      }
    }

    @media (max-width: 960px){
      .portfolio-image-grid{
        grid-template-columns:repeat(2, minmax(0,1fr));
      }

      .about-stats{
        grid-template-columns:1fr;
      }

      .consulting-grid{
        grid-template-columns:repeat(2, minmax(0,1fr));
      }
    }

    @media (max-width: 720px){
      .portfolio-image-grid,
      .consulting-grid{
        grid-template-columns:1fr;
      }

      .portfolio-image-card,
      .portfolio-image-content{
        min-height:320px;
      }
    }

/* HEADER PULITO: LOGO CENTRALE, MENU AI LATI */
    .site-header{
      grid-template-columns:minmax(0,1fr) auto minmax(0,1fr) !important;
      gap:clamp(18px, 3vw, 48px);
    }

    .header-nav{
      display:flex;
      align-items:center;
      gap:clamp(22px, 2.6vw, 42px);
      min-width:0;
    }

    .header-nav-left{
      justify-self:start;
    }

    .header-right{
      justify-self:end;
      display:flex;
      align-items:center;
      gap:clamp(16px, 2vw, 30px);
      min-width:0;
    }

    .header-nav-right{
      justify-content:flex-end;
    }

    .header-nav a{
      color:rgba(246,241,234,.72);
      font-size:11px;
      font-weight:800;
      letter-spacing:.13em;
      text-transform:uppercase;
      white-space:nowrap;
      transition:color .28s ease, opacity .28s ease;
    }

    .header-nav a:hover{
      color:#fff;
    }

    .header-logo{
      justify-self:center;
    }

    .site-header.is-scrolled .logo-full img{
      height:80px !important;
      width:auto !important;
      max-height:80px !important;
      object-fit:contain;
    }

    .site-header.is-scrolled .header-logo{
      width:220px !important;
      height:84px !important;
    }

    /* niente micro menu vecchio */
    .header-left,
    .header-micro{
      display:none !important;
    }

    /* SEZIONE INTRODUZIONE DOPO HERO */
    .arrival-section{
      padding-block:clamp(70px, 8vw, 118px);
      border-bottom:1px solid var(--line);
      background:
        radial-gradient(circle at 78% 20%, rgba(143,99,255,.12), transparent 32%),
        rgba(255,255,255,.006);
    }

    .arrival-box{
      display:grid;
      grid-template-columns:minmax(0,.72fr) minmax(320px,1.28fr);
      gap:clamp(34px, 6vw, 96px);
      align-items:end;
    }

    .arrival-number{
      color:rgba(246,241,234,.38);
      font-size:11px;
      font-weight:800;
      letter-spacing:.16em;
      text-transform:uppercase;
    }

    .arrival-title{
      margin:0;
      max-width:980px;
      color:#fff;
      font-size:clamp(34px, 5.2vw, 86px);
      line-height:.96;
      letter-spacing:.025em;
      font-weight:900;
      text-transform:uppercase;
    }

    .arrival-copy{
      max-width:760px;
      margin:26px 0 0;
      color:var(--muted);
      font-size:clamp(15px, 1.05vw, 18px);
      line-height:1.78;
    }

    /* PORTFOLIO PIÙ IN ALTO: titolo più compatto quando compare subito */
    #portfolio{
      padding-block:clamp(68px, 7vw, 108px);
    }

    @media (max-width: 1180px){
      .site-header{
        grid-template-columns:auto 1fr auto !important;
      }

      .header-nav{
        display:none !important;
      }

      .header-logo{
        justify-self:center;
      }

      .site-header.is-scrolled .header-logo{
        width:130px !important;
        height:44px !important;
      }

      .site-header.is-scrolled .logo-full img{
        height:38px !important;
        max-height:38px !important;
      }

      .arrival-box{
        grid-template-columns:1fr;
      }
    }

/* HEADER V15: logo centrale, menu più vicino al logo, più curato */
    .site-header{
      grid-template-columns:minmax(0,1fr) auto minmax(0,1fr) !important;
      gap:clamp(16px, 2vw, 30px) !important;
      padding-inline:clamp(26px, 4.5vw, 78px) !important;
    }

    .site-header::before{
      background:
        linear-gradient(180deg, rgba(5,3,7,.88) 0%, rgba(5,3,7,.58) 62%, rgba(5,3,7,0) 100%) !important;
    }

    .site-header::after{
      content:"";
      position:absolute;
      left:50%;
      top:50%;
      width:360px;
      height:72px;
      transform:translate(-50%, -50%);
      z-index:-1;
      pointer-events:none;
      background:radial-gradient(circle at center, rgba(143,99,255,.13), transparent 68%);
      opacity:.72;
      transition:opacity .35s ease;
    }

    .site-header.is-scrolled::after{
      opacity:.46;
    }

    .header-nav-left{
      justify-self:end !important;
    }

    .header-right{
      justify-self:start !important;
      display:flex !important;
      align-items:center !important;
      gap:clamp(16px, 1.8vw, 28px) !important;
    }

    .header-nav{
      gap:clamp(18px, 1.8vw, 30px) !important;
    }

    .header-nav a{
      position:relative;
      color:rgba(246,241,234,.74) !important;
      font-size:10px !important;
      font-weight:900 !important;
      letter-spacing:.14em !important;
      padding:12px 0;
    }

    .header-nav a::after{
      content:"";
      position:absolute;
      left:0;
      right:0;
      bottom:5px;
      height:1px;
      background:rgba(200,176,255,.85);
      transform:scaleX(0);
      transform-origin:left;
      transition:transform .35s var(--ease);
    }

    .header-nav a:hover{
      color:#fff !important;
    }

    .header-nav a:hover::after{
      transform:scaleX(1);
    }

    .header-logo{
      width:112px !important;
      height:48px !important;
      justify-self:center !important;
    }

    .logo-mini img{
      width:30px !important;
    }

    .logo-full img{
      width:108px !important;
      height:auto !important;
    }

    .site-header.is-scrolled{
      height:96px !important;
    }

    .site-header.is-scrolled .header-logo{
      width:220px !important;
      height:84px !important;
    }

    .site-header.is-scrolled .logo-full img{
      height:80px !important;
      width:auto !important;
      max-height:80px !important;
      object-fit:contain !important;
    }

    .hamburger{
      position:relative;
    }

    .hamburger::before{
      content:"";
      position:absolute;
      inset:4px;
      border:1px solid rgba(255,255,255,.08);
      opacity:0;
      transform:scale(.92);
      transition:opacity .28s ease, transform .28s var(--ease);
    }

    .hamburger:hover::before{
      opacity:1;
      transform:scale(1);
    }

    /* Il blocco “se sei qui” diventa più piccolo e ordinato */
    .arrival-section{
      padding-block:clamp(38px, 5vw, 76px) !important;
    }

    .arrival-box{
      grid-template-columns:minmax(160px,.32fr) minmax(0,.68fr) !important;
      gap:clamp(24px, 4vw, 62px) !important;
      align-items:start !important;
    }

    .arrival-title{
      max-width:760px !important;
      font-size:clamp(24px, 2.6vw, 44px) !important;
      line-height:1.04 !important;
      letter-spacing:.025em !important;
    }

    .arrival-copy{
      max-width:720px !important;
      margin-top:18px !important;
      font-size:15px !important;
      line-height:1.78 !important;
    }

    .arrival-number{
      padding-top:5px;
    }

    /* Portfolio più robusto e pulito */
    .portfolio-image-grid{
      grid-template-columns:repeat(4, minmax(0,1fr)) !important;
    }

    .portfolio-image-card,
    .portfolio-image-content{
      min-height:340px !important;
    }

    @media (max-width: 1500px){
      .header-nav{
        gap:18px !important;
      }

      .header-nav a{
        font-size:9px !important;
        letter-spacing:.12em !important;
      }

      .portfolio-image-grid{
        grid-template-columns:repeat(3, minmax(0,1fr)) !important;
      }
    }

    @media (max-width: 1180px){
      .header-nav{
        display:none !important;
      }

      .header-right{
        justify-self:end !important;
      }

      .site-header.is-scrolled{
        height:74px !important;
      }

      .site-header.is-scrolled .header-logo{
        width:130px !important;
        height:44px !important;
      }

      .site-header.is-scrolled .logo-full img{
        height:38px !important;
        max-height:38px !important;
      }

      .arrival-box{
        grid-template-columns:1fr !important;
      }
    }

    @media (max-width: 900px){
      .portfolio-image-grid{
        grid-template-columns:repeat(2, minmax(0,1fr)) !important;
      }
    }

    @media (max-width: 640px){
      .portfolio-image-grid{
        grid-template-columns:1fr !important;
      }
    }

.portfolio-image-grid{
      grid-template-columns:repeat(4, minmax(0,1fr)) !important;
    }
    @media (max-width: 1500px){
      .portfolio-image-grid{ grid-template-columns:repeat(3, minmax(0,1fr)) !important; }
    }
    @media (max-width: 900px){
      .portfolio-image-grid{ grid-template-columns:repeat(2, minmax(0,1fr)) !important; }
    }
    @media (max-width: 640px){
      .portfolio-image-grid{ grid-template-columns:1fr !important; }
    }

/* HEADER V17: menu più vicino al logo, leggibilità maggiore, dettagli più "awwwards" */
    .site-header{
      --header-accent-x:50%;
      height:108px !important;
      grid-template-columns:minmax(0,1fr) 168px minmax(0,1fr) !important;
      gap:10px !important;
      padding-inline:clamp(32px, 5vw, 94px) !important;
      overflow:visible;
    }

    .site-header::before{
      background:
        linear-gradient(180deg, rgba(5,3,7,.92) 0%, rgba(10,6,15,.78) 52%, rgba(5,3,7,.22) 100%) !important;
      border-bottom:1px solid rgba(255,255,255,.08) !important;
      box-shadow:0 18px 70px rgba(0,0,0,.26);
    }

    .site-header::after{
      content:"";
      position:absolute;
      left:50%;
      top:50%;
      width:520px;
      height:96px;
      transform:translate(-50%, -50%);
      z-index:-1;
      pointer-events:none;
      background:
        radial-gradient(circle at center, rgba(143,99,255,.18), transparent 66%);
      opacity:.9;
      filter:blur(.2px);
    }

    .site-header .header-logo::before{
      content:"";
      position:absolute;
      left:50%;
      top:50%;
      width:86px;
      height:86px;
      transform:translate(-50%, -50%);
      border:1px solid rgba(255,255,255,.10);
      border-radius:50%;
      opacity:.42;
      transition:width .45s var(--ease), height .45s var(--ease), opacity .35s ease;
    }

    .site-header.is-scrolled .header-logo::before{
      width:118px;
      height:118px;
      opacity:.24;
    }

    .site-header::selection{
      background:var(--violet);
    }

    .site-header .header-nav-left{
      justify-self:end !important;
      padding-right:10px;
    }

    .site-header .header-right{
      justify-self:start !important;
      display:flex !important;
      align-items:center !important;
      gap:18px !important;
      padding-left:10px;
    }

    .site-header .header-nav{
      display:flex;
      align-items:center;
      gap:clamp(18px, 1.7vw, 30px) !important;
    }

    .site-header .header-nav a{
      position:relative;
      color:rgba(246,241,234,.78) !important;
      font-size:13px !important;
      line-height:1;
      font-weight:900 !important;
      letter-spacing:.115em !important;
      text-transform:uppercase;
      white-space:nowrap;
      padding:18px 0 16px !important;
      transition:color .28s ease, transform .28s var(--ease);
    }

    .site-header .header-nav a::before{
      content:"";
      position:absolute;
      left:50%;
      top:7px;
      width:4px;
      height:4px;
      border-radius:50%;
      background:var(--violet2);
      opacity:0;
      transform:translate(-50%, 4px) scale(.4);
      transition:opacity .28s ease, transform .28s var(--ease);
      box-shadow:0 0 18px rgba(200,176,255,.85);
    }

    .site-header .header-nav a::after{
      content:"";
      position:absolute;
      left:0;
      right:0;
      bottom:8px;
      height:1px;
      background:rgba(200,176,255,.88);
      transform:scaleX(0);
      transform-origin:left;
      transition:transform .38s var(--ease);
    }

    .site-header .header-nav a:hover{
      color:#fff !important;
      transform:translateY(-1px);
    }

    .site-header .header-nav a:hover::before{
      opacity:1;
      transform:translate(-50%, 0) scale(1);
    }

    .site-header .header-nav a:hover::after{
      transform:scaleX(1);
    }

    .header-logo{
      width:168px !important;
      height:92px !important;
      justify-self:center !important;
      align-self:center !important;
    }

    .site-header:not(.is-scrolled) .logo-mini img{
      width:58px !important;
      height:auto !important;
    }

    .site-header:not(.is-scrolled) .logo-full{
      opacity:0 !important;
    }

    .site-header.is-scrolled{
      height:116px !important;
    }

    .site-header.is-scrolled .header-logo{
      width:190px !important;
      height:96px !important;
    }

    .site-header.is-scrolled .logo-full img{
      height:80px !important;
      width:auto !important;
      max-height:80px !important;
      max-width:190px !important;
      object-fit:contain !important;
    }

    .hamburger{
      width:48px !important;
      height:48px !important;
      margin-left:2px;
    }

    .hamburger::before{
      content:"";
      position:absolute;
      inset:2px;
      border:1px solid rgba(255,255,255,.12);
      border-radius:999px;
      opacity:.52;
      transition:opacity .28s ease, transform .28s var(--ease), border-color .28s ease;
    }

    .hamburger:hover::before{
      opacity:1;
      transform:scale(1.04);
      border-color:rgba(200,176,255,.45);
    }

    .hamburger .lines{
      width:22px !important;
      height:13px !important;
    }

    .hamburger .lines::before{width:22px !important;}
    .hamburger .lines span{width:15px !important;}
    .hamburger .lines::after{width:19px !important;}

    .hamburger:hover .lines span{width:22px !important;}

    /* Micro elemento di design: linea luminosa sottile sotto l'header */
    .site-header .header-logo::after{
      content:"";
      position:absolute;
      left:50%;
      bottom:-12px;
      width:54vw;
      max-width:860px;
      height:1px;
      transform:translateX(-50%);
      background:linear-gradient(90deg, transparent, rgba(200,176,255,.32), transparent);
      opacity:.52;
      pointer-events:none;
    }

    /* Portfolio immagini: URL esterni robusti */
    .portfolio-image-card{
      background:#09060e;
    }

    @media (max-width:1500px){
      .site-header{
        grid-template-columns:minmax(0,1fr) 142px minmax(0,1fr) !important;
        padding-inline:clamp(24px, 3.4vw, 62px) !important;
      }

      .site-header .header-nav{
        gap:18px !important;
      }

      .site-header .header-nav a{
        font-size:11px !important;
        letter-spacing:.105em !important;
      }

      .header-logo{
        width:142px !important;
      }

      .site-header:not(.is-scrolled) .logo-mini img{
        width:50px !important;
      }
    }

    @media (max-width:1180px){
      .site-header{
        height:78px !important;
        grid-template-columns:auto 1fr auto !important;
      }

      .site-header .header-nav{
        display:none !important;
      }

      .header-logo{
        width:116px !important;
        height:52px !important;
      }

      .site-header:not(.is-scrolled) .logo-mini img{
        width:34px !important;
      }

      .site-header.is-scrolled{
        height:78px !important;
      }

      .site-header.is-scrolled .header-logo{
        width:128px !important;
        height:52px !important;
      }

      .site-header.is-scrolled .logo-full img{
        height:38px !important;
        max-height:38px !important;
        max-width:128px !important;
      }

      .site-header .header-logo::before,
      .site-header .header-logo::after{
        display:none;
      }
    }

/* Il vecchio intro overlay non deve più fare fade: lo sostituiamo con una sezione vera a scroll */
    #intro.intro{
      display:none !important;
    }

    .site{
      opacity:1;
    }

    /* HEADER FULL WIDTH / SOCIAL LEFT / MENU ATTACCATO AL LOGO / CTA + BURGER RIGHT */
    .site-header{
      width:100vw !important;
      max-width:100vw !important;
      height:112px !important;
      display:grid !important;
      grid-template-columns:220px minmax(0,1fr) 250px !important;
      align-items:center !important;
      gap:16px !important;
      padding-inline:clamp(24px, 3.6vw, 72px) !important;
      overflow:visible !important;
    }

    .site-header::before{
      background:
        radial-gradient(circle at 50% 50%, rgba(143,99,255,.16), transparent 32%),
        linear-gradient(180deg, rgba(5,3,7,.94) 0%, rgba(9,6,14,.82) 62%, rgba(5,3,7,.30) 100%) !important;
      border-bottom:1px solid rgba(255,255,255,.09) !important;
      box-shadow:0 20px 90px rgba(0,0,0,.38);
    }

    .site-header::after{
      content:"";
      position:absolute;
      left:50%;
      bottom:0;
      width:min(1180px, 74vw);
      height:1px;
      transform:translateX(-50%);
      background:linear-gradient(90deg, transparent, rgba(200,176,255,.42), transparent);
      pointer-events:none;
      opacity:.75;
    }

    .header-socials{
      justify-self:start;
      display:flex;
      align-items:center;
      gap:8px;
    }

    .header-socials a{
      width:38px;
      height:38px;
      display:grid;
      place-items:center;
      border:1px solid rgba(255,255,255,.11);
      border-radius:999px;
      color:rgba(246,241,234,.72);
      font-size:10px;
      font-weight:900;
      letter-spacing:.08em;
      transition:color .3s ease, border-color .3s ease, transform .35s var(--ease), background .3s ease;
    }

    .header-socials a:hover{
      color:#fff;
      border-color:rgba(200,176,255,.44);
      background:rgba(143,99,255,.10);
      transform:translateY(-2px);
    }

    .header-center-cluster{
      justify-self:center;
      display:flex;
      align-items:center;
      justify-content:center;
      gap:clamp(18px, 2vw, 34px);
      min-width:0;
    }

    .header-nav{
      display:flex !important;
      align-items:center;
      gap:clamp(14px, 1.3vw, 24px) !important;
      min-width:0;
    }

    .header-nav a{
      position:relative;
      color:rgba(246,241,234,.78) !important;
      font-size:14px !important;
      font-weight:900 !important;
      letter-spacing:.12em !important;
      line-height:1 !important;
      text-transform:uppercase;
      white-space:nowrap;
      padding:16px 0 !important;
      transition:color .28s ease, transform .28s var(--ease);
    }

    .header-nav a::before{
      content:"";
      position:absolute;
      left:50%;
      top:4px;
      width:4px;
      height:4px;
      border-radius:50%;
      background:var(--violet2);
      opacity:0;
      transform:translate(-50%, 5px) scale(.4);
      transition:opacity .28s ease, transform .28s var(--ease);
      box-shadow:0 0 18px rgba(200,176,255,.85);
    }

    .header-nav a::after{
      content:"";
      position:absolute;
      left:0;
      right:0;
      bottom:7px;
      height:1px;
      background:rgba(200,176,255,.88);
      transform:scaleX(0);
      transform-origin:left;
      transition:transform .38s var(--ease);
    }

    .header-nav a:hover{
      color:#fff !important;
      transform:translateY(-1px);
    }

    .header-nav a:hover::before{
      opacity:1;
      transform:translate(-50%, 0) scale(1);
    }

    .header-nav a:hover::after{
      transform:scaleX(1);
    }

    .header-logo{
      position:relative !important;
      width:120px !important;
      height:88px !important;
      flex:0 0 120px !important;
      display:grid !important;
      place-items:center !important;
      justify-self:center !important;
    }

    .header-logo::before{
      content:"";
      position:absolute;
      left:50%;
      top:50%;
      width:92px;
      height:92px;
      transform:translate(-50%, -50%);
      border:1px solid rgba(255,255,255,.13);
      border-radius:50%;
      background:radial-gradient(circle at center, rgba(143,99,255,.13), transparent 68%);
      opacity:.76;
      pointer-events:none;
      transition:width .45s var(--ease), height .45s var(--ease), opacity .35s ease;
    }

    .header-logo a{
      position:absolute;
      inset:0;
      display:grid;
      place-items:center;
      z-index:2;
      transition:opacity .35s ease, transform .35s var(--ease);
    }

    .site-header:not(.is-scrolled) .logo-mini img{
      width:58px !important;
      height:auto !important;
    }

    .site-header:not(.is-scrolled) .logo-full{
      opacity:0 !important;
      pointer-events:none;
    }

    .site-header.is-scrolled{
      height:118px !important;
    }

    .site-header.is-scrolled .header-logo{
      width:172px !important;
      height:92px !important;
      flex-basis:172px !important;
    }

    .site-header.is-scrolled .header-logo::before{
      width:126px;
      height:126px;
      opacity:.34;
    }

    .site-header.is-scrolled .logo-mini{
      opacity:0 !important;
      transform:translateY(-6px) scale(.86);
      pointer-events:none;
    }

    .site-header.is-scrolled .logo-full{
      opacity:1 !important;
      transform:translateY(0) scale(1);
    }

    .site-header.is-scrolled .logo-full img{
      height:80px !important;
      width:auto !important;
      max-height:80px !important;
      max-width:172px !important;
      object-fit:contain !important;
    }

    .header-actions{
      justify-self:end;
      display:flex;
      align-items:center;
      gap:12px;
      min-width:0;
    }

    .header-cta{
      position:relative;
      display:inline-flex;
      align-items:center;
      justify-content:center;
      min-height:42px;
      padding:0 16px;
      border:1px solid rgba(200,176,255,.26);
      border-radius:999px;
      background:rgba(143,99,255,.10);
      color:#fff;
      font-size:10px;
      font-weight:900;
      letter-spacing:.13em;
      text-transform:uppercase;
      white-space:nowrap;
      box-shadow:0 16px 46px rgba(143,99,255,.08);
      transition:transform .35s var(--ease), border-color .3s ease, background .3s ease;
    }

    .header-cta::after{
      content:"";
      width:6px;
      height:6px;
      margin-left:10px;
      border-radius:50%;
      background:var(--violet2);
      box-shadow:0 0 18px rgba(200,176,255,.9);
    }

    .header-cta:hover{
      transform:translateY(-2px);
      border-color:rgba(200,176,255,.52);
      background:rgba(143,99,255,.16);
    }

    .hamburger{
      position:relative;
      width:50px !important;
      height:50px !important;
      border:0;
      background:transparent;
      color:#fff;
      display:grid;
      place-items:center;
      padding:0;
      flex:0 0 50px;
    }

    .hamburger::before{
      content:"";
      position:absolute;
      inset:0;
      border:1px solid rgba(255,255,255,.13);
      border-radius:999px;
      opacity:.72;
      transition:opacity .28s ease, transform .28s var(--ease), border-color .28s ease, background .28s ease;
    }

    .hamburger:hover::before{
      opacity:1;
      transform:scale(1.04);
      border-color:rgba(200,176,255,.46);
      background:rgba(255,255,255,.035);
    }

    .hamburger .lines{
      width:22px !important;
      height:13px !important;
      position:relative;
      z-index:2;
    }

    .hamburger .lines::before{width:22px !important;}
    .hamburger .lines span{width:15px !important;}
    .hamburger .lines::after{width:19px !important;}
    .hamburger:hover .lines span{width:22px !important;}

    /* SCROLL INTRO REALE: non overlay, entra nel sito scrollando */
    .scroll-intro-section{
      min-height:155vh;
      position:relative;
      border-bottom:1px solid var(--line);
      background:
        radial-gradient(circle at 50% 34%, rgba(143,99,255,.20), transparent 38%),
        radial-gradient(circle at 12% 72%, rgba(200,176,255,.06), transparent 25%),
        linear-gradient(180deg, #050307 0%, #12091c 62%, #050307 100%);
      overflow:clip;
    }

    .scroll-intro-section::before{
      content:"";
      position:absolute;
      inset:0;
      pointer-events:none;
      background:
        linear-gradient(90deg, rgba(255,255,255,.045) 1px, transparent 1px),
        linear-gradient(180deg, rgba(255,255,255,.035) 1px, transparent 1px);
      background-size:25vw 25vh;
      opacity:.18;
      mask-image:radial-gradient(circle at center, black, transparent 74%);
    }

    .scroll-intro-sticky{
      position:sticky;
      top:0;
      min-height:100vh;
      display:grid;
      place-items:center;
      padding:calc(var(--header-h) + 30px) clamp(18px,4vw,68px) 44px;
    }

    .scroll-intro-grid{
      width:min(100%, 1500px);
      min-height:calc(100vh - var(--header-h) - 74px);
      display:grid;
      grid-template-rows:auto 1fr auto;
      align-items:center;
    }

    .scroll-intro-label{
      color:rgba(246,241,234,.48);
      font-size:11px;
      font-weight:800;
      letter-spacing:.16em;
      text-transform:uppercase;
    }

    .scroll-intro-words{
      width:100%;
      display:grid;
      gap:0;
      padding-block:4vh;
    }

    .scroll-word{
      overflow:hidden;
    }

    .scroll-word span{
      display:block;
      color:#fff;
      font-size:clamp(54px, 10.2vw, 188px);
      line-height:.88;
      letter-spacing:.025em;
      font-weight:900;
      text-transform:uppercase;
      transform:translateY(calc(var(--intro-progress, 0) * -8vh));
      opacity:calc(1 - (var(--intro-progress, 0) * .18));
      text-shadow:0 26px 90px rgba(143,99,255,.16);
    }

    .scroll-word:nth-child(2){
      text-align:center;
    }

    .scroll-word:nth-child(3){
      text-align:right;
    }

    .scroll-intro-bottom{
      display:flex;
      justify-content:space-between;
      align-items:center;
      gap:20px;
      color:rgba(246,241,234,.52);
      font-size:11px;
      font-weight:800;
      letter-spacing:.14em;
      text-transform:uppercase;
    }

    .scroll-intro-bottom span:first-child::before{
      content:"";
      display:inline-block;
      width:7px;
      height:7px;
      margin-right:10px;
      border-radius:50%;
      background:var(--violet2);
      box-shadow:0 0 18px rgba(200,176,255,.85);
      vertical-align:middle;
    }

    /* La prima hero non deve avere padding eccessivo se preceduta dall'intro */
    .scroll-intro-section + .hero{
      padding-top:var(--header-h);
    }

    /* Portfolio completo */
    .portfolio-image-grid{
      grid-template-columns:repeat(4, minmax(0,1fr)) !important;
    }

    .portfolio-image-card{
      background:#09060e;
    }

    .portfolio-image-card,
    .portfolio-image-content{
      min-height:350px !important;
    }

    @media (max-width: 1500px){
      .site-header{
        grid-template-columns:150px minmax(0,1fr) 210px !important;
        padding-inline:clamp(20px, 3vw, 46px) !important;
      }

      .header-center-cluster{
        gap:18px;
      }

      .header-nav{
        gap:14px !important;
      }

      .header-nav a{
        font-size:12px !important;
        letter-spacing:.105em !important;
      }

      .header-socials a{
        width:34px;
        height:34px;
        font-size:9px;
      }

      .header-cta{
        padding-inline:12px;
        font-size:9px;
      }

      .portfolio-image-grid{
        grid-template-columns:repeat(3, minmax(0,1fr)) !important;
      }
    }

    @media (max-width: 1180px){
      .site-header{
        height:78px !important;
        grid-template-columns:auto 1fr auto !important;
      }

      .header-socials{
        display:none;
      }

      .header-center-cluster{
        justify-self:center;
      }

      .header-nav{
        display:none !important;
      }

      .header-actions{
        justify-self:end;
      }

      .header-cta{
        display:none;
      }

      .header-logo{
        width:116px !important;
        height:52px !important;
        flex-basis:116px !important;
      }

      .site-header:not(.is-scrolled) .logo-mini img{
        width:34px !important;
      }

      .site-header.is-scrolled{
        height:78px !important;
      }

      .site-header.is-scrolled .header-logo{
        width:128px !important;
        height:52px !important;
        flex-basis:128px !important;
      }

      .site-header.is-scrolled .logo-full img{
        height:38px !important;
        max-height:38px !important;
        max-width:128px !important;
      }

      .header-logo::before{
        display:none;
      }

      .scroll-intro-section{
        min-height:128vh;
      }

      .scroll-intro-bottom{
        flex-direction:column;
        align-items:flex-start;
      }
    }

    @media (max-width: 900px){
      .portfolio-image-grid{
        grid-template-columns:repeat(2, minmax(0,1fr)) !important;
      }
    }

    @media (max-width: 640px){
      .portfolio-image-grid{
        grid-template-columns:1fr !important;
      }

      .scroll-word span{
        font-size:clamp(46px, 15vw, 82px);
      }
    }

body.preloading{
      overflow:hidden !important;
    }

    #loader.loader{
      position:fixed !important;
      inset:0 !important;
      width:100vw !important;
      height:100vh !important;
      z-index:999999 !important;
      display:grid !important;
      place-items:center !important;
      background:#000 !important;
      opacity:1;
      visibility:visible;
      pointer-events:auto;
      transition:opacity .55s ease, visibility .55s ease !important;
    }

    #loader.loader.hidden{
      opacity:0 !important;
      visibility:hidden !important;
      pointer-events:none !important;
    }

    #loader.loader.force-remove{
      display:none !important;
    }

    #intro.intro{
      display:none !important;
      visibility:hidden !important;
      opacity:0 !important;
      pointer-events:none !important;
    }

    .site{
      opacity:1 !important;
      visibility:visible !important;
    }

body.preloading{
      overflow:hidden !important;
    }

    #loader.loader{
      position:fixed !important;
      inset:0 !important;
      width:100vw !important;
      height:100vh !important;
      z-index:2147483647 !important;
      display:grid !important;
      place-items:center !important;
      background:#000 !important;
      opacity:1 !important;
      visibility:visible !important;
      pointer-events:auto !important;
      transition:opacity .65s ease, visibility .65s ease !important;
    }

    #loader.loader img{
      width:72px !important;
      max-width:72px !important;
      height:auto !important;
      opacity:0;
      transform:translateY(10px) scale(.94);
      animation:hotureLoaderIn .8s cubic-bezier(.19,1,.22,1) forwards;
      filter:drop-shadow(0 18px 46px rgba(143,99,255,.28));
    }

    @keyframes hotureLoaderIn{
      to{
        opacity:1;
        transform:translateY(0) scale(1);
      }
    }

    #loader.loader.is-hidden{
      opacity:0 !important;
      visibility:hidden !important;
      pointer-events:none !important;
    }

    #loader.loader.is-gone{
      display:none !important;
    }

    .site{
      opacity:1 !important;
      visibility:visible !important;
      transform:none !important;
    }

    .scroll-intro-bottom span:first-child{
      opacity:.72;
    }

    .scroll-intro-bottom span:first-child::before{
      content:"";
    }

/*
      FIX DEFINITIVO:
      Il loader ora non dipende più solo dal JavaScript.
      Si chiude anche via CSS animation, quindi non può restare fisso sopra/sotto l'header.
    */

    body{
      overflow-x:hidden !important;
    }

    #loader.loader{
      position:fixed !important;
      inset:0 !important;
      width:100vw !important;
      height:100dvh !important;
      z-index:2147483647 !important;
      display:grid !important;
      place-items:center !important;
      background:#000 !important;
      pointer-events:auto !important;
      opacity:1 !important;
      visibility:visible !important;
      animation:hotureLoaderAutoClose .75s ease 1.65s forwards !important;
    }

    #loader.loader img{
      width:72px !important;
      max-width:72px !important;
      height:auto !important;
      opacity:0;
      transform:translateY(10px) scale(.94);
      animation:hotureLoaderLogoIn .82s cubic-bezier(.19,1,.22,1) .12s forwards !important;
      filter:drop-shadow(0 18px 46px rgba(143,99,255,.28));
    }

    @keyframes hotureLoaderLogoIn{
      to{
        opacity:1;
        transform:translateY(0) scale(1);
      }
    }

    @keyframes hotureLoaderAutoClose{
      to{
        opacity:0;
        visibility:hidden;
        pointer-events:none;
      }
    }

    #loader.loader.is-hidden,
    #loader.loader.hidden,
    #loader.loader.force-remove{
      opacity:0 !important;
      visibility:hidden !important;
      pointer-events:none !important;
    }

    #loader.loader.is-gone{
      display:none !important;
    }

    .site{
      opacity:1 !important;
      visibility:visible !important;
      transform:none !important;
    }

    .scroll-intro-bottom{
      justify-content:flex-end !important;
    }

    .scroll-intro-bottom span:first-child{
      display:none !important;
    }

    .scroll-intro-sticky{
      padding-top:calc(var(--header-h) + 18px) !important;
    }

/* Reset conflitti vecchi */
    #loader,
    .loader,
    #intro,
    .intro,
    .scroll-intro-section{
      display:none !important;
      visibility:hidden !important;
      opacity:0 !important;
      pointer-events:none !important;
    }

    body.is-loading{
      overflow:hidden !important;
    }

    /* NUOVO PRELOADER: solo H per 2 secondi */
    .hoture-loader{
      position:fixed;
      inset:0;
      z-index:2147483647;
      display:grid;
      place-items:center;
      width:100vw;
      height:100dvh;
      background:#000;
      opacity:1;
      visibility:visible;
      pointer-events:auto;
      transition:opacity .7s ease, visibility .7s ease;
    }

    .hoture-loader img{
      width:72px;
      height:auto;
      opacity:0;
      transform:translateY(10px) scale(.92);
      filter:drop-shadow(0 24px 70px rgba(143,99,255,.28));
      animation:hotureHIn .95s cubic-bezier(.19,1,.22,1) .12s forwards;
    }

    @keyframes hotureHIn{
      to{
        opacity:1;
        transform:translateY(0) scale(1);
      }
    }

    .hoture-loader.is-hidden{
      opacity:0;
      visibility:hidden;
      pointer-events:none;
    }

    .hoture-loader.is-gone{
      display:none !important;
    }

    /* INTRO A SCROLL: dopo il loader appare questa, poi scrollando compare il sito */
    .agency-intro{
      position:relative;
      min-height:170vh;
      z-index:10;
      overflow:clip;
      border-bottom:1px solid var(--line);
      background:
        radial-gradient(circle at 50% 36%, rgba(143,99,255,.24), transparent 38%),
        radial-gradient(circle at 12% 70%, rgba(200,176,255,.07), transparent 25%),
        linear-gradient(180deg, #050307 0%, #12091c 58%, #050307 100%);
    }

    .agency-intro__bg{
      position:absolute;
      inset:0;
      pointer-events:none;
      opacity:.22;
      background:
        linear-gradient(90deg, rgba(255,255,255,.05) 1px, transparent 1px),
        linear-gradient(180deg, rgba(255,255,255,.04) 1px, transparent 1px);
      background-size:25vw 25vh;
      mask-image:radial-gradient(circle at center, black, transparent 74%);
    }

    .agency-intro__inner{
      position:sticky;
      top:0;
      min-height:100vh;
      display:grid;
      grid-template-rows:auto 1fr auto;
      align-items:center;
      width:min(100%, 1500px);
      margin-inline:auto;
      padding:calc(var(--header-h) + 32px) clamp(18px,4vw,68px) 44px;
      opacity:calc(1 - (var(--agency-progress, 0) * .92));
      transform:translateY(calc(var(--agency-progress, 0) * -42px));
      transition:opacity .05s linear;
    }

    .agency-intro__kicker{
      color:rgba(246,241,234,.52);
      font-size:11px;
      font-weight:900;
      letter-spacing:.16em;
      text-transform:uppercase;
    }

    .agency-intro__title{
      display:grid;
      gap:.06em;
      padding-block:4vh;
    }

    .agency-intro__title span{
      display:block;
      color:#fff;
      font-size:clamp(52px, 10vw, 184px);
      line-height:.88;
      letter-spacing:.025em;
      font-weight:900;
      text-transform:uppercase;
      text-shadow:0 26px 90px rgba(143,99,255,.16);
      transform:translateY(calc(var(--agency-progress, 0) * -9vh));
    }

    .agency-intro__title span:nth-child(2){
      text-align:center;
    }

    .agency-intro__title span:nth-child(3){
      text-align:right;
    }

    .agency-intro__footer{
      display:flex;
      justify-content:space-between;
      align-items:center;
      gap:20px;
      color:rgba(246,241,234,.52);
      font-size:11px;
      font-weight:900;
      letter-spacing:.14em;
      text-transform:uppercase;
    }

    .agency-intro__footer span:first-child::before{
      content:"";
      display:inline-block;
      width:7px;
      height:7px;
      margin-right:10px;
      border-radius:50%;
      background:var(--violet2);
      box-shadow:0 0 18px rgba(200,176,255,.85);
      vertical-align:middle;
    }

    /* Il sito sotto parte normale, ma dopo l'intro */
    .site{
      opacity:1 !important;
      visibility:visible !important;
      transform:none !important;
    }

    .agency-intro + .site-header + .menu + .app .hero,
    .agency-intro ~ .app .hero{
      padding-top:var(--header-h);
    }

    /*
      HEADER: invertito rispetto a prima.
      In alto: logo completo.
      Dopo scroll: solo H.
    */
    .site-header:not(.is-scrolled) .logo-full{
      opacity:1 !important;
      transform:translateY(0) scale(1) !important;
      pointer-events:auto !important;
    }

    .site-header:not(.is-scrolled) .logo-full img{
      height:80px !important;
      width:auto !important;
      max-height:80px !important;
      max-width:172px !important;
      object-fit:contain !important;
    }

    .site-header:not(.is-scrolled) .logo-mini{
      opacity:0 !important;
      transform:translateY(-6px) scale(.86) !important;
      pointer-events:none !important;
    }

    .site-header.is-scrolled .logo-full{
      opacity:0 !important;
      transform:translateY(6px) scale(.96) !important;
      pointer-events:none !important;
    }

    .site-header.is-scrolled .logo-mini{
      opacity:1 !important;
      transform:translateY(0) scale(1) !important;
      pointer-events:auto !important;
    }

    .site-header.is-scrolled .logo-mini img{
      width:58px !important;
      height:auto !important;
    }

    .site-header.is-scrolled .header-logo{
      width:120px !important;
      height:88px !important;
      flex-basis:120px !important;
    }

    .site-header.is-scrolled .header-logo::before{
      width:92px !important;
      height:92px !important;
      opacity:.76 !important;
    }

    /* Pulizia testo Nautilus */
    .about-piva,
    .footer-list a{
      text-transform:uppercase;
    }

    @media (max-width:1180px){
      .agency-intro{
        min-height:140vh;
      }

      .agency-intro__footer{
        flex-direction:column;
        align-items:flex-start;
      }

      .site-header:not(.is-scrolled) .logo-full img{
        height:38px !important;
        max-height:38px !important;
        max-width:128px !important;
      }

      .site-header.is-scrolled .logo-mini img{
        width:34px !important;
      }
    }

    @media (max-width:640px){
      .agency-intro__title span{
        font-size:clamp(44px, 14vw, 82px);
      }
    }

/*
      V23 — Intro corretta:
      1. Loader H fullscreen.
      2. Dopo 2 secondi appare DIGITAL WEB AGENCY X HOSPITALITY fullscreen sopra tutto.
      3. Header e sito non si vedono durante l'intro.
      4. Al primo scroll/touch/key l'intro sparisce definitivamente e non ricompare tornando su.
    */

    body.is-loading,
    body.intro-active{
      overflow:hidden !important;
    }

    body.is-loading .site-header,
    body.is-loading .app,
    body.intro-active .site-header,
    body.intro-active .app{
      opacity:0 !important;
      visibility:hidden !important;
      pointer-events:none !important;
    }

    body.intro-consumed .site-header,
    body.intro-consumed .app{
      opacity:1 !important;
      visibility:visible !important;
      pointer-events:auto !important;
      transition:opacity .65s ease, visibility .65s ease;
    }

    .hoture-loader{
      position:fixed !important;
      inset:0 !important;
      width:100vw !important;
      height:100dvh !important;
      z-index:2147483647 !important;
      display:grid !important;
      place-items:center !important;
      background:#000 !important;
      opacity:1 !important;
      visibility:visible !important;
      pointer-events:auto !important;
      transition:opacity .75s ease, visibility .75s ease !important;
    }

    .hoture-loader img{
      width:72px !important;
      height:auto !important;
      opacity:0;
      transform:translateY(10px) scale(.92);
      filter:drop-shadow(0 24px 70px rgba(143,99,255,.28));
      animation:hotureV23LoaderLogo .95s cubic-bezier(.19,1,.22,1) .12s forwards !important;
    }

    @keyframes hotureV23LoaderLogo{
      to{
        opacity:1;
        transform:translateY(0) scale(1);
      }
    }

    .hoture-loader.is-hidden{
      opacity:0 !important;
      visibility:hidden !important;
      pointer-events:none !important;
    }

    .hoture-loader.is-gone{
      display:none !important;
    }

    .agency-intro{
      position:fixed !important;
      inset:0 !important;
      width:100vw !important;
      height:100dvh !important;
      min-height:100dvh !important;
      z-index:2147483600 !important;
      overflow:hidden !important;
      display:grid !important;
      place-items:center !important;
      opacity:0;
      visibility:hidden;
      pointer-events:none;
      transform:none !important;
      border-bottom:0 !important;
      background:
        radial-gradient(circle at 50% 36%, rgba(143,99,255,.25), transparent 38%),
        radial-gradient(circle at 12% 70%, rgba(200,176,255,.07), transparent 25%),
        linear-gradient(180deg, #050307 0%, #12091c 58%, #050307 100%) !important;
      transition:opacity .65s ease, visibility .65s ease;
    }

    body.intro-active .agency-intro{
      opacity:1 !important;
      visibility:visible !important;
      pointer-events:auto !important;
    }

    .agency-intro.is-hidden{
      opacity:0 !important;
      visibility:hidden !important;
      pointer-events:none !important;
    }

    .agency-intro.is-gone{
      display:none !important;
    }

    .agency-intro__bg{
      position:absolute !important;
      inset:0 !important;
      pointer-events:none !important;
      opacity:.22 !important;
      background:
        linear-gradient(90deg, rgba(255,255,255,.05) 1px, transparent 1px),
        linear-gradient(180deg, rgba(255,255,255,.04) 1px, transparent 1px) !important;
      background-size:25vw 25vh !important;
      mask-image:radial-gradient(circle at center, black, transparent 74%) !important;
    }

    .agency-intro__inner{
      position:relative !important;
      width:min(100%, 1500px) !important;
      min-height:100dvh !important;
      margin:0 auto !important;
      padding:calc(var(--header-h) + 32px) clamp(18px,4vw,68px) 44px !important;
      display:grid !important;
      grid-template-rows:auto 1fr auto !important;
      align-items:center !important;
      opacity:1 !important;
      transform:none !important;
    }

    .agency-intro__kicker{
      color:rgba(246,241,234,.52) !important;
      font-size:11px !important;
      font-weight:900 !important;
      letter-spacing:.16em !important;
      text-transform:uppercase !important;
    }

    .agency-intro__title{
      display:grid !important;
      gap:.06em !important;
      padding-block:4vh !important;
    }

    .agency-intro__title span{
      display:block !important;
      color:#fff !important;
      font-size:clamp(52px, 10vw, 184px) !important;
      line-height:.88 !important;
      letter-spacing:.025em !important;
      font-weight:900 !important;
      text-transform:uppercase !important;
      text-shadow:0 26px 90px rgba(143,99,255,.16) !important;
      transform:none !important;
    }

    .agency-intro__title span:nth-child(2){
      text-align:center !important;
    }

    .agency-intro__title span:nth-child(3){
      text-align:right !important;
    }

    .agency-intro__footer{
      display:flex !important;
      justify-content:space-between !important;
      align-items:center !important;
      gap:20px !important;
      color:rgba(246,241,234,.52) !important;
      font-size:11px !important;
      font-weight:900 !important;
      letter-spacing:.14em !important;
      text-transform:uppercase !important;
    }

    .agency-intro__footer span:first-child::before{
      content:"" !important;
      display:inline-block !important;
      width:7px !important;
      height:7px !important;
      margin-right:10px !important;
      border-radius:50% !important;
      background:var(--violet2) !important;
      box-shadow:0 0 18px rgba(200,176,255,.85) !important;
      vertical-align:middle !important;
    }

    /* Header: prima logo completo, allo scroll solo H */
    .site-header:not(.is-scrolled) .logo-full{
      opacity:1 !important;
      transform:translateY(0) scale(1) !important;
      pointer-events:auto !important;
    }

    .site-header:not(.is-scrolled) .logo-full img{
      height:80px !important;
      width:auto !important;
      max-height:80px !important;
      max-width:172px !important;
      object-fit:contain !important;
    }

    .site-header:not(.is-scrolled) .logo-mini{
      opacity:0 !important;
      transform:translateY(-6px) scale(.86) !important;
      pointer-events:none !important;
    }

    .site-header.is-scrolled .logo-full{
      opacity:0 !important;
      transform:translateY(6px) scale(.96) !important;
      pointer-events:none !important;
    }

    .site-header.is-scrolled .logo-mini{
      opacity:1 !important;
      transform:translateY(0) scale(1) !important;
      pointer-events:auto !important;
    }

    /* H un po' più piccola allo scroll */
    .site-header.is-scrolled .logo-mini img{
      width:46px !important;
      height:auto !important;
    }

    .site-header.is-scrolled .header-logo{
      width:108px !important;
      height:76px !important;
      flex-basis:108px !important;
    }

    .site-header.is-scrolled .header-logo::before{
      width:78px !important;
      height:78px !important;
      opacity:.62 !important;
    }

    @media (max-width:1180px){
      .agency-intro__footer{
        flex-direction:column !important;
        align-items:flex-start !important;
      }

      .site-header:not(.is-scrolled) .logo-full img{
        height:38px !important;
        max-height:38px !important;
        max-width:128px !important;
      }

      .site-header.is-scrolled .logo-mini img{
        width:30px !important;
      }
    }

    @media (max-width:640px){
      .agency-intro__title span{
        font-size:clamp(44px, 14vw, 82px) !important;
      }
    }

/*
      V25:
      - rimosso/neutralizzato il vecchio blocco .intro-line rimasto dalla precedente intro
      - dopo il primo scroll l'intro non ricompare più
      - apertura hamburger sostituita con quella più compatta dell'ultima versione
      - corretto il vuoto nero/padding sopra la hero dopo l'ingresso nel sito
    */

    .intro-line,
    .intro-caption{
      display:none !important;
      visibility:hidden !important;
      opacity:0 !important;
      pointer-events:none !important;
      height:0 !important;
      overflow:hidden !important;
    }

    body.intro-consumed .app{
      margin-top:0 !important;
      padding-top:0 !important;
      background:
        radial-gradient(circle at 44% 0%, rgba(143,99,255,.30), transparent 36%),
        radial-gradient(circle at 86% 6%, rgba(200,176,255,.12), transparent 26%),
        linear-gradient(180deg,#12091c 0%,#0c0712 48%,#050307 100%) !important;
    }

    body.intro-consumed .hero{
      margin-top:0 !important;
      padding-top:0 !important;
      min-height:100vh !important;
      background:
        radial-gradient(circle at 50% 0%, rgba(143,99,255,.18), transparent 38%),
        linear-gradient(180deg, rgba(255,255,255,.015), rgba(255,255,255,0)) !important;
    }

    body.intro-consumed .hero-copy{
      min-height:100vh !important;
      padding-top:calc(var(--header-h) + 38px) !important;
      padding-bottom:clamp(40px,6vw,66px) !important;
    }

    body.intro-consumed .hero-cases{
      min-height:100vh !important;
      padding-top:calc(var(--header-h) + 26px) !important;
      padding-bottom:clamp(22px,3vw,30px) !important;
    }

    body.intro-consumed .case-view{
      min-height:calc(100vh - var(--header-h) - 62px) !important;
    }

    /*
      HAMBURGER MENU — versione compatta e più proporzionata.
    */
    .menu.open{
      z-index:2147483000 !important;
    }

    .menu-bg{
      background:
        radial-gradient(circle at 78% 18%,rgba(143,99,255,.22),transparent 34%),
        radial-gradient(circle at 18% 72%,rgba(200,176,255,.06),transparent 28%),
        #000 !important;
    }

    .menu-content{
      padding:28px clamp(26px,5vw,86px) 34px !important;
      grid-template-rows:auto 1fr auto !important;
    }

    .menu-top img{
      width:92px !important;
      height:auto !important;
    }

    .menu-close{
      font-size:11px !important;
      letter-spacing:.16em !important;
    }

    .menu-grid{
      align-self:center !important;
      display:grid !important;
      grid-template-columns:minmax(0,.72fr) minmax(300px,.28fr) !important;
      gap:clamp(34px,5vw,84px) !important;
      align-items:center !important;
    }

    .menu-links{
      gap:4px !important;
      max-width:900px !important;
    }

    .menu-links a{
      font-size:clamp(42px,5.2vw,86px) !important;
      line-height:.92 !important;
      letter-spacing:.025em !important;
      font-weight:900 !important;
    }

    .menu-links a:hover{
      transform:translateX(12px) !important;
    }

    .menu-cta{
      max-width:390px !important;
      padding:26px !important;
      align-self:center !important;
      background:
        radial-gradient(circle at 90% 10%, rgba(143,99,255,.16), transparent 38%),
        linear-gradient(180deg, rgba(255,255,255,.055), rgba(255,255,255,.022)) !important;
    }

    .menu-cta h3{
      font-size:clamp(20px,1.65vw,28px) !important;
      line-height:1.08 !important;
      letter-spacing:.035em !important;
      margin:16px 0 14px !important;
    }

    .menu-cta p{
      font-size:13px !important;
      line-height:1.65 !important;
      margin-bottom:22px !important;
    }

    .menu-bottom{
      font-size:10px !important;
      letter-spacing:.13em !important;
      opacity:.78;
    }

    /*
      H header allo scroll leggermente più piccola, come richiesto.
    */
    .site-header.is-scrolled .logo-mini img{
      width:40px !important;
      height:auto !important;
    }

    .site-header.is-scrolled .header-logo{
      width:96px !important;
      height:68px !important;
      flex-basis:96px !important;
    }

    .site-header.is-scrolled .header-logo::before{
      width:68px !important;
      height:68px !important;
      opacity:.52 !important;
    }

    @media (max-width:1180px){
      body.intro-consumed .hero-copy{
        padding-top:calc(var(--header-h) + 28px) !important;
      }

      body.intro-consumed .hero-cases{
        padding-top:18px !important;
        min-height:auto !important;
      }

      body.intro-consumed .case-view{
        min-height:520px !important;
      }

      .menu-grid{
        grid-template-columns:1fr !important;
        gap:30px !important;
      }

      .menu-links a{
        font-size:clamp(34px,9vw,68px) !important;
      }

      .menu-cta{
        max-width:100% !important;
      }

      .site-header.is-scrolled .logo-mini img{
        width:30px !important;
      }
    }

    @media (max-width:640px){
      .menu-content{
        padding:22px 22px 28px !important;
      }

      .menu-links a{
        font-size:clamp(32px,12vw,54px) !important;
      }
    }

/*
      V26:
      Ripristino sfondo hero più scuro come nella versione precedente.
      Tolto l'effetto viola chiaro troppo forte nella prima schermata del sito.
    */

    body.intro-consumed .app,
    .app{
      background:
        radial-gradient(circle at 82% -10%, rgba(143,99,255,.12), transparent 34%),
        radial-gradient(circle at 12% 26%, rgba(200,176,255,.045), transparent 28%),
        linear-gradient(180deg,#050307 0%,#08040d 42%,#050307 100%) !important;
    }

    body.intro-consumed .hero,
    .hero{
      background:
        radial-gradient(circle at 76% 0%, rgba(143,99,255,.08), transparent 36%),
        linear-gradient(180deg, rgba(255,255,255,.006), rgba(255,255,255,0)) !important;
    }

    body.intro-consumed .hero-copy,
    .hero-copy{
      background:
        radial-gradient(circle at 18% 40%, rgba(143,99,255,.10), transparent 42%),
        linear-gradient(180deg, rgba(5,3,7,.94), rgba(8,4,13,.92)) !important;
    }

    body.intro-consumed .hero-cases,
    .hero-cases{
      background:
        radial-gradient(circle at 80% 12%, rgba(143,99,255,.08), transparent 36%),
        linear-gradient(180deg, rgba(255,255,255,.010), rgba(255,255,255,.018)) !important;
    }

    body.intro-consumed .site-header::before,
    .site-header::before{
      background:
        radial-gradient(circle at 50% 50%, rgba(143,99,255,.10), transparent 34%),
        linear-gradient(180deg, rgba(5,3,7,.96) 0%, rgba(8,5,12,.88) 62%, rgba(5,3,7,.38) 100%) !important;
    }

    body.intro-consumed .hero::before{
      content:"";
      position:absolute;
      inset:0;
      pointer-events:none;
      background:
        linear-gradient(90deg, rgba(255,255,255,.035) 1px, transparent 1px),
        linear-gradient(180deg, rgba(255,255,255,.020) 1px, transparent 1px);
      background-size:50vw 50vh;
      opacity:.10;
      z-index:0;
    }

    .hero-copy,
    .hero-cases{
      position:relative;
      z-index:1;
    }

/*
      V27:
      - aggiunti servizi alla sezione VISIBILITÀ, CONTENUTI E ACQUISIZIONE
      - widget fisso call/analyzer
      - aggiunto Hotel Relax Siracusa al portfolio
    */

    .secondary-grid{
      grid-template-columns:repeat(3, minmax(260px, 1fr)) !important;
    }

    .secondary-grid .mini-card{
      min-height:238px !important;
    }

    /* Widget call fisso */
    .hoture-call-widget{
      position:fixed;
      right:24px;
      bottom:24px;
      z-index:900;
      font-family:'Poppins',system-ui,-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
    }

    .hoture-call-toggle{
      position:absolute;
      right:0;
      bottom:0;
      display:inline-flex;
      align-items:center;
      gap:10px;
      height:46px;
      padding:0 18px;
      border:1px solid rgba(200,176,255,.34);
      border-radius:999px;
      background:rgba(8,4,13,.78);
      color:#fff;
      backdrop-filter:blur(18px);
      box-shadow:0 20px 70px rgba(0,0,0,.34), 0 0 40px rgba(143,99,255,.10);
      font-size:10px;
      font-weight:900;
      letter-spacing:.13em;
      text-transform:uppercase;
      cursor:pointer;
      transition:transform .35s var(--ease), border-color .3s ease, background .3s ease, opacity .25s ease;
    }

    .hoture-call-toggle:hover{
      transform:translateY(-3px);
      border-color:rgba(200,176,255,.62);
      background:rgba(143,99,255,.18);
    }

    .hoture-call-dot{
      width:8px;
      height:8px;
      border-radius:50%;
      background:var(--violet2);
      box-shadow:0 0 18px rgba(200,176,255,.95);
    }

    .hoture-call-panel{
      position:absolute;
      right:0;
      bottom:62px;
      width:min(390px, calc(100vw - 34px));
      border:1px solid rgba(255,255,255,.12);
      background:
        radial-gradient(circle at 86% 8%, rgba(143,99,255,.18), transparent 32%),
        linear-gradient(180deg, rgba(12,7,18,.96), rgba(5,3,7,.96));
      backdrop-filter:blur(22px);
      box-shadow:0 28px 90px rgba(0,0,0,.48);
      opacity:0;
      transform:translateY(12px) scale(.98);
      transform-origin:bottom right;
      pointer-events:none;
      transition:opacity .35s ease, transform .45s var(--ease);
      overflow:hidden;
    }

    .hoture-call-widget:hover .hoture-call-panel,
    .hoture-call-widget.is-open .hoture-call-panel{
      opacity:1;
      transform:translateY(0) scale(1);
      pointer-events:auto;
    }

    .hoture-call-widget:hover .hoture-call-toggle,
    .hoture-call-widget.is-open .hoture-call-toggle{
      opacity:.0;
      pointer-events:none;
    }

    .hoture-call-media{
      position:relative;
      height:148px;
      overflow:hidden;
      border-bottom:1px solid rgba(255,255,255,.10);
    }

    .hoture-call-media img{
      width:100%;
      height:100%;
      object-fit:cover;
      filter:saturate(.86) contrast(1.05) brightness(.78);
      transform:scale(1.04);
    }

    .hoture-call-media::after{
      content:"";
      position:absolute;
      inset:0;
      background:linear-gradient(180deg, rgba(5,3,7,.04), rgba(5,3,7,.58));
    }

    .hoture-call-status{
      position:absolute;
      left:16px;
      bottom:14px;
      z-index:2;
      display:inline-flex;
      align-items:center;
      gap:8px;
      padding:9px 11px;
      border:1px solid rgba(255,255,255,.13);
      background:rgba(5,3,7,.48);
      color:#fff;
      backdrop-filter:blur(14px);
      font-size:10px;
      font-weight:900;
      letter-spacing:.13em;
      text-transform:uppercase;
    }

    .hoture-call-status::before{
      content:"";
      width:7px;
      height:7px;
      border-radius:50%;
      background:var(--violet2);
      box-shadow:0 0 16px rgba(200,176,255,.95);
    }

    .hoture-call-content{
      padding:20px;
    }

    .hoture-call-eyebrow{
      display:block;
      margin-bottom:12px;
      color:rgba(246,241,234,.48);
      font-size:10px;
      font-weight:900;
      letter-spacing:.14em;
      text-transform:uppercase;
    }

    .hoture-call-content h3{
      margin:0 0 12px;
      color:#fff;
      font-size:22px;
      line-height:1.05;
      letter-spacing:.035em;
      font-weight:900;
      text-transform:uppercase;
    }

    .hoture-call-content p{
      margin:0 0 18px;
      color:rgba(246,241,234,.68);
      font-size:13px;
      line-height:1.65;
    }

    .hoture-call-actions{
      display:flex;
      flex-wrap:wrap;
      gap:9px;
    }

    .hoture-call-actions a{
      display:inline-flex;
      align-items:center;
      justify-content:center;
      min-height:40px;
      padding:0 13px;
      border:1px solid rgba(255,255,255,.11);
      color:#fff;
      background:rgba(255,255,255,.035);
      font-size:10px;
      font-weight:900;
      letter-spacing:.13em;
      text-transform:uppercase;
      transition:background .3s ease, border-color .3s ease, transform .35s var(--ease);
    }

    .hoture-call-actions a:hover{
      transform:translateY(-2px);
      border-color:rgba(200,176,255,.42);
      background:rgba(143,99,255,.12);
    }

    .hoture-call-actions .hoture-call-primary{
      background:#fff;
      color:#07040c;
      border-color:#fff;
    }

    @media (max-width:1180px){
      .secondary-grid{
        grid-template-columns:repeat(2, minmax(260px, 1fr)) !important;
      }
    }

    @media (max-width:760px){
      .secondary-grid{
        grid-template-columns:1fr !important;
      }

      .hoture-call-widget{
        right:14px;
        bottom:14px;
      }

      .hoture-call-toggle{
        height:44px;
        padding-inline:14px;
        font-size:9px;
      }

      .hoture-call-panel{
        width:calc(100vw - 28px);
      }
    }

.case-slide{
      background-position:center center !important;
      background-size:cover !important;
    }

    .case-copy h3{
      max-width: 90%;
    }

/* Hero carousel: immagini reali e testi coerenti */
    .case-slide{
      background-position:center center !important;
      background-size:cover !important;
    }

    .case-slide .inner{
      max-width:620px !important;
    }

    .case-slide h3{
      max-width:760px !important;
    }

    .case-note{
      white-space:nowrap;
    }

    /* Filtro portfolio */
    .portfolio-filter-bar{
      display:flex;
      flex-wrap:wrap;
      gap:10px;
      margin:-8px 0 28px;
      padding-bottom:8px;
      border-bottom:1px solid rgba(255,255,255,.08);
    }

    .portfolio-filter{
      min-height:42px;
      padding:0 16px;
      border:1px solid rgba(255,255,255,.10);
      background:rgba(255,255,255,.025);
      color:rgba(246,241,234,.62);
      font-size:10px;
      font-weight:900;
      letter-spacing:.13em;
      text-transform:uppercase;
      cursor:pointer;
      transition:background .3s ease, color .3s ease, border-color .3s ease, transform .35s var(--ease);
    }

    .portfolio-filter:hover{
      transform:translateY(-2px);
      color:#fff;
      border-color:rgba(200,176,255,.34);
      background:rgba(143,99,255,.09);
    }

    .portfolio-filter.active{
      color:#fff;
      border-color:rgba(200,176,255,.56);
      background:rgba(143,99,255,.18);
      box-shadow:0 18px 44px rgba(143,99,255,.08);
    }

    .portfolio-image-card{
      transition:opacity .35s ease, transform .35s var(--ease), filter .35s ease;
    }

    .portfolio-image-card.is-hidden{
      opacity:0 !important;
      transform:scale(.975) !important;
      filter:blur(3px);
      pointer-events:none;
      position:absolute !important;
      visibility:hidden !important;
    }

    .portfolio-image-grid{
      position:relative;
    }

    @media (max-width:760px){
      .portfolio-filter-bar{
        gap:8px;
      }

      .portfolio-filter{
        min-height:38px;
        padding-inline:12px;
        font-size:9px;
      }
    }

html{
      scroll-behavior:smooth;
      scroll-padding-top:110px;
    }

    @media (min-width:1181px){
      body:not(.is-loading):not(.intro-active) main.site{
        scroll-snap-type:y proximity;
      }

      body:not(.is-loading):not(.intro-active) main.site > section,
      body:not(.is-loading):not(.intro-active) main.site > footer{
        scroll-snap-align:start;
      }
    }

    .hoture-scroll-progress{
      position:fixed;
      top:0;
      left:0;
      width:100%;
      height:3px;
      z-index:2147482500;
      pointer-events:none;
      background:rgba(255,255,255,.035);
    }

    .hoture-scroll-progress span{
      display:block;
      width:0%;
      height:100%;
      background:linear-gradient(90deg, rgba(200,176,255,.35), rgba(255,255,255,.92), rgba(143,99,255,.55));
      box-shadow:0 0 22px rgba(200,176,255,.45);
      transform-origin:left center;
    }

    .hoture-section-rail{
      position:fixed;
      right:18px;
      top:50%;
      transform:translateY(-50%);
      z-index:700;
      display:grid;
      gap:9px;
      opacity:0;
      pointer-events:none;
      transition:opacity .45s ease, transform .45s var(--ease);
    }

    body.intro-consumed .hoture-section-rail{
      opacity:1;
      pointer-events:auto;
    }

    .hoture-section-rail a{
      position:relative;
      width:34px;
      height:34px;
      display:grid;
      place-items:center;
      border:1px solid rgba(255,255,255,.085);
      border-radius:999px;
      background:rgba(5,3,7,.38);
      backdrop-filter:blur(14px);
      color:rgba(246,241,234,.42);
      font-size:9px;
      font-weight:900;
      letter-spacing:.08em;
      transition:border-color .28s ease, color .28s ease, background .28s ease, transform .35s var(--ease);
    }

    .hoture-section-rail a::before{
      content:attr(data-label);
      position:absolute;
      right:42px;
      top:50%;
      transform:translateY(-50%) translateX(8px);
      padding:8px 10px;
      border:1px solid rgba(255,255,255,.10);
      background:rgba(5,3,7,.72);
      color:#fff;
      white-space:nowrap;
      font-size:9px;
      font-weight:900;
      letter-spacing:.13em;
      text-transform:uppercase;
      opacity:0;
      pointer-events:none;
      transition:opacity .28s ease, transform .28s var(--ease);
    }

    .hoture-section-rail a:hover,
    .hoture-section-rail a.active{
      color:#fff;
      border-color:rgba(200,176,255,.48);
      background:rgba(143,99,255,.14);
      transform:scale(1.06);
    }

    .hoture-section-rail a:hover::before{
      opacity:1;
      transform:translateY(-50%) translateX(0);
    }

    .hoture-section-rail a.active{
      box-shadow:0 0 28px rgba(143,99,255,.18);
    }

    main.site > section,
    main.site > footer{
      position:relative;
    }

    body.intro-consumed main.site > section:not(.hero),
    body.intro-consumed main.site > footer{
      opacity:.62;
      transform:translateY(26px) scale(.992);
      filter:saturate(.86);
      transition:opacity .85s ease, transform .95s var(--ease), filter .85s ease;
    }

    body.intro-consumed main.site > section.hoture-section-active,
    body.intro-consumed main.site > footer.hoture-section-active{
      opacity:1;
      transform:translateY(0) scale(1);
      filter:saturate(1);
    }

    main.site > section::after{
      content:"";
      position:absolute;
      left:clamp(18px,4vw,68px);
      right:clamp(18px,4vw,68px);
      top:0;
      height:1px;
      background:linear-gradient(90deg, transparent, rgba(200,176,255,.20), transparent);
      opacity:0;
      transform:scaleX(.35);
      transition:opacity .7s ease, transform 1s var(--ease);
      pointer-events:none;
    }

    main.site > section.hoture-section-active::after{
      opacity:.55;
      transform:scaleX(1);
    }

    .reveal{
      transform:translateY(34px) skewY(.7deg);
      transition:opacity .9s ease, transform 1s var(--ease), filter .9s ease;
      filter:blur(4px);
    }

    .reveal.visible{
      transform:translateY(0) skewY(0);
      filter:blur(0);
    }

    .clip::before{
      background:linear-gradient(180deg, rgba(200,176,255,1), rgba(143,99,255,.70)) !important;
    }

    .case-view,
    .visual-large img,
    .visual img{
      will-change:transform;
    }

    .hero-copy{
      will-change:transform;
    }

    .link:hover{
      transform:translateY(-2px);
    }

    .hero::after{
      content:"SCROLL / DISCOVER";
      position:absolute;
      left:clamp(18px,4vw,68px);
      bottom:22px;
      color:rgba(246,241,234,.36);
      font-size:10px;
      font-weight:900;
      letter-spacing:.16em;
      text-transform:uppercase;
      pointer-events:none;
      opacity:.85;
    }

    .hero::before{
      content:"";
      position:absolute;
      left:clamp(18px,4vw,68px);
      bottom:54px;
      width:1px;
      height:42px;
      background:linear-gradient(180deg, rgba(200,176,255,.88), transparent);
      animation:hotureScrollPulse 1.7s ease-in-out infinite;
      z-index:3;
      pointer-events:none;
    }

    @keyframes hotureScrollPulse{
      0%,100%{ transform:scaleY(.45); opacity:.35; transform-origin:top; }
      50%{ transform:scaleY(1); opacity:.85; transform-origin:top; }
    }

    .hoture-scroll-kicker{
      position:fixed;
      left:50%;
      bottom:22px;
      z-index:650;
      transform:translateX(-50%);
      display:inline-flex;
      align-items:center;
      gap:10px;
      padding:10px 14px;
      border:1px solid rgba(255,255,255,.08);
      background:rgba(5,3,7,.38);
      color:rgba(246,241,234,.54);
      backdrop-filter:blur(14px);
      font-size:9px;
      font-weight:900;
      letter-spacing:.14em;
      text-transform:uppercase;
      opacity:0;
      pointer-events:none;
      transition:opacity .35s ease, transform .35s var(--ease);
    }

    body.intro-consumed .hoture-scroll-kicker{
      opacity:1;
    }

    body.scrolled-past-hero .hoture-scroll-kicker{
      opacity:0;
      transform:translateX(-50%) translateY(10px);
    }

    .hoture-scroll-kicker::before{
      content:"";
      width:7px;
      height:7px;
      border-radius:50%;
      background:var(--violet2);
      box-shadow:0 0 18px rgba(200,176,255,.85);
    }

    @media (max-width:1180px){
      .hoture-section-rail,
      .hoture-scroll-kicker{
        display:none;
      }

      body.intro-consumed main.site > section:not(.hero),
      body.intro-consumed main.site > footer{
        opacity:1;
        transform:none;
        filter:none;
      }
    }

    @media (prefers-reduced-motion:reduce){
      html{scroll-behavior:auto;}

      body.intro-consumed main.site > section:not(.hero),
      body.intro-consumed main.site > footer,
      .reveal,
      .clip img{
        transition:none !important;
        transform:none !important;
        filter:none !important;
      }

      .hero::before{
        animation:none;
      }
    }

/*
      V31:
      Fix widget fisso da mobile:
      - non serve più restare in hover col mouse
      - su mobile il pannello si apre/chiude al tap
      - bottoni con contrasto corretto
      - pannello più comodo e leggibile su schermi piccoli
    */

    .hoture-call-actions a{
      color:#fff !important;
      background:rgba(255,255,255,.055) !important;
      border-color:rgba(255,255,255,.14) !important;
    }

    .hoture-call-actions a:hover{
      color:#fff !important;
      background:rgba(143,99,255,.18) !important;
      border-color:rgba(200,176,255,.48) !important;
    }

    .hoture-call-actions .hoture-call-primary{
      background:#f6f1ea !important;
      color:#08050d !important;
      border-color:#f6f1ea !important;
    }

    .hoture-call-actions .hoture-call-primary:hover{
      background:#ffffff !important;
      color:#08050d !important;
      border-color:#ffffff !important;
    }

    .hoture-call-widget.is-open .hoture-call-panel{
      opacity:1 !important;
      transform:translateY(0) scale(1) !important;
      pointer-events:auto !important;
    }

    .hoture-call-widget.is-open .hoture-call-toggle{
      opacity:0 !important;
      pointer-events:none !important;
    }

    @media (hover:none){
      .hoture-call-widget:hover .hoture-call-panel{
        opacity:0;
        transform:translateY(12px) scale(.98);
        pointer-events:none;
      }

      .hoture-call-widget:hover .hoture-call-toggle{
        opacity:1;
        pointer-events:auto;
      }

      .hoture-call-widget.is-open .hoture-call-panel{
        opacity:1 !important;
        transform:translateY(0) scale(1) !important;
        pointer-events:auto !important;
      }

      .hoture-call-widget.is-open .hoture-call-toggle{
        opacity:0 !important;
        pointer-events:none !important;
      }
    }

    @media (max-width:760px){
      .hoture-call-widget{
        right:14px !important;
        bottom:14px !important;
        z-index:2147481000 !important;
      }

      .hoture-call-toggle{
        height:46px !important;
        padding:0 15px !important;
        max-width:calc(100vw - 28px);
        background:rgba(8,4,13,.92) !important;
        color:#fff !important;
      }

      .hoture-call-panel{
        position:fixed !important;
        right:14px !important;
        bottom:72px !important;
        width:calc(100vw - 28px) !important;
        max-height:calc(100dvh - 110px);
        overflow:auto;
        border-radius:0;
      }

      .hoture-call-media{
        height:132px !important;
      }

      .hoture-call-content{
        padding:18px !important;
      }

      .hoture-call-content h3{
        font-size:20px !important;
      }

      .hoture-call-actions{
        display:grid !important;
        grid-template-columns:1fr;
        gap:9px !important;
      }

      .hoture-call-actions a{
        width:100%;
        min-height:44px !important;
        color:#fff !important;
        background:rgba(255,255,255,.07) !important;
        border:1px solid rgba(255,255,255,.16) !important;
      }

      .hoture-call-actions .hoture-call-primary{
        color:#08050d !important;
        background:#f6f1ea !important;
        border-color:#f6f1ea !important;
      }
    }

.hoture-real-form{
      position:relative;
    }


/*
      V33:
      - scroll più fluido su desktop
      - barra laterale trasformata da cerchi numerati a linee verticali di design
    */

    html{
      scroll-behavior:smooth;
    }

    body{
      overscroll-behavior-y:none;
    }

    /* Rail laterale: niente cerchi, solo linee verticali */
    .hoture-section-rail{
      right:24px !important;
      gap:8px !important;
      padding:14px 9px !important;
      border:1px solid rgba(255,255,255,.075);
      background:rgba(5,3,7,.24);
      backdrop-filter:blur(16px);
    }

    .hoture-section-rail::before{
      content:"";
      position:absolute;
      top:20px;
      bottom:20px;
      left:50%;
      width:1px;
      transform:translateX(-50%);
      background:linear-gradient(180deg, transparent, rgba(200,176,255,.20), transparent);
      pointer-events:none;
    }

    .hoture-section-rail a{
      width:24px !important;
      height:34px !important;
      border:0 !important;
      border-radius:0 !important;
      background:transparent !important;
      backdrop-filter:none !important;
      color:rgba(246,241,234,.34) !important;
      box-shadow:none !important;
      transform:none !important;
      display:grid !important;
      place-items:center !important;
    }

    .hoture-section-rail a span{
      position:absolute;
      right:30px;
      top:50%;
      transform:translateY(-50%);
      font-size:9px;
      font-weight:900;
      letter-spacing:.08em;
      color:rgba(246,241,234,.30);
      transition:color .28s ease, transform .28s var(--ease);
    }

    .hoture-section-rail a::after{
      content:"";
      width:2px;
      height:18px;
      display:block;
      background:rgba(246,241,234,.20);
      transform:scaleY(.72);
      transform-origin:center;
      transition:
        height .35s var(--ease),
        transform .35s var(--ease),
        background .28s ease,
        box-shadow .28s ease;
    }

    .hoture-section-rail a:hover::after,
    .hoture-section-rail a.active::after{
      height:32px;
      transform:scaleY(1);
      background:rgba(200,176,255,.92);
      box-shadow:0 0 18px rgba(200,176,255,.52);
    }

    .hoture-section-rail a:hover span,
    .hoture-section-rail a.active span{
      color:#fff;
      transform:translateY(-50%) translateX(-3px);
    }

    .hoture-section-rail a::before{
      right:44px !important;
      background:rgba(5,3,7,.82) !important;
      border-color:rgba(255,255,255,.12) !important;
    }

    .hoture-section-rail a:hover,
    .hoture-section-rail a.active{
      background:transparent !important;
      border-color:transparent !important;
      transform:none !important;
    }

    .hoture-section-rail a.active{
      box-shadow:none !important;
    }

    /* Piccolo respiro visivo mentre lo scroll custom lavora */
    body.hoture-smooth-scrolling .site-header::before{
      backdrop-filter:blur(20px);
    }

    @media (max-width:1180px){
      .hoture-section-rail{
        display:none !important;
      }
    }

    @media (prefers-reduced-motion:reduce){
      body{
        overscroll-behavior-y:auto;
      }
    }

/*
      V34 — Intro a step:
      ogni scroll/touch/key rivela una riga.
      La X da mobile non esce più fuori.
    */

    .agency-intro__title{
      gap:clamp(8px, 1vw, 18px) !important;
    }

    .agency-intro__title span{
      opacity:.10 !important;
      transform:translateY(36px) skewY(1.5deg) !important;
      filter:blur(10px);
      transition:
        opacity .72s ease,
        transform .95s var(--ease),
        filter .72s ease,
        text-shadow .72s ease !important;
      will-change:opacity, transform, filter;
    }

    body.intro-step-1 .agency-intro__title span:nth-child(1),
    body.intro-step-2 .agency-intro__title span:nth-child(1),
    body.intro-step-3 .agency-intro__title span:nth-child(1){
      opacity:1 !important;
      transform:translateY(0) skewY(0) !important;
      filter:blur(0);
      text-shadow:0 26px 90px rgba(143,99,255,.20) !important;
    }

    body.intro-step-2 .agency-intro__title span:nth-child(2),
    body.intro-step-3 .agency-intro__title span:nth-child(2){
      opacity:1 !important;
      transform:translateY(0) skewY(0) !important;
      filter:blur(0);
      text-shadow:0 26px 90px rgba(143,99,255,.20) !important;
    }

    body.intro-step-3 .agency-intro__title span:nth-child(3){
      opacity:1 !important;
      transform:translateY(0) skewY(0) !important;
      filter:blur(0);
      text-shadow:0 26px 90px rgba(143,99,255,.20) !important;
    }

    .agency-intro__footer span:first-child{
      position:relative;
    }

    .agency-intro__footer span:first-child{
      font-size:0 !important;
    }

    .agency-intro__footer span:first-child::after{
      content:"Scroll per continuare";
      font-size:11px;
    }

    body.intro-step-1 .agency-intro__footer span:first-child::after{
      content:"Scroll / Web agency";
    }

    body.intro-step-2 .agency-intro__footer span:first-child::after{
      content:"Scroll / Hospitality";
    }

    body.intro-step-3 .agency-intro__footer span:first-child::after{
      content:"Scroll / Entra nel sito";
    }

    /* Mobile fix: la X non deve uscire fuori */
    @media (max-width:760px){
      .agency-intro__inner{
        padding-inline:18px !important;
        overflow:hidden !important;
      }

      .agency-intro__title{
        width:100%;
        max-width:100%;
        gap:10px !important;
      }

      .agency-intro__title span{
        width:100%;
        max-width:100%;
        overflow-wrap:normal;
        word-break:normal;
        white-space:nowrap;
        font-size:clamp(36px, 12.3vw, 76px) !important;
        line-height:.92 !important;
        letter-spacing:.012em !important;
      }

      .agency-intro__title span:nth-child(2){
        text-align:center !important;
        font-size:clamp(34px, 11vw, 70px) !important;
      }

      .agency-intro__title span:nth-child(3){
        text-align:right !important;
        font-size:clamp(30px, 9.7vw, 62px) !important;
        letter-spacing:.006em !important;
      }
    }

    @media (max-width:420px){
      .agency-intro__title span{
        font-size:clamp(32px, 11.5vw, 50px) !important;
      }

      .agency-intro__title span:nth-child(2){
        font-size:clamp(30px, 10.3vw, 48px) !important;
      }

      .agency-intro__title span:nth-child(3){
        font-size:clamp(27px, 8.9vw, 42px) !important;
      }
    }

/*
      V35:
      - intro DIGITAL / WEB AGENCY / X HOSPITALITY più rapida
      - mobile header: WhatsApp a sinistra, logo centrato, hamburger a destra
    */

    .agency-intro__title span{
      transition:
        opacity .30s ease,
        transform .42s var(--ease),
        filter .30s ease,
        text-shadow .30s ease !important;
      transform:translateY(24px) skewY(.8deg) !important;
      filter:blur(7px) !important;
    }

    body.intro-step-1 .agency-intro__title span:nth-child(1),
    body.intro-step-2 .agency-intro__title span:nth-child(1),
    body.intro-step-3 .agency-intro__title span:nth-child(1),
    body.intro-step-2 .agency-intro__title span:nth-child(2),
    body.intro-step-3 .agency-intro__title span:nth-child(2),
    body.intro-step-3 .agency-intro__title span:nth-child(3){
      transform:translateY(0) skewY(0) !important;
      filter:blur(0) !important;
    }

    @media (max-width:1180px){
      .site-header{
        grid-template-columns:52px minmax(0, 1fr) 52px !important;
        padding-inline:16px !important;
      }

      .header-socials{
        display:flex !important;
        justify-self:start !important;
        grid-column:1 !important;
        gap:0 !important;
      }

      .header-socials a{
        display:none !important;
      }

      .header-socials a[aria-label="WhatsApp"]{
        display:grid !important;
        width:42px !important;
        height:42px !important;
        place-items:center !important;
        border:1px solid rgba(255,255,255,.13) !important;
        border-radius:999px !important;
        background:rgba(255,255,255,.035) !important;
        color:#fff !important;
        font-size:0 !important;
        position:relative !important;
      }

      .header-socials a[aria-label="WhatsApp"]::before{
        content:"WA";
        font-size:10px;
        font-weight:900;
        letter-spacing:.08em;
      }

      .header-center-cluster{
        grid-column:2 !important;
        justify-self:center !important;
        width:auto !important;
        min-width:0 !important;
      }

      .header-logo{
        justify-self:center !important;
        margin-inline:auto !important;
      }

      .header-actions{
        grid-column:3 !important;
        justify-self:end !important;
        display:flex !important;
        align-items:center !important;
      }

      .hamburger{
        margin-left:0 !important;
      }
    }

    @media (max-width:640px){
      .site-header{
        grid-template-columns:48px minmax(0, 1fr) 48px !important;
        padding-inline:14px !important;
      }

      .header-socials a[aria-label="WhatsApp"]{
        width:40px !important;
        height:40px !important;
      }

      .header-logo{
        width:116px !important;
      }

      .site-header:not(.is-scrolled) .logo-full img{
        height:34px !important;
        max-height:34px !important;
        max-width:116px !important;
      }

      .site-header.is-scrolled .logo-mini img{
        width:28px !important;
      }
    }

/*
      V36:
      - intro ancora più veloce
      - dopo l'intro il sito torna esattamente a inizio hero
      - icona WhatsApp reale su mobile
      - rail laterale con nomi sezioni sempre leggibili, ma discreti
    */

    /* INTRO ANCORA PIÙ VELOCE */
    .agency-intro__title span{
      transition:
        opacity .16s ease,
        transform .24s var(--ease),
        filter .16s ease,
        text-shadow .16s ease !important;
      transform:translateY(16px) skewY(.45deg) !important;
      filter:blur(4px) !important;
    }

    body.intro-step-1 .agency-intro__title span:nth-child(1),
    body.intro-step-2 .agency-intro__title span:nth-child(1),
    body.intro-step-3 .agency-intro__title span:nth-child(1),
    body.intro-step-2 .agency-intro__title span:nth-child(2),
    body.intro-step-3 .agency-intro__title span:nth-child(2),
    body.intro-step-3 .agency-intro__title span:nth-child(3){
      transform:translateY(0) skewY(0) !important;
      filter:blur(0) !important;
    }

    /* INGRESSO NEL SITO: hero sempre in alto, niente effetto già scrollato */
    body.intro-consumed .app{
      margin-top:0 !important;
      padding-top:0 !important;
    }

    body.intro-consumed .hero{
      margin-top:0 !important;
      padding-top:0 !important;
      min-height:100vh !important;
    }

    body.intro-consumed .hero-copy{
      min-height:100vh !important;
      padding-top:calc(var(--header-h) + 38px) !important;
    }

    body.intro-consumed .hero-cases{
      min-height:100vh !important;
      padding-top:calc(var(--header-h) + 26px) !important;
    }

    body.intro-consumed .case-view{
      min-height:calc(100vh - var(--header-h) - 62px) !important;
    }

    /* WHATSAPP MOBILE: icona reale, non testo WA */
    @media (max-width:1180px){
      .header-socials a[aria-label="WhatsApp"]{
        font-size:0 !important;
      }

      .header-socials a[aria-label="WhatsApp"]::before{
        content:"" !important;
        width:18px;
        height:18px;
        display:block;
        background:#fff;
        -webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 32'%3E%3Cpath d='M16.04 3C9.02 3 3.33 8.68 3.33 15.68c0 2.23.58 4.4 1.69 6.32L3 29l7.18-1.88a12.67 12.67 0 0 0 5.86 1.49h.01c7.01 0 12.71-5.68 12.71-12.69C28.76 8.69 23.06 3 16.04 3Zm0 23.46h-.01c-1.86 0-3.68-.5-5.27-1.45l-.38-.23-4.26 1.12 1.14-4.14-.25-.42a10.5 10.5 0 0 1-1.6-5.66c0-5.83 4.77-10.57 10.64-10.57 2.84 0 5.51 1.1 7.52 3.1a10.48 10.48 0 0 1 3.12 7.48c0 5.83-4.77 10.57-10.65 10.57Zm5.83-7.91c-.32-.16-1.88-.93-2.17-1.03-.29-.11-.5-.16-.71.16-.21.32-.82 1.03-1 1.24-.18.21-.37.24-.69.08-.32-.16-1.35-.5-2.57-1.58-.95-.85-1.59-1.9-1.78-2.22-.18-.32-.02-.49.14-.65.14-.14.32-.37.48-.55.16-.18.21-.32.32-.53.11-.21.05-.4-.03-.55-.08-.16-.71-1.7-.97-2.33-.26-.61-.52-.53-.71-.54l-.6-.01c-.21 0-.55.08-.84.4-.29.32-1.1 1.08-1.1 2.63s1.13 3.05 1.29 3.26c.16.21 2.23 3.4 5.4 4.77.75.32 1.34.51 1.8.66.76.24 1.45.21 1.99.13.61-.09 1.88-.77 2.14-1.51.26-.74.26-1.37.18-1.51-.08-.13-.29-.21-.61-.37Z'/%3E%3C/svg%3E");
        mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 32'%3E%3Cpath d='M16.04 3C9.02 3 3.33 8.68 3.33 15.68c0 2.23.58 4.4 1.69 6.32L3 29l7.18-1.88a12.67 12.67 0 0 0 5.86 1.49h.01c7.01 0 12.71-5.68 12.71-12.69C28.76 8.69 23.06 3 16.04 3Zm0 23.46h-.01c-1.86 0-3.68-.5-5.27-1.45l-.38-.23-4.26 1.12 1.14-4.14-.25-.42a10.5 10.5 0 0 1-1.6-5.66c0-5.83 4.77-10.57 10.64-10.57 2.84 0 5.51 1.1 7.52 3.1a10.48 10.48 0 0 1 3.12 7.48c0 5.83-4.77 10.57-10.65 10.57Zm5.83-7.91c-.32-.16-1.88-.93-2.17-1.03-.29-.11-.5-.16-.71.16-.21.32-.82 1.03-1 1.24-.18.21-.37.24-.69.08-.32-.16-1.35-.5-2.57-1.58-.95-.85-1.59-1.9-1.78-2.22-.18-.32-.02-.49.14-.65.14-.14.32-.37.48-.55.16-.18.21-.32.32-.53.11-.21.05-.4-.03-.55-.08-.16-.71-1.7-.97-2.33-.26-.61-.52-.53-.71-.54l-.6-.01c-.21 0-.55.08-.84.4-.29.32-1.1 1.08-1.1 2.63s1.13 3.05 1.29 3.26c.16.21 2.23 3.4 5.4 4.77.75.32 1.34.51 1.8.66.76.24 1.45.21 1.99.13.61-.09 1.88-.77 2.14-1.51.26-.74.26-1.37.18-1.51-.08-.13-.29-.21-.61-.37Z'/%3E%3C/svg%3E");
        -webkit-mask-size:contain;
        mask-size:contain;
        -webkit-mask-repeat:no-repeat;
        mask-repeat:no-repeat;
        -webkit-mask-position:center;
        mask-position:center;
      }
    }

    /* RAIL LATERALE: nomi sempre visibili ma discreti */
    .hoture-section-rail{
      right:28px !important;
    }

    .hoture-section-rail a::before{
      opacity:.36 !important;
      transform:translateY(-50%) translateX(0) !important;
      background:transparent !important;
      border:0 !important;
      padding:0 !important;
      right:42px !important;
      color:rgba(246,241,234,.42) !important;
      font-size:9px !important;
      letter-spacing:.13em !important;
      text-shadow:0 0 18px rgba(0,0,0,.65);
    }

    .hoture-section-rail a:hover::before,
    .hoture-section-rail a.active::before{
      opacity:1 !important;
      color:#fff !important;
      transform:translateY(-50%) translateX(-4px) !important;
    }

    .hoture-section-rail a span{
      opacity:.38;
    }

    .hoture-section-rail a.active span,
    .hoture-section-rail a:hover span{
      opacity:1;
    }

    @media (max-width:1400px){
      .hoture-section-rail a::before{
        display:none !important;
      }
    }

/*
      V37:
      - tolta voce INTRO / 02 dalla barra laterale
      - smooth scroll disattivato durante intro
      - dopo X HOSPITALITY l'intro sparisce davvero e non resta "bloccata"
    */

    body.is-loading .hoture-section-rail,
    body.intro-active .hoture-section-rail{
      opacity:0 !important;
      visibility:hidden !important;
      pointer-events:none !important;
    }

    body:not(.intro-consumed) .hoture-section-rail{
      opacity:0 !important;
      visibility:hidden !important;
      pointer-events:none !important;
    }

    body.intro-consumed .hoture-section-rail{
      visibility:visible !important;
    }

    body.intro-active,
    body.is-loading{
      overflow:hidden !important;
      height:100dvh !important;
    }

    body.intro-consumed{
      overflow:auto !important;
      height:auto !important;
    }

    body.intro-consumed .agency-intro,
    .agency-intro.is-gone{
      display:none !important;
      visibility:hidden !important;
      opacity:0 !important;
      pointer-events:none !important;
    }

    /* evita qualsiasi residuo della schermata intro */
    body.intro-consumed .agency-intro__inner,
    body.intro-consumed .agency-intro__title,
    body.intro-consumed .agency-intro__footer{
      display:none !important;
    }

/*
      V38:
      - rimossa voce Hero/01 dalla rail laterale
      - eliminati conflitti di scroll
      - ingresso nel sito sempre a inizio hero
      - input del contact form non riportano più in alto
    */

    html{
      scroll-behavior:smooth;
    }

    body.is-loading,
    body.intro-active{
      overflow:hidden !important;
      height:100dvh !important;
    }

    body.intro-consumed{
      overflow:auto !important;
      height:auto !important;
    }

    body.is-loading .site-header,
    body.is-loading .app,
    body.intro-active .site-header,
    body.intro-active .app{
      opacity:0 !important;
      visibility:hidden !important;
      pointer-events:none !important;
    }

    body.intro-consumed .site-header,
    body.intro-consumed .app{
      opacity:1 !important;
      visibility:visible !important;
      pointer-events:auto !important;
    }

    body.is-loading .hoture-section-rail,
    body.intro-active .hoture-section-rail,
    body:not(.intro-consumed) .hoture-section-rail{
      opacity:0 !important;
      visibility:hidden !important;
      pointer-events:none !important;
    }

    body.intro-consumed .hoture-section-rail{
      visibility:visible !important;
      opacity:1 !important;
      pointer-events:auto !important;
    }

    body.intro-consumed .agency-intro,
    .agency-intro.is-gone{
      display:none !important;
      visibility:hidden !important;
      opacity:0 !important;
      pointer-events:none !important;
    }

    /* Rail: nomi visibili ma più ordinati, niente "Hero01" */
    .hoture-section-rail{
      right:28px !important;
      gap:9px !important;
    }

    .hoture-section-rail a::before{
      opacity:.34 !important;
      transform:translateY(-50%) translateX(0) !important;
      background:transparent !important;
      border:0 !important;
      padding:0 !important;
      right:42px !important;
      color:rgba(246,241,234,.42) !important;
      font-size:9px !important;
      letter-spacing:.13em !important;
      text-shadow:0 0 18px rgba(0,0,0,.65);
    }

    .hoture-section-rail a.active::before,
    .hoture-section-rail a:hover::before{
      opacity:1 !important;
      color:#fff !important;
      transform:translateY(-50%) translateX(-4px) !important;
    }

    @media (max-width:1400px){
      .hoture-section-rail a::before{
        display:none !important;
      }
    }

    /* Evita qualsiasi animazione/scroll forzato mentre si scrive nei form */
    input,
    textarea,
    select,
    button{
      scroll-margin-top:140px;
    }

    input:focus,
    textarea:focus,
    select:focus{
      scroll-margin-top:140px;
    }

    .hoture-form input,
    .hoture-form textarea{
      transform:none !important;
    }

    /* H dello header allo scroll leggermente più piccola */
    .site-header.is-scrolled .logo-mini img{
      width:40px !important;
      height:auto !important;
    }

    .site-header.is-scrolled .header-logo{
      width:96px !important;
      height:68px !important;
      flex-basis:96px !important;
    }

    .site-header.is-scrolled .header-logo::before{
      width:68px !important;
      height:68px !important;
      opacity:.52 !important;
    }

    @media (max-width:1180px){
      .site-header.is-scrolled .logo-mini img{
        width:30px !important;
      }
    }

/*
      V39:
      Fix definitivo scroll.
      Dopo l'intro il documento torna sempre scrollabile.
      Disattiva eventuali lock residui e snap troppo aggressivi.
    */

    html,
    body{
      overflow-x:hidden !important;
    }

    body.intro-consumed,
    body.intro-consumed html,
    body:not(.is-loading):not(.intro-active){
      overflow-y:auto !important;
      height:auto !important;
      min-height:100% !important;
      position:static !important;
      touch-action:auto !important;
    }

    body.intro-consumed.no-scroll{
      overflow-y:auto !important;
      height:auto !important;
    }

    body.intro-consumed main.site,
    body.intro-consumed .app{
      overflow:visible !important;
      height:auto !important;
      min-height:100vh !important;
      max-height:none !important;
      touch-action:auto !important;
    }

    body.intro-consumed main.site{
      scroll-snap-type:none !important;
    }

    body.intro-consumed main.site > section,
    body.intro-consumed main.site > footer{
      scroll-snap-align:none !important;
    }

    .agency-intro.is-gone,
    body.intro-consumed .agency-intro{
      display:none !important;
      height:0 !important;
      min-height:0 !important;
      overflow:hidden !important;
      pointer-events:none !important;
    }

/*
      V50 — FIX MIRATO SULLA VERSIONE CHE FUNZIONAVA MEGLIO.
      Il problema dello scroll sul contenuto era causato soprattutto da .app { overflow:hidden; }:
      sopra l'header lo scroll passava, sopra il sito veniva intercettato dal contenitore.
      Qui non rimuovo più il DOM: sblocco la radice dello scroll.
    */

    html,
    body{
      overflow-x:hidden !important;
    }

    body.intro-consumed,
    body.intro-consumed.no-scroll{
      overflow-y:auto !important;
      height:auto !important;
      min-height:100% !important;
      position:static !important;
      touch-action:auto !important;
    }

    /*
      Questo è il fix principale:
      l'app non deve essere un contenitore con overflow hidden quando il sito è aperto.
    */
    body.intro-consumed .app,
    body.intro-consumed #site,
    body.intro-consumed main.site{
      overflow:visible !important;
      height:auto !important;
      min-height:100vh !important;
      max-height:none !important;
      pointer-events:auto !important;
      touch-action:auto !important;
      scroll-snap-type:none !important;
    }

    body.intro-consumed main.site > section,
    body.intro-consumed main.site > footer{
      scroll-snap-align:none !important;
    }

    /*
      I layer intro/loading restano anche nel DOM se servono,
      ma da sito aperto non possono intercettare niente.
    */
    body.intro-consumed #agencyIntro,
    body.intro-consumed #hotureLoader,
    body.intro-consumed .agency-intro,
    body.intro-consumed .hoture-loader,
    body.intro-consumed .loader,
    body.intro-consumed .intro{
      pointer-events:none !important;
      visibility:hidden !important;
      opacity:0 !important;
    }

    .cursor,
    .grain,
    .hoture-scroll-progress{
      pointer-events:none !important;
    }

/*
      V52 — intro automatica CSS-first.
      Nessuno scroll iniziale.
      Nessun blocco permanente.
      Nessun preventDefault.
      Se il JS non parte, la sequenza va avanti comunque via CSS.
    */

    html,
    body{
      overflow-x:hidden !important;
      overflow-y:auto !important;
      height:auto !important;
      min-height:100% !important;
      position:static !important;
      touch-action:auto !important;
      scroll-behavior:smooth;
      background:#050307;
    }

    body.no-scroll,
    body.is-loading,
    body.intro-active,
    body.intro-consumed,
    body.v51-loading,
    body.v51-intro-active,
    body.v47-loading,
    body.hoture-preloading,
    body.hoture-lock-scroll{
      overflow-y:auto !important;
      height:auto !important;
      min-height:100% !important;
      position:static !important;
      touch-action:auto !important;
    }

    .app,
    #site,
    main.site{
      overflow:visible !important;
      height:auto !important;
      max-height:none !important;
      min-height:100vh !important;
      pointer-events:auto !important;
      touch-action:auto !important;
      scroll-snap-type:none !important;
    }

    main.site > section,
    main.site > footer{
      scroll-snap-align:none !important;
    }

    .site{
      opacity:1 !important;
      visibility:visible !important;
    }

    /* Spegne definitivamente tutti i vecchi sistemi */
    #loader,
    .loader,
    #intro,
    .intro,
    .intro-line,
    .intro-caption,
    #agencyIntro,
    .agency-intro,
    #hotureEntryIntro,
    .hoture-entry-intro,
    #v47Intro,
    .v47-intro,
    #v47Loader,
    .v47-loader,
    #v51Intro,
    .v51-intro,
    #v51Preloader,
    .v51-preloader,
    .scroll-intro-section{
      display:none !important;
      visibility:hidden !important;
      opacity:0 !important;
      pointer-events:none !important;
      width:0 !important;
      height:0 !important;
      min-height:0 !important;
      overflow:hidden !important;
      z-index:-1 !important;
    }

    /*
      Durante l'intro il sito è sotto ma non visibile.
      Lo mostriamo con animazione automatica: nessun JS necessario.
    */
    .site-header,
    .app{
      opacity:0;
      visibility:hidden;
      pointer-events:none;
      animation:v52SiteReveal .65s ease 5.35s forwards;
    }

    @keyframes v52SiteReveal{
      to{
        opacity:1;
        visibility:visible;
        pointer-events:auto;
      }
    }

    body.v52-ready .site-header,
    body.v52-ready .app{
      opacity:1 !important;
      visibility:visible !important;
      pointer-events:auto !important;
      animation:none !important;
    }

    /* PRELOADER */
    .v52-preloader{
      position:fixed;
      inset:0;
      z-index:2147483647;
      display:grid;
      place-items:center;
      width:100vw;
      height:100dvh;
      background:#000;
      opacity:1;
      visibility:visible;
      pointer-events:none;
      animation:v52PreloaderOut .62s ease 1.55s forwards;
    }

    .v52-preloader img{
      width:72px;
      height:auto;
      opacity:0;
      transform:translateY(10px) scale(.94);
      filter:drop-shadow(0 24px 70px rgba(143,99,255,.28));
      animation:v52LogoIn .78s cubic-bezier(.19,1,.22,1) .12s forwards;
    }

    @keyframes v52LogoIn{
      to{
        opacity:1;
        transform:translateY(0) scale(1);
      }
    }

    @keyframes v52PreloaderOut{
      to{
        opacity:0;
        visibility:hidden;
      }
    }

    /* INTRO */
    .v52-intro{
      position:fixed;
      inset:0;
      z-index:2147483600;
      width:100vw;
      height:100dvh;
      display:grid;
      place-items:center;
      overflow:hidden;
      pointer-events:none;
      background:
        radial-gradient(circle at 50% 36%, rgba(143,99,255,.24), transparent 38%),
        radial-gradient(circle at 12% 70%, rgba(200,176,255,.06), transparent 25%),
        linear-gradient(180deg, #050307 0%, #100819 58%, #050307 100%);
      opacity:0;
      visibility:hidden;
      animation:v52IntroLife 5.75s linear forwards;
    }

    @keyframes v52IntroLife{
      0%,26%{
        opacity:0;
        visibility:hidden;
      }
      31%,88%{
        opacity:1;
        visibility:visible;
      }
      100%{
        opacity:0;
        visibility:hidden;
      }
    }

    body.v52-ready .v52-intro,
    body.v52-ready .v52-preloader{
      display:none !important;
      opacity:0 !important;
      visibility:hidden !important;
      pointer-events:none !important;
    }

    .v52-grid{
      position:absolute;
      inset:0;
      pointer-events:none;
      opacity:.20;
      background:
        linear-gradient(90deg, rgba(255,255,255,.045) 1px, transparent 1px),
        linear-gradient(180deg, rgba(255,255,255,.035) 1px, transparent 1px);
      background-size:25vw 25vh;
      -webkit-mask-image:radial-gradient(circle at center, black, transparent 74%);
      mask-image:radial-gradient(circle at center, black, transparent 74%);
    }

    .v52-inner{
      position:relative;
      z-index:3;
      width:min(100%,1500px);
      min-height:100dvh;
      margin:0 auto;
      padding:calc(var(--header-h, 100px) + 32px) clamp(18px,4vw,68px) 44px;
      display:grid;
      grid-template-rows:auto 1fr auto;
      align-items:center;
      opacity:1;
      transform:translateY(0);
      animation:v52InnerOut .5s ease 4.42s forwards;
    }

    @keyframes v52InnerOut{
      to{
        opacity:0;
        transform:translateY(-30px);
        filter:blur(8px);
      }
    }

    .v52-kicker{
      color:rgba(246,241,234,.52);
      font-size:11px;
      font-weight:900;
      letter-spacing:.16em;
      text-transform:uppercase;
      opacity:0;
      transform:translateY(12px);
      animation:v52SmallIn .42s ease 1.78s forwards;
    }

    @keyframes v52SmallIn{
      to{
        opacity:1;
        transform:translateY(0);
      }
    }

    .v52-title{
      display:grid;
      gap:clamp(8px,1vw,18px);
      padding-block:4vh;
    }

    .v52-title span{
      display:block;
      color:#fff;
      font-size:clamp(52px,10vw,184px);
      line-height:.88;
      letter-spacing:.025em;
      font-weight:900;
      text-transform:uppercase;
      opacity:.035;
      transform:translateY(54px) skewY(1.6deg);
      filter:blur(14px);
      text-shadow:0 26px 90px rgba(143,99,255,.10);
      animation:v52WordIn .48s cubic-bezier(.19,1,.22,1) forwards;
    }

    .v52-title span:nth-child(1){
      animation-delay:1.85s;
    }

    .v52-title span:nth-child(2){
      text-align:center;
      animation-delay:2.38s;
    }

    .v52-title span:nth-child(3){
      text-align:right;
      animation-delay:2.91s;
    }

    @keyframes v52WordIn{
      to{
        opacity:1;
        transform:translateY(0) skewY(0);
        filter:blur(0);
        text-shadow:0 26px 90px rgba(143,99,255,.22);
      }
    }

    .v52-footer{
      display:flex;
      justify-content:space-between;
      align-items:center;
      gap:20px;
      color:rgba(246,241,234,.50);
      font-size:11px;
      font-weight:900;
      letter-spacing:.14em;
      text-transform:uppercase;
      opacity:0;
      transform:translateY(12px);
      animation:v52SmallIn .42s ease 3.25s forwards;
    }

    .v52-footer span:first-child::before{
      content:"";
      display:inline-block;
      width:7px;
      height:7px;
      margin-right:10px;
      border-radius:50%;
      background:var(--violet2, #c8b0ff);
      box-shadow:0 0 18px rgba(200,176,255,.85);
      vertical-align:middle;
    }

    .v52-cut{
      position:absolute;
      inset:0;
      z-index:6;
      pointer-events:none;
      transform:translateY(-101%);
      background:
        linear-gradient(180deg, #f6f1ea 0%, #c8b0ff 52%, #050307 100%);
      animation:v52Cut 1.05s cubic-bezier(.77,0,.175,1) 4.42s forwards;
    }

    @keyframes v52Cut{
      0%{transform:translateY(-101%)}
      42%{transform:translateY(0)}
      100%{transform:translateY(101%)}
    }

    .cursor,
    .grain,
    .hoture-scroll-progress{
      pointer-events:none !important;
    }

    body:not(.v52-ready) .hoture-section-rail,
    body:not(.v52-ready) .hoture-bottom-map{
      opacity:0 !important;
      visibility:hidden !important;
      pointer-events:none !important;
    }

    body.v52-ready .hoture-section-rail,
    body.v52-ready .hoture-bottom-map{
      visibility:visible !important;
      pointer-events:auto !important;
    }

    @media (max-width:1180px){
      .v52-footer{
        flex-direction:column;
        align-items:flex-start;
      }

      .v52-title span{
        white-space:nowrap;
        font-size:clamp(36px,12.3vw,76px);
      }

      .v52-title span:nth-child(2){
        font-size:clamp(34px,11vw,70px);
      }

      .v52-title span:nth-child(3){
        font-size:clamp(30px,9.7vw,62px);
      }
    }

/*
      V53 — FIX FINALE SOLO SCROLL POST-INTRO.
      La intro V52 resta identica. Qui faccio 2 cose:
      1) appena finita la sequenza, intro/preloader vengono spostati fuori scena e non possono più intercettare nulla
      2) se la rotella sul body non viene presa dal browser, la passo manualmente al documento
    */

    body.v52-ready{
      overflow-y:auto !important;
      overflow-x:hidden !important;
      height:auto !important;
      min-height:100% !important;
      position:static !important;
      touch-action:auto !important;
    }

    body.v52-ready .app,
    body.v52-ready #site,
    body.v52-ready main.site{
      overflow:visible !important;
      height:auto !important;
      min-height:100vh !important;
      max-height:none !important;
      pointer-events:auto !important;
      touch-action:auto !important;
      scroll-snap-type:none !important;
    }

    body.v52-ready .v52-intro,
    body.v52-ready .v52-preloader{
      display:none !important;
      visibility:hidden !important;
      opacity:0 !important;
      pointer-events:none !important;
      z-index:-1 !important;
      transform:translateY(-140vh) !important;
      width:0 !important;
      height:0 !important;
      min-height:0 !important;
      overflow:hidden !important;
    }

    /*
      Anche se per qualche motivo la classe v52-ready arrivasse in ritardo,
      dopo la durata dell'intro il layer viene neutralizzato via CSS.
    */
    .v52-intro{
      animation:
        v52IntroLife 5.75s linear forwards,
        v53KillIntro .01s linear 5.78s forwards !important;
    }

    .v52-preloader{
      animation:
        v52PreloaderOut .62s ease 1.55s forwards,
        v53KillIntro .01s linear 5.78s forwards !important;
    }

    @keyframes v53KillIntro{
      to{
        visibility:hidden;
        opacity:0;
        pointer-events:none;
        z-index:-1;
        transform:translateY(-140vh);
        width:0;
        height:0;
        min-height:0;
      }
    }

/*
      V54 — Scroll più rapido.
      Mantiene il fix della V53, ma aumenta la velocità della rotella sul contenuto.
    */
    html{
      scroll-behavior:smooth;
    }

/*
      V55:
      - scroll ancora più veloce
      - nav laterale con linee verticali e nomi sezioni
      - icona WhatsApp mobile centrata perfettamente nel cerchio
    */

    /* Rail laterale con linee verticali */
    .hoture-section-rail{
      position:fixed !important;
      right:26px !important;
      top:50% !important;
      transform:translateY(-50%) !important;
      z-index:820 !important;
      display:grid !important;
      gap:8px !important;
      padding:16px 10px !important;
      border:1px solid rgba(255,255,255,.075) !important;
      background:rgba(5,3,7,.30) !important;
      backdrop-filter:blur(16px) !important;
      opacity:0 !important;
      visibility:hidden !important;
      pointer-events:none !important;
      transition:opacity .45s ease, visibility .45s ease !important;
    }

    body.v52-ready .hoture-section-rail{
      opacity:1 !important;
      visibility:visible !important;
      pointer-events:auto !important;
    }

    .hoture-section-rail::before{
      content:"";
      position:absolute;
      top:22px;
      bottom:22px;
      left:50%;
      width:1px;
      transform:translateX(-50%);
      background:linear-gradient(180deg, transparent, rgba(200,176,255,.20), transparent);
      pointer-events:none;
    }

    .hoture-section-rail a{
      position:relative !important;
      width:28px !important;
      height:36px !important;
      display:grid !important;
      place-items:center !important;
      border:0 !important;
      border-radius:0 !important;
      background:transparent !important;
      box-shadow:none !important;
      color:rgba(246,241,234,.36) !important;
      transform:none !important;
      pointer-events:auto !important;
    }

    .hoture-section-rail a::after{
      content:"";
      width:2px;
      height:17px;
      display:block;
      background:rgba(246,241,234,.24);
      transform:scaleY(.74);
      transform-origin:center;
      transition:
        height .35s var(--ease),
        transform .35s var(--ease),
        background .28s ease,
        box-shadow .28s ease;
    }

    .hoture-section-rail a:hover::after,
    .hoture-section-rail a.active::after{
      height:34px;
      transform:scaleY(1);
      background:rgba(200,176,255,.96);
      box-shadow:0 0 18px rgba(200,176,255,.60);
    }

    .hoture-section-rail a span{
      position:absolute;
      right:34px;
      top:50%;
      transform:translateY(-50%);
      color:rgba(246,241,234,.34);
      font-size:9px;
      font-weight:900;
      letter-spacing:.08em;
      transition:color .28s ease, transform .28s var(--ease), opacity .28s ease;
      opacity:.48;
    }

    .hoture-section-rail a::before{
      content:attr(data-label);
      position:absolute;
      right:60px;
      top:50%;
      transform:translateY(-50%);
      color:rgba(246,241,234,.42);
      font-size:9px;
      font-weight:900;
      letter-spacing:.13em;
      text-transform:uppercase;
      white-space:nowrap;
      opacity:.44;
      text-shadow:0 0 18px rgba(0,0,0,.70);
      transition:opacity .28s ease, color .28s ease, transform .28s var(--ease);
      background:transparent !important;
      border:0 !important;
      padding:0 !important;
      pointer-events:none;
    }

    .hoture-section-rail a:hover span,
    .hoture-section-rail a.active span,
    .hoture-section-rail a:hover::before,
    .hoture-section-rail a.active::before{
      color:#fff !important;
      opacity:1 !important;
      transform:translateY(-50%) translateX(-4px);
    }

    .hoture-section-rail a:hover,
    .hoture-section-rail a.active{
      background:transparent !important;
      border-color:transparent !important;
      box-shadow:none !important;
      transform:none !important;
    }

    @media (max-width:1400px){
      .hoture-section-rail a::before{
        display:none !important;
      }
    }

    @media (max-width:1180px){
      .hoture-section-rail{
        display:none !important;
      }
    }

    /* WhatsApp mobile: icona centrata nel cerchio */
    @media (max-width:1180px){
      .header-socials{
        display:flex !important;
        align-items:center !important;
        justify-content:flex-start !important;
      }

      .header-socials a{
        display:none !important;
      }

      .header-socials a[aria-label="WhatsApp"]{
        display:flex !important;
        align-items:center !important;
        justify-content:center !important;
        width:42px !important;
        height:42px !important;
        min-width:42px !important;
        min-height:42px !important;
        padding:0 !important;
        margin:0 !important;
        line-height:1 !important;
        border:1px solid rgba(255,255,255,.13) !important;
        border-radius:999px !important;
        background:rgba(255,255,255,.035) !important;
        color:#fff !important;
        font-size:0 !important;
        position:relative !important;
        overflow:hidden !important;
      }

      .header-socials a[aria-label="WhatsApp"]::before{
        content:"" !important;
        position:absolute !important;
        left:50% !important;
        top:50% !important;
        width:19px !important;
        height:19px !important;
        display:block !important;
        background:#fff !important;
        transform:translate(-50%, -50%) !important;
        margin:0 !important;
        -webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 32'%3E%3Cpath d='M16.04 3C9.02 3 3.33 8.68 3.33 15.68c0 2.23.58 4.4 1.69 6.32L3 29l7.18-1.88a12.67 12.67 0 0 0 5.86 1.49h.01c7.01 0 12.71-5.68 12.71-12.69C28.76 8.69 23.06 3 16.04 3Zm0 23.46h-.01c-1.86 0-3.68-.5-5.27-1.45l-.38-.23-4.26 1.12 1.14-4.14-.25-.42a10.5 10.5 0 0 1-1.6-5.66c0-5.83 4.77-10.57 10.64-10.57 2.84 0 5.51 1.1 7.52 3.1a10.48 10.48 0 0 1 3.12 7.48c0 5.83-4.77 10.57-10.65 10.57Zm5.83-7.91c-.32-.16-1.88-.93-2.17-1.03-.29-.11-.5-.16-.71.16-.21.32-.82 1.03-1 1.24-.18.21-.37.24-.69.08-.32-.16-1.35-.5-2.57-1.58-.95-.85-1.59-1.9-1.78-2.22-.18-.32-.02-.49.14-.65.14-.14.32-.37.48-.55.16-.18.21-.32.32-.53.11-.21.05-.4-.03-.55-.08-.16-.71-1.7-.97-2.33-.26-.61-.52-.53-.71-.54l-.6-.01c-.21 0-.55.08-.84.4-.29.32-1.1 1.08-1.1 2.63s1.13 3.05 1.29 3.26c.16.21 2.23 3.4 5.4 4.77.75.32 1.34.51 1.8.66.76.24 1.45.21 1.99.13.61-.09 1.88-.77 2.14-1.51.26-.74.26-1.37.18-1.51-.08-.13-.29-.21-.61-.37Z'/%3E%3C/svg%3E") !important;
        mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 32'%3E%3Cpath d='M16.04 3C9.02 3 3.33 8.68 3.33 15.68c0 2.23.58 4.4 1.69 6.32L3 29l7.18-1.88a12.67 12.67 0 0 0 5.86 1.49h.01c7.01 0 12.71-5.68 12.71-12.69C28.76 8.69 23.06 3 16.04 3Zm0 23.46h-.01c-1.86 0-3.68-.5-5.27-1.45l-.38-.23-4.26 1.12 1.14-4.14-.25-.42a10.5 10.5 0 0 1-1.6-5.66c0-5.83 4.77-10.57 10.64-10.57 2.84 0 5.51 1.1 7.52 3.1a10.48 10.48 0 0 1 3.12 7.48c0 5.83-4.77 10.57-10.65 10.57Zm5.83-7.91c-.32-.16-1.88-.93-2.17-1.03-.29-.11-.5-.16-.71.16-.21.32-.82 1.03-1 1.24-.18.21-.37.24-.69.08-.32-.16-1.35-.5-2.57-1.58-.95-.85-1.59-1.9-1.78-2.22-.18-.32-.02-.49.14-.65.14-.14.32-.37.48-.55.16-.18.21-.32.32-.53.11-.21.05-.4-.03-.55-.08-.16-.71-1.7-.97-2.33-.26-.61-.52-.53-.71-.54l-.6-.01c-.21 0-.55.08-.84.4-.29.32-1.1 1.08-1.1 2.63s1.13 3.05 1.29 3.26c.16.21 2.23 3.4 5.4 4.77.75.32 1.34.51 1.8.66.76.24 1.45.21 1.99.13.61-.09 1.88-.77 2.14-1.51.26-.74.26-1.37.18-1.51-.08-.13-.29-.21-.61-.37Z'/%3E%3C/svg%3E") !important;
        -webkit-mask-size:contain !important;
        mask-size:contain !important;
        -webkit-mask-repeat:no-repeat !important;
        mask-repeat:no-repeat !important;
        -webkit-mask-position:center !important;
        mask-position:center !important;
      }
    }

    @media (max-width:640px){
      .header-socials a[aria-label="WhatsApp"]{
        width:40px !important;
        height:40px !important;
        min-width:40px !important;
        min-height:40px !important;
      }

      .header-socials a[aria-label="WhatsApp"]::before{
        width:18px !important;
        height:18px !important;
      }
    }

/*
      V56 — rifinitura finale:
      1. Taglio ghigliottina senza gradient brutto.
      2. Scroll più veloce e fluido.
      3. Rail laterale leggibile, senza testi sovrapposti.
      4. WhatsApp mobile centrato.
    */

    /* Taglio pulito, niente gradient bianco/viola/brutto tra intro e sito */
    .v52-cut{
      background:#050307 !important;
      box-shadow:0 0 80px rgba(143,99,255,.18) inset !important;
    }

    body.v52-ready .v52-cut,
    body.v52-ready .v52-intro,
    body.v52-ready .v52-preloader{
      display:none !important;
      visibility:hidden !important;
      opacity:0 !important;
      pointer-events:none !important;
    }

    /*
      Elimino il flash di background tra intro e sito:
      niente animazione di reveal su app/header, appena ready si vede il sito.
    */
    .site-header,
    .app{
      animation:none !important;
    }

    body.v52-ready .site-header,
    body.v52-ready .app{
      opacity:1 !important;
      visibility:visible !important;
      pointer-events:auto !important;
      transition:opacity .24s ease !important;
    }

    body:not(.v52-ready) .site-header,
    body:not(.v52-ready) .app{
      opacity:0 !important;
      visibility:hidden !important;
      pointer-events:none !important;
    }

    /* App più scura, senza macchia gradient eccessiva dopo l'intro */
    body.v52-ready .app{
      background:
        radial-gradient(circle at 84% -8%, rgba(143,99,255,.10), transparent 30%),
        radial-gradient(circle at 8% 26%, rgba(200,176,255,.035), transparent 24%),
        linear-gradient(180deg,#050307 0%,#09050d 54%,#050307 100%) !important;
    }

    /* RAIL LATERALE — layout vero a colonne: label | numero | linea */
    .hoture-section-rail{
      position:fixed !important;
      right:24px !important;
      top:50% !important;
      transform:translateY(-50%) !important;
      z-index:820 !important;
      width:188px !important;
      display:grid !important;
      gap:7px !important;
      padding:16px 0 !important;
      border:0 !important;
      background:transparent !important;
      backdrop-filter:none !important;
      opacity:0 !important;
      visibility:hidden !important;
      pointer-events:none !important;
      transition:opacity .35s ease, visibility .35s ease !important;
    }

    body.v52-ready .hoture-section-rail{
      opacity:1 !important;
      visibility:visible !important;
      pointer-events:auto !important;
    }

    .hoture-section-rail::before{
      content:"";
      position:absolute;
      top:14px;
      bottom:14px;
      right:12px;
      width:1px;
      background:linear-gradient(180deg, transparent, rgba(200,176,255,.18), transparent);
      pointer-events:none;
    }

    .hoture-section-rail a{
      position:relative !important;
      width:100% !important;
      height:35px !important;
      display:grid !important;
      grid-template-columns:minmax(0, 1fr) 24px 24px !important;
      align-items:center !important;
      column-gap:8px !important;
      padding:0 !important;
      border:0 !important;
      border-radius:0 !important;
      background:transparent !important;
      box-shadow:none !important;
      transform:none !important;
      color:rgba(246,241,234,.38) !important;
      pointer-events:auto !important;
    }

    .hoture-section-rail a::before{
      content:attr(data-label) !important;
      position:static !important;
      display:block !important;
      transform:none !important;
      text-align:right !important;
      white-space:nowrap !important;
      overflow:hidden !important;
      text-overflow:ellipsis !important;
      color:rgba(246,241,234,.34) !important;
      font-size:10px !important;
      font-weight:900 !important;
      letter-spacing:.14em !important;
      text-transform:uppercase !important;
      opacity:.55 !important;
      background:transparent !important;
      border:0 !important;
      padding:0 !important;
      text-shadow:0 0 18px rgba(0,0,0,.75);
      transition:opacity .25s ease, color .25s ease, transform .25s var(--ease);
      grid-column:1 !important;
      pointer-events:none !important;
    }

    .hoture-section-rail a span{
      position:static !important;
      display:block !important;
      transform:none !important;
      grid-column:2 !important;
      text-align:center !important;
      color:rgba(246,241,234,.32) !important;
      font-size:9px !important;
      font-weight:900 !important;
      letter-spacing:.04em !important;
      opacity:.55 !important;
      transition:opacity .25s ease, color .25s ease;
    }

    .hoture-section-rail a::after{
      content:"" !important;
      grid-column:3 !important;
      justify-self:center !important;
      width:2px !important;
      height:18px !important;
      display:block !important;
      background:rgba(246,241,234,.28) !important;
      transform:scaleY(.75) !important;
      transform-origin:center !important;
      transition:
        height .28s var(--ease),
        transform .28s var(--ease),
        background .24s ease,
        box-shadow .24s ease;
    }

    .hoture-section-rail a.active::before,
    .hoture-section-rail a:hover::before{
      color:#fff !important;
      opacity:1 !important;
      transform:translateX(-4px) !important;
    }

    .hoture-section-rail a.active span,
    .hoture-section-rail a:hover span{
      color:#fff !important;
      opacity:1 !important;
    }

    .hoture-section-rail a.active::after,
    .hoture-section-rail a:hover::after{
      height:34px !important;
      transform:scaleY(1) !important;
      background:rgba(200,176,255,.98) !important;
      box-shadow:0 0 18px rgba(200,176,255,.70) !important;
    }

    .hoture-section-rail a:hover,
    .hoture-section-rail a.active{
      background:transparent !important;
      border-color:transparent !important;
      box-shadow:none !important;
      transform:none !important;
    }

    @media (max-width:1450px){
      .hoture-section-rail{
        width:128px !important;
      }

      .hoture-section-rail a{
        grid-template-columns:minmax(0, 1fr) 22px 22px !important;
      }

      .hoture-section-rail a::before{
        font-size:8px !important;
        letter-spacing:.11em !important;
      }
    }

    @media (max-width:1180px){
      .hoture-section-rail{
        display:none !important;
      }
    }

    /* WhatsApp mobile perfettamente centrato */
    @media (max-width:1180px){
      .header-socials{
        display:flex !important;
        align-items:center !important;
        justify-content:flex-start !important;
      }

      .header-socials a{
        display:none !important;
      }

      .header-socials a[aria-label="WhatsApp"]{
        display:flex !important;
        align-items:center !important;
        justify-content:center !important;
        width:42px !important;
        height:42px !important;
        min-width:42px !important;
        min-height:42px !important;
        padding:0 !important;
        margin:0 !important;
        line-height:1 !important;
        border:1px solid rgba(255,255,255,.13) !important;
        border-radius:999px !important;
        background:rgba(255,255,255,.035) !important;
        font-size:0 !important;
        position:relative !important;
        overflow:hidden !important;
      }

      .header-socials a[aria-label="WhatsApp"]::before{
        content:"" !important;
        position:absolute !important;
        left:50% !important;
        top:50% !important;
        width:19px !important;
        height:19px !important;
        display:block !important;
        background:#fff !important;
        transform:translate(-50%, -50%) !important;
        margin:0 !important;
        -webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 32'%3E%3Cpath d='M16.04 3C9.02 3 3.33 8.68 3.33 15.68c0 2.23.58 4.4 1.69 6.32L3 29l7.18-1.88a12.67 12.67 0 0 0 5.86 1.49h.01c7.01 0 12.71-5.68 12.71-12.69C28.76 8.69 23.06 3 16.04 3Zm0 23.46h-.01c-1.86 0-3.68-.5-5.27-1.45l-.38-.23-4.26 1.12 1.14-4.14-.25-.42a10.5 10.5 0 0 1-1.6-5.66c0-5.83 4.77-10.57 10.64-10.57 2.84 0 5.51 1.1 7.52 3.1a10.48 10.48 0 0 1 3.12 7.48c0 5.83-4.77 10.57-10.65 10.57Zm5.83-7.91c-.32-.16-1.88-.93-2.17-1.03-.29-.11-.5-.16-.71.16-.21.32-.82 1.03-1 1.24-.18.21-.37.24-.69.08-.32-.16-1.35-.5-2.57-1.58-.95-.85-1.59-1.9-1.78-2.22-.18-.32-.02-.49.14-.65.14-.14.32-.37.48-.55.16-.18.21-.32.32-.53.11-.21.05-.4-.03-.55-.08-.16-.71-1.7-.97-2.33-.26-.61-.52-.53-.71-.54l-.6-.01c-.21 0-.55.08-.84.4-.29.32-1.1 1.08-1.1 2.63s1.13 3.05 1.29 3.26c.16.21 2.23 3.4 5.4 4.77.75.32 1.34.51 1.8.66.76.24 1.45.21 1.99.13.61-.09 1.88-.77 2.14-1.51.26-.74.26-1.37.18-1.51-.08-.13-.29-.21-.61-.37Z'/%3E%3C/svg%3E") !important;
        mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 32'%3E%3Cpath d='M16.04 3C9.02 3 3.33 8.68 3.33 15.68c0 2.23.58 4.4 1.69 6.32L3 29l7.18-1.88a12.67 12.67 0 0 0 5.86 1.49h.01c7.01 0 12.71-5.68 12.71-12.69C28.76 8.69 23.06 3 16.04 3Zm0 23.46h-.01c-1.86 0-3.68-.5-5.27-1.45l-.38-.23-4.26 1.12 1.14-4.14-.25-.42a10.5 10.5 0 0 1-1.6-5.66c0-5.83 4.77-10.57 10.64-10.57 2.84 0 5.51 1.1 7.52 3.1a10.48 10.48 0 0 1 3.12 7.48c0 5.83-4.77 10.57-10.65 10.57Zm5.83-7.91c-.32-.16-1.88-.93-2.17-1.03-.29-.11-.5-.16-.71.16-.21.32-.82 1.03-1 1.24-.18.21-.37.24-.69.08-.32-.16-1.35-.5-2.57-1.58-.95-.85-1.59-1.9-1.78-2.22-.18-.32-.02-.49.14-.65.14-.14.32-.37.48-.55.16-.18.21-.32.32-.53.11-.21.05-.4-.03-.55-.08-.16-.71-1.7-.97-2.33-.26-.61-.52-.53-.71-.54l-.6-.01c-.21 0-.55.08-.84.4-.29.32-1.1 1.08-1.1 2.63s1.13 3.05 1.29 3.26c.16.21 2.23 3.4 5.4 4.77.75.32 1.34.51 1.8.66.76.24 1.45.21 1.99.13.61-.09 1.88-.77 2.14-1.51.26-.74.26-1.37.18-1.51-.08-.13-.29-.21-.61-.37Z'/%3E%3C/svg%3E") !important;
        -webkit-mask-size:contain !important;
        mask-size:contain !important;
        -webkit-mask-repeat:no-repeat !important;
        mask-repeat:no-repeat !important;
        -webkit-mask-position:center !important;
        mask-position:center !important;
      }
    }

/*
      V57:
      Scroll un punto meno veloce rispetto alla V56.
      Mantiene nav laterale, intro, ghigliottina e fix WhatsApp invariati.
    */

/*
      V58 — Cross-browser stabilization:
      - niente wheel hijacking
      - scroll nativo browser
      - root scroll pulito
      - CTA/widget Analisi struttura resta aperto al click
      - nuovo preloader tipografico HO/SPITALITY + TURE/ARCHITEC/STRUCT
    */

    html{
      overflow-x:hidden !important;
      overflow-y:auto !important;
      height:auto !important;
      min-height:100% !important;
      scroll-behavior:smooth !important;
      overscroll-behavior-y:auto !important;
    }

    body{
      overflow-x:hidden !important;
      overflow-y:auto !important;
      height:auto !important;
      min-height:100% !important;
      position:static !important;
      touch-action:auto !important;
      overscroll-behavior-y:auto !important;
      -webkit-overflow-scrolling:touch !important;
    }

    body.v52-ready,
    body.v52-ready.no-scroll{
      overflow-y:auto !important;
      overflow-x:hidden !important;
      height:auto !important;
      min-height:100% !important;
      position:static !important;
      touch-action:auto !important;
    }

    body.v52-ready .app,
    body.v52-ready #site,
    body.v52-ready main.site{
      overflow:visible !important;
      height:auto !important;
      min-height:100vh !important;
      max-height:none !important;
      pointer-events:auto !important;
      touch-action:auto !important;
      scroll-snap-type:none !important;
      will-change:auto !important;
    }

    body.v52-ready main.site > section,
    body.v52-ready main.site > footer{
      scroll-snap-align:none !important;
      scroll-snap-stop:normal !important;
    }

    /*
      Disattivo qualsiasi transizione/transform sul contenitore principale:
      Chrome e Safari soffrono molto quando lo scroll viene combinato con transform su parent grandi.
    */
    body.v52-ready .app,
    body.v52-ready main.site,
    body.v52-ready .hero,
    body.v52-ready .hero-copy,
    body.v52-ready .case-view{
      transform:none !important;
    }

    /* Preloader nuovo */
    .v58-preloader{
      background:
        radial-gradient(circle at 50% 42%, rgba(143,99,255,.16), transparent 36%),
        #000 !important;
      overflow:hidden !important;
      animation:v52PreloaderOut .62s ease 2.65s forwards !important;
    }

    .v58-preloader::before{
      content:"";
      position:absolute;
      inset:0;
      opacity:.16;
      background:
        linear-gradient(90deg, rgba(255,255,255,.055) 1px, transparent 1px),
        linear-gradient(180deg, rgba(255,255,255,.038) 1px, transparent 1px);
      background-size:22vw 22vh;
      -webkit-mask-image:radial-gradient(circle at center, black, transparent 72%);
      mask-image:radial-gradient(circle at center, black, transparent 72%);
      pointer-events:none;
    }

    .v58-preloader-inner{
      position:relative;
      z-index:2;
      width:min(980px, calc(100vw - 40px));
      min-height:72vh;
      display:grid;
      grid-template-rows:auto 1fr auto;
      align-items:center;
      justify-items:center;
      gap:28px;
    }

    .v58-preloader-logo{
      width:64px !important;
      height:auto !important;
      opacity:0;
      transform:translateY(10px) scale(.92);
      filter:drop-shadow(0 24px 70px rgba(143,99,255,.28));
      animation:v58LogoIn .72s cubic-bezier(.19,1,.22,1) .08s forwards !important;
    }

    @keyframes v58LogoIn{
      to{
        opacity:1;
        transform:translateY(0) scale(1);
      }
    }

    .v58-wordmark{
      width:100%;
      display:grid;
      gap:clamp(12px, 2.2vw, 26px);
      text-transform:uppercase;
      font-weight:900;
      letter-spacing:.025em;
      line-height:.86;
    }

    .v58-line{
      display:flex;
      align-items:baseline;
      justify-content:center;
      gap:clamp(10px, 1.8vw, 22px);
      overflow:hidden;
    }

    .v58-line-bottom{
      align-items:flex-start;
    }

    .v58-solid{
      color:#fff;
      font-size:clamp(54px, 9vw, 142px);
      opacity:0;
      transform:translateY(100%);
      animation:v58SolidIn .58s cubic-bezier(.19,1,.22,1) .55s forwards;
      text-shadow:0 24px 80px rgba(143,99,255,.18);
    }

    .v58-line-bottom > .v58-solid{
      animation-delay:1.18s;
    }

    @keyframes v58SolidIn{
      to{
        opacity:1;
        transform:translateY(0);
      }
    }

    .v58-outline{
      color:transparent;
      -webkit-text-stroke:1.4px rgba(255,255,255,.72);
      text-stroke:1.4px rgba(255,255,255,.72);
      font-size:clamp(42px, 6.4vw, 106px);
      opacity:0;
      position:relative;
      white-space:nowrap;
      max-width:0;
      overflow:hidden;
      filter:drop-shadow(0 20px 70px rgba(143,99,255,.18));
    }

    .v58-type-hospitality{
      animation:v58TypeHospitality .82s steps(9, end) .92s forwards;
    }

    .v58-stack{
      display:grid;
      gap:8px;
      align-items:start;
      justify-items:start;
      padding-top:.08em;
    }

    .v58-type-architecture{
      animation:v58TypeArchitecture .72s steps(11, end) 1.42s forwards;
    }

    .v58-type-structure{
      animation:v58TypeStructure .62s steps(9, end) 1.78s forwards;
    }

    .v58-solid-inline{
      color:#fff;
      -webkit-text-stroke:0;
      text-stroke:0;
    }

    @keyframes v58TypeHospitality{
      0%{opacity:1; max-width:0}
      100%{opacity:1; max-width:9ch}
    }

    @keyframes v58TypeArchitecture{
      0%{opacity:1; max-width:0}
      100%{opacity:1; max-width:11ch}
    }

    @keyframes v58TypeStructure{
      0%{opacity:1; max-width:0}
      100%{opacity:1; max-width:9ch}
    }

    .v58-loader-caption{
      color:rgba(246,241,234,.48);
      font-size:10px;
      font-weight:900;
      letter-spacing:.18em;
      text-transform:uppercase;
      opacity:0;
      transform:translateY(8px);
      animation:v58CaptionIn .45s ease 2.05s forwards;
    }

    @keyframes v58CaptionIn{
      to{
        opacity:1;
        transform:translateY(0);
      }
    }

    /* Evita flash/gradient brutto tra intro e sito */
    .v52-cut{
      background:#050307 !important;
      box-shadow:0 0 80px rgba(143,99,255,.16) inset !important;
    }

    body.v52-ready .app{
      background:
        radial-gradient(circle at 84% -8%, rgba(143,99,255,.08), transparent 30%),
        radial-gradient(circle at 8% 26%, rgba(200,176,255,.025), transparent 24%),
        linear-gradient(180deg,#050307 0%,#09050d 54%,#050307 100%) !important;
    }

    /*
      Widget Analisi struttura:
      il pulsante rimane fisso, il pannello resta aperto con classe .is-open.
    */
    .hoture-call-widget{
      z-index:2147481200 !important;
    }

    .hoture-call-widget .hoture-call-toggle{
      pointer-events:auto !important;
    }

    .hoture-call-widget.is-open .hoture-call-panel{
      opacity:1 !important;
      transform:translateY(0) scale(1) !important;
      pointer-events:auto !important;
      visibility:visible !important;
    }

    .hoture-call-widget.is-open .hoture-call-toggle{
      opacity:1 !important;
      pointer-events:auto !important;
      visibility:visible !important;
    }

    @media (hover:hover){
      .hoture-call-widget:hover .hoture-call-panel{
        opacity:1;
        transform:translateY(0) scale(1);
        pointer-events:auto;
      }
    }

    @media (hover:none){
      .hoture-call-widget:hover .hoture-call-panel{
        opacity:0;
        transform:translateY(12px) scale(.98);
        pointer-events:none;
      }

      .hoture-call-widget.is-open .hoture-call-panel{
        opacity:1 !important;
        transform:translateY(0) scale(1) !important;
        pointer-events:auto !important;
      }
    }

    /* Rail laterale sistemata e più leggera */
    .hoture-section-rail{
      right:22px !important;
      width:178px !important;
      background:transparent !important;
      border:0 !important;
      backdrop-filter:none !important;
      pointer-events:auto !important;
    }

    .hoture-section-rail a{
      grid-template-columns:minmax(0,1fr) 24px 20px !important;
    }

    .hoture-section-rail a::before{
      font-size:9px !important;
      letter-spacing:.13em !important;
    }

    .hoture-section-rail::before{
      right:10px !important;
    }

    @media (max-width:1450px){
      .hoture-section-rail{
        width:116px !important;
        right:16px !important;
      }

      .hoture-section-rail a::before{
        display:none !important;
      }

      .hoture-section-rail a{
        grid-template-columns:1fr 20px 20px !important;
      }
    }

    @media (max-width:1180px){
      .hoture-section-rail{
        display:none !important;
      }

      .v58-preloader-inner{
        min-height:68vh;
      }

      .v58-wordmark{
        gap:16px;
      }

      .v58-line{
        justify-content:flex-start;
      }

      .v58-solid{
        font-size:clamp(42px, 14vw, 78px);
      }

      .v58-outline{
        font-size:clamp(28px, 8.6vw, 52px);
        -webkit-text-stroke:1px rgba(255,255,255,.72);
        text-stroke:1px rgba(255,255,255,.72);
      }

      .v58-line-bottom{
        flex-direction:column;
        gap:6px;
      }

      .v58-stack{
        padding-left:0;
      }
    }

/*
      V60 — rifatto da zero, robusto:
      - preloader leggibile e più lento
      - sequenza HO/SPITALITY -> HOTURE -> ARCHITECTURE -> STRUCTURE
      - poi seconda fase DIGITAL / WEB AGENCY / X HOSPITALITY
      - niente scroll hijacking
      - scroll nativo cross-browser
    */

    html,
    body{
      overflow-x:hidden !important;
      overflow-y:auto !important;
      height:auto !important;
      min-height:100% !important;
      position:static !important;
      touch-action:auto !important;
      scroll-behavior:smooth;
      background:#050307;
    }

    body.no-scroll,
    body.is-loading,
    body.intro-active,
    body.intro-consumed,
    body.v52-intro-running,
    body.v52-loading,
    body.v51-loading,
    body.v59-loading{
      overflow-y:auto !important;
      height:auto !important;
      min-height:100% !important;
      position:static !important;
      touch-action:auto !important;
    }

    .app,
    #site,
    main.site{
      overflow:visible !important;
      height:auto !important;
      max-height:none !important;
      min-height:100vh !important;
      pointer-events:auto !important;
      touch-action:auto !important;
      scroll-snap-type:none !important;
    }

    main.site > section,
    main.site > footer{
      scroll-snap-align:none !important;
    }

    /*
      Nascondo sito e header finché la sequenza non è conclusa.
      Il reveal avviene a fine intro, non durante il preloader.
    */
    .site-header,
    .app{
      opacity:0;
      visibility:hidden;
      pointer-events:none;
      animation:v60SiteReveal .65s ease 14.15s forwards !important;
    }

    body.v60-ready .site-header,
    body.v60-ready .app{
      opacity:1 !important;
      visibility:visible !important;
      pointer-events:auto !important;
      animation:none !important;
    }

    @keyframes v60SiteReveal{
      to{
        opacity:1;
        visibility:visible;
        pointer-events:auto;
      }
    }

    /*
      Spegne qualunque preloader vecchio eventualmente rimasto.
    */
    .v52-preloader,
    .v58-preloader,
    .v59-preloader,
    #v52Preloader,
    #v58Preloader,
    #v59Preloader{
      display:none !important;
      opacity:0 !important;
      visibility:hidden !important;
      pointer-events:none !important;
    }

    /* PRELOADER V60 */
    .v60-preloader{
      position:fixed;
      inset:0;
      z-index:2147483647;
      width:100vw;
      height:100dvh;
      display:grid;
      place-items:center;
      overflow:hidden;
      background:#000;
      pointer-events:none;
      opacity:1;
      visibility:visible;
      animation:v60PreloaderOut .75s ease 8.35s forwards;
    }

    @keyframes v60PreloaderOut{
      to{
        opacity:0;
        visibility:hidden;
      }
    }

    .v60-bg{
      position:absolute;
      inset:0;
      background:
        radial-gradient(circle at 50% 45%, rgba(143,99,255,.20), transparent 34%),
        radial-gradient(circle at 12% 74%, rgba(200,176,255,.06), transparent 24%),
        #000;
    }

    .v60-bg::after{
      content:"";
      position:absolute;
      inset:0;
      opacity:.15;
      background:
        linear-gradient(90deg, rgba(255,255,255,.055) 1px, transparent 1px),
        linear-gradient(180deg, rgba(255,255,255,.04) 1px, transparent 1px);
      background-size:22vw 22vh;
      -webkit-mask-image:radial-gradient(circle at center, black, transparent 72%);
      mask-image:radial-gradient(circle at center, black, transparent 72%);
    }

    .v60-inner{
      position:relative;
      z-index:2;
      width:min(1120px, calc(100vw - 42px));
      min-height:76vh;
      display:grid;
      grid-template-rows:auto 1fr auto;
      align-items:center;
      justify-items:center;
      gap:28px;
    }

    .v60-logo{
      width:66px;
      height:auto;
      opacity:0;
      transform:translateY(10px) scale(.92);
      filter:drop-shadow(0 24px 70px rgba(143,99,255,.30));
      animation:v60LogoIn .75s cubic-bezier(.19,1,.22,1) .12s forwards;
    }

    @keyframes v60LogoIn{
      to{
        opacity:1;
        transform:translateY(0) scale(1);
      }
    }

    .v60-sequence{
      width:100%;
      display:grid;
      gap:clamp(24px, 3vw, 46px);
      text-transform:uppercase;
      font-weight:900;
      line-height:.86;
      letter-spacing:.025em;
    }

    .v60-row{
      min-height:clamp(78px, 11vw, 152px);
      display:flex;
      align-items:baseline;
      justify-content:center;
      gap:clamp(10px, 1.5vw, 22px);
      width:100%;
      overflow:hidden;
    }

    .v60-filled{
      color:#fff;
      text-shadow:0 24px 80px rgba(143,99,255,.20);
    }

    .v60-outline{
      color:transparent;
      -webkit-text-stroke:1.4px rgba(255,255,255,.76);
      text-stroke:1.4px rgba(255,255,255,.76);
      filter:drop-shadow(0 20px 70px rgba(143,99,255,.18));
    }

    .v60-ho{
      font-size:clamp(58px, 9vw, 146px);
      opacity:0;
      transform:translateY(100%);
      animation:v60Rise .56s cubic-bezier(.19,1,.22,1) .72s forwards;
    }

    .v60-spitality{
      font-size:clamp(42px, 6.5vw, 110px);
      white-space:nowrap;
      overflow:hidden;
      max-width:0;
      opacity:0;
      animation:
        v60TypeSpitality 1.35s steps(9, end) 1.18s forwards,
        v60WordOut .58s cubic-bezier(.77,0,.175,1) 3.20s forwards;
    }

    .v60-ture-brand{
      font-size:clamp(58px, 9vw, 146px);
      opacity:0;
      transform:translateY(100%);
      animation:v60Rise .56s cubic-bezier(.19,1,.22,1) 3.62s forwards;
    }

    @keyframes v60Rise{
      to{
        opacity:1;
        transform:translateY(0);
      }
    }

    @keyframes v60TypeSpitality{
      0%{
        opacity:1;
        max-width:0;
      }
      100%{
        opacity:1;
        max-width:9ch;
      }
    }

    @keyframes v60WordOut{
      to{
        opacity:0;
        max-width:0;
        transform:translateY(-24px);
        filter:blur(8px);
      }
    }

    .v60-row-concepts{
      position:relative;
      min-height:clamp(86px, 8vw, 128px);
      align-items:center;
    }

    .v60-concept{
      position:absolute;
      inset:0;
      display:flex;
      align-items:center;
      justify-content:center;
      gap:clamp(10px, 1.2vw, 18px);
      opacity:0;
      transform:translateY(18px);
      pointer-events:none;
    }

    .v60-concept .v60-outline{
      font-size:clamp(34px, 5.6vw, 92px);
      white-space:nowrap;
      overflow:hidden;
      max-width:0;
    }

    .v60-concept .v60-filled{
      font-size:clamp(38px, 6vw, 98px);
      opacity:0;
      transform:translateY(28px);
    }

    .v60-arch{
      animation:
        v60ConceptIn .32s ease 4.42s forwards,
        v60ConceptOut .52s cubic-bezier(.77,0,.175,1) 6.12s forwards;
    }

    .v60-arch-word{
      animation:v60TypeArch .88s steps(8, end) 4.58s forwards;
    }

    .v60-ture-one{
      animation:v60SuffixIn .44s cubic-bezier(.19,1,.22,1) 4.72s forwards;
    }

    .v60-struct{
      animation:v60ConceptIn .32s ease 6.48s forwards;
    }

    .v60-struct-word{
      animation:v60TypeStruct .74s steps(6, end) 6.62s forwards;
    }

    .v60-ture-two{
      animation:v60SuffixIn .44s cubic-bezier(.19,1,.22,1) 6.76s forwards;
    }

    @keyframes v60ConceptIn{
      to{
        opacity:1;
        transform:translateY(0);
      }
    }

    @keyframes v60ConceptOut{
      to{
        opacity:0;
        transform:translateY(-24px);
        filter:blur(8px);
      }
    }

    @keyframes v60TypeArch{
      0%{
        opacity:1;
        max-width:0;
      }
      100%{
        opacity:1;
        max-width:8ch;
      }
    }

    @keyframes v60TypeStruct{
      0%{
        opacity:1;
        max-width:0;
      }
      100%{
        opacity:1;
        max-width:6ch;
      }
    }

    @keyframes v60SuffixIn{
      to{
        opacity:1;
        transform:translateY(0);
      }
    }

    .v60-caption{
      color:rgba(246,241,234,.48);
      font-size:10px;
      font-weight:900;
      letter-spacing:.18em;
      text-transform:uppercase;
      opacity:0;
      transform:translateY(8px);
      animation:v60CaptionIn .45s ease 4.12s forwards;
    }

    @keyframes v60CaptionIn{
      to{
        opacity:1;
        transform:translateY(0);
      }
    }

    /*
      Seconda fase DIGITAL post-preloader, ritardata e ripulita.
    */
    .v52-intro{
      animation:v52IntroLife 5.75s linear 8.22s forwards !important;
    }

    .v52-inner{
      animation:v52InnerOut .5s ease 12.64s forwards !important;
    }

    .v52-kicker{
      animation:v52SmallIn .42s ease 10.00s forwards !important;
    }

    .v52-title span:nth-child(1){
      animation:v52WordIn .48s cubic-bezier(.19,1,.22,1) 10.08s forwards !important;
    }

    .v52-title span:nth-child(2){
      animation:v52WordIn .48s cubic-bezier(.19,1,.22,1) 10.62s forwards !important;
    }

    .v52-title span:nth-child(3){
      animation:v52WordIn .48s cubic-bezier(.19,1,.22,1) 11.16s forwards !important;
    }

    .v52-footer{
      animation:v52SmallIn .42s ease 11.52s forwards !important;
    }

    .v52-cut{
      animation:v52Cut 1.05s cubic-bezier(.77,0,.175,1) 12.64s forwards !important;
      background:#050307 !important;
      box-shadow:0 0 80px rgba(143,99,255,.16) inset !important;
    }

    body.v60-ready .v60-preloader,
    body.v60-ready .v52-intro{
      display:none !important;
      visibility:hidden !important;
      opacity:0 !important;
      pointer-events:none !important;
    }

    /* Scroll e layer */
    .cursor,
    .grain,
    .hoture-scroll-progress{
      pointer-events:none !important;
    }

    body:not(.v60-ready) .hoture-section-rail,
    body:not(.v60-ready) .hoture-bottom-map{
      opacity:0 !important;
      visibility:hidden !important;
      pointer-events:none !important;
    }

    body.v60-ready .hoture-section-rail,
    body.v60-ready .hoture-bottom-map{
      visibility:visible !important;
      pointer-events:auto !important;
    }

    /* Widget Analisi struttura resta aperto */
    .hoture-call-widget{
      z-index:2147481200 !important;
    }

    .hoture-call-widget.is-open .hoture-call-panel{
      opacity:1 !important;
      transform:translateY(0) scale(1) !important;
      pointer-events:auto !important;
      visibility:visible !important;
    }

    .hoture-call-widget.is-open .hoture-call-toggle{
      opacity:1 !important;
      pointer-events:auto !important;
      visibility:visible !important;
    }

    @media (max-width:1180px){
      .v60-inner{
        min-height:72vh;
      }

      .v60-sequence{
        gap:24px;
      }

      .v60-row{
        justify-content:flex-start;
        min-height:92px;
      }

      .v60-ho,
      .v60-ture-brand{
        font-size:clamp(42px, 14vw, 78px);
      }

      .v60-spitality{
        font-size:clamp(28px, 8.6vw, 52px);
        -webkit-text-stroke:1px rgba(255,255,255,.76);
        text-stroke:1px rgba(255,255,255,.76);
      }

      .v60-row-concepts{
        justify-content:flex-start;
        min-height:124px;
      }

      .v60-concept{
        justify-content:flex-start;
      }

      .v60-concept .v60-outline{
        font-size:clamp(28px, 8.3vw, 52px);
        -webkit-text-stroke:1px rgba(255,255,255,.76);
        text-stroke:1px rgba(255,255,255,.76);
      }

      .v60-concept .v60-filled{
        font-size:clamp(30px, 9vw, 56px);
      }
    }

/*
      V61 — Preloader richiesto:
      1. Logo solo H
      2. HO bianco + HOSPITALITY outline
      3. HOSPITALITY scompare e diventa ARCHITEC + TURE bianco
      4. ARCHITEC scompare e resta solo HOTURE
      5. parte la seconda fase già presente: DIGITAL / WEB AGENCY / X HOSPITALITY
    */

    /* spengo la vecchia struttura V60 dentro il preloader */
    .v60-bg,
    .v60-inner,
    .v60-logo,
    .v60-sequence,
    .v60-row,
    .v60-caption{
      display:none !important;
    }

    .v61-preloader{
      position:fixed !important;
      inset:0 !important;
      z-index:2147483647 !important;
      width:100vw !important;
      height:100dvh !important;
      display:grid !important;
      place-items:center !important;
      overflow:hidden !important;
      background:#000 !important;
      pointer-events:none !important;
      opacity:1 !important;
      visibility:visible !important;
      animation:v61PreloaderOut .72s ease 8.35s forwards !important;
    }

    @keyframes v61PreloaderOut{
      to{
        opacity:0;
        visibility:hidden;
      }
    }

    .v61-bg{
      position:absolute;
      inset:0;
      background:
        radial-gradient(circle at 50% 44%, rgba(143,99,255,.18), transparent 35%),
        radial-gradient(circle at 12% 74%, rgba(200,176,255,.06), transparent 24%),
        #000;
    }

    .v61-bg::after{
      content:"";
      position:absolute;
      inset:0;
      opacity:.14;
      background:
        linear-gradient(90deg, rgba(255,255,255,.055) 1px, transparent 1px),
        linear-gradient(180deg, rgba(255,255,255,.038) 1px, transparent 1px);
      background-size:22vw 22vh;
      -webkit-mask-image:radial-gradient(circle at center, black, transparent 72%);
      mask-image:radial-gradient(circle at center, black, transparent 72%);
    }

    .v61-inner{
      position:relative;
      z-index:2;
      width:min(1160px, calc(100vw - 42px));
      min-height:74vh;
      display:grid !important;
      grid-template-rows:auto 1fr auto;
      align-items:center;
      justify-items:center;
      gap:28px;
    }

    .v61-logo{
      display:block !important;
      width:66px;
      height:auto;
      opacity:0;
      transform:translateY(10px) scale(.92);
      filter:drop-shadow(0 24px 70px rgba(143,99,255,.30));
      animation:v61LogoIn .75s cubic-bezier(.19,1,.22,1) .10s forwards;
    }

    @keyframes v61LogoIn{
      to{
        opacity:1;
        transform:translateY(0) scale(1);
      }
    }

    .v61-word-stage{
      width:100%;
      display:grid;
      place-items:center;
      text-transform:uppercase;
      font-weight:900;
      letter-spacing:.025em;
      line-height:.86;
    }

    .v61-main-word{
      position:relative;
      min-height:clamp(86px, 11vw, 160px);
      width:100%;
      display:flex;
      align-items:baseline;
      justify-content:center;
      gap:clamp(10px, 1.55vw, 22px);
      overflow:hidden;
    }

    .v61-ho,
    .v61-ture{
      color:#fff;
      font-size:clamp(58px, 9vw, 150px);
      text-shadow:0 24px 80px rgba(143,99,255,.20);
      white-space:nowrap;
    }

    .v61-ho{
      opacity:0;
      transform:translateY(100%);
      animation:v61Rise .58s cubic-bezier(.19,1,.22,1) .78s forwards;
    }

    .v61-ture{
      position:relative;
      opacity:0;
      transform:translateY(100%);
      animation:v61Rise .58s cubic-bezier(.19,1,.22,1) 4.10s forwards;
    }

    .v61-outline{
      color:transparent;
      -webkit-text-stroke:1.45px rgba(255,255,255,.78);
      text-stroke:1.45px rgba(255,255,255,.78);
      font-size:clamp(40px, 6.4vw, 110px);
      filter:drop-shadow(0 20px 70px rgba(143,99,255,.18));
      white-space:nowrap;
      overflow:hidden;
    }

    .v61-hospitality{
      opacity:0;
      max-width:0;
      animation:
        v61TypeHospitality 1.45s steps(11, end) 1.30s forwards,
        v61HospitalityOut .58s cubic-bezier(.77,0,.175,1) 3.55s forwards;
    }

    .v61-architec{
      position:relative;
      opacity:0;
      max-width:0;
      animation:
        v61TypeArchitec 1.00s steps(8, end) 4.15s forwards,
        v61ArchOut .62s cubic-bezier(.77,0,.175,1) 6.35s forwards;
    }

    @keyframes v61Rise{
      to{
        opacity:1;
        transform:translateY(0);
      }
    }

    @keyframes v61TypeHospitality{
      0%{
        opacity:1;
        max-width:0;
      }
      100%{
        opacity:1;
        max-width:11ch;
      }
    }

    @keyframes v61HospitalityOut{
      to{
        opacity:0;
        max-width:0;
        transform:translateY(-28px);
        filter:blur(9px);
      }
    }

    @keyframes v61TypeArchitec{
      0%{
        opacity:1;
        max-width:0;
      }
      100%{
        opacity:1;
        max-width:8ch;
      }
    }

    @keyframes v61ArchOut{
      to{
        opacity:0;
        max-width:0;
        transform:translateY(-28px);
        filter:blur(9px);
      }
    }

    .v61-caption{
      display:block !important;
      color:rgba(246,241,234,.48);
      font-size:10px;
      font-weight:900;
      letter-spacing:.18em;
      text-transform:uppercase;
      opacity:0;
      transform:translateY(8px);
      animation:
        v61CaptionIn .45s ease 1.24s forwards,
        v61CaptionSoft .45s ease 5.10s forwards;
    }

    @keyframes v61CaptionIn{
      to{
        opacity:1;
        transform:translateY(0);
      }
    }

    @keyframes v61CaptionSoft{
      to{
        color:rgba(246,241,234,.66);
      }
    }

    @media (max-width:1180px){
      .v61-inner{
        min-height:72vh;
        justify-items:start;
      }

      .v61-word-stage{
        place-items:start;
      }

      .v61-main-word{
        justify-content:flex-start;
        min-height:96px;
        gap:10px;
      }

      .v61-ho,
      .v61-ture{
        font-size:clamp(42px, 14vw, 80px);
      }

      .v61-outline{
        font-size:clamp(26px, 8vw, 52px);
        -webkit-text-stroke:1px rgba(255,255,255,.78);
        text-stroke:1px rgba(255,255,255,.78);
      }
    }

    @media (max-width:520px){
      .v61-main-word{
        gap:7px;
      }

      .v61-ho,
      .v61-ture{
        font-size:clamp(38px, 13vw, 62px);
      }

      .v61-outline{
        font-size:clamp(22px, 7.1vw, 38px);
      }
    }

/*
      V62:
      - niente testo tagliato
      - font size uniforme
      - logo H bianco
      - HOSPITALITY -> ARCHITEC + TURE -> STRUCT + TURE -> HOTURE
    */

    /* spengo visualmente il preloader V61 */
    .v61-preloader,
    .v61-bg,
    .v61-inner,
    .v61-logo,
    .v61-word-stage,
    .v61-main-word,
    .v61-caption{
      display:none !important;
    }

    .v62-preloader{
      position:fixed !important;
      inset:0 !important;
      z-index:2147483647 !important;
      width:100vw !important;
      height:100dvh !important;
      display:grid !important;
      place-items:center !important;
      overflow:hidden !important;
      background:#000 !important;
      pointer-events:none !important;
      opacity:1 !important;
      visibility:visible !important;
      animation:v62PreloaderOut .76s ease 10.10s forwards !important;
    }

    @keyframes v62PreloaderOut{
      to{
        opacity:0;
        visibility:hidden;
      }
    }

    .v62-bg{
      position:absolute;
      inset:0;
      background:
        radial-gradient(circle at 50% 44%, rgba(143,99,255,.18), transparent 35%),
        radial-gradient(circle at 12% 74%, rgba(200,176,255,.06), transparent 24%),
        #000;
    }

    .v62-bg::after{
      content:"";
      position:absolute;
      inset:0;
      opacity:.14;
      background:
        linear-gradient(90deg, rgba(255,255,255,.055) 1px, transparent 1px),
        linear-gradient(180deg, rgba(255,255,255,.038) 1px, transparent 1px);
      background-size:22vw 22vh;
      -webkit-mask-image:radial-gradient(circle at center, black, transparent 72%);
      mask-image:radial-gradient(circle at center, black, transparent 72%);
    }

    .v62-inner{
      position:relative;
      z-index:2;
      width:min(1500px, calc(100vw - 52px));
      min-height:74vh;
      display:grid !important;
      grid-template-rows:auto 1fr auto;
      align-items:center;
      justify-items:center;
      gap:30px;
    }

    .v62-logo{
      display:block !important;
      width:66px;
      height:auto;
      opacity:0;
      transform:translateY(10px) scale(.92);
      filter:brightness(10) grayscale(1) drop-shadow(0 24px 70px rgba(143,99,255,.30));
      animation:v62LogoIn .75s cubic-bezier(.19,1,.22,1) .10s forwards;
    }

    @keyframes v62LogoIn{
      to{
        opacity:1;
        transform:translateY(0) scale(1);
      }
    }

    .v62-stage{
      width:100%;
      display:grid;
      place-items:center;
      text-transform:uppercase;
      font-weight:900;
      line-height:.88;
      letter-spacing:.015em;
      overflow:visible !important;
    }

    .v62-lockup{
      position:relative;
      min-height:clamp(90px, 11vw, 168px);
      width:min(1380px, 96vw);
      display:flex;
      align-items:baseline;
      justify-content:center;
      gap:clamp(14px, 1.5vw, 24px);
      overflow:visible !important;
      white-space:nowrap;
    }

    /* STESSA SCALA per tutti */
    .v62-ho,
    .v62-word,
    .v62-ture{
      font-size:clamp(48px, 8vw, 118px) !important;
    }

    .v62-ho,
    .v62-ture{
      color:#fff;
      text-shadow:0 24px 80px rgba(143,99,255,.20);
      white-space:nowrap;
    }

    .v62-word{
      color:transparent;
      -webkit-text-stroke:1.45px rgba(255,255,255,.78);
      text-stroke:1.45px rgba(255,255,255,.78);
      filter:drop-shadow(0 20px 70px rgba(143,99,255,.18));
      white-space:nowrap;
    }

    .v62-ho{
      opacity:0;
      transform:translateY(100%);
      animation:v62Rise .58s cubic-bezier(.19,1,.22,1) .80s forwards;
    }

    .v62-hospitality,
    .v62-architec,
    .v62-struct{
      position:absolute;
      left:calc(50% + clamp(48px, 6vw, 94px));
      top:50%;
      transform:translateY(-50%);
      opacity:0;
      max-width:none !important;
      overflow:visible !important;
      white-space:nowrap !important;
    }

    /* TURE appare solo nelle fasi 2-3, poi scompare, poi arriva HOTURE */
    .v62-ture{
      opacity:0;
      transform:translateY(100%);
      animation:
        v62Rise .58s cubic-bezier(.19,1,.22,1) 4.10s forwards,
        v62StayVisible 0s linear 6.80s forwards,
        v62TureOut .52s cubic-bezier(.77,0,.175,1) 8.00s forwards;
    }

    @keyframes v62Rise{
      to{
        opacity:1;
        transform:translateY(0);
      }
    }

    @keyframes v62StayVisible{
      to{
        opacity:1;
        transform:translateY(0);
      }
    }

    @keyframes v62TureOut{
      to{
        opacity:0;
        transform:translateY(-24px);
        filter:blur(8px);
      }
    }

    /* FASE 1: HOSPITALITY */
    .v62-hospitality{
      animation:
        v62WordIn .28s ease 1.30s forwards,
        v62WordHold 0s linear 3.30s forwards,
        v62WordOut .58s cubic-bezier(.77,0,.175,1) 3.48s forwards;
    }

    /* FASE 2: ARCHITEC */
    .v62-architec{
      animation:
        v62WordIn .28s ease 4.16s forwards,
        v62WordHold 0s linear 6.18s forwards,
        v62WordOut .58s cubic-bezier(.77,0,.175,1) 6.34s forwards;
    }

    /* FASE 3: STRUCT */
    .v62-struct{
      animation:
        v62WordIn .28s ease 6.92s forwards,
        v62WordHold 0s linear 7.92s forwards,
        v62WordOut .52s cubic-bezier(.77,0,.175,1) 8.16s forwards;
    }

    @keyframes v62WordIn{
      from{
        opacity:0;
        transform:translateY(calc(-50% + 18px));
        filter:blur(6px);
      }
      to{
        opacity:1;
        transform:translateY(-50%);
        filter:blur(0);
      }
    }

    @keyframes v62WordHold{
      to{
        opacity:1;
        transform:translateY(-50%);
      }
    }

    @keyframes v62WordOut{
      to{
        opacity:0;
        transform:translateY(calc(-50% - 20px));
        filter:blur(8px);
      }
    }

    /* FASE 4: compare HOTURE pieno */
    .v62-lockup::after{
      content:"HOTURE";
      position:absolute;
      left:50%;
      top:50%;
      transform:translate(-50%, calc(-50% + 24px));
      font-size:clamp(48px, 8vw, 118px);
      font-weight:900;
      letter-spacing:.015em;
      color:#fff;
      opacity:0;
      text-shadow:0 24px 80px rgba(143,99,255,.20);
      animation:v62HotureIn .58s cubic-bezier(.19,1,.22,1) 8.48s forwards;
      white-space:nowrap;
    }

    @keyframes v62HotureIn{
      to{
        opacity:1;
        transform:translate(-50%, -50%);
      }
    }

    .v62-caption{
      display:block !important;
      color:rgba(246,241,234,.48);
      font-size:10px;
      font-weight:900;
      letter-spacing:.18em;
      text-transform:uppercase;
      opacity:0;
      transform:translateY(8px);
      animation:
        v62CaptionIn .45s ease 1.24s forwards,
        v62CaptionSoft .45s ease 5.10s forwards;
    }

    @keyframes v62CaptionIn{
      to{
        opacity:1;
        transform:translateY(0);
      }
    }

    @keyframes v62CaptionSoft{
      to{
        color:rgba(246,241,234,.66);
      }
    }

    /* Ritardo anche alla seconda fase sotto, così il preloader ha tempo */
    .site-header,
    .app{
      animation:v60SiteReveal .65s ease 15.80s forwards !important;
    }

    .v52-intro{
      animation:v52IntroLife 5.75s linear 10.05s forwards !important;
    }

    .v52-inner{
      animation:v52InnerOut .5s ease 14.47s forwards !important;
    }

    .v52-kicker{
      animation:v52SmallIn .42s ease 11.83s forwards !important;
    }

    .v52-title span:nth-child(1){
      animation:v52WordIn .48s cubic-bezier(.19,1,.22,1) 11.91s forwards !important;
    }

    .v52-title span:nth-child(2){
      animation:v52WordIn .48s cubic-bezier(.19,1,.22,1) 12.45s forwards !important;
    }

    .v52-title span:nth-child(3){
      animation:v52WordIn .48s cubic-bezier(.19,1,.22,1) 12.99s forwards !important;
    }

    .v52-footer{
      animation:v52SmallIn .42s ease 13.35s forwards !important;
    }

    .v52-cut{
      animation:v52Cut 1.05s cubic-bezier(.77,0,.175,1) 14.47s forwards !important;
      background:#050307 !important;
      box-shadow:0 0 80px rgba(143,99,255,.16) inset !important;
    }

    /* Mobile */
    @media (max-width:1180px){
      .v62-inner{
        min-height:72vh;
        justify-items:start;
      }

      .v62-stage{
        place-items:start;
        width:100%;
      }

      .v62-lockup{
        width:100%;
        min-height:108px;
        justify-content:flex-start;
        gap:10px;
      }

      .v62-ho,
      .v62-word,
      .v62-ture,
      .v62-lockup::after{
        font-size:clamp(34px, 12vw, 62px) !important;
      }

      .v62-word{
        -webkit-text-stroke:1px rgba(255,255,255,.78);
        text-stroke:1px rgba(255,255,255,.78);
      }

      .v62-hospitality,
      .v62-architec,
      .v62-struct{
        left:calc(0px + clamp(58px, 22vw, 118px));
        top:50%;
      }
    }

    @media (max-width:600px){
      .v62-lockup{
        min-height:92px;
      }

      .v62-ho,
      .v62-word,
      .v62-ture,
      .v62-lockup::after{
        font-size:clamp(28px, 11vw, 48px) !important;
      }

      .v62-hospitality,
      .v62-architec,
      .v62-struct{
        left:calc(0px + clamp(50px, 19vw, 92px));
      }
    }

/*
      V63
      - Logo H bianco
      - HO bianco + HOSPITALITY outline
      - HOSPITALITY sparisce
      - compare ARCHITEC + TURE bianco
      - ARCHITEC sparisce e velocemente compare STRUCT + TURE
      - poi rimane solo HOTURE senza spazi
    */

    /* Spegni i preloader precedenti */
    .v60-preloader,
    .v61-preloader,
    .v62-preloader{
      display:none !important;
      opacity:0 !important;
      visibility:hidden !important;
      pointer-events:none !important;
    }

    .v63-preloader{
      position:fixed !important;
      inset:0 !important;
      z-index:2147483647 !important;
      width:100vw !important;
      height:100dvh !important;
      display:grid !important;
      place-items:center !important;
      overflow:hidden !important;
      background:#000 !important;
      pointer-events:none !important;
      opacity:1 !important;
      visibility:visible !important;
      animation:v63PreloaderOut .76s ease 10.20s forwards !important;
    }

    @keyframes v63PreloaderOut{
      to{
        opacity:0;
        visibility:hidden;
      }
    }

    .v63-bg{
      position:absolute;
      inset:0;
      background:
        radial-gradient(circle at 50% 44%, rgba(143,99,255,.18), transparent 35%),
        radial-gradient(circle at 12% 74%, rgba(200,176,255,.06), transparent 24%),
        #000;
    }

    .v63-bg::after{
      content:"";
      position:absolute;
      inset:0;
      opacity:.14;
      background:
        linear-gradient(90deg, rgba(255,255,255,.055) 1px, transparent 1px),
        linear-gradient(180deg, rgba(255,255,255,.038) 1px, transparent 1px);
      background-size:22vw 22vh;
      -webkit-mask-image:radial-gradient(circle at center, black, transparent 72%);
      mask-image:radial-gradient(circle at center, black, transparent 72%);
    }

    .v63-inner{
      position:relative;
      z-index:2;
      width:min(1500px, calc(100vw - 52px));
      min-height:74vh;
      display:grid !important;
      grid-template-rows:auto 1fr auto;
      align-items:center;
      justify-items:center;
      gap:30px;
    }

    .v63-logo{
      display:block !important;
      width:66px;
      height:auto;
      opacity:0;
      transform:translateY(10px) scale(.92);
      filter:brightness(10) grayscale(1) drop-shadow(0 24px 70px rgba(143,99,255,.30));
      animation:v63LogoIn .75s cubic-bezier(.19,1,.22,1) .10s forwards;
    }

    @keyframes v63LogoIn{
      to{
        opacity:1;
        transform:translateY(0) scale(1);
      }
    }

    .v63-stage{
      width:100%;
      display:grid;
      place-items:center;
      text-transform:uppercase;
      font-weight:900;
      line-height:.88;
      letter-spacing:.015em;
      overflow:visible !important;
    }

    .v63-lockup{
      position:relative;
      min-height:clamp(90px, 11vw, 168px);
      width:min(1440px, 96vw);
      display:flex;
      align-items:baseline;
      justify-content:center;
      gap:clamp(14px, 1.5vw, 24px);
      overflow:visible !important;
      white-space:nowrap;
    }

    .v63-ho,
    .v63-outline,
    .v63-ture,
    .v63-hoture{
      font-size:clamp(48px, 8vw, 118px) !important;
      white-space:nowrap !important;
      line-height:.88 !important;
    }

    .v63-ho,
    .v63-ture,
    .v63-hoture{
      color:#fff;
      text-shadow:0 24px 80px rgba(143,99,255,.20);
    }

    .v63-outline{
      color:transparent;
      -webkit-text-stroke:1.45px rgba(255,255,255,.78);
      text-stroke:1.45px rgba(255,255,255,.78);
      filter:drop-shadow(0 20px 70px rgba(143,99,255,.18));
      position:absolute;
      left:calc(50% + clamp(52px, 6vw, 98px));
      top:50%;
      transform:translateY(-50%);
      opacity:0;
      overflow:visible !important;
      max-width:none !important;
    }

    .v63-ho{
      opacity:0;
      transform:translateY(100%);
      animation:v63Rise .58s cubic-bezier(.19,1,.22,1) .78s forwards;
    }

    .v63-ture{
      position:absolute;
      left:calc(50% + clamp(360px, 28vw, 465px));
      top:50%;
      transform:translateY(calc(-50% + 24px));
      opacity:0;
    }

    .v63-hoture{
      position:absolute;
      left:50%;
      top:50%;
      transform:translate(-50%, calc(-50% + 24px));
      opacity:0;
      letter-spacing:.015em;
    }

    @keyframes v63Rise{
      to{
        opacity:1;
        transform:translateY(0);
      }
    }

    @keyframes v63WordIn{
      from{
        opacity:0;
        transform:translateY(calc(-50% + 18px));
        filter:blur(6px);
      }
      to{
        opacity:1;
        transform:translateY(-50%);
        filter:blur(0);
      }
    }

    @keyframes v63WordOut{
      to{
        opacity:0;
        transform:translateY(calc(-50% - 20px));
        filter:blur(8px);
      }
    }

    @keyframes v63TureIn{
      from{
        opacity:0;
        transform:translateY(calc(-50% + 26px));
        filter:blur(6px);
      }
      to{
        opacity:1;
        transform:translateY(-50%);
        filter:blur(0);
      }
    }

    @keyframes v63TureOut{
      to{
        opacity:0;
        transform:translateY(calc(-50% - 22px));
        filter:blur(8px);
      }
    }

    @keyframes v63HotureIn{
      to{
        opacity:1;
        transform:translate(-50%, -50%);
      }
    }

    /* Timeline */
    .v63-hospitality{
      animation:
        v63WordIn .34s ease 1.30s forwards,
        v63WordOut .58s cubic-bezier(.77,0,.175,1) 3.55s forwards;
    }

    .v63-architec{
      animation:
        v63WordIn .34s ease 4.12s forwards,
        v63WordOut .56s cubic-bezier(.77,0,.175,1) 6.00s forwards;
    }

    .v63-struct{
      animation:
        v63WordIn .28s ease 6.24s forwards,
        v63WordOut .52s cubic-bezier(.77,0,.175,1) 7.56s forwards;
    }

    .v63-ture{
      animation:
        v63TureIn .46s cubic-bezier(.19,1,.22,1) 4.22s forwards,
        v63TureOut .52s cubic-bezier(.77,0,.175,1) 7.58s forwards;
    }

    .v63-hoture{
      animation:v63HotureIn .56s cubic-bezier(.19,1,.22,1) 8.02s forwards;
    }

    .v63-caption{
      display:block !important;
      color:rgba(246,241,234,.48);
      font-size:10px;
      font-weight:900;
      letter-spacing:.18em;
      text-transform:uppercase;
      opacity:0;
      transform:translateY(8px);
      animation:v63CaptionIn .45s ease 1.20s forwards;
    }

    @keyframes v63CaptionIn{
      to{
        opacity:1;
        transform:translateY(0);
      }
    }

    /* Ritarda la seconda fase già esistente */
    .site-header,
    .app{
      animation:v60SiteReveal .65s ease 15.95s forwards !important;
    }

    .v52-intro{
      animation:v52IntroLife 5.75s linear 10.15s forwards !important;
    }

    .v52-inner{
      animation:v52InnerOut .5s ease 14.57s forwards !important;
    }

    .v52-kicker{
      animation:v52SmallIn .42s ease 11.93s forwards !important;
    }

    .v52-title span:nth-child(1){
      animation:v52WordIn .48s cubic-bezier(.19,1,.22,1) 12.01s forwards !important;
    }

    .v52-title span:nth-child(2){
      animation:v52WordIn .48s cubic-bezier(.19,1,.22,1) 12.55s forwards !important;
    }

    .v52-title span:nth-child(3){
      animation:v52WordIn .48s cubic-bezier(.19,1,.22,1) 13.09s forwards !important;
    }

    .v52-footer{
      animation:v52SmallIn .42s ease 13.45s forwards !important;
    }

    .v52-cut{
      animation:v52Cut 1.05s cubic-bezier(.77,0,.175,1) 14.57s forwards !important;
      background:#050307 !important;
      box-shadow:0 0 80px rgba(143,99,255,.16) inset !important;
    }

    @media (max-width:1180px){
      .v63-inner{
        min-height:72vh;
        justify-items:start;
      }

      .v63-stage{
        place-items:start;
        width:100%;
      }

      .v63-lockup{
        width:100%;
        min-height:108px;
        justify-content:flex-start;
        gap:10px;
      }

      .v63-ho,
      .v63-outline,
      .v63-ture,
      .v63-hoture{
        font-size:clamp(34px, 12vw, 62px) !important;
      }

      .v63-outline{
        -webkit-text-stroke:1px rgba(255,255,255,.78);
        text-stroke:1px rgba(255,255,255,.78);
        left:calc(0px + clamp(58px, 22vw, 118px));
      }

      .v63-ture{
        left:calc(0px + clamp(180px, 46vw, 320px));
      }

      .v63-hoture{
        left:0;
        top:50%;
        transform:translate(0, calc(-50% + 22px));
      }

      @keyframes v63HotureIn{
        to{
          opacity:1;
          transform:translate(0, -50%);
        }
      }
    }

    @media (max-width:600px){
      .v63-lockup{
        min-height:92px;
      }

      .v63-ho,
      .v63-outline,
      .v63-ture,
      .v63-hoture{
        font-size:clamp(28px, 11vw, 48px) !important;
      }

      .v63-outline{
        left:calc(0px + clamp(50px, 19vw, 92px));
      }

      .v63-ture{
        left:calc(0px + clamp(142px, 43vw, 240px));
      }
    }

/*
      V64 — Preloader definitivo scelto come soluzione più pulita:
      - logo H bianco
      - HOTURE finale unico, senza spazi e senza duplicati
      - HO/SPITALITY, ARCHITEC/TURE, STRUCT/URE sono concetti animati attorno al logo verbale
      - niente parole tagliate, niente doppio HO
    */

    /* spegne tutti i vecchi preloader eventualmente rimasti */
    .v60-preloader,
    .v61-preloader,
    .v62-preloader,
    .v63-preloader,
    #v60Preloader,
    #v61Preloader,
    #v62Preloader,
    #v63Preloader{
      display:none !important;
      opacity:0 !important;
      visibility:hidden !important;
      pointer-events:none !important;
    }

    .v64-preloader{
      position:fixed !important;
      inset:0 !important;
      z-index:2147483647 !important;
      width:100vw !important;
      height:100dvh !important;
      display:grid !important;
      place-items:center !important;
      overflow:hidden !important;
      background:#000 !important;
      pointer-events:none !important;
      opacity:1 !important;
      visibility:visible !important;
      animation:v64PreloaderOut .78s ease 8.90s forwards !important;
    }

    @keyframes v64PreloaderOut{
      to{
        opacity:0;
        visibility:hidden;
      }
    }

    .v64-bg{
      position:absolute;
      inset:0;
      background:
        radial-gradient(circle at 50% 44%, rgba(143,99,255,.18), transparent 36%),
        radial-gradient(circle at 14% 72%, rgba(200,176,255,.055), transparent 26%),
        #000;
    }

    .v64-bg::after{
      content:"";
      position:absolute;
      inset:0;
      opacity:.13;
      background:
        linear-gradient(90deg, rgba(255,255,255,.055) 1px, transparent 1px),
        linear-gradient(180deg, rgba(255,255,255,.038) 1px, transparent 1px);
      background-size:22vw 22vh;
      -webkit-mask-image:radial-gradient(circle at center, black, transparent 72%);
      mask-image:radial-gradient(circle at center, black, transparent 72%);
    }

    .v64-inner{
      position:relative;
      z-index:2;
      width:min(1380px, calc(100vw - 52px));
      min-height:74vh;
      display:grid;
      grid-template-rows:auto 1fr auto;
      align-items:center;
      justify-items:center;
      gap:30px;
    }

    .v64-logo{
      width:66px;
      height:auto;
      opacity:0;
      transform:translateY(10px) scale(.92);
      filter:brightness(10) grayscale(1) drop-shadow(0 24px 70px rgba(143,99,255,.30));
      animation:v64LogoIn .75s cubic-bezier(.19,1,.22,1) .10s forwards;
    }

    @keyframes v64LogoIn{
      to{
        opacity:1;
        transform:translateY(0) scale(1);
      }
    }

    .v64-stage{
      position:relative;
      width:100%;
      min-height:clamp(260px, 35vh, 390px);
      display:grid;
      place-items:center;
      text-transform:uppercase;
      font-weight:900;
      letter-spacing:.018em;
      line-height:.88;
      overflow:visible;
    }

    .v64-main{
      position:relative;
      z-index:3;
      color:#fff;
      font-size:clamp(58px, 10vw, 162px);
      letter-spacing:.018em;
      white-space:nowrap;
      text-shadow:0 24px 90px rgba(143,99,255,.26);
      opacity:0;
      transform:translateY(24px) scale(.98);
      filter:blur(8px);
      animation:v64MainIn .70s cubic-bezier(.19,1,.22,1) 5.85s forwards;
    }

    @keyframes v64MainIn{
      to{
        opacity:1;
        transform:translateY(0) scale(1);
        filter:blur(0);
      }
    }

    .v64-context{
      position:absolute;
      left:50%;
      display:flex;
      align-items:baseline;
      justify-content:center;
      gap:clamp(8px, 1.1vw, 18px);
      white-space:nowrap;
      pointer-events:none;
      opacity:0;
    }

    .v64-context-top{
      top:8%;
      transform:translateX(-50%) translateY(18px);
      animation:
        v64ContextIn .62s cubic-bezier(.19,1,.22,1) 1.00s forwards,
        v64ContextOut .54s cubic-bezier(.77,0,.175,1) 3.05s forwards;
    }

    .v64-context-bottom{
      bottom:8%;
      transform:translateX(-50%) translateY(18px);
      animation:
        v64ContextIn .62s cubic-bezier(.19,1,.22,1) 3.38s forwards,
        v64ContextOut .54s cubic-bezier(.77,0,.175,1) 5.35s forwards;
    }

    @keyframes v64ContextIn{
      to{
        opacity:1;
        transform:translateX(-50%) translateY(0);
      }
    }

    @keyframes v64ContextOut{
      to{
        opacity:0;
        transform:translateX(-50%) translateY(-18px);
        filter:blur(8px);
      }
    }

    .v64-filled{
      color:#fff;
      font-size:clamp(34px, 5.2vw, 86px);
      text-shadow:0 22px 80px rgba(143,99,255,.22);
    }

    .v64-outline{
      color:transparent;
      -webkit-text-stroke:1.35px rgba(255,255,255,.78);
      text-stroke:1.35px rgba(255,255,255,.78);
      font-size:clamp(34px, 5.2vw, 86px);
      filter:drop-shadow(0 20px 70px rgba(143,99,255,.18));
    }

    .v64-struct{
      margin-left:clamp(20px, 3vw, 48px);
    }

    .v64-caption{
      color:rgba(246,241,234,.50);
      font-size:10px;
      font-weight:900;
      letter-spacing:.18em;
      text-transform:uppercase;
      opacity:0;
      transform:translateY(8px);
      animation:
        v64CaptionIn .45s ease 1.10s forwards,
        v64CaptionOut .42s ease 8.05s forwards;
    }

    @keyframes v64CaptionIn{
      to{
        opacity:1;
        transform:translateY(0);
      }
    }

    @keyframes v64CaptionOut{
      to{
        opacity:0;
        transform:translateY(-8px);
      }
    }

    /* Seconda fase DIGITAL ritardata coerentemente con il nuovo preloader */
    .site-header,
    .app{
      animation:v60SiteReveal .65s ease 14.85s forwards !important;
    }

    .v52-intro{
      animation:v52IntroLife 5.75s linear 8.82s forwards !important;
    }

    .v52-inner{
      animation:v52InnerOut .5s ease 13.24s forwards !important;
    }

    .v52-kicker{
      animation:v52SmallIn .42s ease 10.60s forwards !important;
    }

    .v52-title span:nth-child(1){
      animation:v52WordIn .48s cubic-bezier(.19,1,.22,1) 10.68s forwards !important;
    }

    .v52-title span:nth-child(2){
      animation:v52WordIn .48s cubic-bezier(.19,1,.22,1) 11.22s forwards !important;
    }

    .v52-title span:nth-child(3){
      animation:v52WordIn .48s cubic-bezier(.19,1,.22,1) 11.76s forwards !important;
    }

    .v52-footer{
      animation:v52SmallIn .42s ease 12.12s forwards !important;
    }

    .v52-cut{
      animation:v52Cut 1.05s cubic-bezier(.77,0,.175,1) 13.24s forwards !important;
      background:#050307 !important;
      box-shadow:0 0 80px rgba(143,99,255,.16) inset !important;
    }

    @media (max-width:1180px){
      .v64-inner{
        width:min(100%, calc(100vw - 34px));
        min-height:72vh;
      }

      .v64-stage{
        min-height:360px;
      }

      .v64-context{
        left:0;
        transform:translateY(18px);
        justify-content:flex-start;
        flex-wrap:wrap;
        row-gap:8px;
      }

      .v64-context-top{
        top:12%;
      }

      .v64-context-bottom{
        bottom:12%;
      }

      @keyframes v64ContextIn{
        to{
          opacity:1;
          transform:translateY(0);
        }
      }

      @keyframes v64ContextOut{
        to{
          opacity:0;
          transform:translateY(-18px);
          filter:blur(8px);
        }
      }

      .v64-main{
        font-size:clamp(48px, 15vw, 86px);
      }

      .v64-filled,
      .v64-outline{
        font-size:clamp(28px, 8.4vw, 54px);
      }

      .v64-struct{
        margin-left:0;
      }
    }

/*
      V65
      - Logo H centrato
      - Sotto centrato: HO + HOSPITALITY
      - Poi: HO + ARCHITEC + TURE
      - Poi: HO + STRUCT + TURE
      - Poi: HOTURE
      - Nessun taglio, nessun doppio HO finale
    */

    /* Spegne tutti i preloader precedenti */
    .v60-preloader,
    .v61-preloader,
    .v62-preloader,
    .v63-preloader,
    .v64-preloader,
    #v60Preloader,
    #v61Preloader,
    #v62Preloader,
    #v63Preloader,
    #v64Preloader{
      display:none !important;
      opacity:0 !important;
      visibility:hidden !important;
      pointer-events:none !important;
    }

    .v65-preloader{
      position:fixed !important;
      inset:0 !important;
      z-index:2147483647 !important;
      width:100vw !important;
      height:100dvh !important;
      display:grid !important;
      place-items:center !important;
      overflow:hidden !important;
      background:#000 !important;
      pointer-events:none !important;
      opacity:1 !important;
      visibility:visible !important;
      animation:v65PreloaderOut .78s ease 8.90s forwards !important;
    }

    @keyframes v65PreloaderOut{
      to{
        opacity:0;
        visibility:hidden;
      }
    }

    .v65-bg{
      position:absolute;
      inset:0;
      background:
        radial-gradient(circle at 50% 44%, rgba(143,99,255,.18), transparent 36%),
        radial-gradient(circle at 14% 72%, rgba(200,176,255,.055), transparent 26%),
        #000;
    }

    .v65-bg::after{
      content:"";
      position:absolute;
      inset:0;
      opacity:.13;
      background:
        linear-gradient(90deg, rgba(255,255,255,.055) 1px, transparent 1px),
        linear-gradient(180deg, rgba(255,255,255,.038) 1px, transparent 1px);
      background-size:22vw 22vh;
      -webkit-mask-image:radial-gradient(circle at center, black, transparent 72%);
      mask-image:radial-gradient(circle at center, black, transparent 72%);
    }

    .v65-inner{
      position:relative;
      z-index:2;
      width:min(1500px, calc(100vw - 56px));
      min-height:74vh;
      display:grid;
      grid-template-rows:auto 1fr;
      align-items:center;
      justify-items:center;
      gap:34px;
    }

    .v65-logo{
      width:66px;
      height:auto;
      opacity:0;
      transform:translateY(10px) scale(.92);
      filter:brightness(10) grayscale(1) drop-shadow(0 24px 70px rgba(143,99,255,.30));
      animation:v65LogoIn .72s cubic-bezier(.19,1,.22,1) .10s forwards;
    }

    @keyframes v65LogoIn{
      to{
        opacity:1;
        transform:translateY(0) scale(1);
      }
    }

    .v65-stage{
      position:relative;
      width:100%;
      min-height:clamp(120px, 18vh, 200px);
      display:grid;
      place-items:center;
      overflow:visible;
      text-transform:uppercase;
      font-weight:900;
      letter-spacing:.015em;
      line-height:.88;
    }

    .v65-state{
      position:absolute;
      left:50%;
      top:50%;
      transform:translate(-50%, calc(-50% + 18px));
      display:flex;
      align-items:baseline;
      justify-content:center;
      gap:clamp(10px, 1.2vw, 18px);
      width:min(1420px, 96vw);
      white-space:nowrap;
      opacity:0;
      filter:blur(8px);
      overflow:visible;
    }

    .v65-filled,
    .v65-outline{
      font-size:clamp(38px, 8vw, 116px);
      line-height:.88;
      white-space:nowrap;
      flex:0 0 auto;
    }

    .v65-filled{
      color:#fff;
      text-shadow:0 24px 90px rgba(143,99,255,.26);
    }

    .v65-outline{
      color:transparent;
      -webkit-text-stroke:1.45px rgba(255,255,255,.78);
      text-stroke:1.45px rgba(255,255,255,.78);
      filter:drop-shadow(0 20px 70px rgba(143,99,255,.18));
    }

    .v65-hoture-final{
      letter-spacing:.015em;
    }

    @keyframes v65StateIn{
      to{
        opacity:1;
        filter:blur(0);
        transform:translate(-50%, -50%);
      }
    }

    @keyframes v65StateOut{
      to{
        opacity:0;
        filter:blur(8px);
        transform:translate(-50%, calc(-50% - 18px));
      }
    }

    /* Timeline */
    .v65-state-1{
      animation:
        v65StateIn .48s cubic-bezier(.19,1,.22,1) 1.00s forwards,
        v65StateOut .52s cubic-bezier(.77,0,.175,1) 3.45s forwards;
    }

    .v65-state-2{
      animation:
        v65StateIn .46s cubic-bezier(.19,1,.22,1) 3.90s forwards,
        v65StateOut .48s cubic-bezier(.77,0,.175,1) 5.75s forwards;
    }

    .v65-state-3{
      animation:
        v65StateIn .34s cubic-bezier(.19,1,.22,1) 5.95s forwards,
        v65StateOut .44s cubic-bezier(.77,0,.175,1) 7.20s forwards;
    }

    .v65-state-4{
      animation:v65StateIn .50s cubic-bezier(.19,1,.22,1) 7.48s forwards;
    }

    /* Seconda fase DIGITAL ritardata coerentemente con il nuovo preloader */
    .site-header,
    .app{
      animation:v60SiteReveal .65s ease 14.90s forwards !important;
    }

    .v52-intro{
      animation:v52IntroLife 5.75s linear 8.92s forwards !important;
    }

    .v52-inner{
      animation:v52InnerOut .5s ease 13.34s forwards !important;
    }

    .v52-kicker{
      animation:v52SmallIn .42s ease 10.70s forwards !important;
    }

    .v52-title span:nth-child(1){
      animation:v52WordIn .48s cubic-bezier(.19,1,.22,1) 10.78s forwards !important;
    }

    .v52-title span:nth-child(2){
      animation:v52WordIn .48s cubic-bezier(.19,1,.22,1) 11.32s forwards !important;
    }

    .v52-title span:nth-child(3){
      animation:v52WordIn .48s cubic-bezier(.19,1,.22,1) 11.86s forwards !important;
    }

    .v52-footer{
      animation:v52SmallIn .42s ease 12.22s forwards !important;
    }

    .v52-cut{
      animation:v52Cut 1.05s cubic-bezier(.77,0,.175,1) 13.34s forwards !important;
      background:#050307 !important;
      box-shadow:0 0 80px rgba(143,99,255,.16) inset !important;
    }

    @media (max-width:1180px){
      .v65-inner{
        width:min(100%, calc(100vw - 32px));
        min-height:72vh;
      }

      .v65-stage{
        min-height:132px;
      }

      .v65-state{
        width:100%;
        gap:10px;
      }

      .v65-filled,
      .v65-outline{
        font-size:clamp(28px, 10.8vw, 62px);
      }

      .v65-outline{
        -webkit-text-stroke:1px rgba(255,255,255,.78);
        text-stroke:1px rgba(255,255,255,.78);
      }
    }

    @media (max-width:640px){
      .v65-filled,
      .v65-outline{
        font-size:clamp(22px, 10vw, 44px);
      }

      .v65-stage{
        min-height:112px;
      }

      .v65-state{
        gap:7px;
      }
    }

/*
      V66
      LOGICA:
      - logo H centrato
      - sotto: HO bianco fisso
      - accanto a HO: HOSPITALITY outline typewriter
      - HOSPITALITY esce
      - entra ARCHITEC outline + TURE bianco
      - ARCHITEC esce
      - entra STRUCT outline + TURE bianco
      - STRUCT esce
      - rimane solo HOTURE senza spazi
      - poi seconda fase DIGITAL / WEB AGENCY / X HOSPITALITY
    */

    /* spegni tutti i preloader precedenti */
    .v60-preloader,
    .v61-preloader,
    .v62-preloader,
    .v63-preloader,
    .v64-preloader,
    .v65-preloader,
    #v60Preloader,
    #v61Preloader,
    #v62Preloader,
    #v63Preloader,
    #v64Preloader,
    #v65Preloader{
      display:none !important;
      opacity:0 !important;
      visibility:hidden !important;
      pointer-events:none !important;
    }

    .v66-preloader{
      position:fixed !important;
      inset:0 !important;
      z-index:2147483647 !important;
      width:100vw !important;
      height:100dvh !important;
      display:grid !important;
      place-items:center !important;
      overflow:hidden !important;
      background:#000 !important;
      pointer-events:none !important;
      opacity:1 !important;
      visibility:visible !important;
      animation:v66PreloaderOut .78s ease 9.75s forwards !important;
    }

    @keyframes v66PreloaderOut{
      to{
        opacity:0;
        visibility:hidden;
      }
    }

    .v66-bg{
      position:absolute;
      inset:0;
      background:
        radial-gradient(circle at 50% 44%, rgba(143,99,255,.18), transparent 36%),
        radial-gradient(circle at 14% 72%, rgba(200,176,255,.055), transparent 26%),
        #000;
    }

    .v66-bg::after{
      content:"";
      position:absolute;
      inset:0;
      opacity:.13;
      background:
        linear-gradient(90deg, rgba(255,255,255,.055) 1px, transparent 1px),
        linear-gradient(180deg, rgba(255,255,255,.038) 1px, transparent 1px);
      background-size:22vw 22vh;
      -webkit-mask-image:radial-gradient(circle at center, black, transparent 72%);
      mask-image:radial-gradient(circle at center, black, transparent 72%);
    }

    .v66-inner{
      position:relative;
      z-index:2;
      width:min(1500px, calc(100vw - 56px));
      min-height:74vh;
      display:grid;
      grid-template-rows:auto 1fr;
      align-items:center;
      justify-items:center;
      gap:42px;
    }

    .v66-logo{
      width:66px;
      height:auto;
      opacity:0;
      transform:translateY(10px) scale(.92);
      filter:brightness(10) grayscale(1) drop-shadow(0 24px 70px rgba(143,99,255,.30));
      animation:
        v66LogoIn .72s cubic-bezier(.19,1,.22,1) .10s forwards,
        v66LogoDrop .70s cubic-bezier(.19,1,.22,1) 8.05s forwards;
    }

    @keyframes v66LogoIn{
      to{
        opacity:1;
        transform:translateY(0) scale(1);
      }
    }

    @keyframes v66LogoDrop{
      to{
        transform:translateY(18px) scale(.94);
        opacity:.72;
      }
    }

    .v66-stage{
      width:100%;
      display:grid;
      place-items:center;
      overflow:visible;
      text-transform:uppercase;
      font-weight:900;
      letter-spacing:.015em;
      line-height:.88;
    }

    .v66-concept-line{
      position:relative;
      min-height:clamp(96px, 12vw, 178px);
      width:min(1460px, 96vw);
      display:flex;
      align-items:baseline;
      justify-content:center;
      gap:clamp(12px, 1.3vw, 20px);
      white-space:nowrap;
      overflow:visible;
    }

    .v66-ho,
    .v66-type,
    .v66-type-ture,
    .v66-final-hoture{
      font-size:clamp(40px, 7.2vw, 108px);
      line-height:.88;
      white-space:nowrap;
    }

    .v66-ho,
    .v66-type-ture,
    .v66-final-hoture{
      color:#fff;
      text-shadow:0 24px 90px rgba(143,99,255,.26);
    }

    .v66-outline{
      color:transparent;
      -webkit-text-stroke:1.45px rgba(255,255,255,.78);
      text-stroke:1.45px rgba(255,255,255,.78);
      filter:drop-shadow(0 20px 70px rgba(143,99,255,.18));
    }

    /* HO è fisso: entra e rimane durante le fasi */
    .v66-ho{
      opacity:0;
      transform:translateY(100%);
      animation:
        v66HoIn .58s cubic-bezier(.19,1,.22,1) .85s forwards,
        v66HoOut .48s cubic-bezier(.77,0,.175,1) 7.70s forwards;
    }

    @keyframes v66HoIn{
      to{
        opacity:1;
        transform:translateY(0);
      }
    }

    @keyframes v66HoOut{
      to{
        opacity:0;
        transform:translateY(-20px);
        filter:blur(8px);
      }
    }

    .v66-dynamic{
      position:relative;
      display:inline-flex;
      align-items:baseline;
      min-width:clamp(390px, 50vw, 820px);
      height:1em;
      overflow:visible;
    }

    .v66-phrase{
      position:absolute;
      left:0;
      top:0;
      display:inline-flex;
      align-items:baseline;
      gap:clamp(8px, 1vw, 14px);
      opacity:0;
      transform:translateY(16px);
      filter:blur(6px);
      overflow:visible;
    }

    .v66-type{
      display:inline-block;
      width:0;
      overflow:hidden;
      vertical-align:baseline;
      max-width:none;
    }

    .v66-type-ture{
      opacity:0;
      transform:translateY(18px);
    }

    /* Typewriter + uscita */
    .v66-hospitality{
      animation:
        v66PhraseIn .20s ease 1.25s forwards,
        v66PhraseOut .42s cubic-bezier(.77,0,.175,1) 3.55s forwards;
    }

    .v66-hospitality .v66-type{
      animation:v66TypeHospitality 1.35s steps(11, end) 1.33s forwards;
    }

    .v66-architecture{
      animation:
        v66PhraseIn .20s ease 3.98s forwards,
        v66PhraseOut .42s cubic-bezier(.77,0,.175,1) 5.82s forwards;
    }

    .v66-architecture .v66-type{
      animation:v66TypeArch 1.00s steps(8, end) 4.06s forwards;
    }

    .v66-architecture .v66-type-ture{
      animation:v66TureIn .38s cubic-bezier(.19,1,.22,1) 4.42s forwards;
    }

    .v66-structure{
      animation:
        v66PhraseIn .16s ease 6.06s forwards,
        v66PhraseOut .36s cubic-bezier(.77,0,.175,1) 7.35s forwards;
    }

    .v66-structure .v66-type{
      animation:v66TypeStruct .60s steps(6, end) 6.12s forwards;
    }

    .v66-structure .v66-type-ture{
      animation:v66TureIn .28s cubic-bezier(.19,1,.22,1) 6.35s forwards;
    }

    @keyframes v66PhraseIn{
      to{
        opacity:1;
        transform:translateY(0);
        filter:blur(0);
      }
    }

    @keyframes v66PhraseOut{
      to{
        opacity:0;
        transform:translateY(-18px);
        filter:blur(8px);
      }
    }

    @keyframes v66TypeHospitality{
      to{ width:11ch; }
    }

    @keyframes v66TypeArch{
      to{ width:8ch; }
    }

    @keyframes v66TypeStruct{
      to{ width:6ch; }
    }

    @keyframes v66TureIn{
      to{
        opacity:1;
        transform:translateY(0);
      }
    }

    /* Finale: solo HOTURE unito, niente HO separato */
    .v66-final-hoture{
      position:absolute;
      left:50%;
      top:50%;
      transform:translate(-50%, calc(-50% + 24px));
      opacity:0;
      letter-spacing:.015em;
      animation:v66HotureIn .58s cubic-bezier(.19,1,.22,1) 7.95s forwards;
    }

    @keyframes v66HotureIn{
      to{
        opacity:1;
        transform:translate(-50%, -50%);
      }
    }

    /* Seconda fase DIGITAL / WEB AGENCY / X HOSPITALITY */
    .site-header,
    .app{
      animation:v60SiteReveal .65s ease 15.75s forwards !important;
    }

    .v52-intro{
      animation:v52IntroLife 5.75s linear 9.95s forwards !important;
    }

    .v52-inner{
      animation:v52InnerOut .5s ease 14.37s forwards !important;
    }

    .v52-kicker{
      animation:v52SmallIn .42s ease 11.73s forwards !important;
    }

    .v52-title span:nth-child(1){
      animation:v52WordIn .48s cubic-bezier(.19,1,.22,1) 11.81s forwards !important;
    }

    .v52-title span:nth-child(2){
      animation:v52WordIn .48s cubic-bezier(.19,1,.22,1) 12.35s forwards !important;
    }

    .v52-title span:nth-child(3){
      animation:v52WordIn .48s cubic-bezier(.19,1,.22,1) 12.89s forwards !important;
    }

    .v52-footer{
      animation:v52SmallIn .42s ease 13.25s forwards !important;
    }

    .v52-cut{
      animation:v52Cut 1.05s cubic-bezier(.77,0,.175,1) 14.37s forwards !important;
      background:#050307 !important;
      box-shadow:0 0 80px rgba(143,99,255,.16) inset !important;
    }

    body.v60-ready .v66-preloader,
    body.v60-ready .v52-intro{
      display:none !important;
      visibility:hidden !important;
      opacity:0 !important;
      pointer-events:none !important;
    }

    @media (max-width:1180px){
      .v66-inner{
        width:min(100%, calc(100vw - 32px));
        min-height:72vh;
        justify-items:start;
      }

      .v66-stage{
        place-items:start;
      }

      .v66-concept-line{
        width:100%;
        min-height:126px;
        justify-content:flex-start;
        gap:8px;
      }

      .v66-ho,
      .v66-type,
      .v66-type-ture,
      .v66-final-hoture{
        font-size:clamp(28px, 10vw, 58px);
      }

      .v66-outline{
        -webkit-text-stroke:1px rgba(255,255,255,.78);
        text-stroke:1px rgba(255,255,255,.78);
      }

      .v66-dynamic{
        min-width:calc(100vw - 115px);
      }

      .v66-final-hoture{
        left:0;
        transform:translate(0, calc(-50% + 22px));
      }

      @keyframes v66HotureIn{
        to{
          opacity:1;
          transform:translate(0, -50%);
        }
      }
    }

    @media (max-width:640px){
      .v66-ho,
      .v66-type,
      .v66-type-ture,
      .v66-final-hoture{
        font-size:clamp(22px, 9vw, 42px);
      }

      .v66-dynamic{
        min-width:calc(100vw - 86px);
      }
    }

/*
      V67:
      - parole outline e TURE bianco allineati sulla stessa riga
      - ARCHITEC + TURE insieme
      - STRUC + TURE insieme
      - niente STRUCT
      - niente TURE che arriva separato più in basso
    */

    .v66-concept-line{
      align-items:baseline !important;
      gap:clamp(10px, 1.2vw, 18px) !important;
      min-height:clamp(96px, 12vw, 178px) !important;
    }

    .v66-ho,
    .v66-type,
    .v66-type-ture,
    .v66-final-hoture{
      font-size:clamp(40px, 7.2vw, 108px) !important;
      line-height:.88 !important;
      vertical-align:baseline !important;
      display:inline-block !important;
    }

    .v66-dynamic{
      position:relative !important;
      display:inline-flex !important;
      align-items:baseline !important;
      min-width:clamp(390px, 50vw, 820px) !important;
      height:1em !important;
      overflow:visible !important;
      vertical-align:baseline !important;
    }

    .v66-phrase{
      position:absolute !important;
      left:0 !important;
      top:0 !important;
      display:inline-flex !important;
      align-items:baseline !important;
      justify-content:flex-start !important;
      gap:clamp(8px, 1vw, 14px) !important;
      opacity:0;
      transform:translateY(0) !important;
      filter:blur(6px);
      overflow:visible !important;
      line-height:.88 !important;
      height:auto !important;
      vertical-align:baseline !important;
    }

    .v66-type{
      display:inline-block !important;
      width:0;
      overflow:hidden !important;
      vertical-align:baseline !important;
      line-height:.88 !important;
      height:auto !important;
      transform:none !important;
    }

    .v66-type-ture{
      display:inline-block !important;
      opacity:0;
      transform:none !important;
      filter:none !important;
      vertical-align:baseline !important;
      line-height:.88 !important;
      height:auto !important;
      margin-left:0 !important;
    }

    @keyframes v67PhraseIn{
      from{
        opacity:0;
        transform:translateY(0);
        filter:blur(6px);
      }
      to{
        opacity:1;
        transform:translateY(0);
        filter:blur(0);
      }
    }

    @keyframes v67PhraseOut{
      to{
        opacity:0;
        transform:translateY(0);
        filter:blur(8px);
      }
    }

    @keyframes v67TureTogether{
      from{
        opacity:0;
        transform:none;
        filter:blur(5px);
      }
      to{
        opacity:1;
        transform:none;
        filter:blur(0);
      }
    }

    .v66-hospitality{
      animation:
        v67PhraseIn .20s ease 1.25s forwards,
        v67PhraseOut .42s cubic-bezier(.77,0,.175,1) 3.55s forwards !important;
    }

    .v66-architecture{
      animation:
        v67PhraseIn .20s ease 3.98s forwards,
        v67PhraseOut .42s cubic-bezier(.77,0,.175,1) 5.82s forwards !important;
    }

    .v66-structure{
      animation:
        v67PhraseIn .16s ease 6.06s forwards,
        v67PhraseOut .36s cubic-bezier(.77,0,.175,1) 7.35s forwards !important;
    }

    .v66-architecture .v66-type{
      animation:v66TypeArch 1.00s steps(8, end) 4.06s forwards !important;
    }

    .v66-structure .v66-type{
      animation:v67TypeStruc .50s steps(5, end) 6.12s forwards !important;
    }

    .v66-architecture .v66-type-ture{
      animation:v67TureTogether .22s ease 4.06s forwards !important;
    }

    .v66-structure .v66-type-ture{
      animation:v67TureTogether .18s ease 6.12s forwards !important;
    }

    @keyframes v67TypeStruc{
      to{ width:5ch; }
    }

    @media (max-width:1180px){
      .v66-concept-line{
        align-items:baseline !important;
      }

      .v66-dynamic{
        min-width:calc(100vw - 115px) !important;
        align-items:baseline !important;
      }

      .v66-phrase{
        align-items:baseline !important;
      }
    }

    @media (max-width:640px){
      .v66-dynamic{
        min-width:calc(100vw - 86px) !important;
      }
    }

/*
      V68
      - tutto sulla stessa linea / stessa baseline
      - H centrata
      - HO + HOSPITALITY
      - HO + ARCHITEC + TURE
      - HO + STRUC + TURE
      - finale HOTURE
      - nel finale il logo scende vicino a HOTURE
    */

    /* Spegne tutti i preloader precedenti */
    .v60-preloader,
    .v61-preloader,
    .v62-preloader,
    .v63-preloader,
    .v64-preloader,
    .v65-preloader,
    .v66-preloader,
    .v67-preloader,
    #v60Preloader,
    #v61Preloader,
    #v62Preloader,
    #v63Preloader,
    #v64Preloader,
    #v65Preloader,
    #v66Preloader,
    #v67Preloader{
      display:none !important;
      opacity:0 !important;
      visibility:hidden !important;
      pointer-events:none !important;
    }

    .v68-preloader{
      position:fixed !important;
      inset:0 !important;
      z-index:2147483647 !important;
      width:100vw !important;
      height:100dvh !important;
      display:grid !important;
      place-items:center !important;
      overflow:hidden !important;
      background:#000 !important;
      pointer-events:none !important;
      opacity:1 !important;
      visibility:visible !important;
      animation:v68PreloaderOut .78s ease 9.15s forwards !important;
    }

    @keyframes v68PreloaderOut{
      to{
        opacity:0;
        visibility:hidden;
      }
    }

    .v68-bg{
      position:absolute;
      inset:0;
      background:
        radial-gradient(circle at 50% 44%, rgba(143,99,255,.18), transparent 36%),
        radial-gradient(circle at 14% 72%, rgba(200,176,255,.055), transparent 26%),
        #000;
    }

    .v68-bg::after{
      content:"";
      position:absolute;
      inset:0;
      opacity:.13;
      background:
        linear-gradient(90deg, rgba(255,255,255,.055) 1px, transparent 1px),
        linear-gradient(180deg, rgba(255,255,255,.038) 1px, transparent 1px);
      background-size:22vw 22vh;
      -webkit-mask-image:radial-gradient(circle at center, black, transparent 72%);
      mask-image:radial-gradient(circle at center, black, transparent 72%);
    }

    .v68-inner{
      position:relative;
      z-index:2;
      width:min(1500px, calc(100vw - 56px));
      min-height:100dvh;
      display:flex;
      flex-direction:column;
      align-items:center;
      justify-content:center;
      gap:22px;
      padding:30px 0;
    }

    .v68-logo{
      width:66px;
      height:auto;
      opacity:0;
      transform:translateY(10px) scale(.92);
      filter:brightness(10) grayscale(1) drop-shadow(0 24px 70px rgba(143,99,255,.30));
      animation:
        v68LogoIn .72s cubic-bezier(.19,1,.22,1) .10s forwards,
        v68LogoNear .64s cubic-bezier(.19,1,.22,1) 7.65s forwards;
    }

    @keyframes v68LogoIn{
      to{
        opacity:1;
        transform:translateY(0) scale(1);
      }
    }

    @keyframes v68LogoNear{
      to{
        transform:translateY(40px) scale(.95);
        opacity:1;
      }
    }

    .v68-stage{
      width:100%;
      display:grid;
      place-items:center;
      overflow:visible;
      text-transform:uppercase;
      font-weight:900;
      letter-spacing:.015em;
      line-height:.88;
    }

    .v68-line{
      position:relative;
      width:min(1460px, 96vw);
      height:1.15em;
      min-height:clamp(58px, 9vw, 120px);
      overflow:visible;
    }

    .v68-state{
      position:absolute;
      inset:0;
      display:flex;
      align-items:baseline;
      justify-content:center;
      gap:clamp(10px, 1.2vw, 18px);
      white-space:nowrap;
      opacity:0;
      filter:blur(7px);
    }

    .v68-filled,
    .v68-outline,
    .v68-final-hoture{
      font-size:clamp(40px, 7.2vw, 108px);
      line-height:.88;
      display:inline-block;
      white-space:nowrap;
      vertical-align:baseline;
    }

    .v68-filled,
    .v68-final-hoture{
      color:#fff;
      text-shadow:0 24px 90px rgba(143,99,255,.26);
    }

    .v68-outline-wrap{
      display:inline-block;
      overflow:hidden;
      width:0;
      vertical-align:baseline;
      line-height:.88;
    }

    .v68-outline{
      color:transparent;
      -webkit-text-stroke:1.45px rgba(255,255,255,.78);
      text-stroke:1.45px rgba(255,255,255,.78);
      filter:drop-shadow(0 20px 70px rgba(143,99,255,.18));
      vertical-align:baseline;
    }

    .v68-outline-hospitality{ width:11ch; }
    .v68-outline-arch{ width:8ch; }
    .v68-outline-struc{ width:5ch; }

    @keyframes v68StateIn{
      to{
        opacity:1;
        filter:blur(0);
      }
    }

    @keyframes v68StateOut{
      to{
        opacity:0;
        filter:blur(8px);
      }
    }

    @keyframes v68TypeHospitality{
      to{ width:11ch; }
    }

    @keyframes v68TypeArch{
      to{ width:8ch; }
    }

    @keyframes v68TypeStruc{
      to{ width:5ch; }
    }

    .v68-state-1{
      animation:
        v68StateIn .24s ease 1.20s forwards,
        v68StateOut .42s cubic-bezier(.77,0,.175,1) 3.55s forwards;
    }

    .v68-state-1 .v68-outline-wrap{
      animation:v68TypeHospitality 1.25s steps(11, end) 1.30s forwards;
    }

    .v68-state-2{
      animation:
        v68StateIn .20s ease 3.90s forwards,
        v68StateOut .38s cubic-bezier(.77,0,.175,1) 5.82s forwards;
    }

    .v68-state-2 .v68-outline-wrap{
      animation:v68TypeArch .90s steps(8, end) 4.00s forwards;
    }

    .v68-state-3{
      animation:
        v68StateIn .16s ease 6.04s forwards,
        v68StateOut .34s cubic-bezier(.77,0,.175,1) 7.30s forwards;
    }

    .v68-state-3 .v68-outline-wrap{
      animation:v68TypeStruc .56s steps(5, end) 6.12s forwards;
    }

    .v68-state-4{
      animation:v68StateIn .50s cubic-bezier(.19,1,.22,1) 7.78s forwards;
    }

    /* Timings coerenti per la seconda fase e comparsa sito */
    .site-header,
    .app{
      animation:v60SiteReveal .65s ease 15.10s forwards !important;
    }

    .v52-intro{
      animation:v52IntroLife 5.75s linear 9.25s forwards !important;
    }

    .v52-inner{
      animation:v52InnerOut .5s ease 13.67s forwards !important;
    }

    .v52-kicker{
      animation:v52SmallIn .42s ease 11.03s forwards !important;
    }

    .v52-title span:nth-child(1){
      animation:v52WordIn .48s cubic-bezier(.19,1,.22,1) 11.11s forwards !important;
    }

    .v52-title span:nth-child(2){
      animation:v52WordIn .48s cubic-bezier(.19,1,.22,1) 11.65s forwards !important;
    }

    .v52-title span:nth-child(3){
      animation:v52WordIn .48s cubic-bezier(.19,1,.22,1) 12.19s forwards !important;
    }

    .v52-footer{
      animation:v52SmallIn .42s ease 12.55s forwards !important;
    }

    .v52-cut{
      animation:v52Cut 1.05s cubic-bezier(.77,0,.175,1) 13.67s forwards !important;
      background:#050307 !important;
      box-shadow:0 0 80px rgba(143,99,255,.16) inset !important;
    }

    body.v60-ready .v68-preloader,
    body.v60-ready .v52-intro{
      display:none !important;
      visibility:hidden !important;
      opacity:0 !important;
      pointer-events:none !important;
    }

    @media (max-width:1180px){
      .v68-inner{
        width:min(100%, calc(100vw - 32px));
      }

      .v68-filled,
      .v68-outline,
      .v68-final-hoture{
        font-size:clamp(28px, 10vw, 58px);
      }

      .v68-outline{
        -webkit-text-stroke:1px rgba(255,255,255,.78);
        text-stroke:1px rgba(255,255,255,.78);
      }

      .v68-line{
        width:100%;
      }

      .v68-state{
        gap:8px;
      }

      .v68-logo{
        width:58px;
      }
    }

    @media (max-width:640px){
      .v68-filled,
      .v68-outline,
      .v68-final-hoture{
        font-size:clamp(22px, 9vw, 42px);
      }

      .v68-state{
        gap:6px;
      }

      .v68-logo{
        width:52px;
      }
    }

/* V69 — polish del preloader:
     - H finale un po' più distante da HOTURE
     - parole più piccole
     - HOSPITALITY / ARCHITEC / STRUC non tagliate
  */

  .v68-inner{
    gap: 18px !important;
  }

  @keyframes v68LogoNear{
    to{
      transform: translateY(18px) scale(.95);
      opacity: 1;
    }
  }

  .v68-filled,
  .v68-outline,
  .v68-final-hoture{
    font-size: clamp(34px, 6.3vw, 92px) !important;
    line-height: .9 !important;
  }

  .v68-line{
    width: min(1720px, 98vw) !important;
    min-height: clamp(52px, 8vw, 108px) !important;
    overflow: visible !important;
  }

  .v68-state{
    gap: clamp(8px, 1vw, 14px) !important;
    overflow: visible !important;
  }

  .v68-outline{
    -webkit-text-stroke: 1.25px rgba(255,255,255,.80) !important;
    text-stroke: 1.25px rgba(255,255,255,.80) !important;
  }

  .v68-outline-wrap{
    overflow: hidden !important;
    vertical-align: baseline !important;
    white-space: nowrap !important;
  }

  .v68-outline-hospitality{ width: 12ch !important; }
  .v68-outline-arch{ width: 9ch !important; }
  .v68-outline-struc{ width: 6ch !important; }

  @keyframes v68TypeHospitality{
    to{ width: 12ch; }
  }

  @keyframes v68TypeArch{
    to{ width: 9ch; }
  }

  @keyframes v68TypeStruc{
    to{ width: 6ch; }
  }

  .v68-state-4{
    margin-top: 4px;
  }

  @media (max-width: 1180px){
    .v68-inner{
      gap: 16px !important;
    }

    .v68-logo{
      width: 54px !important;
    }

    .v68-filled,
    .v68-outline,
    .v68-final-hoture{
      font-size: clamp(26px, 8.8vw, 52px) !important;
    }

    .v68-outline{
      -webkit-text-stroke: 1px rgba(255,255,255,.80) !important;
      text-stroke: 1px rgba(255,255,255,.80) !important;
    }

    .v68-line{
      width: min(100%, 98vw) !important;
    }

    .v68-state{
      gap: 6px !important;
    }

    .v68-outline-hospitality{ width: 12.2ch !important; }
    .v68-outline-arch{ width: 9.2ch !important; }
    .v68-outline-struc{ width: 6.2ch !important; }

    @keyframes v68TypeHospitality{
      to{ width: 12.2ch; }
    }

    @keyframes v68TypeArch{
      to{ width: 9.2ch; }
    }

    @keyframes v68TypeStruc{
      to{ width: 6.2ch; }
    }
  }

  @media (max-width: 640px){
    .v68-logo{
      width: 48px !important;
    }

    .v68-filled,
    .v68-outline,
    .v68-final-hoture{
      font-size: clamp(20px, 8.5vw, 38px) !important;
    }

    .v68-state{
      gap: 5px !important;
    }

    .v68-line{
      min-height: 46px !important;
    }

    .v68-outline-hospitality{ width: 12.4ch !important; }
    .v68-outline-arch{ width: 9.4ch !important; }
    .v68-outline-struc{ width: 6.4ch !important; }

    @keyframes v68TypeHospitality{
      to{ width: 12.4ch; }
    }

    @keyframes v68TypeArch{
      to{ width: 9.4ch; }
    }

    @keyframes v68TypeStruc{
      to{ width: 6.4ch; }
    }
  }

/*
      V70 — definitivo:
      HO resta fisso.
      Le parole outline si compongono e si leggono intere.
      TURE resta fisso nelle fasi ARCHITEC/STRUC.
      Alla fine tutto si unisce in HOTURE unico.
    */

    .v60-preloader,
    .v61-preloader,
    .v62-preloader,
    .v63-preloader,
    .v64-preloader,
    .v65-preloader,
    .v66-preloader,
    .v67-preloader,
    .v68-preloader,
    #v60Preloader,
    #v61Preloader,
    #v62Preloader,
    #v63Preloader,
    #v64Preloader,
    #v65Preloader,
    #v66Preloader,
    #v67Preloader,
    #v68Preloader{
      display:none !important;
      opacity:0 !important;
      visibility:hidden !important;
      pointer-events:none !important;
    }

    .v70-preloader{
      position:fixed !important;
      inset:0 !important;
      z-index:2147483647 !important;
      width:100vw !important;
      height:100dvh !important;
      display:grid !important;
      place-items:center !important;
      overflow:hidden !important;
      background:#000 !important;
      pointer-events:none !important;
      opacity:1 !important;
      visibility:visible !important;
      animation:v70PreloaderOut .75s ease 9.70s forwards !important;
    }

    @keyframes v70PreloaderOut{
      to{
        opacity:0;
        visibility:hidden;
      }
    }

    .v70-bg{
      position:absolute;
      inset:0;
      background:
        radial-gradient(circle at 50% 44%, rgba(143,99,255,.18), transparent 36%),
        radial-gradient(circle at 14% 72%, rgba(200,176,255,.055), transparent 26%),
        #000;
    }

    .v70-bg::after{
      content:"";
      position:absolute;
      inset:0;
      opacity:.13;
      background:
        linear-gradient(90deg, rgba(255,255,255,.055) 1px, transparent 1px),
        linear-gradient(180deg, rgba(255,255,255,.038) 1px, transparent 1px);
      background-size:22vw 22vh;
      -webkit-mask-image:radial-gradient(circle at center, black, transparent 72%);
      mask-image:radial-gradient(circle at center, black, transparent 72%);
    }

    .v70-inner{
      position:relative;
      z-index:2;
      width:min(1500px, calc(100vw - 56px));
      min-height:100dvh;
      display:flex;
      flex-direction:column;
      align-items:center;
      justify-content:center;
      gap:26px;
    }

    .v70-logo{
      width:66px;
      height:auto;
      opacity:0;
      transform:translateY(8px) scale(.92);
      filter:brightness(10) grayscale(1) drop-shadow(0 24px 70px rgba(143,99,255,.30));
      animation:
        v70LogoIn .72s cubic-bezier(.19,1,.22,1) .10s forwards,
        v70LogoNear .62s cubic-bezier(.19,1,.22,1) 7.85s forwards;
    }

    @keyframes v70LogoIn{
      to{
        opacity:1;
        transform:translateY(0) scale(1);
      }
    }

    /* Logo vicino ma non appiccicato a HOTURE */
    @keyframes v70LogoNear{
      to{
        transform:translateY(18px) scale(.95);
        opacity:1;
      }
    }

    .v70-stage{
      width:100%;
      display:grid;
      place-items:center;
      overflow:visible;
      text-transform:uppercase;
      font-weight:900;
      letter-spacing:.012em;
      line-height:.9;
    }

    .v70-line{
      position:relative;
      width:min(1320px, 96vw);
      height:1.12em;
      min-height:clamp(54px, 8vw, 104px);
      display:grid;
      grid-template-columns:auto minmax(12.6ch, 12.6ch) auto;
      align-items:baseline;
      justify-content:center;
      column-gap:clamp(8px, .9vw, 15px);
      overflow:visible;
      white-space:nowrap;
    }

    .v70-ho,
    .v70-ture,
    .v70-word,
    .v70-hoture{
      font-size:clamp(34px, 6.2vw, 92px);
      line-height:.9;
      white-space:nowrap;
      vertical-align:baseline;
    }

    .v70-ho,
    .v70-ture,
    .v70-hoture{
      color:#fff;
      text-shadow:0 24px 90px rgba(143,99,255,.26);
    }

    .v70-word{
      color:transparent;
      -webkit-text-stroke:1.25px rgba(255,255,255,.82);
      text-stroke:1.25px rgba(255,255,255,.82);
      filter:drop-shadow(0 20px 70px rgba(143,99,255,.18));
    }

    /* HO fisso */
    .v70-ho{
      grid-column:1;
      opacity:0;
      transform:translateY(100%);
      animation:
        v70Rise .55s cubic-bezier(.19,1,.22,1) .82s forwards,
        v70PiecesOut .45s cubic-bezier(.77,0,.175,1) 7.55s forwards;
    }

    /* TURE fisso, visibile solo per ARCHITEC e STRUC */
    .v70-ture{
      grid-column:3;
      opacity:0;
      transform:translateY(10px);
      animation:
        v70TureIn .28s ease 3.92s forwards,
        v70TureOut .38s cubic-bezier(.77,0,.175,1) 7.55s forwards;
    }

    .v70-word-slot{
      grid-column:2;
      position:relative;
      display:block;
      width:12.6ch;
      height:1em;
      overflow:visible;
    }

    .v70-word{
      position:absolute;
      left:0;
      top:0;
      width:0;
      opacity:0;
      overflow:hidden;
      display:block;
      max-width:none;
    }

    @keyframes v70Rise{
      to{
        opacity:1;
        transform:translateY(0);
      }
    }

    @keyframes v70PiecesOut{
      to{
        opacity:0;
        transform:translateY(-14px);
        filter:blur(7px);
      }
    }

    @keyframes v70TureIn{
      to{
        opacity:1;
        transform:translateY(0);
      }
    }

    @keyframes v70TureOut{
      to{
        opacity:0;
        transform:translateY(-14px);
        filter:blur(7px);
      }
    }

    @keyframes v70WordOut{
      to{
        opacity:0;
        transform:translateY(-14px);
        filter:blur(7px);
      }
    }

    /* Typewriter: le parole si vedono intere quando completate */
    .v70-hospitality{
      animation:
        v70TypeHospitality 1.25s steps(11, end) 1.24s forwards,
        v70WordOut .38s cubic-bezier(.77,0,.175,1) 3.50s forwards;
    }

    .v70-architec{
      animation:
        v70TypeArchitec .86s steps(8, end) 3.92s forwards,
        v70WordOut .34s cubic-bezier(.77,0,.175,1) 5.72s forwards;
    }

    .v70-struc{
      animation:
        v70TypeStruc .54s steps(5, end) 6.02s forwards,
        v70WordOut .32s cubic-bezier(.77,0,.175,1) 7.18s forwards;
    }

    @keyframes v70TypeHospitality{
      0%{ opacity:1; width:0; }
      100%{ opacity:1; width:11.8ch; }
    }

    @keyframes v70TypeArchitec{
      0%{ opacity:1; width:0; }
      100%{ opacity:1; width:8.7ch; }
    }

    @keyframes v70TypeStruc{
      0%{ opacity:1; width:0; }
      100%{ opacity:1; width:5.7ch; }
    }

    /* Finale unico: HOTURE senza spazi */
    .v70-hoture{
      position:absolute;
      left:50%;
      top:50%;
      transform:translate(-50%, calc(-50% + 20px));
      opacity:0;
      letter-spacing:.012em;
      animation:v70HotureIn .55s cubic-bezier(.19,1,.22,1) 7.82s forwards;
    }

    @keyframes v70HotureIn{
      to{
        opacity:1;
        transform:translate(-50%, -50%);
      }
    }

    /* Seconda fase e comparsa sito */
    .site-header,
    .app{
      animation:v60SiteReveal .65s ease 15.55s forwards !important;
    }

    .v52-intro{
      animation:v52IntroLife 5.75s linear 9.78s forwards !important;
    }

    .v52-inner{
      animation:v52InnerOut .5s ease 14.20s forwards !important;
    }

    .v52-kicker{
      animation:v52SmallIn .42s ease 11.56s forwards !important;
    }

    .v52-title span:nth-child(1){
      animation:v52WordIn .48s cubic-bezier(.19,1,.22,1) 11.64s forwards !important;
    }

    .v52-title span:nth-child(2){
      animation:v52WordIn .48s cubic-bezier(.19,1,.22,1) 12.18s forwards !important;
    }

    .v52-title span:nth-child(3){
      animation:v52WordIn .48s cubic-bezier(.19,1,.22,1) 12.72s forwards !important;
    }

    .v52-footer{
      animation:v52SmallIn .42s ease 13.08s forwards !important;
    }

    .v52-cut{
      animation:v52Cut 1.05s cubic-bezier(.77,0,.175,1) 14.20s forwards !important;
      background:#050307 !important;
      box-shadow:0 0 80px rgba(143,99,255,.16) inset !important;
    }

    body.v60-ready .v70-preloader,
    body.v60-ready .v52-intro{
      display:none !important;
      visibility:hidden !important;
      opacity:0 !important;
      pointer-events:none !important;
    }

    @media (max-width:1180px){
      .v70-inner{
        width:min(100%, calc(100vw - 32px));
      }

      .v70-logo{
        width:54px;
      }

      .v70-line{
        width:100%;
        grid-template-columns:auto minmax(12.4ch, 12.4ch) auto;
        column-gap:6px;
        min-height:52px;
      }

      .v70-ho,
      .v70-ture,
      .v70-word,
      .v70-hoture{
        font-size:clamp(21px, 8.3vw, 48px);
      }

      .v70-word{
        -webkit-text-stroke:1px rgba(255,255,255,.82);
        text-stroke:1px rgba(255,255,255,.82);
      }

      .v70-word-slot{
        width:12.4ch;
      }
    }

    @media (max-width:640px){
      .v70-logo{
        width:48px;
      }

      .v70-line{
        grid-template-columns:auto minmax(12.2ch, 12.2ch) auto;
        column-gap:5px;
      }

      .v70-ho,
      .v70-ture,
      .v70-word,
      .v70-hoture{
        font-size:clamp(18px, 7.9vw, 36px);
      }

      .v70-word-slot{
        width:12.2ch;
      }
    }

/* V71
       - dopo HO compare solo SPITALITY
       - ARCHITEC + TURE tutti in linea
       - STRUC + TURE tutti in linea
       - finale logo + HOTURE meglio centrati e con più aria
    */

    .v60-preloader, .v61-preloader, .v62-preloader, .v63-preloader, .v64-preloader,
    .v65-preloader, .v66-preloader, .v67-preloader, .v68-preloader, .v70-preloader,
    #v60Preloader, #v61Preloader, #v62Preloader, #v63Preloader, #v64Preloader,
    #v65Preloader, #v66Preloader, #v67Preloader, #v68Preloader, #v70Preloader{
      display:none !important;
      opacity:0 !important;
      visibility:hidden !important;
      pointer-events:none !important;
    }

    .v71-preloader{
      position:fixed !important;
      inset:0 !important;
      z-index:2147483647 !important;
      width:100vw !important;
      height:100dvh !important;
      display:grid !important;
      place-items:center !important;
      overflow:hidden !important;
      background:#000 !important;
      pointer-events:none !important;
      opacity:1 !important;
      visibility:visible !important;
      animation:v71PreloaderOut .72s ease 9.65s forwards !important;
    }
    @keyframes v71PreloaderOut{
      to{ opacity:0; visibility:hidden; }
    }

    .v71-bg{
      position:absolute; inset:0;
      background:
        radial-gradient(circle at 50% 44%, rgba(143,99,255,.18), transparent 36%),
        radial-gradient(circle at 14% 72%, rgba(200,176,255,.055), transparent 26%),
        #000;
    }
    .v71-bg::after{
      content:"";
      position:absolute; inset:0;
      opacity:.13;
      background:
        linear-gradient(90deg, rgba(255,255,255,.055) 1px, transparent 1px),
        linear-gradient(180deg, rgba(255,255,255,.038) 1px, transparent 1px);
      background-size:22vw 22vh;
      -webkit-mask-image:radial-gradient(circle at center, black, transparent 72%);
      mask-image:radial-gradient(circle at center, black, transparent 72%);
    }

    .v71-inner{
      position:relative;
      z-index:2;
      width:min(1500px, calc(100vw - 56px));
      min-height:100dvh;
      display:flex;
      flex-direction:column;
      align-items:center;
      justify-content:center;
      gap:28px;
    }

    .v71-logo{
      width:66px;
      height:auto;
      opacity:0;
      transform:translateY(8px) scale(.92);
      filter:brightness(10) grayscale(1) drop-shadow(0 24px 70px rgba(143,99,255,.30));
      animation:
        v71LogoIn .72s cubic-bezier(.19,1,.22,1) .10s forwards,
        v71LogoNear .62s cubic-bezier(.19,1,.22,1) 7.95s forwards;
    }
    @keyframes v71LogoIn{
      to{ opacity:1; transform:translateY(0) scale(1); }
    }
    @keyframes v71LogoNear{
      to{ opacity:1; transform:translateY(14px) scale(.95); }
    }

    .v71-stage{
      position:relative;
      width:min(1500px, 96vw);
      min-height:clamp(70px, 10vw, 120px);
      display:grid;
      place-items:center;
      overflow:visible;
      text-transform:uppercase;
      font-weight:900;
      letter-spacing:.012em;
      line-height:.9;
    }

    .v71-state{
      position:absolute;
      inset:0;
      display:flex;
      align-items:baseline;
      justify-content:center;
      gap:clamp(8px, .9vw, 14px);
      white-space:nowrap;
      overflow:visible;
      opacity:0;
      filter:blur(6px);
    }

    .v71-filled,
    .v71-outline,
    .v71-final-hoture{
      font-size:clamp(34px, 6.2vw, 92px);
      line-height:.9;
      display:inline-block;
      white-space:nowrap;
      vertical-align:baseline;
    }

    .v71-filled,
    .v71-final-hoture{
      color:#fff;
      text-shadow:0 24px 90px rgba(143,99,255,.26);
    }

    .v71-outline{
      color:transparent;
      -webkit-text-stroke:1.25px rgba(255,255,255,.82);
      text-stroke:1.25px rgba(255,255,255,.82);
      filter:drop-shadow(0 20px 70px rgba(143,99,255,.18));
    }

    .v71-outline-wrap{
      width:0;
      overflow:hidden;
      display:inline-block;
      white-space:nowrap;
      vertical-align:baseline;
      line-height:.9;
    }

    .v71-outline-spitality{ width:10ch; }
    .v71-outline-architec{ width:8ch; }
    .v71-outline-struc{ width:5ch; }

    @keyframes v71StateIn{
      to{ opacity:1; filter:blur(0); }
    }
    @keyframes v71StateOut{
      to{ opacity:0; filter:blur(8px); }
    }

    @keyframes v71TypeSpitality{
      0%{ width:0; }
      100%{ width:10ch; }
    }
    @keyframes v71TypeArchitec{
      0%{ width:0; }
      100%{ width:8ch; }
    }
    @keyframes v71TypeStruc{
      0%{ width:0; }
      100%{ width:5ch; }
    }

    .v71-state-1{
      animation:
        v71StateIn .22s ease 1.18s forwards,
        v71StateOut .38s cubic-bezier(.77,0,.175,1) 3.45s forwards;
    }
    .v71-state-1 .v71-outline-wrap{
      animation:v71TypeSpitality 1.10s steps(10, end) 1.28s forwards;
    }

    .v71-state-2{
      animation:
        v71StateIn .20s ease 3.85s forwards,
        v71StateOut .34s cubic-bezier(.77,0,.175,1) 5.72s forwards;
    }
    .v71-state-2 .v71-outline-wrap{
      animation:v71TypeArchitec .80s steps(8, end) 3.96s forwards;
    }

    .v71-state-3{
      animation:
        v71StateIn .18s ease 5.98s forwards,
        v71StateOut .32s cubic-bezier(.77,0,.175,1) 7.22s forwards;
    }
    .v71-state-3 .v71-outline-wrap{
      animation:v71TypeStruc .54s steps(5, end) 6.08s forwards;
    }

    .v71-state-4{
      animation:v71StateIn .48s cubic-bezier(.19,1,.22,1) 7.88s forwards;
    }

    .v71-final-hoture{
      letter-spacing:.012em;
      transform:translateY(6px);
    }

    /* Seconda fase e comparsa sito */
    .site-header,
    .app{
      animation:v60SiteReveal .65s ease 15.45s forwards !important;
    }
    .v52-intro{
      animation:v52IntroLife 5.75s linear 9.72s forwards !important;
    }
    .v52-inner{
      animation:v52InnerOut .5s ease 14.14s forwards !important;
    }
    .v52-kicker{
      animation:v52SmallIn .42s ease 11.50s forwards !important;
    }
    .v52-title span:nth-child(1){
      animation:v52WordIn .48s cubic-bezier(.19,1,.22,1) 11.58s forwards !important;
    }
    .v52-title span:nth-child(2){
      animation:v52WordIn .48s cubic-bezier(.19,1,.22,1) 12.12s forwards !important;
    }
    .v52-title span:nth-child(3){
      animation:v52WordIn .48s cubic-bezier(.19,1,.22,1) 12.66s forwards !important;
    }
    .v52-footer{
      animation:v52SmallIn .42s ease 13.02s forwards !important;
    }
    .v52-cut{
      animation:v52Cut 1.05s cubic-bezier(.77,0,.175,1) 14.14s forwards !important;
      background:#050307 !important;
      box-shadow:0 0 80px rgba(143,99,255,.16) inset !important;
    }

    body.v60-ready .v71-preloader,
    body.v60-ready .v52-intro{
      display:none !important;
      visibility:hidden !important;
      opacity:0 !important;
      pointer-events:none !important;
    }

    @media (max-width:1180px){
      .v71-inner{ width:min(100%, calc(100vw - 32px)); gap:24px; }
      .v71-logo{ width:54px; }
      .v71-stage{ width:100%; min-height:58px; }
      .v71-filled, .v71-outline, .v71-final-hoture{
        font-size:clamp(21px, 8.2vw, 48px);
      }
      .v71-outline{
        -webkit-text-stroke:1px rgba(255,255,255,.82);
        text-stroke:1px rgba(255,255,255,.82);
      }
      .v71-state{ gap:6px; }
      .v71-outline-spitality{ width:10.2ch; }
      .v71-outline-architec{ width:8.2ch; }
      .v71-outline-struc{ width:5.2ch; }
      @keyframes v71TypeSpitality{ 0%{ width:0; } 100%{ width:10.2ch; } }
      @keyframes v71TypeArchitec{ 0%{ width:0; } 100%{ width:8.2ch; } }
      @keyframes v71TypeStruc{ 0%{ width:0; } 100%{ width:5.2ch; } }
    }

    @media (max-width:640px){
      .v71-logo{ width:48px; }
      .v71-filled, .v71-outline, .v71-final-hoture{
        font-size:clamp(18px, 7.7vw, 36px);
      }
      .v71-state{ gap:5px; }
    }

/* V72
     Fix finale:
     - SPITALITY / ARCHITEC / STRUC devono vedersi completi
     - niente più taglio delle parole
     - reveal tipo macchina da scrivere ma con parola leggibile tutta
  */

  .v71-stage{
    width:min(1700px, 98vw) !important;
  }

  .v71-state{
    width:min(1700px, 98vw) !important;
    gap:clamp(10px, 1vw, 18px) !important;
    overflow:visible !important;
  }

  .v71-outline-wrap{
    width:auto !important;
    max-width:none !important;
    overflow:visible !important;
    display:inline-flex !important;
    align-items:baseline !important;
    white-space:nowrap !important;
    vertical-align:baseline !important;
    flex:0 0 auto !important;
  }

  .v71-outline{
    width:auto !important;
    max-width:none !important;
    display:inline-block !important;
    white-space:nowrap !important;
    opacity:0;
    clip-path:inset(0 100% 0 0);
  }

  .v71-outline-spitality,
  .v71-outline-architec,
  .v71-outline-struc{
    width:auto !important;
  }

  @keyframes v72Reveal10{
    0%{
      opacity:1;
      clip-path:inset(0 100% 0 0);
    }
    100%{
      opacity:1;
      clip-path:inset(0 0 0 0);
    }
  }

  @keyframes v72Reveal8{
    0%{
      opacity:1;
      clip-path:inset(0 100% 0 0);
    }
    100%{
      opacity:1;
      clip-path:inset(0 0 0 0);
    }
  }

  @keyframes v72Reveal5{
    0%{
      opacity:1;
      clip-path:inset(0 100% 0 0);
    }
    100%{
      opacity:1;
      clip-path:inset(0 0 0 0);
    }
  }

  .v71-state-1 .v71-outline{
    animation:v72Reveal10 1.10s steps(10, end) 1.28s forwards !important;
  }

  .v71-state-2 .v71-outline{
    animation:v72Reveal8 .80s steps(8, end) 3.96s forwards !important;
  }

  .v71-state-3 .v71-outline{
    animation:v72Reveal5 .54s steps(5, end) 6.08s forwards !important;
  }

  @media (max-width:1180px){
    .v71-stage,
    .v71-state{
      width:min(100%, 98vw) !important;
    }

    .v71-state{
      gap:7px !important;
    }
  }

  @media (max-width:640px){
    .v71-state{
      gap:5px !important;
    }
  }

/*
    V73:
    - stessa animazione V72
    - meno attesa dopo HOTURE
    - seconda fase più rapida
    - ingresso nel sito anticipato
  */

  /* Il preloader resta giusto il tempo di leggere HOTURE, poi sparisce prima */
  .v71-preloader{
    animation:v71PreloaderOut .55s ease 8.45s forwards !important;
  }

  /* La seconda fase DIGITAL parte quasi subito dopo HOTURE */
  .v52-intro{
    animation:v52IntroLife 4.15s linear 8.52s forwards !important;
  }

  .v52-kicker{
    animation:v52SmallIn .32s ease 9.12s forwards !important;
  }

  .v52-title span:nth-child(1){
    animation:v52WordIn .36s cubic-bezier(.19,1,.22,1) 9.18s forwards !important;
  }

  .v52-title span:nth-child(2){
    animation:v52WordIn .36s cubic-bezier(.19,1,.22,1) 9.56s forwards !important;
  }

  .v52-title span:nth-child(3){
    animation:v52WordIn .36s cubic-bezier(.19,1,.22,1) 9.94s forwards !important;
  }

  .v52-footer{
    animation:v52SmallIn .32s ease 10.22s forwards !important;
  }

  /* Taglio ghigliottina anticipato */
  .v52-inner{
    animation:v52InnerOut .34s ease 11.24s forwards !important;
  }

  .v52-cut{
    animation:v52Cut .82s cubic-bezier(.77,0,.175,1) 11.24s forwards !important;
    background:#050307 !important;
    box-shadow:0 0 80px rgba(143,99,255,.16) inset !important;
  }

  /* Il sito entra subito dopo il taglio */
  .site-header,
  .app{
    animation:v60SiteReveal .42s ease 12.08s forwards !important;
  }

/* V74
     - logo preloader leggermente più grande
     - appena finisce l'animazione va subito al sito
     - zero tempo morto finale
  */

  /* logo preloader più grande */
  .v71-logo{
    width: 78px !important;
  }

  @media (max-width:1180px){
    .v71-logo{
      width: 64px !important;
    }
  }

  @media (max-width:640px){
    .v71-logo{
      width: 56px !important;
    }
  }

  /* il preloader si chiude prima */
  .v71-preloader{
    animation:v71PreloaderOut .42s ease 8.18s forwards !important;
  }

  /* la seconda fase parte subito e dura meno */
  .v52-intro{
    animation:v52IntroLife 2.55s linear 8.22s forwards !important;
  }

  .v52-kicker{
    animation:v52SmallIn .22s ease 8.42s forwards !important;
  }

  .v52-title span:nth-child(1){
    animation:v52WordIn .24s cubic-bezier(.19,1,.22,1) 8.48s forwards !important;
  }

  .v52-title span:nth-child(2){
    animation:v52WordIn .24s cubic-bezier(.19,1,.22,1) 8.76s forwards !important;
  }

  .v52-title span:nth-child(3){
    animation:v52WordIn .24s cubic-bezier(.19,1,.22,1) 9.04s forwards !important;
  }

  .v52-footer{
    animation:v52SmallIn .22s ease 9.24s forwards !important;
  }

  /* taglio anticipato */
  .v52-inner{
    animation:v52InnerOut .24s ease 10.02s forwards !important;
  }

  .v52-cut{
    animation:v52Cut .56s cubic-bezier(.77,0,.175,1) 10.02s forwards !important;
    background:#050307 !important;
    box-shadow:0 0 80px rgba(143,99,255,.16) inset !important;
  }

  /* il sito compare subito */
  .site-header,
  .app{
    animation:v60SiteReveal .26s ease 10.58s forwards !important;
  }

/*
    V76:
    - fix Safari/iPhone: parole del preloader non tagliate
    - SPITALITY / ARCHITEC / STRUC leggibili per intero
    - dimensioni più sicure da mobile
    - ingresso al sito ancora rapido
  */

  .v71-stage,
  .v71-state{
    width:min(1720px, 98vw) !important;
    overflow:visible !important;
  }

  .v71-outline-wrap{
    width:auto !important;
    max-width:none !important;
    overflow:visible !important;
    display:inline-flex !important;
    align-items:baseline !important;
    white-space:nowrap !important;
    vertical-align:baseline !important;
    flex:0 0 auto !important;
  }

  .v71-outline{
    width:auto !important;
    max-width:none !important;
    display:inline-block !important;
    white-space:nowrap !important;
    opacity:0;
    clip-path:inset(0 100% 0 0);
  }

  @keyframes v76RevealWord{
    0%{
      opacity:1;
      clip-path:inset(0 100% 0 0);
    }
    100%{
      opacity:1;
      clip-path:inset(0 0 0 0);
    }
  }

  .v71-state-1 .v71-outline{
    animation:v76RevealWord 1.10s steps(10, end) 1.28s forwards !important;
  }

  .v71-state-2 .v71-outline{
    animation:v76RevealWord .80s steps(8, end) 3.96s forwards !important;
  }

  .v71-state-3 .v71-outline{
    animation:v76RevealWord .54s steps(5, end) 6.08s forwards !important;
  }

  @media (max-width:1180px){
    .v71-inner{
      width:min(100%, calc(100vw - 28px)) !important;
      gap:22px !important;
    }

    .v71-stage,
    .v71-state{
      width:100% !important;
      overflow:visible !important;
    }

    .v71-state{
      gap:5px !important;
      transform:translateZ(0);
    }

    .v71-filled,
    .v71-outline,
    .v71-final-hoture{
      font-size:clamp(18px, 7.2vw, 42px) !important;
      line-height:.92 !important;
      letter-spacing:.005em !important;
    }

    .v71-outline{
      -webkit-text-stroke:1px rgba(255,255,255,.82) !important;
      text-stroke:1px rgba(255,255,255,.82) !important;
    }
  }

  @media (max-width:430px){
    .v71-inner{
      width:min(100%, calc(100vw - 22px)) !important;
      gap:20px !important;
    }

    .v71-logo{
      width:54px !important;
    }

    .v71-filled,
    .v71-outline,
    .v71-final-hoture{
      font-size:clamp(16px, 6.6vw, 32px) !important;
    }

    .v71-state{
      gap:4px !important;
    }
  }

.v76-contact-strip{
    width:min(1180px, calc(100% - 40px));
    margin:34px auto 0;
    padding:18px 0;
    display:flex;
    align-items:center;
    justify-content:center;
    flex-wrap:wrap;
    gap:14px 22px;
    border-top:1px solid rgba(255,255,255,.10);
    border-bottom:1px solid rgba(255,255,255,.08);
  }

  .v76-contact-strip a{
    color:rgba(246,241,234,.78);
    text-decoration:none;
    font-size:11px;
    font-weight:900;
    letter-spacing:.12em;
    text-transform:uppercase;
    transition:color .25s ease, opacity .25s ease;
  }

  .v76-contact-strip a:hover{
    color:#fff;
  }

  @media(max-width:700px){
    .v76-contact-strip{
      width:min(100%, calc(100% - 28px));
      justify-content:flex-start;
      gap:12px;
    }

    .v76-contact-strip a{
      font-size:10px;
      letter-spacing:.10em;
    }
  }

/*
    V77 — fix definitivo Safari/iPhone:
    - tolto il vecchio typewriter basato sulla width del contenitore
    - reveal fatto sulla parola stessa con clip-path
    - font mobile più piccolo per far entrare HO + SPITALITY / ARCHITEC + TURE / STRUC + TURE
    - niente tagli a destra
  */

  .v71-state-1 .v71-outline-wrap,
  .v71-state-2 .v71-outline-wrap,
  .v71-state-3 .v71-outline-wrap{
    animation:none !important;
    width:auto !important;
    max-width:none !important;
    min-width:max-content !important;
    overflow:visible !important;
    display:inline-flex !important;
    align-items:baseline !important;
    flex:0 0 auto !important;
  }

  .v71-outline{
    width:auto !important;
    max-width:none !important;
    min-width:max-content !important;
    overflow:visible !important;
    white-space:nowrap !important;
    opacity:0;
    -webkit-clip-path:inset(0 100% 0 0);
    clip-path:inset(0 100% 0 0);
  }

  @keyframes v77RevealWord{
    0%{
      opacity:1;
      -webkit-clip-path:inset(0 100% 0 0);
      clip-path:inset(0 100% 0 0);
    }
    100%{
      opacity:1;
      -webkit-clip-path:inset(0 0 0 0);
      clip-path:inset(0 0 0 0);
    }
  }

  .v71-state-1 .v71-outline{
    animation:v77RevealWord 1.10s steps(9, end) 1.28s forwards !important;
  }

  .v71-state-2 .v71-outline{
    animation:v77RevealWord .80s steps(8, end) 3.96s forwards !important;
  }

  .v71-state-3 .v71-outline{
    animation:v77RevealWord .54s steps(5, end) 6.08s forwards !important;
  }

  @media (max-width:760px){
    .v71-inner{
      width:100vw !important;
      padding-left:12px !important;
      padding-right:12px !important;
      box-sizing:border-box !important;
      gap:22px !important;
    }

    .v71-stage{
      width:100% !important;
      max-width:100% !important;
      min-height:58px !important;
      overflow:visible !important;
      display:grid !important;
      place-items:center !important;
    }

    .v71-state{
      width:100% !important;
      max-width:100% !important;
      left:0 !important;
      right:0 !important;
      display:flex !important;
      justify-content:center !important;
      align-items:baseline !important;
      gap:5px !important;
      overflow:visible !important;
      transform:translateZ(0) !important;
    }

    .v71-filled,
    .v71-outline,
    .v71-final-hoture{
      font-size:clamp(17px, 6.25vw, 30px) !important;
      line-height:.92 !important;
      letter-spacing:.002em !important;
      white-space:nowrap !important;
    }

    .v71-outline{
      -webkit-text-stroke:.9px rgba(255,255,255,.82) !important;
      text-stroke:.9px rgba(255,255,255,.82) !important;
    }

    .v71-logo{
      width:54px !important;
    }
  }

  @media (max-width:390px){
    .v71-filled,
    .v71-outline,
    .v71-final-hoture{
      font-size:clamp(15px, 5.75vw, 25px) !important;
    }

    .v71-state{
      gap:4px !important;
    }

    .v71-logo{
      width:50px !important;
    }
  }

/*
    V75:
    - Logo preloader leggermente più grande
    - Finita la parola HOTURE, entra subito il sito reale
    - Tolta la seconda intro lunga DIGITAL/WEB AGENCY come blocco obbligatorio
    - Form pronto per send-mail.php
  */

  .v71-logo{
    width:86px !important;
  }

  @media (max-width:1180px){
    .v71-logo{ width:68px !important; }
  }

  @media (max-width:640px){
    .v71-logo{ width:58px !important; }
  }

  /* Preloader più rapido in uscita dopo HOTURE */
  .v71-preloader{
    animation:v71PreloaderOut .45s ease 8.28s forwards !important;
  }

  /*
    La vecchia schermata DIGITAL / WEB AGENCY / X HOSPITALITY non deve più tenere fermo l’utente.
    Il sito reale entra subito dopo il preloader.
  */
  .v52-intro{
    display:none !important;
    opacity:0 !important;
    visibility:hidden !important;
    pointer-events:none !important;
    animation:none !important;
  }

  .site-header,
  .app{
    animation:v60SiteReveal .35s ease 8.50s forwards !important;
  }

  body.v60-ready .site-header,
  body.v60-ready .app{
    opacity:1 !important;
    visibility:visible !important;
    pointer-events:auto !important;
    animation:none !important;
  }

  body.v60-ready .v71-preloader,
  body.v60-ready .v52-intro{
    display:none !important;
    opacity:0 !important;
    visibility:hidden !important;
    pointer-events:none !important;
  }

  .hoture-form-response{
    grid-column:1 / -1;
    margin-top:14px;
    min-height:22px;
    font-size:13px;
    line-height:1.45;
    color:rgba(246,241,234,.72);
  }

  .hoture-form-response.is-ok{
    color:#d7ffc7;
  }

  .hoture-form-response.is-error{
    color:#ffb5b5;
  }

  .hoture-form.is-sending .submit-btn{
    opacity:.65;
    pointer-events:none;
  }

html {
    scroll-behavior: smooth;
  }

  #contact-form {
    scroll-margin-top: 130px;
  }

/* Honeypot antispam */
.hoture-hp-field{display:none!important;}

/* =========================================================
   HOTURE — CONTATTI DIRETTI + WHATSAPP FLOAT
   Numero: +39 352 073 2524
   Il pulsante WhatsApp è a sinistra; il widget Analisi resta a destra.
   Z-index volutamente inferiore al menu e ai popup del sito.
   ========================================================= */

.hoture-direct-contacts{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:12px;
  margin-top:30px;
  max-width:680px;
}

.hoture-direct-contact{
  min-height:92px;
  display:flex;
  align-items:center;
  gap:14px;
  padding:18px 20px;
  border:1px solid rgba(255,255,255,.12);
  background:rgba(255,255,255,.035);
  color:#fff;
  transition:transform .3s var(--ease), border-color .3s ease, background .3s ease;
}

.hoture-direct-contact:hover{
  transform:translateY(-3px);
  border-color:rgba(200,176,255,.42);
  background:rgba(143,99,255,.10);
}

.hoture-direct-contact--phone{
  flex-direction:column;
  align-items:flex-start;
  justify-content:center;
  gap:0;
}

.hoture-direct-contact--whatsapp{
  border-color:rgba(37,211,102,.32);
  background:rgba(37,211,102,.08);
}

.hoture-direct-contact--whatsapp:hover{
  border-color:rgba(37,211,102,.68);
  background:rgba(37,211,102,.14);
}

.hoture-direct-contact__label{
  display:block;
  margin-bottom:5px;
  color:rgba(246,241,234,.58);
  font-size:10px;
  font-weight:800;
  letter-spacing:.13em;
  text-transform:uppercase;
}

.hoture-direct-contact strong{
  display:block;
  color:#fff;
  font-size:clamp(15px,1.25vw,19px);
  line-height:1.2;
  letter-spacing:.015em;
  white-space:nowrap;
}

.hoture-direct-contact__icon{
  width:38px;
  height:38px;
  flex:0 0 38px;
  display:grid;
  place-items:center;
  border-radius:50%;
  background:#25d366;
  color:#fff;
  box-shadow:0 10px 28px rgba(37,211,102,.22);
}

.hoture-direct-contact__icon svg{
  width:22px;
  height:22px;
}

.hoture-whatsapp-float{
  position:fixed;
  left:24px;
  bottom:24px;
  z-index:480;
  display:inline-flex;
  align-items:center;
  gap:11px;
  min-height:54px;
  padding:8px 18px 8px 8px;
  border:1px solid rgba(255,255,255,.20);
  border-radius:999px;
  background:#25d366;
  color:#fff !important;
  box-shadow:0 18px 48px rgba(0,0,0,.35), 0 8px 28px rgba(37,211,102,.25);
  font-family:'Poppins',system-ui,-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
  font-size:10px;
  font-weight:900;
  letter-spacing:.12em;
  text-transform:uppercase;
  line-height:1;
  isolation:isolate;
  transition:transform .3s var(--ease), box-shadow .3s ease, opacity .25s ease;
}

.hoture-whatsapp-float:hover{
  transform:translateY(-4px);
  box-shadow:0 24px 58px rgba(0,0,0,.42), 0 10px 34px rgba(37,211,102,.34);
}

.hoture-whatsapp-float__icon{
  width:38px;
  height:38px;
  flex:0 0 38px;
  display:grid;
  place-items:center;
  border-radius:50%;
  background:rgba(0,0,0,.12);
}

.hoture-whatsapp-float__icon svg{
  width:24px;
  height:24px;
}

/* Il menu/popup del sito resta sempre sopra e la chat non interferisce. */
body.no-scroll .hoture-whatsapp-float{
  opacity:0;
  visibility:hidden;
  pointer-events:none;
}

@media (max-width:760px){
  .hoture-direct-contacts{
    grid-template-columns:1fr;
    margin-top:24px;
  }

  .hoture-direct-contact{
    min-height:78px;
    padding:15px 16px;
  }

  .hoture-whatsapp-float{
    left:14px;
    bottom:14px;
    width:52px;
    height:52px;
    min-height:52px;
    padding:0;
    justify-content:center;
  }

  .hoture-whatsapp-float__icon{
    width:40px;
    height:40px;
    background:transparent;
  }

  .hoture-whatsapp-float__text{
    position:absolute;
    width:1px;
    height:1px;
    padding:0;
    margin:-1px;
    overflow:hidden;
    clip:rect(0,0,0,0);
    white-space:nowrap;
    border:0;
  }
}

@media (max-width:390px){
  .hoture-direct-contact strong{
    font-size:14px;
  }
}


/*
    V78 — fix iPhone/Safari preloader:
    - l'ultima lettera delle parole outline (SPITALITY / ARCHITEC / STRUC)
      non deve mai risultare tagliata a fine animazione
    - piccolo respiro a destra del box per lo stroke dell'ultima lettera
    - a reveal concluso, il clip viene rimosso del tutto con margine negativo
*/

.v71-outline{
  padding-right:.10em !important;
  margin-right:-.10em !important;
}

@keyframes v78ForceFullWord{
  0%, 100%{
    opacity:1;
    -webkit-clip-path:inset(-12% -14% -12% -6%);
    clip-path:inset(-12% -14% -12% -6%);
  }
}

.v71-state-1 .v71-outline{
  animation:
    v77RevealWord 1.10s steps(9, end) 1.28s forwards,
    v78ForceFullWord .02s linear 2.40s forwards !important;
}

.v71-state-2 .v71-outline{
  animation:
    v77RevealWord .80s steps(8, end) 3.96s forwards,
    v78ForceFullWord .02s linear 4.78s forwards !important;
}

.v71-state-3 .v71-outline{
  animation:
    v77RevealWord .54s steps(5, end) 6.08s forwards,
    v78ForceFullWord .02s linear 6.64s forwards !important;
}
