:root {
  --ink: #080706;
  --ink-soft: #14100d;
  --paper: #e9c98e;
  --paper-bright: #f2dfb9;
  --red: #aa261f;
  --red-dark: #6f1714;
  --gold: #bd8945;
  --line: rgba(233, 201, 142, 0.28);
  --muted: #c8b89a;
  --content: 1200px;
  --radius: 6px;
  --display: Impact, Haettenschweiler, "Arial Black", "Franklin Gothic Heavy", sans-serif;
  --body: "Helvetica Neue", Helvetica, Arial, sans-serif;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; background: var(--ink); }
body {
  margin: 0;
  color: var(--paper-bright);
  background:
    radial-gradient(circle at 12% 5%, rgba(170, 38, 31, .15), transparent 24rem),
    radial-gradient(circle at 92% 58%, rgba(189, 137, 69, .08), transparent 24rem),
    var(--ink);
  font-family: var(--body);
  line-height: 1.55;
  overflow-x: hidden;
}
body::before {
  content: "";
  position: fixed;
  inset: 0;
  z-index: 50;
  pointer-events: none;
  opacity: .18;
  mix-blend-mode: screen;
  background-image:
    repeating-linear-gradient(0deg, rgba(255,255,255,.025) 0 1px, transparent 1px 4px),
    repeating-linear-gradient(90deg, transparent 0 6px, rgba(255,255,255,.015) 6px 7px);
}
a { color: inherit; }
img, video { max-width: 100%; display: block; }
button, a { -webkit-tap-highlight-color: transparent; }
button, input, textarea { font: inherit; }
:focus-visible { outline: 3px solid var(--paper-bright); outline-offset: 4px; }

.skip-link {
  position: fixed;
  top: 10px;
  left: 10px;
  z-index: 200;
  transform: translateY(-150%);
  padding: .75rem 1rem;
  color: var(--ink);
  background: var(--paper-bright);
  font-weight: 800;
}
.skip-link:focus { transform: translateY(0); }
.container { width: min(calc(100% - 2rem), var(--content)); margin-inline: auto; }
.section { position: relative; padding: clamp(5rem, 9vw, 9rem) 0; }
.section-rule { border-top: 1px solid var(--line); }
.eyebrow {
  margin: 0 0 1rem;
  color: var(--gold);
  font-size: .78rem;
  font-weight: 900;
  letter-spacing: .22em;
  text-transform: uppercase;
}
.display {
  margin: 0;
  font-family: var(--display);
  font-weight: 900;
  line-height: .9;
  letter-spacing: -.025em;
  text-transform: uppercase;
}
.section-title { font-size: clamp(3rem, 7vw, 6.6rem); }
.section-title .red, .red { color: var(--red); }
.lead { max-width: 48rem; margin: 1.4rem 0 0; color: var(--muted); font-size: clamp(1.08rem, 2vw, 1.35rem); }
.small-note { color: var(--muted); font-size: .88rem; }
.stamp {
  display: inline-flex;
  align-items: center;
  min-height: 2.25rem;
  padding: .45rem .75rem;
  color: var(--paper);
  border: 2px solid currentColor;
  font-family: var(--display);
  font-size: .8rem;
  line-height: 1;
  letter-spacing: .08em;
  text-transform: uppercase;
  transform: rotate(-2deg);
}

