/* =========================================================
   VESPERA AUTOMOBILI — styles.css
   Lexend Peta + Pinyon Script · black · gold · Iride green
   ========================================================= */

:root {
  --black:#222326; --ink:#191A1C; --ink-2:#202124;
  --white:#EAEAEA; --grey:#A0A7AB;
  /* schiarito da #797F7E: ora supera 4.5:1 su fondo scuro (era 4.27, sotto AA) */
  --grey-dim:#8D9490;
  --gold:#D0BE52; --gold-hi:#E0D07A;
  --green:#1E4334; --green-hi:#2C6149;
  --line:rgba(208,190,82,0.18); --line-soft:rgba(234,234,234,0.10);
  --f-brand:"Lexend Peta",system-ui,sans-serif;
  --f-script:"Pinyon Script",cursive;
  --container:1240px; --gutter:clamp(20px,5vw,72px);
  --space-section:clamp(88px,12vw,168px);
  --ease:cubic-bezier(0.22,1,0.36,1); --ease-out:cubic-bezier(0.16,1,0.3,1);
}

*,*::before,*::after{box-sizing:border-box;margin:0;padding:0;}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;background:var(--ink);}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto;}}

body{
  font-family:var(--f-brand); background:transparent; color:var(--white);
  font-size:16px; font-weight:300; line-height:1.6; letter-spacing:0.005em;
  -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility;
  overflow-x:clip; /* clip (not hidden) so position:sticky keeps working */
  overflow-wrap:break-word; /* never let a long word (e.g. "reinterpretata") force horizontal scroll */
}
.section-head__title{hyphens:auto;}
img{max-width:100%;display:block;}
a{color:inherit;text-decoration:none;}
button{font:inherit;color:inherit;cursor:pointer;background:none;border:none;}
::selection{background:var(--gold);color:var(--black);}

/* visibile solo a Google e agli screen reader */
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0;}
.container{width:100%;max-width:var(--container);margin-inline:auto;padding-inline:var(--gutter);}
.eyebrow{font-size:0.68rem;font-weight:500;letter-spacing:0.34em;text-transform:uppercase;color:var(--gold);}
.script{font-family:var(--f-script);font-weight:400;font-style:normal;letter-spacing:0;}
em.script{font-style:normal;}

/* Page-background shader: fills the "grey" areas; opaque videos cover their own space */
.bg-shader{position:fixed;inset:0;width:100%;height:100%;z-index:-2;display:block;}
.bg-veil{position:fixed;inset:0;z-index:-1;pointer-events:none;background:rgba(25,26,28,0.74);}

