/* =========================================================
   VossStore · núcleo
   Puerta +18, cookies, selector de sabores, caja de 10,
   bloques de WhatsApp y páginas legales.
   Todo con los tokens del tema: ni un color suelto.
   ========================================================= */

/* ============ PUERTA +18 ============ */
.agegate{
  position:fixed; inset:0; z-index:400; display:grid; place-items:center; padding:22px;
  background:rgba(4,4,8,.82); backdrop-filter:blur(14px);
}
.agegate__card{
  width:min(420px,100%); text-align:center; padding:34px 28px 26px;
  background:linear-gradient(168deg,var(--surface),var(--bg-elev));
  border-radius:var(--r-xl); box-shadow:inset 0 0 0 1px var(--line-2), var(--sh-2);
}
.agegate__logo{ display:flex; align-items:center; justify-content:center; gap:11px; }
.agegate__mark{
  width:38px; height:38px; display:grid; place-items:center; border-radius:12px;
  background:var(--grad); padding:8px;
}
.agegate__brand{ font-family:var(--ff-display); font-size:22px; font-weight:800; letter-spacing:-.03em; margin:0; }
.agegate__brand span{ color:var(--accent); }
.agegate__claim{ color:var(--text-2); font-size:13.5px; margin:16px 0 0; }
.agegate__q{ font-family:var(--ff-display); font-size:20px; font-weight:700; margin:20px 0 18px; letter-spacing:-.02em; }
.agegate__actions{ display:grid; gap:10px; }
.agegate__legal{ color:var(--muted); font-size:11.5px; line-height:1.6; margin:20px 0 0; }
.agegate__legal a{ color:var(--accent); }
.agegate--denied .agegate__card{ box-shadow:inset 0 0 0 1px rgba(255,107,107,.3), var(--sh-2); }

