/* ==========================================================
   VELTRA — style.css
   Indice: 1 Variabili · 2 Base · 3 Header · 4 Menu mobile · 5 Hero
           6 Sezioni · 7 Manifesto · 8 Collezione · 9 Materiali
           10 Community · 11 Lista · 12 Footer · 13 Animazioni · 14 Mobile
   ========================================================== */

/* ---------- 1. VARIABILI (cambia qui colori e tempi) ---------- */
:root{
  --ink:#15140F;
  --canvas:#EDE9DD;
  --canvas-dim:#E2DDCC;
  --olive:#4B4F3A;
  --hazard:#FF5A1F;
  --rust:#8C4B2E;
  --steel:#79766A;
  --line:rgba(21,20,15,0.16);
  --line-light:rgba(237,233,221,0.18);

  --pad-x:clamp(20px,5vw,56px);
  --header-h:72px;
  --ease:cubic-bezier(.22,.61,.36,1);
}

/* ---------- 2. BASE ---------- */
*{margin:0;padding:0;box-sizing:border-box;-webkit-tap-highlight-color:transparent;}
html{
  scroll-behavior:smooth;
  scroll-padding-top:var(--header-h);
  -webkit-text-size-adjust:100%;
}
body{
  background:var(--canvas);
  color:var(--ink);
  font-family:'Work Sans',sans-serif;
  overflow-x:hidden;
}
body.menu-open{overflow:hidden;}
.mono{font-family:'JetBrains Mono',monospace;}
.display{font-family:'Anton',sans-serif;font-weight:400;text-transform:uppercase;letter-spacing:0.01em;}
a{color:inherit;text-decoration:none;}
img{max-width:100%;display:block;}
::selection{background:var(--hazard);color:var(--ink);}

:focus-visible{outline:2px solid var(--hazard);outline-offset:3px;}

/* ---------- 3. HEADER ---------- */
header{
  position:fixed; top:0; left:0; right:0; z-index:100;
  display:flex; align-items:center; justify-content:space-between;
  height:var(--header-h);
  padding:0 var(--pad-x);
  padding-top:env(safe-area-inset-top);
  background:rgba(237,233,221,0.88);
  -webkit-backdrop-filter:blur(8px);
  backdrop-filter:blur(8px);
  border-bottom:1px solid var(--line);
}
.logo{display:flex; align-items:center; gap:10px;}
.logo-mark{
  width:30px;height:30px;border:2px solid var(--ink);border-radius:50%;
  display:flex;align-items:center;justify-content:center;position:relative;
}
.logo-mark::after{content:'';position:absolute;width:6px;height:6px;background:var(--hazard);border-radius:50%;}
.logo-word{font-family:'Anton',sans-serif;font-size:20px;letter-spacing:0.04em;}

nav.links{display:flex;gap:36px;align-items:center;}
nav.links a{
  font-size:13px;letter-spacing:0.06em;text-transform:uppercase;
  font-weight:500;position:relative;padding-bottom:4px;
}
nav.links a::after{
  content:'';position:absolute;left:0;bottom:0;width:0;height:2px;background:var(--hazard);
  transition:width 0.25s ease;
}
nav.links a:hover::after,
nav.links a:focus-visible::after{width:100%;}

.cta-btn{
  display:inline-flex; align-items:center; justify-content:center;
  font-family:'JetBrains Mono',monospace; font-size:12px; font-weight:700;
  letter-spacing:0.05em; text-transform:uppercase;
  background:var(--ink); color:var(--canvas);
  border:1px solid var(--ink);
  padding:12px 20px;
  min-height:44px;               /* area di tocco comoda su telefono */
  cursor:pointer;
  transition:background 0.2s ease, color 0.2s ease, border-color 0.2s ease, transform 0.15s ease;
}
.cta-btn.outline{background:transparent; color:var(--ink);}
.cta-btn.on-dark{background:var(--hazard); color:var(--ink); border-color:var(--hazard);}
.cta-btn.on-dark.outline{background:transparent;color:var(--canvas);border-color:rgba(237,233,221,0.4);}

