  :root{
    --black: #08110b;
    --black-2: #0e1a12;
    --green-deep: #0f3d20;
    --green-mid: #1f6e3c;
    --green-acid: #9bff57;
    --green-soft: #5fce85;
    --paper: #eaf3e9;
    --paper-dim: #b9c9bd;
    --line: rgba(155,255,87,0.18);
    --shadow: rgba(0,0,0,0.6);
    --radius: 18px;
    --ease: cubic-bezier(0.32, 0.72, 0, 1);
  }

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

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

  body{
    background: var(--black);
    color: var(--paper);
    font-family: 'Space Mono', monospace;
    line-height:1.6;
    overflow-x:hidden;
    position:relative;
  }

  /* film grain + glow background */
  body::before{
    content:"";
    position:fixed; inset:0;
    background-image:
      radial-gradient(ellipse 800px 600px at 15% -10%, rgba(155,255,87,0.10), transparent 60%),
      radial-gradient(ellipse 700px 500px at 110% 30%, rgba(31,110,60,0.25), transparent 60%),
      radial-gradient(ellipse 900px 700px at 50% 120%, rgba(15,61,32,0.35), transparent 60%);
    pointer-events:none;
    z-index:-3;
  }
  body::after{
    content:"";
    position:fixed; inset:0;
    background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.05'/%3E%3C/svg%3E");
    opacity:0.5;
    pointer-events:none;
    z-index:-2;
    mix-blend-mode:overlay;
  }

  /* floating leaf particles */
  .leaves{
    position:fixed; inset:0; pointer-events:none; z-index:-1; overflow:hidden;
  }
  /* aurora di sfondo: aloni verdi sfocati in lento movimento */
  .orb{
    position:absolute;
    border-radius:50%;
    filter: blur(70px);
    opacity:0.5;
    will-change: transform, opacity;
    animation: orbFloat ease-in-out infinite alternate;
  }
  @keyframes orbFloat{
    0%{   transform: translate(0,0) scale(1); opacity:0.38; }
    50%{  opacity:0.62; }
    100%{ transform: translate(var(--dx, 120px), var(--dy, -90px)) scale(1.18); opacity:0.45; }
  }

  /* layout */
  .wrap{ max-width:1180px; margin:0 auto; padding:0 32px; position:relative; z-index:2; }

  /* nav */
  header{
    position:sticky; top:0; z-index:50;
    backdrop-filter: blur(14px);
    background: rgba(8,17,11,0.72);
    border-bottom:1px solid var(--line);
  }
  nav{
    max-width:1180px; margin:0 auto; padding:18px 32px;
    display:flex; align-items:center; justify-content:space-between;
  }
  .logo{
    font-family:'Fraunces', serif;
    font-weight:700;
    font-size:1.5rem;
    letter-spacing:0.02em;
    color:var(--paper);
    display:flex; align-items:center; gap:10px;
  }
  .logo span{ color:var(--green-acid); font-style:italic; }
  .logo-mark{
    width:34px;height:34px;
    border:1px solid var(--green-acid);
    border-radius:50%;
    display:flex;align-items:center;justify-content:center;
    color:var(--green-acid);
    overflow:hidden;
    animation: spin-slow 14s linear infinite;
  }
  .logo-mark img{
    width:100%; height:100%;
    object-fit:cover;
    border-radius:50%;
  }
  @keyframes spin-slow{ to{ transform:rotate(360deg); } }

  nav ul{
    list-style:none; display:flex; gap:28px;
  }
  nav a{
    color:var(--paper-dim);
    text-decoration:none;
    font-size:0.78rem;
    letter-spacing:0.18em;
    text-transform:uppercase;
    transition: color 0.25s ease;
    position:relative;
  }
  nav a::after{
    content:"";
    position:absolute; left:0; bottom:-6px;
    width:0; height:1px; background:var(--green-acid);
    transition: width 0.3s ease;
  }
  nav a:hover{ color:var(--green-acid); }
  nav a:hover::after{ width:100%; }

  /* hero */
  .hero{
    padding:120px 0 90px;
    text-align:center;
    position:relative;
    overflow:hidden;
  }
  .hero-video{
    position:absolute; inset:0;
    width:100%; height:100%;
    object-fit:cover;
    z-index:0;
    pointer-events:none;
    opacity:0.5;
    /* il fumo su fondo scuro si fonde col tema: il nero diventa trasparente */
    mix-blend-mode:screen;
  }
  .hero-video-overlay{
    position:absolute; inset:0;
    z-index:1;
    pointer-events:none;
    background:
      linear-gradient(180deg, var(--black) 0%, transparent 22%, transparent 70%, var(--black) 100%);
  }
  .hero .wrap{ position:relative; z-index:2; }
  .hero .tag{
    display:inline-block;
    border:1px solid var(--line);
    padding:6px 18px;
    border-radius:100px;
    font-size:0.7rem;
    letter-spacing:0.3em;
    text-transform:uppercase;
    color:var(--green-soft);
    margin-bottom:28px;
    animation: fadeUp 0.9s ease both;
  }
  .hero h1{
    font-family:'Fraunces', serif;
    font-weight:700;
    font-size:clamp(3rem, 9vw, 6.4rem);
    line-height:0.98;
    letter-spacing:-0.02em;
    animation: fadeUp 0.9s ease 0.1s both;
  }
  .hero h1 em{
    font-style:italic;
    color:var(--green-acid);
    display:block;
    text-shadow: 0 0 40px rgba(155,255,87,0.35);
  }
  .hero p{
    max-width:520px; margin:28px auto 0;
    color:var(--paper-dim);
    font-size:0.95rem;
    animation: fadeUp 0.9s ease 0.2s both;
  }
  .hero .cta{
    margin-top:40px;
    display:flex; gap:16px; justify-content:center; flex-wrap:wrap;
    animation: fadeUp 0.9s ease 0.3s both;
  }
  .btn{
    padding:14px 32px;
    border-radius:100px;
    font-family:'Space Mono', monospace;
    font-size:0.78rem;
    letter-spacing:0.18em;
    text-transform:uppercase;
    text-decoration:none;
    cursor:pointer;
    border:1px solid var(--green-acid);
    transition: all 0.3s var(--ease);
  }
  .btn:active{ transform: scale(0.97); }
  .btn.primary{
    background:var(--green-acid);
    color:var(--black);
    box-shadow: 0 0 0 0 rgba(155,255,87,0.5);
  }
  .btn.primary:hover{
    box-shadow: 0 0 30px 4px rgba(155,255,87,0.45);
    transform: translateY(-2px);
  }
  .btn.ghost{
    color:var(--green-acid);
    background:transparent;
  }
  .btn.ghost:hover{
    background:rgba(155,255,87,0.08);
    transform: translateY(-2px);
  }

  @keyframes fadeUp{
    from{ opacity:0; transform:translateY(24px); }
    to{ opacity:1; transform:translateY(0); }
  }

  /* section heading */
  .section{ padding:90px 0; position:relative; }
  .section + .section{ border-top:1px solid var(--line); }
  .section-head{
    display:flex; align-items:flex-end; justify-content:space-between;
    flex-wrap:wrap; gap:20px;
    margin-bottom:50px;
  }
  .section-head .num{
    font-family:'Fraunces', serif;
    font-style:italic;
    font-size:1rem;
    color:var(--green-acid);
    letter-spacing:0.2em;
  }
  .section-head h2{
    font-family:'Fraunces', serif;
    font-weight:700;
    font-size:clamp(2.2rem, 5vw, 3.6rem);
    letter-spacing:-0.01em;
  }
  .section-head .desc{
    max-width:340px;
    color:var(--paper-dim);
    font-size:0.85rem;
    text-align:right;
  }

  /* reveal on scroll */
  .reveal{
    opacity:0; transform:translateY(24px);
    transition: opacity 0.7s var(--ease), transform 0.7s var(--ease);
  }
  .reveal.in{ opacity:1; transform:translateY(0); }

  /* PRODUCTS GRID */
  .grid{
    display:grid;
    grid-template-columns:repeat(auto-fit, minmax(260px,1fr));
    gap:24px;
  }
  .card{
    background: linear-gradient(165deg, var(--black-2), rgba(15,61,32,0.35));
    border:1px solid var(--line);
    border-radius: var(--radius);
    padding:28px;
    position:relative;
    overflow:hidden;
    display:flex;
    flex-direction:column;
    transition: transform 0.45s var(--ease), border-color 0.45s var(--ease), box-shadow 0.45s var(--ease);
  }
  .card::before{
    content:"";
    position:absolute; top:-60%; right:-40%;
    width:220px; height:220px;
    background: radial-gradient(circle, rgba(155,255,87,0.18), transparent 70%);
    transition: transform 0.6s ease;
  }
  .card:hover{
    transform: translateY(-8px);
    border-color: var(--green-acid);
    box-shadow: 0 20px 50px -20px rgba(0,0,0,0.8), 0 0 40px -10px rgba(155,255,87,0.25);
  }
  .card:hover::before{ transform: scale(1.4) translate(10%, 10%); }

  .card .badge{
    position:absolute; top:20px; right:20px;
    font-size:0.62rem; letter-spacing:0.2em; text-transform:uppercase;
    color:var(--black);
    background:var(--green-acid);
    padding:5px 12px; border-radius:100px;
    font-weight:700;
  }
  .card .badge.soon{
    background:transparent;
    border:1px solid var(--green-acid);
    color:var(--green-acid);
  }
  .card-img{
    margin:-28px -28px 18px;
    height:230px;
    overflow:hidden;
    position:relative;
    border-bottom:1px solid var(--line);
    cursor: zoom-in;
  }
  .card-img img{
    width:100%; height:100%; object-fit:cover;
    display:block;
    transition: transform 0.6s ease;
  }
  .card:hover .card-img img{
    transform: scale(1.06);
  }
  .card-img .gallery-hint{
    position:absolute; bottom:10px; right:12px;
    font-size:0.62rem; letter-spacing:0.15em; text-transform:uppercase;
    color:var(--paper); background:rgba(8,17,11,0.6);
    border:1px solid var(--line); border-radius:100px;
    padding:4px 10px; z-index:1;
    backdrop-filter: blur(4px);
  }
  .card h3{
    font-family:'Fraunces', serif;
    font-size:1.5rem;
    font-weight:700;
    margin-bottom:6px;
  }
  .card .strain{
    font-size:0.72rem;
    letter-spacing:0.18em;
    text-transform:uppercase;
    color:var(--green-soft);
    margin-bottom:14px;
  }
  .card p.note{
    color:var(--paper-dim);
    font-size:0.85rem;
    margin-bottom:20px;
    flex-grow:1;
    min-height:44px;
  }
  .price-list{
    list-style:none;
    display:flex;
    flex-direction:column;
    gap:6px;
  }
  .price-list li{
    display:flex; justify-content:space-between; align-items:center;
    font-size:0.83rem;
    padding:7px 10px;
    border-radius:8px;
    background: rgba(255,255,255,0.02);
    border:1px solid transparent;
    user-select:none;
    transition: border-color 0.3s ease, background 0.3s ease;
  }
  .price-list .amt{
    color:var(--green-acid);
    font-family:'JetBrains Mono', monospace;
    font-weight:700;
    text-align:right;
  }
  .price-list .amt small{
    color:var(--green-soft);
    font-weight:400;
    font-size:0.83em;
    opacity:0.8;
  }
  .price-simple{
    border-top:1px dashed var(--line);
    padding-top:14px;
  }

  /* expandable price tables (Cali / Regular) */
  .price-details{
    border-top:1px dashed var(--line);
    padding-top:14px;
  }
  .price-details summary{
    cursor:pointer;
    list-style:none;
    display:flex; align-items:center; justify-content:space-between;
    font-size:0.78rem;
    letter-spacing:0.18em;
    text-transform:uppercase;
    color:var(--green-acid);
    font-weight:700;
    padding:4px 2px;
  }
  .price-details summary::-webkit-details-marker{ display:none; }
  .price-details summary::after{
    content:"→";
    font-size:1rem;
    line-height:1;
    transition: transform 0.2s cubic-bezier(0.23, 1, 0.32, 1);
  }
  .price-details summary:hover::after{ transform: translateX(3px); }
  .price-details summary:active{ transform: scale(0.97); }
  .price-group{ margin-top:16px; }
  .price-group-title{
    font-family:'Fraunces', serif;
    font-style:italic;
    font-size:0.95rem;
    color:var(--paper);
    margin-bottom:8px;
    padding-bottom:6px;
    border-bottom:1px solid var(--line);
  }
  .soon-text{
    color:var(--paper-dim);
    font-size:0.85rem;
    border-top:1px dashed var(--line);
    padding-top:14px;
    font-style:italic;
  }

  /* PRODUCT MODAL (listino popup) */
  .product-modal{
    position:fixed; inset:0; z-index:320;
    display:flex; align-items:center; justify-content:center;
    padding:24px;
    background: rgba(4,9,6,0.78);
    opacity:0; visibility:hidden;
    /* uscita più rapida dell'entrata */
    transition: opacity 0.16s ease, visibility 0.16s ease;
  }
  .product-modal.is-open{
    opacity:1; visibility:visible;
    transition: opacity 0.24s ease, visibility 0.24s ease;
  }
  .product-modal-inner{
    position:relative;
    width:100%; max-width:440px;
    max-height:86vh;
    overflow-y:auto;
    background: var(--black-2);
    border:1px solid var(--line);
    border-radius: var(--radius);
    box-shadow: 0 30px 80px -30px rgba(0,0,0,0.85), 0 0 60px -20px rgba(155,255,87,0.12);
    transform: scale(0.96) translateY(10px);
    transition: transform 0.16s cubic-bezier(0.23, 1, 0.32, 1);
  }
  .product-modal.is-open .product-modal-inner{
    transform: scale(1) translateY(0);
    transition: transform 0.28s cubic-bezier(0.23, 1, 0.32, 1);
  }
  .product-modal-inner::-webkit-scrollbar{ width:8px; }
  .product-modal-inner::-webkit-scrollbar-thumb{ background:var(--line); border-radius:8px; }
  .product-modal-img{
    height:210px; overflow:hidden;
    border-bottom:1px solid var(--line);
    border-radius: var(--radius) var(--radius) 0 0;
  }
  .product-modal-img img{
    width:100%; height:100%; object-fit:cover; display:block;
  }
  .product-modal-close{
    position:absolute; top:14px; right:14px; z-index:2;
    width:34px; height:34px;
    border-radius:50%;
    border:1px solid rgba(255,255,255,0.25);
    background: rgba(8,17,11,0.55);
    backdrop-filter: blur(6px);
    color:var(--paper);
    font-size:1.3rem; line-height:1;
    cursor:pointer;
    display:flex; align-items:center; justify-content:center;
    transition: border-color 0.2s ease, color 0.2s ease, transform 0.16s cubic-bezier(0.23, 1, 0.32, 1);
  }
  .product-modal-close:hover{ border-color:var(--green-acid); color:var(--green-acid); }
  .product-modal-close:active{ transform: scale(0.92); }
  .product-modal-body{ padding:24px 26px 28px; }
  .product-modal-body .pm-title{
    font-family:'Fraunces', serif;
    font-size:1.45rem; font-weight:700;
    margin-bottom:4px;
  }
  .product-modal-body .pm-strain{
    font-size:0.7rem; letter-spacing:0.18em; text-transform:uppercase;
    color:var(--green-soft);
    margin-bottom:12px;
  }
  .product-modal-body .pm-note{
    color:var(--paper-dim);
    font-size:0.85rem;
    margin-bottom:6px;
  }
  .product-modal-body .price-group{ margin-top:18px; }

  @media (max-width:520px){
    .product-modal{ padding:0; align-items:flex-end; }
    .product-modal-inner{
      max-width:100%; max-height:90vh;
      border-radius:22px 22px 0 0;
      transform: translateY(100%);
    }
    .product-modal.is-open .product-modal-inner{
      transform: translateY(0);
      transition: transform 0.34s cubic-bezier(0.32, 0.72, 0, 1);
    }
    .product-modal-img{ border-radius:22px 22px 0 0; }
  }

  /* CONTATTI */
  .contact-grid{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:24px;
  }
  @media (max-width:700px){ .contact-grid{ grid-template-columns:1fr; } }
  .contact-card{
    border:1px solid var(--line);
    border-radius:var(--radius);
    padding:34px;
    display:flex; align-items:center; gap:22px;
    text-decoration:none;
    color:var(--paper);
    background: var(--black-2);
    position:relative;
    overflow:hidden;
    transition: transform 0.35s ease, border-color 0.35s ease;
  }
  .contact-card:hover{
    transform: translateY(-6px) scale(1.01);
    border-color:var(--green-acid);
  }
  .contact-card .glow{
    position:absolute; inset:0;
    background: linear-gradient(120deg, transparent, rgba(155,255,87,0.12), transparent);
    transform: translateX(-100%);
    transition: transform 0.8s ease;
  }
  .contact-card:hover .glow{ transform: translateX(100%); }
  .contact-card .ci{
    width:60px; height:60px; flex-shrink:0;
    border-radius:16px;
    display:flex; align-items:center; justify-content:center;
    color:var(--green-acid);
    background: rgba(155,255,87,0.08);
    border:1px solid var(--line);
  }
  .contact-card .ci img{
    width:34px; height:34px;
    object-fit:contain;
    display:block;
  }
  .contact-card h3{
    font-family:'Fraunces', serif;
    font-size:1.25rem;
    margin-bottom:4px;
  }
  .contact-card p{ color:var(--paper-dim); font-size:0.85rem; }
  .contact-card .arrow{
    margin-left:auto;
    font-size:1.4rem;
    color:var(--green-acid);
    transition: transform 0.3s ease;
  }
  .contact-card:hover .arrow{ transform: translateX(6px); }

  /* PAGAMENTI */
  .pay-wrap{
    display:grid;
    grid-template-columns: 1.1fr 1fr;
    gap:24px;
  }
  @media (max-width:850px){ .pay-wrap{ grid-template-columns:1fr; } }
  .crypto-row{
    display:flex; flex-wrap:wrap; gap:14px; margin-bottom:28px;
  }
  .coin{
    border:1px solid var(--line);
    border-radius:14px;
    padding:16px 22px;
    display:flex; align-items:center; gap:12px;
    font-size:0.95rem;
    background:var(--black-2);
  }
  .coin-icon{
    width:26px; height:26px; border-radius:50%; flex-shrink:0;
    object-fit: cover;
    color: var(--green-acid);
  }
  .coin.fav{
    border-color:var(--green-acid);
    background: linear-gradient(135deg, rgba(155,255,87,0.1), transparent);
  }
  .coin.fav::after{
    content:"★ FAVORITO";
    font-size:0.6rem;
    letter-spacing:0.15em;
    color:var(--green-acid);
    margin-left:6px;
  }

  .pay-card, .ship-card{
    border:1px solid var(--line);
    border-radius:var(--radius);
    padding:32px;
    background: var(--black-2);
  }
  .pay-list{ list-style:none; display:flex; flex-direction:column; gap:16px; }
  .pay-list li{
    display:flex; justify-content:space-between; align-items:center;
    padding-bottom:14px; border-bottom:1px dashed var(--line);
    font-size:0.9rem;
  }
  .pay-list li:last-child{ border-bottom:none; padding-bottom:0; }
  .pay-list .tagval{
    color:var(--green-acid); font-weight:700;
    font-family:'JetBrains Mono', monospace;
  }

  /* SPEDIZIONE */
  .ship-list{ list-style:none; display:flex; flex-direction:column; gap:18px; }
  .ship-list li{
    display:flex; align-items:flex-start; gap:14px;
    font-size:0.95rem;
    opacity:0;
    transform:translateX(-16px);
    animation: slideIn 0.6s ease forwards;
  }
  .ship-list li:nth-child(1){ animation-delay:0.05s; }
  .ship-list li:nth-child(2){ animation-delay:0.15s; }
  .ship-list li:nth-child(3){ animation-delay:0.25s; }
  .ship-list li:nth-child(4){ animation-delay:0.35s; }
  @keyframes slideIn{ to{ opacity:1; transform:translateX(0); } }
  .ship-list .check{
    width:26px;height:26px; flex-shrink:0;
    border-radius:50%;
    background:var(--green-acid);
    color:var(--black);
    display:flex; align-items:center; justify-content:center;
    font-weight:700; font-size:0.85rem;
  }

  /* footer */
  footer{
    border-top:1px solid var(--line);
    padding:50px 0;
    text-align:center;
    color:var(--paper-dim);
    font-size:0.78rem;
    letter-spacing:0.1em;
  }
  footer .age{
    margin-top:10px;
    color:var(--green-soft);
  }

  /* age gate */
  .gate{
    position:fixed; inset:0; z-index:200;
    background:var(--black);
    display:flex; align-items:center; justify-content:center;
    flex-direction:column; gap:24px; text-align:center;
    transition: opacity 0.6s ease, visibility 0.6s ease;
  }
  .gate.hide{ opacity:0; visibility:hidden; }
  .gate-logo{
    width:110px; height:110px;
    border-radius:50%;
    object-fit:cover;
    border:1px solid var(--green-acid);
  }
  .gate h2{
    font-family:'Fraunces', serif; font-size:2.4rem; font-style:italic;
    color:var(--green-acid);
  }
  .gate p{ color:var(--paper-dim); max-width:380px; font-size:0.85rem; }
  .gate .row{ display:flex; gap:16px; }

  ::selection{ background:var(--green-acid); color:var(--black); }

  /* ===== IMAGE LIGHTBOX ===== */
  .lightbox{
    position:fixed; inset:0; z-index:400;
    background:rgba(4,9,6,0.92);
    backdrop-filter: blur(8px);
    display:flex; align-items:center; justify-content:center;
    opacity:0; visibility:hidden;
    transition: opacity 0.3s ease, visibility 0.3s ease;
    padding:24px;
  }
  .lightbox.is-open{ opacity:1; visibility:visible; }
  .lightbox-inner{
    position:relative;
    max-width:min(90vw, 900px);
    max-height:88vh;
    display:flex; align-items:center; justify-content:center;
  }
  .lightbox-inner img{
    max-width:100%; max-height:88vh;
    display:block;
    border-radius:14px;
    border:1px solid var(--line);
    box-shadow: 0 30px 80px -30px rgba(0,0,0,0.85), 0 0 60px -20px rgba(155,255,87,0.15);
  }
  .lightbox-video{
    display:none;
    width:min(90vw, 900px);
    aspect-ratio:16/9;
    border-radius:14px;
    overflow:hidden;
    border:1px solid var(--line);
    background:#000;
    box-shadow: 0 30px 80px -30px rgba(0,0,0,0.85), 0 0 60px -20px rgba(155,255,87,0.15);
  }
  .lightbox-video iframe{
    width:100%; height:100%;
    display:block;
    border:0;
  }
  .lightbox-close{
    position:absolute; top:-18px; right:-18px;
    width:40px; height:40px;
    border-radius:50%;
    border:1px solid var(--line);
    background:var(--black-2);
    color:var(--paper);
    font-size:1.4rem; line-height:1;
    cursor:pointer;
    display:flex; align-items:center; justify-content:center;
    transition: border-color 0.25s ease, color 0.25s ease, transform 0.25s ease;
  }
  .lightbox-close:hover{ border-color:var(--green-acid); color:var(--green-acid); transform:rotate(90deg); }
  .lightbox-nav{
    position:absolute; top:50%; transform:translateY(-50%);
    width:46px; height:46px;
    border-radius:50%;
    border:1px solid var(--line);
    background:rgba(8,17,11,0.6);
    color:var(--paper);
    font-size:1.4rem; line-height:1;
    cursor:pointer;
    display:flex; align-items:center; justify-content:center;
    transition: border-color 0.25s ease, color 0.25s ease;
    backdrop-filter: blur(4px);
  }
  .lightbox-nav:hover{ border-color:var(--green-acid); color:var(--green-acid); }
  .lightbox-prev{ left:-20px; }
  .lightbox-next{ right:-20px; }
  .lightbox-counter{
    position:absolute; bottom:-34px; left:50%; transform:translateX(-50%);
    font-size:0.7rem; letter-spacing:0.2em; text-transform:uppercase;
    color:var(--paper-dim);
  }
  @media (max-width:700px){
    .lightbox-prev{ left:6px; }
    .lightbox-next{ right:6px; }
    .lightbox-close{ top:6px; right:6px; }
    .lightbox-counter{ bottom:-28px; }
  }

  /* ===== RESPONSIVE ===== */
  @media (max-width:1024px){
    .wrap{ padding:0 24px; }
    nav{ padding:16px 24px; }
    .pay-wrap{ grid-template-columns:1fr; }
  }

  @media (max-width:860px){
    .section{ padding:64px 0; }
    .hero{ padding:90px 0 60px; }
    .section-head{ flex-direction:column; align-items:flex-start; }
    .section-head .desc{ text-align:left; max-width:100%; }
  }

  @media (max-width:700px){
    nav{ flex-wrap:wrap; gap:14px; padding:14px 20px; }
    nav ul{
      width:100%;
      gap:18px;
      overflow-x:auto;
      -webkit-overflow-scrolling:touch;
      scrollbar-width:none;
      padding-bottom:2px;
    }
    nav ul::-webkit-scrollbar{ display:none; }
    nav a{ white-space:nowrap; font-size:0.7rem; }
    .wrap{ padding:0 18px; }
    .hero p{ padding:0 10px; }
    .hero .cta{ flex-direction:column; align-items:stretch; }
    .hero .cta .btn{ width:100%; text-align:center; }
    .grid{ grid-template-columns:1fr; gap:18px; }
    .card{ padding:22px; }
    .card-img{ margin:-22px -22px 16px; height:200px; }
    .pay-wrap{ gap:18px; }
    .crypto-row{ gap:10px; }
    .coin{ padding:12px 16px; font-size:0.85rem; flex:1 1 calc(50% - 10px); }
    .gate{ padding:24px; gap:18px; }
    .gate h2{ font-size:1.8rem; }
    .gate .row{ flex-direction:column; width:100%; }
    .gate .row .btn{ width:100%; text-align:center; }
  }

  @media (max-width:420px){
    .hero h1{ font-size:clamp(2.4rem, 14vw, 3.4rem); }
    .section-head h2{ font-size:clamp(1.8rem, 9vw, 2.6rem); }
    .coin{ flex:1 1 100%; }
    .price-list li{ font-size:0.78rem; padding:6px 8px; }
  }

  /* accessibilità: rispetta chi preferisce meno movimento */
  @media (prefers-reduced-motion: reduce){
    .orb{ animation:none; }
    .reveal{ opacity:1; transform:none; transition:none; }
    .logo-mark{ animation:none; }
    html{ scroll-behavior:auto; }
  }