/* ============ COOKIES ============ */
.cookies{
  position:fixed; left:18px; bottom:18px; z-index:300; width:min(400px,calc(100% - 36px));
  padding:20px; border-radius:var(--r-lg);
  background:linear-gradient(168deg,var(--surface),var(--bg-elev));
  box-shadow:inset 0 0 0 1px var(--line-2), var(--sh-2);
  transform:translateY(20px); opacity:0; transition:all .5s var(--ease-out);
}
.cookies.is-open{ transform:none; opacity:1; }
.cookies__head h4{ font-family:var(--ff-display); font-size:16px; margin:0; letter-spacing:-.02em; }
.cookies__text{ color:var(--text-2); font-size:13px; line-height:1.65; margin:10px 0 0; }
.cookies__text a{ color:var(--accent); }
.cookies__prefs{ display:none; margin-top:14px; gap:10px; }
.cookies.is-config .cookies__prefs{ display:grid; }
.cookies__pref{ display:flex; align-items:center; gap:14px; justify-content:space-between; }
.cookies__pref h5{ font-size:13px; margin:0; }
.cookies__pref p{ font-size:11.5px; color:var(--muted); margin:2px 0 0; }
.switch{
  flex:0 0 auto; width:40px; height:23px; border-radius:99px; border:0; cursor:pointer;
  background:var(--surface-3); position:relative; transition:background var(--t) var(--ease);
}
.switch::after{
  content:""; position:absolute; top:3px; left:3px; width:17px; height:17px; border-radius:50%;
  background:var(--text-2); transition:transform var(--t) var(--ease), background var(--t);
}
.switch.is-on{ background:var(--grad); }
.switch.is-on::after{ transform:translateX(17px); background:#08080B; }
.switch.is-locked{ opacity:.55; cursor:not-allowed; }
.cookies__actions{ display:flex; gap:8px; margin-top:16px; flex-wrap:wrap; }
.cookies__actions .btn{ flex:1; }

/* ============ SELECTOR DE SABORES ============ */
/* El desplegable original sigue ahí para WooCommerce, pero no se ve. */
.woocommerce div.product table.variations{ display:none; }
.woocommerce div.product .woocommerce-variation-add-to-cart{ margin-top:6px; }

.fpicker{ margin:6px 0 22px; }
.fpicker__head{ display:flex; align-items:flex-end; justify-content:space-between; gap:14px; }
.fpicker__t{
  font-size:10.5px; font-weight:700; letter-spacing:.14em; text-transform:uppercase;
  color:var(--muted); margin:0;
}
.fpicker__sub{ color:var(--text-2); font-size:13px; margin:6px 0 0; }
.fpicker__n{ color:var(--muted); font-size:11.5px; white-space:nowrap; }
.fpicker__tools{ display:flex; gap:10px; margin:14px 0 12px; flex-wrap:wrap; }
.fpicker__search{
  flex:1; min-width:180px; display:flex; align-items:center; gap:9px; padding:0 14px;
  background:var(--surface-2); border-radius:var(--r-full); box-shadow:inset 0 0 0 1px var(--line);
}
.fpicker__search svg{ width:16px; height:16px; color:var(--muted); flex:0 0 auto; }
.fpicker__search input{
  flex:1; min-width:0; background:transparent; border:0; box-shadow:none; color:var(--text);
  font-size:13.5px; padding:11px 0; outline:none;
}
.fpicker__chips{ display:flex; gap:6px; overflow-x:auto; scrollbar-width:none; }
.fpicker__chips::-webkit-scrollbar{ display:none; }
.chip{
  flex:0 0 auto; border:0; cursor:pointer; padding:8px 14px; border-radius:var(--r-full);
  background:rgba(255,255,255,.05); box-shadow:inset 0 0 0 1px var(--line);
  color:var(--text-2); font-size:12.5px; font-family:var(--ff-body);
  transition:all var(--t) var(--ease);
}
.chip:hover{ color:var(--text); }
.chip.is-on{ background:var(--grad); color:#06060A; box-shadow:none; font-weight:600; }

.fpicker__grid{
  display:grid; grid-template-columns:repeat(auto-fill,minmax(150px,1fr)); gap:10px;
  max-height:420px; overflow-y:auto; padding-right:4px;
}
.fcard{
  position:relative; min-width:0; display:grid; grid-template-columns:44px minmax(0,1fr);
  grid-template-rows:auto auto; gap:2px 11px; align-items:center; text-align:left;
  padding:11px 12px; border:0; cursor:pointer; border-radius:var(--r-md);
  background:linear-gradient(150deg, color-mix(in srgb, var(--c1) 16%, var(--surface)), var(--surface));
  box-shadow:inset 0 0 0 1px var(--line); font-family:var(--ff-body);
  transition:transform var(--t) var(--ease), box-shadow var(--t) var(--ease);
}
.fcard:hover{ transform:translateY(-2px); box-shadow:inset 0 0 0 1px var(--line-2); }
.fcard.is-on{ box-shadow:inset 0 0 0 1.8px var(--accent), 0 10px 26px rgba(0,0,0,.4); }
.fcard.is-out{ opacity:.42; cursor:not-allowed; }
.fcard.is-out:hover{ transform:none; }
.fcard[hidden]{ display:none; }
.fcard__art{ grid-row:1 / span 2; width:44px; height:44px; display:grid; place-items:center; }
.fcard__art img{ width:100%; height:100%; object-fit:contain; }
.fcard__dot{
  width:22px; height:22px; border-radius:50%;
  background:linear-gradient(140deg,var(--c1),var(--c2));
}
.fcard__txt{ min-width:0; display:grid; }
.fcard__txt b{ font-size:12.5px; font-weight:600; color:var(--text); line-height:1.25; }
.fcard__txt i{ font-size:11px; font-style:normal; color:var(--text-2); line-height:1.3; }
.fcard__estado{ font-size:10px; letter-spacing:.06em; text-transform:uppercase; color:var(--muted); }
.fcard.is-out .fcard__estado{ color:var(--warn); }
.fpicker__vacio{ color:var(--muted); font-size:13px; padding:18px 0; }

/* ============ CREA TU CAJA ============ */
.caja{ max-width:900px; }
.caja__cab{
  display:flex; justify-content:space-between; align-items:flex-end; gap:20px; flex-wrap:wrap;
  padding:20px 22px; border-radius:var(--r-lg);
  background:linear-gradient(150deg,var(--surface),var(--bg-elev));
  box-shadow:inset 0 0 0 1px var(--line);
}
.caja__t{ font-family:var(--ff-display); font-size:19px; font-weight:700; margin:0; letter-spacing:-.02em; }
.caja__sub{ color:var(--text-2); font-size:13.5px; margin:6px 0 0; max-width:46ch; }
.caja__precio{ text-align:right; }
.caja__precio b{ font-family:var(--ff-display); font-size:30px; font-weight:800; letter-spacing:-.03em; }
.caja__precio small{ display:block; color:var(--accent-3); font-size:12px; margin-top:3px; }

.caja__barra{ display:flex; align-items:center; gap:16px; margin:20px 0 14px; }
.caja__progreso{ flex:1; height:7px; border-radius:99px; background:var(--surface-3); overflow:hidden; }
.caja__progreso span{ display:block; height:100%; background:var(--grad); transition:width .35s var(--ease); }
.caja__cuenta{ margin:0; font-size:13px; color:var(--text-2); white-space:nowrap; }
.caja__cuenta b{ color:var(--text); font-family:var(--ff-display); font-size:16px; }

.caja__grid{ display:grid; grid-template-columns:repeat(auto-fill,minmax(210px,1fr)); gap:10px; }
.ccard{
  min-width:0; display:grid; grid-template-columns:44px minmax(0,1fr); gap:4px 11px;
  align-items:center; padding:11px 12px; border-radius:var(--r-md);
  background:linear-gradient(150deg, color-mix(in srgb, var(--c1) 16%, var(--surface)), var(--surface));
  box-shadow:inset 0 0 0 1px var(--line);
}
.ccard.is-on{ box-shadow:inset 0 0 0 1.8px var(--accent); }
.ccard__art{ grid-row:1 / span 2; width:44px; height:44px; }
.ccard__art img{ width:100%; height:100%; object-fit:contain; }
.ccard__txt{ min-width:0; display:grid; }
.ccard__txt b{ font-size:12.5px; font-weight:600; line-height:1.25; }
.ccard__txt i{ font-size:11px; font-style:normal; color:var(--text-2); }
.ccard__pasos{ grid-column:2; display:flex; align-items:center; gap:6px; margin-top:4px; }
.ccard__btn{
  width:26px; height:26px; flex:0 0 auto; border:0; cursor:pointer; border-radius:50%;
  background:rgba(255,255,255,.07); color:var(--text); font-size:15px; line-height:1;
}
.ccard__btn:hover{ background:rgba(255,255,255,.14); }
.ccard__pasos input{
  width:46px; text-align:center; background:transparent; border:0; color:var(--text);
  font-family:var(--ff-display); font-weight:700; font-size:15px;
  box-shadow:inset 0 0 0 1px var(--line); border-radius:var(--r-sm); padding:4px 0;
  -moz-appearance:textfield;
}
.ccard__pasos input::-webkit-outer-spin-button,
.ccard__pasos input::-webkit-inner-spin-button{ -webkit-appearance:none; margin:0; }

.caja__pie{ display:flex; gap:10px; flex-wrap:wrap; align-items:center; margin-top:20px; }
.caja__pie .btn--lg{ margin-left:auto; }
.caja__aviso{ color:var(--muted); font-size:13px; margin:12px 0 40px; }
.caja__aviso.is-ok{ color:var(--accent-3); }

/* ============ COMPRA POR SABOR ============ */
.fshop{ display:grid; grid-template-columns:repeat(auto-fill,minmax(180px,1fr)); gap:12px; padding-bottom:40px; }
.fshop__card{
  min-width:0; display:grid; gap:6px; padding:16px; border-radius:var(--r-lg); text-decoration:none;
  background:linear-gradient(150deg, color-mix(in srgb, var(--c1) 18%, var(--surface)), var(--surface));
  box-shadow:inset 0 0 0 1px var(--line);
  transition:transform var(--t) var(--ease), box-shadow var(--t) var(--ease);
}
.fshop__card:hover{ transform:translateY(-4px); box-shadow:inset 0 0 0 1px var(--line-2), 0 20px 40px rgba(0,0,0,.45); }
.fshop__card.is-out{ opacity:.5; }
.fshop__card img{ width:100%; height:110px; object-fit:contain; }
.fshop__txt{ display:grid; }
.fshop__txt b{ font-size:13.5px; color:var(--text); line-height:1.3; }
.fshop__txt i{ font-size:11.5px; font-style:normal; color:var(--text-2); }
.fshop__estado{ font-size:10px; letter-spacing:.06em; text-transform:uppercase; color:var(--muted); }

/* ============ BLOQUES DE WHATSAPP ============ */
.wa-box{
  margin:20px 0; padding:22px; border-radius:var(--r-lg); max-width:560px;
  background:linear-gradient(150deg,var(--surface),var(--bg-elev));
  box-shadow:inset 0 0 0 1px var(--line);
}
.wa-box h4{ font-family:var(--ff-display); font-size:17px; margin:0 0 8px; letter-spacing:-.02em; }
.wa-box p{ color:var(--text-2); font-size:14px; line-height:1.65; margin:0 0 16px; }
.wa-box__nota{ font-size:12px; color:var(--muted); margin:12px 0 0; }
.btn--wa{ background:#25D366; color:#062A14; }
.btn--wa:hover{ background:#2ee574; }
.dist__cab{ max-width:60ch; margin-bottom:36px; }
.dist__eyebrow{
  font-size:10.5px; font-weight:700; letter-spacing:.16em; text-transform:uppercase;
  color:var(--muted); margin:0 0 10px;
}
.dist__t{
  font-family:var(--ff-display); font-weight:800; font-size:clamp(26px,3.6vw,42px);
  letter-spacing:-.04em; line-height:1.05; margin:0; text-wrap:balance;
}
.dist__lead{ color:var(--text-2); font-size:16px; line-height:1.7; margin:16px 0 0; }
.dist__cta{ display:flex; gap:12px; flex-wrap:wrap; margin-top:26px; }
.dist__nota{ color:var(--muted); font-size:12.5px; margin:14px 0 0; }

.dist__grid{ display:grid; grid-template-columns:repeat(auto-fit,minmax(250px,1fr)); gap:12px; margin-bottom:40px; }
.dist__item{
  display:grid; gap:6px; padding:20px; border-radius:var(--r-lg);
  background:linear-gradient(150deg,var(--surface),var(--bg-elev));
  box-shadow:inset 0 0 0 1px var(--line);
}
.dist__item i{
  display:grid; place-items:center; width:34px; height:34px; border-radius:10px;
  background:var(--grad-soft); color:var(--accent); margin-bottom:4px;
}
.dist__item i svg{ width:17px; height:17px; }
.dist__item b{ font-family:var(--ff-display); font-size:15px; }
.dist__item span{ color:var(--text-2); font-size:13.5px; line-height:1.6; }

.dist__pasos{ margin-bottom:40px; }
.dist__pasos ol{
  list-style:none; padding:0; margin:14px 0 0;
  display:grid; grid-template-columns:repeat(auto-fit,minmax(240px,1fr)); gap:14px;
}
.dist__pasos li{
  display:grid; gap:6px; padding:20px; border-radius:var(--r-lg);
  background:var(--surface); box-shadow:inset 0 0 0 1px var(--line);
}
.dist__num{
  display:grid; place-items:center; width:28px; height:28px; border-radius:50%;
  background:var(--grad); color:#06060A; font-family:var(--ff-display);
  font-weight:800; font-size:13px; margin-bottom:4px;
}
.dist__pasos b{ font-family:var(--ff-display); font-size:15px; }
.dist__pasos li > span:not(.dist__num){ color:var(--text-2); font-size:13.5px; line-height:1.6; }
.wa-box--ancha{ max-width:100%; }

/* ============ PÁGINAS LEGALES ============ */
.legal-date{ margin-top:0; font-size:12.5px; color:var(--muted); }
.legal-alert{
  max-width:820px; margin:22px 0 0; padding:18px 20px; border-radius:var(--r-md);
  border:1px solid var(--line); border-left:3px solid var(--warn); background:var(--surface);
  font-size:14px; line-height:1.7; color:var(--text-2);
}
.legal-alert--stop{ border-left-color:#FF6B6B; }
.legal-alert b{ color:var(--text); font-family:var(--ff-display); font-size:15px; }
.legal-alert p{ margin:8px 0 0; }
.legal-alert__list{ color:var(--text); font-weight:500; }
.legal-alert__where{ color:var(--muted); font-size:13px; }
mark.falta{
  background:rgba(255,107,107,.14); color:#FF8A8A; padding:1px 7px; border-radius:5px;
  box-shadow:inset 0 0 0 1px rgba(255,107,107,.35); font-size:.9em; font-weight:600;
}
.legal-grid{ display:grid; grid-template-columns:minmax(0,1fr) 232px; gap:48px; align-items:start; margin-top:26px; }
.legal-grid .info-body{ order:-1; }
.legal-toc{ position:sticky; top:calc(var(--header-h) + 22px); font-size:13px; }
.legal-toc__t{
  font-size:10.5px; font-weight:700; letter-spacing:.14em; text-transform:uppercase;
  color:var(--muted); margin:0 0 10px;
}
.legal-toc ol{ list-style:none; margin:0; padding:0; display:grid; gap:2px; }
.legal-toc a{ display:block; padding:5px 10px; border-radius:var(--r-xs); color:var(--text-2); text-decoration:none; }
.legal-toc a:hover{ background:rgba(255,255,255,.05); color:var(--text); }
.legal-sec{ scroll-margin-top:calc(var(--header-h) + 26px); }
.info-body ul.datos{
  list-style:none; padding:0; margin:14px 0 0; display:grid; gap:1px;
  background:var(--line); border-radius:var(--r-md); overflow:hidden;
}
.info-body ul.datos li{
  display:grid; grid-template-columns:190px minmax(0,1fr); gap:14px;
  padding:11px 16px; background:var(--surface); font-size:14px; margin:0;
}
.info-body ul.datos span{ color:var(--muted); font-size:12.5px; }
.info-body ul.datos b{ color:var(--text); font-weight:500; }
.info-body ul.plain{ list-style:none; padding:0; margin:12px 0 0; }
.info-body ul.plain li{ position:relative; padding:7px 0 7px 20px; margin:0; }
.info-body ul.plain li::before{
  content:""; position:absolute; left:2px; top:16px; width:5px; height:5px;
  border-radius:50%; background:var(--accent-2);
}
.scrollx{ overflow-x:auto; margin-top:14px; }
.info-body table.tabla{ border-collapse:collapse; width:100%; min-width:560px; font-size:13.5px; line-height:1.6; }
.info-body table.tabla th{
  text-align:left; padding:10px 14px 10px 0; color:var(--muted);
  font-size:10.5px; font-weight:700; letter-spacing:.12em; text-transform:uppercase;
  border-bottom:1px solid var(--line-2); white-space:nowrap;
}
.info-body table.tabla td{ padding:11px 14px 11px 0; border-bottom:1px solid var(--line); vertical-align:top; }
.info-body table.tabla td:first-child{ color:var(--text); font-weight:500; }
.info-body blockquote.modelo{
  margin:14px 0 0; padding:20px 22px; border-radius:var(--r-md);
  background:var(--surface); box-shadow:inset 0 0 0 1px var(--line); font-size:14px;
}
.info-body blockquote.modelo p{ margin:0 0 9px; }
.info-body .aviso-salud{
  margin:0 0 16px; padding:16px 20px; border-radius:var(--r-md);
  background:#F4F4F7; color:#0A0A0C; font-weight:700; font-size:15px;
  font-family:var(--ff-display); line-height:1.45; border:2px solid #0A0A0C;
}
.info-body .nota{
  margin-top:14px; padding-left:14px; border-left:2px solid var(--line-2);
  font-size:13.5px; color:var(--muted);
}
.legal-otras{ margin-top:48px; padding-top:24px; border-top:1px solid var(--line); }
.legal-otras > p{
  font-size:10.5px; font-weight:700; letter-spacing:.14em; text-transform:uppercase;
  color:var(--muted); margin:0 0 12px;
}
.legal-otras > div{ display:flex; flex-wrap:wrap; gap:8px; }

@media (max-width: 1000px){
  .legal-grid{ grid-template-columns:minmax(0,1fr); gap:0; }
  .legal-toc{ display:none; }
  .info-body ul.datos li{ grid-template-columns:minmax(0,1fr); gap:2px; }
}
@media (max-width: 620px){
  .cookies{ left:12px; right:12px; bottom:12px; width:auto; }
  .caja__pie .btn--lg{ margin-left:0; width:100%; }
}

/* Las páginas de texto van a 760 px para que se lean bien, pero los módulos
   con rejilla (distribuidores, compra por sabor, la caja) necesitan el ancho
   completo. */
.info-body:has(.dist),
.info-body:has(.fshop),
.info-body:has(.caja){ max-width:none; }

/* =========================================================
   BIENVENIDA A LA ZONA VIP
   ---------------------------------------------------------
   Tres segundos al cruzar la puerta. El humo y las brasas los
   dibuja voss.js en un canvas; aquí van el escenario, el
   horizonte encendido, el barrido de luz y el texto.
   La puerta del PIN ya es roja, así que no hay salto de color:
   esto se abre sobre rojo y se levanta sobre rojo.
   ========================================================= */
.vipwelcome{
  position:fixed; inset:0; z-index:600; overflow:hidden;
  background:radial-gradient(120% 90% at 50% 108%, #3B121A 0%, #150609 46%, #070203 100%);
  display:grid; place-items:center;
  animation:vipwelcome-salir .85s cubic-bezier(.65,0,.35,1) 2.35s forwards;
}
.vipwelcome__humo{ position:absolute; inset:0; width:100%; height:100%; }

/* Horizonte encendido: la brasa de la que sale el vapor */
.vipwelcome__horizonte{
  position:absolute; left:50%; bottom:-32vh; width:150vw; height:70vh;
  transform:translateX(-50%) scaleY(.35); transform-origin:50% 100%;
  background:radial-gradient(50% 50% at 50% 50%, rgba(255,70,86,.55), rgba(190,20,44,.20) 45%, transparent 72%);
  filter:blur(28px); opacity:0;
  animation:vipwelcome-horizonte 1.5s cubic-bezier(.16,1,.3,1) .1s forwards;
}

/* Barrido de luz que cruza la escena una sola vez */
.vipwelcome__barrido{
  position:absolute; top:-30%; left:-40%; width:26%; height:160%;
  background:linear-gradient(90deg, transparent, rgba(255,225,228,.16) 45%, rgba(255,120,135,.10) 60%, transparent);
  transform:rotate(14deg); filter:blur(14px); opacity:0;
  animation:vipwelcome-barrido 1.15s cubic-bezier(.5,0,.2,1) .5s forwards;
}

.vipwelcome__centro{
  position:relative; display:grid; justify-items:center; gap:16px; text-align:center;
  padding:0 24px;
}

.vipwelcome__marca{
  position:relative; width:72px; height:72px; display:grid; place-items:center; padding:16px;
  border-radius:22px; background:linear-gradient(140deg,#FF4A5C,#B4102C);
  opacity:0; transform:scale(.6) rotate(-8deg);
  animation:vipwelcome-marca 1.05s cubic-bezier(.16,1,.3,1) .18s forwards,
            vipwelcome-latido 2.4s ease-in-out .9s;
}
/* Onda expansiva que sale del logotipo */
.vipwelcome__onda{
  position:absolute; inset:0; border-radius:22px;
  box-shadow:0 0 0 0 rgba(255,74,92,.55);
  animation:vipwelcome-onda 1.5s cubic-bezier(.16,1,.3,1) .62s forwards;
}

.vipwelcome__linea{
  width:0; height:1.5px; border-radius:2px;
  background:linear-gradient(90deg, transparent, #FF4A5C 35%, #FFD9DC 50%, #FF4A5C 65%, transparent);
  box-shadow:0 0 18px rgba(255,74,92,.5);
  animation:vipwelcome-linea 1.1s cubic-bezier(.16,1,.3,1) .6s forwards;
}

.vipwelcome__t{
  margin:0; font-family:var(--ff-display, 'Sora', sans-serif);
  font-size:clamp(32px,6.4vw,60px); font-weight:800; letter-spacing:.2em;
  color:#FFF; text-indent:.2em; display:flex; gap:0; justify-content:center;
  text-shadow:0 0 34px rgba(255,74,92,.45);
}
/* Cada letra entra por su cuenta: se resuelve de un desenfoque */
.vipwelcome__t span{
  display:inline-block; white-space:pre;
  opacity:0; transform:translateY(18px) scale(1.3); filter:blur(9px);
  animation:vipwelcome-letra .75s cubic-bezier(.16,1,.3,1) forwards;
}
.vipwelcome__sub{
  margin:0; font-size:11.5px; font-weight:700; letter-spacing:.36em;
  text-transform:uppercase; color:#FF9AA3; text-indent:.36em;
  opacity:0; animation:vipwelcome-texto .9s cubic-bezier(.16,1,.3,1) 1.35s forwards;
}

@keyframes vipwelcome-marca  { to{ opacity:1; transform:scale(1) rotate(0); } }
@keyframes vipwelcome-latido {
  0%,100%{ box-shadow:0 18px 50px rgba(255,74,92,.34); }
  50%    { box-shadow:0 18px 74px rgba(255,74,92,.62); }
}
@keyframes vipwelcome-onda   { to{ box-shadow:0 0 0 46px rgba(255,74,92,0); } }
@keyframes vipwelcome-linea  { to{ width:min(260px,64vw); } }
@keyframes vipwelcome-letra  { to{ opacity:1; transform:none; filter:blur(0); } }
@keyframes vipwelcome-texto  { to{ opacity:1; transform:none; } }
@keyframes vipwelcome-horizonte {
  60% { opacity:1; transform:translateX(-50%) scaleY(1.06); }
  to  { opacity:.72; transform:translateX(-50%) scaleY(1); }
}
@keyframes vipwelcome-barrido {
  10% { opacity:1; }
  to  { opacity:0; left:130%; }
}
/* Se levanta como un telón, con un último destello */
@keyframes vipwelcome-salir {
  35% { opacity:1; transform:scale(1.03); filter:blur(0) brightness(1.28); }
  to  { opacity:0; visibility:hidden; transform:scale(1.14); filter:blur(10px) brightness(1); }
}

@media (prefers-reduced-motion: reduce){
  .vipwelcome{ animation:vipwelcome-salir .3s linear .5s forwards; }
  .vipwelcome__marca, .vipwelcome__sub{ opacity:1; transform:none; animation:none; }
  .vipwelcome__t span{ opacity:1; transform:none; filter:none; animation:none; }
  .vipwelcome__linea{ width:min(260px,64vw); animation:none; }
  .vipwelcome__humo, .vipwelcome__barrido, .vipwelcome__onda{ display:none; }
  .vipwelcome__horizonte{ opacity:.6; animation:none; transform:translateX(-50%); }
}