.grain{position:fixed;inset:0;z-index:9;pointer-events:none;opacity:0.045;mix-blend-mode:overlay;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");}

/* Preloader — lo stemma si assembla da 12 frammenti */
.preloader{position:fixed;inset:0;z-index:200;background:var(--ink);display:grid;place-items:center;transition:opacity 0.6s var(--ease),visibility 0.6s;}
.preloader.is-done{opacity:0;visibility:hidden;}
.preloader__inner{display:flex;flex-direction:column;align-items:center;gap:28px;}

.preloader__logo{position:relative;width:clamp(120px,22vw,175px);aspect-ratio:1045/1418;animation:logoSettle 0.6s var(--ease) 1.15s both;}
.preloader__logo span{
  position:absolute;width:33.5%;height:25.2%;
  background-image:url("../assets/img/logo-crest.png");
  background-repeat:no-repeat;background-size:300% 400%;
  animation:tileIn 0.65s var(--ease-out) var(--d) both;
}
/* griglia 3×4: posizione del tassello + porzione dell'immagine + traiettoria d'ingresso */
.preloader__logo span:nth-child(1){left:0;top:0;background-position:0% 0%;--tx:-46px;--ty:-30px;--rot:-9deg;--d:0.30s;}
.preloader__logo span:nth-child(2){left:33.3%;top:0;background-position:50% 0%;--tx:8px;--ty:-58px;--rot:5deg;--d:0.05s;}
.preloader__logo span:nth-child(3){left:66.6%;top:0;background-position:100% 0%;--tx:50px;--ty:-34px;--rot:10deg;--d:0.45s;}
.preloader__logo span:nth-child(4){left:0;top:24.9%;background-position:0% 33.33%;--tx:-60px;--ty:6px;--rot:7deg;--d:0.55s;}
.preloader__logo span:nth-child(5){left:33.3%;top:24.9%;background-position:50% 33.33%;--tx:0px;--ty:26px;--rot:-4deg;--d:0.15s;}
.preloader__logo span:nth-child(6){left:66.6%;top:24.9%;background-position:100% 33.33%;--tx:56px;--ty:-8px;--rot:-8deg;--d:0.35s;}
.preloader__logo span:nth-child(7){left:0;top:49.8%;background-position:0% 66.67%;--tx:-52px;--ty:22px;--rot:-6deg;--d:0.20s;}
.preloader__logo span:nth-child(8){left:33.3%;top:49.8%;background-position:50% 66.67%;--tx:-6px;--ty:44px;--rot:8deg;--d:0.60s;}
.preloader__logo span:nth-child(9){left:66.6%;top:49.8%;background-position:100% 66.67%;--tx:44px;--ty:30px;--rot:4deg;--d:0.10s;}
.preloader__logo span:nth-child(10){left:0;top:74.7%;background-position:0% 100%;--tx:-34px;--ty:52px;--rot:9deg;--d:0.40s;}
.preloader__logo span:nth-child(11){left:33.3%;top:74.7%;background-position:50% 100%;--tx:10px;--ty:60px;--rot:-7deg;--d:0.50s;}
.preloader__logo span:nth-child(12){left:66.6%;top:74.7%;background-position:100% 100%;--tx:40px;--ty:46px;--rot:6deg;--d:0.25s;}

@keyframes tileIn{
  from{opacity:0;transform:translate(var(--tx),var(--ty)) rotate(var(--rot)) scale(1.08);}
  to{opacity:1;transform:translate(0,0) rotate(0) scale(1);}
}
@keyframes logoSettle{from{transform:scale(1.035);}to{transform:scale(1);}}

.preloader__word{font-weight:400;font-size:clamp(1.4rem,5vw,2rem);letter-spacing:0.5em;text-indent:0.5em;color:var(--white);opacity:0;animation:crestIn 0.8s var(--ease) 1.2s forwards;}
.preloader__line{width:clamp(140px,26vw,210px);height:1px;background:var(--gold);transform:scaleX(0);animation:lineIn 0.7s var(--ease) 1.5s forwards;}
@keyframes crestIn{from{opacity:0;transform:translateY(10px);}to{opacity:1;transform:none;}}
@keyframes lineIn{to{transform:scaleX(1);}}

/* Nav */
.nav{position:fixed;inset:0 0 auto 0;z-index:100;border-bottom:1px solid transparent;transition:background 0.4s var(--ease),border-color 0.4s,backdrop-filter 0.4s;}
.nav.is-scrolled{background:rgba(25,26,28,0.72);backdrop-filter:blur(14px) saturate(1.2);-webkit-backdrop-filter:blur(14px) saturate(1.2);border-bottom-color:var(--line);}
.nav__inner{display:flex;align-items:center;justify-content:space-between;gap:24px;max-width:var(--container);margin-inline:auto;padding:18px var(--gutter);transition:padding 0.4s var(--ease);}
.nav.is-scrolled .nav__inner{padding-block:12px;}
.nav__brand{display:flex;align-items:center;gap:13px;}
.nav__crest{height:38px;width:auto;transition:transform 0.4s var(--ease);}
.nav__brand:hover .nav__crest{transform:translateY(-2px);}
.nav__brand-text{display:flex;flex-direction:column;line-height:1;}
.nav__brand-name{font-weight:500;font-size:1.02rem;letter-spacing:0.26em;text-indent:0.26em;color:var(--white);}
.nav__brand-sub{font-size:0.5rem;letter-spacing:0.42em;text-indent:0.42em;color:var(--gold);margin-top:5px;}
.nav__links{display:flex;gap:36px;}
.nav__links a{font-size:0.8rem;letter-spacing:0.08em;color:var(--grey);position:relative;padding-block:6px;transition:color 0.3s;}
.nav__links a::after{content:"";position:absolute;left:0;bottom:0;height:1px;width:0;background:var(--gold);transition:width 0.35s var(--ease);}
.nav__links a:hover{color:var(--white);}
.nav__links a:hover::after{width:100%;}
.nav__cta{position:relative;overflow:hidden;z-index:0;font-size:0.72rem;font-weight:500;letter-spacing:0.12em;text-transform:uppercase;padding:12px 22px;border:1px solid var(--line);border-radius:100px;color:var(--white);transition:color 0.3s,border-color 0.3s;}
.nav__cta::before{content:"";position:absolute;inset:0;z-index:-1;background:var(--gold);transform:scaleX(0);transform-origin:left;transition:transform 0.4s var(--ease);}
.nav__cta:hover{border-color:var(--gold);color:var(--black);}
.nav__cta:hover::before{transform:scaleX(1);}
.nav__end{display:flex;align-items:center;gap:20px;margin-left:auto;}
.lang{display:flex;align-items:center;gap:7px;font-size:0.72rem;font-weight:500;letter-spacing:0.08em;}
.lang-opt{color:var(--grey-dim);padding:6px 2px;transition:color 0.3s;}
.lang-opt:hover{color:var(--white);}
.lang-opt.is-active{color:var(--gold);}
.lang-sep{color:var(--grey-dim);}
.nav__toggle{display:none;width:40px;height:40px;flex-direction:column;gap:6px;align-items:center;justify-content:center;}
.nav__toggle span{display:block;width:24px;height:1.5px;background:var(--white);transition:transform 0.35s var(--ease),opacity 0.3s;}
.nav__toggle.is-open span:nth-child(1){transform:translateY(3.75px) rotate(45deg);}
.nav__toggle.is-open span:nth-child(2){transform:translateY(-3.75px) rotate(-45deg);}

.mobile-menu{position:fixed;inset:0;z-index:90;background:var(--ink);padding:120px var(--gutter) 48px;display:flex;flex-direction:column;justify-content:space-between;transform:translateY(-100%);transition:transform 0.55s var(--ease);visibility:hidden;}
.mobile-menu.is-open{transform:translateY(0);visibility:visible;}
.mobile-menu__links{display:flex;flex-direction:column;}
.mobile-menu__links a{font-weight:400;font-size:clamp(1.6rem,7vw,2.4rem);letter-spacing:0.04em;padding:18px 0;border-bottom:1px solid var(--line);display:flex;align-items:baseline;gap:18px;}
.mobile-menu__idx{font-size:0.7rem;color:var(--gold);letter-spacing:0.1em;}
.mobile-menu__cta{text-align:center;padding:18px;border:1px solid var(--gold);border-radius:100px;color:var(--gold);letter-spacing:0.12em;text-transform:uppercase;font-size:0.8rem;font-weight:500;}

/* Buttons */
.btn{position:relative;overflow:hidden;z-index:0;display:inline-flex;align-items:center;justify-content:center;padding:15px 32px;border-radius:100px;font-size:0.76rem;font-weight:500;letter-spacing:0.1em;text-transform:uppercase;transition:transform 0.3s var(--ease),color 0.3s,border-color 0.3s;will-change:transform;}
.btn::before{content:"";position:absolute;inset:0;z-index:-1;transform:scaleX(0);transform-origin:left;transition:transform 0.45s var(--ease);}
.btn--primary{background:var(--gold);color:var(--black);}
.btn--primary::before{background:var(--gold-hi);}
.btn--primary:hover::before{transform:scaleX(1);}
.btn--ghost{border:1px solid var(--line);color:var(--white);}
.btn--ghost::before{background:var(--gold);}
.btn--ghost:hover{color:var(--black);border-color:var(--gold);}
.btn--ghost:hover::before{transform:scaleX(1);}
.btn--full{width:100%;}

/* =========================================================
   Hero — solo video
   ========================================================= */
.hero{position:relative;min-height:100svh;overflow:hidden;}
.hero__bg{position:absolute;inset:0;z-index:0;}
.hero__img,.hero__media-el{width:100%;height:100%;object-fit:cover;object-position:center 55%;display:block;}
.hero__media-el{position:relative;height:116%;top:-8%;will-change:transform;}
.hero__scrim{position:absolute;inset:0;background:linear-gradient(to bottom,rgba(25,26,28,0.55) 0%,transparent 22%,transparent 74%,rgba(25,26,28,0.9) 100%);}
.hero__m{display:none;} /* composizione riservata al mobile */
.hero__scroll{position:absolute;bottom:30px;left:50%;transform:translateX(-50%);z-index:2;display:flex;flex-direction:column;align-items:center;gap:12px;font-size:0.58rem;font-weight:500;letter-spacing:0.34em;text-transform:uppercase;color:var(--grey);transition:opacity 0.6s var(--ease);animation:scrollPulse 2.6s var(--ease) infinite;}
.hero__scroll.is-hidden{opacity:0;pointer-events:none;}
.hero__scroll-line{width:1px;height:46px;background:linear-gradient(var(--gold),transparent);}
@keyframes scrollPulse{0%,100%{opacity:0.45;}50%{opacity:1;}}

/* =========================================================
   Section heads
   ========================================================= */
.section-head{margin-bottom:clamp(40px,6vw,72px);}
.section-head__idx{font-size:0.68rem;font-weight:500;letter-spacing:0.28em;text-transform:uppercase;color:var(--gold);display:block;margin-bottom:20px;}
.section-head__title{font-weight:500;font-size:clamp(2rem,5vw,3.6rem);line-height:1.1;letter-spacing:-0.01em;}
.section-head__title .script{color:var(--gold);font-size:1.5em;line-height:0.6;}

/* =========================================================
   About (descrizione + simbologia)
   ========================================================= */
/* Simbologia (subito sotto il primo video) */
.symbol-sec{padding-block:var(--space-section);border-top:1px solid var(--line);}
.symbol__feature{display:grid;grid-template-columns:0.85fr 1.15fr;gap:clamp(32px,5vw,72px);align-items:center;margin-bottom:clamp(48px,7vw,80px);}
.symbol__painting{margin:0;}
.symbol__mark{margin:0;max-width:360px;width:100%;}
/* Image frame: clips a subtle hover zoom */
.media-frame{display:block;overflow:hidden;border:1px solid var(--line-soft);}
.media-frame img{display:block;width:100%;transition:transform 0.7s var(--ease);}
.symbol__painting:hover .media-frame img,.symbol__mark:hover .media-frame img{transform:scale(1.04);}
.symbol__painting figcaption,.symbol__mark figcaption{margin-top:12px;font-size:0.62rem;font-weight:500;letter-spacing:0.14em;text-transform:uppercase;color:var(--grey-dim);transition:color 0.4s var(--ease);}
.symbol__painting:hover figcaption,.symbol__mark:hover figcaption{color:var(--gold);}
.symbol__aside{display:flex;flex-direction:column;gap:clamp(22px,3vw,32px);align-items:flex-start;}
.symbol__crest{width:clamp(76px,9vw,108px);height:auto;}
.symbol__name{font-weight:300;font-size:clamp(1.35rem,2.8vw,2.1rem);line-height:1.45;max-width:30ch;}
.symbol__name strong{font-weight:600;color:var(--gold);}
.symbol__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);border:1px solid var(--line);}
.symbol__item{background:var(--ink);padding:clamp(24px,3vw,36px);transition:background 0.4s var(--ease);}
.symbol__item:hover{background:var(--ink-2);}
.symbol__k{display:block;font-weight:500;font-size:0.72rem;letter-spacing:0.18em;text-transform:uppercase;color:var(--gold);margin-bottom:16px;}
.symbol__item p{color:var(--grey);line-height:1.7;font-size:0.98rem;}

