:root{
  --noche:#0b1026;
  --noche2:#141a3a;
  --crema:#fff4dc;
  --ambar:#ffb938;
  --fucsia:#ff4f9a;
  --menta:#3fe0c5;
  --texto:#f3ecdd;
  --suave:#a9b0d0;
  --radio:22px;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{
  font-family:'Outfit',system-ui,sans-serif;
  background:var(--noche);
  color:var(--texto);
  line-height:1.6;
  overflow-x:hidden;
}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
#luces{position:fixed;inset:0 0 auto 0;width:100%;height:150px;z-index:5;pointer-events:none}

/* barra */
.barra{
  position:sticky;top:0;z-index:20;
  display:flex;align-items:center;justify-content:space-between;
  padding:.9rem 5vw;
  background:linear-gradient(var(--noche) 60%,transparent);
  backdrop-filter:blur(6px);
}
.marca{display:flex;align-items:center;gap:.6rem;font-family:'Shrikhand',cursive;font-size:1.7rem;color:var(--ambar);text-shadow:0 0 18px rgba(255,185,56,.55)}
.barra nav{display:flex;align-items:center;gap:1.6rem;font-weight:400}
.barra nav a:not(.boton){position:relative;padding:.2rem 0;color:var(--suave);transition:color .2s}
.barra nav a:not(.boton):hover{color:var(--crema)}
.barra nav a:not(.boton)::after{content:"";position:absolute;left:0;bottom:-2px;height:2px;width:0;background:var(--fucsia);transition:width .25s}
.barra nav a:not(.boton):hover::after{width:100%}
.burger{display:none;background:none;border:0;cursor:pointer;width:40px;height:40px;flex-direction:column;justify-content:center;gap:6px;align-items:center}
.burger i{display:block;width:26px;height:3px;border-radius:3px;background:var(--ambar);transition:transform .25s,opacity .25s}
.burger[aria-expanded="true"] i:nth-child(1){transform:translateY(9px) rotate(45deg)}
.burger[aria-expanded="true"] i:nth-child(2){opacity:0}
.burger[aria-expanded="true"] i:nth-child(3){transform:translateY(-9px) rotate(-45deg)}

/* botones */
.boton{
  display:inline-block;border:0;cursor:pointer;
  padding:.85rem 1.7rem;border-radius:999px;
  background:linear-gradient(135deg,var(--fucsia),#ff7a59);
  color:#fff;font:600 1rem 'Outfit',sans-serif;
  box-shadow:0 8px 28px rgba(255,79,154,.35);
  transition:transform .2s,box-shadow .2s;
}
.boton:hover{transform:translateY(-3px) rotate(-1deg);box-shadow:0 14px 34px rgba(255,79,154,.5)}
.boton.chico{padding:.55rem 1.2rem;font-size:.92rem}
.boton.fantasma{background:transparent;border:2px solid var(--menta);color:var(--menta);box-shadow:none}
.boton.fantasma:hover{background:var(--menta);color:var(--noche)}

/* hero */
.hero{
  display:grid;grid-template-columns:1.1fr .9fr;gap:3rem;align-items:center;
  padding:5.5rem 5vw 4rem;min-height:88vh;
}
.etiqueta{font-family:'Caveat',cursive;font-size:1.5rem;color:var(--menta);letter-spacing:.02em}
.hero h1{font-family:'Shrikhand',cursive;font-weight:400;font-size:clamp(2.6rem,6vw,4.9rem);line-height:1.05;margin:.4rem 0 1.2rem;color:var(--crema)}
.hero h1 em{font-style:normal;color:var(--ambar);text-shadow:0 0 30px rgba(255,185,56,.7)}
.bajada{font-size:1.18rem;color:var(--suave);max-width:34rem}
.acciones{display:flex;flex-wrap:wrap;gap:1rem;margin:2rem 0}
.datos{display:flex;gap:2.4rem;list-style:none;flex-wrap:wrap}
.datos strong{display:block;font-family:'Shrikhand',cursive;font-weight:400;font-size:2.3rem;color:var(--fucsia)}
.datos span{font-size:.9rem;color:var(--suave)}
.hero-arte img{width:100%;filter:drop-shadow(0 0 40px rgba(255,185,56,.25));animation:flota 7s ease-in-out infinite}
@keyframes flota{50%{transform:translateY(-14px) rotate(.8deg)}}

/* cinta */
.cinta{overflow:hidden;background:var(--ambar);color:var(--noche);transform:rotate(-1.4deg);margin:1rem -2vw;padding:.7rem 0;box-shadow:0 0 40px rgba(255,185,56,.35)}
.cinta-pista{display:flex;width:max-content;animation:corre 26s linear infinite}
.cinta-pista span{font-family:'Shrikhand',cursive;font-size:1.5rem;white-space:nowrap;padding-right:2rem}
@keyframes corre{to{transform:translateX(-50%)}}

/* secciones */
.seccion{padding:6rem 5vw}
.seccion.oscuro{background:var(--noche2);position:relative}
.seccion.oscuro::before,.seccion.oscuro::after{content:"";position:absolute;left:0;right:0;height:26px;background:radial-gradient(circle at 13px 0,var(--noche) 13px,transparent 14px) 0 0/26px 26px repeat-x}
.seccion.oscuro::before{top:0}
.seccion.oscuro::after{bottom:0;transform:scaleY(-1)}
.encabezado{margin-bottom:2.6rem}
.encabezado h2,.contacto h2{font-family:'Shrikhand',cursive;font-weight:400;font-size:clamp(2rem,4.5vw,3.2rem);color:var(--crema)}

.filtros{display:flex;gap:.6rem;flex-wrap:wrap;margin-top:1.2rem}
.filtro{background:transparent;border:2px solid var(--suave);color:var(--suave);padding:.45rem 1.2rem;border-radius:999px;cursor:pointer;font:400 .95rem 'Outfit',sans-serif;transition:all .2s}
.filtro:hover{border-color:var(--ambar);color:var(--ambar)}
.filtro.activo{background:var(--ambar);border-color:var(--ambar);color:var(--noche);font-weight:600}

.grilla{display:grid;grid-template-columns:repeat(auto-fill,minmax(270px,1fr));gap:1.6rem}
.tarjeta{
  background:var(--noche2);border:1px solid rgba(255,255,255,.08);
  border-radius:var(--radio);overflow:hidden;
  transition:transform .3s,box-shadow .3s,opacity .3s;
}
.tarjeta:hover{transform:translateY(-8px) rotate(-.6deg);box-shadow:0 18px 44px rgba(255,79,154,.25)}
.tarjeta.oculta{display:none}
.tarjeta img{width:100%;aspect-ratio:4/3;object-fit:cover;background:#0f1530}
.tarjeta div{padding:1.2rem 1.4rem 1.5rem}
.tarjeta h3{font-family:'Shrikhand',cursive;font-weight:400;font-size:1.4rem;color:var(--ambar)}
.tarjeta p{color:var(--suave);font-size:.95rem;margin:.3rem 0 .8rem}
.precio{font-family:'Caveat',cursive;font-size:1.5rem;color:var(--menta)}

/* pasos */
.pasos{list-style:none;display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:1.6rem;counter-reset:p}
.pasos li{position:relative;padding:2rem 1.5rem 1.6rem;border-radius:var(--radio);background:rgba(255,255,255,.04);border:1px dashed rgba(255,185,56,.45)}
.pasos b{position:absolute;top:-22px;left:1.3rem;display:grid;place-items:center;width:46px;height:46px;border-radius:50%;background:var(--fucsia);font-family:'Shrikhand',cursive;font-weight:400;font-size:1.4rem;box-shadow:0 0 22px var(--fucsia)}
.pasos h3{font-family:'Shrikhand',cursive;font-weight:400;font-size:1.3rem;color:var(--crema);margin-bottom:.3rem}
.pasos p{color:var(--suave)}

/* eventos */
.eventos{display:flex;flex-wrap:wrap;gap:.9rem}
.evento{background:transparent;color:var(--crema);border:2px solid var(--fucsia);padding:.8rem 1.6rem;border-radius:999px;cursor:pointer;font:600 1.05rem 'Outfit',sans-serif;transition:all .2s}
.evento:hover,.evento.activo{background:var(--fucsia);transform:rotate(-2deg) scale(1.05)}
.evento-texto{margin-top:1.6rem;font-family:'Caveat',cursive;font-size:1.9rem;color:var(--ambar);min-height:3.4rem;max-width:44rem}

/* carrusel */
.carrusel{display:flex;align-items:center;gap:1rem;max-width:860px;margin:auto}
.citas{flex:1;position:relative;min-height:190px}
.cita{position:absolute;inset:0;opacity:0;transform:translateY(14px);transition:all .5s;pointer-events:none;text-align:center}
.cita.activa{opacity:1;transform:none;pointer-events:auto}
.cita p{font-family:'Caveat',cursive;font-size:clamp(1.6rem,3.2vw,2.3rem);line-height:1.25;color:var(--crema)}
.cita cite{display:block;margin-top:1rem;color:var(--menta);font-style:normal}
.flecha{background:none;border:2px solid var(--ambar);color:var(--ambar);width:46px;height:46px;border-radius:50%;font-size:1.8rem;line-height:1;cursor:pointer;transition:all .2s;flex-shrink:0}
.flecha:hover{background:var(--ambar);color:var(--noche)}

/* contacto */
.contacto{display:grid;grid-template-columns:1fr 1fr;gap:3rem;max-width:1050px;margin:auto}
.contacto>div>p{color:var(--suave);margin:.8rem 0 1.4rem}
.lista-contacto{list-style:none;display:grid;gap:.6rem}
form{background:var(--noche2);padding:2rem;border-radius:var(--radio);border:1px solid rgba(255,255,255,.1);display:grid;gap:1rem;box-shadow:0 0 50px rgba(63,224,197,.12)}
label{display:grid;gap:.35rem;font-size:.92rem;color:var(--suave)}
input,select,textarea{font:400 1rem 'Outfit',sans-serif;color:var(--texto);background:var(--noche);border:1.5px solid rgba(255,255,255,.18);border-radius:12px;padding:.7rem .9rem;transition:border-color .2s}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--ambar);box-shadow:0 0 0 3px rgba(255,185,56,.2)}
input.error{border-color:#ff6b6b}
input[type=range]{padding:0;accent-color:var(--fucsia)}
.aviso{min-height:1.4rem;font-weight:600;color:var(--menta)}
.aviso.mal{color:#ff8a8a}

.pie{display:flex;justify-content:center;align-items:center;gap:.7rem;padding:2.4rem 5vw;color:var(--suave);border-top:1px solid rgba(255,255,255,.08);font-size:.92rem}

/* aparición */
.revela{opacity:0;transform:translateY(34px);transition:opacity .7s,transform .7s}
.revela.visible{opacity:1;transform:none}

@media (max-width:860px){
  .burger{display:flex}
  .barra nav{position:absolute;top:100%;left:0;right:0;flex-direction:column;gap:1rem;padding:1.4rem 5vw 1.8rem;background:var(--noche);border-bottom:2px solid var(--ambar);transform:translateY(-130%);transition:transform .35s;z-index:-1}
  .barra nav.abierto{transform:none}
  .hero{grid-template-columns:1fr;padding-top:4rem;text-align:left}
  .hero-arte{order:-1;max-width:420px;margin:auto}
  .contacto{grid-template-columns:1fr}
  .carrusel .flecha{display:none}
}
@media (prefers-reduced-motion:reduce){
  *{animation:none!important;transition:none!important}
  .revela{opacity:1;transform:none}
}
