
    @font-face {
      font-family: 'HomemadeApple';
      src: url('fonts/HomemadeApple.ttf') format('truetype');
      font-weight: 400;
      font-style: normal;
    }
    @font-face {
      font-family: 'BodoniModa';
      src: url('fonts/BodoniModa.ttf') format('truetype');
      font-weight: 400;
      font-style: normal;
    }

    *, *::before, *::after { margin:0; padding:0; box-sizing:border-box; }

    :root {
      --burgundy: #7F0A2D;
      --burgundy-btn: #b40033;
      --cream: #F5F0EC;
      --bg-light: #f8f8f6;
      --nav-bg: #100810;
      --border: #dedad4;
    }

    html { scroll-behavior: smooth; }
    html, body { width:100%; min-height:100vh; font-family:'Open Sans',sans-serif; background:var(--nav-bg); overflow-x:hidden; }

    /* ===== NAV ===== */
    nav {
      position:absolute; top:0; left:0; right:0; z-index:100;
      background:var(--nav-bg);
      display:flex; align-items:center; justify-content:space-between;
      padding:0 48px; height:64px;
    }
    .nav-brand { color:#fff; font-family:'Open Sans',sans-serif; font-weight:300; font-size:11px; letter-spacing:4px; text-transform:uppercase; text-decoration:none; white-space:nowrap; }
    .nav-links { display:flex; gap:40px; list-style:none; }
    .nav-links a { color:rgba(255,255,255,0.72); text-decoration:none; font-size:10px; letter-spacing:2.5px; text-transform:uppercase; font-weight:400; transition:color .2s; }
    .nav-links a:hover { color:#fff; }
    .nav-social { display:flex; gap:20px; align-items:center; }
    .nav-social a { color:rgba(255,255,255,0.65); text-decoration:none; transition:color .2s; }
    .nav-social a:hover { color:#fff; }
    .nav-social svg { width:15px; height:15px; fill:rgba(255,255,255,0.62); transition:fill .2s; vertical-align:middle; }
    .nav-social a:hover svg { fill:#fff; }
    .nav-cta { border:1px solid rgba(255,255,255,0.38); color:#fff; padding:9px 22px; font-size:9.5px; letter-spacing:2.5px; text-transform:uppercase; text-decoration:none; border-radius:0; font-family:'Open Sans',sans-serif; font-weight:400; white-space:nowrap; transition:background .25s,border-color .25s; }
    .nav-cta:hover { background:rgba(255,255,255,0.07); border-color:rgba(255,255,255,0.6); }
    .nav-toggle { display:none; flex-direction:column; gap:5px; cursor:pointer; padding:4px; background:none; border:none; }
    .nav-toggle span { display:block; width:22px; height:1px; background:rgba(255,255,255,0.75); }

    /* ===== HERO ===== */
    .hero { position:relative; width:100%; height:100vh; min-height:500px; overflow:hidden; }
    .hero-photo {
      position:absolute; inset:0;
      background:radial-gradient(ellipse at 55% 35%, #3a1525 0%, #1e0b15 45%, #0d060d 100%);
    }
    .photo-label { position:absolute; top:50%; left:50%; transform:translate(-50%,-50%); color:rgba(255,255,255,0.09); font-size:9px; letter-spacing:4px; text-transform:uppercase; text-align:center; line-height:2.4; pointer-events:none; white-space:nowrap; }
    .hero-overlay { position:absolute; inset:0; background:linear-gradient(to top, rgba(8,2,6,0.9) 0%, rgba(8,2,6,0.28) 38%, transparent 62%); z-index:1; }
    .hero-vignette-r { position:absolute; inset:0; background:linear-gradient(to left, rgba(8,2,6,0.4) 0%, transparent 55%); z-index:1; }
    .hero-accent-line { position:absolute; left:48px; top:64px; bottom:0; width:1px; background:linear-gradient(to bottom, transparent, var(--burgundy) 40%, var(--burgundy) 80%, transparent); opacity:0.4; z-index:2; }
    .hero-name {
      position:absolute; bottom:calc(-0.22em + 8px); left:0; right:0; z-index:5;
      font-family:'BodoniModa',Georgia,serif; font-weight:400;
      font-size:13vw; text-transform:uppercase; color:var(--cream);
      letter-spacing:-0.02em; line-height:0.88; white-space:nowrap;
      opacity:0; animation:nameReveal 1.2s cubic-bezier(0.16,1,0.3,1) 0.05s forwards;
    }
    @keyframes nameReveal { from { opacity:0; transform:translateY(24px); } to { opacity:1; transform:translateY(0); } }

    /* ===== CHI SONO ===== */
    .chi-sono { background:var(--bg-light); width:100%; padding:100px 0; }
    .chi-sono-inner { max-width:1280px; margin:0 auto; padding:0 64px; display:grid; grid-template-columns:1fr 1fr; gap:80px; align-items:center; }
    .cs-photo-col { width:100%; }
    .cs-photo-wrap { width:100%; aspect-ratio:3/4; overflow:hidden; }
    .cs-photo-placeholder { width:100%; height:100%; background:#e4dfd9; display:flex; align-items:center; justify-content:center; }
    .cs-photo-placeholder span { color:rgba(0,0,0,0.18); font-size:9px; letter-spacing:4px; text-transform:uppercase; font-family:'Open Sans',sans-serif; }
    .cs-text-col { display:flex; flex-direction:column; align-items:flex-start; }
    .cs-handwriting { font-family:'HomemadeApple',cursive; font-size:clamp(22px,2.2vw,34px); color:#1a1a1a; margin-bottom:18px; font-weight:400; letter-spacing:0.5px; }
    .cs-heading { font-family:'BodoniModa',Georgia,serif; font-weight:400; font-size:clamp(28px,3.2vw,50px); line-height:1.12; text-transform:uppercase; color:#1a1a1a; margin-bottom:32px; letter-spacing:-0.01em; }
    .cs-body { display:flex; flex-direction:column; gap:18px; margin-bottom:48px; }
    .cs-body p { font-family:'Open Sans',sans-serif; font-size:15px; line-height:1.75; color:#3a3a3a; font-weight:300; }
    .cs-btn { display:inline-block; background:var(--burgundy-btn); color:#fff; text-decoration:none; font-family:'Open Sans',sans-serif; font-size:10px; font-weight:400; letter-spacing:3px; text-transform:uppercase; padding:18px 52px; border-radius:0; transition:background .25s,transform .2s; }
    .cs-btn:hover { background:#920029; transform:translateY(-1px); }

    /* ===== APPROCCIO ===== */
    .approccio { position:relative; width:100%; min-height:100vh; display:flex; flex-direction:column; justify-content:space-between; overflow:hidden; }
    .approccio-bg { position:absolute; inset:0; background-image:none; background-size:cover; background-position:center right; z-index:0; }
    .approccio-overlay { position:absolute; inset:0; background:linear-gradient(105deg, rgba(8,2,6,0.92) 0%, rgba(8,2,6,0.72) 50%, rgba(8,2,6,0.35) 100%); z-index:1; }
    .approccio-content { position:relative; z-index:2; padding:100px 64px 0; max-width:640px; }
    .approccio-heading { font-family:'BodoniModa',Georgia,serif; font-weight:400; font-size:clamp(28px,3.2vw,48px); color:#f5f0ec; line-height:1.18; margin-bottom:32px; letter-spacing:-0.01em; }
    .approccio-body { font-family:'Open Sans',sans-serif; font-size:15px; font-weight:300; line-height:1.8; color:rgba(255,255,255,0.65); max-width:480px; }
    .approccio-stats { position:relative; z-index:2; display:grid; grid-template-columns:repeat(3,1fr); border-top:1px solid rgba(255,255,255,0.1); margin-top:80px; }
    .stat-item { padding:48px 64px; border-right:1px solid rgba(255,255,255,0.1); }
    .stat-item:last-child { border-right:none; }
    .stat-number { font-family:'BodoniModa',Georgia,serif; font-weight:400; font-size:clamp(52px,7vw,100px); color:#f5f0ec; line-height:1; margin-bottom:12px; letter-spacing:-0.03em; }
    .stat-label { font-family:'Open Sans',sans-serif; font-size:11px; font-weight:300; letter-spacing:2px; text-transform:uppercase; color:rgba(255,255,255,0.45); line-height:1.6; }

    /* ===== PERCORSI ===== */
    .percorsi { background:var(--bg-light); width:100%; }
    .percorsi-banner { background:var(--burgundy); padding:80px 64px; display:grid; grid-template-columns:1fr 340px; gap:64px; align-items:center; }
    .percorsi-banner-text { display:flex; flex-direction:column; gap:18px; }
    .percorsi-banner h2 { font-family:'BodoniModa',Georgia,serif; font-weight:400; font-size:clamp(28px,3.5vw,52px); color:#f5f0ec; letter-spacing:-0.01em; line-height:1.1; text-transform:uppercase; }
    .percorsi-banner-intro { font-family:'Open Sans',sans-serif; font-size:15px; font-weight:300; line-height:1.75; color:rgba(245,240,236,0.7); }
    .percorsi-banner-extra { font-family:'Open Sans',sans-serif; font-size:14px; font-weight:300; line-height:1.85; color:rgba(245,240,236,0.5); border-top:1px solid rgba(245,240,236,0.15); padding-top:18px; }
    .percorsi-banner-photo { width:100%; aspect-ratio:3/4; overflow:hidden; }
    .percorsi-banner-photo-inner { width:100%; height:100%; background:rgba(0,0,0,0.28); display:flex; align-items:center; justify-content:center; }
    .percorsi-banner-photo-inner span { color:rgba(255,255,255,0.18); font-size:9px; letter-spacing:4px; text-transform:uppercase; font-family:'Open Sans',sans-serif; }
    .percorsi-grid { display:grid; grid-template-columns:repeat(2,1fr); }
    .percorso-col {
      padding:64px 52px 72px;
      border-right:1px solid var(--border);
      border-bottom:1px solid var(--border);
      display:flex;
      flex-direction:column;
      transition: background 0.3s ease;
      cursor: default;
    }
    .percorso-col:nth-child(4n+1) { background: #f8f4f5; }
    .percorso-col:nth-child(4n+2) { background: #f0e8eb; }
    .percorso-col:nth-child(4n+3) { background: #e8dce0; }
    .percorso-col:nth-child(4n+4) { background: #dfd0d5; }
    .percorso-col:hover { background: #fff; }
    .percorso-col:nth-child(even) {
      border-right: none;
    }
    .percorso-col.last-row {
      border-bottom: none;
    }
    
    .percorso-ghost-num { font-family:'BodoniModa',Georgia,serif; font-weight:400; font-size:clamp(80px,10vw,140px); color:rgba(127,10,45,0.1); line-height:1; margin-bottom:36px; letter-spacing:-0.04em; user-select:none; }
    .percorso-title { font-family:'Open Sans',sans-serif; font-weight:600; font-size:clamp(17px,1.1vw,20px); color:#1a1a1a; line-height:1.3; margin-bottom:12px; letter-spacing:1px; }
    .percorso-tags { font-family:'Open Sans',sans-serif; font-size:9px; font-weight:600; letter-spacing:2.5px; text-transform:uppercase; color:#9E0E38; margin-bottom:28px; }
    .percorso-rule { width:100%; height:1px; background:#b40033; margin-bottom:28px; opacity:0.5; }
    .percorso-body { font-family:'Open Sans',sans-serif; font-size:14px; font-weight:300; line-height:1.85; color:#3a3a3a; margin-bottom:32px; }
    .percorso-perchi-label { font-family:'Open Sans',sans-serif; font-size:9px; font-weight:600; letter-spacing:2.5px; text-transform:uppercase; color:#1a1a1a; margin-bottom:10px; }
    .percorso-perchi-text { font-family:'Open Sans',sans-serif; font-size:13px; font-weight:300; line-height:1.75; color:#888; margin-bottom:40px; flex:1; }
    .percorso-link { font-family:'Open Sans',sans-serif; font-size:9px; font-weight:600; letter-spacing:3px; text-transform:uppercase; color:#9E0E38; text-decoration:none; padding-bottom:3px; border-bottom:1px solid #9E0E38; display:inline-flex; align-items:center; gap:8px; margin-top:auto; align-self:flex-start; transition:gap .2s,opacity .2s; }
    .percorso-link:hover { gap:14px; opacity:0.75; }
    
    
    

    /* ===== MOBILE MENU ===== */
    .mobile-menu { display:none; position:fixed; inset:0; background:var(--nav-bg); z-index:200; flex-direction:column; align-items:center; justify-content:center; gap:32px; }
    .mobile-menu.open { display:flex; }
    .mobile-menu a { color:rgba(255,255,255,0.78); text-decoration:none; font-size:12px; letter-spacing:4px; text-transform:uppercase; font-weight:300; }
    .mobile-menu-close { position:absolute; top:18px; right:20px; background:none; border:none; color:rgba(255,255,255,0.6); font-size:18px; cursor:pointer; padding:8px; }
    .mobile-cta { border:1px solid rgba(255,255,255,0.3); padding:12px 32px; border-radius:0; }

    /* ===== RESPONSIVE ===== */
    @media (max-width:900px) {
      nav { padding:0 28px; }
      .nav-links { gap:24px; }
      .nav-social { display:none; }
      .hero-accent-line { left:28px; }
      .hero-name { font-size:13vw; }
      .chi-sono-inner { grid-template-columns:1fr; gap:48px; padding:0 40px; }
      .cs-photo-wrap { aspect-ratio:4/3; max-height:480px; }
      .approccio-content { padding:80px 40px 0; }
      .stat-item { padding:36px 40px; }
      .percorsi-banner { grid-template-columns:1fr; padding:60px 40px; gap:40px; }
      .percorsi-banner-photo { display:none; }
      .percorsi-grid { grid-template-columns:1fr; }
      .percorso-col { padding:44px 40px 52px; }
      .percorso-col, .percorso-col:nth-child(even), .percorso-col.last-row { border-right:none; border-bottom:1px solid var(--border); }
      .percorso-col:last-child { border-bottom:none; }
      .percorsi-bottom { padding:48px 40px; }
    }
    @media (max-width:640px) {
      nav { padding:0 20px; height:56px; }
      .nav-links,.nav-cta { display:none; }
      .nav-toggle { display:flex; }
      .hero-accent-line { display:none; }
      .hero-name { font-size:12.8vw; bottom:-0.04em; white-space:normal; word-spacing:-0.04em; }
      .chi-sono { padding:72px 0; }
      .chi-sono-inner { padding:0 24px; gap:36px; }
      .approccio-content { padding:64px 24px 0; }
      .approccio-stats { grid-template-columns:1fr; }
      .stat-item { border-right:none; border-bottom:1px solid rgba(255,255,255,0.1); padding:32px 24px; }
      .stat-item:last-child { border-bottom:none; }
      .percorsi-banner { padding:44px 24px; gap:28px; }
      .percorso-col { padding:44px 24px 52px; }
      .percorsi-bottom { padding:40px 24px; }
    }

    /* ===== TESTIMONIALS ===== */
    .testimonials {
      background: #f8f8f6;
      width: 100%;
      padding: 120px 0 100px;
      overflow: hidden;
    }
    .testimonials-header {
      text-align: center;
      margin-bottom: 72px;
      padding: 0 64px;
    }
    .testimonials-trusted {
      font-family: 'HomemadeApple', cursive;
      font-size: clamp(20px, 2vw, 30px);
      color: #aaa;
      display: block;
      margin-bottom: 4px;
    }
    .testimonials-count {
      font-family: 'BodoniModa', Georgia, serif;
      font-weight: 400;
      font-size: clamp(28px, 3vw, 55px);
      color: #ccc;
      letter-spacing: -0.03em;
      line-height: 0.95;
      display: block;
    }
    .testimonials-count strong {
      color: #1a1a1a;
      font-weight: 400;
    }
    /* Carousel */
    .testimonials-track-wrap {
      position: relative;
      overflow: hidden;
      padding: 0 64px;
    }
    .testimonials-track {
      display: flex;
      gap: 24px;
      transition: transform 0.5s cubic-bezier(0.25, 1, 0.35, 1);
    }
    .testi-card {
      flex: 0 0 calc(33.333% - 16px);
      background: #fff;
      border: 1px solid var(--border);
      border-radius: 12px;
      padding: 40px 36px;
      display: flex;
      flex-direction: column;
      gap: 0;
      transition: box-shadow 0.25s, transform 0.25s;
    }
    .testi-card:hover {
      box-shadow: 0 8px 32px rgba(127,10,45,0.07);
      transform: translateY(-2px);
    }
    .testi-card.active {
      border-color: rgba(127,10,45,0.2);
    }
    .testi-quote {
      font-family: 'BodoniModa', Georgia, serif;
      font-weight: 400;
      font-size: clamp(18px, 1.5vw, 22px);
      color: #1a1a1a;
      line-height: 1.3;
      margin-bottom: 20px;
      letter-spacing: -0.01em;
    }
    .testi-body {
      font-family: 'Open Sans', sans-serif;
      font-size: 14px;
      font-weight: 300;
      line-height: 1.85;
      color: #555;
      flex: 1;
      margin-bottom: 36px;
    }
    .testi-person {
      display: flex;
      align-items: center;
      gap: 14px;
    }
    .testi-avatar {
      width: 42px;
      height: 42px;
      border-radius: 50%;
      background: linear-gradient(135deg, #dfd0d5, #c9a8b2);
      display: flex;
      align-items: center;
      justify-content: center;
      font-family: 'BodoniModa', Georgia, serif;
      font-size: 14px;
      color: #7F0A2D;
      flex-shrink: 0;
    }
    .testi-name {
      font-family: 'Open Sans', sans-serif;
      font-size: 13px;
      font-weight: 600;
      color: #1a1a1a;
      line-height: 1.3;
    }
    .testi-role {
      font-family: 'Open Sans', sans-serif;
      font-size: 11px;
      font-weight: 300;
      color: #9E0E38;
      letter-spacing: 0.5px;
    }
    /* Nav arrows */
    .testimonials-nav {
      display: flex;
      justify-content: center;
      gap: 12px;
      margin-top: 48px;
    }
    .testi-btn {
      width: 48px;
      height: 48px;
      border: 1px solid var(--border);
      border-radius: 0;
      background: #fff;
      cursor: pointer;
      display: flex;
      align-items: center;
      justify-content: center;
      font-size: 16px;
      color: #1a1a1a;
      transition: background 0.2s, border-color 0.2s, color 0.2s;
    }
    .testi-btn:hover {
      background: var(--burgundy);
      border-color: var(--burgundy);
      color: #fff;
    }
    @media (max-width: 1024px) {
      .testi-card { flex: 0 0 calc(50% - 12px); }
    }
    @media (max-width: 900px) {
      .testimonials-track-wrap { padding: 0 40px; }
      .testimonials-header { padding: 0 40px; }
    }
    @media (max-width: 640px) {
      .testimonials { padding: 80px 0 72px; }
      .testimonials-track-wrap { padding: 0 24px; }
      .testimonials-header { padding: 0 24px; margin-bottom: 48px; }
      .testi-card { flex: 0 0 calc(100% - 0px); }
    }

    /* ===== WAITING LIST ===== */
    .waitlist {
      background: var(--nav-bg);
      width: 100%;
      padding: 120px 64px;
      display: flex;
      flex-direction: column;
      align-items: center;
      text-align: center;
    }
    .waitlist-label {
      font-family: 'Open Sans', sans-serif;
      font-size: 9px;
      font-weight: 600;
      letter-spacing: 4px;
      text-transform: uppercase;
      color: var(--burgundy-btn);
      margin-bottom: 24px;
    }
    .waitlist-heading {
      font-family: 'BodoniModa', Georgia, serif;
      font-weight: 400;
      font-size: clamp(36px, 5vw, 72px);
      color: #f5f0ec;
      letter-spacing: -0.02em;
      line-height: 1;
      text-transform: uppercase;
      margin-bottom: 40px;
    }
    .waitlist-body {
      font-family: 'Open Sans', sans-serif;
      font-size: 15px;
      font-weight: 300;
      line-height: 1.85;
      color: rgba(245,240,236,0.5);
      max-width: 520px;
      margin-bottom: 16px;
    }
    .waitlist-body + .waitlist-body {
      margin-bottom: 56px;
    }
    .waitlist-form {
      display: flex;
      gap: 0;
      width: 100%;
      max-width: 480px;
    }
    .waitlist-input {
      flex: 1;
      background: rgba(255,255,255,0.06);
      border: 1px solid rgba(255,255,255,0.15);
      border-right: none;
      color: #f5f0ec;
      font-family: 'Open Sans', sans-serif;
      font-size: 13px;
      font-weight: 300;
      letter-spacing: 0.5px;
      padding: 16px 20px;
      outline: none;
      transition: border-color 0.2s, background 0.2s;
    }
    .waitlist-input::placeholder {
      color: rgba(245,240,236,0.28);
    }
    .waitlist-input:focus {
      background: rgba(255,255,255,0.09);
      border-color: rgba(255,255,255,0.3);
    }
    .waitlist-btn {
      background: var(--burgundy-btn);
      color: #fff;
      border: none;
      font-family: 'Open Sans', sans-serif;
      font-size: 9.5px;
      font-weight: 600;
      letter-spacing: 3px;
      text-transform: uppercase;
      padding: 16px 32px;
      cursor: pointer;
      white-space: nowrap;
      transition: background 0.2s;
      border-radius: 0;
    }
    .waitlist-btn:hover { background: #920029; }
    .waitlist-note {
      margin-top: 20px;
      font-family: 'Open Sans', sans-serif;
      font-size: 11px;
      font-weight: 300;
      color: rgba(245,240,236,0.25);
      letter-spacing: 0.5px;
    }
    @media (max-width: 900px) { .waitlist { padding: 100px 40px; } }
    @media (max-width: 640px) {
      .waitlist { padding: 80px 24px; }
      .waitlist-form { flex-direction: column; max-width: 100%; }
      .waitlist-input { border-right: 1px solid rgba(255,255,255,0.15); border-bottom: none; }
      .waitlist-btn { padding: 16px; }
    }

    /* ===== FAQ ===== */
    .faq {
      background: #f8f8f6;
      width: 100%;
      padding: 16px 64px 120px;
    }
    .faq-header {
      margin-bottom: 72px;
    }
    .faq-label {
      font-family: 'Open Sans', sans-serif;
      font-size: 9px;
      font-weight: 600;
      letter-spacing: 4px;
      text-transform: uppercase;
      color: var(--burgundy-btn);
      display: block;
      margin-bottom: 16px;
    }
    .faq-title {
      font-family: 'BodoniModa', Georgia, serif;
      font-weight: 400;
      font-size: clamp(32px, 4vw, 56px);
      color: #1a1a1a;
      letter-spacing: -0.02em;
      line-height: 1;
      text-transform: uppercase;
    }
    .faq-grid {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 0 80px;
    }
    .faq-item {
      border-top: 1px solid var(--border);
      padding: 32px 0;
      cursor: pointer;
    }
                .faq-item.last-row { border-bottom: 1px solid var(--border); }
    .faq-question {
      display: flex;
      justify-content: space-between;
      align-items: flex-start;
      gap: 24px;
    }
    .faq-q-text {
      font-family: 'Open Sans', sans-serif;
      font-weight: 400;
      font-size: clamp(14px, 1.2vw, 16px);
      color: #1a1a1a;
      line-height: 1.35;
      letter-spacing: -0.01em;
    }
    .faq-icon {
      flex-shrink: 0;
      width: 20px;
      height: 20px;
      position: relative;
      margin-top: 2px;
    }
    .faq-icon::before,
    .faq-icon::after {
      content: '';
      position: absolute;
      background: #9E0E38;
      transition: transform 0.3s ease, opacity 0.3s ease;
    }
    .faq-icon::before { width: 12px; height: 1px; top: 50%; left: 50%; transform: translate(-50%,-50%); }
    .faq-icon::after  { width: 1px; height: 12px; top: 50%; left: 50%; transform: translate(-50%,-50%); }
    .faq-item.open .faq-icon::after { transform: translate(-50%,-50%) rotate(90deg); opacity: 0; }
    .faq-answer {
      font-family: 'Open Sans', sans-serif;
      font-size: 14px;
      font-weight: 300;
      line-height: 1.85;
      color: #666;
      max-height: 0;
      overflow: hidden;
      transition: max-height 0.4s ease, padding-top 0.3s ease;
    }
    .faq-item.open .faq-answer {
      max-height: 200px;
      padding-top: 18px;
    }
    @media (max-width: 900px) {
      .faq { padding: 100px 40px; }
      .faq-grid { grid-template-columns: 1fr; gap: 0; }
                }
    @media (max-width: 640px) {
      .faq { padding: 80px 24px; }
    }

    @keyframes blink { 0%, 100% { opacity:1; } 50% { opacity:0; } }

    /* ===== FOOTER ===== */
    .footer {
      background: var(--nav-bg);
      border-top: 1px solid rgba(255,255,255,0.06);
      padding: 28px 64px;
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 24px;
    }
    .footer-copy {
      font-family: 'Open Sans', sans-serif;
      font-size: 11px;
      font-weight: 300;
      color: rgba(255,255,255,0.3);
      letter-spacing: 0.5px;
    }
    .footer-love {
      font-family: 'Open Sans', sans-serif;
      font-size: 11px;
      font-weight: 300;
      color: rgba(255,255,255,0.25);
      letter-spacing: 0.5px;
    }
    .footer-love a {
      color: rgba(255,255,255,0.4);
      text-decoration: none;
      transition: color 0.2s;
    }
    .footer-love a:hover { color: rgba(255,255,255,0.7); }
    .footer-heart { color: #b40033; font-size: 10px; }
    /* shine lucido che scorre sul testo del credito */
    .footer-love {
      background: linear-gradient(110deg, rgba(255,255,255,0.28) 0%, rgba(255,255,255,0.28) 40%, rgba(255,255,255,0.95) 50%, rgba(255,255,255,0.28) 60%, rgba(255,255,255,0.28) 100%) 0 0 / 250% 100% no-repeat;
      -webkit-background-clip: text; background-clip: text;
      -webkit-text-fill-color: transparent; color: transparent;
      animation: footerShine 4.5s linear infinite alternate;
    }
    .footer-love a, .footer-love a:hover { color: transparent; -webkit-text-fill-color: transparent; }
    .footer-love .footer-heart { -webkit-text-fill-color: #b40033; color: #b40033; }
    @keyframes footerShine { from { background-position: 0% 0; } to { background-position: 100% 0; } }
    @media (prefers-reduced-motion: reduce) { .footer-love { animation: none; } }
    @media (max-width: 640px) {
      .footer { padding: 24px; flex-direction: column; align-items: center; gap: 8px; text-align: center; }
    }

    .name-part { white-space: nowrap; }
  

    /* ===== IMMAGINI CARICATE DAL BACKEND (stesso riquadro dei segnaposto) ===== */
    .fill-img { width:100%; height:100%; object-fit:cover; display:block; }
    .hero-photo .fill-img { position:absolute; inset:0; }

    /* ===== EFFETTI (GSAP / three.js) – nessuna variazione di layout ===== */
    .fx-canvas { position:absolute; inset:0; width:100%; height:100%; display:block; pointer-events:none; opacity:0; transition:opacity 1.2s ease; }
    .fx-canvas.is-ready { opacity:1; }
    /* effetto scrittura (Chi sono): il testo mantiene il suo spazio, le lettere compaiono una a una */
    .tw-w { white-space:nowrap; }
    .tw-c { position:relative; opacity:0; }
    .tw-c.is-on { opacity:1; }
    .tw-c.tw-caret::after { content:''; position:absolute; right:-3px; top:.1em; bottom:.05em; width:1.5px; background:currentColor; opacity:.7; animation:twBlink .7s steps(1) infinite; }
    @keyframes twBlink { 50% { opacity:0; } }
    .waitlist, .footer { position:relative; isolation:isolate; overflow:hidden; }
    .waitlist .fx-canvas, .footer .fx-canvas { z-index:-1; }
    .hero-photo .fx-canvas { z-index:0; mix-blend-mode:screen; }
    .approccio-bg { overflow:hidden; }
    .approccio-bg .fx-canvas { z-index:0; opacity:0; }
    .approccio-bg .fx-canvas.is-ready { opacity:1; }
    .waitlist-btn[disabled] { opacity:.6; cursor:default; }
    .waitlist-hp { position:absolute; left:-9999px; width:1px; height:1px; overflow:hidden; opacity:0; }
    .waitlist-note.is-error { color:rgba(244,150,170,.8); }
    .waitlist-note.is-ok { color:rgba(245,240,236,.7); }
    /* con GSAP attivo le transizioni CSS equivalenti vengono sostituite da tween */
    .gsap-on .hero-name { animation:none; opacity:1; }
    .gsap-on .testimonials-track { transition:none; }
    .gsap-on .faq-answer { transition:none; max-height:none; height:0; }
    @media (prefers-reduced-motion: reduce) {
      .fx-canvas { display:none; }
    }
