/* THE RESET · carrusel infinito de casos (rail.js)
   Sin JS: scroll nativo. Con rail.js: ratón (.is-loop) tira a sangre completa movida con transform;
   táctil (.is-native) scroll nativo con snap, recentrado por rail.js solo en reposo. */
.rail{--g:18px;--cw:calc((100cqw - var(--g) * 3) / 4);position:relative;container-type:inline-size}
.rail__track{
  --bleed:calc((var(--rail-vw,100vw) - 100cqw) / 2);
  position:relative;display:flex;gap:var(--g);
  width:var(--rail-vw,100vw);margin:0 0 0 calc(var(--bleed) * -1);padding:4px 0 6px var(--bleed);
  overflow-x:auto;overscroll-behavior-x:contain;scrollbar-width:none;
  scroll-snap-type:none;perspective:none;touch-action:pan-y pinch-zoom
}
.rail__track::-webkit-scrollbar{display:none}
.rail__track>.case,.rail__strip>.case{flex:0 0 var(--cw);width:var(--cw);min-width:0}
.rail.is-loop .rail__track{overflow:hidden}
@supports (overflow-x:clip){.rail.is-loop .rail__track{overflow:visible;overflow-x:clip}}
.rail__strip{display:flex;flex:none;gap:var(--g);perspective:1300px;transform:translate3d(0,0,0);will-change:transform;-webkit-user-select:none;user-select:none}
.rail__strip img{-webkit-user-drag:none;user-select:none}
.rail.is-drag,.rail.is-drag *{cursor:grabbing!important}
/* anillo de foco del carril: enmarca el ancho del contenedor, no toda la pantalla */
.rail__track:focus-visible{outline:none}
.rail__track::after{content:"";position:absolute;top:-2px;bottom:0;left:calc(var(--bleed) - 8px);width:calc(100cqw + 16px);border-radius:24px;box-shadow:0 0 0 2px var(--ember);opacity:0;pointer-events:none;transition:opacity .2s}
.rail__track:focus-visible::after{opacity:1}
/* táctil: el navegador hace el scroll (ambos ejes, inercia y snap del sistema) */
.rail.is-native .rail__track{overflow-x:auto;overflow-y:hidden;-webkit-overflow-scrolling:touch;scroll-snap-type:x mandatory;scroll-padding-left:var(--bleed);scroll-behavior:auto;touch-action:pan-x pan-y pinch-zoom;overscroll-behavior-x:contain}
.rail.is-native .rail__strip{transform:none!important;will-change:auto}
.rail.is-native .rail__strip>.case{scroll-snap-align:start}
.rail.is-native .rail__strip img{-webkit-touch-callout:none}
.rail.is-native .rail__track::after{display:none}
.rail.is-native .rail__track:focus-visible{outline:2px solid var(--ember);outline-offset:-2px}
/* bordes difuminados: se ve que hay más casos a los lados */
.rail::before,.rail::after{content:"";position:absolute;z-index:2;top:0;bottom:0;width:calc((var(--rail-vw,100vw) - 100cqw) / 2 + 14px);pointer-events:none}
.rail::before{left:calc((var(--rail-vw,100vw) - 100cqw) / -2);background:linear-gradient(90deg,#0E0A08 0%,rgba(14,10,8,.88) 42%,rgba(14,10,8,0) 100%)}
.rail::after{right:calc((var(--rail-vw,100vw) - 100cqw) / -2);background:linear-gradient(270deg,#0E0A08 0%,rgba(14,10,8,.88) 42%,rgba(14,10,8,0) 100%)}
/* flechas: claras, grandes y con sombra para que se vean sobre las fotos */
.rail__btn{position:absolute;top:calc(4px + var(--cw) * .625 - 31px);z-index:3;width:62px;height:62px;color:#170A03;background:var(--bone);border:0;box-shadow:0 14px 34px rgba(0,0,0,.6),0 0 0 7px rgba(243,238,231,.12);transition:transform .3s var(--ease),background-color .3s,color .3s,box-shadow .3s}
.rail__btn .i{width:24px;height:24px}
.rail__btn:hover{background:var(--ember);color:#170A03;transform:scale(1.07);box-shadow:0 14px 34px rgba(0,0,0,.6),0 0 0 7px rgba(255,97,26,.22),0 0 34px rgba(255,97,26,.55)}
.rail__btn:active{transform:scale(.96)}
.rail__btn[data-rail-prev]{left:-31px}
.rail__btn[data-rail-next]{right:-31px}
.rail__btn[disabled]{opacity:1;pointer-events:auto}
@media (max-width:900px){
  .rail{--cw:calc((100cqw - var(--g)) / 2.2)}
  .rail__btn{display:none}
}
@media (max-width:640px){
  .rail{--cw:80cqw}
  .rail::before,.rail::after{display:none}
}

/* tarjetas "caso documentado": mismo formato 4:5 que las de vídeo, sin reproducción */
.case--doc{cursor:default}
.case__tag{position:absolute;top:16px;right:16px;display:inline-flex;align-items:center;gap:7px;font:700 11.5px/1 var(--f-sans);letter-spacing:.12em;text-transform:uppercase;color:rgba(243,238,231,.82);text-shadow:0 1px 3px rgba(0,0,0,.7),0 0 14px rgba(0,0,0,.7)}
.case__tag::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--ember);box-shadow:0 0 10px rgba(255,97,26,.8)}
.case__media--mono{background:radial-gradient(80% 70% at 50% 100%,rgba(255,97,26,.3),transparent 70%),linear-gradient(180deg,#221911,#120D0A)}
.case__mono{position:absolute;left:0;right:0;top:15%;z-index:-1;text-align:center;font:800 clamp(120px,11vw,168px)/1 var(--f-display);letter-spacing:.02em;color:var(--ember);opacity:.9;text-shadow:0 0 60px rgba(255,97,26,.35)}
.case--doc:hover .case__media .case__mono{opacity:1}
