@font-face{font-family:"Anton";src:url(assets/fonts/anton.woff2) format("woff2");font-display:swap}
:root{
  --negro:#070707;--panel:#0f0f0f;--panel2:#161616;--linea:#ffffff1f;
  --rojo:#e0202c;--rojo2:#ff4450;--marfil:#f3ecdd;--gris:#a29d92;--cian:#19d3ff;
  --display:"Anton","Impact","Arial Narrow",sans-serif;
  --mono:ui-monospace,"SF Mono",Menlo,Consolas,monospace;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:84px}
body{margin:0;background:var(--negro);color:var(--marfil);font:17px/1.65 system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;overflow-x:hidden;-webkit-font-smoothing:antialiased}
img{max-width:100%;height:auto;display:block}
a{color:inherit;text-decoration:none}
p{margin:0 0 18px}
h1,h2,h3{margin:0;font-weight:400}
button{font:inherit;color:inherit}
:focus-visible{outline:3px solid var(--rojo2);outline-offset:4px}
.skip{position:absolute;left:-999px;top:8px;background:var(--rojo);color:#fff;padding:10px 16px;z-index:200}
.skip:focus{left:8px}

/* grano de película */
.grano{position:fixed;inset:-50%;width:200%;height:200%;pointer-events:none;z-index:90;opacity:.07;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='220' height='220'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='2' stitchTiles='stitch'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>");
  animation:grano 1.1s steps(6) infinite}
@keyframes grano{0%{transform:translate(0,0)}20%{transform:translate(-3%,2%)}40%{transform:translate(2%,-3%)}60%{transform:translate(-2%,-1%)}80%{transform:translate(3%,3%)}100%{transform:translate(0,0)}}

/* etiquetas y títulos */
.etq{font:700 12px/1 var(--mono);letter-spacing:.22em;color:var(--rojo2);margin:0 0 26px;text-transform:uppercase}
.etq b{color:var(--marfil)}
h2{font:clamp(54px,9vw,132px)/.92 var(--display);text-transform:uppercase;letter-spacing:.005em;margin-bottom:34px}
h2 em{font-style:normal;color:var(--rojo);text-shadow:0 0 40px #e0202c66}
h3{font:30px/1.05 var(--display);text-transform:uppercase;letter-spacing:.01em}
.seccion{padding:clamp(80px,12vw,170px) max(6vw,22px);position:relative}
.legal-mini{font-size:12.5px;color:var(--gris);line-height:1.5}
.enlace{display:inline-block;font:700 13px var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--rojo2);border-bottom:1px solid var(--rojo);padding-bottom:4px}
.enlace:hover{color:var(--marfil)}
.enlace-boton{background:none;border:0;padding:0;cursor:pointer;font:700 12px var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--rojo2);border-bottom:1px solid var(--rojo)}