/* =========================================================
   Story — video 2 pinned + scroll narrative
   ========================================================= */
.story{position:relative;border-top:1px solid var(--line);}
.story__head{padding-top:var(--space-section);padding-bottom:clamp(32px,5vw,56px);}
.story__lockup{display:block;margin-top:14px;font-size:clamp(2.6rem,9vw,6rem);line-height:1;color:var(--white);}
.story__pin{position:sticky;top:0;height:100svh;overflow:hidden;z-index:0;background:var(--ink);}
.story__video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:1;}
.story__watermark{display:none;} /* filigrana: solo mobile, dove resta spazio sotto il video */
.story__scrim{position:absolute;inset:0;z-index:2;background:linear-gradient(to bottom,rgba(25,26,28,0.72) 0%,rgba(25,26,28,0.28) 30%,rgba(25,26,28,0.45) 62%,rgba(25,26,28,0.92) 100%);}
.story__lockup .script{color:var(--gold);font-size:1.35em;}
.story__evo{display:inline-block;font-family:var(--f-brand);font-weight:500;font-size:0.46em;letter-spacing:0.28em;transform:scaleX(1.12);transform-origin:left;vertical-align:middle;margin-left:0.1em;}

.story__steps{position:relative;z-index:2;margin-top:-100svh;}
.story__step{min-height:100svh;display:flex;align-items:flex-end;justify-content:center;padding:0 var(--gutter) clamp(80px,14vh,150px);}
.story__step--stats{align-items:center;padding-bottom:var(--gutter);}
.story__card{max-width:min(92vw,1000px);text-align:center;}
.story__k{display:block;font-weight:500;font-size:0.72rem;letter-spacing:0.24em;text-transform:uppercase;color:var(--gold);margin-bottom:20px;}
.story__k--center{text-align:center;margin-bottom:32px;}
.story__card p{font-weight:300;font-size:clamp(1.2rem,2.6vw,1.95rem);line-height:1.45;letter-spacing:-0.01em;color:var(--white);text-wrap:pretty;}

