/* ═══════════════════════════════════════════════
   ANTHRÉS — anthres.com
   Fondo blanco quemado · letras negro carbón
   Oswald (display) · Cinzel (subtítulos) · Cormorant Garamond (cuerpo)
   ═══════════════════════════════════════════════ */

:root {
  --blanco: #F7F7F5;
  --blanco-puro: #FFFFFF;
  --negro: #0A0A0A;
  --pizarra: #1C1C1C;
  --ceniza: #2E2E2E;
  --humo: #6B6F75;
  --niebla: #3A4A5A;
  --frio: #E5E5E5;
  --linea: rgba(10,10,10,.14);
  --madera: #8C6A4A;

  --oswald: 'Oswald', 'Arial Narrow', sans-serif;
  --cinzel: 'Cinzel', 'Times New Roman', serif;
  --corm: 'Cormorant Garamond', Georgia, serif;

  --gutter: clamp(20px, 4vw, 64px);
  --ease: cubic-bezier(.16, 1, .3, 1);
}

*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: auto; }
html.lenis, html.lenis body { height: auto; }
.lenis.lenis-smooth { scroll-behavior: auto !important; }

body {
  background: var(--blanco);
  color: var(--negro);
  font-family: var(--corm);
  font-size: 18px;
  line-height: 1.4;
  -webkit-font-smoothing: antialiased;
  overflow-x: hidden;
}
body.is-loading { overflow: hidden; }
body.menu-open { overflow: hidden; }

img { display: block; max-width: 100%; height: auto; }
a { color: inherit; text-decoration: none; }
ul, ol { list-style: none; }
button { font: inherit; color: inherit; background: none; border: 0; cursor: pointer; }

/* grano fino en toda la página */
body::after {
  content: "";
  position: fixed; inset: -50%;
  width: 200%; height: 200%;
  pointer-events: none; z-index: 9990;
  opacity: .045;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='300' height='300'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
  animation: grain 7s steps(6) infinite;
}
@keyframes grain {
  0%,100% { transform: translate(0,0) } 20% { transform: translate(-3%,2%) } 40% { transform: translate(2%,-4%) }
  60% { transform: translate(-4%,-1%) } 80% { transform: translate(3%,3%) }
}

/* ─── Cursor ─── */
.cursor {
  position: fixed; top: 0; left: 0; z-index: 9999;
  width: 10px; height: 10px; border-radius: 50%;
  background: var(--negro);
  pointer-events: none;
  transform: translate(-50%,-50%);
  transition: width .35s var(--ease), height .35s var(--ease), background .3s, opacity .3s;
  mix-blend-mode: difference;
  background: #fff;
  opacity: 0;
}
.cursor.is-active { width: 56px; height: 56px; }
.cursor.is-visible { opacity: 1; }
@media (hover: none) { .cursor { display: none; } }

/* ─── Preloader ─── */
.loader {
  position: fixed; inset: 0; z-index: 10000;
  background: var(--blanco);
  display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 28px;
}
.loader__feather { width: 64px; height: 64px; }
.loader__feather svg { width: 100%; height: 100%; }
.loader__path {
  fill: none; stroke: var(--negro); stroke-width: 1.4; stroke-linecap: round;
  stroke-dasharray: 600; stroke-dashoffset: 600;
  animation: draw 2.2s var(--ease) forwards;
}
@keyframes draw { to { stroke-dashoffset: 0; } }
.loader__line { width: 120px; height: 1px; background: var(--linea); overflow: hidden; }
.loader__line span { display: block; height: 100%; width: 100%; background: var(--negro); transform: scaleX(0); transform-origin: left; animation: fill 2.2s var(--ease) forwards; }
@keyframes fill { to { transform: scaleX(1); } }

/* ─── Plumas canvas ─── */
.feathers { position: fixed; inset: 0; width: 100%; height: 100%; pointer-events: none; z-index: 5; opacity: .9; }

/* ─── NAV ─── */
.nav {
  position: fixed; top: 0; left: 0; right: 0; z-index: 900;
  display: grid; grid-template-columns: 1fr auto 1fr; align-items: center;
  padding: 22px var(--gutter);
  mix-blend-mode: difference;
  color: #fff;
  transform: translateY(-20px); opacity: 0;
}
.nav__logo img { height: 34px; width: auto; filter: invert(1); }
.nav__links { display: flex; gap: 34px; justify-content: center; }
.nav__links a, .nav__ticket {
  font-family: var(--oswald); font-weight: 400; font-size: 13px; letter-spacing: .22em; text-transform: uppercase;
  position: relative; padding: 4px 0;
}
.nav__links a::after, .nav__ticket::after {
  content: ""; position: absolute; left: 0; bottom: 0; width: 100%; height: 1px; background: currentColor;
  transform: scaleX(0); transform-origin: right; transition: transform .5s var(--ease);
}
.nav__links a:hover::after, .nav__ticket:hover::after { transform: scaleX(1); transform-origin: left; }
.nav__right { display: flex; justify-content: flex-end; align-items: center; gap: 28px; }
.nav__ticket { white-space: nowrap; }
@media (max-width: 1180px) { .nav__ticket { display: none; } .nav__links { gap: 26px; } }
.burger { width: 44px; height: 44px; padding: 10px 4px; margin-right: -4px; position: relative; display: flex; flex-direction: column; justify-content: center; gap: 7px; }
.burger span { display: block; height: 1px; width: 100%; background: currentColor; transition: transform .5s var(--ease), opacity .3s; transform-origin: center; }
.burger.is-open span:first-child { transform: translateY(4px) rotate(45deg); }
.burger.is-open span:last-child { transform: translateY(-4px) rotate(-45deg); }