/* botones */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;background:var(--rojo);color:#fff;font:700 15px/1 var(--mono);letter-spacing:.16em;text-transform:uppercase;padding:20px 30px;border:0;cursor:pointer;position:relative;transition:transform .2s,background .2s,box-shadow .2s;clip-path:polygon(0 0,calc(100% - 14px) 0,100% 14px,100% 100%,14px 100%,0 calc(100% - 14px))}
.btn:hover{background:var(--rojo2);transform:translateY(-2px);box-shadow:0 12px 40px #e0202c66}
.btn-linea{background:transparent;box-shadow:inset 0 0 0 2px var(--marfil);color:var(--marfil)}
.btn-linea:hover{background:var(--marfil);color:var(--negro);box-shadow:inset 0 0 0 2px var(--marfil)}
.btn-mini{padding:13px 20px;font-size:12px}
.btn-grande{padding:26px 44px;font-size:17px}

/* cabecera */
.header{position:fixed;top:0;left:0;right:0;z-index:60;height:72px;padding:0 max(4vw,18px);display:flex;align-items:center;justify-content:space-between;background:linear-gradient(#070707f2,#070707a0 60%,#0700);backdrop-filter:blur(6px)}
.marca img{height:46px;width:auto}
.header nav{display:none;gap:34px;font:700 12px var(--mono);letter-spacing:.18em;text-transform:uppercase}
.header nav a{opacity:.75;transition:opacity .2s,color .2s}
.header nav a:hover{opacity:1;color:var(--rojo2)}
@media(min-width:900px){.header nav{display:flex}}

/* ---------- HERO ---------- */
.hero{position:relative;min-height:100svh;padding:110px max(5vw,22px) 70px;display:flex;flex-direction:column;justify-content:center;overflow:hidden;
  background:radial-gradient(70% 60% at 78% 45%,#e0202c33,#0000 70%),radial-gradient(60% 50% at 10% 100%,#19d3ff12,#0000 70%),var(--negro)}
.hero::before,.hero::after{content:"";position:absolute;left:0;right:0;height:clamp(14px,3.2vw,44px);background:#000;z-index:6}
.hero::before{top:0}.hero::after{bottom:0}
#polvo{position:absolute;inset:0;width:100%;height:100%;z-index:1;pointer-events:none}
.haz{position:absolute;top:-20%;left:-30%;width:70%;height:140%;z-index:1;pointer-events:none;
  background:linear-gradient(100deg,#0000 30%,#e0202c22 50%,#0000 70%);transform:rotate(12deg);animation:haz 9s ease-in-out infinite alternate}
@keyframes haz{from{transform:translateX(-6%) rotate(12deg);opacity:.5}to{transform:translateX(70%) rotate(12deg);opacity:1}}
.cinta{position:absolute;top:clamp(14px,3.2vw,44px);left:0;right:0;overflow:hidden;background:var(--rojo);color:#fff;z-index:5;transform:translateY(72px);white-space:nowrap}
.cinta-pista{display:inline-block;animation:cinta 26s linear infinite}
.cinta span{display:inline-block;padding:7px 0;font:700 12px var(--mono);letter-spacing:.3em}
@keyframes cinta{to{transform:translateX(-50%)}}
.hero-cuerpo{position:relative;z-index:3;display:grid;gap:40px;align-items:center;max-width:1500px;margin:54px auto 0;width:100%}
@media(min-width:900px){.hero-cuerpo{grid-template-columns:1.12fr .88fr;gap:5vw}}
.presentan{margin-bottom:6px}
.sello-chico{font:700 12px var(--mono);letter-spacing:.3em;color:var(--gris);margin-bottom:14px}
.lockup{display:flex;align-items:center;gap:clamp(12px,2.4vw,22px);margin-bottom:4px}
.lockup a{display:block;transition:transform .3s}
.lockup a:hover{transform:translateY(-3px)}
.lk-vm{height:clamp(58px,8.5vw,96px);width:auto;filter:drop-shadow(0 0 22px #e0202c66)}
.lk-37{width:clamp(58px,8.5vw,96px);height:auto;border:1px solid #ffffff44;box-shadow:0 0 30px -6px #62c93f77}
.lk-x{font:clamp(26px,4vw,38px)/1 var(--display);color:var(--rojo)}
.sello-chico b{color:var(--rojo2)}
h1{font-family:var(--display);text-transform:uppercase;line-height:.84;letter-spacing:.005em;font-size:clamp(88px,27vw,190px)}
@media(min-width:900px){h1{font-size:clamp(130px,13vw,215px)}}
.t-sin,.t-filtros{display:block}
.t-filtros{color:var(--marfil);text-shadow:0 0 70px #e0202c55}
.t-sin{color:var(--rojo);margin-left:.05em;text-shadow:0 0 60px #e0202c88}
.glitch{position:relative}
.glitch::before,.glitch::after{content:attr(data-texto);position:absolute;inset:0;pointer-events:none;opacity:.0}
.glitch::before{color:var(--cian);mix-blend-mode:screen}
.glitch::after{color:var(--rojo2);mix-blend-mode:screen}
.listo .glitch::before{animation:gl1 5s infinite}
.listo .glitch::after{animation:gl2 5s infinite}
@keyframes gl1{0%,92%,100%{opacity:0;transform:none;clip-path:inset(0)}93%{opacity:.85;transform:translate(-7px,1px);clip-path:inset(12% 0 62% 0)}95%{opacity:.85;transform:translate(6px,-2px);clip-path:inset(58% 0 12% 0)}97%{opacity:.85;transform:translate(-4px,0);clip-path:inset(30% 0 40% 0)}}
@keyframes gl2{0%,92%,100%{opacity:0;transform:none;clip-path:inset(0)}94%{opacity:.85;transform:translate(7px,-1px);clip-path:inset(50% 0 20% 0)}96%{opacity:.85;transform:translate(-6px,2px);clip-path:inset(8% 0 70% 0)}98%{opacity:.85;transform:translate(3px,0);clip-path:inset(66% 0 6% 0)}}
.revela{position:relative;display:inline-block;margin:26px 0 22px}
.revela-texto{font:clamp(20px,3.2vw,34px)/1.1 var(--display);letter-spacing:.06em;text-transform:uppercase}
.revela-texto em{font-style:normal;color:var(--rojo2)}
.revela-barra{position:absolute;inset:-4px -8px;background:#000;transform-origin:right}
.listo .revela-barra{animation:barra 1.3s .9s cubic-bezier(.7,0,.2,1) forwards}
@keyframes barra{to{transform:scaleX(0)}}
.hero-frase{font-size:clamp(18px,2.2vw,24px);max-width:30ch;color:#d9d3c5}
.hero-frase strong{color:#fff}
.hero-datos{display:flex;flex-wrap:wrap;gap:14px 40px;margin:26px 0 30px;padding:18px 0;border-top:1px solid var(--linea);border-bottom:1px solid var(--linea)}
.hero-datos p{margin:0}
.hero-datos b{display:block;font:700 15px var(--mono);letter-spacing:.14em}
.hero-datos span{font-size:14px;color:var(--gris)}
.hero-acciones{display:flex;flex-wrap:wrap;gap:14px}
.cuenta{display:flex;gap:10px;margin-top:34px}
.cuenta div{min-width:70px;padding:12px 10px 8px;background:#ffffff0a;border:1px solid var(--linea);text-align:center}
.cuenta b{display:block;font:40px/1 var(--display);letter-spacing:.02em}
.cuenta span{font:700 10px var(--mono);letter-spacing:.2em;color:var(--gris);text-transform:uppercase}
.hero-cartel{position:relative;display:block;justify-self:center;width:min(100%,560px);transform-style:preserve-3d;transition:transform .25s ease-out;perspective:1200px}
.hero-cartel img{width:100%;height:auto;box-shadow:0 0 0 1px #ffffff22,0 40px 120px -20px #e0202c99,0 0 160px -30px #e0202c66;background:#111}
.hero-cartel span{position:absolute;right:0;bottom:-30px;font:700 11px var(--mono);letter-spacing:.2em;color:var(--gris)}
.bajar{position:absolute;left:50%;bottom:clamp(24px,5vw,60px);transform:translateX(-50%);z-index:7;font:26px var(--mono);color:var(--marfil);animation:bajar 1.8s ease-in-out infinite;opacity:.8}
@keyframes bajar{50%{transform:translate(-50%,10px)}}
/* animaciones de entrada del hero (solo con JS) */
.js:not(.listo) .hero-texto>*,.js:not(.listo) .hero-cartel{opacity:0}
.listo .hero-texto>*{animation:entra .9s cubic-bezier(.2,.8,.2,1) both}
.listo .hero-texto>*:nth-child(1){animation-delay:.05s}.listo .hero-texto>*:nth-child(2){animation-delay:.15s}.listo .hero-texto>*:nth-child(3){animation-delay:.25s}.listo .hero-texto>*:nth-child(4){animation-delay:.6s}.listo .hero-texto>*:nth-child(5){animation-delay:.8s}.listo .hero-texto>*:nth-child(6){animation-delay:.95s}.listo .hero-texto>*:nth-child(7){animation-delay:1.1s}
.listo .hero-cartel{animation:cartel 1.4s .3s cubic-bezier(.2,.8,.2,1) both}
@keyframes entra{from{opacity:0;transform:translateY(34px)}to{opacity:1;transform:none}}
@keyframes cartel{from{opacity:0;transform:scale(1.15) rotate(3deg)}to{opacity:1;transform:none}}
.listo .t-filtros{animation:golpe .7s .1s cubic-bezier(.2,1.4,.3,1) both}
@keyframes golpe{from{transform:scale(1.25);opacity:0;filter:blur(10px)}to{transform:none;opacity:1;filter:none}}

/* intro tipo tráiler */
.intro{position:fixed;inset:0;z-index:150;background:#000;display:grid;place-items:center;text-align:center;padding:24px;transition:opacity .7s}
.intro.fuera{opacity:0;pointer-events:none}
.intro p{position:absolute;margin:0;left:0;right:0;padding:0 6vw;font:clamp(40px,9vw,120px)/.95 var(--display);text-transform:uppercase;opacity:0}
.intro p.roja{color:var(--rojo);text-shadow:0 0 60px #e0202c}
.intro .l1{animation:linea 1.3s .3s both}.intro .l2{animation:linea 1.7s 1.45s both}.intro .l3{animation:linea 1.5s 3.05s both}
@keyframes linea{0%{opacity:0;transform:scale(.94);filter:blur(8px)}20%{opacity:1;transform:none;filter:none}85%{opacity:1}100%{opacity:0;transform:scale(1.05)}}
.intro-saltar{position:absolute;right:max(4vw,18px);bottom:22px;background:none;border:1px solid #ffffff55;color:#fff;font:700 11px var(--mono);letter-spacing:.2em;padding:10px 14px;cursor:pointer;text-transform:uppercase}
.intro-saltar:hover{background:#fff;color:#000}

/* ---------- EXPEDIENTE ---------- */
.expediente{background:linear-gradient(#070707,#0d0d0d);text-align:left}
.sobre{max-width:1000px;margin:0 auto}
.doc{font:clamp(22px,3vw,36px)/1.5 Georgia,"Times New Roman",serif;color:#e7e0d2;margin-bottom:30px}
.redact{background:#000;color:transparent;border-radius:3px;padding:0 .1em;cursor:pointer;box-shadow:0 0 0 1px #ffffff10;transition:background .5s,color .5s;user-select:none;-webkit-user-select:none;position:relative}
.redact:hover{background:#1a1a1a}
.redact.open{background:#e0202c22;color:var(--rojo2);user-select:text;-webkit-user-select:text;box-shadow:0 0 0 1px #e0202c55}
.pista{font:12px var(--mono);letter-spacing:.12em;color:var(--gris);margin-top:20px}
#desclasificar{margin-top:10px}

/* ---------- CIFRAS ---------- */
.cifras{display:grid;grid-template-columns:repeat(2,1fr);border-top:1px solid var(--linea);border-bottom:1px solid var(--linea);background:var(--panel)}
@media(min-width:900px){.cifras{grid-template-columns:repeat(4,1fr)}}
.cifra{padding:clamp(34px,5vw,64px) max(3vw,18px);border-right:1px solid var(--linea);border-bottom:1px solid var(--linea)}
.cifra b{display:block;white-space:nowrap;font:clamp(46px,6.4vw,110px)/.95 var(--display);color:var(--rojo);text-shadow:0 0 40px #e0202c55;margin-bottom:14px}
.cifra span{font-size:15px;color:#d8d2c4;line-height:1.35;display:block}
.cifra small{display:block;font:11px var(--mono);letter-spacing:.1em;color:var(--gris);margin-top:8px}

/* ---------- CANALES ---------- */
.canales{padding:clamp(56px,8vw,110px) max(5vw,22px);text-align:center;background:#0b0b0b;border-bottom:1px solid var(--linea)}
.canales .etq{margin-bottom:34px}
.canales-fila{display:flex;align-items:center;justify-content:center;gap:clamp(18px,5vw,70px);flex-wrap:wrap}
.canal{display:flex;flex-direction:column;align-items:center;gap:18px;transition:transform .3s}
.canal:hover{transform:translateY(-6px)}
.canal span{font:700 12px var(--mono);letter-spacing:.22em;text-transform:uppercase;color:var(--gris)}
.canal-vm img{height:clamp(84px,11vw,140px);width:auto;filter:drop-shadow(0 0 30px #e0202c55)}
.canal-37 img{width:clamp(96px,12vw,150px);height:auto;border:1px solid #ffffff33;box-shadow:0 0 50px -10px #62c93f66}
.por{font:clamp(40px,6vw,80px)/1 var(--display);color:var(--rojo)}

/* ---------- LEMA ---------- */
.afirmacion{background:var(--rojo);color:#000;overflow:hidden;padding:clamp(50px,9vw,120px) max(4vw,18px);text-align:center}
.afirmacion p{margin:0;font:clamp(58px,13vw,210px)/.9 var(--display);text-transform:uppercase}
.afirmacion span{display:block}
.afirmacion .r{color:var(--marfil);text-shadow:0 6px 0 #0006}

/* ---------- PROTAGONISTAS ---------- */
.dosier-grid{display:grid;gap:30px;margin-top:20px}
@media(min-width:900px){.dosier-grid{grid-template-columns:1fr 1fr;gap:34px}}
.dosier{background:var(--panel);border:1px solid var(--linea);position:relative;overflow:hidden;transition:transform .4s,border-color .4s}
.dosier:hover{transform:translateY(-6px);border-color:#e0202c88}
.foto{height:clamp(320px,42vw,520px);position:relative;overflow:hidden;background:radial-gradient(80% 70% at 50% 100%,#e0202c66,#0000 70%),#111}
.foto::after{content:"";position:absolute;inset:0;background:linear-gradient(#0000 55%,var(--panel))}
.foto img{width:100%;height:100%;object-fit:cover;object-position:50% 18%;filter:contrast(1.05) saturate(.9);transition:transform .8s}
.foto-ivan img:not(.sello-canal){object-fit:contain;object-position:50% 100%}
.sello-canal{position:absolute!important;z-index:3;top:16px;left:16px;width:auto!important;height:auto!important;object-fit:contain!important;transform:none!important;filter:drop-shadow(0 4px 14px #000a)!important}
.sello-vm{max-height:54px;width:auto}
.sello-37{width:64px!important;border:1px solid #ffffff44}
.dosier:hover .sello-canal{transform:none!important}
.dosier:hover .foto img{transform:scale(1.05)}
.dosier-cuerpo{padding:0 clamp(22px,3vw,40px) clamp(28px,3vw,40px);margin-top:-30px;position:relative;z-index:2}
.num{font:700 11px var(--mono);letter-spacing:.24em;color:var(--rojo2);margin-bottom:10px}
.dosier h3{font-size:clamp(38px,4.6vw,60px);margin-bottom:4px}
.proyecto{font:700 13px var(--mono);letter-spacing:.2em;color:var(--gris);text-transform:uppercase;margin-bottom:18px}
.dosier-cuerpo p:not(.num):not(.proyecto){color:#d2ccbf;font-size:16px}

/* ---------- PROGRAMA ---------- */
.programa{background:#0b0b0b}
.linea{list-style:none;margin:40px 0 0;padding:0 0 0 34px;position:relative;max-width:980px;--p:0}
.linea::before{content:"";position:absolute;left:8px;top:6px;bottom:6px;width:3px;background:#ffffff22}
.linea::after{content:"";position:absolute;left:8px;top:6px;width:3px;height:calc((100% - 12px) * var(--p));background:linear-gradient(var(--rojo),var(--rojo2));box-shadow:0 0 18px var(--rojo)}
.linea li{position:relative;padding:0 0 clamp(40px,6vw,70px)}
.linea li::before{content:"";position:absolute;left:-34px;top:6px;width:19px;height:19px;border-radius:50%;background:var(--negro);border:3px solid var(--rojo);box-shadow:0 0 18px #e0202c88}
.hora{display:block;font:700 12px var(--mono);letter-spacing:.22em;color:var(--rojo2);margin-bottom:12px}
.linea h3{font-size:clamp(34px,5vw,62px);margin-bottom:12px}
.linea p{color:#d2ccbf;max-width:62ch}
.cielo h3{background:linear-gradient(90deg,var(--marfil),var(--cian));-webkit-background-clip:text;background-clip:text;color:transparent}

/* ---------- ENTRADAS ---------- */
.entradas{background:radial-gradient(60% 50% at 50% 0,#e0202c22,#0000 70%),var(--negro)}
.intro-ent{max-width:60ch;color:#d2ccbf;font-size:18px}
.pases{display:grid;gap:22px;margin-top:40px}
@media(min-width:760px){.pases{grid-template-columns:1fr 1fr}}
@media(min-width:1200px){.pases{grid-template-columns:repeat(4,1fr)}}
.pase{position:relative;background:linear-gradient(160deg,#1b1b1b,#101010);padding:32px 26px 28px;display:flex;flex-direction:column;border:1px solid var(--linea);
  -webkit-mask:radial-gradient(circle 13px at 0 62%,#0000 98%,#000) left/51% 100% no-repeat,radial-gradient(circle 13px at 100% 62%,#0000 98%,#000) right/51% 100% no-repeat;
  mask:radial-gradient(circle 13px at 0 62%,#0000 98%,#000) left/51% 100% no-repeat,radial-gradient(circle 13px at 100% 62%,#0000 98%,#000) right/51% 100% no-repeat;
  transition:transform .3s}
.pase:hover{transform:translateY(-8px)}
.pase::after{content:"";position:absolute;left:18px;right:18px;top:62%;border-top:2px dashed #ffffff30}
.pase-num{font:700 12px var(--mono);letter-spacing:.22em;color:var(--rojo2);margin-bottom:18px}
.pase h3{font-size:34px;margin-bottom:14px}
.pase p{font-size:15px;color:#cfc9bb}
@media(min-width:760px){.pase h3{min-height:2.1em}.pase p{min-height:4.6em}}
.pase ul{list-style:none;margin:30px 0 26px;padding:0;font-size:14px;color:#e6dfd0}
.pase li{padding:5px 0 5px 20px;position:relative}
.pase li::before{content:"";position:absolute;left:0;top:14px;width:9px;height:2px;background:var(--rojo)}
.btn-pase{margin-top:auto;width:100%}
.pase-vip{background:linear-gradient(160deg,#3a0a10,#14070a);border-color:#e0202c88;box-shadow:0 0 70px -20px #e0202c}
.pase-vip .pase-num{color:#fff}
.nota-ent{margin-top:30px;font-size:14px;color:var(--gris)}
.estado{margin-top:26px;padding:18px 22px;border-left:4px solid var(--rojo);background:#ffffff0a;font-size:15px;color:#e8e1d2}

/* ---------- LUGAR ---------- */
.lugar{background:#0b0b0b}
.lugar-grid{display:grid;gap:40px;align-items:center}
@media(min-width:900px){.lugar-grid{grid-template-columns:.8fr 1.2fr;gap:6vw}}
.lugar-foto{position:relative;max-width:440px;justify-self:center}
.lugar-foto img{width:100%;height:auto;box-shadow:-18px 18px 0 -2px #e0202c,0 40px 80px -30px #000}
.lead{font:clamp(22px,2.6vw,30px)/1.2 var(--display);text-transform:uppercase;letter-spacing:.03em;margin-bottom:20px}
.mini{margin-top:30px;padding-top:22px;border-top:1px solid var(--linea)}
.mini h3{font-size:24px;margin-bottom:8px}
.mini p{font-size:15px;color:#cfc9bb}
.galeria{display:grid;gap:14px;margin-top:70px}
@media(min-width:760px){.galeria{grid-template-columns:repeat(3,1fr)}}
.galeria figure{margin:0;position:relative;overflow:hidden}
.galeria img{width:100%;aspect-ratio:4/3;object-fit:cover;transition:transform .8s;filter:saturate(.95)}
.galeria figure:hover img{transform:scale(1.07)}
.galeria figcaption{position:absolute;left:0;right:0;bottom:0;padding:38px 16px 12px;background:linear-gradient(#0000,#000c);font:700 11px var(--mono);letter-spacing:.18em;text-transform:uppercase}

/* ---------- mosaico del hotel + lupa ---------- */
.paseo{margin-top:clamp(60px,9vw,110px)}
.mosaico{display:grid;grid-template-columns:repeat(2,1fr);grid-auto-rows:42vw;gap:10px}
@media(min-width:760px){.mosaico{grid-template-columns:repeat(4,1fr);grid-auto-rows:clamp(150px,19vw,290px);gap:12px}}
.g{margin:0;position:relative;overflow:hidden;background:#111}
.g button{display:block;width:100%;height:100%;padding:0;border:0;background:none;cursor:zoom-in}
.g img{width:100%;height:100%;object-fit:cover;transition:transform .9s cubic-bezier(.2,.8,.2,1),filter .4s;filter:saturate(.95) brightness(.92)}
.g:hover img,.g button:focus-visible img{transform:scale(1.08);filter:none}
.g figcaption{position:absolute;left:0;right:0;bottom:0;padding:44px 16px 12px;background:linear-gradient(#0000,#000d);font:700 11px var(--mono);letter-spacing:.18em;text-transform:uppercase;pointer-events:none}
.g-grande{grid-column:span 2;grid-row:span 2}
.g-ancha{grid-column:span 2}
.creditos{margin-top:18px;font:11px var(--mono);letter-spacing:.12em;color:var(--gris);text-transform:uppercase}
.creditos a{color:var(--marfil);border-bottom:1px solid var(--rojo)}
#lightbox{background:#000;border:0;padding:0;width:100vw;height:100vh;max-width:none;max-height:none;box-shadow:none}
#lightbox::backdrop{background:#000}
#lightbox figure{margin:0;height:100%;display:grid;place-items:center;padding:60px 70px 70px;position:relative}
#lightbox img{max-width:100%;max-height:100%;object-fit:contain;width:auto;height:auto}
#lightbox figcaption{position:absolute;bottom:22px;left:0;right:0;text-align:center;font:700 12px var(--mono);letter-spacing:.2em;text-transform:uppercase;color:var(--marfil)}
.lb-cerrar,.lb-nav{position:absolute;z-index:3;background:#ffffff14;border:1px solid #ffffff44;color:#fff;cursor:pointer;line-height:1;transition:background .2s}
.lb-cerrar:hover,.lb-nav:hover{background:var(--rojo)}
.lb-cerrar{top:16px;right:16px;width:48px;height:48px;font-size:32px}
.lb-nav{top:50%;transform:translateY(-50%);width:48px;height:64px;font-size:40px}
.lb-ant{left:12px}.lb-sig{right:12px}
@media(max-width:560px){#lightbox figure{padding:70px 8px 70px}.lb-nav{top:auto;bottom:10px;transform:none;height:44px}.lb-ant{left:8px}.lb-sig{right:8px}}

/* ---------- precio en el talón del ticket ---------- */
.pase{overflow:visible;-webkit-mask:none;mask:none;padding:0}
.pase::after{display:none}
.pase-cuerpo{padding:32px 26px 24px;flex:1}
.pase-cuerpo ul{margin:24px 0 0}
.pase-talon{position:relative;border-top:2px dashed #ffffff33;padding:26px 26px 26px;background:#ffffff08}
.pase-talon::before,.pase-talon::after{content:"";position:absolute;top:-14px;width:26px;height:26px;border-radius:50%;background:var(--negro);box-shadow:inset 0 0 0 1px var(--linea)}
.pase-talon::before{left:-14px}.pase-talon::after{right:-14px}
.pase-vip .pase-talon{background:#e0202c1a}
.pase .btn-pase{margin-top:0}

/* ---------- aquatonic + tratamientos ---------- */
.img-doble{display:grid;grid-template-columns:1.5fr 1fr;aspect-ratio:16/9;margin:0 0 24px!important;gap:3px;background:#000}
.extra .img-doble img{width:100%;height:100%;aspect-ratio:auto;margin:0;object-fit:cover;object-position:50% 30%}
.extra .enlace{margin-top:14px}

/* ---------- EXTRAS ---------- */
.extras-grid{display:grid;gap:22px;margin-top:40px}
@media(min-width:760px){.extras-grid{grid-template-columns:repeat(2,1fr)}}
.extra{background:var(--panel);border:1px solid var(--linea);padding:0 0 28px}
.extra img{width:100%;aspect-ratio:16/9;object-fit:cover;margin-bottom:24px}
.extra>*:not(img){margin-left:24px;margin-right:24px}
.extra h3{font-size:30px;margin-bottom:12px}
.extra p{font-size:15px;color:#cfc9bb}
.consultar{display:inline-block;font:700 11px var(--mono);letter-spacing:.2em;text-transform:uppercase;border:1px solid var(--rojo);color:var(--rojo2);padding:6px 10px;margin-bottom:14px}

/* ---------- PREGUNTAS ---------- */
.preguntas{display:grid;gap:40px;background:#0b0b0b}
@media(min-width:900px){.preguntas{grid-template-columns:.8fr 1.2fr;gap:6vw}}
.faq details{border-bottom:1px solid var(--linea);padding:4px 0}
.faq summary{cursor:pointer;list-style:none;padding:20px 40px 20px 0;font:24px/1.1 var(--display);text-transform:uppercase;letter-spacing:.02em;position:relative}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";position:absolute;right:4px;top:50%;transform:translateY(-50%);font:30px var(--mono);color:var(--rojo2);transition:transform .3s}
.faq details[open] summary::after{transform:translateY(-50%) rotate(45deg)}
.faq details p{padding:0 0 22px;color:#d2ccbf;max-width:60ch;font-size:16px}
.faq a{color:var(--rojo2);border-bottom:1px solid var(--rojo)}

/* ---------- CIERRE ---------- */
.cierre{text-align:center;padding-top:clamp(110px,16vw,220px);padding-bottom:clamp(110px,16vw,220px);background:radial-gradient(60% 70% at 50% 100%,#e0202c66,#0000 70%),var(--negro);overflow:hidden}
.cierre h2{font-size:clamp(70px,15vw,230px)}
.cierre>p:not(.etq):not(.contacto){font-size:20px;color:#d8d2c4;margin-bottom:36px}
.contacto{margin-top:34px;font-size:15px;color:var(--gris)}
.contacto a{color:var(--marfil);border-bottom:1px solid var(--rojo)}

footer{padding:50px max(6vw,22px) 100px;border-top:1px solid var(--linea);display:grid;gap:24px;font-size:14px;color:var(--gris)}
footer img{height:54px;width:auto}
footer p{margin:0}
footer nav{display:flex;flex-wrap:wrap;gap:10px 26px}
footer nav a{border-bottom:1px solid var(--linea)}
footer nav a:hover{color:var(--marfil)}
@media(min-width:900px){footer{grid-template-columns:auto 1fr auto;align-items:center}}

.cta-movil{position:fixed;left:0;right:0;bottom:0;z-index:70;background:var(--rojo);color:#fff;padding:16px 20px;font:700 14px var(--mono);letter-spacing:.14em;text-transform:uppercase;display:flex;justify-content:space-between;transform:translateY(110%);transition:transform .4s;box-shadow:0 -10px 40px #000a}
.cta-movil span{opacity:.85}
.cta-movil.ver{transform:none}
@media(min-width:900px){.cta-movil{display:none}}

.toast{position:fixed;left:50%;bottom:92px;transform:translate(-50%,20px);z-index:160;max-width:min(92vw,420px);background:#0a0a0af2;border:1px solid var(--rojo);color:var(--marfil);padding:14px 18px;font:14px/1.4 system-ui,sans-serif;text-align:center;opacity:0;transition:opacity .4s,transform .4s;box-shadow:0 10px 40px #000a}
.toast.ver{opacity:1;transform:translate(-50%,0)}
/* botón de sonido */
.header-der{display:flex;align-items:center;gap:10px}
.sonido{display:flex;align-items:center;gap:10px;background:#0a0a0acc;border:1px solid #ffffff44;color:var(--marfil);padding:12px 14px 12px 12px;font:700 11px var(--mono);letter-spacing:.2em;text-transform:uppercase;cursor:pointer;transition:background .25s,border-color .25s}
.sonido:hover{border-color:var(--rojo2)}
.sonido[aria-pressed="true"]{background:var(--rojo);border-color:var(--rojo2);color:#fff}
.ecu{display:flex;align-items:flex-end;gap:2px;height:14px}
.ecu i{display:block;width:3px;height:3px;background:currentColor;transition:height .2s}
.sonido[aria-pressed="true"] .ecu i{animation:ecu 1s ease-in-out infinite}
.sonido[aria-pressed="true"] .ecu i:nth-child(2){animation-delay:-.3s}.sonido[aria-pressed="true"] .ecu i:nth-child(3){animation-delay:-.6s}.sonido[aria-pressed="true"] .ecu i:nth-child(4){animation-delay:-.15s}
@keyframes ecu{0%,100%{height:3px}50%{height:14px}}
.sonido[data-cargando="1"] .sonido-txt::after{content:"…"}
@media(max-width:899px){.sonido{padding:12px}.sonido-txt{display:none}}
.intro-sonido{position:absolute;left:max(4vw,18px);bottom:22px;background:#e0202c;border:0;color:#fff;font:700 12px var(--mono);letter-spacing:.2em;padding:12px 16px;cursor:pointer;text-transform:uppercase}
.intro-sonido:hover{background:#ff4450}
.intro-sonido[disabled]{background:#ffffff22;cursor:default}

/* revelado al bajar */
.js .rv{opacity:0;transform:translateY(40px);transition:opacity .9s cubic-bezier(.2,.8,.2,1),transform .9s cubic-bezier(.2,.8,.2,1)}
.js .rv.on{opacity:1;transform:none}

/* precios */
dialog{background:#0e0e0e;color:var(--marfil);border:1px solid #e0202c88;padding:0 clamp(20px,4vw,44px) 34px;width:min(860px,94vw);max-height:92vh;overflow:auto;box-shadow:0 0 120px -20px #e0202c}
dialog::backdrop{background:#000d;backdrop-filter:blur(4px)}
.dialog-top{display:flex;justify-content:space-between;align-items:center;gap:14px;position:sticky;top:0;background:#0e0e0e;padding:22px 0 14px;z-index:2}
.dialog-top .etq{margin:0}
.dialog-top button{background:none;border:1px solid #ffffff55;padding:10px 14px;font:700 12px var(--mono);letter-spacing:.12em;cursor:pointer;text-transform:uppercase}
.dialog-top button:hover{background:#fff;color:#000}
dialog h2{font-size:clamp(46px,8vw,86px);margin:10px 0 14px}
dialog h3{font-size:28px;margin:30px 0 12px}
dialog>p{color:#d2ccbf;font-size:15px}
.tabla-wrap{overflow-x:auto;margin:22px 0}
.tabla-precios{width:100%;border-collapse:collapse}
.tabla-precios th,.tabla-precios td{padding:15px 12px;border-bottom:1px solid var(--linea);text-align:left}
.tabla-precios thead th{font:700 11px var(--mono);letter-spacing:.2em;color:var(--rojo2);text-transform:uppercase}
.tabla-precios tbody th{font-weight:600;font-size:15px}
.tabla-precios td{font:clamp(22px,6vw,30px)/1 var(--display);letter-spacing:.02em;white-space:nowrap}
@media(max-width:560px){.tabla-precios th,.tabla-precios td{padding:13px 6px}.tabla-precios thead th{font-size:9.5px;letter-spacing:.08em}.tabla-precios tbody th{font-size:14px}dialog{padding-left:16px;padding-right:16px}}
.extras-precios{list-style:none;padding:0;margin:0 0 20px;color:#d2ccbf;font-size:15px}
.extras-precios li{padding:10px 0;border-bottom:1px solid var(--linea)}
dialog .estado{margin-top:22px}

/* páginas legales */
.legal{max-width:820px;margin:0 auto;padding:130px max(6vw,22px) 100px}
.legal h1{font:clamp(50px,9vw,100px)/.95 var(--display);text-transform:uppercase;margin-bottom:10px}
.legal h2{font:30px/1.1 var(--display);margin:40px 0 10px;color:var(--rojo2)}
.legal p,.legal li{color:#d2ccbf;font-size:16px}
.legal a{color:var(--rojo2);border-bottom:1px solid var(--rojo)}
.legal .aviso-borrador{border-left:4px solid var(--rojo);background:#ffffff0a;padding:14px 18px;font-size:14px;color:#e8e1d2;margin:24px 0}

/* cartel con movimiento propio en pantallas táctiles (no hay ratón que lo incline) */
@media(hover:none){
  .listo .hero-cartel img{animation:flota 7s ease-in-out infinite}
}
@keyframes flota{0%,100%{transform:translateY(0) rotate(0);box-shadow:0 0 0 1px #ffffff22,0 40px 120px -20px #e0202c99,0 0 160px -30px #e0202c66}50%{transform:translateY(-10px) rotate(.6deg);box-shadow:0 0 0 1px #ffffff22,0 50px 130px -20px #e0202ccc,0 0 200px -20px #e0202c99}}

/* «Reducir movimiento»: se reduce, no se quita. Siguen las entradas suaves; se apagan los efectos continuos. */
@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .grano,#polvo,.haz{display:none}
  .cinta-pista,.bajar,.listo .glitch::before,.listo .glitch::after,.listo .hero-cartel img,.sonido[aria-pressed="true"] .ecu i{animation:none!important}
  .js .rv{transform:translateY(10px)}
  .listo .hero-texto>*{animation-name:aparece}
  .listo .hero-cartel{animation-name:aparece}
  .listo .t-filtros{animation-name:aparece}
  .intro .l1,.intro .l2,.intro .l3{animation-name:linea-suave}
  .dosier:hover,.pase:hover,.dosier:hover .foto img,.g:hover img{transform:none}
}
@keyframes aparece{from{opacity:0}to{opacity:1}}
@keyframes linea-suave{0%{opacity:0}20%{opacity:1}85%{opacity:1}100%{opacity:0}}
