@import url(fonts.css?v=2);

:root{
  --ink:#15120f;
  --ink2:#211c17;
  --blue:#005d8e;
  --gold:#c68715;
  --gold-l:#d6a04a;
  --cream:#f4ede0;
  --cream2:#e9dfcb;
  --mute:rgba(244,237,224,.62);
  --line:rgba(244,237,224,.16);
  --serif:'Bodoni Moda',Didot,'Bodoni 72',serif;
  --sans:'Jost',system-ui,sans-serif;
  --ease:cubic-bezier(.22,.8,.24,1);
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{background:var(--ink);color:var(--cream);font-family:var(--sans);font-weight:300;line-height:1.7;overflow-x:hidden;-webkit-font-smoothing:antialiased}
img,video{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit;cursor:pointer;background:none;border:0}
::selection{background:var(--gold);color:var(--ink)}

.eyebrow{font-size:.72rem;letter-spacing:.34em;text-transform:uppercase;color:var(--gold-l);font-weight:400}
.serif{font-family:var(--serif)}
h1,h2,h3{font-family:var(--serif);font-weight:300;line-height:1.04;letter-spacing:-.01em}
h2{font-size:clamp(2.4rem,6vw,5.4rem)}
h2 em,h1 em{font-style:italic;color:var(--gold-l)}
.wrap{width:min(1240px,calc(100% - 48px));margin-inline:auto}
.lede{font-size:clamp(1rem,1.4vw,1.18rem);color:var(--mute);max-width:46ch}

/* ---------- reveal ---------- */
[data-reveal]{opacity:0;transform:translateY(34px);filter:blur(10px);transition:opacity 1.1s var(--ease),transform 1.1s var(--ease),filter 1.1s var(--ease);transition-delay:var(--d,0s)}
[data-reveal].in{opacity:1;transform:none;filter:none}

/* ---------- nav ---------- */
.nav{position:fixed;inset:0 0 auto 0;z-index:50;transition:transform .6s var(--ease),background .5s,backdrop-filter .5s}
.nav.solid{background:rgba(21,18,15,.62);-webkit-backdrop-filter:saturate(1.6) blur(22px);backdrop-filter:saturate(1.6) blur(22px)}
.nav.hide{transform:translateY(-100%)}
.nav-in{display:flex;align-items:center;justify-content:space-between;gap:24px;height:76px;width:min(1360px,calc(100% - 48px));margin-inline:auto}
.nav-logo img{height:28px;width:auto}
.nav-links{display:flex;gap:34px;font-size:.78rem;letter-spacing:.14em;text-transform:uppercase}
.nav-links a{opacity:.74;transition:opacity .3s}
.nav-links a:hover{opacity:1}
.pill{display:inline-flex;align-items:center;gap:10px;border:1px solid var(--gold-l);color:var(--cream);padding:11px 22px;border-radius:99px;font-size:.74rem;letter-spacing:.16em;text-transform:uppercase;transition:background .4s,color .4s;white-space:nowrap}
.pill:hover{background:var(--gold-l);color:var(--ink)}
.pill.fill{background:var(--gold-l);color:var(--ink)}
.pill.fill:hover{background:var(--cream)}

/* ---------- hero ---------- */
.hero{position:relative;height:100svh;min-height:620px;overflow:hidden;display:grid;align-items:end}
.hero-bg{position:absolute;inset:-4% 0;will-change:transform}
.hero-bg img{width:100%;height:100%;object-fit:cover;animation:kb 22s var(--ease) both;transform-origin:60% 40%}
@keyframes kb{from{transform:scale(1.14)}to{transform:scale(1.02)}}
.hero::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(21,18,15,.5) 0%,rgba(21,18,15,.05) 32%,rgba(21,18,15,.35) 62%,var(--ink) 100%)}
.hero-copy{position:relative;z-index:2;padding-bottom:clamp(60px,11vh,120px);will-change:transform,opacity}
.hero h1{font-size:clamp(3.1rem,9.4vw,9rem);max-width:12ch;margin:18px 0 28px}
.hero h1 .l{display:block;overflow:hidden;padding-bottom:.08em}
.hero h1 .l span{display:block;transform:translateY(105%);animation:up 1.4s var(--ease) forwards;animation-delay:calc(.35s + var(--i)*.14s)}
@keyframes up{to{transform:none}}
.hero .eyebrow,.hero-cta{opacity:0;animation:fade 1.4s var(--ease) 1.1s forwards}
@keyframes fade{to{opacity:1}}
.hero-cta{display:flex;gap:18px;align-items:center;flex-wrap:wrap}
.scroll-cue{position:absolute;right:max(24px,calc((100% - 1240px)/2));bottom:clamp(60px,11vh,120px);z-index:2;writing-mode:vertical-rl;font-size:.66rem;letter-spacing:.34em;text-transform:uppercase;color:var(--mute);display:flex;align-items:center;gap:14px}
.scroll-cue i{width:1px;height:64px;background:linear-gradient(var(--gold-l),transparent);animation:cue 2.2s ease-in-out infinite;transform-origin:top}
@keyframes cue{0%{transform:scaleY(0)}50%{transform:scaleY(1)}100%{transform:scaleY(1);opacity:0}}