/* Hover solo dove esiste un vero mouse: su touch evita effetti "incollati" */
@media (hover:hover){
  .cta-btn:hover{background:var(--hazard); border-color:var(--hazard); color:var(--ink);}
  .cta-btn.outline:hover{background:var(--ink); border-color:var(--ink); color:var(--canvas);}
  .cta-btn.on-dark:hover{background:var(--canvas); border-color:var(--canvas);}
  .cta-btn.on-dark.outline:hover{background:var(--canvas);color:var(--ink);}
}
/* Feedback al tocco (sostituisce l'hover su telefono) */
.cta-btn:active{transform:scale(0.97);}

.menu-toggle{
  display:none;background:none;border:none;cursor:pointer;color:var(--ink);
  width:44px;height:44px;align-items:center;justify-content:center;
}

/* ---------- 4. MENU MOBILE (con dissolvenza) ---------- */
.mobile-menu{
  position:fixed; inset:0; z-index:200;
  background:var(--ink); color:var(--canvas);
  display:flex; flex-direction:column; justify-content:center; align-items:center; gap:28px;
  opacity:0; visibility:hidden;
  transition:opacity 0.35s var(--ease), visibility 0s linear 0.35s;
}
.mobile-menu.open{
  opacity:1; visibility:visible;
  transition:opacity 0.35s var(--ease), visibility 0s;
}
.mobile-link{
  font-size:clamp(30px,9vw,40px);
  opacity:0; transform:translateY(16px);
  transition:opacity 0.4s var(--ease), transform 0.4s var(--ease), color 0.2s ease;
}
.mobile-link.accent{color:var(--hazard);}
.mobile-menu.open .mobile-link{opacity:1; transform:none;}
.mobile-menu.open .mobile-link:nth-of-type(1){transition-delay:0.08s;}
.mobile-menu.open .mobile-link:nth-of-type(2){transition-delay:0.14s;}
.mobile-menu.open .mobile-link:nth-of-type(3){transition-delay:0.20s;}
.mobile-menu.open .mobile-link:nth-of-type(4){transition-delay:0.26s;}
.mobile-menu.open .mobile-link:nth-of-type(5){transition-delay:0.32s;}
.menu-close{
  position:absolute; top:14px; right:14px;
  background:none; border:none; color:var(--canvas); cursor:pointer;
  width:48px; height:48px; display:flex; align-items:center; justify-content:center;
}

/* ---------- 5. HERO ---------- */
.hero{
  position:relative;
  min-height:100vh;
  min-height:100svh;
  background:var(--ink);
  color:var(--canvas);
  display:flex; flex-direction:column; justify-content:center;
  overflow:hidden;
  padding:calc(var(--header-h) + 48px) var(--pad-x) 90px;
}
.contour-layer{position:absolute; inset:0; z-index:0; opacity:0.5;}
.contour-layer svg{width:100%;height:100%;}
.hero-inner{position:relative; z-index:2;}
.eyebrow{
  font-family:'JetBrains Mono',monospace;
  font-size:12px; letter-spacing:0.18em; text-transform:uppercase;
  color:var(--hazard); margin-bottom:22px;
  display:flex; align-items:center; gap:10px;
}
.eyebrow::before{content:'';width:22px;height:1px;background:var(--hazard);}
h1.wordmark{
  font-size:clamp(72px,16vw,220px);
  line-height:0.86; letter-spacing:-0.01em; margin-bottom:28px;
}
.hero-sub{
  max-width:520px;
  font-size:clamp(16px,2vw,19px);
  line-height:1.6;
  color:rgba(237,233,221,0.78);
  margin-bottom:44px;
}
.hero-actions{display:flex;gap:16px;flex-wrap:wrap;align-items:center;}

/* Timbro rotante: elemento firma, visibile anche su telefono */
.stamp{
  position:absolute; right:clamp(16px,6vw,80px); bottom:clamp(90px,12vh,130px);
  z-index:2;
  width:clamp(120px,14vw,170px); height:clamp(120px,14vw,170px);
  animation:spin 26s linear infinite;
  pointer-events:none;
}
@keyframes spin{to{transform:rotate(360deg);}}