/* ─── MENÚ ─── */
.menu { position: fixed; inset: 0; z-index: 800; pointer-events: none; visibility: hidden; }
.menu.is-open { pointer-events: auto; visibility: visible; }
.menu__bg { position: absolute; inset: 0; background: var(--negro); transform: translateY(-100%); }
.menu__inner {
  position: relative; height: 100%; color: var(--frio);
  display: grid; grid-template-columns: 1.1fr .9fr; grid-template-rows: 1fr auto;
  padding: 120px var(--gutter) 40px;
  gap: 0 40px;
}
.menu__list { align-self: center; }
.menu__list li { overflow: hidden; }
.menu__list a {
  display: flex; align-items: baseline; gap: 22px;
  padding: 10px 0;
  transform: translateY(110%);
  border-bottom: 1px solid rgba(229,229,229,.1);
}
.menu__num { font-family: var(--cinzel); font-size: 12px; letter-spacing: .3em; color: var(--humo); }
.menu__word {
  font-family: var(--oswald); font-weight: 500; text-transform: uppercase;
  font-size: clamp(44px, 7.2vw, 104px); line-height: 1; letter-spacing: -.005em;
  transition: transform .6s var(--ease), color .4s;
  display: inline-block;
}
.menu__list a:hover .menu__word { transform: translateX(18px); color: #fff; }
.menu__preview { align-self: center; justify-self: end; width: min(38vw, 440px); aspect-ratio: 1; overflow: hidden; opacity: 0; }
.menu__preview img { width: 100%; height: 100%; object-fit: cover; filter: grayscale(.2) contrast(1.05); transform: scale(1.08); transition: transform 1.2s var(--ease); }
.menu__foot { grid-column: 1 / -1; display: flex; justify-content: space-between; align-items: flex-end; gap: 20px; opacity: 0; }
.menu__quote { font-family: var(--corm); font-style: italic; font-size: 20px; color: var(--humo); line-height: 1.3; }
.menu__social { display: flex; flex-wrap: wrap; column-gap: 26px; row-gap: 10px; }
.menu__social a { font-family: var(--cinzel); font-size: 11px; letter-spacing: .28em; text-transform: uppercase; color: var(--frio); opacity: .7; transition: opacity .3s; }
.menu__social a:hover { opacity: 1; }

/* ─── Botones ─── */
.btn {
  display: inline-flex; align-items: center; justify-content: center;
  font-family: var(--oswald); font-size: 13px; letter-spacing: .24em; text-transform: uppercase; font-weight: 500;
  padding: 18px 34px; position: relative; overflow: hidden; isolation: isolate;
  border: 1px solid var(--negro);
  transition: color .5s var(--ease);
}
.btn span { position: relative; z-index: 1; }
.btn::before { content: ""; position: absolute; inset: 0; background: var(--negro); transform: translateY(101%); transition: transform .55s var(--ease); z-index: 0; }
.btn--solid { background: var(--negro); color: var(--frio); }
.btn--solid::before { background: var(--blanco); }
.btn--solid:hover { color: var(--negro); }
.btn--solid:hover::before { transform: translateY(0); }
.btn--ghost { color: var(--negro); }
.btn--ghost:hover { color: var(--frio); }
.btn--ghost:hover::before { transform: translateY(0); }
.btn--big { padding: 22px 48px; font-size: 14px; }

/* ─── Secciones ─── */
.section { position: relative; padding: clamp(90px, 12vw, 180px) var(--gutter); }
.section__head { display: grid; grid-template-columns: auto 1fr; grid-template-rows: auto auto; column-gap: 24px; align-items: end; margin-bottom: clamp(48px, 7vw, 110px); }
.section__num { grid-row: 1 / 3; font-family: var(--cinzel); font-size: 13px; letter-spacing: .3em; color: var(--humo); padding-bottom: 14px; }
.section__title {
  font-family: var(--oswald); font-weight: 600; text-transform: uppercase;
  font-size: clamp(60px, 11vw, 168px); line-height: .92; letter-spacing: -.01em;
  overflow: hidden;
}
.section__title .ch { display: inline-block; transform: translateY(110%); }
.section__lead { grid-column: 2; font-family: var(--corm); font-size: clamp(19px, 1.7vw, 26px); font-style: italic; color: var(--ceniza); max-width: 34em; margin-top: 14px; }
.section__head--inline { margin-bottom: 30px; }
.section__head--inline .section__title { font-size: clamp(40px, 4.6vw, 72px); white-space: nowrap; }

/* ─── HERO ─── */
.hero { position: relative; min-height: 100svh; display: grid; grid-template-rows: 1fr auto; overflow: hidden; background: var(--blanco); }
/* difuminado al pie del hero: la foto se disuelve en la página al bajar */
.hero::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 16vh; z-index: 1; pointer-events: none; background: linear-gradient(to bottom, rgba(247,247,245,0) 0%, rgba(247,247,245,.45) 60%, rgba(247,247,245,.92) 100%); }
.hero__img-wrap {
  position: absolute; inset: 0; z-index: 0;
  display: flex; align-items: flex-end; justify-content: flex-end;
  padding-right: 0;
}
.hero__pic { display: contents; }
.hero__img {
  width: min(66vw, 120vh); height: auto; max-height: 97vh;
  object-fit: contain; object-position: right bottom;
  margin: 0 1vw 3vh 0;
  transform: scale(1.06); opacity: 0;
  will-change: transform;
}
.hero__content { position: relative; z-index: 2; padding: 0 var(--gutter); display: flex; flex-direction: column; justify-content: flex-end; padding-bottom: 5vh; padding-top: 22vh; max-width: 62vw; }
.hero__eyebrow { font-family: var(--cinzel); font-size: 12px; letter-spacing: .34em; text-transform: uppercase; color: var(--humo); margin-bottom: 22px; overflow: hidden; }
.hero__eyebrow span { display: inline-block; transform: translateY(110%); }
.hero__title {
  font-family: var(--oswald); font-weight: 500; text-transform: uppercase;
  font-size: clamp(42px, 7.6vw, 122px); line-height: .95; letter-spacing: -.005em;
  max-width: 10em;
}
.hero__title .line { display: block; overflow: hidden; }
.hero__title .line > span { display: block; transform: translateY(110%); }
.hero__title .line--soft { font-family: var(--corm); font-style: italic; font-weight: 400; text-transform: none; font-size: .58em; letter-spacing: 0; line-height: 1.15; color: var(--ceniza); }
.hero__title .line--soft:first-of-type { margin-top: .25em; }
.hero__bottom { position: relative; z-index: 2; display: flex; justify-content: space-between; align-items: flex-end; padding: 0 var(--gutter) 36px; }
.hero__meta { display: flex; flex-direction: column; gap: 10px; opacity: 0; transform: translateY(20px); }
.hero__meta-label { font-family: var(--cinzel); font-size: 11px; letter-spacing: .34em; text-transform: uppercase; color: var(--humo); }
.hero__lettering { width: clamp(180px, 20vw, 300px); }
.hero__subtitle { width: clamp(72px, 8vw, 120px); margin: -8px 0 0 3px; }
.hero__meta-date { font-family: var(--oswald); font-size: 13px; letter-spacing: .22em; text-transform: uppercase; }
.hero__scroll { display: flex; flex-direction: column; align-items: center; gap: 14px; font-family: var(--cinzel); font-size: 11px; letter-spacing: .34em; text-transform: uppercase; color: var(--humo); opacity: 0; }
.hero__scroll i { display: block; width: 1px; height: 64px; background: var(--negro); position: relative; overflow: hidden; }
.hero__scroll i::after { content: ""; position: absolute; left: 0; top: 0; width: 100%; height: 100%; background: var(--blanco); animation: scrollLine 2.2s var(--ease) infinite; }
@keyframes scrollLine { 0% { transform: translateY(-100%) } 50% { transform: translateY(0) } 100% { transform: translateY(100%) } }