/* ---------- manifesto ---------- */
.manifesto{padding:clamp(120px,22vh,260px) 0}
.manifesto p{font-family:var(--serif);font-weight:300;font-size:clamp(1.9rem,4.6vw,4.2rem);line-height:1.14;max-width:26ch;margin-inline:auto;text-align:center}
.manifesto .w{opacity:.16;transition:opacity .25s linear}
.manifesto .w.on{opacity:1}
.manifesto small{display:block;text-align:center;margin-top:48px}

/* ---------- giornata (pinned) ---------- */
.day{position:relative;height:620vh}
.day-stick{position:sticky;top:0;height:100svh;overflow:hidden}
.day-imgs{position:absolute;inset:0}
.day-imgs img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transform:scale(1.12);transition:opacity 1.3s var(--ease),transform 7s var(--ease)}
.day-imgs img.on{opacity:1;transform:scale(1)}
.day-stick::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(21,18,15,.82) 0%,rgba(21,18,15,.35) 48%,rgba(21,18,15,.05) 100%),linear-gradient(0deg,rgba(21,18,15,.7),transparent 40%)}
.day-ui{position:absolute;inset:0;z-index:2;display:grid;align-items:center}
.day-head{position:absolute;top:104px;left:0;right:0}
.day-steps{position:relative;height:300px;max-width:520px}
.step{position:absolute;inset:0;opacity:0;transform:translateY(30px);filter:blur(8px);transition:all 1s var(--ease);pointer-events:none}
.step.on{opacity:1;transform:none;filter:none}
.step .t{font-family:var(--serif);font-size:clamp(4.4rem,11vw,9.4rem);line-height:.9;color:var(--gold-l);font-weight:300;font-style:italic}
.step h3{font-size:clamp(1.8rem,3.2vw,2.8rem);margin:14px 0 10px}
.step p{color:var(--mute);max-width:40ch;font-size:1rem}
.day-prog{position:absolute;right:max(24px,calc((100% - 1240px)/2));top:50%;transform:translateY(-50%);display:flex;flex-direction:column;gap:18px;z-index:3}
.day-prog i{display:block;width:2px;height:34px;background:var(--line);position:relative;overflow:hidden}
.day-prog i::after{content:"";position:absolute;inset:0;background:var(--gold-l);transform:scaleY(0);transform-origin:top;transition:transform .8s var(--ease)}
.day-prog i.on::after{transform:scaleY(1)}

/* ---------- servizi ---------- */
.sec{padding:clamp(100px,16vh,200px) 0}
.sec-head{display:grid;grid-template-columns:1.1fr .9fr;gap:48px;align-items:end;margin-bottom:clamp(56px,9vh,110px)}
.services{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--line)}
.svc{padding:44px 32px 52px 0;border-bottom:1px solid var(--line);transition:background .5s}
.svc:not(:nth-child(3n+1)){padding-left:32px;border-left:1px solid var(--line)}
.svc svg{width:38px;height:38px;stroke:var(--gold-l);fill:none;stroke-width:1;margin-bottom:34px;transition:transform .6s var(--ease)}
.svc:hover svg{transform:translateY(-6px)}
.svc h3{font-size:1.9rem;margin-bottom:10px}
.svc p{color:var(--mute);font-size:.95rem;max-width:34ch}