/* Visibili di default (niente JS / reduced-motion): mai testo invisibile */
.story__card,.story__stats{opacity:1;transform:none;}
/* Con JS: opacità guidata dallo scroll, quindi nessuna transizione che la insegua */
.story.is-scrollfade .story__card,.story.is-scrollfade .story__stats{
  opacity:0;transition:none;will-change:opacity,transform;}

.story__stats{width:100%;max-width:920px;}

/* Specs */
.specs{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--line);background:rgba(25,26,28,0.55);backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);}
.spec{padding:clamp(24px,3.4vw,40px) 12px;text-align:center;border-bottom:1px solid var(--line);border-right:1px solid var(--line);transition:background 0.35s var(--ease);}
.spec:nth-child(3n){border-right:none;}
.spec:hover{background:rgba(208,190,82,0.05);}
.spec__num{font-weight:600;font-variant-numeric:tabular-nums;font-feature-settings:"tnum";font-size:clamp(2.4rem,5.6vw,4rem);line-height:1;color:var(--white);display:inline-block;letter-spacing:-0.02em;transition:color 0.35s var(--ease);}
.spec:hover .spec__num{color:var(--gold);}
.spec__unit{font-size:0.78rem;font-weight:500;color:var(--gold);margin-left:8px;letter-spacing:0.04em;}
.spec__label{display:block;margin-top:14px;font-size:0.62rem;font-weight:500;letter-spacing:0.16em;text-transform:uppercase;color:var(--grey-dim);}

/* =========================================================
   Gallery
   ========================================================= */
.gallery{padding-block:var(--space-section);border-top:1px solid var(--line);}
.gallery__filters{display:flex;flex-wrap:wrap;gap:12px;margin-bottom:40px;}
.chip{padding:10px 20px;border:1px solid var(--line);border-radius:100px;font-size:0.66rem;font-weight:500;letter-spacing:0.16em;text-transform:uppercase;color:var(--grey);transition:all 0.3s var(--ease);}
.chip:hover{color:var(--white);border-color:var(--grey);}
.chip.is-active{background:var(--gold);border-color:var(--gold);color:var(--black);}
.gallery__grid{display:grid;grid-template-columns:repeat(3,1fr);grid-auto-rows:240px;gap:16px;}
.tile{position:relative;overflow:hidden;border:1px solid var(--line-soft);background:var(--ink-2);display:block;text-align:left;transition:border-color 0.4s;}
.tile--tall{grid-row:span 2;}
.tile img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform 0.8s var(--ease);}
.tile::after{content:"";position:absolute;inset:0;background:linear-gradient(to top,rgba(15,16,17,0.75),transparent 55%);opacity:0.85;transition:opacity 0.4s;}
.tile::before{content:"";position:absolute;top:0;left:0;height:2px;width:0;background:var(--gold);z-index:3;transition:width 0.5s var(--ease);}
.tile:hover{border-color:var(--gold);}
.tile:hover::before{width:100%;}
.tile:hover img{transform:scale(1.06);}
.tile:hover::after{opacity:0.5;}
.tile__cap{position:absolute;left:16px;bottom:14px;z-index:2;font-size:0.64rem;font-weight:500;letter-spacing:0.12em;text-transform:uppercase;color:var(--white);transition:transform 0.4s var(--ease);}
.tile:hover .tile__cap{transform:translateX(4px);}
.tile__cap em{color:var(--gold);font-style:normal;}
.tile--soon{display:grid;place-content:center;text-align:center;gap:8px;border:1px dashed var(--line);background:var(--ink);cursor:default;}
.tile--soon::after,.tile--soon::before{display:none;}
.tile__soon-label{font-weight:400;font-size:1.15rem;color:var(--grey);}
.tile__soon-sub{font-size:0.62rem;font-weight:500;letter-spacing:0.2em;text-transform:uppercase;color:var(--grey-dim);}
.tile.is-hidden{display:none;}

