/* VANTÉ — Favoritos (Mirror Hall portado). Estilos namespaced + aislados.
   Movimiento = Mirror Hall · identidad = VANTÉ (tokens --paper/--graphite/--accent…). */
.vt-favorites{
  position:relative;isolation:isolate;z-index:0;
  height:100svh;min-height:600px;
  color:var(--text-inv,#F7F4EF);
  overflow:hidden;
  --vt-fav-stage-a:#1A2338;--vt-fav-stage-b:#111827;--vt-fav-stage-c:#0B0D16;
}
html[data-theme="carbon"] .vt-favorites{--vt-fav-stage-a:#1E1F24;--vt-fav-stage-b:#141415;--vt-fav-stage-c:#0B0B0C;}
.vt-favorites__stage{
  position:absolute;inset:clamp(6px,1vw,8px) clamp(8px,1.2vw,14px) clamp(10px,1.4vw,16px) clamp(8px,1.3vw,16px);
  border-radius:clamp(20px,2.4vw,30px);
  border:1px solid rgba(156,140,255,.16);
  overflow:hidden;
  background:linear-gradient(180deg,var(--vt-fav-stage-a) 0%,var(--vt-fav-stage-b) 34%,var(--vt-fav-stage-c) 72%,#05060C 100%);
}
.vt-favorites__inner{position:absolute;inset:clamp(12px,1.6vw,20px);border:1px solid rgba(156,140,255,.08);border-radius:14px;pointer-events:none}
.vt-favorites__bracket{position:absolute;width:14px;height:14px;border:1px solid rgba(180,190,255,.3);top:clamp(12px,1.6vw,20px);pointer-events:none}
.vt-favorites__bracket--tl{left:clamp(12px,1.6vw,20px);border-right:0;border-bottom:0;border-top-left-radius:14px}
.vt-favorites__bracket--tr{right:clamp(12px,1.6vw,20px);border-left:0;border-bottom:0;border-top-right-radius:14px}
.vt-favorites__grain{position:absolute;inset:0;pointer-events:none;opacity:.5;
  background-image:radial-gradient(circle,rgba(255,255,255,.5) .5px,transparent 1px);background-size:0;}
.vt-favorites__header{position:absolute;top:7.2%;left:0;right:0;text-align:center;padding:0 24px;z-index:5;pointer-events:none}
.vt-favorites__kicker{display:inline-flex;align-items:center;gap:10px;font-family:var(--mono);font-size:10px;letter-spacing:.32em;text-transform:uppercase;color:rgba(201,209,219,.6)}
.vt-favorites__kicker::before{content:"";width:22px;height:1px;background:var(--accent)}
.vt-favorites__title{font-family:var(--sans);font-stretch:118%;font-weight:300;text-transform:uppercase;letter-spacing:.02em;line-height:1;font-size:clamp(38px,4.6vw,58px);margin:12px 0 8px;color:#F7F4EF}
.vt-favorites__sub{font-size:12px;letter-spacing:.06em;color:rgba(201,209,219,.62);margin:0}

.vt-favorites__scene{
  position:absolute;inset:0;z-index:2;
  perspective:1100px;perspective-origin:50% 42%;
  touch-action:pan-y;cursor:grab;outline:none;
}
.vt-favorites__scene.is-dragging{cursor:grabbing}
.vt-favorites__scene:focus-visible{outline:2px solid var(--accent);outline-offset:-6px}
.vt-favorites__water{position:absolute;inset:0;z-index:3;pointer-events:none}

.vt-favorites__item{
  position:absolute;left:50%;top:42%;
  width:var(--vt-w,175px);height:var(--vt-h,262px);
  margin-left:calc(var(--vt-w,175px) / -2);margin-top:calc(var(--vt-h,262px) / -2);
  transform-style:preserve-3d;will-change:transform,opacity;
}
.vt-favorites__label{
  position:absolute;left:50%;bottom:calc(100% + 16px);transform:translateX(-50%);
  display:flex;flex-direction:column;align-items:center;gap:3px;white-space:nowrap;
  font-family:var(--mono);font-size:max(8.5px,11px);letter-spacing:.22em;text-transform:uppercase;font-weight:400;
  color:rgba(201,209,219,.78);transition:color .3s;pointer-events:none;text-align:center;
}
.vt-favorites__label b{font-weight:500;color:rgba(230,232,255,.9)}
.vt-favorites__label i{font-style:normal;font-size:9px;letter-spacing:.14em;color:rgba(201,209,219,.5)}
.vt-favorites__item.is-active .vt-favorites__label{color:#F7F4EF}
.vt-favorites__item.is-active .vt-favorites__label b{color:#fff}

.vt-favorites__card{
  position:absolute;inset:0;display:block;border-radius:6px;overflow:hidden;
  background:linear-gradient(180deg,rgba(255,255,255,.05),rgba(255,255,255,.01));
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.06),0 30px 60px -30px rgba(0,0,0,.7);
  text-decoration:none;
}
.vt-favorites__pv{position:absolute;inset:0;overflow:hidden;border-radius:6px}
.vt-favorites__card .vt-favorites__pv{background:#f3f2ee}
.vt-favorites__pv img{-webkit-user-drag:none;user-select:none;transition:filter .25s;will-change:filter}
.vt-favorites__card::after{content:"";position:absolute;inset:0;border-radius:6px;background:radial-gradient(120% 90% at 50% 12%,rgba(156,140,255,.12),transparent 60%);opacity:0;transition:opacity .3s;pointer-events:none}
.vt-favorites__item.is-active .vt-favorites__card::after{opacity:1}
/* Tarjeta activa (central): flotación sutil. Solo transform (sin reflow); translateY en %
   → escala sola con --vt-h por dispositivo. Se transfiere a la nueva central vía .is-active. */
.vt-favorites__item.is-active .vt-favorites__card{animation:vt-fav-float 4.6s cubic-bezier(.45,0,.55,1) infinite}
@keyframes vt-fav-float{0%,100%{transform:translateY(0)}50%{transform:translateY(-2.4%)}}

/* Reflejo CSS (fallback obligatorio · same-origin-safe). Se oculta si WebGL está activo. */
.vt-favorites__reflection{
  position:absolute;left:0;top:calc(100% + 2px);width:100%;height:100%;overflow:hidden;opacity:.5;
  -webkit-mask-image:linear-gradient(to bottom,rgba(0,0,0,1) 0%,rgba(0,0,0,.55) 40%,rgba(0,0,0,.15) 78%,rgba(0,0,0,0) 97%);
          mask-image:linear-gradient(to bottom,rgba(0,0,0,1) 0%,rgba(0,0,0,.55) 40%,rgba(0,0,0,.15) 78%,rgba(0,0,0,0) 97%);
  pointer-events:none;
}
.vt-favorites__reflection .vt-favorites__pv{transform:scaleY(-1);background:none}
.vt-favorites__reflection img{filter:brightness(.6) saturate(.82)}

.vt-favorites__bottomfade{position:absolute;left:0;right:0;bottom:0;height:22%;z-index:4;pointer-events:none;
  background:linear-gradient(to bottom,rgba(5,6,12,0) 0%,rgba(5,6,12,.55) 60%,#05060C 100%);}

.vt-favorites__footer{position:absolute;left:0;right:0;bottom:3.6%;z-index:6;display:flex;flex-direction:column;align-items:center;gap:10px;padding:0 24px;text-align:center}
.vt-favorites__activename{max-width:90%;line-height:1.15}
.vt-favorites__counter{font-family:var(--mono);font-size:11px;letter-spacing:.3em;color:rgba(201,209,219,.6)}
.vt-favorites__counter b{color:var(--accent);font-weight:500}
.vt-favorites__activename{font-family:var(--sans);font-weight:300;letter-spacing:.16em;text-transform:uppercase;font-size:clamp(18px,2.4vw,29px);color:#F7F4EF;line-height:1.1}
.vt-favorites__activeprice{font-family:var(--sans);font-stretch:100%;font-weight:600;letter-spacing:-.01em;font-variant-numeric:tabular-nums;display:flex;gap:10px;align-items:baseline;justify-content:center}
.vt-favorites__activeprice s{color:rgba(201,209,219,.55);font-weight:400}
.vt-favorites__activeprice b{color:#F7F4EF;font-weight:600}
.vt-favorites--sale .vt-favorites__activeprice b{color:var(--accent)}
.vt-favorites__dots{display:flex;gap:8px;align-items:center;justify-content:center;flex-wrap:wrap;max-width:280px}
.vt-favorites__dot{width:4px;height:4px;border-radius:2px;background:rgba(156,140,255,.4);border:0;padding:0;cursor:pointer;transition:width .3s cubic-bezier(.2,.8,.2,1),background .3s}
.vt-favorites__dot.is-on{width:18px;background:var(--accent)}
.vt-fav-data{display:none}

@media (max-height:760px){
  .vt-favorites__header{top:4.5%}
  .vt-favorites__title{font-size:clamp(28px,4vw,40px);margin:8px 0 4px}
  .vt-favorites__item{top:45%}
}
@media (max-width:768px){
  .vt-favorites{height:auto;min-height:640px;padding:0}
  .vt-favorites__stage{position:relative;inset:auto;margin:8px;height:78svh;min-height:560px}
  .vt-favorites__header{top:5%}
}
@media (max-width:600px){
  /* Solo teléfonos: se oculta el subtítulo (tablet 768+ lo conserva). El header es
     absoluto y centrado → al desaparecer no deja hueco y reequilibra kicker + título. */
  .vt-favorites__sub{display:none}
  /* Flotación más contenida en móvil (evita rozar el título / invadir otra tarjeta). */
  .vt-favorites__item.is-active .vt-favorites__card{animation-name:vt-fav-float-sm}
}
@keyframes vt-fav-float-sm{0%,100%{transform:translateY(0)}50%{transform:translateY(-1.6%)}}
@media (max-width:430px){
  .vt-favorites__title{font-size:clamp(30px,10vw,40px)}
  .vt-favorites__footer{bottom:2.5%}
}
@media (prefers-reduced-motion:reduce){
  .vt-favorites__pv img,.vt-favorites__label{transition:none}
  .vt-favorites__reflection img{filter:brightness(.6) saturate(.82)}
  .vt-favorites__dot{transition:width .001ms,background .001ms}
  .vt-favorites__item.is-active .vt-favorites__card{animation:none}
}