/* ─── Marquee ─── */
.marquee { border-top: 1px solid var(--negro); border-bottom: 1px solid var(--negro); padding: 16px 0; overflow: hidden; background: var(--blanco); position: relative; z-index: 2; }
.marquee__track { display: flex; width: max-content; animation: marquee 40s linear infinite; }
.marquee__track span { font-family: var(--cinzel); font-size: 13px; letter-spacing: .3em; text-transform: uppercase; white-space: nowrap; padding-right: 8px; }
@keyframes marquee { to { transform: translateX(-50%); } }

/* ─── MÚSICA ─── */
.album { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: clamp(32px, 6vw, 100px); align-items: center; margin-bottom: clamp(70px, 9vw, 140px); }
.album__cover { position: relative; aspect-ratio: 1; overflow: hidden; }
.album__cover img { width: 100%; height: 100%; object-fit: cover; transform: scale(1.12); clip-path: inset(0 0 100% 0); }
.album__cover-shadow { position: absolute; inset: 0; box-shadow: inset 0 0 0 1px rgba(10,10,10,.08); pointer-events: none; }
/* portada recortada: fondo transparente, alas completas, se funde con la página */
.album__cover--cutout { aspect-ratio: auto; overflow: visible; }
.album__pic { display: contents; }
.album__cover--cutout img { height: auto; object-fit: contain; transform: scale(1.04); width: 112%; max-width: none; margin-left: -8%; }
.album__tag { font-family: var(--cinzel); font-size: 12px; letter-spacing: .32em; text-transform: uppercase; color: var(--humo); display: block; margin-bottom: 28px; }
.album__lettering { width: min(100%, 420px); margin-bottom: 30px; }
.album__desc { font-size: clamp(19px, 1.5vw, 23px); line-height: 1.45; max-width: 30em; color: var(--ceniza); margin-bottom: 40px; }
.album__cta { display: flex; gap: 14px; flex-wrap: wrap; }

.tracklist { border-top: 1px solid var(--negro); margin-bottom: clamp(70px, 9vw, 140px); }
.tracklist__act { display: flex; align-items: baseline; gap: 18px; padding: 34px 0 12px; }
.tracklist__act span { font-family: var(--cinzel); font-size: 12px; letter-spacing: .32em; text-transform: uppercase; }
.tracklist__act em { font-family: var(--corm); font-style: italic; color: var(--humo); font-size: 17px; }
.track {
  display: grid; grid-template-columns: 56px 1fr auto; align-items: baseline; gap: 20px;
  padding: 16px 0; border-bottom: 1px solid var(--linea);
  position: relative; overflow: hidden; cursor: pointer;
}
.track::before { content: ""; position: absolute; inset: 0; background: var(--negro); transform: scaleY(0); transform-origin: bottom; transition: transform .5s var(--ease); z-index: 0; }
.track > * { position: relative; z-index: 1; transition: color .4s, transform .5s var(--ease); }
.track:hover::before { transform: scaleY(1); transform-origin: top; }
.track:hover > * { color: var(--frio); }
.track:hover .track__name { transform: translateX(14px); }
.track__n { font-family: var(--cinzel); font-size: 12px; letter-spacing: .2em; color: var(--humo); }
.track__name { font-family: var(--oswald); font-weight: 400; text-transform: uppercase; font-size: clamp(22px, 2.6vw, 40px); letter-spacing: .01em; }
.track__note { font-family: var(--corm); font-style: italic; font-size: 16px; color: var(--humo); }