/* =========================================================
   Process
   ========================================================= */
.process{padding-block:var(--space-section);border-top:1px solid var(--line);}
.process__list{list-style:none;}
.process__step{position:relative;display:grid;grid-template-columns:120px 1fr;gap:32px;padding:clamp(28px,4vw,44px) 0 clamp(28px,4vw,44px) 0;border-top:1px solid var(--line);align-items:start;transition:padding-left 0.4s var(--ease);}
.process__step:last-child{border-bottom:1px solid var(--line);}
.process__step::before{content:"";position:absolute;left:-1px;top:0;bottom:0;width:2px;background:var(--gold);transform:scaleY(0);transform-origin:top;transition:transform 0.5s var(--ease);}
.process__step:hover::before{transform:scaleY(1);}
.process__step:hover{padding-left:20px;}
.process__num{font-size:0.85rem;font-weight:500;color:var(--gold);padding-top:8px;letter-spacing:0.05em;transition:color 0.3s;}
.process__content{min-width:0;}
.process__content h3{font-weight:500;font-size:clamp(1.5rem,3.2vw,2.2rem);margin-bottom:14px;letter-spacing:-0.01em;transition:color 0.3s;}
.process__step:hover h3{color:var(--gold-hi);}
.process__content p{color:var(--grey);max-width:60ch;line-height:1.75;}

/* =========================================================
   Contact (con shader Silk)
   ========================================================= */
