/* ======= DAVIL — Life Leadership & Coaching =======
   Dark cinematic theme · exoape-inspired · GTA-VI motion
   ================================================== */
:root{
  --bg:#09090b;
  --bg-2:#0e0e11;
  --bg-3:#141418;
  --bg-card:#111115;
  --ink:#f2efe9;           /* warm off-white */
  --ink-soft:#b5b1a8;
  --ink-dim:#6b6862;
  --white:#ffffff;
  --brand:#6d8af7;         /* blu DAVIL rivisto per dark */
  --brand-2:#9db0ff;
  --brand-deep:#4060d4;
  --violet:#b08bff;
  --gold:#d4a864;
  --gold-soft:#e8c77a;
  --red:#e06377;
  --accent:#3a3f58;
  --border:rgba(242,239,233,0.09);
  --border-soft:rgba(242,239,233,0.04);
  --border-hover:rgba(242,239,233,0.18);
  --shadow-sm:0 2px 12px rgba(0,0,0,.4);
  --shadow-md:0 24px 60px rgba(0,0,0,.5);
  --shadow-lg:0 40px 100px rgba(0,0,0,.6);
  --radius:20px;
  --ease:cubic-bezier(.77,0,.18,1);
  --ease-smooth:cubic-bezier(.25,.1,.25,1);
  --ff-display:'Fraunces',serif;
  --ff-sans:'Space Grotesk',sans-serif;
  --max:1440px;
  --pad:clamp(20px, 4vw, 56px);
}

*,*::before,*::after{box-sizing:border-box}
html,body{margin:0;padding:0;background:var(--bg);color:var(--ink);-webkit-font-smoothing:antialiased}
html{scroll-behavior:auto}
body{
  font-family:var(--ff-sans);
  font-weight:400;
  font-size:clamp(15px,1vw + .4rem,17px);
  line-height:1.65;
  overflow-x:hidden;
  cursor:none;
}
img,svg{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit;background:none;border:0;padding:0;cursor:none}
em{font-style:italic;font-family:var(--ff-display);font-weight:400;color:var(--gold)}
strong{font-weight:600;color:var(--ink)}

/* ---------- Loader ---------- */
#loader{
  position:fixed;inset:0;z-index:9999;background:var(--bg);
  display:flex;align-items:center;justify-content:center;
  transition:opacity .7s var(--ease), visibility .7s var(--ease);
}
#loader.hidden{opacity:0;visibility:hidden}
.loader-inner{display:flex;flex-direction:column;align-items:center;gap:24px}
.loader-mark{width:clamp(160px,22vw,260px);height:auto;animation:loaderIn .9s var(--ease) both;filter:brightness(0) invert(1)}
@keyframes loaderIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
.loader-bar{width:180px;height:1px;background:rgba(242,239,233,.10);overflow:hidden}
.loader-bar span{display:block;height:100%;width:0;background:var(--ink);animation:loaderBar 1.4s var(--ease) forwards}
@keyframes loaderBar{to{width:100%}}

/* ---------- Cursor ---------- */
.cursor-dot,.cursor-ring{position:fixed;top:0;left:0;pointer-events:none;z-index:9998}
.cursor-dot{width:5px;height:5px;background:var(--ink);border-radius:50%;transform:translate(-50%,-50%)}
.cursor-ring{width:32px;height:32px;border:1px solid rgba(242,239,233,.35);border-radius:50%;transform:translate(-50%,-50%);transition:transform .15s var(--ease), width .25s var(--ease), height .25s var(--ease),border-color .2s,background .25s}
.cursor-ring.is-hover{width:60px;height:60px;border-color:var(--ink);background:rgba(242,239,233,.04);mix-blend-mode:difference}
@media (hover:none){body{cursor:auto} .cursor-dot,.cursor-ring{display:none} a,button{cursor:pointer}}