.disco__title { font-family: var(--cinzel); font-size: 12px; letter-spacing: .32em; text-transform: uppercase; color: var(--humo); margin-bottom: 20px; }
.disco__row { display: grid; grid-template-columns: repeat(5, 1fr); border-top: 1px solid var(--negro); border-left: 1px solid var(--negro); }
.disco__item { border-right: 1px solid var(--negro); border-bottom: 1px solid var(--negro); padding: 26px 20px 32px; display: flex; flex-direction: column; gap: 60px; transition: background .4s, color .4s; }
.disco__item:hover { background: var(--negro); color: var(--frio); }
.disco__year { font-family: var(--cinzel); font-size: 12px; letter-spacing: .25em; }
.disco__name { font-family: var(--oswald); font-size: clamp(18px, 1.5vw, 24px); text-transform: uppercase; line-height: 1.1; }
.disco__item--next { background: var(--negro); color: var(--frio); }
.disco__item--next:hover { background: var(--blanco); color: var(--negro); }

/* ─── CONCIERTOS ─── */
.show { overflow: hidden; }
.show__bg { position: absolute; right: -6vw; top: 0; width: min(60vw, 900px); aspect-ratio: 1; z-index: 0; opacity: .2; pointer-events: none; mix-blend-mode: multiply; }
.show__bg img { width: 100%; height: 100%; object-fit: cover; filter: grayscale(1) contrast(1.1); }
.show .section__head, .show__card, .dates { position: relative; z-index: 1; }
.show__card { border: 1px solid var(--negro); padding: clamp(28px, 5vw, 72px); background: rgba(247,247,245,.75); backdrop-filter: blur(6px); max-width: 1100px; }
.show__lettering { width: min(100%, 640px); margin-bottom: 44px; }
.show__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; border-top: 1px solid var(--negro); border-bottom: 1px solid var(--negro); padding: 22px 0; margin-bottom: 40px; }
.show__col { display: flex; flex-direction: column; gap: 8px; }
.show__label { font-family: var(--cinzel); font-size: 11px; letter-spacing: .3em; text-transform: uppercase; color: var(--humo); }
.show__val { font-family: var(--oswald); font-size: clamp(16px, 1.4vw, 22px); text-transform: uppercase; letter-spacing: .04em; }
.tiers { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; margin-bottom: 40px; }
.tier { border: 1px solid var(--negro); padding: 28px; display: flex; flex-direction: column; gap: 12px; transition: transform .6s var(--ease), background .4s, color .4s; }
.tier:hover { transform: translateY(-6px); }
.tier--dark { background: var(--negro); color: var(--frio); }
.tier__name { font-family: var(--oswald); font-weight: 600; text-transform: uppercase; font-size: clamp(34px, 3.6vw, 56px); line-height: 1; letter-spacing: .02em; }
.tier__desc { font-family: var(--corm); font-style: italic; font-size: 18px; opacity: .8; }
.tier__price { font-family: var(--cinzel); font-size: 22px; letter-spacing: .06em; margin-top: 8px; }
.tier__price small { display: block; font-family: var(--corm); font-style: italic; font-size: 15px; letter-spacing: 0; opacity: .7; margin-top: 4px; }

.dates { margin-top: 60px; border-top: 1px solid var(--negro); }
.date { display: grid; grid-template-columns: 90px 70px 1fr 1fr auto; align-items: center; gap: 20px; padding: 26px 0; border-bottom: 1px solid var(--linea); }
.date__d { font-family: var(--oswald); font-weight: 600; font-size: 48px; line-height: 1; }
.date__m { font-family: var(--cinzel); font-size: 13px; letter-spacing: .3em; text-transform: uppercase; }
.date__city { font-family: var(--oswald); text-transform: uppercase; font-size: 20px; letter-spacing: .04em; }
.date__venue { font-family: var(--corm); font-style: italic; font-size: 19px; color: var(--humo); }
.date__status { font-family: var(--cinzel); font-size: 11px; letter-spacing: .3em; text-transform: uppercase; border: 1px solid var(--negro); padding: 10px 18px; }
.date--tba { opacity: .5; }
.date--tba .date__status { border-color: var(--humo); }

