:root{--black:#050505;--panel:#0e0e0c;--cream:#f3efe6;--muted:#aaa398;--gold:#d7ae45;--line:rgba(255,255,255,.14);--serif:"Cormorant Garamond",Georgia,serif;--sans:"Manrope",Arial,sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--black);color:var(--cream);font-family:var(--sans);line-height:1.55;overflow-x:hidden}img,video{display:block;width:100%}a{color:inherit;text-decoration:none}.intro{position:fixed;inset:0;z-index:999;background:#050505;display:grid;place-items:center;align-content:center;gap:18px;transition:opacity .9s ease,visibility .9s ease}.intro img{width:130px;mix-blend-mode:screen}.intro span{font-size:10px;letter-spacing:.38em;color:var(--gold)}.intro.done{opacity:0;visibility:hidden}.site-header{position:fixed;z-index:100;top:0;left:0;right:0;height:76px;display:flex;justify-content:space-between;align-items:center;padding:12px clamp(20px,4vw,64px);background:linear-gradient(to bottom,rgba(0,0,0,.78),transparent)}.logo img{width:72px;height:52px;object-fit:contain;mix-blend-mode:screen}.header-cta{border:1px solid rgba(255,255,255,.42);padding:11px 19px;font-size:11px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;backdrop-filter:blur(10px)}.hero{position:relative;min-height:100svh;display:grid;align-items:end;padding:130px clamp(22px,8vw,120px) 86px;overflow:hidden}.hero-video,.hero-shade{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.hero-video{object-position:center}.hero-shade{background:linear-gradient(90deg,rgba(0,0,0,.9),rgba(0,0,0,.34) 56%,rgba(0,0,0,.08)),linear-gradient(0deg,rgba(0,0,0,.8),transparent 55%)}.hero-copy{position:relative;max-width:850px}.kicker{font-size:10px;font-weight:700;letter-spacing:.27em;text-transform:uppercase;margin:0 0 18px}.gold{color:var(--gold)}h1,h2{font-family:var(--serif);font-weight:600;line-height:.9;letter-spacing:-.045em;margin:0}h1{font-size:clamp(68px,11vw,155px)}h1 em,h2 em{font-weight:500;color:var(--gold)}.hero-text{font-size:clamp(18px,2vw,25px);margin:27px 0 30px;color:#e1ddd4}.actions{display:flex;flex-wrap:wrap;gap:12px}.btn{min-height:54px;padding:0 25px;display:inline-flex;align-items:center;justify-content:center;font-size:11px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;transition:.25s}.btn:hover{transform:translateY(-2px)}.btn-gold{background:var(--gold);color:#080808}.btn-ghost{border:1px solid rgba(255,255,255,.42);background:rgba(0,0,0,.17);backdrop-filter:blur(8px)}.scroll-cue{position:absolute;right:34px;bottom:35px;z-index:2;font-size:9px;letter-spacing:.2em;text-transform:uppercase;writing-mode:vertical-rl}.scroll-cue span{font-size:18px;margin-top:12px}.manifesto{padding:clamp(110px,15vw,210px) clamp(23px,11vw,175px)}.manifesto h2{font-size:clamp(56px,9vw,127px);max-width:1100px}.body-copy{max-width:650px;margin:48px 0 0 auto;color:var(--muted);font-size:clamp(16px,1.7vw,21px)}.chapter,.karaoke,.events{display:grid;grid-template-columns:1fr 1fr;min-height:800px}.chapter-media video,.karaoke-art img,.events-image img{height:100%;object-fit:cover}.chapter-copy,.karaoke-copy,.events-copy{background:var(--panel);padding:clamp(70px,9vw,135px);display:flex;flex-direction:column;justify-content:center}.number{font:600 52px var(--serif);color:var(--gold);margin-bottom:70px}.chapter h2,.karaoke h2,.events h2,.space h2,.contact h2{font-size:clamp(51px,7vw,100px)}.chapter-copy>p:last-child,.karaoke-copy>p:not(.kicker),.events-copy>p:not(.kicker){color:var(--muted);font-size:17px;max-width:580px;margin:30px 0}.split-gallery{display:grid;grid-template-columns:.82fr 1fr;grid-template-rows:1fr 1fr;min-height:1080px;background:#090909}.split-gallery figure{margin:0;overflow:hidden}.split-gallery img{height:100%;object-fit:cover}.portrait{grid-row:span 2}.gallery-copy{padding:clamp(65px,8vw,120px);display:flex;flex-direction:column;justify-content:center}.gallery-copy h2{font-size:clamp(52px,7vw,96px)}.gallery-copy>p:last-child{color:var(--muted);font-size:17px}.landscape{min-height:440px}.karaoke-art{order:2}.text-link{color:var(--gold);font-size:11px;font-weight:700;letter-spacing:.13em;text-transform:uppercase}.events{background:#080808}.events-copy{background:#080808}.space{padding:clamp(100px,13vw,180px) clamp(18px,5vw,78px)}.space-heading{display:flex;justify-content:space-between;gap:35px;align-items:end;margin-bottom:60px}.mosaic{display:grid;grid-template-columns:1.35fr .65fr .65fr;grid-template-rows:380px 380px;gap:12px}.mosaic img{height:100%;object-fit:cover}.m1{grid-row:span 2}.m4{grid-column:2/4}.contact{position:relative;min-height:780px;display:grid;place-items:center;text-align:center;padding:60px 20px;overflow:hidden}.contact>img,.contact-shade{position:absolute;inset:0;height:100%;object-fit:cover}.contact-shade{background:rgba(0,0,0,.7)}.contact-copy{position:relative}.contact-copy .actions{justify-content:center;margin-top:36px}.address{color:#c6c0b6;margin-top:28px;font-size:13px;letter-spacing:.08em}footer{text-align:center;padding:72px 20px 120px;border-top:1px solid var(--line)}footer img{width:105px;height:80px;object-fit:contain;margin:0 auto 22px;mix-blend-mode:screen}footer nav{display:flex;justify-content:center;gap:28px;flex-wrap:wrap;margin-bottom:25px;font-size:11px;text-transform:uppercase;letter-spacing:.12em}footer small{color:var(--muted)}.mobile-bar{display:none}.reveal{opacity:0;transform:translateY(34px);transition:opacity .85s ease,transform .85s ease}.reveal.visible{opacity:1;transform:none}@media(max-width:820px){.site-header{height:65px}.logo img{width:58px;height:44px}.hero{min-height:94svh;padding:110px 21px 82px}.hero-video{object-position:54% center}.hero-shade{background:linear-gradient(0deg,rgba(0,0,0,.92),rgba(0,0,0,.25) 70%),linear-gradient(90deg,rgba(0,0,0,.55),transparent)}h1{font-size:64px}.hero-text{font-size:16px}.actions .btn{width:100%}.scroll-cue{display:none}.manifesto{padding:100px 21px}.body-copy{margin:38px 0 0}.chapter,.karaoke,.events{grid-template-columns:1fr;min-height:0}.chapter-media,.karaoke-art,.events-image{min-height:520px}.chapter-copy,.karaoke-copy,.events-copy{padding:90px 22px}.number{margin-bottom:48px}.split-gallery{grid-template-columns:1fr;grid-template-rows:auto;min-height:0}.portrait{grid-row:auto;height:690px}.gallery-copy{padding:90px 22px}.landscape{height:430px}.karaoke-art{order:0}.space{padding:95px 15px}.space-heading{display:block}.mosaic{grid-template-columns:1fr 1fr;grid-template-rows:480px 290px 290px}.m1{grid-row:auto;grid-column:span 2}.m4{grid-column:1/3}.contact{min-height:680px}footer{padding-bottom:120px}.mobile-bar{position:fixed;z-index:200;left:0;right:0;bottom:0;display:grid;grid-template-columns:.8fr 1.2fr;gap:8px;padding:9px 10px calc(9px + env(safe-area-inset-bottom));background:rgba(5,5,5,.92);backdrop-filter:blur(14px);border-top:1px solid var(--line)}.mobile-bar a{min-height:49px;display:grid;place-items:center;border:1px solid var(--line);font-size:11px;font-weight:700;letter-spacing:.12em;text-transform:uppercase}.mobile-main{background:var(--gold);color:#080808;border-color:var(--gold)!important}}@media(max-width:480px){.intro img{width:105px}.chapter h2,.karaoke h2,.events h2,.space h2,.contact h2,.gallery-copy h2{font-size:50px}.portrait{height:620px}.mosaic{display:block}.mosaic img{height:390px;margin-bottom:10px}}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}.intro{display:none}.reveal{opacity:1;transform:none}}


/* =========================================================
   K20 EXPERIENCE V3 — PARTE 1: HERO CINEMATOGRAFICA
   ========================================================= */

.intro{
  overflow:hidden;
}
.intro-mark{
  display:grid;
  place-items:center;
  gap:17px;
  opacity:0;
  transform:translateY(14px) scale(.985);
  animation:introMark 1.05s cubic-bezier(.22,1,.36,1) .15s forwards;
}
.intro-line{
  width:min(210px,42vw);
  height:1px;
  background:linear-gradient(90deg,transparent,var(--gold),transparent);
  transform:scaleX(0);
  transform-origin:center;
  animation:introLine 1.15s cubic-bezier(.22,1,.36,1) .45s forwards;
}
@keyframes introMark{
  to{opacity:1;transform:none}
}
@keyframes introLine{
  to{transform:scaleX(1)}
}

.hero{
  min-height:100svh;
  isolation:isolate;
  align-items:center;
  padding:120px clamp(24px,7vw,112px) 86px;
  background:#030303;
}
.hero-video{
  z-index:-5;
  transform:scale(1.035);
  filter:brightness(.47) contrast(1.08) saturate(.86);
  animation:heroVideoIn 2.4s cubic-bezier(.22,1,.36,1) both;
}
@keyframes heroVideoIn{
  from{opacity:0;transform:scale(1.09)}
  to{opacity:1;transform:scale(1.035)}
}
.hero-vignette{
  position:absolute;
  inset:0;
  z-index:-4;
  background:
    radial-gradient(circle at 70% 42%,transparent 0 23%,rgba(0,0,0,.18) 56%,rgba(0,0,0,.58) 100%),
    linear-gradient(90deg,rgba(0,0,0,.90) 0%,rgba(0,0,0,.56) 43%,rgba(0,0,0,.12) 75%,rgba(0,0,0,.30) 100%),
    linear-gradient(0deg,rgba(0,0,0,.82) 0%,transparent 47%,rgba(0,0,0,.22) 100%);
}
.hero-grain{
  position:absolute;
  inset:-60%;
  z-index:-3;
  opacity:.055;
  pointer-events:none;
  background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.92' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.95'/%3E%3C/svg%3E");
  animation:grainMove .22s steps(2) infinite;
}
@keyframes grainMove{
  0%{transform:translate3d(0,0,0)}
  25%{transform:translate3d(2%,1%,0)}
  50%{transform:translate3d(-1%,2%,0)}
  75%{transform:translate3d(1%,-2%,0)}
  100%{transform:translate3d(-2%,1%,0)}
}

.hero-frame{
  position:absolute;
  inset:26px;
  z-index:2;
  pointer-events:none;
}
.frame-corner{
  position:absolute;
  width:27px;
  height:27px;
  opacity:.72;
}
.frame-corner::before,.frame-corner::after{
  content:"";
  position:absolute;
  background:rgba(255,255,255,.42);
}
.frame-corner::before{width:100%;height:1px}
.frame-corner::after{width:1px;height:100%}
.frame-corner-tl{top:0;left:0}
.frame-corner-tr{top:0;right:0;transform:rotate(90deg)}
.frame-corner-br{right:0;bottom:0;transform:rotate(180deg)}
.frame-corner-bl{left:0;bottom:0;transform:rotate(270deg)}

.hero-copy{
  z-index:3;
  width:min(920px,92%);
  max-width:none;
}
.hero-location{
  opacity:0;
  transform:translateY(14px);
  animation:heroReveal .8s cubic-bezier(.22,1,.36,1) 1.05s forwards;
}
.hero-title{
  font-size:clamp(72px,10.2vw,154px);
  line-height:.82;
  max-width:980px;
}
.hero-line{
  display:block;
  opacity:0;
  transform:translateY(42px);
  filter:blur(8px);
  animation:heroReveal 1.1s cubic-bezier(.22,1,.36,1) forwards;
}
.hero-line:first-child{animation-delay:1.16s}
.hero-line-gold{animation-delay:1.31s}
@keyframes heroReveal{
  to{opacity:1;transform:none;filter:blur(0)}
}
.hero-rotator{
  position:relative;
  height:34px;
  margin-top:30px;
  overflow:hidden;
  color:#e8e1d3;
  font-size:11px;
  font-weight:700;
  letter-spacing:.28em;
  text-transform:uppercase;
  opacity:0;
  animation:heroReveal .8s ease 1.65s forwards;
}
.hero-rotator span{
  position:absolute;
  left:0;
  top:7px;
  opacity:0;
  transform:translateY(13px);
  animation:wordCycle 8s ease-in-out infinite;
}
.hero-rotator span:nth-child(1){animation-delay:0s}
.hero-rotator span:nth-child(2){animation-delay:2s}
.hero-rotator span:nth-child(3){animation-delay:4s}
.hero-rotator span:nth-child(4){animation-delay:6s}
@keyframes wordCycle{
  0%{opacity:0;transform:translateY(13px)}
  8%,20%{opacity:1;transform:none}
  28%,100%{opacity:0;transform:translateY(-13px)}
}
.hero-text{
  margin:12px 0 29px;
  opacity:0;
  transform:translateY(12px);
  animation:heroReveal .8s ease 1.84s forwards;
}
.hero-actions{
  align-items:center;
  opacity:0;
  transform:translateY(12px);
  animation:heroReveal .85s ease 2.02s forwards;
}
.hero .btn-gold{
  position:relative;
  overflow:hidden;
}
.hero .btn-gold::after{
  content:"";
  position:absolute;
  inset:-1px;
  background:linear-gradient(105deg,transparent 25%,rgba(255,255,255,.35) 45%,transparent 65%);
  transform:translateX(-125%);
  transition:transform .75s ease;
}
.hero .btn-gold:hover::after{transform:translateX(125%)}
.hero-secondary{
  padding:12px 4px;
  color:#d9d2c7;
  font-size:11px;
  font-weight:600;
  letter-spacing:.12em;
  text-transform:uppercase;
  border-bottom:1px solid rgba(255,255,255,.3);
  transition:.25s ease;
}
.hero-secondary:hover{color:var(--gold);border-color:var(--gold)}

.scroll-cue{
  right:auto;
  left:50%;
  bottom:31px;
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:12px;
  writing-mode:initial;
  transform:translateX(-50%);
  opacity:0;
  animation:heroReveal .8s ease 2.35s forwards;
}
.scroll-label{
  font-size:9px;
  letter-spacing:.24em;
}
.scroll-line{
  display:block;
  width:1px;
  height:36px;
  background:linear-gradient(to bottom,rgba(255,255,255,.9),transparent);
  animation:scrollPulse 1.65s ease-in-out infinite;
}
@keyframes scrollPulse{
  0%,100%{transform:scaleY(.45);transform-origin:top;opacity:.35}
  50%{transform:scaleY(1);transform-origin:top;opacity:1}
}

.sound-toggle{
  position:absolute;
  z-index:5;
  right:35px;
  bottom:30px;
  display:flex;
  align-items:center;
  gap:10px;
  border:0;
  padding:8px;
  color:#fff;
  background:transparent;
  font:600 9px var(--sans);
  letter-spacing:.18em;
  text-transform:uppercase;
  cursor:pointer;
  opacity:0;
  animation:heroReveal .8s ease 2.45s forwards;
}
.sound-icon{
  position:relative;
  width:24px;
  height:24px;
  border:1px solid rgba(255,255,255,.45);
  border-radius:50%;
}
.sound-icon::before,.sound-icon::after{
  content:"";
  position:absolute;
  top:50%;
  width:1px;
  background:var(--gold);
  transform:translateY(-50%);
  transition:.3s ease;
}
.sound-icon::before{left:9px;height:6px}
.sound-icon::after{left:14px;height:11px}
.sound-toggle.is-on .sound-icon::before{
  animation:soundBar1 .7s ease-in-out infinite alternate;
}
.sound-toggle.is-on .sound-icon::after{
  animation:soundBar2 .55s ease-in-out infinite alternate;
}
@keyframes soundBar1{to{height:13px}}
@keyframes soundBar2{to{height:5px}}

@media(max-width:820px){
  .hero{
    min-height:100svh;
    align-items:end;
    padding:108px 21px 104px;
  }
  .hero-video{
    object-position:57% center;
    transform:scale(1.08);
  }
  .hero-vignette{
    background:
      linear-gradient(0deg,rgba(0,0,0,.94) 0%,rgba(0,0,0,.58) 39%,rgba(0,0,0,.14) 75%),
      linear-gradient(90deg,rgba(0,0,0,.42),transparent 76%);
  }
  .hero-frame{inset:14px}
  .frame-corner{width:19px;height:19px}
  .hero-copy{width:100%}
  .hero-title{font-size:clamp(61px,18vw,84px);line-height:.84}
  .hero-rotator{margin-top:23px}
  .hero-text{font-size:15px;margin-top:6px}
  .hero-actions{display:block}
  .hero-actions .btn{width:100%}
  .hero-secondary{
    display:block;
    width:max-content;
    margin:13px auto 0;
  }
  .sound-toggle{right:17px;bottom:26px}
  .sound-label{display:none}
  .scroll-cue{left:28px;bottom:27px;transform:none;align-items:flex-start}
  .scroll-line{height:27px}
}
@media(max-width:480px){
  .hero-title{font-size:62px}
  .hero-location{margin-bottom:14px}
  .hero-frame{display:none}
}
@media(prefers-reduced-motion:reduce){
  .hero-video,.hero-line,.hero-location,.hero-rotator,.hero-text,.hero-actions,.scroll-cue,.sound-toggle{
    animation:none!important;
    opacity:1!important;
    transform:none!important;
    filter:none!important;
  }
  .hero-grain{display:none}
}

/* ===== PART 2 STORY ===== */
.story-manifesto{
padding:140px 8vw;
background:#090909;
border-top:1px solid rgba(255,255,255,.08);
}
.story-intro{
max-width:900px;
margin:auto;
text-align:center;
}
.story-intro h2{
font-size:clamp(54px,8vw,110px);
margin:.2em 0 0;
}
.story-intro h3{
font-family:var(--serif);
font-size:clamp(36px,5vw,70px);
color:var(--gold);
margin:.3em 0;
font-style:italic;
}
.story-copy{
max-width:700px;
margin:30px auto 70px;
color:#c8c3b8;
font-size:18px;
}
.timeline{
display:grid;
grid-template-columns:repeat(5,1fr);
gap:18px;
}
.time-item{
padding:28px;
border:1px solid rgba(255,255,255,.08);
background:linear-gradient(180deg,#121212,#0a0a0a);
transition:.35s;
}
.time-item:hover{
transform:translateY(-8px);
border-color:rgba(212,175,55,.6);
}
.time-item span{
display:block;
color:var(--gold);
font-size:12px;
letter-spacing:.2em;
margin-bottom:16px;
}
.time-item strong{
display:block;
font-family:var(--serif);
font-size:38px;
margin-bottom:8px;
}
.time-item small{
color:#aaa;
}
@media(max-width:900px){
.timeline{grid-template-columns:1fr;gap:12px;}
.story-manifesto{padding:90px 22px;}
.story-intro h2{font-size:58px;}
.story-intro h3{font-size:38px;}
}


/* =========================================================
   K20 EXPERIENCE V3 — PARTE 3
   APERITIVO + CENA + GALLERIA IMMERSIVA
   ========================================================= */

.aperitivo-experience{
  display:grid;
  grid-template-columns:minmax(0,1.08fr) minmax(380px,.84fr);
  grid-template-rows:auto auto;
  background:#080808;
  min-height:1180px;
}
.aperitivo-visual{
  position:relative;
  overflow:hidden;
}
.aperitivo-people{
  grid-row:1 / span 2;
  min-height:1180px;
}
.aperitivo-buffet{
  min-height:560px;
}
.aperitivo-visual img{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  transition:transform 1.1s cubic-bezier(.22,1,.36,1);
}
.aperitivo-people img{
  object-position:center 34%;
}
.aperitivo-visual:hover img{
  transform:scale(1.035);
}
.image-overlay{
  position:absolute;
  inset:0;
  background:
    linear-gradient(0deg,rgba(0,0,0,.78),transparent 48%),
    linear-gradient(90deg,rgba(0,0,0,.32),transparent 55%);
}
.image-label{
  position:absolute;
  left:28px;
  bottom:26px;
  z-index:2;
  font-size:9px;
  font-weight:700;
  letter-spacing:.22em;
  text-transform:uppercase;
  color:#eee8dc;
}
.aperitivo-copy{
  display:flex;
  flex-direction:column;
  justify-content:center;
  padding:clamp(70px,7vw,118px);
  background:
    radial-gradient(circle at 100% 0%,rgba(212,175,55,.08),transparent 32%),
    #11110f;
}
.aperitivo-copy h2{
  font-size:clamp(54px,6.3vw,98px);
  line-height:.88;
  letter-spacing:-.04em;
}
.aperitivo-copy > p:not(.kicker){
  margin:31px 0;
  color:#bdb7ac;
  font-size:17px;
  max-width:590px;
}
.experience-points{
  display:flex;
  flex-wrap:wrap;
  gap:9px;
  margin:0 0 34px;
}
.experience-points span{
  border:1px solid rgba(255,255,255,.13);
  padding:10px 14px;
  color:#d7d0c3;
  font-size:9px;
  font-weight:700;
  letter-spacing:.17em;
  text-transform:uppercase;
}

.dinner-experience{
  position:relative;
  min-height:900px;
  display:flex;
  align-items:flex-end;
  overflow:hidden;
}
.dinner-backdrop,
.dinner-shade{
  position:absolute;
  inset:0;
}
.dinner-backdrop img{
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center;
  transform:scale(1.025);
  transition:transform 1.4s cubic-bezier(.22,1,.36,1);
}
.dinner-experience:hover .dinner-backdrop img{
  transform:scale(1.06);
}
.dinner-shade{
  background:
    linear-gradient(90deg,rgba(0,0,0,.92) 0%,rgba(0,0,0,.63) 48%,rgba(0,0,0,.17) 100%),
    linear-gradient(0deg,rgba(0,0,0,.90),transparent 65%);
}
.dinner-content{
  position:relative;
  z-index:2;
  width:min(920px,90%);
  padding:clamp(80px,9vw,145px);
}
.dinner-content h2{
  font-size:clamp(58px,7.8vw,118px);
  line-height:.86;
  letter-spacing:-.045em;
}
.dinner-content h2 em{
  color:var(--gold);
}
.dinner-content > p:not(.kicker){
  max-width:600px;
  margin:28px 0 36px;
  color:#d0c9bd;
  font-size:18px;
}

.visual-story{
  padding:clamp(95px,11vw,165px) 0;
  overflow:hidden;
  background:
    linear-gradient(180deg,#090909,#0d0d0c 65%,#080808);
}
.visual-story-head{
  display:grid;
  grid-template-columns:1.25fr .75fr;
  align-items:end;
  gap:50px;
  padding:0 clamp(22px,6vw,95px);
  margin-bottom:52px;
}
.visual-story-head h2{
  font-size:clamp(55px,7vw,100px);
  line-height:.88;
  letter-spacing:-.04em;
}
.visual-story-head > p{
  margin:0 0 8px;
  color:#aaa49a;
  max-width:470px;
  font-size:16px;
}
.filmstrip{
  display:flex;
  gap:14px;
  overflow-x:auto;
  overscroll-behavior-inline:contain;
  scroll-snap-type:x mandatory;
  scrollbar-width:none;
  padding:0 clamp(22px,6vw,95px) 18px;
  cursor:grab;
}
.filmstrip:active{
  cursor:grabbing;
}
.filmstrip::-webkit-scrollbar{
  display:none;
}
.film-card{
  position:relative;
  flex:0 0 min(31vw,440px);
  height:520px;
  margin:0;
  overflow:hidden;
  scroll-snap-align:start;
  background:#151515;
}
.film-card-wide{
  flex-basis:min(47vw,690px);
}
.film-card-tall{
  flex-basis:min(25vw,370px);
  height:610px;
}
.film-card img{
  width:100%;
  height:100%;
  object-fit:cover;
  filter:saturate(.88) contrast(1.03);
  transition:transform .9s cubic-bezier(.22,1,.36,1),filter .5s ease;
}
.film-card:hover img{
  transform:scale(1.045);
  filter:saturate(1) contrast(1.04);
}
.film-card::after{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(0deg,rgba(0,0,0,.76),transparent 42%);
}
.film-card figcaption{
  position:absolute;
  z-index:2;
  left:24px;
  bottom:21px;
  font:600 27px var(--serif);
}
.filmstrip-hint{
  display:flex;
  align-items:center;
  gap:13px;
  padding:20px clamp(22px,6vw,95px) 0;
  color:#8f8a81;
  font-size:9px;
  font-weight:700;
  letter-spacing:.19em;
  text-transform:uppercase;
}
.filmstrip-hint span{
  width:55px;
  height:1px;
  background:linear-gradient(90deg,var(--gold),transparent);
}

@media(max-width:900px){
  .aperitivo-experience{
    display:block;
    min-height:auto;
  }
  .aperitivo-people{
    min-height:720px;
  }
  .aperitivo-copy{
    padding:90px 22px;
  }
  .aperitivo-copy h2{
    font-size:58px;
  }
  .aperitivo-buffet{
    min-height:560px;
  }
  .dinner-experience{
    min-height:780px;
  }
  .dinner-backdrop img{
    object-position:58% center;
  }
  .dinner-shade{
    background:
      linear-gradient(0deg,rgba(0,0,0,.94) 0%,rgba(0,0,0,.48) 59%,rgba(0,0,0,.15) 100%);
  }
  .dinner-content{
    width:100%;
    padding:90px 22px;
  }
  .dinner-content h2{
    font-size:59px;
  }
  .visual-story-head{
    display:block;
    padding:0 22px;
  }
  .visual-story-head > p{
    margin-top:26px;
  }
  .filmstrip{
    padding-left:22px;
    padding-right:22px;
  }
  .film-card,
  .film-card-wide,
  .film-card-tall{
    flex-basis:82vw;
    height:560px;
  }
  .filmstrip-hint{
    padding-left:22px;
  }
}

@media(max-width:480px){
  .aperitivo-people{
    min-height:620px;
  }
  .aperitivo-buffet{
    min-height:480px;
  }
  .dinner-experience{
    min-height:720px;
  }
  .film-card,
  .film-card-wide,
  .film-card-tall{
    flex-basis:86vw;
    height:480px;
  }
}


/* =========================================================
   K20 EXPERIENCE V3 — PARTE 4
   KARAOKE + EVENTI + CTA FINALE + FOOTER
   ========================================================= */

.karaoke-stage{
  display:grid;
  grid-template-columns:minmax(0,1.08fr) minmax(390px,.92fr);
  min-height:960px;
  background:#070707;
}
.karaoke-media{
  position:relative;
  overflow:hidden;
}
.karaoke-media img{
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center;
  filter:saturate(.82) contrast(1.05);
  transition:transform 1.3s cubic-bezier(.22,1,.36,1);
}
.karaoke-stage:hover .karaoke-media img{
  transform:scale(1.045);
}
.karaoke-gradient{
  position:absolute;
  inset:0;
  background:
    linear-gradient(90deg,transparent 45%,rgba(0,0,0,.72) 100%),
    linear-gradient(0deg,rgba(0,0,0,.67),transparent 48%);
}
.karaoke-marquee{
  position:absolute;
  left:0;
  right:0;
  bottom:0;
  display:flex;
  gap:40px;
  overflow:hidden;
  white-space:nowrap;
  padding:16px 0;
  background:var(--gold);
  color:#090909;
  font-size:10px;
  font-weight:800;
  letter-spacing:.22em;
}
.karaoke-marquee span{
  min-width:max-content;
  animation:karaokeTicker 19s linear infinite;
}
@keyframes karaokeTicker{
  to{transform:translateX(calc(-100% - 40px))}
}
.karaoke-panel{
  display:flex;
  flex-direction:column;
  justify-content:center;
  padding:clamp(80px,8vw,130px);
  background:
    radial-gradient(circle at 0 0,rgba(212,175,55,.08),transparent 34%),
    #10100f;
}
.karaoke-panel h2{
  font-size:clamp(56px,6.7vw,100px);
  line-height:.86;
  letter-spacing:-.045em;
}
.karaoke-panel > p:not(.kicker){
  max-width:590px;
  margin:31px 0;
  color:#b8b2a7;
  font-size:17px;
}
.karaoke-meta{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:12px;
  margin:0 0 34px;
}
.karaoke-meta div{
  padding:18px;
  border:1px solid rgba(255,255,255,.1);
}
.karaoke-meta span,
.karaoke-meta strong{
  display:block;
}
.karaoke-meta span{
  color:var(--gold);
  font-size:9px;
  font-weight:700;
  letter-spacing:.18em;
  text-transform:uppercase;
  margin-bottom:8px;
}
.karaoke-meta strong{
  font-size:13px;
}

.event-experience{
  padding:clamp(100px,12vw,175px) clamp(18px,5vw,78px);
  background:
    linear-gradient(180deg,#080808,#0e0d0b 60%,#080808);
}
.event-head{
  max-width:1150px;
  margin-bottom:60px;
}
.event-head h2{
  font-size:clamp(58px,8vw,118px);
  line-height:.87;
}
.event-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:14px;
}
.event-card{
  min-height:610px;
  position:relative;
  overflow:hidden;
  border:1px solid rgba(255,255,255,.08);
}
.event-card img{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  transition:transform 1s cubic-bezier(.22,1,.36,1);
}
.event-card:hover img{
  transform:scale(1.04);
}
.event-card-overlay{
  position:absolute;
  inset:0;
  background:linear-gradient(0deg,rgba(0,0,0,.88),transparent 62%);
}
.event-card-copy{
  position:absolute;
  z-index:2;
  left:34px;
  right:34px;
  bottom:31px;
}
.event-card-copy > span,
.event-card-copy-only > span{
  display:block;
  color:var(--gold);
  font:600 31px var(--serif);
  margin-bottom:28px;
}
.event-card h3{
  margin:0 0 13px;
  font:600 clamp(42px,5vw,72px)/.92 var(--serif);
}
.event-card p{
  color:#c2bbb0;
  max-width:520px;
}
.event-card-copy-only{
  display:flex;
  flex-direction:column;
  justify-content:center;
  padding:clamp(55px,7vw,105px);
  background:
    radial-gradient(circle at 100% 0,rgba(212,175,55,.08),transparent 34%),
    #11110f;
}
.event-card-wide{
  grid-column:1 / -1;
  min-height:670px;
}
.event-tags{
  display:flex;
  flex-wrap:wrap;
  gap:9px;
  margin-top:27px;
}
.event-tags span{
  padding:9px 13px;
  border:1px solid rgba(255,255,255,.12);
  color:#d9d1c4;
  font-size:9px;
  font-weight:700;
  letter-spacing:.15em;
  text-transform:uppercase;
}
.event-cta{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:25px;
  padding:34px 0 0;
}
.event-cta p{
  font:600 clamp(27px,3vw,42px) var(--serif);
  margin:0;
}

.brand-quote{
  padding:clamp(115px,15vw,220px) 22px;
  background:#050505;
  text-align:center;
  border-top:1px solid rgba(255,255,255,.06);
  border-bottom:1px solid rgba(255,255,255,.06);
}
.brand-quote-inner{
  max-width:1120px;
  margin:auto;
}
.brand-quote blockquote{
  margin:22px 0 36px;
  font:600 clamp(52px,8vw,116px)/.88 var(--serif);
  letter-spacing:-.04em;
}
.brand-quote blockquote em{
  color:var(--gold);
}
.brand-quote-inner > p:last-child{
  max-width:680px;
  margin:auto;
  color:#aaa398;
  font-size:17px;
}

.location-card{
  display:grid;
  grid-template-columns:1.08fr .92fr;
  min-height:900px;
  background:#0d0d0c;
}
.location-image{
  position:relative;
  overflow:hidden;
}
.location-image img{
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center;
  transition:transform 1.25s cubic-bezier(.22,1,.36,1);
}
.location-card:hover .location-image img{
  transform:scale(1.04);
}
.location-shade{
  position:absolute;
  inset:0;
  background:linear-gradient(90deg,transparent 65%,rgba(0,0,0,.42));
}
.location-panel{
  display:flex;
  flex-direction:column;
  justify-content:center;
  padding:clamp(70px,8vw,125px);
  background:
    radial-gradient(circle at 0 0,rgba(212,175,55,.08),transparent 34%),
    #10100f;
}
.location-logo{
  width:105px;
  height:80px;
  object-fit:contain;
  mix-blend-mode:screen;
  margin-bottom:44px;
}
.location-panel h2{
  font-size:clamp(55px,6.7vw,98px);
  line-height:.87;
}
.location-actions{
  display:flex;
  flex-wrap:wrap;
  gap:12px;
  margin-top:38px;
}
.location-links{
  display:flex;
  justify-content:space-between;
  gap:18px;
  margin-top:35px;
  padding-top:23px;
  border-top:1px solid rgba(255,255,255,.1);
  color:#bcb5aa;
  font-size:12px;
}

.footer-v4{
  padding:70px clamp(22px,6vw,95px) 115px;
  border-top:1px solid rgba(255,255,255,.08);
  background:#050505;
  text-align:left;
}
.footer-main{
  display:grid;
  grid-template-columns:1.5fr .75fr .75fr;
  gap:45px;
  align-items:start;
}
.footer-main img{
  width:105px;
  height:80px;
  object-fit:contain;
  margin:0 0 18px;
  mix-blend-mode:screen;
}
.footer-main p{
  color:#aaa398;
}
.footer-main nav{
  display:flex;
  flex-direction:column;
  gap:13px;
  margin:0;
  align-items:flex-start;
}
.footer-main nav a{
  font-size:11px;
  font-weight:700;
  letter-spacing:.13em;
  text-transform:uppercase;
  color:#d8d1c5;
}
.footer-main nav a:hover{
  color:var(--gold);
}
.footer-bottom{
  display:flex;
  justify-content:space-between;
  gap:20px;
  margin-top:58px;
  padding-top:22px;
  border-top:1px solid rgba(255,255,255,.08);
  color:#888279;
  font-size:11px;
}
.footer-bottom a{
  color:#c5beb2;
}

@media(max-width:900px){
  .karaoke-stage{
    display:block;
    min-height:auto;
  }
  .karaoke-media{
    min-height:660px;
  }
  .karaoke-gradient{
    background:linear-gradient(0deg,rgba(0,0,0,.8),transparent 54%);
  }
  .karaoke-panel{
    padding:90px 22px;
  }
  .karaoke-panel h2{
    font-size:58px;
  }
  .event-grid{
    grid-template-columns:1fr;
  }
  .event-card,
  .event-card-wide{
    grid-column:auto;
    min-height:590px;
  }
  .event-card-copy-only{
    min-height:auto;
    padding:85px 22px;
  }
  .event-cta{
    align-items:flex-start;
    flex-direction:column;
  }
  .event-cta .btn{
    width:100%;
  }
  .brand-quote blockquote{
    font-size:58px;
  }
  .location-card{
    grid-template-columns:1fr;
    min-height:auto;
  }
  .location-image{
    min-height:640px;
  }
  .location-panel{
    padding:90px 22px;
  }
  .location-panel h2{
    font-size:57px;
  }
  .location-actions .btn{
    width:100%;
  }
  .location-links{
    flex-direction:column;
  }
  .footer-main{
    grid-template-columns:1fr 1fr;
  }
  .footer-main > div{
    grid-column:1 / -1;
  }
}

@media(max-width:480px){
  .karaoke-meta{
    grid-template-columns:1fr;
  }
  .karaoke-media{
    min-height:540px;
  }
  .event-card,
  .event-card-wide{
    min-height:500px;
  }
  .event-card-copy{
    left:22px;
    right:22px;
  }
  .footer-main{
    grid-template-columns:1fr;
  }
  .footer-main > div{
    grid-column:auto;
  }
  .footer-bottom{
    flex-direction:column;
  }
}


/* =========================================================
   K20 EXPERIENCE — RELEASE FINALE
   ACCESSIBILITÀ · NAVIGAZIONE · PERFORMANCE · POLISH
   ========================================================= */

:focus-visible{
  outline:2px solid var(--gold);
  outline-offset:4px;
}
::selection{
  background:var(--gold);
  color:#080808;
}
.skip-link{
  position:fixed;
  z-index:1200;
  top:12px;
  left:12px;
  transform:translateY(-180%);
  padding:12px 16px;
  background:var(--gold);
  color:#080808;
  font-size:12px;
  font-weight:800;
  transition:transform .25s ease;
}
.skip-link:focus{
  transform:none;
}
.scroll-progress{
  position:fixed;
  z-index:1000;
  top:0;
  left:0;
  right:0;
  height:2px;
  pointer-events:none;
}
.scroll-progress span{
  display:block;
  width:100%;
  height:100%;
  background:var(--gold);
  transform:scaleX(0);
  transform-origin:left;
  will-change:transform;
}
.site-header{
  transition:background .35s ease,border-color .35s ease,transform .35s ease;
}
.site-header.is-scrolled{
  background:rgba(5,5,5,.83);
  border-bottom:1px solid rgba(255,255,255,.08);
  backdrop-filter:blur(17px);
  -webkit-backdrop-filter:blur(17px);
}
.header-actions{
  display:flex;
  align-items:center;
  gap:12px;
}
.menu-toggle{
  width:45px;
  height:45px;
  position:relative;
  border:1px solid rgba(255,255,255,.28);
  background:rgba(0,0,0,.18);
  color:#fff;
  cursor:pointer;
  backdrop-filter:blur(10px);
}
.menu-toggle span{
  position:absolute;
  left:12px;
  width:19px;
  height:1px;
  background:currentColor;
  transition:transform .35s cubic-bezier(.22,1,.36,1),top .35s ease;
}
.menu-toggle span:first-child{top:17px}
.menu-toggle span:last-child{top:25px}
.menu-toggle.is-open span:first-child{
  top:21px;
  transform:rotate(45deg);
}
.menu-toggle.is-open span:last-child{
  top:21px;
  transform:rotate(-45deg);
}
.site-menu{
  position:fixed;
  z-index:90;
  inset:0;
  display:grid;
  place-items:center;
  padding:100px 22px 40px;
  background:
    radial-gradient(circle at 78% 18%,rgba(212,175,55,.1),transparent 31%),
    rgba(5,5,5,.97);
  opacity:0;
  visibility:hidden;
  transform:translateY(-12px);
  transition:opacity .45s ease,visibility .45s ease,transform .45s cubic-bezier(.22,1,.36,1);
}
.site-menu.is-open{
  opacity:1;
  visibility:visible;
  transform:none;
}
.site-menu-inner{
  width:min(900px,100%);
}
.site-menu-inner > a{
  display:flex;
  align-items:baseline;
  gap:25px;
  padding:12px 0;
  border-bottom:1px solid rgba(255,255,255,.08);
  font:600 clamp(42px,6vw,78px)/.95 var(--serif);
  transition:color .25s ease,padding-left .35s ease;
}
.site-menu-inner > a:hover{
  color:var(--gold);
  padding-left:12px;
}
.site-menu-inner > a span{
  width:30px;
  color:var(--gold);
  font:700 9px var(--sans);
  letter-spacing:.16em;
}
.site-menu-meta{
  display:flex;
  justify-content:space-between;
  gap:20px;
  margin-top:28px;
  color:#9d978e;
  font-size:11px;
  letter-spacing:.08em;
}
body.menu-open{
  overflow:hidden;
}

/* Reveal più raffinato */
.reveal{
  opacity:0;
  transform:translate3d(0,42px,0);
  filter:blur(5px);
  transition:
    opacity .95s cubic-bezier(.22,1,.36,1),
    transform .95s cubic-bezier(.22,1,.36,1),
    filter .95s ease;
}
.reveal.visible{
  opacity:1;
  transform:none;
  filter:none;
}

/* CTA e link */
.btn,
.header-cta,
.text-link{
  position:relative;
}
.btn:active,
.header-cta:active{
  transform:translateY(0) scale(.985);
}
.text-link::after{
  content:"";
  position:absolute;
  left:0;
  right:0;
  bottom:-5px;
  height:1px;
  background:var(--gold);
  transform:scaleX(0);
  transform-origin:right;
  transition:transform .35s ease;
}
.text-link:hover::after{
  transform:scaleX(1);
  transform-origin:left;
}

/* Content visibility riduce il costo di rendering */
.chapter,
.aperitivo-experience,
.dinner-experience,
.visual-story,
.karaoke-stage,
.event-experience,
.brand-quote,
.location-card{
  content-visibility:auto;
  contain-intrinsic-size:900px;
}

/* Migliore leggibilità */
p{
  text-wrap:pretty;
}
h1,h2,h3,blockquote{
  text-wrap:balance;
}

/* Immagini con fallback gradevole */
img{
  background:#111;
}

/* Desktop hover solo sui dispositivi adatti */
@media(hover:hover) and (pointer:fine){
  .film-card,
  .event-card,
  .aperitivo-visual,
  .location-image{
    transform:translateZ(0);
  }
}

/* Tablet e mobile */
@media(max-width:820px){
  .header-cta{
    display:none;
  }
  .menu-toggle{
    width:42px;
    height:42px;
  }
  .site-menu{
    padding-top:85px;
    align-items:start;
  }
  .site-menu-inner > a{
    font-size:48px;
    padding:9px 0;
  }
  .site-menu-meta{
    flex-direction:column;
  }
  .scroll-progress{
    height:2px;
  }
}

@media(max-width:480px){
  .site-menu-inner > a{
    font-size:40px;
  }
  .site-menu-inner > a span{
    width:21px;
  }
}

/* Connessioni lente: immagine poster invece del video secondario */
@media(prefers-reduced-data:reduce){
  .chapter-media video{
    display:none;
  }
  .chapter-media{
    background:url("../assets/images/cornetti.webp") center/cover no-repeat;
  }
}

/* Contrasto e motion */
@media(prefers-contrast:more){
  :root{
    --muted:#d2ccc1;
    --line:rgba(255,255,255,.28);
  }
}
@media(prefers-reduced-motion:reduce){
  .site-menu,
  .menu-toggle span,
  .scroll-progress span{
    transition:none!important;
  }
  .karaoke-marquee span,
  .hero-grain{
    animation:none!important;
  }
}


/* =========================================================
   REVISIONE PULITA V1
   MENO FOTO · PIÙ CHIAREZZA · ELEGANZA ESSENZIALE
   ========================================================= */

.simple-feature,
.clean-section{
  display:grid;
  grid-template-columns:1fr 1fr;
  min-height:720px;
  background:#090909;
}
.simple-feature-image,
.clean-section-image{
  min-height:720px;
  overflow:hidden;
}
.simple-feature-image img,
.clean-section-image img{
  width:100%;
  height:100%;
  object-fit:cover;
}
.simple-feature-copy,
.clean-section-copy{
  display:flex;
  flex-direction:column;
  justify-content:center;
  align-items:flex-start;
  padding:clamp(70px,8vw,125px);
  background:#11110f;
}
.simple-feature-copy h2,
.clean-section-copy h2{
  font-size:clamp(54px,6.6vw,98px);
  line-height:.88;
  letter-spacing:-.04em;
}
.simple-feature-copy p:not(.kicker),
.clean-section-copy p:not(.kicker){
  max-width:590px;
  margin:29px 0 34px;
  color:#b9b3a8;
  font-size:17px;
}
.clean-section-dark .clean-section-copy{
  background:#0b0b0a;
}

/* Riduce la sensazione di pagina troppo piena */
.manifesto{
  padding-top:120px;
  padding-bottom:120px;
}
.dinner-experience{
  min-height:760px;
}
.location-card{
  min-height:760px;
}

/* La pagina finale usa una sola immagine per ogni sezione */
.visual-story,
.event-experience,
.karaoke-stage,
.brand-quote{
  display:none!important;
}

@media(max-width:900px){
  .simple-feature,
  .clean-section{
    grid-template-columns:1fr;
    min-height:0;
  }
  .simple-feature-image,
  .clean-section-image{
    min-height:500px;
  }
  .simple-feature-copy,
  .clean-section-copy{
    padding:78px 22px;
  }
  .simple-feature-copy h2,
  .clean-section-copy h2{
    font-size:55px;
  }
  .clean-section-dark .clean-section-image{
    order:0;
  }
}

@media(max-width:480px){
  .simple-feature-image,
  .clean-section-image{
    min-height:420px;
  }
}


/* =========================================================
   REVISIONE PULITA V2
   KARAOKE ED EVENTI: UNA SOLA FOTO, TESTO CHIARO
   ========================================================= */

.focus-section{
  position:relative;
  min-height:760px;
  display:flex;
  align-items:flex-end;
  overflow:hidden;
  background:#080808;
}
.focus-section > img{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
}
.focus-karaoke > img{
  object-position:center 38%;
}
.focus-events > img{
  object-position:center;
}
.focus-overlay{
  position:absolute;
  inset:0;
  background:
    linear-gradient(90deg,rgba(0,0,0,.88) 0%,rgba(0,0,0,.56) 50%,rgba(0,0,0,.20) 100%),
    linear-gradient(0deg,rgba(0,0,0,.80),transparent 60%);
}
.focus-events .focus-overlay{
  background:
    linear-gradient(270deg,rgba(0,0,0,.90) 0%,rgba(0,0,0,.58) 47%,rgba(0,0,0,.18) 100%),
    linear-gradient(0deg,rgba(0,0,0,.72),transparent 56%);
}
.focus-copy{
  position:relative;
  z-index:2;
  width:min(760px,92%);
  padding:clamp(70px,8vw,125px);
}
.focus-copy-right{
  margin-left:auto;
}
.focus-copy h2{
  font-size:clamp(56px,7vw,104px);
  line-height:.87;
  letter-spacing:-.045em;
}
.focus-copy > p:not(.kicker){
  max-width:590px;
  margin:28px 0 34px;
  color:#d0c9bd;
  font-size:17px;
}
.focus-section .btn{
  width:max-content;
}

/* Nasconde eventuali residui delle precedenti sezioni complesse */
.karaoke-stage,
.event-experience{
  display:none!important;
}

@media(max-width:900px){
  .focus-section{
    min-height:690px;
    align-items:flex-end;
  }
  .focus-overlay,
  .focus-events .focus-overlay{
    background:
      linear-gradient(0deg,rgba(0,0,0,.94) 0%,rgba(0,0,0,.60) 48%,rgba(0,0,0,.16) 100%);
  }
  .focus-copy,
  .focus-copy-right{
    width:100%;
    margin:0;
    padding:78px 22px;
  }
  .focus-copy h2{
    font-size:55px;
  }
  .focus-section .btn{
    width:100%;
  }
}

@media(max-width:480px){
  .focus-section{
    min-height:620px;
  }
}