/* ---------- scorrimento orizzontale ---------- */
.hs{position:relative;height:420vh}
.hs-stick{position:sticky;top:0;height:100svh;overflow:hidden;display:flex;flex-direction:column;justify-content:center;gap:48px}
.hs-track{display:flex;gap:28px;padding-inline:max(24px,calc((100vw - 1240px)/2));will-change:transform}
.card{--h:min(54svh,620px);flex:0 0 auto;width:calc(var(--h)*.8);position:relative}
.card .im{overflow:hidden;height:var(--h);background:var(--ink2)}
.card.wide{width:calc(var(--h)*1.5)}
.card img{width:100%;height:100%;object-fit:cover;transform:scale(1.08);transition:transform 1.6s var(--ease)}
.card:hover img{transform:scale(1.0)}
.card figcaption{display:flex;justify-content:space-between;gap:16px;padding-top:16px;font-size:.78rem;letter-spacing:.14em;text-transform:uppercase;color:var(--mute)}
.card figcaption b{font-weight:400;color:var(--cream)}
.hs-head{padding-inline:max(24px,calc((100vw - 1240px)/2))}

/* ---------- chef ---------- */
.chef{background:var(--cream);color:var(--ink);position:relative}
.chef .eyebrow{color:var(--gold)}
.chef h2 em{color:var(--blue)}
.chef-grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(40px,7vw,120px);align-items:start}
.chef-img{position:sticky;top:12vh;overflow:hidden;aspect-ratio:4/5}
.chef-img img{width:100%;height:112%;object-fit:cover;will-change:transform}
.chef .lede{color:rgba(21,18,15,.66)}
.menu{margin-top:56px;border-top:1px solid rgba(21,18,15,.18)}
.menu li{list-style:none;display:grid;grid-template-columns:110px 1fr;gap:20px;padding:22px 0;border-bottom:1px solid rgba(21,18,15,.18)}
.menu span{font-size:.7rem;letter-spacing:.28em;text-transform:uppercase;color:var(--gold);padding-top:6px}
.menu p{font-family:var(--serif);font-size:1.55rem;line-height:1.2}
.chef .note{margin-top:20px;font-size:.78rem;color:rgba(21,18,15,.5);font-style:italic}
.chef .pill{color:var(--ink);border-color:var(--ink);margin-top:44px}
.chef .pill:hover{background:var(--ink);color:var(--cream)}