/* ─── MERCH ─── */
.merch__grid { display: grid; grid-template-columns: repeat(4, 1fr); grid-auto-rows: 320px; gap: 14px; }
.product { position: relative; overflow: hidden; background: #ECECEA; display: flex; flex-direction: column; }
.product--tall { grid-row: span 2; }
.product--wide { grid-column: span 2; }
.product__img { flex: 1; overflow: hidden; min-height: 0; }
.product__img img { width: 100%; height: 100%; object-fit: cover; transition: transform 1.2s var(--ease), filter .8s; filter: grayscale(.15); }
.product__img--logo { background: var(--negro); display: flex; align-items: center; justify-content: center; padding: 20%; }
.product__img--logo img { object-fit: contain; }
.product:hover .product__img img { transform: scale(1.06); filter: grayscale(0); }
.product__info { display: flex; justify-content: space-between; align-items: baseline; padding: 16px 18px; background: var(--blanco); border-top: 1px solid var(--linea); }
.product__name { font-family: var(--oswald); text-transform: uppercase; font-size: 15px; letter-spacing: .06em; }
.product__price { font-family: var(--corm); font-style: italic; font-size: 16px; color: var(--humo); }
.merch__cta { margin-top: 44px; display: flex; justify-content: center; }

/* ─── JUEGOS (acto negro) ─── */
.juegos { background: var(--negro); color: var(--frio); }
.juegos .section__num { color: var(--humo); }
.juegos .section__lead { color: var(--humo); }
.games { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; }
.game { border: 1px solid rgba(229,229,229,.18); display: flex; flex-direction: column; overflow: hidden; transition: border-color .4s, transform .6s var(--ease); }
.game--live:hover { border-color: var(--frio); transform: translateY(-6px); }
.game__media { aspect-ratio: 4 / 3; overflow: hidden; background: var(--pizarra); }
.game__media img { width: 100%; height: 100%; object-fit: cover; transition: transform 1.4s var(--ease); }
.game--live:hover .game__media img { transform: scale(1.08); }
.game__media--lock { display: flex; align-items: center; justify-content: center; font-family: var(--cinzel); font-size: 64px; color: rgba(229,229,229,.18); }
.game__body { padding: 26px; display: flex; flex-direction: column; gap: 10px; flex: 1; }
.game__key { font-family: var(--cinzel); font-size: 11px; letter-spacing: .32em; text-transform: uppercase; color: var(--humo); }
.game__name { font-family: var(--oswald); font-weight: 500; text-transform: uppercase; font-size: 38px; line-height: 1; }
.game__desc { font-family: var(--corm); font-size: 18px; color: rgba(229,229,229,.75); flex: 1; }
.game__cta { font-family: var(--oswald); font-size: 13px; letter-spacing: .24em; text-transform: uppercase; margin-top: 16px; padding-top: 16px; border-top: 1px solid rgba(229,229,229,.18); }
.game__cta--soon { color: var(--humo); }
.game--locked { opacity: .55; }
.games__door { margin-top: 56px; text-align: center; font-family: var(--corm); font-style: italic; font-size: clamp(22px, 2.4vw, 34px); color: var(--humo); }
.games__door em { color: var(--frio); font-style: italic; }

/* ─── COMUNIDAD ─── */
.comunidad { display: grid; grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); gap: clamp(32px, 6vw, 100px); align-items: center; }
.comunidad__img { aspect-ratio: 4 / 5; overflow: hidden; }
.comunidad__img img { width: 100%; height: 100%; object-fit: cover; transform: scale(1.1); }
.comunidad__lead { font-size: clamp(20px, 1.7vw, 26px); line-height: 1.4; color: var(--ceniza); max-width: 28em; margin-bottom: 40px; }
.comunidad__links { border-top: 1px solid var(--negro); margin-bottom: 44px; }
.clink { display: grid; grid-template-columns: 1fr auto auto; align-items: center; gap: 24px; padding: 20px 0; border-bottom: 1px solid var(--linea); transition: padding .5s var(--ease); }
.clink:hover { padding-left: 14px; }
.clink__name { font-family: var(--oswald); text-transform: uppercase; font-size: clamp(20px, 2vw, 30px); }
.clink__meta { font-family: var(--corm); font-style: italic; color: var(--humo); font-size: 16px; }
.clink__arrow { font-family: var(--corm); font-size: 26px; transition: transform .5s var(--ease); }
.clink:hover .clink__arrow { transform: translateX(8px); }
.newsletter__label { display: block; font-family: var(--corm); font-style: italic; font-size: 19px; margin-bottom: 14px; }
.newsletter__row { display: flex; border-bottom: 1px solid var(--negro); }
.newsletter__row input { flex: 1; border: 0; background: transparent; font-family: var(--corm); font-size: 20px; padding: 12px 0; outline: none; color: var(--negro); }
.newsletter__row input::placeholder { color: var(--humo); }
.newsletter__btn { font-family: var(--oswald); font-size: 13px; letter-spacing: .24em; text-transform: uppercase; padding: 12px 0 12px 20px; }

/* ─── HISTORIA ─── */
.actos { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; }
.acto { display: flex; flex-direction: column; gap: 22px; }
.acto__img { aspect-ratio: 3 / 4; overflow: hidden; background: var(--pizarra); }
.acto__img img { width: 100%; height: 100%; object-fit: cover; transform: scale(1.12); transition: transform 1.4s var(--ease); }
.acto:hover .acto__img img { transform: scale(1.02); }
.acto--blanco .acto__img img { filter: contrast(1.02) brightness(1.03); }
.acto--negro .acto__img img { filter: grayscale(1) contrast(1.2); }
.acto--suelo .acto__img img { filter: grayscale(.3); }
.acto__n { font-family: var(--cinzel); font-size: 11px; letter-spacing: .32em; text-transform: uppercase; color: var(--humo); }
.acto__name { font-family: var(--oswald); font-weight: 600; text-transform: uppercase; font-size: clamp(36px, 4vw, 64px); line-height: 1; margin: 6px 0 10px; }
.acto__text p { font-size: 18px; color: var(--ceniza); max-width: 26em; }

/* ─── CIERRE ─── */
.cierre { position: relative; }
.cierre__banner { height: clamp(260px, 44vw, 620px); overflow: hidden; }
.cierre__banner img { width: 100%; height: 120%; object-fit: cover; object-position: center 30%; }
.cierre__quote {
  position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; padding: 0 var(--gutter);
  font-family: var(--oswald); font-weight: 500; text-transform: uppercase; color: var(--frio);
  font-size: clamp(28px, 5.2vw, 78px); text-align: center; line-height: 1; letter-spacing: .01em;
  mix-blend-mode: difference; pointer-events: none;
}
.cierre__quote { flex-wrap: wrap; align-content: center; row-gap: .05em; max-width: 14em; margin: 0 auto; }
.cierre__quote .w { display: inline-block; overflow: hidden; margin-right: .28em; flex: none; }
.cierre__quote .w span { display: inline-block; transform: translateY(110%); }

