/* Diseño Web 24H · Carrusel premium 3D. Un solo componente responsive. */
.dw24-rotator{--rotator-accent:#88bbff;position:relative;margin:16px auto 8px;outline:none;overflow:hidden;isolation:isolate}
.dw24-rotator:focus-visible{outline:2px solid #8edbff;outline-offset:-3px;border-radius:18px}
.dw24-rotator-stage{position:relative;height:clamp(750px,60vw,790px);perspective:1600px;perspective-origin:50% 44%;overflow:hidden;mask-image:linear-gradient(90deg,transparent 0,#000 4%,#000 96%,transparent 100%)}
.dw24-rotator-track{position:relative;display:block;width:100%;height:100%;transform-style:preserve-3d}
.dw24-rotator-card{width:min(69vw,745px);position:absolute;left:50%;top:7px;margin:0;overflow:hidden;border-radius:25px;border:1px solid rgba(146,179,255,.24);background:linear-gradient(145deg,#111b35,#070c1b);box-shadow:0 24px 85px rgba(0,0,0,.46),0 0 56px rgba(87,118,255,.09);backface-visibility:hidden;transform-origin:50% 50%;transition:transform .8s cubic-bezier(.22,.72,.18,1),opacity .75s ease,filter .75s ease,box-shadow .75s ease;will-change:transform;opacity:0;pointer-events:none}
.dw24-rotator-card[data-state="current"]{box-shadow:0 32px 96px rgba(0,0,0,.65),0 0 56px rgba(90,124,255,.20);pointer-events:auto}
.dw24-rotator-card[data-state="side"]{filter:saturate(.65) brightness(.60);pointer-events:none}
.dw24-rotator-card[data-state="hidden"]{visibility:hidden}
.dw24-rotator-card .dw24-portfolio-img{display:block;overflow:hidden;background:#11182a}
.dw24-rotator-card .dw24-portfolio-img img{display:block;object-fit:contain;width:100%;height:auto;aspect-ratio:4/3;background:#0a1124;transition:transform .5s ease}
.dw24-rotator-card[data-state="current"] .dw24-portfolio-img:hover img{transform:scale(1.018)}
.dw24-rotator-card .dw24-portfolio-text{padding:17px 25px 23px;border-top:1px solid rgba(169,188,255,.13);background:linear-gradient(135deg,#111b35,#080d1d)}
.dw24-rotator-card .dw24-portfolio-top{display:flex;justify-content:space-between;gap:10px;align-items:center}
.dw24-rotator-card .dw24-portfolio-text h3{font-size:clamp(25px,3vw,33px);margin:6px 0 6px;color:#fff}
.dw24-rotator-card .dw24-portfolio-text p{min-height:0;margin:0 0 12px;line-height:1.45;font-size:12px;color:#b6c3d9}
.dw24-rotator-card .dw24-portfolio-actions a{min-height:37px;padding:8px 14px;font-size:11px}
.dw24-rotator-ui{position:relative;z-index:8;display:flex;align-items:center;justify-content:center;gap:22px;flex-wrap:wrap;margin:3px auto 0}
.dw24-rotator-nav{display:flex;align-items:center;gap:15px}
.dw24-rotator-nav button{width:49px;height:49px;display:grid;place-items:center;border-radius:50%;border:1px solid rgba(164,190,255,.3);background:linear-gradient(135deg,#1a2b57,#101a37);color:#fff;font-size:21px;cursor:pointer;box-shadow:0 9px 24px rgba(0,0,0,.2);transition:transform .22s ease,background .22s ease}
.dw24-rotator-nav button:hover{transform:scale(1.07);background:#243f83}
.dw24-rotator-counter{font-variant-numeric:tabular-nums;color:#9cacc9;font-size:13px;letter-spacing:.06em;min-width:64px;text-align:center}
.dw24-rotator-counter strong{font-size:21px;color:#fff}
.dw24-rotator-dots{display:flex;gap:6px;align-items:center;flex-wrap:wrap;justify-content:center;max-width:420px}
.dw24-rotator-dots button{width:13px;height:13px;flex:none;border-radius:999px;border:1px solid rgba(151,186,255,.3);background:#2b3955;cursor:pointer;transition:background .3s ease,width .3s ease,transform .3s ease}
.dw24-rotator-dots button[aria-current="true"]{background:linear-gradient(90deg,#56daff,#a979ff);width:30px;box-shadow:0 0 14px rgba(76,183,255,.36)}
.dw24-rotator-dots button:hover{transform:scale(1.2)}
.dw24-rotator-play{font-size:11px;font-weight:800;letter-spacing:.02em;padding:12px;border:1px solid rgba(151,180,250,.2);border-radius:13px;background:rgba(255,255,255,.03);color:#d7e5ff;cursor:pointer}
.dw24-rotator-hint{font-size:12px;text-align:center;color:#91a2bd;margin:15px auto 0}
@media(max-width:1020px){.dw24-rotator-stage{height:clamp(660px,83vw,770px)}.dw24-rotator-card{width:min(77vw,720px)}}
@media(max-width:760px){.dw24-rotator-stage{height:clamp(465px,calc(78vw + 145px),810px);perspective:1250px}.dw24-rotator-card{width:calc(100% - 44px);top:5px;border-radius:20px}.dw24-rotator-card .dw24-portfolio-text{padding:12px 14px 15px}.dw24-rotator-card .dw24-portfolio-text h3{font-size:23px;margin:6px 0 4px}.dw24-rotator-card .dw24-portfolio-text p{font-size:11px;margin:0 0 12px}.dw24-rotator-card .dw24-portfolio-actions a{min-height:36px;font-size:10px;flex:1}.dw24-rotator-ui{gap:12px}.dw24-rotator-nav{gap:15px}.dw24-rotator-nav button{width:43px;height:43px}.dw24-rotator-play{font-size:10px}.dw24-rotator-dots{order:3;width:100%}.dw24-rotator-hint{font-size:11px}}
@media(max-width:430px){.dw24-rotator-stage{height:clamp(445px,129vw,545px)}.dw24-rotator-card{width:calc(100% - 26px)}.dw24-rotator-card .dw24-portfolio-text h3{font-size:20px}.dw24-rotator-card .dw24-portfolio-text p{font-size:10px}.dw24-rotator-card .dw24-portfolio-actions{gap:7px}.dw24-rotator-card .dw24-portfolio-actions a{padding:8px 7px}.dw24-rotator-dots{gap:5px}.dw24-rotator-dots button{width:11px;height:11px}}
@media(prefers-reduced-motion:reduce){.dw24-rotator-card,.dw24-rotator-nav button,.dw24-rotator-dots button{transition:none!important}.dw24-rotator-card{will-change:auto}}