/* ---------- galleria ---------- */
.gal{background:radial-gradient(120% 80% at 50% 0%,#2a231c 0%,var(--ink) 62%);position:relative;overflow:hidden}
.gal-wall{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(24px,4vw,64px);align-items:end;margin-top:clamp(70px,12vh,140px)}
.art{position:relative;text-align:center}
.art:nth-child(2){margin-bottom:60px}
.art-light{position:absolute;left:50%;top:-140px;width:130%;height:150px;transform:translateX(-50%);background:radial-gradient(50% 100% at 50% 0%,rgba(214,160,74,.28),transparent 70%);pointer-events:none}
.frame{position:relative;padding:14px;background:#1a1410;box-shadow:0 40px 80px -20px #000,inset 0 0 0 1px rgba(214,160,74,.35);transition:transform .8s var(--ease),box-shadow .8s;transform-style:preserve-3d}
.frame:hover{transform:translateY(-10px) scale(1.015);box-shadow:0 60px 100px -20px #000,inset 0 0 0 1px var(--gold-l)}
.canvas{aspect-ratio:4/5;background:
  radial-gradient(60% 50% at 30% 30%,rgba(0,93,142,.55),transparent 70%),
  radial-gradient(50% 50% at 75% 70%,rgba(198,135,21,.5),transparent 70%),
  #e8dcc4;display:grid;place-items:center;color:rgba(21,18,15,.55);font-family:var(--serif);font-style:italic;font-size:1.3rem;padding:20px}
.art:nth-child(2) .canvas{aspect-ratio:3/4;background:radial-gradient(55% 55% at 65% 35%,rgba(198,135,21,.55),transparent 70%),radial-gradient(60% 60% at 25% 75%,rgba(0,93,142,.5),transparent 70%),#e6d9bf}
.art:nth-child(3) .canvas{background:radial-gradient(60% 50% at 50% 25%,rgba(0,93,142,.5),transparent 70%),radial-gradient(60% 40% at 40% 80%,rgba(198,135,21,.5),transparent 70%),#eadfc9}
.plate{margin:26px auto 0;max-width:260px}
.plate h3{font-size:1.5rem}
.plate small{display:block;color:var(--mute);font-size:.78rem;letter-spacing:.08em;margin:2px 0 14px}
.plate a{font-size:.7rem;letter-spacing:.26em;text-transform:uppercase;color:var(--gold-l);border-bottom:1px solid currentColor;padding-bottom:3px}
.artist{display:grid;grid-template-columns:.9fr 1.1fr;gap:clamp(40px,6vw,100px);align-items:center;margin-top:clamp(100px,16vh,190px);padding-top:clamp(60px,9vh,100px);border-top:1px solid var(--line)}
.artist .ph{aspect-ratio:4/5;border:1px solid var(--line);display:grid;place-items:center;color:var(--mute);font-size:.8rem;letter-spacing:.16em;text-transform:uppercase;text-align:center;padding:30px;background:repeating-linear-gradient(135deg,transparent 0 14px,rgba(244,237,224,.03) 14px 15px)}
.artist blockquote{font-family:var(--serif);font-style:italic;font-size:clamp(1.5rem,2.6vw,2.3rem);line-height:1.25;margin:22px 0 24px}

/* ---------- dintorni ---------- */
.around{display:grid;grid-template-columns:repeat(4,1fr);gap:0;border-top:1px solid var(--line)}
.ar{padding:40px 28px 0 0}
.ar:not(:first-child){padding-left:28px;border-left:1px solid var(--line)}
.ar b{display:block;font-family:var(--serif);font-weight:300;font-size:2rem;line-height:1.1;margin-bottom:8px}
.ar span{color:var(--mute);font-size:.92rem}

/* ---------- contatto ---------- */
.contact{position:relative;overflow:hidden;text-align:center}
.contact-bg{position:absolute;inset:0;opacity:.28}
.contact-bg img{width:100%;height:100%;object-fit:cover}
.contact::before{content:"";position:absolute;inset:0;background:linear-gradient(var(--ink),rgba(21,18,15,.55) 40%,var(--ink));z-index:1}
.contact .wrap{position:relative;z-index:2}
.contact h2{max-width:14ch;margin:20px auto 20px}
.contact .lede{margin-inline:auto}
.form{display:grid;grid-template-columns:repeat(3,1fr);gap:0;max-width:820px;margin:60px auto 28px;border:1px solid var(--line);border-radius:18px;background:rgba(21,18,15,.5);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);text-align:left}
.field{padding:20px 26px;display:block}
.field+.field{border-left:1px solid var(--line)}
.field label{display:block;font-size:.64rem;letter-spacing:.3em;text-transform:uppercase;color:var(--gold-l);margin-bottom:6px}
.field input,.field select{width:100%;background:none;border:0;outline:0;color:var(--cream);font:400 1.05rem var(--sans);color-scheme:dark}
.field select option{background:var(--ink)}
.form-go{grid-column:1/-1;border-top:1px solid var(--line);padding:18px}
.form-go .pill{width:100%;justify-content:center;padding:17px}
.form-alt{display:block;margin-top:14px;text-align:center;font-size:.74rem;letter-spacing:.14em;text-transform:uppercase;color:var(--gold-l);text-decoration:underline;text-underline-offset:4px}
.form-alt:hover{color:var(--cream)}
.contact .small{font-size:.8rem;color:var(--mute)}

footer{border-top:1px solid var(--line);padding:56px 0 44px;color:var(--mute);font-size:.82rem}
.foot{display:flex;justify-content:space-between;gap:30px;flex-wrap:wrap;align-items:center}
.foot img{height:24px;width:auto;opacity:.9}

.wa-fab{position:fixed;right:22px;bottom:22px;z-index:49;opacity:0;transform:translateY(20px);pointer-events:none;transition:all .6s var(--ease)}
.wa-fab.show{opacity:1;transform:none;pointer-events:auto}

/* ---------- mobile ---------- */
@media (max-width:900px){
  .nav-links{display:none}
  .sec-head,.chef-grid,.artist{grid-template-columns:1fr}
  .services{grid-template-columns:1fr 1fr}
  .svc,.svc:not(:nth-child(3n+1)){padding:34px 18px 40px 0;border-left:0}
  .svc:nth-child(even){padding-left:18px;border-left:1px solid var(--line)}
  .gal-wall{grid-template-columns:1fr;gap:70px}
  .art:nth-child(2){margin-bottom:0}
  .around{grid-template-columns:1fr 1fr}
  .ar,.ar:not(:first-child){padding:30px 14px 30px 0;border-left:0}
  .ar:nth-child(even){padding-left:16px;border-left:1px solid var(--line)}
  .chef-img{position:relative;top:0}
  .form{grid-template-columns:1fr}
  .field+.field{border-left:0;border-top:1px solid var(--line)}
  .hs{height:auto}
  .hs-stick{position:relative;height:auto;overflow:visible}
  .hs-track{overflow-x:auto;scroll-snap-type:x mandatory;padding-bottom:10px;scrollbar-width:none}
  .hs-track::-webkit-scrollbar{display:none}
  .card,.card.wide{--h:62svh;width:78vw;scroll-snap-align:center}
  .day{height:520vh}
  .day-stick::after{background:linear-gradient(0deg,rgba(21,18,15,.92) 0%,rgba(21,18,15,.45) 55%,rgba(21,18,15,.15) 100%)}
  .day-ui{align-items:end;padding-bottom:12vh}
  .day-head{top:90px}
  .day-steps{height:250px}
  .day-prog{right:14px}
  .scroll-cue{display:none}
  .nav-in{height:64px}
  .nav-logo img{height:22px}
  .pill{padding:10px 16px;font-size:.66rem}
}
@media (prefers-reduced-motion:reduce){
  [data-reveal]{opacity:1;transform:none;filter:none;transition:none}
  .hero-bg img{animation:none}
  .hero h1 .l span,.hero .eyebrow,.hero-cta{animation:none;transform:none;opacity:1}
  .manifesto .w{opacity:1}
}

.nav-r{display:flex;align-items:center;gap:22px}
.lang{font-size:.72rem;letter-spacing:.2em;opacity:.7;border:1px solid var(--line);border-radius:99px;padding:7px 13px}
.lang:hover{opacity:1;border-color:var(--gold-l)}

/* ---------- pagina Galleria: la discesa ---------- */
.g-intro{position:relative;min-height:100svh;display:grid;align-items:center;background:radial-gradient(90% 70% at 70% 30%,#2a231c 0%,var(--ink) 70%)}
.g-intro h1{font-size:clamp(3rem,9vw,8.4rem);margin:20px 0 28px}
.g-intro .lede{font-size:clamp(1rem,1.5vw,1.25rem)}
.desc{position:relative;height:calc(var(--n)*85vh + 100vh)}
.desc-stick{position:sticky;top:0;height:100svh;overflow:hidden;background:var(--ink)}
.ch{position:absolute;inset:0;opacity:0;transform:scale(.88);transition:opacity 1.2s var(--ease),transform 1.7s var(--ease);pointer-events:none;will-change:transform,opacity}
.ch.on{opacity:1;transform:none}
.ch.past{transform:scale(1.24)}
.ch video,.ch img.full{width:100%;height:100%;object-fit:cover;display:block}
.ch img.full{animation:kb 20s var(--ease) both}
.ch .bg{position:absolute;inset:-8%;background-size:cover;background-position:center;filter:blur(42px) brightness(.45) saturate(1.3)}
.ch.tall .vid{position:absolute;top:50%;right:max(96px,calc((100% - 1240px)/2 + 90px));height:min(84svh,900px);aspect-ratio:9/16;transform:translateY(-50%);border-radius:22px;overflow:hidden;box-shadow:0 60px 120px -20px #000,0 0 0 1px rgba(244,237,224,.14)}
.dshade{position:absolute;inset:0;z-index:2;pointer-events:none;background:linear-gradient(90deg,rgba(21,18,15,.78) 0%,rgba(21,18,15,.25) 42%,transparent 62%),linear-gradient(0deg,rgba(21,18,15,.55),transparent 38%)}
.desc-ui{position:absolute;inset:0;z-index:3;display:grid;align-items:center;pointer-events:none}
.dsteps{position:relative;height:360px;max-width:480px}
.dstep{position:absolute;inset:0;opacity:0;transform:translateY(34px);filter:blur(8px);transition:all 1s var(--ease)}
.dstep.on{opacity:1;transform:none;filter:none}
.dstep .t{font-family:var(--serif);font-style:italic;font-weight:300;color:var(--gold-l);font-size:clamp(4rem,10vw,8.4rem);line-height:.95;margin:14px 0 6px}
.dstep .t b{font-weight:300}
.dstep h3{font-size:clamp(1.8rem,3vw,2.7rem);margin-bottom:10px}
.dstep p:not(.eyebrow){color:var(--mute);max-width:36ch}
.desc-prog{position:absolute;right:max(20px,calc((100% - 1240px)/2));top:50%;transform:translateY(-50%);display:flex;flex-direction:column;gap:10px;z-index:4}
.desc-prog i{display:block;width:2px;height:22px;background:var(--line);position:relative;overflow:hidden}
.desc-prog i::after{content:"";position:absolute;inset:0;background:var(--gold-l);transform:scaleY(0);transform-origin:top;transition:transform .7s var(--ease)}
.desc-prog i.on::after{transform:scaleY(1)}
.nav-links a.cur{opacity:1;color:var(--gold-l)}
.tease{position:relative;height:min(78svh,760px);overflow:hidden;display:grid;align-items:end;margin-top:0}
.tease .tb{position:absolute;inset:-10% 0;will-change:transform}
.tease .tb img{width:100%;height:100%;object-fit:cover}
.tease::after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,var(--ink) 0%,rgba(21,18,15,.3) 55%,var(--ink) 100%)}
.tease .wrap{position:relative;z-index:2;padding-bottom:clamp(50px,9vh,100px);display:flex;justify-content:space-between;align-items:end;gap:40px;flex-wrap:wrap}
.tease h2{max-width:12ch}
@media (max-width:900px){
  .desc{height:calc(var(--n)*80vh + 100vh)}
  .ch.tall .bg{display:none}
  .ch.tall .vid{inset:0;top:0;right:0;height:100%;width:100%;aspect-ratio:auto;transform:none;border-radius:0;box-shadow:none}
  .dshade{background:linear-gradient(0deg,rgba(21,18,15,.9) 0%,rgba(21,18,15,.45) 45%,rgba(21,18,15,.05) 75%)}
  .desc-ui{align-items:end;padding-bottom:9vh}
  .dsteps{height:290px}
  .dstep .t{font-size:clamp(3.2rem,16vw,5rem)}
  .desc-prog{right:10px;gap:6px}
  .desc-prog i{height:14px}
}

.desc-head{position:absolute;top:104px;left:0;right:0;z-index:3;pointer-events:none}
.desc-head h1{font-size:clamp(1.5rem,2.6vw,2.3rem);margin-top:10px;max-width:22ch}
.page-gal .desc-stick .scroll-cue{z-index:4}
@media (max-width:900px){.desc-head{top:84px}.page-gal .desc-stick .scroll-cue{display:none}}

/* ---------- hero della home = la discesa ---------- */
.hero-desc .dsteps{max-width:none;width:100%;height:420px}
.hero-desc .dstep{max-width:min(520px,90vw)}
.hero-desc .dstep.hstep{max-width:min(980px,92vw)}
.hero-desc .dstep.hstep h1{font-size:clamp(2.8rem,min(6.6vw,11.5vh),6.6rem);margin:18px 0 30px}
.hero-desc .dstep.hstep h1 .l{white-space:nowrap}
.dstep.hstep h1 .l{display:block;overflow:hidden;padding-bottom:.08em}
.dstep.hstep h1 .l span{display:block;transform:translateY(105%);animation:up 1.4s var(--ease) forwards;animation-delay:calc(.35s + var(--i)*.14s)}
.dstep.hstep .eyebrow,.dstep.hstep .hero-cta{opacity:0;animation:fade 1.4s var(--ease) 1.1s forwards}
.dstep.hstep .hero-cta{display:flex;gap:18px;flex-wrap:wrap}
.dstep.hstep:not(.on) .hero-cta{pointer-events:none}
.dstep.hstep.on .hero-cta{pointer-events:auto}
.hero-desc .ch video{object-position:70% 50%}
@media (max-width:900px){.hero-desc .dsteps{height:340px}.hero-desc .dstep.hstep h1{font-size:clamp(2.2rem,9.4vw,4rem)}}
@media (prefers-reduced-motion:reduce){.dstep.hstep h1 .l span,.dstep.hstep .eyebrow,.dstep.hstep .hero-cta{animation:none;transform:none;opacity:1}}
/* ---------- pagina Galleria d'arte ---------- */
.ga-hero{position:relative;min-height:100svh;display:grid;align-items:end;overflow:hidden}
.ga-hero .tb{position:absolute;inset:0}
.ga-hero .tb img{width:100%;height:100%;object-fit:cover;animation:kb 22s var(--ease) both}
.ga-hero::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(21,18,15,.55),rgba(21,18,15,.15) 35%,rgba(21,18,15,.55) 70%,var(--ink))}
.ga-hero .wrap{position:relative;z-index:2;padding-bottom:clamp(60px,12vh,130px)}
.ga-hero h1{font-size:clamp(3rem,8.4vw,8rem);max-width:12ch;margin:18px 0 26px}
.how{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--line);margin-top:clamp(60px,9vh,110px)}
.how div{padding:40px 30px 0 0}
.how div+div{padding-left:30px;border-left:1px solid var(--line)}
.how b{display:block;font-family:var(--serif);font-weight:300;font-style:italic;color:var(--gold-l);font-size:3rem;line-height:1}
.how h3{font-size:1.7rem;margin:14px 0 8px}
.how p{color:var(--mute);font-size:.95rem;max-width:32ch}
@media (max-width:900px){.how{grid-template-columns:1fr}.how div,.how div+div{padding:30px 0;border-left:0;border-bottom:1px solid var(--line)}}

/* ---------- versione calma: solo l'hero ha effetti di scroll ---------- */
[data-reveal]{opacity:1!important;transform:none!important;filter:none!important;transition:none!important}
.manifesto .w{opacity:1}
.chef-img{position:relative;top:0}
.chef-img img{height:100%}
.hs{height:auto;padding:clamp(100px,16vh,200px) 0}
.hs-stick{position:static;height:auto;display:block;overflow:visible}
.hs-head{margin-bottom:clamp(40px,7vh,80px)}
.hs-track{display:grid;grid-template-columns:repeat(4,1fr);gap:22px;overflow:visible;transform:none!important;padding-inline:max(24px,calc((100vw - 1240px)/2))}
.card,.card.wide{width:auto;--h:auto}
.card .im{height:auto;aspect-ratio:4/5}
.card img{transform:none}
.card:hover img{transform:scale(1.04)}
.daygrid{display:grid;grid-template-columns:repeat(5,1fr);gap:20px}
.dcard .im{aspect-ratio:3/4;overflow:hidden;margin-bottom:20px;background:var(--ink2)}
.dcard img{width:100%;height:100%;object-fit:cover;transition:transform 1.4s var(--ease)}
.dcard:hover img{transform:scale(1.05)}
.dcard .t{font-family:var(--serif);font-style:italic;font-weight:300;color:var(--gold-l);font-size:2.2rem;line-height:1}
.dcard h3{font-size:1.4rem;line-height:1.15;margin:10px 0 8px}
.dcard p{color:var(--mute);font-size:.9rem}
@media (max-width:1100px){.daygrid{grid-template-columns:repeat(3,1fr)}}
@media (max-width:900px){.hs-track{grid-template-columns:1fr 1fr;overflow:visible;scroll-snap-type:none;padding-bottom:0}.card,.card.wide{width:auto}.card .im{height:auto;aspect-ratio:4/5}}
@media (max-width:640px){.daygrid{grid-template-columns:1fr 1fr;gap:16px}}

/* ---------- fondi chiari e caldi sotto l'hero ---------- */
:root{--paper:#f5efe5;--paper2:#ebe1d1;--terra:#b5643c}
body{background:var(--paper)}
h1,h2,h3{font-weight:400;letter-spacing:-.015em}
.eyebrow{font-weight:500;letter-spacing:.3em}
.manifesto,section.sec:not(.contact):not(.chef),.hs{
  --cream:#1e1a16;--mute:rgba(30,26,22,.68);--line:rgba(30,26,22,.14);--gold-l:#93640f;
  background:var(--paper);color:var(--cream)}
.manifesto h2 em,section.sec:not(.contact) h2 em,.hs h2 em{color:var(--blue)}
.manifesto .pill.fill,section.sec:not(.contact):not(.chef) .pill.fill,.hs .pill.fill{background:var(--blue);border-color:var(--blue);color:#fff}
#servizi,.hs{background:var(--paper2)}
.chef{background:var(--paper)}
.manifesto{padding:clamp(90px,15vh,170px) 0}
.sec{padding:clamp(80px,13vh,160px) 0}
.manifesto p{font-weight:400}
.dcard .t,.step .t,.how b{font-weight:400}
/* galleria d'arte: parete d'intonaco al posto del blu */
.gal{background:var(--paper2)!important}
.frame{box-shadow:0 30px 60px -22px rgba(40,25,10,.45),inset 0 0 0 1px rgba(147,100,15,.4)}
.frame:hover{box-shadow:0 44px 80px -22px rgba(40,25,10,.5),inset 0 0 0 1px #93640f}
.art-light{background:radial-gradient(50% 100% at 50% 0%,rgba(255,226,170,.55),transparent 70%)}
.artist .ph{background:repeating-linear-gradient(135deg,transparent 0 14px,rgba(30,26,22,.05) 14px 15px)}
/* anteprima galleria e contatti: foto con velo scuro caldo, non blu */
.tease::after{background:linear-gradient(0deg,rgba(21,18,15,.72) 0%,rgba(21,18,15,.15) 60%,rgba(21,18,15,.05) 100%)}
.contact-bg{opacity:1}
.contact::before{background:rgba(21,18,15,.58)}
footer{background:var(--ink)}
.nav.solid{background:rgba(21,18,15,.72)}

/* finestra di prenotazione Beddy */
.bk{position:fixed;inset:0;z-index:9000;display:none;align-items:center;justify-content:center;background:rgba(10,8,6,.78);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);padding:3vh 3vw}
.bk.on{display:flex}
.bk-box{position:relative;display:flex;flex-direction:column;width:100%;max-width:1180px;height:100%;background:#fff;border-radius:16px;overflow:hidden;box-shadow:0 30px 80px rgba(0,0,0,.5)}
.bk-bar{display:flex;align-items:center;gap:18px;padding:12px 16px 12px 22px;background:var(--ink);color:var(--cream);font-size:.72rem;letter-spacing:.22em;text-transform:uppercase}
.bk-bar span{flex:1}
.bk-ext{color:var(--gold-l);text-decoration:underline;text-underline-offset:4px;letter-spacing:.12em;font-size:.68rem}
.bk-x{background:none;border:0;color:var(--cream);font:300 2rem/1 var(--sans);cursor:pointer;padding:0 6px}
.bk-f{flex:1;width:100%;border:0;background:#fff;opacity:0;transition:opacity .4s}
.bk.ready .bk-f{opacity:1}
.bk-load{position:absolute;left:0;right:0;top:50%;text-align:center;color:#666;font-size:.9rem}
.bk.ready .bk-load{display:none}
.bk-lock,.bk-lock body{overflow:hidden}
@media(max-width:700px){.bk{padding:0}.bk-box{border-radius:0}.bk-ext{display:none}}
