
/* Slider con efectos seleccionables */
/* Base */
*{box-sizing:border-box;margin:0;padding:0}
body{font-family:sans-serif;background:#0b1020;color:#fff}
.banner{position:relative;overflow:hidden;height:600px;perspective:1000px}
.slide{position:absolute;inset:0;background-size:cover;background-position:center;opacity:0;transition:opacity 1s ease}
.slide.active{opacity:1}

/* Pseudo-capa animable */
.slide::before{
  content:"";position:absolute;inset:0;z-index:0;background:inherit;background-size:cover;background-position:center;
  transform:scale(1);filter:none;opacity:1;
  transition:transform 6s ease, filter 1.5s ease, background-position 6s ease, clip-path 1s ease, -webkit-mask-position 1s ease;
}
.slide::after{content:"";position:absolute;inset:0;z-index:1;background:linear-gradient(180deg,rgba(0,0,0,.35),rgba(0,0,0,.55))}

/* Texto */
.slide-content{position:relative;z-index:2;max-width:800px;margin:auto;padding:20px;top:50%;transform:translateY(-50%);}
.slide-content h2{font-size:40px;line-height:1.1;margin:10px 0}
.slide-content p{opacity:.92}
.slide-content a{display:inline-block;margin-top:20px;padding:12px 26px;background:#4f46e5;color:#fff;text-decoration:none;border-radius:10px}
.slide-content a:hover{background:#4338ca}

/* Aparición de texto */
.slide-content{opacity:0;transition:opacity .8s ease}
.slide.active .slide-content{opacity:1}
.slide-content>*{opacity:0;transform:translateY(12px);transition:opacity .6s ease, transform .6s ease}
.slide.active .slide-content>*{opacity:1;transform:none}
.slide.active .slide-content span{transition-delay:.05s}
.slide.active .slide-content h2{transition-delay:.15s}
.slide.active .slide-content p{transition-delay:.25s}
.slide.active .slide-content a{transition-delay:.35s}

/* Controles / paginación */
.controls{position:absolute;top:50%;width:100%;display:flex;justify-content:space-between;z-index:5}
.controls button{background:rgba(0,0,0,.5);border:none;color:#fff;font-size:24px;padding:10px 16px;cursor:pointer}
.pagination{position:absolute;bottom:20px;left:50%;transform:translateX(-50%);display:flex;gap:8px;z-index:5}
.pagination .dot{width:12px;height:12px;border-radius:50%;background:#fff;opacity:.5;cursor:pointer;border:none}
.pagination .dot.active{opacity:1;background:#4f46e5}

/* Selector de efectos */
.toolbox{position:absolute;top:16px;right:16px;z-index:6;display:flex;gap:8px;align-items:center;background:rgba(255,255,255,.06);backdrop-filter:blur(8px);padding:8px 12px;border-radius:12px;border:1px solid rgba(255,255,255,.15)}
.toolbox select{padding:6px 10px;border-radius:8px;border:1px solid rgba(255,255,255,.2);background:rgba(0,0,0,.3);color:#fff}

/* ===== Efectos ===== */
/* Kenburns */
.banner.kenburns .slide.active::before{animation:kenburns 12s ease-in-out both}
@keyframes kenburns{
  0%{transform:scale(1) translateX(0); background-position:center}
  50%{transform:scale(1.12) translateX(-10px); background-position:center left}
  100%{transform:scale(1.18) translateX(0); background-position:center}
}

/* Tilt 3D */
.banner.tilt3d .slide.active::before{transform:scale(1.05) rotateX(2deg) rotateY(-2deg)}
.banner.tilt3d .slide{transition:opacity 1s ease, transform 1s ease}

/* Wipe */
.banner.wipe .slide::before{
  -webkit-mask-image:linear-gradient(90deg, rgba(0,0,0,1) 0 0);
          mask-image:linear-gradient(90deg, rgba(0,0,0,1) 0 0);
  -webkit-mask-size:0% 100%; mask-size:0% 100%;
  -webkit-mask-repeat:no-repeat; mask-repeat:no-repeat;
  -webkit-mask-position:left; mask-position:left;
}
.banner.wipe .slide.active::before{
  -webkit-mask-size:100% 100%; mask-size:100% 100%;
  transition:-webkit-mask-size 1.1s ease, mask-size 1.1s ease, transform 6s ease;
  transform:scale(1.06);
}

/* Duotone */
.banner.duotone .slide::before{filter:grayscale(1) contrast(1.2) brightness(.9)}
.banner.duotone .slide::after{background:linear-gradient(180deg, rgba(79,70,229,.45), rgba(16,185,129,.45)); mix-blend-mode:overlay}

/* Glass */
.banner.glass .slide-content{background:rgba(255,255,255,.08);backdrop-filter:blur(10px) saturate(120%);border:1px solid rgba(255,255,255,.15);border-radius:16px}

/* Reduce motion */
@media (prefers-reduced-motion: reduce){
  .slide, .slide::before, .slide-content, .slide-content>*{transition:none !important; animation:none !important}
}