.hero-foot{
  position:absolute; left:0; right:0; bottom:0; z-index:2;
  display:flex; justify-content:space-between; align-items:center;
  padding:20px var(--pad-x);
  padding-bottom:calc(20px + env(safe-area-inset-bottom));
  border-top:1px solid var(--line-light);
  font-size:11px; letter-spacing:0.08em;
  color:rgba(237,233,221,0.55);
}
.scroll-cue{display:flex;align-items:center;gap:8px;}
.scroll-cue .dash{width:16px;height:1px;background:currentColor;display:inline-block;animation:pulse 1.6s ease-in-out infinite;}
@keyframes pulse{0%,100%{opacity:0.3;}50%{opacity:1;}}

/* ---------- 6. SEZIONI COMUNI ---------- */
section{padding:120px var(--pad-x);}
.section-head{display:flex; justify-content:space-between; align-items:flex-end; gap:24px; margin-bottom:64px; flex-wrap:wrap;}
.sec-eyebrow{font-family:'JetBrains Mono',monospace;font-size:12px;letter-spacing:0.14em;text-transform:uppercase;color:var(--rust);margin-bottom:14px;}
h2.sec-title{font-family:'Anton',sans-serif;font-weight:400;font-size:clamp(36px,6vw,64px);line-height:0.95;text-transform:uppercase;}
.sec-note{font-family:'JetBrains Mono',monospace;font-size:12px;color:var(--steel);max-width:240px;text-align:right;line-height:1.6;}