.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 3.25rem;
  padding: .85rem 1.25rem;
  border: 1px solid var(--paper);
  border-radius: 2px;
  color: var(--ink);
  background: var(--paper);
  font-family: var(--display);
  font-size: .98rem;
  letter-spacing: .04em;
  line-height: 1;
  text-align: center;
  text-decoration: none;
  text-transform: uppercase;
  transition: transform .2s ease, background .2s ease, color .2s ease, border-color .2s ease;
}
.btn:hover { transform: translateY(-2px); background: var(--paper-bright); }
.btn-secondary { color: var(--paper-bright); background: transparent; border-color: rgba(233,201,142,.48); }
.btn-secondary:hover { color: var(--ink); background: var(--paper-bright); border-color: var(--paper-bright); }
.btn-red { color: #fff4e0; background: var(--red); border-color: var(--red); }
.btn-red:hover { background: #c3372e; border-color: #c3372e; }
.btn.is-disabled { color: #8f806a; background: #26211c; border-color: #4e4338; cursor: not-allowed; transform: none; }
.button-row { display: flex; flex-wrap: wrap; gap: .75rem; margin-top: 1.75rem; }

.site-header {
  position: fixed;
  inset: 0 0 auto;
  z-index: 100;
  min-height: 72px;
  border-bottom: 1px solid rgba(233,201,142,.16);
  background: rgba(8,7,6,.86);
  backdrop-filter: blur(18px);
}
.nav-wrap { display: flex; align-items: center; justify-content: space-between; min-height: 72px; gap: 1rem; }
.nav-logo { flex: 0 0 auto; width: 126px; }
.nav-logo img { width: 100%; height: auto; }
.nav-menu { display: flex; align-items: center; gap: clamp(.55rem, 1.1vw, 1.05rem); }
.nav-menu a:not(.btn) { color: #dcc7a0; font-size: .7rem; font-weight: 800; letter-spacing: .075em; text-decoration: none; text-transform: uppercase; }
.nav-menu a:not(.btn):hover { color: #fff2d4; }
.nav-menu .about-link { padding-left: .8rem; border-left: 1px solid var(--line); color: var(--paper-bright); }
.nav-menu .about-link::after { content: " ↗"; color: var(--gold); }
.menu-button {
  display: none;
  width: 46px;
  height: 46px;
  border: 1px solid var(--line);
  color: var(--paper-bright);
  background: transparent;
}
.menu-button span { display: block; width: 20px; height: 2px; margin: 4px auto; background: currentColor; }

.hero {
  position: relative;
  min-height: 100svh;
  display: grid;
  align-items: end;
  isolation: isolate;
  overflow: hidden;
}
.hero-media { position: absolute; inset: 0; z-index: -3; }
.hero-media video, .hero-media img { width: 100%; height: 100%; object-fit: cover; object-position: center 44%; }
.hero::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -2;
  background:
    linear-gradient(90deg, rgba(8,7,6,.96) 0%, rgba(8,7,6,.68) 48%, rgba(8,7,6,.38) 100%),
    linear-gradient(0deg, var(--ink) 0%, transparent 34%, rgba(8,7,6,.55) 100%);
}
.hero::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  opacity: .35;
  background:
    linear-gradient(90deg, transparent 49.88%, rgba(244,226,191,.6) 50%, transparent 50.12%),
    linear-gradient(0deg, transparent 49.88%, rgba(244,226,191,.28) 50%, transparent 50.12%);
}
.hero-content { padding-top: 8rem; padding-bottom: clamp(3.4rem, 8vh, 7rem); }
.hero-logo { width: clamp(160px, 21vw, 260px); margin-bottom: 2.2rem; filter: sepia(1) saturate(.65) brightness(1.08); }
.hero-title { max-width: 960px; font-size: clamp(4rem, 10.5vw, 9.5rem); }
.hero-title span { display: block; }
.hero-title .second { color: var(--red); }
.hero-kicker { margin: 1.3rem 0 0; color: #fff0d0; font-family: var(--display); font-size: clamp(1.05rem, 2.2vw, 1.65rem); letter-spacing: .08em; text-transform: uppercase; }
.hero-details { display: flex; flex-wrap: wrap; gap: .65rem 1.5rem; max-width: 850px; margin-top: 1.4rem; color: var(--paper); font-size: .88rem; font-weight: 900; letter-spacing: .1em; text-transform: uppercase; }
.hero-details span { display: inline-flex; align-items: center; gap: .55rem; }
.hero-details span::before { content: ""; width: 6px; height: 6px; border-radius: 50%; background: var(--red); }
.hero-token-note { margin: 1rem 0 0; color: #d1bea0; font-size: .87rem; font-weight: 700; letter-spacing: .03em; text-transform: uppercase; }

.concept-grid { display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(300px, .95fr); gap: clamp(2rem, 6vw, 6rem); align-items: end; }
.concept-copy { padding-bottom: 1rem; }
.moment-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1px; margin-top: 3rem; border: 1px solid var(--line); background: var(--line); }
.moment { position: relative; min-height: 220px; overflow: hidden; background: var(--ink-soft); }
.moment img { width: 100%; height: 100%; object-fit: cover; filter: saturate(.7) contrast(1.08); transition: transform .5s ease, filter .5s ease; }
.moment::after { content: ""; position: absolute; inset: 0; background: linear-gradient(0deg, rgba(8,7,6,.92), transparent 65%); }
.moment strong { position: absolute; z-index: 2; left: 1.1rem; bottom: .9rem; font-family: var(--display); font-size: clamp(1.4rem, 2.2vw, 2.3rem); letter-spacing: .02em; }
.moment:hover img { transform: scale(1.04); filter: saturate(1) contrast(1.08); }

.tickets { background: var(--paper); color: var(--ink); }
.tickets::before, .tickets::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  height: 14px;
  background: radial-gradient(circle at 7px 7px, transparent 6px, var(--paper) 6.5px) 0 -7px/14px 14px repeat-x;
}
.tickets::before { top: -7px; }
.tickets::after { bottom: -7px; transform: rotate(180deg); }
.tickets .eyebrow { color: var(--red-dark); }
.tickets .lead, .tickets .small-note { color: #3d3026; }
.sales-ticker {
  position: relative;
  z-index: 2;
  margin: clamp(-2.7rem, -3vw, -1.5rem) 0 clamp(2.7rem, 5vw, 4.6rem);
  overflow: hidden;
  color: var(--paper-bright);
  border-block: 2px solid var(--ink);
  background: var(--red-dark);
  box-shadow: 0 7px 0 rgba(8,7,6,.14);
}
.sales-ticker-track { display: flex; width: max-content; animation: salesTicker 24s linear infinite; }
.sales-ticker-group { display: flex; flex: none; align-items: center; gap: 1.5rem; padding: .9rem .75rem; }
.sales-ticker span { font-family: var(--display); font-size: clamp(1rem, 2vw, 1.45rem); letter-spacing: .055em; line-height: 1; white-space: nowrap; }
.sales-ticker i { color: var(--gold); font-style: normal; }
@keyframes salesTicker { to { transform: translateX(-50%); } }
.price-deadline {
  display: grid;
  grid-template-columns: minmax(210px, .56fr) minmax(0, 1.44fr);
  gap: 1.2rem;
  align-items: center;
  margin-bottom: 3rem;
  padding: 1.15rem 1.3rem;
  color: var(--paper-bright);
  border: 2px solid var(--ink);
  background: var(--ink);
  box-shadow: 7px 8px 0 rgba(111,23,20,.2);
}
.price-deadline span { color: var(--paper); font-size: .78rem; font-weight: 900; letter-spacing: .1em; text-transform: uppercase; }
.price-deadline strong { color: var(--paper-bright); font-family: var(--display); font-size: clamp(1.7rem, 3.7vw, 3.35rem); line-height: .92; text-align: right; text-transform: uppercase; }
.ticket-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1rem; margin-top: 3rem; align-items: stretch; }
.ticket-card {
  position: relative;
  display: flex;
  flex-direction: column;
  padding: clamp(1.4rem, 2.3vw, 2.2rem);
  border: 2px solid #2d2118;
  background: #efd8ae;
  box-shadow: 6px 7px 0 rgba(111,23,20,.18);
  overflow: hidden;
  transition: transform .28s ease, background-color .28s ease, border-color .28s ease, box-shadow .28s ease;
}
.ticket-card::after { content: ""; position: absolute; inset: 9px; pointer-events: none; border: 1px solid rgba(111,23,20,.45); }
.ticket-card.featured { color: var(--paper-bright); background: var(--red-dark); border-color: #2a0d0b; transform: translateY(-10px); box-shadow: 8px 9px 0 rgba(8,7,6,.26); }
@media (hover: hover) {
  .ticket-card:hover { transform: translateY(-7px); background: #f6e1ba; border-color: var(--red-dark); box-shadow: 10px 12px 0 rgba(111,23,20,.25); }
  .ticket-card.featured:hover { transform: translateY(-17px); background: #861f1a; border-color: #120706; box-shadow: 12px 14px 0 rgba(8,7,6,.32); }
}
.ticket-badge { position: relative; z-index: 1; align-self: flex-start; margin: 0 0 1.2rem; padding: .35rem .55rem; color: var(--paper-bright); background: var(--red); font-size: .72rem; font-weight: 900; letter-spacing: .12em; text-transform: uppercase; }
.ticket-card.featured .ticket-badge { color: var(--red-dark); background: var(--paper); }
.ticket-name { position: relative; z-index: 1; margin: 0; font-family: var(--display); font-size: clamp(2rem, 3.2vw, 3.25rem); line-height: .95; text-transform: uppercase; }
.ticket-price { position: relative; z-index: 1; margin: 1.2rem 0 .2rem; font-family: var(--display); font-size: clamp(3.2rem, 5vw, 5rem); line-height: .9; white-space: nowrap; }
.ticket-price small { font-size: .34em; letter-spacing: .04em; }
.ticket-token { position: relative; z-index: 1; margin: .75rem 0 0; color: var(--red); font-family: var(--display); font-size: clamp(1.7rem, 2.4vw, 2.45rem); line-height: 1; text-transform: uppercase; }
.ticket-card.featured .ticket-token { color: var(--paper); }
.ticket-list { position: relative; z-index: 1; display: grid; gap: .5rem; margin: 1.2rem 0 1.5rem; padding: 0; list-style: none; font-size: .84rem; font-weight: 900; letter-spacing: .05em; text-transform: uppercase; }
.ticket-list li::before { content: "✓"; margin-right: .5rem; color: var(--red); }
.ticket-card.featured .ticket-list li::before { color: var(--paper); }
.ticket-card .btn { position: relative; z-index: 2; width: 100%; margin-top: auto; color: var(--paper-bright); background: var(--ink); border-color: var(--ink); }
.ticket-card.featured .btn { color: var(--ink); background: var(--paper); border-color: var(--paper); }
.tickets-foot { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 1rem; margin-top: 2.3rem; padding-top: 1.2rem; border-top: 1px solid rgba(8,7,6,.22); }
.tickets-foot strong { font-family: var(--display); font-size: 1.2rem; text-transform: uppercase; }

.token-layout { display: grid; grid-template-columns: .9fr 1.1fr; gap: clamp(2.5rem, 7vw, 7rem); align-items: start; }
.token-steps { counter-reset: tokenstep; display: grid; gap: 1px; border: 1px solid var(--line); background: var(--line); }
.token-step { counter-increment: tokenstep; position: relative; padding: 1.6rem 1.6rem 1.6rem 5.2rem; background: var(--ink-soft); }
.token-step::before { content: "0" counter(tokenstep); position: absolute; left: 1.35rem; top: 1.25rem; color: var(--red); font-family: var(--display); font-size: 2rem; }
.token-step h3 { margin: 0; font-family: var(--display); font-size: 1.5rem; text-transform: uppercase; }
.token-step p { margin: .35rem 0 0; color: var(--muted); }
.recharge-note { margin-top: 1.2rem; padding: 1rem 1.1rem; border-left: 4px solid var(--red); color: var(--paper-bright); background: rgba(170,38,31,.12); }

.spaces-layout { display: grid; grid-template-columns: .78fr 1.22fr; gap: clamp(2rem, 5vw, 5rem); align-items: center; }
.photo-collage { display: grid; grid-template-columns: 1.1fr .9fr; grid-template-rows: 280px 220px; gap: .65rem; }
.photo-collage figure { position: relative; margin: 0; overflow: hidden; border: 1px solid var(--line); }
.photo-collage figure:first-child { grid-row: 1 / 3; }
.photo-collage img { width: 100%; height: 100%; object-fit: cover; filter: saturate(.76) contrast(1.06); }
.space-tags { display: flex; flex-wrap: wrap; gap: .5rem; margin-top: 1.6rem; }
.space-tags span { padding: .5rem .7rem; border: 1px solid var(--line); color: var(--paper); font-size: .75rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }

.split-feature { display: grid; grid-template-columns: 1fr 1fr; min-height: 680px; }
.split-media { position: relative; min-height: 560px; overflow: hidden; }
.split-media img { width: 100%; height: 100%; object-fit: cover; }
.split-media::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, transparent 55%, var(--ink)); }
.split-copy { display: flex; flex-direction: column; justify-content: center; padding: clamp(2rem, 6vw, 7rem); }
.announcement { margin-top: 2rem; padding-top: 1.3rem; border-top: 1px solid var(--line); color: var(--gold); font-family: var(--display); font-size: 1.25rem; line-height: 1.15; text-transform: uppercase; }

.drink-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .55rem; margin-top: 2rem; }
.drink-card { min-height: 112px; display: flex; flex-direction: column; justify-content: space-between; padding: 1rem; border: 1px solid var(--line); background: rgba(233,201,142,.045); }
.drink-card-main { grid-column: 1 / 3; min-height: 155px; color: var(--ink); background: var(--paper); }
.drink-card:last-child { grid-column: 1 / 3; }
.drink-card strong { font-family: var(--display); font-size: clamp(1.65rem, 3vw, 2.6rem); line-height: .9; text-transform: uppercase; }
.drink-card-main strong { color: var(--red-dark); font-size: clamp(4rem, 8vw, 7rem); }
.drink-card span { color: var(--muted); font-size: .75rem; font-weight: 900; letter-spacing: .08em; text-transform: uppercase; }
.drink-card-main span { color: #3d3026; }

.winery-callout { overflow: hidden; background: var(--red-dark); }
.winery-callout::before { content: ""; position: absolute; inset: 0; opacity: .16; background: repeating-linear-gradient(135deg, var(--paper) 0 1px, transparent 1px 18px); }
.winery-inner { position: relative; display: grid; grid-template-columns: 1fr 1fr; gap: 3rem; align-items: end; }
.winery-inner .eyebrow { color: var(--paper); }
.winery-contact { padding: 1.5rem; border: 1px solid rgba(242,223,185,.35); background: rgba(8,7,6,.17); }
.winery-email { display: block; margin-top: 1rem; color: var(--paper-bright); font-weight: 900; }

.glass-layout { display: grid; grid-template-columns: 1fr .9fr; gap: clamp(2rem, 7vw, 7rem); align-items: center; }
.glass-image { position: relative; aspect-ratio: 4/5; overflow: hidden; border: 1px solid var(--line); }
.glass-image img { width: 100%; height: 100%; object-fit: cover; }
.glass-image::before { content: ""; position: absolute; inset: 0; z-index: 1; background: linear-gradient(0deg, rgba(8,7,6,.55), transparent 60%); }
.glass-points { display: grid; gap: 1rem; margin-top: 2rem; }
.glass-point { display: grid; grid-template-columns: 52px 1fr; gap: 1rem; padding-top: 1rem; border-top: 1px solid var(--line); }
.glass-point b { color: var(--red); font-family: var(--display); font-size: 1.8rem; }
.glass-point p { margin: 0; color: var(--muted); }

.teaser { position: relative; min-height: 560px; display: flex; align-items: end; overflow: hidden; border: 1px solid var(--line); background: var(--ink-soft); }
.teaser img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; filter: saturate(.66) contrast(1.08); }
.teaser::after { content: ""; position: absolute; inset: 0; background: linear-gradient(0deg, rgba(8,7,6,.98) 0%, rgba(8,7,6,.34) 75%); }
.teaser-content { position: relative; z-index: 2; padding: clamp(1.5rem, 4vw, 3rem); }
.teaser h3 { margin: 0; font-family: var(--display); font-size: clamp(2.7rem, 5vw, 5.2rem); line-height: .9; text-transform: uppercase; }
.teaser p { max-width: 34rem; color: #d2c1a4; }
.complete-party { overflow: hidden; }
.food-feature { position: relative; overflow: hidden; border: 1px solid rgba(242,223,185,.36); background: radial-gradient(circle at 86% 18%, rgba(189,137,69,.28), transparent 20rem), linear-gradient(135deg, #751b17 0%, #3a110f 54%, #100b09 100%); box-shadow: 0 30px 80px rgba(0,0,0,.32); }
.food-feature::before { content: "FOOD · FOOD · FOOD"; position: absolute; top: 8%; left: -5%; color: rgba(242,223,185,.07); font-family: var(--display); font-size: clamp(5rem, 14vw, 12rem); line-height: .78; transform: rotate(-5deg); white-space: nowrap; }
.food-feature .teaser-content { padding: clamp(2rem, 6vw, 5rem); }
.food-feature h3 { max-width: 1050px; margin: 0; font-family: var(--display); font-size: clamp(3.5rem, 8vw, 8rem); line-height: .83; text-transform: uppercase; }
.food-feature h3 span { color: var(--paper); }
.food-lead { max-width: 760px; margin: 1.5rem 0 0; color: #ead9bb; font-size: clamp(1.1rem, 2vw, 1.4rem); }
.party-journey { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1px; margin: 2.5rem 0 2rem; border: 1px solid rgba(242,223,185,.28); background: rgba(242,223,185,.22); }
.party-journey div { min-height: 160px; display: flex; flex-direction: column; padding: 1.15rem; background: rgba(8,7,6,.52); }
.party-journey b { color: var(--gold); font-family: var(--display); font-size: 1.3rem; letter-spacing: .04em; }
.party-journey strong { margin-top: auto; color: var(--paper-bright); font-family: var(--display); font-size: clamp(1.7rem, 3vw, 2.7rem); line-height: .9; text-transform: uppercase; }
.party-journey span { margin-top: .55rem; color: var(--muted); font-size: .78rem; font-weight: 800; line-height: 1.35; text-transform: uppercase; }
.music-teaser { min-height: 520px; margin-top: 1rem; }
.music-teaser .teaser-content { width: min(100%, 760px); }

.official-materials { overflow: hidden; }
.materials-heading { display: grid; grid-template-columns: 1fr .72fr; gap: 4rem; align-items: end; }
.poster-grid { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(1rem, 4vw, 3rem); margin-top: 3rem; }
.poster-card { margin: 0; border: 1px solid var(--line); background: #120e0b; box-shadow: 0 24px 70px rgba(0,0,0,.3); }
.poster-card img { width: 100%; height: auto; }
.poster-card figcaption { display: grid; gap: .2rem; padding: 1.1rem 1.2rem 1.25rem; border-top: 1px solid var(--line); }
.poster-card figcaption strong { color: var(--paper-bright); font-family: var(--display); font-size: 1.4rem; text-transform: uppercase; }
.poster-card figcaption span { color: var(--muted); font-size: .78rem; letter-spacing: .08em; text-transform: uppercase; }

.location { color: var(--paper-bright); background: var(--ink); }
.location-summary { display: grid; grid-template-columns: minmax(280px, .72fr) minmax(0, 1.28fr); gap: 1px; border: 1px solid var(--line); background: var(--line); }
.location-facts { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1px; background: var(--line); }
.location-fact { display: flex; flex-direction: column; justify-content: center; min-height: 150px; padding: 1.2rem 1.3rem; background: var(--ink-soft); }
.location-fact small { display: block; color: var(--gold); font-weight: 900; letter-spacing: .12em; text-transform: uppercase; }
.location-fact strong { display: block; margin-top: .35rem; color: var(--paper-bright); font-family: var(--display); font-size: clamp(1.1rem, 2vw, 1.5rem); line-height: 1.05; text-transform: uppercase; }
.location-identity { display: flex; flex-direction: column; justify-content: center; min-height: 150px; padding: 1.25rem 1.35rem; background: #100d0a; }
.location-identity small, .location-identity strong, .location-identity span { display: block; }
.location-identity small { margin-bottom: .3rem; color: var(--gold); font-size: .68rem; font-weight: 900; letter-spacing: .14em; text-transform: uppercase; }
.location-identity strong { color: var(--paper-bright); font-family: var(--display); font-size: clamp(1.7rem, 3vw, 2.6rem); line-height: .9; text-transform: uppercase; }
.location-identity span { margin-top: .55rem; color: var(--muted); font-size: .78rem; font-weight: 800; line-height: 1.35; text-transform: uppercase; }
.map-shell { position: relative; min-height: 520px; margin-top: 1rem; overflow: hidden; border: 1px solid var(--line); background: #17110d; }
.map-shell iframe { width: 100%; height: 520px; border: 0; display: block; }
.map-gate { position: absolute; inset: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; padding: 2rem; color: var(--paper-bright); text-align: center; background: radial-gradient(circle at 50% 50%, rgba(170,38,31,.25), transparent 22rem), #100d0a; }
.map-gate[hidden] { display: none; }
.map-gate h3 { max-width: 760px; margin: 0; font-family: var(--display); font-size: clamp(2.5rem, 6vw, 5.8rem); line-height: .88; text-transform: uppercase; }
.map-gate p:not(.eyebrow) { max-width: 520px; color: var(--muted); }
.map-gate .btn { margin-top: 1rem; }

.faq-list { max-width: 900px; margin: 3rem auto 0; border-top: 1px solid var(--line); }
.faq-list details { border-bottom: 1px solid var(--line); }
.faq-list summary { position: relative; padding: 1.4rem 3rem 1.4rem 0; cursor: pointer; list-style: none; color: var(--paper-bright); font-family: var(--display); font-size: clamp(1.25rem, 2.3vw, 1.7rem); line-height: 1.05; text-transform: uppercase; }
.faq-list summary::-webkit-details-marker { display: none; }
.faq-list summary::after { content: "+"; position: absolute; right: .4rem; top: 1rem; color: var(--red); font-size: 2rem; }
.faq-list details[open] summary::after { content: "–"; }
.faq-answer { padding: 0 3rem 1.4rem 0; color: var(--muted); }
.faq-answer a { color: var(--paper-bright); }

.final-cta { text-align: center; overflow: hidden; }
.final-cta::before { content: "?"; position: absolute; inset: -10rem auto auto 50%; z-index: -1; transform: translateX(-50%); color: rgba(170,38,31,.12); font-family: var(--display); font-size: 45rem; line-height: 1; }
.final-cta .section-title { max-width: 900px; margin-inline: auto; }
.final-cta .lead { margin-inline: auto; }
.final-cta .button-row { justify-content: center; }

.site-footer { padding: 3rem 0 7rem; border-top: 1px solid var(--line); color: var(--muted); }
.footer-grid { display: grid; grid-template-columns: 1fr auto; gap: 2rem; align-items: end; }
.footer-logo { width: 190px; margin-bottom: 1rem; opacity: .9; }
.footer-meta { font-size: .82rem; font-weight: 800; letter-spacing: .07em; line-height: 1.7; text-transform: uppercase; }
.footer-links { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: .8rem 1.2rem; max-width: 600px; font-size: .8rem; }
.footer-links a { color: var(--muted); text-decoration: none; }
.footer-links a:hover { color: var(--paper-bright); }
.production { display: inline-flex; align-items: center; gap: .9rem; margin-top: 1.3rem; padding: .65rem .8rem; border: 1px solid var(--line); color: var(--paper-bright); text-decoration: none; transition: border-color .2s ease, background .2s ease; }
.production:hover { border-color: var(--paper); background: rgba(233,201,142,.06); }
.production img { width: 58px; height: auto; max-height: 58px; object-fit: contain; object-position: center; opacity: .92; }
.nav-logo img, .hero-logo, .footer-logo { height: auto; object-fit: contain; object-position: center; }
.production span, .production small { display: block; }
.production span { font-weight: 900; text-transform: uppercase; }
.production small { margin-bottom: .15rem; color: var(--muted); font-size: .63rem; letter-spacing: .12em; }

.whatsapp-float {
  position: fixed;
  right: 1rem;
  bottom: 1rem;
  z-index: 120;
  display: inline-flex;
  align-items: center;
  gap: .55rem;
  min-height: 50px;
  padding: .7rem 1rem;
  color: #07140d;
  background: #72d992;
  border-radius: 999px;
  box-shadow: 0 10px 30px rgba(0,0,0,.35);
  font-size: .78rem;
  font-weight: 900;
  letter-spacing: .04em;
  text-decoration: none;
  text-transform: uppercase;
}
.whatsapp-float::before { content: "WA"; display: grid; place-items: center; width: 28px; height: 28px; border: 2px solid currentColor; border-radius: 50%; font-size: .65rem; }
.mobile-ticket-bar { display: none; }
.cookie-banner {
  position: fixed;
  left: 1rem;
  bottom: 1rem;
  z-index: 130;
  width: min(440px, calc(100% - 2rem));
  padding: 1rem;
  color: var(--paper-bright);
  border: 1px solid var(--line);
  background: #18130f;
  box-shadow: 0 16px 45px rgba(0,0,0,.48);
}
.cookie-banner[hidden] { display: none; }
.cookie-banner p { margin: 0; color: var(--muted); font-size: .82rem; }
.cookie-banner a { color: var(--paper-bright); }
.cookie-banner button { margin-top: .8rem; min-height: 40px; padding: .55rem .9rem; }

[data-reveal] { opacity: 0; transform: translateY(22px); transition: opacity .7s ease, transform .7s ease; }
[data-reveal].is-visible { opacity: 1; transform: none; }

.legal-page { min-height: 100svh; padding: 8rem 0 5rem; }
.legal-page .legal-header { max-width: 850px; }
.legal-page h1 { font-size: clamp(3rem, 8vw, 6.5rem); }
.legal-content { max-width: 850px; margin-top: 3rem; color: var(--muted); }
.legal-content h2 { margin: 2.4rem 0 .6rem; color: var(--paper-bright); font-family: var(--display); font-size: 1.8rem; text-transform: uppercase; }
.legal-content a { color: var(--paper-bright); }
.back-link { display: inline-flex; margin-top: 2rem; color: var(--paper); font-weight: 900; text-decoration: none; text-transform: uppercase; }
.error-page { min-height: 100svh; display: grid; place-items: center; text-align: center; padding: 2rem; }
.error-code { color: var(--red); font-family: var(--display); font-size: clamp(9rem, 30vw, 22rem); line-height: .75; }

@media (max-width: 980px) {
  .nav-menu { position: fixed; inset: 72px 0 auto; display: none; padding: 1.4rem 1rem 2rem; border-bottom: 1px solid var(--line); background: rgba(8,7,6,.98); }
  .nav-menu.is-open { display: grid; }
  .nav-menu a:not(.btn) { padding: .8rem .2rem; font-size: .92rem; }
  .menu-button { display: block; }
  body.menu-open { overflow: hidden; }
  .concept-grid, .token-layout, .spaces-layout, .winery-inner, .glass-layout, .materials-heading, .location-summary { grid-template-columns: 1fr; }
  .location-facts { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .party-journey { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .ticket-grid { grid-template-columns: 1fr; max-width: 680px; margin-inline: auto; }
  .ticket-card.featured { transform: none; }
  .split-feature { grid-template-columns: 1fr; }
  .split-media::after { background: linear-gradient(0deg, var(--ink), transparent 50%); }
  .split-copy { padding-top: 1rem; }
  .footer-grid { grid-template-columns: 1fr; }
  .footer-links { justify-content: flex-start; }
}

@media (max-width: 700px) {
  .container { width: min(calc(100% - 1.25rem), var(--content)); }
  .section { padding: 4.5rem 0; }
  .site-header, .nav-wrap { min-height: 64px; }
  .nav-menu { inset-block-start: 64px; }
  .nav-logo { width: 108px; }
  .hero { min-height: 820px; align-items: end; }
  .hero-media video, .hero-media img { object-position: center 38%; }
  .hero::before { background: linear-gradient(0deg, rgba(8,7,6,.98) 0%, rgba(8,7,6,.56) 64%, rgba(8,7,6,.62) 100%); }
  .hero-content { padding-top: 5.3rem; padding-bottom: 3.8rem; }
  .hero-logo { width: 112px; margin-bottom: .8rem; }
  .hero-title { font-size: clamp(2.9rem, 14vw, 4.6rem); max-width: 100%; }
  .hero-kicker { margin-top: .8rem; font-size: .9rem; }
  .hero-details { display: grid; gap: .32rem; margin-top: .8rem; font-size: .7rem; }
  .hero .button-row { margin-top: 1rem; }
  .hero .button-row .btn { min-height: 46px; }
  .hero-token-note { margin-top: .7rem; font-size: .7rem; }
  .button-row .btn { width: 100%; }
  .moment-grid { grid-template-columns: repeat(2, 1fr); }
  .moment { min-height: 190px; }
  .ticket-price { font-size: clamp(3.2rem, 17vw, 4.6rem); }
  .sales-ticker { margin-top: -2rem; }
  .sales-ticker-group { gap: 1rem; padding-block: .75rem; }
  .price-deadline { grid-template-columns: 1fr; margin-bottom: 2.2rem; }
  .price-deadline strong { text-align: left; }
  .tickets-foot { display: grid; }
  .photo-collage { grid-template-columns: 1fr 1fr; grid-template-rows: 260px 170px; }
  .photo-collage figure:first-child { grid-column: 1 / 3; grid-row: auto; }
  .split-media { min-height: 470px; }
  .teaser { min-height: 500px; }
  .party-journey { grid-template-columns: 1fr; }
  .party-journey div { min-height: 132px; }
  .poster-grid { grid-template-columns: 1fr; }
  .location-facts { grid-template-columns: 1fr; }
  .location-fact { min-height: 0; }
  .map-shell, .map-shell iframe { min-height: 440px; height: 440px; }
  .whatsapp-float { right: .75rem; bottom: 5.2rem; width: 50px; padding: 0; justify-content: center; }
  .whatsapp-float span { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
  .mobile-ticket-bar { position: fixed; inset: auto 0 0; z-index: 110; display: block; padding: .55rem .65rem max(.55rem, env(safe-area-inset-bottom)); background: rgba(8,7,6,.96); border-top: 1px solid var(--line); }
  .mobile-ticket-bar .btn { width: 100%; min-height: 48px; }
  .cookie-banner { bottom: 5.2rem; }
  .site-footer { padding-bottom: 8.5rem; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; animation: none !important; transition: none !important; }
  [data-reveal] { opacity: 1; transform: none; }
}
/* Registrazione gratuita — settembre 2026 */
:root{--red:#e1372c;--red-dark:#981f19}
html{scroll-padding-top:90px}
section[id]{scroll-margin-top:85px}
.hero{min-height:720px}
.hero-content{padding-top:7rem;padding-bottom:3.5rem}
.hero-logo{width:160px;margin-bottom:1.4rem}
.hero-title{font-size:clamp(3rem,7.2vw,6.3rem);line-height:1;max-width:1100px}
.hero-token-note{font-size:14px;text-transform:none}
.hero-details{font-size:14px;letter-spacing:.035em}
.nav-menu a:not(.btn){font-size:14px;letter-spacing:0}
.nav-menu{gap:18px}.nav-menu .btn{font-size:13px}
.eyebrow{font-size:14px;letter-spacing:.13em}
.section{padding:clamp(3.5rem,7vw,6rem) 0}
.section-title{font-size:clamp(2.5rem,6.5vw,5.5rem);line-height:1.04}
.registration-section{background:radial-gradient(ellipse at 100% 0,rgba(170,38,31,.2),transparent 60%),#100c09;border-top:1px solid var(--gold)}
.registration-heading{margin-bottom:28px}
.capacity-note{max-width:760px;color:var(--muted);font-size:16px;border-left:3px solid var(--red);padding:4px 0 4px 18px;margin-top:24px}.capacity-note strong{color:var(--paper-bright)}
.registration-shell{width:min(calc(100% - 32px),1200px);margin:auto;background:#fff;border:1px solid var(--gold);border-radius:12px;overflow:hidden;box-shadow:0 12px 70px #0005}
.registration-shell iframe{width:100%;height:1000px;display:block;border:0;background:#fff}
.form-help{text-align:center;padding:0 18px;font-size:14px;color:var(--muted)}.form-help a{display:inline-block;padding:8px 0;color:var(--paper-bright)}
.how-steps{margin-top:38px}.how-step{display:grid;grid-template-columns:125px 1fr;gap:28px;padding:28px 0;border-top:1px solid var(--line);align-items:start}.step-number{font-family:var(--display);font-size:80px;line-height:1;color:var(--red)}.how-step h3{margin:0 0 8px;font-family:var(--display);font-size:clamp(24px,3vw,35px);text-transform:uppercase;line-height:1.1}.how-step p{margin:0;color:var(--muted);max-width:760px;font-size:17px}
.artist-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:36px}.artist-card{padding:28px;background:linear-gradient(145deg,#25150f,#100c09);border:1px solid var(--line);border-top:3px solid var(--gold);border-radius:6px;transition:transform .25s, border-color .25s,box-shadow .25s}.artist-card h3{font-family:var(--display);font-size:clamp(28px,3.2vw,43px);line-height:1.05;margin:20px 0 14px;overflow-wrap:anywhere}.artist-card p{color:var(--muted);font-size:16px;margin:0}.artist-card .eyebrow{font-size:14px;letter-spacing:.05em}.dj-card{grid-column:1/-1;border-top-color:var(--red);background:linear-gradient(100deg,#411410,#110b08)}.dj-card h3{margin:14px 0}.show-note{padding:20px;border-left:3px solid var(--gold);font-size:18px;background:#b8874410}
.btn{transition:transform .18s,box-shadow .18s,background .18s;min-height:48px;touch-action:manipulation}.btn:active{transform:scale(.96);box-shadow:0 0 24px #e1372c66}.artist-card:active,.drink-card:active{transform:scale(.985);border-color:var(--gold)}
@media(hover:hover){.artist-card:hover{transform:translateY(-5px);border-color:var(--gold);box-shadow:0 16px 32px #0005}.btn:hover{box-shadow:0 6px 30px #e1372c44}.how-step:hover .step-number{color:var(--paper-bright)}}
[data-reveal]{opacity:1;transform:none}.js-motion [data-reveal]:not(.is-visible){opacity:0;transform:translateY(18px)}
.mobile-ticket-bar.form-in-view{display:none}.cookie-banner{max-width:550px}.cookie-banner p{font-size:14px}
@media(max-width:1050px){.nav-menu a:not(.btn){font-size:16px}.nav-menu{gap:6px}}
@media(max-width:700px){
.hero{min-height:0;align-items:center}.hero-content{padding-top:6rem;padding-bottom:2rem}.hero-logo{width:115px;margin-bottom:18px}.hero-title{font-size:clamp(2.15rem,9.6vw,4rem);line-height:1.04}.hero-kicker{font-size:15px;letter-spacing:.025em}.hero-details{font-size:14px;gap:5px}.hero-token-note{font-size:14px}.hero .button-row{gap:10px}.hero .button-row .btn{min-height:52px;font-size:14px}.hero .button-row .btn-secondary{min-height:44px}
.registration-shell{width:100%;border-radius:0;border-left:0;border-right:0}.registration-shell iframe{height:1050px}.registration-heading .section-title{font-size:clamp(2rem,9vw,3.5rem)}.capacity-note{font-size:16px}.lead{font-size:17px}.how-step{grid-template-columns:65px 1fr;gap:14px;padding:25px 0}.step-number{font-size:54px}.how-step h3{font-size:25px}.how-step p{font-size:16px}.artist-grid{grid-template-columns:1fr}.artist-card{padding:24px}.artist-card h3{font-size:36px}.dj-card{grid-column:auto}.music-section .section-title{font-size:clamp(2rem,8.5vw,3.4rem)}.food-feature h3{font-size:clamp(2.3rem,10vw,4rem)}.whatsapp-float{display:none}.mobile-ticket-bar .btn{font-size:14px}.cookie-banner{bottom:80px;max-height:40vh;overflow:auto}.section{padding:48px 0}.form-help{margin-bottom:0}.show-note{font-size:16px}
}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}.js-motion [data-reveal]:not(.is-visible){opacity:1;transform:none}}