/* ─── FOOTER ─── */
.footer { padding: clamp(60px, 8vw, 110px) var(--gutter) 40px; border-top: 1px solid var(--negro); }
.footer__top { display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; gap: 30px; margin-bottom: 70px; }
.footer__logo { height: 44px; width: auto; }
.footer__nav { display: flex; gap: 28px; flex-wrap: wrap; justify-content: center; }
.footer__nav a, .footer__social a { font-family: var(--oswald); font-size: 12px; letter-spacing: .24em; text-transform: uppercase; }
.footer__social { display: flex; gap: 22px; justify-content: flex-end; }
.footer__social a { font-family: var(--cinzel); }
.footer__bottom { display: flex; justify-content: space-between; flex-wrap: wrap; gap: 12px; font-family: var(--corm); font-style: italic; font-size: 15px; color: var(--humo); border-top: 1px solid var(--linea); padding-top: 22px; }
.footer__bottom a { text-decoration: underline; text-underline-offset: 3px; }

/* ─── Spotify ─── */
.spotify { display: grid; grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); gap: clamp(28px, 5vw, 80px); align-items: center; margin-bottom: clamp(70px, 9vw, 140px); }
.spotify__label { font-family: var(--cinzel); font-size: 12px; letter-spacing: .32em; text-transform: uppercase; color: var(--humo); display: block; margin-bottom: 18px; }
.spotify__title { font-family: var(--oswald); font-weight: 500; text-transform: uppercase; font-size: clamp(30px, 3.4vw, 54px); line-height: 1; margin-bottom: 18px; }
.spotify__desc { font-size: 19px; color: var(--ceniza); max-width: 26em; margin-bottom: 28px; }
.spotify__embed { border: 1px solid var(--negro); padding: 10px; background: var(--negro); }
.spotify__embed iframe { display: block; border-radius: 12px; }

/* ─── Redes ─── */
.redes__grid { display: grid; grid-template-columns: repeat(3, 1fr); border-top: 1px solid var(--negro); border-left: 1px solid var(--negro); }
.red { display: flex; flex-direction: column; gap: 6px; padding: 28px 24px 34px; border-right: 1px solid var(--negro); border-bottom: 1px solid var(--negro); min-height: 190px; transition: background .4s, color .4s; }
.red:hover { background: var(--negro); color: var(--frio); }
.red__net { font-family: var(--oswald); font-weight: 500; text-transform: uppercase; font-size: clamp(24px, 2.4vw, 36px); line-height: 1; }
.red__handle { font-family: var(--cinzel); font-size: 12px; letter-spacing: .2em; margin-top: 6px; }
.red__what { font-family: var(--corm); font-style: italic; font-size: 17px; opacity: .7; margin-top: auto; padding-top: 18px; }

/* ─── Juegos: 5 llaves + botón claro ─── */
.games--5 { grid-template-columns: repeat(5, 1fr); }
.games--5 .game__name { font-size: 30px; }
.games--5 .game__body { padding: 20px; }
.games--5 .game__desc { font-size: 16px; }
.games__porte { display: flex; justify-content: center; margin-top: 34px; }
.btn--light { border-color: var(--frio); color: var(--frio); }
.btn--light::before { background: var(--frio); }
.btn--light:hover { color: var(--negro); }
.nav__porte { font-style: italic; text-transform: none !important; font-family: var(--corm) !important; font-size: 17px !important; letter-spacing: .02em !important; }

/* ─── Barra móvil de boletos ─── */
.mobile-bar { display: none; }

/* ─── Reveal genérico ─── */
[data-reveal] { opacity: 0; transform: translateY(40px); }