/* ---------- WhatsApp FAB ---------- */
.wa-fab{
  position:fixed;right:24px;bottom:24px;z-index:95;
  display:inline-flex;align-items:center;gap:10px;
  padding:14px 20px 14px 16px;border-radius:999px;
  background:#25D366;color:#fff;font-weight:600;font-size:13px;letter-spacing:.04em;
  box-shadow:0 12px 32px rgba(37,211,102,.35),0 2px 10px rgba(0,0,0,.4);
  transition:transform .35s var(--ease),box-shadow .35s var(--ease),background .3s;
  cursor:none;
}
.wa-fab:hover{transform:translateY(-3px) scale(1.03);background:#1da851}
.wa-fab::before{content:"";position:absolute;inset:-6px;border-radius:999px;border:2px solid rgba(37,211,102,.45);animation:waPulse 2.4s var(--ease) infinite;z-index:-1}
@keyframes waPulse{0%{transform:scale(1);opacity:.9}70%{transform:scale(1.35);opacity:0}100%{opacity:0}}
.wa-fab svg{flex-shrink:0}
@media (max-width:640px){.wa-fab{right:16px;bottom:16px;padding:14px} .wa-label{display:none}}

/* ---------- Hero trust strip ---------- */
.hero-trust{margin-top:36px;opacity:.95}
.hero-trust a{display:inline-flex;align-items:center;gap:12px;padding:10px 18px;border:1px solid var(--border);border-radius:999px;background:rgba(255,255,255,.03);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);transition:all .3s}
.hero-trust a:hover{background:rgba(255,255,255,.06);border-color:var(--border-hover)}
.tp-stars{color:#00b67a;letter-spacing:2px;font-size:14px}
.tp-text{font-size:12.5px;color:var(--ink-soft);letter-spacing:.03em}
.tp-text strong{color:var(--ink);font-weight:600}

/* ---------- Nav ---------- */
.nav{
  position:fixed;top:0;left:0;right:0;z-index:100;
  display:flex;align-items:center;justify-content:space-between;
  padding:22px var(--pad);
  transition:background .35s var(--ease),backdrop-filter .35s var(--ease),padding .35s var(--ease),border-color .35s var(--ease);
  border-bottom:1px solid transparent;
}
.nav.is-scrolled{background:rgba(9,9,11,.72);backdrop-filter:saturate(160%) blur(18px);-webkit-backdrop-filter:saturate(160%) blur(18px);padding:14px var(--pad);border-bottom-color:var(--border)}
.nav-logo{display:flex;align-items:center}
.nav-logo img{height:40px;width:auto;transition:opacity .3s var(--ease)}
.nav-menu{
  display:flex;gap:8px;align-items:center;font-size:13px;letter-spacing:.04em;
  /* Pillola blu trasparente · sfondo per leggibilità sopra immagini chiare */
  padding:8px 14px;border-radius:999px;
  background:linear-gradient(135deg, rgba(45,45,224,.32), rgba(124,58,237,.22));
  backdrop-filter:blur(14px) saturate(160%);
  -webkit-backdrop-filter:blur(14px) saturate(160%);
  border:1px solid rgba(180,150,240,.30);
  box-shadow:0 12px 30px rgba(0,0,0,.30), 0 0 0 1px rgba(255,255,255,.04) inset;
}
.nav-menu a{
  position:relative;padding:9px 14px;border-radius:999px;
  color:#f2efe9;transition:color .25s,background .25s;font-weight:500;
  text-shadow:0 1px 6px rgba(0,0,0,.45);
}
.nav-menu a:hover{color:var(--gold);background:rgba(255,255,255,.06)}
.nav-menu a::after{display:none} /* pillola gestisce hover */
.nav-menu .cta{
  background:linear-gradient(135deg, var(--gold,#f4c95d), #d8a73d);
  color:#1a0d28!important;border:0;padding:10px 18px;border-radius:999px;
  font-weight:600;letter-spacing:.06em;text-shadow:none;
  transition:transform .25s, box-shadow .25s;
}
.nav-menu .cta:hover{transform:translateY(-1px);box-shadow:0 14px 34px rgba(244,201,93,.45);background:linear-gradient(135deg, #ffd970, var(--gold))}
.nav-toggle{display:none;width:40px;height:40px;flex-direction:column;justify-content:center;gap:6px;align-items:center}
.nav-toggle span{display:block;width:22px;height:1.5px;background:var(--ink);transition:transform .3s var(--ease),opacity .3s}

@media (max-width:820px){
  /* Mobile · fullscreen menu rettangolare a tutto schermo */
  .nav-menu{
    position:fixed!important;
    top:0!important;left:0!important;right:0!important;bottom:0!important;
    width:100vw!important;height:100vh!important;height:100dvh!important;
    max-width:none!important;
    z-index:999!important;
    background:linear-gradient(135deg, rgba(14,6,40,.98), rgba(20,14,50,.98))!important;
    backdrop-filter:blur(24px) saturate(160%)!important;
    -webkit-backdrop-filter:blur(24px) saturate(160%)!important;
    border:0!important;border-radius:0!important;
    box-shadow:none!important;
    padding:90px 22px 40px!important;
    display:flex!important;flex-direction:column!important;
    justify-content:flex-start!important;align-items:stretch!important;
    gap:6px!important;font-size:18px;
    opacity:0;pointer-events:none;transition:opacity .35s;
    overflow-y:auto;-webkit-overflow-scrolling:touch;
    box-sizing:border-box;
  }
  .nav-menu.open{opacity:1;pointer-events:auto}
  .nav-menu a{
    padding:18px 22px!important;border-radius:14px!important;
    text-align:left;font-size:18px;font-weight:500;
    color:#ece6fb!important;
    background:rgba(180,150,240,.06);
    border:1px solid rgba(180,150,240,.14);
    text-shadow:none!important;
    transition:background .25s, color .25s, border-color .25s, transform .25s;
  }
  .nav-menu a:hover, .nav-menu a:active{
    background:rgba(124,58,237,.18);
    border-color:rgba(244,201,93,.40);
    color:var(--gold,#f4c95d)!important;
    transform:none;
  }
  .nav-menu .cta{
    margin-top:12px;
    background:linear-gradient(135deg, var(--gold,#f4c95d), #d8a73d)!important;
    color:#1a0d28!important;
    border:0!important;
    text-align:center;font-weight:700;letter-spacing:.06em;text-transform:uppercase;font-size:14px;
    padding:18px 22px!important;
  }
  .nav-menu .cta:hover{background:linear-gradient(135deg, #ffd970, var(--gold))!important;color:#1a0d28!important}
  /* Pulsante X per chiudere menu fullscreen */
  .nav-menu-close{
    position:absolute;top:22px;right:22px;
    width:44px;height:44px;border-radius:50%;
    background:rgba(180,150,240,.10);border:1px solid rgba(180,150,240,.25);
    color:#ece6fb;cursor:pointer;
    font-size:24px;line-height:1;
    display:grid;place-items:center;
    transition:background .25s, border-color .25s, transform .25s;
    z-index:1;
  }
  .nav-menu-close:hover, .nav-menu-close:active{
    background:rgba(236,72,153,.20);border-color:var(--gold,#f4c95d);
    color:var(--gold,#f4c95d);transform:rotate(90deg);
  }
  .nav-toggle{display:flex;z-index:200}
  .nav-toggle.open span:first-child{transform:translateY(3.5px) rotate(45deg)}
  .nav-toggle.open span:last-child{transform:translateY(-4px) rotate(-45deg)}
}

/* Pulsante X chiusura menu · visibile solo su mobile (default nascosto) */
.nav-menu-close{display:none}
@media (max-width:820px){.nav-menu-close{display:grid}}

/* Torna in cima · fluttuante sopra-destra in basso · sia mobile che desktop */
.scroll-top-btn{
  position:fixed;
  right:20px;bottom:96px; /* sopra il pulsante WhatsApp */
  width:48px;height:48px;border-radius:50%;
  background:linear-gradient(135deg,#7c3aed,#ec4899);
  color:#fff;border:0;cursor:pointer;
  font-size:22px;font-weight:700;line-height:1;
  display:grid;place-items:center;
  box-shadow:0 16px 40px rgba(124,58,237,.45),0 0 0 1px rgba(255,255,255,.06) inset;
  opacity:0;visibility:hidden;transform:translateY(12px) scale(.94);
  transition:opacity .35s,transform .35s,visibility .35s,box-shadow .35s;
  z-index:990;
}
.scroll-top-btn.is-visible{opacity:1;visibility:visible;transform:translateY(0) scale(1)}
.scroll-top-btn:hover{box-shadow:0 22px 50px rgba(236,72,153,.55);transform:translateY(-3px) scale(1.04)}
@media(max-width:760px){
  .scroll-top-btn{right:14px;bottom:84px;width:44px;height:44px;font-size:20px}
}

/* ---------- Hero ---------- */
.hero{
  position:relative;min-height:100vh;min-height:100svh;
  display:flex;flex-direction:column;justify-content:center;
  padding:140px var(--pad) 90px;
  overflow:hidden;isolation:isolate;
  background:
    radial-gradient(ellipse 80% 60% at 20% 0%, rgba(109,138,247,.18), transparent 55%),
    radial-gradient(ellipse 60% 50% at 85% 100%, rgba(176,139,255,.12), transparent 60%),
    linear-gradient(180deg,#09090b 0%, #0e0e11 100%);
}
.hero-bg{position:absolute;inset:0;z-index:-1}
.hero-image{position:absolute;inset:0}
.hero-image img{width:100%;height:100%;object-fit:cover;object-position:center right;opacity:.35;mix-blend-mode:screen}
.hero-image.is-missing img{display:none}
.hero-gradient{
  position:absolute;inset:0;
  background:linear-gradient(90deg,rgba(9,9,11,.95) 0%,rgba(9,9,11,.65) 45%,rgba(9,9,11,.3) 80%,transparent 100%);
}
.noise{position:absolute;inset:0;pointer-events:none;opacity:.06;mix-blend-mode:overlay;
  background-image:url("data:image/svg+xml;utf8,<svg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2'/></filter><rect width='100%25' height='100%25' filter='url(%23n)' opacity='.5'/></svg>")}
.orb{position:absolute;border-radius:50%;filter:blur(100px);opacity:.35;pointer-events:none}
.orb-1{width:640px;height:640px;background:var(--brand);top:-220px;left:-180px}
.orb-2{width:440px;height:440px;background:var(--violet);bottom:-160px;right:-100px;opacity:.25}

.hero-inner{max-width:980px;position:relative;z-index:2}
/* Su desktop · spazio per la foto absolute a destra · evita overflow del titolo */
@media(min-width:1025px){
  .hero-inner-top, .hero-inner-bot{
    max-width:min(58vw, 760px);
    padding-right:clamp(20px, 4vw, 60px);
  }
  /* Hero title più contenuto su desktop · libera spazio per sub + CTA above-the-fold */
  .hero .hero-title.mega{
    font-size:clamp(40px, 5.4vw, 88px) !important;
    line-height:1.05;
  }
  .hero .hero-sub{font-size:clamp(15px, 1.15vw, 19px) !important;margin-top:24px !important}
  .hero .hero-ctas{margin-top:28px !important}
  /* Riduce padding hero per stringere il flusso verticale */
  .hero{padding-top:120px !important; padding-bottom:60px !important}
}
.eyebrow{
  font-size:11px;letter-spacing:.45em;text-transform:uppercase;
  color:var(--ink-soft);margin-bottom:32px;font-weight:500;
}
.eyebrow::before{content:"";display:inline-block;width:28px;height:1px;background:var(--ink-soft);margin-right:14px;vertical-align:middle}
.hero-title{
  font-family:var(--ff-display);font-weight:300;
  font-size:clamp(52px,10vw,180px);
  line-height:.92;letter-spacing:-.035em;
  margin:0 0 36px;color:var(--ink);
}
.hero-title .line{display:block;overflow:hidden}
.hero-title .line > [data-split]{display:block;transform:translateY(110%);opacity:0;transition:none;will-change:transform,opacity}
.hero-title .line.is-animated > [data-split]{animation:heroLineIn 1.2s var(--ease) forwards}
.hero-title .line:nth-child(1).is-animated > [data-split]{animation-delay:.4s}
.hero-title .line:nth-child(2).is-animated > [data-split]{animation-delay:.55s}
.hero-title .line:nth-child(3).is-animated > [data-split]{animation-delay:.7s}
@keyframes heroLineIn{from{opacity:0;transform:translateY(110%)}to{opacity:1;transform:translateY(0)}}
.hero-title .italic{font-style:italic;font-weight:300;color:var(--gold)}
.hero-sub{
  font-size:clamp(16px,1.3vw,19px);
  color:var(--ink-soft);max-width:620px;margin:0 0 46px;line-height:1.65;
}
.hero-cta{display:flex;gap:14px;flex-wrap:wrap}
.btn{
  display:inline-flex;align-items:center;gap:10px;
  padding:18px 28px;border-radius:999px;
  font-size:12px;letter-spacing:.18em;text-transform:uppercase;font-weight:600;
  transition:all .35s var(--ease);
  position:relative;overflow:hidden;
}
.btn-primary{background:var(--ink);color:var(--bg)}
.btn-primary:hover{transform:translateY(-2px);background:#fff}
.btn-primary svg{transition:transform .35s var(--ease)}
.btn-primary:hover svg{transform:translateX(4px)}
.btn-ghost{border:1px solid var(--border-hover);color:var(--ink)}
.btn-ghost:hover{background:rgba(255,255,255,.06);border-color:var(--ink-soft)}

.scroll-hint{position:absolute;bottom:36px;left:var(--pad);font-size:10px;letter-spacing:.45em;text-transform:uppercase;color:var(--ink-dim);display:flex;align-items:center;gap:14px}
.scroll-line{width:60px;height:1px;background:var(--border);position:relative;overflow:hidden}
.scroll-line::after{content:"";position:absolute;left:-60px;top:0;width:60px;height:100%;background:var(--ink);animation:scrollLine 2.4s var(--ease) infinite}
@keyframes scrollLine{to{left:100%}}

/* ---------- Marquee ---------- */
.marquee{
  overflow:hidden;border-top:1px solid var(--border);border-bottom:1px solid var(--border);
  padding:30px 0;background:var(--bg-2);
}
.marquee-track{display:flex;gap:48px;white-space:nowrap;animation:marquee 48s linear infinite;will-change:transform}
.marquee-track span{font-family:var(--ff-display);font-style:italic;font-weight:300;font-size:clamp(28px,3.4vw,52px);color:var(--ink-soft);letter-spacing:-.01em}
.marquee-track span:nth-child(even){color:var(--ink-dim)}
.marquee-track span:nth-child(4n+3){color:var(--gold);opacity:.8}
@keyframes marquee{to{transform:translateX(-50%)}}

/* ---------- Section base ---------- */
section{padding:clamp(100px,14vh,180px) var(--pad);position:relative;max-width:var(--max);margin:0 auto}
.section-label{
  font-size:11px;letter-spacing:.45em;text-transform:uppercase;
  color:var(--ink-dim);margin-bottom:56px;display:flex;align-items:center;gap:16px;
}
.section-label span{color:var(--ink);font-weight:600}
.h-big{
  font-family:var(--ff-display);font-weight:300;
  font-size:clamp(40px,6vw,112px);
  line-height:.98;letter-spacing:-.03em;color:var(--ink);margin:0 0 72px;max-width:1200px;
}
.h-big em{color:var(--gold);font-weight:300}
.h-huge{
  font-family:var(--ff-display);font-weight:300;
  font-size:clamp(64px,11vw,200px);
  line-height:.92;letter-spacing:-.04em;color:var(--ink);margin:0 0 64px;
}
.h-huge em{color:var(--gold)}

/* ---------- Manifesto ---------- */
.manifesto{background:var(--bg)}
.manifesto-grid{display:grid;grid-template-columns:1.3fr 1fr;gap:80px;align-items:center}
.manifesto-body p{color:var(--ink-soft);margin:0 0 22px;font-size:18px;line-height:1.75;max-width:54ch}
.manifesto-body p strong{color:var(--ink)}
.manifesto-visual{display:flex;justify-content:center;color:var(--ink-soft);opacity:.7}
.visual-svg{width:100%;max-width:420px;filter:drop-shadow(0 20px 60px rgba(0,0,0,.4)) brightness(0) invert(.85)}
@media (max-width:880px){.manifesto-grid{grid-template-columns:1fr;gap:48px}}

/* ---------- Metodo (Pilastri) ---------- */
.metodo{background:var(--bg)}
.pillars{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--border);border:1px solid var(--border);overflow:hidden}
.pillar{background:var(--bg-card);padding:48px 36px;transition:background .4s var(--ease);position:relative;overflow:hidden;min-height:320px;display:flex;flex-direction:column}
.pillar:hover{background:#16161b}
.pillar-num{font-family:var(--ff-display);font-style:italic;color:var(--gold);font-size:13px;letter-spacing:.25em;margin-bottom:28px;font-weight:400}
.pillar-icon{width:100%;height:100px;display:flex;align-items:center;justify-content:center;margin-bottom:28px;opacity:.7;transition:opacity .4s var(--ease),transform .5s var(--ease);filter:brightness(0) invert(.85)}
.pillar-icon img{max-height:100%}
.pillar:hover .pillar-icon{opacity:1;transform:translateY(-4px)}
.pillar h3{font-family:var(--ff-display);font-weight:400;font-size:24px;color:var(--ink);margin:0 0 14px;letter-spacing:-.01em}
.pillar p{font-size:14px;color:var(--ink-soft);line-height:1.7;margin:0}
@media (max-width:1020px){.pillars{grid-template-columns:repeat(2,1fr)}}
@media (max-width:560px){.pillars{grid-template-columns:1fr}}

/* ---------- Corso / Slideshow (rauno-style) ---------- */
.corso{background:var(--bg)}
.corso-lead{max-width:64ch;font-size:clamp(16px,1.3vw,18px);color:var(--ink-soft);margin:0 0 64px;line-height:1.75}
.corso-lead em{color:var(--gold)}

.slideshow{position:relative;margin:0 calc(var(--pad) * -1);padding:0 var(--pad)}
.slideshow-stage{
  position:relative;aspect-ratio:16/10;
  overflow:hidden;background:var(--bg-2);
  border:1px solid var(--border);
  border-radius:4px;
}
.slide-track{position:absolute;inset:0}
.slide{
  position:absolute;inset:0;
  opacity:0;transform:scale(1.04);
  transition:opacity .9s var(--ease-smooth), transform 1.4s var(--ease-smooth);
  pointer-events:none;
}
.slide.is-current{opacity:1;transform:scale(1);pointer-events:auto;z-index:2}
.slide.is-prev,.slide.is-next{opacity:0;z-index:1}
.slide img{width:100%;height:100%;object-fit:contain;background:#000;user-select:none;-webkit-user-drag:none}

.slide-nav{
  position:absolute;top:50%;transform:translateY(-50%);z-index:4;
  width:52px;height:52px;border-radius:50%;
  background:rgba(9,9,11,.6);backdrop-filter:blur(10px);
  border:1px solid var(--border);color:var(--ink);
  font-size:20px;line-height:1;
  display:inline-flex;align-items:center;justify-content:center;
  transition:background .3s var(--ease),border-color .3s,transform .3s var(--ease);
  cursor:none;
}
.slide-nav:hover{background:rgba(242,239,233,.1);border-color:var(--border-hover)}
.slide-prev{left:20px}
.slide-next{right:20px}
.slide-prev:hover{transform:translateY(-50%) translateX(-3px)}
.slide-next:hover{transform:translateY(-50%) translateX(3px)}

.slide-meta{
  display:flex;align-items:center;justify-content:space-between;gap:20px;
  margin-top:24px;font-size:12px;letter-spacing:.25em;text-transform:uppercase;color:var(--ink-dim);
}
.slide-counter{font-family:var(--ff-display);font-style:italic;letter-spacing:.1em;font-size:14px;text-transform:none;color:var(--ink-soft);font-weight:400}
.slide-counter .slide-current{color:var(--ink)}
.slide-progress{flex:1;max-width:600px;height:1px;background:var(--border);overflow:hidden;position:relative}
.slide-progress > span{
  display:block;height:100%;width:0;background:var(--ink);
  transition:width .6s var(--ease-smooth);
}
.slide-hint{font-size:10px;letter-spacing:.4em;color:var(--ink-dim);white-space:nowrap}
@media (max-width:720px){
  .slide-nav{width:44px;height:44px;font-size:16px}
  .slide-prev{left:12px}.slide-next{right:12px}
  .slide-hint{display:none}
}

/* ---------- Transurfing ---------- */
.transurfing{position:relative;background:var(--bg)}
.transurfing{--ts-x:0vw}
.transurfing::before{
  content:"TRANSURFING · TRANSURFING";position:absolute;top:60px;right:-20px;
  font-family:var(--ff-display);font-weight:300;font-style:italic;
  font-size:clamp(120px,22vw,360px);letter-spacing:-.05em;line-height:1;
  color:rgba(242,239,233,.035);pointer-events:none;user-select:none;z-index:0;
  white-space:nowrap;transform:translateX(var(--ts-x));will-change:transform;
}
.transurfing-lead{max-width:68ch;font-size:clamp(16px,1.3vw,19px);color:var(--ink-soft);margin:0 0 72px;line-height:1.75;position:relative}
.transurfing-lead em{color:var(--gold)}
.ts-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:1px;position:relative;z-index:1;background:var(--border);border:1px solid var(--border)}
.ts-card{
  background:var(--bg-card);
  padding:44px 36px;
  display:flex;flex-direction:column;gap:14px;
  transition:background .5s var(--ease);position:relative;overflow:hidden;
  min-height:280px;
}
.ts-card:hover{background:#16161b}
.ts-num{font-family:var(--ff-display);font-style:italic;color:var(--gold);font-size:13px;letter-spacing:.3em;margin-bottom:6px;font-weight:400}
.ts-card h3{font-family:var(--ff-display);font-weight:400;font-size:26px;color:var(--ink);margin:0;letter-spacing:-.01em;line-height:1.15}
.ts-card p{font-size:14.5px;color:var(--ink-soft);line-height:1.7;margin:0}
.ts-card p em{color:var(--gold);font-size:.95em}
.ts-quote{
  margin:120px auto 0;max-width:960px;text-align:center;padding:0 20px;position:relative;
}
.ts-quote p{
  font-family:var(--ff-display);font-weight:300;font-style:italic;
  font-size:clamp(26px,3.8vw,52px);line-height:1.25;color:var(--ink);margin:0 0 20px;letter-spacing:-.015em;
}
.ts-quote p em{color:var(--gold);font-style:italic;font-weight:300}
.ts-quote cite{font-style:normal;font-size:11px;letter-spacing:.35em;text-transform:uppercase;color:var(--ink-dim)}

/* ---------- Sogni / AI Dream Interpreter ---------- */
.sogni{position:relative;background:var(--bg)}
.sogni-lead{max-width:68ch;font-size:clamp(16px,1.3vw,19px);color:var(--ink-soft);margin:0 0 56px;line-height:1.75}
.sogni-lead strong{color:var(--ink);font-weight:600}

.dream-app{
  display:grid;grid-template-columns:1fr;gap:20px;
  background:var(--bg-card);
  border:1px solid var(--border);padding:36px;
  position:relative;
}

.dream-config{border:1px solid var(--border);background:var(--bg-2);overflow:hidden}
.dream-config summary{list-style:none;cursor:pointer;padding:18px 22px;display:flex;justify-content:space-between;align-items:center;gap:16px;font-size:12px;letter-spacing:.25em;text-transform:uppercase}
.dream-config summary::-webkit-details-marker{display:none}
.dream-config summary::after{content:"+";font-size:22px;color:var(--ink-soft);transition:transform .3s var(--ease);line-height:1}
.dream-config[open] summary::after{transform:rotate(45deg)}
.cfg-title{color:var(--ink);font-weight:600}
.cfg-status{font-size:10px;color:var(--ink-dim);letter-spacing:.25em;padding:4px 10px;border-radius:999px;background:rgba(242,239,233,.04)}
.cfg-status.ok{color:#7fdfa2;background:rgba(127,223,162,.08)}
.cfg-body{padding:0 22px 22px;display:grid;gap:14px}
.cfg-row{display:grid;grid-template-columns:150px 1fr;gap:16px;align-items:center;font-size:14px;color:var(--ink-soft)}
.cfg-row > span{letter-spacing:.04em}
.cfg-row input[type=text],.cfg-row input[type=password],.cfg-row select{
  background:var(--bg-3);border:1px solid var(--border);
  padding:12px 14px;color:var(--ink);font:inherit;width:100%;
  transition:border-color .3s;
}
.cfg-row input:focus,.cfg-row select:focus{outline:none;border-color:var(--ink-soft)}
.cfg-check{grid-template-columns:auto 1fr}
.cfg-check input{width:16px;height:16px;accent-color:var(--brand)}
.cfg-help{font-size:12px;color:var(--ink-dim);margin:4px 0 0;line-height:1.6}
.cfg-help a{color:var(--ink);text-decoration:underline;text-underline-offset:3px}
@media (max-width:560px){.cfg-row{grid-template-columns:1fr}}

.dream-form{display:flex;flex-direction:column;gap:14px}
.dream-label{font-size:11px;letter-spacing:.35em;text-transform:uppercase;color:var(--ink-dim)}
#dreamInput{
  background:var(--bg-3);border:1px solid var(--border);
  padding:20px 22px;color:var(--ink);font:inherit;line-height:1.65;resize:vertical;min-height:160px;
  transition:border-color .3s;
}
#dreamInput:focus{outline:none;border-color:var(--ink-soft)}
.dream-actions{display:flex;gap:12px;flex-wrap:wrap}
.dream-actions .btn{padding:16px 22px;font-size:12px}
#dreamSubmit[disabled]{opacity:.5;cursor:not-allowed}

.dream-output{
  display:none;
  background:var(--bg-2);border:1px solid var(--border);
  padding:30px 34px;color:var(--ink);line-height:1.8;font-size:15.5px;
  white-space:pre-wrap;
}
.dream-output.visible{display:block;animation:dreamFade .6s var(--ease)}
@keyframes dreamFade{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
.dream-output.error{border-color:var(--red);color:#f0a7b2;background:rgba(224,99,119,.06)}
.dream-output .dream-title{font-family:var(--ff-display);font-size:24px;color:var(--gold);margin:0 0 12px;font-style:italic;font-weight:400}
.dream-output .dream-loader{display:inline-flex;gap:6px}
.dream-output .dream-loader i{width:8px;height:8px;border-radius:50%;background:var(--ink-soft);animation:dreamDot 1s infinite var(--d,0s)}
.dream-output .dream-loader i:nth-child(2){--d:.15s}
.dream-output .dream-loader i:nth-child(3){--d:.3s}
@keyframes dreamDot{0%,80%,100%{opacity:.2;transform:translateY(0)}40%{opacity:1;transform:translateY(-4px)}}

.sogni-disclaimer{margin-top:32px;font-size:12.5px;color:var(--ink-dim);max-width:60ch}
.sogni-disclaimer em{color:var(--ink-dim);font-style:italic;font-family:var(--ff-display)}

/* ---------- Servizi ---------- */
.servizi{background:var(--bg)}
.servizi-list{list-style:none;padding:0;margin:0;border-top:1px solid var(--border)}
.servizio{
  display:grid;grid-template-columns:80px 1fr auto;gap:40px;align-items:start;
  padding:48px 0;border-bottom:1px solid var(--border);
  transition:padding .4s var(--ease),background .4s var(--ease);
  position:relative;cursor:pointer;
}
.servizio::before{
  content:"";position:absolute;inset:0;background:linear-gradient(90deg,transparent,rgba(242,239,233,.04) 50%,transparent);
  opacity:0;transition:opacity .4s var(--ease);
}
.servizio:hover::before{opacity:1}
.servizio:hover{padding-left:20px}
.s-index{font-family:var(--ff-display);font-style:italic;font-size:18px;color:var(--gold);padding-top:8px;font-weight:400}
.s-body h3{font-family:var(--ff-display);font-weight:300;font-size:clamp(26px,3.4vw,44px);color:var(--ink);margin:0 0 14px;letter-spacing:-.015em;line-height:1.1}
.s-body p{color:var(--ink-soft);margin:0;max-width:58ch;line-height:1.7}
.s-meta{font-size:11px;letter-spacing:.35em;text-transform:uppercase;color:var(--ink-dim);padding-top:14px;white-space:nowrap;font-weight:500}
@media (max-width:760px){.servizio{grid-template-columns:1fr;gap:12px}.s-meta{padding-top:0}}

/* ---------- Chi sono ---------- */
.chi-sono{background:var(--bg)}
.chi-grid{display:grid;grid-template-columns:1.3fr 1fr;gap:80px;align-items:center}
.chi-text p{color:var(--ink-soft);font-size:17px;line-height:1.75;margin:0 0 22px;max-width:54ch}
.chi-signature{font-family:var(--ff-display);font-style:italic;font-size:26px!important;color:var(--gold);margin-top:32px!important}
.chi-visual{display:flex;justify-content:center;opacity:.6}
.chi-visual .visual-svg{max-height:640px;width:auto}
@media (max-width:880px){.chi-grid{grid-template-columns:1fr;gap:48px}}

/* ---------- Contatti ---------- */
.contatti{background:var(--bg)}
.contatti-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1px;background:var(--border);border:1px solid var(--border)}
.contatto-card{
  display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:20px;
  padding:36px 40px;
  background:var(--bg-card);transition:background .4s var(--ease);
}
.contatto-card:hover{background:#16161b}
.c-label{font-size:11px;letter-spacing:.35em;text-transform:uppercase;color:var(--ink-dim);font-weight:500}
.c-value{font-family:var(--ff-display);font-size:clamp(20px,2.2vw,30px);color:var(--ink);letter-spacing:-.01em;font-weight:300}
.c-arrow{font-size:24px;color:var(--ink-soft);transition:transform .4s var(--ease)}
.contatto-card:hover .c-arrow{transform:translate(4px,-4px);color:var(--ink)}
@media (max-width:720px){.contatti-grid{grid-template-columns:1fr}.contatto-card{grid-template-columns:1fr auto;gap:12px}.c-label{grid-column:1/-1}}
.contatti-base{margin-top:40px;font-size:11px;letter-spacing:.3em;text-transform:uppercase;color:var(--ink-dim)}

/* ---------- Testimonianze ---------- */
.testimonianze{background:var(--bg)}
.tm-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:1px;background:var(--border);border:1px solid var(--border)}
.tm{
  background:var(--bg-card);padding:36px 34px;margin:0;display:flex;flex-direction:column;gap:18px;
  transition:background .4s var(--ease);position:relative;overflow:hidden;
  min-height:280px;
}
.tm::before{
  content:"\201C";position:absolute;top:-30px;right:20px;
  font-family:var(--ff-display);font-size:140px;color:rgba(242,239,233,.06);line-height:1;
}
.tm:hover{background:#16161b}
.tm blockquote{margin:0;font-family:var(--ff-display);font-weight:300;font-style:italic;font-size:19px;line-height:1.55;color:var(--ink)}
.tm blockquote strong{font-style:normal;color:var(--gold);font-weight:600}
.tm figcaption{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:auto;padding-top:14px;border-top:1px solid var(--border)}
.tm-name{font-size:11px;letter-spacing:.3em;text-transform:uppercase;color:var(--ink-dim);font-weight:500}
.tm-stars{color:#7fdfa2;letter-spacing:2px;font-size:13px}
.tm-cta{background:linear-gradient(180deg,rgba(109,138,247,.08),transparent)}
.tm-link{color:var(--ink);font-size:12px;letter-spacing:.2em;text-transform:uppercase;font-weight:600}
.tm-link:hover{color:var(--gold)}
.tm-note{margin-top:24px;font-size:12px;color:var(--ink-dim);font-style:italic;opacity:.8}

/* ---------- FAQ ---------- */
.faq{background:var(--bg)}
.faq-list{display:flex;flex-direction:column;gap:0;border-top:1px solid var(--border)}
.faq-item{border-bottom:1px solid var(--border);padding:0;transition:background .3s}
.faq-item[open]{background:rgba(242,239,233,.02)}
.faq-item summary{
  list-style:none;cursor:pointer;padding:30px 0;
  font-family:var(--ff-display);font-weight:300;font-size:clamp(19px,2.4vw,30px);color:var(--ink);
  display:flex;justify-content:space-between;align-items:center;gap:24px;letter-spacing:-.01em;
  transition:color .3s;
}
.faq-item summary::-webkit-details-marker{display:none}
.faq-item summary::after{
  content:"";width:14px;height:14px;flex-shrink:0;
  background:
    linear-gradient(var(--ink),var(--ink)) center/1.5px 100% no-repeat,
    linear-gradient(var(--ink),var(--ink)) center/100% 1.5px no-repeat;
  transition:transform .4s var(--ease);
}
.faq-item[open] summary::after{transform:rotate(45deg)}
.faq-item:hover summary{color:var(--gold)}
.faq-body{padding:0 0 32px;max-width:75ch}
.faq-body p{margin:0;color:var(--ink-soft);line-height:1.75;font-size:15.5px}

/* ---------- Podcast ---------- */
.podcast{background:var(--bg)}
.podcast-lead{max-width:62ch;font-size:clamp(16px,1.3vw,19px);color:var(--ink-soft);margin:0 0 56px;line-height:1.75}
.podcast-embed{
  position:relative;aspect-ratio:16/9;overflow:hidden;
  border:1px solid var(--border);background:#000;
}
.podcast-embed iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.podcast-link{
  display:inline-flex;align-items:center;gap:10px;margin-top:32px;
  padding:14px 22px;border:1px solid var(--border);border-radius:999px;
  font-size:11px;letter-spacing:.25em;text-transform:uppercase;color:var(--ink);
  transition:all .3s;font-weight:500;
}
.podcast-link:hover{background:rgba(255,255,255,.04);border-color:var(--ink-soft);transform:translateY(-2px)}

/* ---------- Footer ---------- */
.footer{padding:100px var(--pad) 36px;border-top:1px solid var(--border);max-width:var(--max);margin:0 auto;background:var(--bg)}
.footer-top{display:flex;justify-content:space-between;align-items:flex-end;gap:32px;flex-wrap:wrap;padding-bottom:72px}
.footer-logo img{height:72px;width:auto}
.footer-claim{font-family:var(--ff-display);font-weight:300;font-size:clamp(24px,3.4vw,42px);line-height:1.2;color:var(--ink);text-align:right;margin:0;letter-spacing:-.01em}
.footer-claim em{color:var(--gold)}
.footer-bot{display:flex;justify-content:space-between;gap:24px;padding-top:28px;border-top:1px solid var(--border);font-size:11px;color:var(--ink-dim);letter-spacing:.15em;flex-wrap:wrap;text-transform:uppercase}
.footer-bot a:hover{color:var(--ink)}
@media (max-width:640px){.footer-top{flex-direction:column;align-items:flex-start}.footer-claim{text-align:left}}

/* ---------- Reveal ---------- */
[data-reveal]{opacity:0;transform:translateY(24px);transition:opacity .9s var(--ease),transform .9s var(--ease)}
[data-reveal].is-in{opacity:1;transform:none}
.line > [data-split]{display:inline-block;transform:translateY(110%);transition:transform 1s var(--ease)}
.line.is-in > [data-split]{transform:translateY(0)}
.line > [data-split]{transition-delay:var(--d,0ms)}

/* subtle selection */
::selection{background:var(--ink);color:var(--bg)}

/* ---------- v2 motion engine support ---------- */
/* Page scroll progress bar */
.page-progress{position:fixed;top:0;left:0;right:0;height:2px;z-index:200;pointer-events:none;background:transparent}
.page-progress > span{display:block;height:100%;background:linear-gradient(90deg,var(--gold),var(--brand));transform:scaleX(0);transform-origin:0 50%;will-change:transform;transition:transform .12s linear}

/* (grain canvas rimosso) */
.hero{isolation:isolate}
.hero-inner{position:relative;z-index:2}

/* Cursor with label mode */
.cursor-ring{will-change:transform,width,height}
.cursor-ring.has-label::after{
  content:attr(data-label);position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);
  font-family:var(--ff-sans);font-size:10px;letter-spacing:.18em;text-transform:uppercase;
  color:var(--ink);white-space:nowrap;
}
.cursor-ring.is-hover.has-label{width:90px;height:90px}

/* Hero pre-anim hide (until body.is-ready) */
.hero-title .ch > span{opacity:0}
body.is-ready .hero-title .ch > span{/* GSAP takes over */}

/* Pinned manifesto safety: avoid double scrollbars */
.manifesto{will-change:transform}

/* Card 3D perspective container hint */
.assi,.pilastri,.piani,.contatti-grid,.cards-2,.cards-3{perspective:1100px}

/* Better cursor difference rendering */
.cursor-dot{mix-blend-mode:difference;background:#fff}

/* Reveal fallback (when GSAP not ready) */
[data-reveal]{opacity:0}

/* subtle selection */
::selection{background:var(--ink);color:var(--bg)}

/* reduce motion */
@media (prefers-reduced-motion:reduce){
  *{animation-duration:.01ms!important;transition-duration:.01ms!important}
  [data-reveal],.line > [data-split],.hero-title .ch > span{opacity:1!important;transform:none!important}
  .grain-canvas,.page-progress{display:none}
}