.contact{position:relative;padding-block:var(--space-section);border-top:1px solid var(--line);}
.contact__inner{position:relative;z-index:1;display:grid;grid-template-columns:1fr 1fr;gap:clamp(40px,6vw,88px);align-items:start;}
.contact__title{font-weight:500;font-size:clamp(2.2rem,5.4vw,4rem);line-height:1;margin-block:18px 24px;letter-spacing:-0.01em;}
.contact__title .script{color:var(--gold);font-size:1.5em;line-height:0.6;}
.contact__lead{color:var(--grey);max-width:44ch;line-height:1.75;}
.contact__details{list-style:none;margin-top:44px;display:grid;gap:18px;}
.contact__details li{display:grid;grid-template-columns:92px minmax(0,1fr);gap:16px;align-items:baseline;padding-bottom:18px;border-bottom:1px solid var(--line);}
.contact__k{font-size:0.62rem;font-weight:500;letter-spacing:0.18em;text-transform:uppercase;color:var(--grey-dim);}
.contact__details a,.contact__details li>span{color:var(--white);transition:color 0.3s;overflow-wrap:anywhere;}
.contact__details a:hover{color:var(--gold);}
.contact__form{display:grid;gap:20px;}
.field{display:grid;gap:8px;}
.field label{font-size:0.62rem;font-weight:500;letter-spacing:0.16em;text-transform:uppercase;color:var(--grey);}
.field input,.field textarea,.field select{background:rgba(32,33,36,0.85);border:1px solid var(--line);color:var(--white);padding:14px 16px;font-family:var(--f-brand);font-weight:300;font-size:1rem;border-radius:2px;transition:border-color 0.3s,background 0.3s;width:100%;}
.field textarea{resize:vertical;min-height:110px;}
.field input:focus,.field textarea:focus,.field select:focus{outline:none;border-color:var(--gold);background:var(--black);}
.field.has-error input,.field.has-error textarea{border-color:#C0685A;}
.field__error{font-size:0.62rem;color:#d98d78;letter-spacing:0.04em;min-height:0;}
.contact__note{font-size:0.7rem;font-weight:500;letter-spacing:0.06em;color:var(--gold);text-align:center;min-height:1em;transition:color 0.3s;}
.contact__note.is-error{color:#d98d78;}
/* Honeypot anti-spam: invisibile agli umani, i bot lo compilano e vengono scartati */
.hp{position:absolute;left:-9999px;width:1px;height:1px;opacity:0;pointer-events:none;}

/* =========================================================
   Footer
   ========================================================= */
.footer{border-top:1px solid var(--line);padding-block:52px;}
.footer__inner{display:flex;flex-wrap:wrap;gap:26px 48px;align-items:center;justify-content:space-between;}
.footer__brand{display:flex;align-items:center;gap:13px;}
.footer__crest{height:42px;width:auto;}
.footer__name{display:block;font-weight:500;font-size:1rem;letter-spacing:0.26em;text-indent:0.26em;}
.footer__sub{display:block;font-size:0.5rem;letter-spacing:0.42em;text-indent:0.42em;color:var(--gold);margin-top:5px;}
.footer__nav{display:flex;flex-wrap:wrap;gap:14px 26px;}
.footer__nav a{font-size:0.8rem;color:var(--grey);position:relative;transition:color 0.3s;}
.footer__nav a::after{content:"";position:absolute;left:0;bottom:-4px;height:1px;width:0;background:var(--gold);transition:width 0.35s var(--ease);}
.footer__nav a:hover{color:var(--gold);}
.footer__nav a:hover::after{width:100%;}
.footer__legal{font-size:0.62rem;font-weight:300;letter-spacing:0.06em;color:var(--grey-dim);width:100%;}

/* Lightbox */
.lightbox{position:fixed;inset:0;z-index:150;background:rgba(12,13,14,0.95);display:grid;place-items:center;padding:var(--gutter);opacity:0;visibility:hidden;transition:opacity 0.4s var(--ease),visibility 0.4s;}
.lightbox.is-open{opacity:1;visibility:visible;}
.lightbox__fig{max-width:1100px;width:100%;}
.lightbox__fig img{width:100%;border:1px solid var(--line);background:var(--ink-2);}
.lightbox__fig figcaption{font-size:0.68rem;font-weight:500;letter-spacing:0.16em;text-transform:uppercase;color:var(--gold);margin-top:16px;text-align:center;}
.lightbox__close{position:absolute;top:22px;right:30px;font-size:2.4rem;color:var(--white);line-height:1;transition:color 0.3s,transform 0.3s;}
.lightbox__close:hover{color:var(--gold);transform:rotate(90deg);}

/* Reveal */
.reveal{opacity:0;transform:translateY(26px);transition:opacity 0.9s var(--ease-out),transform 0.9s var(--ease-out);}
.reveal.is-in{opacity:1;transform:none;}
.reveal[data-delay="1"]{transition-delay:0.08s;}
.reveal[data-delay="2"]{transition-delay:0.16s;}
.reveal[data-delay="3"]{transition-delay:0.24s;}

/* Clip-path wipe reveal for media (uncovers, doesn't fade) */
.reveal-wipe{clip-path:inset(0 0 100% 0);transition:clip-path 1.1s var(--ease-out);}
.reveal-wipe.is-in{clip-path:inset(0 0 0 0);}

/* Word-by-word headline reveal (no clipping, so the script face isn't cut) */
.js-split .w{display:inline-block;opacity:0;transform:translateY(0.5em);transition:opacity 0.7s var(--ease-out),transform 0.7s var(--ease-out);}
.js-split.is-in .w{opacity:1;transform:none;}

/* =========================================================
   Gli interni — teaser (interni in progettazione)
   ========================================================= */
.interni{position:relative;padding:var(--space-section) 0;overflow:hidden;}
.interni__bg{position:absolute;inset:0;z-index:0;
   background:
     radial-gradient(120% 90% at 78% 30%, rgba(30,67,52,0.38), transparent 60%),
     radial-gradient(90% 70% at 12% 85%, rgba(208,190,82,0.06), transparent 55%),
     linear-gradient(180deg,#16171A 0%, #191A1C 55%, #141517 100%);}
.interni__crest{position:absolute;right:-4%;top:50%;transform:translateY(-50%);
   width:min(48vw,560px);opacity:0.05;filter:grayscale(1) brightness(1.6);z-index:0;pointer-events:none;}
.interni .container{position:relative;z-index:2;}
.interni__grid{display:grid;grid-template-columns:1.15fr 0.85fr;gap:clamp(32px,6vw,88px);align-items:center;}
.interni__eyebrow{display:inline-flex;align-items:center;gap:12px;color:var(--grey-dim);
   font-size:0.66rem;letter-spacing:0.24em;text-transform:uppercase;font-weight:500;margin-bottom:26px;}
.interni__eyebrow::before{content:"";width:34px;height:1px;background:var(--gold);opacity:0.7;}
.interni__title{font-family:var(--f-brand);font-weight:300;letter-spacing:-0.01em;
   font-size:clamp(2.1rem,5.2vw,3.9rem);line-height:1.02;color:var(--white);}
.interni__title .script{font-family:var(--f-script);font-weight:400;color:var(--gold-hi);
   font-size:1.32em;letter-spacing:0;}
.interni__lead{margin-top:28px;max-width:46ch;color:var(--grey);font-weight:300;
   font-size:1.02rem;line-height:1.72;}
.interni__pill{display:inline-flex;align-items:center;gap:10px;margin-top:34px;
   padding:9px 18px;border:1px solid var(--line);border-radius:100px;
   color:var(--gold);font-size:0.62rem;letter-spacing:0.2em;text-transform:uppercase;font-weight:600;}
.interni__pill::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--gold);
   box-shadow:0 0 0 0 rgba(208,190,82,0.5);animation:interniPulse 2.6s var(--ease) infinite;}
@media (prefers-reduced-motion:reduce){.interni__pill::before{animation:none;}}
@keyframes interniPulse{0%{box-shadow:0 0 0 0 rgba(208,190,82,0.45);}70%{box-shadow:0 0 0 10px rgba(208,190,82,0);}100%{box-shadow:0 0 0 0 rgba(208,190,82,0);}}
.interni__cta-wrap{margin-top:40px;}
.interni__cta{display:inline-flex;align-items:center;gap:12px;
   padding:15px 30px;border:1px solid var(--gold);color:var(--gold);
   font-size:0.72rem;letter-spacing:0.16em;text-transform:uppercase;font-weight:600;
   transition:background 0.45s var(--ease),color 0.45s var(--ease);}
.interni__cta:hover{background:var(--gold);color:var(--black);}
.interni__cta svg{width:15px;height:15px;}
.interni__materials{display:flex;flex-direction:column;border-top:1px solid var(--line-soft);}
.interni__mat{padding:22px 4px;border-bottom:1px solid var(--line-soft);
   display:flex;align-items:baseline;gap:16px;transition:padding-left 0.4s var(--ease);}
.interni__mat:hover{padding-left:12px;}
.interni__mat b{font-family:var(--f-brand);font-weight:500;color:var(--white);
   font-size:1.02rem;letter-spacing:0.01em;flex:1;}
.interni__mat span{color:var(--grey-dim);font-size:0.78rem;font-weight:300;max-width:20ch;text-align:right;}
.interni__mat i{font-style:normal;color:var(--gold);font-size:0.7rem;font-weight:600;letter-spacing:0.14em;min-width:26px;}
@media (max-width:980px){
  .interni__grid{grid-template-columns:1fr;gap:44px;}
  .interni__materials{order:2;}
  .interni__crest{opacity:0.045;width:80vw;right:-20%;}
}

/* =========================================================
   Responsive
   ========================================================= */
@media (max-width:980px){
  .nav__links,.nav__cta{display:none;}
  .nav__toggle{display:flex;}
  .symbol__feature{grid-template-columns:1fr;gap:32px;}
  .symbol__grid{grid-template-columns:1fr;}
  .contact__inner{grid-template-columns:1fr;}
}
@media (max-width:760px){
  .specs{grid-template-columns:repeat(2,1fr);}
  .spec:nth-child(3n){border-right:1px solid var(--line);}
  .spec:nth-child(2n){border-right:none;}
  .gallery__grid{grid-template-columns:repeat(2,1fr);grid-auto-rows:200px;}
  .process__step{grid-template-columns:54px 1fr;gap:18px;}
  .hero__img,.hero__media-el{object-position:center 60%;}
}
@media (max-width:440px){
  .specs{grid-template-columns:1fr;}
  .spec,.spec:nth-child(2n){border-right:none;}
  .gallery__grid{grid-template-columns:1fr;grid-auto-rows:220px;}
  .tile--tall{grid-row:span 1;}
}

/* =========================================================
   MOBILE — layout studiato ad hoc (non desktop compressa)
   ========================================================= */

/* CTA fissa in basso (solo dove la CTA del nav è nascosta) */
.mobile-cta{position:fixed;left:50%;bottom:calc(16px + env(safe-area-inset-bottom,0px));z-index:80;display:none;align-items:center;white-space:nowrap;background:var(--gold);color:var(--black);font-weight:600;font-size:0.66rem;letter-spacing:0.12em;text-transform:uppercase;padding:13px 24px;border-radius:100px;box-shadow:0 10px 30px rgba(0,0,0,0.5);opacity:0;transform:translate(-50%,90px);transition:transform 0.5s var(--ease),opacity 0.35s;}
.mobile-cta.is-show{opacity:1;transform:translate(-50%,0);}
@media(max-width:980px){.mobile-cta{display:inline-flex;}}

@media (max-width:760px){
  :root{--space-section:76px;}

  /* ============================================================
     HERO MOBILE — immersiva a tutto schermo con il video 9:16.
     Girato in verticale: riempie lo schermo senza tagli veri.
     ============================================================ */
  .hero{min-height:100svh;display:flex;flex-direction:column;justify-content:flex-end;
        gap:0;padding:0 0 calc(20px + env(safe-area-inset-bottom,0px));}
  .hero__bg{position:absolute;inset:0;width:auto;}
  .hero__media-el{position:absolute;top:0;left:0;width:100%;height:100%;
                  aspect-ratio:auto;object-fit:cover;object-position:center;
                  background:transparent;border:0;}
  /* scrim solo in basso: protegge il testo lasciando l'auto e i riflessi in vista */
  .hero__scrim{display:block;background:linear-gradient(to bottom,
      rgba(25,26,28,0.45) 0%, rgba(25,26,28,0) 22%,
      rgba(25,26,28,0) 44%, rgba(25,26,28,0.88) 86%, rgba(25,26,28,0.97) 100%);}

  .hero__m{position:relative;z-index:2;display:flex;flex-direction:column;align-items:center;
           text-align:center;padding-inline:var(--gutter);gap:13px;}
  .hero__m-eyebrow{font-size:0.58rem;font-weight:500;letter-spacing:0.28em;text-transform:uppercase;color:var(--gold);}
  .hero__m-lockup{font-size:clamp(2.5rem,13vw,3.4rem);line-height:1;color:var(--white);}
  .hero__m-lockup .script{color:var(--gold);font-size:1.3em;}
  .hero__m-lockup .story__evo{font-size:0.4em;}
  .hero__m-line{width:56px;height:1px;background:var(--gold);opacity:0.55;}
  .hero__m-stats{display:flex;gap:20px;list-style:none;}
  .hero__m-stats li{font-size:0.8rem;font-weight:600;color:var(--white);font-variant-numeric:tabular-nums;}
  .hero__m-stats em{font-style:normal;font-size:0.6em;font-weight:500;color:var(--gold);margin-left:3px;letter-spacing:0.06em;}
  /* la cue chiude la composizione, sopra il video */
  .hero__scroll{position:relative;z-index:2;transform:none;bottom:auto;left:auto;
                font-size:0.56rem;gap:8px;margin-top:16px;}
  .hero__scroll-line{height:26px;}

  /* — Story: anche qui il video per intero, testo sotto — */
  .story__video{position:absolute;top:12%;left:0;width:100%;height:auto;
                aspect-ratio:16/9;object-fit:contain;background:#0C0D0E;
                border-block:1px solid var(--line-soft);}
  /* lo stemma riempie il vuoto sotto il video, appena schiarito */
  .story__watermark{display:block;position:absolute;left:50%;top:64%;
                    transform:translate(-50%,-50%);height:30vh;width:auto;
                    z-index:1;opacity:0.13;pointer-events:none;
                    filter:brightness(1.5) saturate(0);}
  .story__scrim{background:linear-gradient(to bottom,rgba(25,26,28,0.55) 0%,rgba(25,26,28,0.10) 22%,rgba(25,26,28,0.45) 52%,rgba(25,26,28,0.88) 100%);}
  .story__step{align-items:flex-end;padding-bottom:clamp(56px,9vh,96px);}

  /* — Simbolo: crest+nome in testa, dipinto come tavola editoriale centrata — */
  .symbol__feature{display:flex;flex-direction:column;gap:30px;margin-bottom:52px;}
  .symbol__aside{order:1;display:grid;grid-template-columns:64px 1fr;gap:14px 18px;align-items:start;}
  .symbol__crest{width:64px;grid-row:1;}
  .symbol__name{font-size:1.15rem;line-height:1.55;max-width:none;}
  .symbol__mark{grid-column:1/-1;max-width:none;margin-top:6px;}
  .symbol__painting{order:2;width:min(82%,420px);margin-inline:auto;}
  .symbol__painting figcaption{text-align:center;}
  .symbol__item{padding:22px 20px;}

  /* — Story: composizione centrata, passi più corti — */
  .story__head{text-align:center;}
  .story__step{min-height:88svh;}
  .story__card p{font-size:1.08rem;line-height:1.6;}
  .story__k{margin-bottom:12px;}

  /* — Specs: pannello compatto 2×3, non sei lapidi — */
  .specs{grid-template-columns:repeat(2,1fr);}
  .spec{padding:20px 8px;border-right:1px solid var(--line);}
  .spec:nth-child(2n){border-right:none;}
  .spec:nth-child(3n){border-right:1px solid var(--line);}
  .spec:nth-child(6){border-right:none;}
  .spec__num{font-size:2.15rem;}
  .spec__unit{font-size:0.7rem;margin-left:5px;}
  /* leggibile: 0.54rem faceva 8.6px, sotto la soglia di leggibilità su telefono */
  .spec__label{font-size:0.7rem;margin-top:8px;letter-spacing:0.1em;color:var(--grey);}

  /* — Ritmo: elimina il vuoto morto prima della galleria — */
  .story__step--stats{min-height:auto;padding-bottom:clamp(40px,7vh,70px);}
  .gallery{padding-top:clamp(48px,8vw,72px);}

  /* — Gallery: carosello a scorrimento con snap (pattern nativo mobile) — */
  .gallery__filters{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;margin-inline:calc(-1*var(--gutter));padding-inline:var(--gutter);}
  .gallery__filters::-webkit-scrollbar{display:none;}
  .chip{flex:0 0 auto;}
  .gallery__grid{display:flex;gap:12px;overflow-x:auto;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;scrollbar-width:none;margin-inline:calc(-1*var(--gutter));padding-inline:var(--gutter);padding-bottom:6px;}
  .gallery__grid::-webkit-scrollbar{display:none;}
  .gallery__grid .tile{flex:0 0 80%;aspect-ratio:4/3;height:auto;scroll-snap-align:center;}
  .gallery__grid .tile--soon{flex:0 0 58%;}

  /* — Tocco: minimo 44px sugli elementi interattivi — */
  .lang-opt{min-width:44px;min-height:44px;display:inline-flex;align-items:center;justify-content:center;padding:0;}
  .footer__nav{gap:2px 22px;}
  .footer__nav a{min-height:44px;display:inline-flex;align-items:center;}
  .mobile-menu__links a{min-height:52px;}
  .nav__toggle{width:46px;height:46px;}
  .nav__brand{min-height:44px;}
  .footer__brand{min-height:46px;}
  .chip{min-height:44px;display:inline-flex;align-items:center;}
  .mobile-cta{min-height:46px;}
  .lightbox__close{width:46px;height:46px;display:flex;align-items:center;justify-content:center;top:14px;right:16px;}

  /* — Filosofia: passi verticali puliti, niente effetti da hover — */
  .process__step{grid-template-columns:1fr;gap:10px;padding-block:26px;}
  .process__step:hover{padding-left:0;}
  .process__step::before{display:none;}
  .process__num{padding-top:0;font-size:0.72rem;}
  .process__content h3{font-size:1.35rem;margin-bottom:8px;}
  .process__content p{font-size:0.95rem;}

  /* — Contatti: etichetta sopra, valore sotto: niente troncature — */
  .contact__details{margin-top:32px;gap:0;}
  .contact__details li{grid-template-columns:1fr;gap:5px;padding-block:14px;}
  .contact__details a,.contact__details li>span:last-child{
    font-size:1rem;line-height:1.35;display:inline-block;min-height:44px;
    display:flex;align-items:center;}
  .contact__k{font-size:0.58rem;}
}

/* Reduced motion */
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:0.001ms !important;animation-iteration-count:1 !important;transition-duration:0.001ms !important;scroll-behavior:auto !important;}
  .reveal{opacity:1 !important;transform:none !important;}
  .reveal-wipe{clip-path:none !important;}
  .js-split .w{opacity:1 !important;transform:none !important;}
  .story__card,.story__stats{opacity:1 !important;transform:none !important;}
  .preloader__logo span,.preloader__word,.preloader__line{opacity:1 !important;transform:none !important;animation:none !important;}
  .preloader{display:none;}
  .hero__scroll{animation:none !important;}
  [data-shader]{display:none !important;}
  .story__video{mix-blend-mode:normal !important;}
}