/* ─── Responsive ─── */
@media (max-width: 1200px) {
  .games--5 { grid-template-columns: repeat(3, 1fr); }
}
@media (max-width: 1100px) {
  .redes__grid { grid-template-columns: repeat(2, 1fr); }
  .spotify { grid-template-columns: 1fr; }
  .merch__grid { grid-template-columns: repeat(2, 1fr); grid-auto-rows: 280px; }
  .product--tall { grid-row: span 2; }
  .product--wide { grid-column: span 2; }
  .disco__row { grid-template-columns: repeat(3, 1fr); }
  .disco__item { border-right: 1px solid var(--negro); }
}
@media (max-width: 900px) {
  .nav__links, .nav__ticket { display: none; }
  .nav { grid-template-columns: 1fr auto; }
  .menu__inner { grid-template-columns: 1fr; padding-top: 100px; }
  .menu__preview { display: none; }
  .menu__foot { flex-direction: column; align-items: flex-start; gap: 20px; }
  .album, .comunidad { grid-template-columns: 1fr; }
  .games, .actos { grid-template-columns: 1fr; }
  .games--5 { grid-template-columns: 1fr 1fr; }
  .games--5 .game--live { grid-column: 1 / -1; }
  .game__media--lock { aspect-ratio: 3 / 1; font-size: 40px; }
  .mobile-bar { display: flex; position: fixed; left: 16px; right: 16px; bottom: 16px; z-index: 850; justify-content: space-between; align-items: center; background: var(--negro); color: var(--frio); padding: 16px 20px; transform: translateY(140%); transition: transform .6s var(--ease); box-shadow: 0 10px 30px rgba(0,0,0,.18); }
  .mobile-bar.is-on { transform: translateY(0); }
  .mobile-bar.is-hidden { transform: translateY(140%); }
  .mobile-bar span { font-family: var(--corm); font-style: italic; font-size: 16px; opacity: .8; }
  .mobile-bar strong { font-family: var(--oswald); font-weight: 500; font-size: 13px; letter-spacing: .24em; text-transform: uppercase; }
  .tiers { grid-template-columns: 1fr; }
  .show__grid { grid-template-columns: 1fr; gap: 16px; }
  .show__bg { width: 90vw; right: -30vw; opacity: .12; }
  .date { grid-template-columns: 70px 1fr; row-gap: 6px; }
  .date__d { grid-row: 1 / 3; }
  .date__status { grid-column: 1 / -1; justify-self: start; margin-top: 8px; }
  .footer__top { grid-template-columns: 1fr; text-align: left; }
  .footer__social { justify-content: flex-start; }
  .hero { display: flex; flex-direction: column; min-height: 0; }
  .hero__content { order: 1; padding-top: 110px; padding-bottom: 20px; max-width: none; }
  .hero__img-wrap { order: 2; position: relative; inset: auto; height: auto; overflow: visible; align-items: flex-end; justify-content: center; }
  .hero__img { width: 100vw; max-width: none; max-height: none; margin: 0; object-position: center bottom; }
  .hero__bottom { order: 3; flex-direction: column; align-items: flex-start; gap: 24px; padding-top: 28px; }
  .hero__scroll { display: none; }
}
@media (max-width: 600px) {
  body { font-size: 17px; }
  :root { --gutter: 20px; }
  .section { padding: 72px var(--gutter); }
  .section__head { margin-bottom: 36px; }
  .section__title { font-size: 17vw; }
  .section__lead { font-size: 18px; margin-top: 8px; }
  .hero__title { font-size: 13.5vw; }
  .hero__title .line--soft { font-size: .62em; }
  .hero__img-wrap { height: auto; }
  .hero__lettering { width: 200px; }
  .marquee { padding: 12px 0; }
  .marquee__track span { font-size: 11px; letter-spacing: .22em; }
  .album { gap: 28px; margin-bottom: 64px; }
  .album__lettering { width: 260px; }
  .album__desc { font-size: 18px; margin-bottom: 26px; }
  .btn { padding: 16px 24px; font-size: 12px; }
  .btn--big { padding: 18px 28px; font-size: 12px; }
  .album__cta .btn { flex: 1; }
  .tracklist { margin-bottom: 64px; }
  .tracklist__act { padding: 26px 0 8px; }
  .track { padding: 12px 0; gap: 6px 14px; }
  .track__name { font-size: 22px; }
  .track__note { font-size: 14px; }
  .spotify { margin-bottom: 64px; gap: 20px; }
  .spotify__embed { padding: 6px; }
  .spotify__embed iframe { height: 300px; }
  .disco__item { padding: 18px 14px 22px; gap: 34px; }
  .show__card { padding: 22px 18px; }
  .show__lettering { margin-bottom: 26px; }
  .show__grid { padding: 16px 0; margin-bottom: 24px; }
  .show__val { font-size: 16px; }
  .tier { padding: 20px; }
  .tier__name { font-size: 34px; }
  .tier__price { font-size: 19px; }
  .show__card .btn--big { width: 100%; }
  .dates { margin-top: 40px; }
  .date { padding: 20px 0; }
  .date__d { font-size: 38px; }
  .date__city { font-size: 17px; }
  .date__venue { font-size: 16px; }
  .merch__grid { grid-auto-rows: 260px; gap: 10px; }
  .product__info { flex-direction: column; gap: 2px; padding: 12px 14px; }
  .merch__cta { margin-top: 28px; }
  .games--5 { grid-template-columns: 1fr; gap: 10px; }
  .game__body { padding: 18px; }
  .games--5 .game__name { font-size: 26px; }
  .game--locked { flex-direction: row; align-items: stretch; }
  .game--locked .game__media { width: 84px; aspect-ratio: auto; flex: none; font-size: 26px; }
  .game--locked .game__body { padding: 14px 16px; gap: 4px; }
  .game--locked .game__desc { font-size: 15px; }
  .game--locked .game__cta { margin-top: 8px; padding-top: 8px; font-size: 11px; }
  .games__door { margin-top: 36px; font-size: 21px; }
  .comunidad { gap: 28px; }
  .comunidad__img { aspect-ratio: 4 / 5; max-height: 60vh; }
  .comunidad__lead { font-size: 18px; margin-bottom: 26px; }
  .clink { padding: 14px 0; }
  .clink__name { font-size: 19px; }
  .clink__meta { font-size: 14px; }
  .redes__grid { grid-template-columns: 1fr 1fr; }
  .red { padding: 18px 14px 20px; min-height: 140px; }
  .red__net { font-size: 20px; }
  .red__handle { font-size: 10px; }
  .red__what { font-size: 14px; padding-top: 12px; }
  .actos { gap: 28px; }
  .acto__img { aspect-ratio: 4 / 5; }
  .acto__name { font-size: 40px; }
  .cierre__banner { height: 240px; }
  .cierre__quote { font-size: 8.5vw; max-width: 90vw; }
  .cierre__banner { height: 300px; }
  .footer { padding: 56px var(--gutter) 90px; }
  .footer__top { margin-bottom: 40px; }
  .footer__nav { gap: 16px 20px; justify-content: flex-start; }
  .footer__bottom { flex-direction: column; gap: 8px; }
  .section__head { grid-template-columns: 1fr; }
  .section__num { grid-row: auto; padding-bottom: 6px; }
  .section__lead { grid-column: 1; }
  .merch__grid { grid-template-columns: 1fr; grid-auto-rows: 300px; }
  .product--wide, .product--tall { grid-column: auto; grid-row: auto; }
  .disco__row { grid-template-columns: 1fr 1fr; }
  .track { grid-template-columns: 40px 1fr; }
  .track__note { grid-column: 2; }
  .clink { grid-template-columns: 1fr auto; }
  .clink__meta { grid-column: 1; }
  .clink__arrow { grid-row: 1 / 3; }
}
/* ─── Móvil: legibilidad y zonas táctiles ─── */
@media (max-width: 600px) {
  .loader__path, .loader__line span { animation-duration: 1.1s; }
  .hero__meta-label, .show__label, .date__status, .game__key, .acto__n, .account__eyebrow, .pform__label, .game__cta, .menu__social a, .tracklist__act span, .disco__year, .track__n { font-size: 12px; }
  .red__handle { font-size: 12px; letter-spacing: .12em; }
  .game--locked .game__cta { font-size: 12px; }
  .marquee__track span { font-size: 12px; letter-spacing: .2em; }
  .nav__logo { display: inline-flex; align-items: center; min-height: 44px; justify-self: start; }
  .footer__nav { gap: 0 22px; }
  .footer__nav a { display: inline-flex; align-items: center; min-height: 44px; font-size: 13px; }
  .footer__social { gap: 6px; flex-wrap: wrap; }
  .footer__social a { display: inline-flex; align-items: center; justify-content: center; min-width: 44px; min-height: 44px; font-size: 13px; }
  .footer__bottom a { display: inline-block; padding: 10px 0; }
  .menu__social a, .menu__account { display: inline-flex; align-items: center; min-height: 44px; }
}
/* ─── Móvil: página más corta y con acción desde la primera pantalla ─── */
.hero__cta, .tracklist__toggle, .swipe-hint { display: none; }
.games__locked { display: contents; }
@media (max-width: 600px) {
  /* hero: pre-save visible sin bajar; el lettering del disco ya vive en Música */
  .hero__content { padding-top: 96px; }
  .hero__cta { display: flex; align-items: center; gap: 16px; margin-top: 26px; opacity: 0; transform: translateY(16px); }
  .hero__cta { flex-wrap: wrap; row-gap: 12px; }
  .hero__cta .btn { padding: 15px 24px; white-space: nowrap; letter-spacing: .18em; }
  .album__cta { flex-direction: column; }
  .album__cta .btn { width: 100%; white-space: nowrap; }
  .mobile-bar strong { white-space: nowrap; letter-spacing: .18em; }
  .mobile-bar span { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; margin-right: 12px; }
  .hero__cta-note { font-family: var(--corm); font-style: italic; font-size: 16px; color: var(--ceniza); line-height: 1.25; }
  .hero__bottom { display: none; }
  .hero__img { margin-top: -10px; }

  /* tracklist: los tres actos cerrados, se abren al tocar */
  .tracklist--acc .tracklist__act { cursor: pointer; padding: 18px 0; border-bottom: 1px solid var(--linea); position: relative; flex-wrap: wrap; row-gap: 2px; }
  .tracklist--acc .tracklist__toggle { display: inline-block; margin-left: auto; font-family: var(--oswald); font-size: 12px; letter-spacing: .2em; text-transform: uppercase; color: var(--negro); }
  .tracklist--acc .tracklist__toggle::after { content: " +"; }
  .tracklist--acc .tracklist__act.is-open .tracklist__toggle::after { content: " −"; }
  .tracklist--acc .track { display: none; }
  .tracklist--acc .track.is-open { display: grid; }

  /* juegos: llaves bloqueadas en un carril que se desliza */
  .games--5 { display: block; }
  .games__locked { display: flex; gap: 10px; overflow-x: auto; scroll-snap-type: x mandatory; margin: 10px calc(-1 * var(--gutter)) 0; padding: 0 var(--gutter) 6px; scroll-padding-left: var(--gutter); scrollbar-width: none; }
  .games__locked::-webkit-scrollbar { display: none; }
  .games__locked .game--locked { flex: 0 0 64%; scroll-snap-align: start; flex-direction: column; }
  .games__locked .game--locked .game__media { width: auto; aspect-ratio: 3 / 1; font-size: 30px; }
  .games__locked .game--locked .game__body { padding: 14px 16px 16px; }

  /* conciertos: sin el tercer lettering, entradas lado a lado */
  .show__lettering { display: none; }
  .tiers { grid-template-columns: 1fr 1fr; gap: 10px; margin-bottom: 24px; }
  .tier { padding: 16px 14px; gap: 8px; }
  .tier__name { font-size: 28px; }
  .tier__desc { font-size: 15px; line-height: 1.25; }
  .tier__price { font-size: 17px; margin-top: auto; }
  .tier__price small { font-size: 13px; }

  /* historia: los tres actos se deslizan de lado */
  .actos { display: flex; gap: 14px; overflow-x: auto; scroll-snap-type: x mandatory; margin: 0 calc(-1 * var(--gutter)); padding: 0 var(--gutter) 6px; scroll-padding-left: var(--gutter); scrollbar-width: none; }
  .actos::-webkit-scrollbar { display: none; }
  .acto { flex: 0 0 78%; scroll-snap-align: start; gap: 16px; }
  .acto__name { font-size: 34px; }
  .acto__text p { font-size: 16px; }
  /* merch en dos columnas */
  .merch__grid { grid-template-columns: 1fr 1fr; grid-auto-rows: 230px; gap: 8px; }
  .product--tall, .product--wide { grid-column: 1 / -1; }
  .product__name { font-size: 13px; }
  .product__price { font-size: 14px; }
  .swipe-hint { display: block; font-family: var(--cinzel); font-size: 12px; letter-spacing: .3em; text-transform: uppercase; color: var(--humo); margin: 14px 0 0; }
}
@media (prefers-reduced-motion: reduce) {
  body::after, .marquee__track, .hero__scroll i::after { animation: none; }
}

/* Historia: enlace a la página de capítulos */
.historia__cta { grid-column: 2; justify-self: start; display: inline-flex; align-items: center; min-height: 44px; margin-top: 18px; font-family: var(--oswald); font-size: 13px; letter-spacing: .22em; text-transform: uppercase; border-bottom: 1px solid var(--negro); }