/* ---------- 7. MANIFESTO ---------- */
.manifesto{background:var(--canvas-dim); border-top:1px solid var(--line); border-bottom:1px solid var(--line);}
.manifesto-grid{display:grid; grid-template-columns:1fr 1.4fr; gap:64px; align-items:start;}
.manifesto blockquote{
  font-family:'Anton',sans-serif;
  font-size:clamp(28px,3.6vw,44px);
  line-height:1.15; text-transform:uppercase;
}
.manifesto blockquote em{font-style:normal;color:var(--hazard);}
.manifesto-body p{font-size:16px;line-height:1.75;color:#2c2b24;margin-bottom:18px;}
.manifesto-body p:last-child{margin-bottom:0;}

/* ---------- 8. COLLEZIONE ---------- */
.tag-grid{display:grid; grid-template-columns:repeat(auto-fit,minmax(250px,1fr)); gap:28px;}
.tag-card{
  position:relative;
  background:var(--canvas);
  border:1px solid var(--ink);
  padding:26px 24px 22px;
}
.tag-card::before{
  content:''; position:absolute; top:18px; left:-1px;
  width:10px; height:10px; border-radius:50%;
  background:var(--canvas); border:1px solid var(--ink);
}
.tag-top{display:flex; justify-content:space-between; align-items:flex-start; margin-bottom:34px;}
.tag-code{font-size:11px; letter-spacing:0.06em; color:var(--steel);}
.tag-status{
  font-family:'JetBrains Mono',monospace; font-size:10px; letter-spacing:0.06em; text-transform:uppercase;
  color:var(--rust); border:1px solid var(--rust); padding:3px 8px;
}
.tag-name{font-size:22px; line-height:1.05; margin-bottom:10px;}
.tag-desc{font-size:14px; line-height:1.6; color:#4a4939; margin-bottom:20px;}
.tag-divider{border:none; border-top:1px dashed var(--line); margin-bottom:14px;}
.tag-meta{display:flex; justify-content:space-between; font-family:'JetBrains Mono',monospace; font-size:10px; color:var(--steel); letter-spacing:0.04em;}

/* L'inclinazione del cartellino: col mouse in hover, su telefono al tocco */
.tag-card.reveal.in{transition:opacity 0.7s ease, transform 0.35s var(--ease);}
@media (hover:hover){
  .tag-card.reveal.in:hover{transform:rotate(-1deg) translateY(-4px);}
}
.tag-card.reveal.in.is-touched{transform:rotate(-1deg) translateY(-4px);}

/* ---------- 9. MATERIALI ---------- */
.materiali{background:var(--ink); color:var(--canvas);}
.materiali .sec-eyebrow{color:var(--hazard);}
.materiali .sec-note{color:rgba(237,233,221,0.5);}
.spec-list{border-top:1px solid var(--line-light);}
.spec-row{
  display:grid; grid-template-columns:44px 1fr 2fr; gap:24px; align-items:center;
  padding:26px 0; border-bottom:1px solid var(--line-light);
}
.spec-num{font-size:12px; color:var(--hazard);}
.spec-name{font-family:'Anton',sans-serif; font-size:20px; text-transform:uppercase;}
.spec-desc{font-size:14px; line-height:1.6; color:rgba(237,233,221,0.68); max-width:520px;}

/* ---------- 10. COMMUNITY ---------- */
.community-grid{display:grid; grid-template-columns:repeat(auto-fit,minmax(150px,1fr)); gap:2px; margin-bottom:40px;}
.community-tile{aspect-ratio:1; background:var(--olive); position:relative; overflow:hidden;}
.community-tile svg,
.community-tile img{width:100%;height:100%;object-fit:cover;}
.community-tile svg{opacity:0.9;}
.community-tile:nth-child(3n+2){background:var(--rust);}
.community-tile:nth-child(4n+3){background:var(--ink);}
.community-foot{display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:16px;}
.handle{font-family:'JetBrains Mono',monospace; font-size:14px; line-height:1.5;}

/* ---------- 11. LISTA D'ATTESA ---------- */
.waitlist{background:var(--olive); color:var(--canvas); text-align:center;}
.waitlist h2{font-family:'Anton',sans-serif;font-weight:400; font-size:clamp(34px,6vw,60px); text-transform:uppercase; margin-bottom:18px; line-height:1;}
.waitlist p{max-width:460px; margin:0 auto 40px; color:rgba(237,233,221,0.8); font-size:15px; line-height:1.6;}
form.signup{display:flex; max-width:440px; margin:0 auto; border:1px solid rgba(237,233,221,0.5);}
form.signup input{
  flex:1; min-width:0; background:transparent; border:none; outline:none; border-radius:0;
  padding:16px 18px; font-family:'JetBrains Mono',monospace;
  font-size:16px;                /* 16px evita lo zoom automatico di iOS al focus */
  color:var(--canvas);
}
form.signup input::placeholder{color:rgba(237,233,221,0.5);}
form.signup:focus-within{border-color:var(--hazard);}
form.signup button{
  background:var(--hazard); color:var(--ink); border:none; border-radius:0; padding:0 22px; min-height:52px;
  font-family:'JetBrains Mono',monospace; font-size:12px; font-weight:700; letter-spacing:0.04em; text-transform:uppercase;
  cursor:pointer; transition:background 0.2s ease, transform 0.15s ease;
}
form.signup button:active{transform:scale(0.97);}
@media (hover:hover){ form.signup button:hover{background:var(--canvas);} }
.form-msg{margin-top:16px; font-size:12px; color:var(--hazard); min-height:16px;}
.form-msg.error{color:#ffb199;}

/* ---------- 12. FOOTER ---------- */
footer{padding:56px var(--pad-x) 32px; padding-bottom:calc(32px + env(safe-area-inset-bottom)); border-top:1px solid var(--line);}
.foot-top{display:flex; justify-content:space-between; flex-wrap:wrap; gap:40px; margin-bottom:56px;}
.foot-brand .logo-word{font-size:28px;}
.foot-brand p{margin-top:14px; font-size:13px; color:var(--steel); max-width:260px; line-height:1.6;}
.foot-cols{display:flex; gap:64px; flex-wrap:wrap;}
.foot-col h4{font-family:'JetBrains Mono',monospace; font-size:11px; letter-spacing:0.1em; text-transform:uppercase; color:var(--steel); margin-bottom:16px; font-weight:400;}
.foot-col a{display:block; font-size:14px; padding:6px 0; color:var(--ink);}
@media (hover:hover){ .foot-col a:hover{color:var(--hazard);} }
.foot-bottom{
  display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:12px;
  padding-top:24px; border-top:1px solid var(--line);
  font-family:'JetBrains Mono',monospace; font-size:11px; color:var(--steel); letter-spacing:0.04em;
}
.back-top{padding:8px 0;}
@media (hover:hover){ .back-top:hover{color:var(--hazard);} }

/* ---------- 13. ANIMAZIONI DI COMPARSA ---------- */
/* Attive solo se JS è acceso (classe .js sull'<html>), così senza JS il contenuto resta visibile */
.js .reveal{opacity:0; transform:translateY(28px); transition:opacity 0.7s ease, transform 0.7s ease;}
.js .reveal.in{opacity:1; transform:translateY(0);}
/* Leggero sfalsamento tra elementi fratelli (schede, righe tecniche) */
.js .tag-card.reveal:nth-child(2), .js .spec-row.reveal:nth-child(2){transition-delay:0.08s;}
.js .tag-card.reveal:nth-child(3), .js .spec-row.reveal:nth-child(3){transition-delay:0.16s;}
.js .tag-card.reveal:nth-child(4), .js .spec-row.reveal:nth-child(4){transition-delay:0.24s;}
/* Dopo la comparsa niente ritardo, così hover e tocco rispondono subito */
.js .tag-card.reveal.in{transition-delay:0s;}

@media (prefers-reduced-motion: reduce){
  *{animation-duration:0.001ms !important; animation-iteration-count:1 !important; transition-duration:0.001ms !important; transition-delay:0s !important; scroll-behavior:auto !important;}
  .js .reveal{opacity:1; transform:none;}
}

/* ---------- 14. MOBILE ---------- */
@media (max-width: 860px){
  section{padding:80px var(--pad-x);}
  nav.links, .header-cta{display:none;}
  .menu-toggle{display:flex;}
  .section-head{margin-bottom:40px;}
  .sec-note{text-align:left;}
  .manifesto-grid{grid-template-columns:1fr; gap:36px;}
  .spec-row{grid-template-columns:36px 1fr; gap:6px 16px; padding:22px 0;}
  .spec-desc{grid-column:2;}

  /* Il timbro resta visibile: più piccolo, in alto a destra sotto l'header */
  .stamp{
    top:calc(var(--header-h) + 14px); bottom:auto; right:16px;
    width:92px; height:92px; opacity:0.9;
  }
  .hero-actions .cta-btn{flex:1 1 100%;}
  .foot-tag{display:none;}

  form.signup{flex-direction:column;border:none;gap:10px;}
  form.signup input{border:1px solid rgba(237,233,221,0.5);}
  form.signup:focus-within{border:none;}
  form.signup input:focus{border-color:var(--hazard);}
}

/* ---------- PAGINA PRODOTTO V01 ---------- */
header{height:calc(var(--header-h) + env(safe-area-inset-top));}
.product-shell{padding-top:calc(var(--header-h) + env(safe-area-inset-top) + 30px);padding-bottom:76px;}
.product-breadcrumb{display:flex;gap:12px;align-items:center;font-size:10px;letter-spacing:.08em;color:var(--steel);margin-bottom:28px;}
.product-breadcrumb a:hover{color:var(--hazard);}
.product-layout{display:grid;grid-template-columns:minmax(0,1.12fr) minmax(340px,.88fr);gap:clamp(38px,7vw,104px);align-items:start;max-width:1440px;margin:0 auto;}
.product-visual{position:relative;min-height:640px;aspect-ratio: .86;background:var(--canvas-dim);border:1px solid var(--line);overflow:hidden;display:grid;place-items:center;}
.product-visual-art{position:absolute;inset:0;display:grid;place-items:center;background:radial-gradient(ellipse at 50% 42%,rgba(75,79,58,.16),transparent 48%),linear-gradient(145deg,#e8e3d5,#d9d3c2);}
.product-orbit{width:min(62%,400px);aspect-ratio:1;border:1px solid rgba(21,20,15,.24);border-radius:50%;position:absolute;}
.product-orbit::before,.product-orbit::after{content:"";position:absolute;border:1px solid rgba(21,20,15,.16);border-radius:50%;inset:12%;}
.product-orbit::after{inset:26%;border-style:dashed;}
.product-mark{position:relative;font-family:'Anton',sans-serif;font-size:clamp(120px,20vw,240px);line-height:.68;text-align:center;color:var(--olive);letter-spacing:-.06em;transform:rotate(-8deg);}
.visual-caption,.product-image-label{position:absolute;bottom:18px;left:18px;font-size:10px;letter-spacing:.1em;color:var(--steel);}
.product-image-label{left:auto;right:18px;color:rgba(21,20,15,.56);writing-mode:vertical-rl;}
.product-visual img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;}
.product-visual.has-image .product-visual-art{display:none;}
.product-info{padding-top:24px;max-width:520px;}
.product-info .eyebrow{font-size:10px;margin-bottom:18px;}
.product-title{font-size:clamp(56px,7vw,92px);line-height:.84;letter-spacing:-.02em;margin-bottom:25px;}
.product-price{font-size:16px;font-weight:700;margin-bottom:22px;}
.product-intro{font-size:15px;line-height:1.7;color:#3e3d34;max-width:450px;margin-bottom:26px;}
.product-rule{height:1px;background:var(--line);margin:24px 0;}
.product-label{display:flex;justify-content:space-between;gap:10px;font-size:10px;letter-spacing:.1em;margin-bottom:10px;}
.product-label:not(:first-of-type){margin-top:22px;}
.variant-select{width:100%;min-height:52px;border:1px solid var(--ink);border-radius:0;background:transparent;padding:0 14px;color:var(--ink);font:500 14px 'Work Sans',sans-serif;}
.variant-select:disabled{opacity:.62;}
.quantity-control{height:48px;display:grid;grid-template-columns:48px 1fr 48px;border:1px solid var(--line);}
.quantity-control button{border:0;background:transparent;font-size:20px;cursor:pointer;}
.quantity-control input{width:100%;border:0;border-radius:0;background:transparent;text-align:center;font:12px 'JetBrains Mono',monospace;color:var(--ink);appearance:textfield;}
.quantity-control input::-webkit-inner-spin-button,.quantity-control input::-webkit-outer-spin-button{appearance:none;margin:0;}
.product-preorder{width:100%;min-height:56px;margin-top:24px;justify-content:space-between;padding:0 18px;background:var(--hazard);color:var(--ink);border-color:var(--hazard);}
.product-preorder:disabled{opacity:.5;cursor:not-allowed;}
.product-status{min-height:18px;margin-top:12px;font-size:10px;line-height:1.6;color:var(--olive);}
.product-status.error{color:#a83216;}
.product-payment-note{font-size:12px;line-height:1.6;color:var(--steel);margin-top:8px;}
.product-detail{border-bottom:1px solid var(--line);padding:16px 0;}
.product-detail summary{font:11px 'JetBrains Mono',monospace;letter-spacing:.08em;text-transform:uppercase;cursor:pointer;}
.product-detail p{font-size:13px;line-height:1.65;color:#4a4939;padding-top:12px;}
.product-back{padding-top:0;text-align:center;}
.product-page footer{padding-top:28px;}
.product-card-link{display:inline-flex;gap:8px;align-items:center;margin-top:18px;font-size:10px;letter-spacing:.08em;border-bottom:1px solid var(--hazard);padding-bottom:5px;}
.product-card-link:hover{color:var(--rust);}
@media(max-width:860px){
  .product-shell{padding-top:calc(var(--header-h) + env(safe-area-inset-top) + 18px);padding-bottom:54px;}
  .product-breadcrumb{margin-bottom:20px;font-size:9px;}
  .product-layout{grid-template-columns:1fr;gap:28px;}
  .product-visual{min-height:0;aspect-ratio:.92;max-height:70svh;}
  .product-mark{font-size:clamp(150px,44vw,240px);}
  .product-info{padding-top:0;max-width:none;}
  .product-title{font-size:clamp(58px,15vw,88px);}
  .product-intro{font-size:14px;}
  .product-back{text-align:left;}
}
@media(max-width:380px){
  .product-shell{padding-left:18px;padding-right:18px;}
  .product-visual{aspect-ratio:.84;}
  .product-breadcrumb{gap:8px;}
}
