/* MAGI IT V40: ajustes centralizados, sin alterar estilos de otras vistas. */

/* La tipografía queda contenida también durante la animación de la tercera línea. */
.manifesto .manifesto-staircase {
  overflow: visible;
  line-height: 1.16;
  padding: .04em .12em .24em .025em;
}
.manifesto .manifesto-step--three {
  line-height: 1.17;
  padding: .035em .14em .19em .025em;
  overflow: visible;
}

/* HERO WEB — ensamblaje de cuatro especialidades sobre una plataforma común. */
.web-hero-copy h1 {font-size:clamp(40px,4.55vw,70px);line-height:1.065;max-width:14ch;}
.web-showcase--assembly {
  aspect-ratio:1.16;
  background:radial-gradient(ellipse at 50% 52%,rgba(32,105,250,.27),transparent 48%),
             linear-gradient(145deg,#050f2c 3%,#07133e 56%,#1b1047 100%);
}
.web-showcase--assembly::before {
  content:""; position:absolute; inset:0; pointer-events:none;
  background:linear-gradient(90deg,rgba(64,143,255,.07) 1px,transparent 1px),
             linear-gradient(rgba(64,143,255,.07) 1px,transparent 1px);
  background-size:37px 37px;
  -webkit-mask-image:radial-gradient(ellipse at 52% 52%,#000 20%,transparent 85%);
  mask-image:radial-gradient(ellipse at 52% 52%,#000 20%,transparent 85%);
}
.web-showcase--assembly .web-showcase-window {z-index:8;}
.web-showcase--assembly .web-showcase-label {z-index:9;font-size:10px;padding:12px 14px;animation:none;}
.web-showcase--assembly .web-label-one{left:16px;bottom:17px;}
.web-showcase--assembly .web-label-two{right:16px;top:61px;}
.web-assembly-scene{position:absolute;inset:55px 15px 17px;border-radius:18px;isolation:isolate;overflow:hidden;}
.web-assembly-scene::before {
  content:"";position:absolute;inset:9%;border-radius:50%;border:1px solid rgba(61,145,255,.22);
  box-shadow:0 0 50px rgba(8,89,225,.1),inset 0 0 70px rgba(38,117,225,.07);
}
.web-assembly-scene::after{
  content:"";position:absolute;inset:0;pointer-events:none;
  background:radial-gradient(circle at 50% 49%,transparent 34%,rgba(4,12,37,.16) 85%);
}
.web-assembly-beam{
  position:absolute;width:67%;height:2px;left:16%;top:48%;border-radius:10px;
  background:linear-gradient(90deg,transparent,rgba(71,196,255,.55),rgba(176,112,255,.68),transparent);
  box-shadow:0 0 12px rgba(72,155,255,.44);opacity:.32;
}
.web-assembly-beam.beam-one{transform:rotate(28deg);}
.web-assembly-beam.beam-two{transform:rotate(-28deg);}
.web-assembly-beam.beam-three{transform:rotate(0deg);opacity:.18;}
.web-assembly-core{
  position:absolute;inset:0;display:flex;justify-content:center;align-items:center;
  pointer-events:none;z-index:2;
}
.web-core-aura{
  position:absolute;width:68%;aspect-ratio:1;border-radius:50%;
  background:radial-gradient(circle,rgba(83,110,255,.3),rgba(97,51,207,.12) 48%,transparent 70%);
  filter:blur(12px);opacity:.7;
}
.web-core-shell{
  position:relative;width:58%;padding:10px;border-radius:22px;
  border:1px solid rgba(116,182,255,.53);
  background:linear-gradient(153deg,rgba(18,48,112,.95),rgba(9,18,58,.97));
  box-shadow:0 20px 60px rgba(3,52,171,.3),0 0 42px rgba(89,73,242,.19);
  transform:scale(.94);opacity:.82;
}
.web-core-toolbar{height:25px;display:flex;gap:5px;align-items:center;padding:0 9px;
  background:rgba(2,10,29,.57);border-radius:8px;color:#b6d4f8;
  letter-spacing:.11em;font-size:7px;
}
.web-core-toolbar i{height:6px;width:6px;border-radius:50%;background:#48cfff;}
.web-core-toolbar i:nth-child(2){background:#7f72fa;}
.web-core-toolbar i:nth-child(3){background:#c87bff;}
.web-core-toolbar span{margin-left:auto;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.web-core-stage{margin-top:8px;border-radius:13px;background:linear-gradient(155deg,#12285c,#0a163b);padding:14px;}
.web-core-hero{padding:14px;border-radius:12px;border:1px solid rgba(119,167,243,.22);
  background:linear-gradient(130deg,rgba(40,108,248,.32),rgba(116,71,216,.22));}
.web-core-badge{display:inline-block;font-size:8px;letter-spacing:.12em;color:#81d9ff;font-weight:800;}
.web-core-hero strong{display:block;color:#f8fbff;font-size:clamp(14px,1.65vw,22px);line-height:1.1;margin:8px 0;letter-spacing:-.025em;}
.web-core-hero small{display:block;color:#b4cbe9;line-height:1.5;font-size:10px;}
.web-core-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-top:9px;}
.web-core-card{height:51px;border-radius:10px;background:linear-gradient(160deg,rgba(193,222,255,.95),rgba(97,149,238,.65));position:relative;overflow:hidden;}
.web-core-card::before{content:"";position:absolute;left:10px;top:11px;width:60%;height:5px;border-radius:5px;background:linear-gradient(90deg,#267af7,#855ef4);}
.web-core-card::after{content:"";position:absolute;left:10px;right:10px;top:22px;bottom:10px;border-radius:5px;background:rgba(35,102,194,.22);}
.web-core-orbit{position:absolute;inset:13% 21%;border-radius:50%;border:1px solid rgba(104,182,255,.2);}
.web-core-orbit.orbit-two{inset:18% 25%;border-style:dashed;border-color:rgba(177,107,255,.29);}

.web-assembly-piece{
  position:absolute;z-index:5;width:28%;max-width:155px;padding:11px 12px;
  border-radius:15px;border:1px solid rgba(92,163,255,.65);
  background:linear-gradient(145deg,rgba(8,27,78,.96),rgba(19,20,73,.96));
  box-shadow:0 12px 32px rgba(2,12,38,.55),0 0 17px rgba(70,136,255,.17);
  display:grid;grid-template-columns:auto 1fr;column-gap:8px;row-gap:4px;
  align-items:center;transform:translate3d(0,0,0);
  backface-visibility:hidden;
}
.web-piece-icon{width:28px;height:28px;display:grid;place-items:center;border-radius:9px;
  color:#71d7ff;background:rgba(26,89,180,.35);grid-row:span 2;}
.web-piece-icon .icon{width:16px;height:16px;}
.web-assembly-piece strong{font-size:11px;color:#fff;line-height:1.2;}
.web-assembly-piece small{font-size:8px;color:#93bfe9;letter-spacing:.02em;line-height:1.35;}
.piece-code{top:17%;left:3%;}
.piece-shield{top:17%;right:3%;}
.piece-server{bottom:17%;left:3%;}
.piece-gear{bottom:17%;right:3%;}
.web-showcase--assembly[data-assembly-active="true"] .web-assembly-piece {animation:web40Absorb 12s ease-in-out infinite both;}
.web-showcase--assembly[data-assembly-active="true"] .piece-code{animation-name:web40Code;}
.web-showcase--assembly[data-assembly-active="true"] .piece-shield{animation-name:web40Shield;}
.web-showcase--assembly[data-assembly-active="true"] .piece-server{animation-name:web40Server;}
.web-showcase--assembly[data-assembly-active="true"] .piece-gear{animation-name:web40Gear;}
.web-showcase--assembly[data-assembly-active="true"] .web-core-shell {animation:web40Core 12s ease-in-out infinite;}
.web-showcase--assembly[data-assembly-active="true"] .web-core-aura{animation:web40Aura 12s ease-in-out infinite;}
.web-showcase--assembly[data-assembly-active="true"] .web-core-card{
  animation:web40Card 12s ease-in-out infinite both;
}
.web-showcase--assembly[data-assembly-active="true"] .card-b{animation-delay:.12s;}
.web-showcase--assembly[data-assembly-active="true"] .card-c{animation-delay:.22s;}
.web-showcase--assembly[data-assembly-active="true"] .card-d{animation-delay:.32s;}

/* Cada módulo converge desde un cuadrante; el último tercio muestra el sistema construido. */
@keyframes web40Code {
  0%,10%{opacity:.75;transform:translate3d(-8px,-9px,0) scale(.95);}
  18%,34%{opacity:1;transform:translate3d(0,0,0) scale(1);}
  48%,56%{opacity:.1;transform:translate3d(120%,94%,0) scale(.26);}
  59%,85%{opacity:0;transform:translate3d(120%,94%,0) scale(.26);}
  100%{opacity:.75;transform:translate3d(-8px,-9px,0) scale(.95);}
}
@keyframes web40Shield {
  0%,16%{opacity:.75;transform:translate3d(8px,-9px,0) scale(.95);}
  24%,39%{opacity:1;transform:translate3d(0,0,0) scale(1);}
  52%,57%{opacity:.1;transform:translate3d(-120%,94%,0) scale(.26);}
  60%,85%{opacity:0;transform:translate3d(-120%,94%,0) scale(.26);}
  100%{opacity:.75;transform:translate3d(8px,-9px,0) scale(.95);}
}
@keyframes web40Server {
  0%,23%{opacity:.75;transform:translate3d(-8px,9px,0) scale(.95);}
  31%,44%{opacity:1;transform:translate3d(0,0,0) scale(1);}
  55%,59%{opacity:.1;transform:translate3d(120%,-94%,0) scale(.26);}
  62%,85%{opacity:0;transform:translate3d(120%,-94%,0) scale(.26);}
  100%{opacity:.75;transform:translate3d(-8px,9px,0) scale(.95);}
}
@keyframes web40Gear {
  0%,29%{opacity:.75;transform:translate3d(8px,9px,0) scale(.95);}
  37%,47%{opacity:1;transform:translate3d(0,0,0) scale(1);}
  57%,62%{opacity:.1;transform:translate3d(-120%,-94%,0) scale(.26);}
  65%,85%{opacity:0;transform:translate3d(-120%,-94%,0) scale(.26);}
  100%{opacity:.75;transform:translate3d(8px,9px,0) scale(.95);}
}
@keyframes web40Core {
  0%,42%{transform:scale(.88);opacity:.7;}
  61%,84%{transform:scale(1.03);opacity:1;box-shadow:0 18px 64px rgba(8,103,245,.52),0 0 55px rgba(149,91,246,.37);}
  95%,100%{transform:scale(.88);opacity:.7;}
}
@keyframes web40Card {
  0%,52%{opacity:.5;transform:translateY(8px);}
  65%,83%{opacity:1;transform:translateY(0);}
  96%,100%{opacity:.5;transform:translateY(8px);}
}
@keyframes web40Aura{0%,40%,100%{transform:scale(.9);opacity:.5;}63%,84%{transform:scale(1.08);opacity:1;}}

/* ALIADOS — un solo escenario focal, sin competir con el carrusel de clientes. */
.allies-v40{
  position:relative;isolation:isolate;overflow:hidden;padding:102px 0 72px;
  background:#050d22;
  background-image:radial-gradient(ellipse at 11% 40%,rgba(10,96,223,.21),transparent 55%),
                   radial-gradient(ellipse at 88% 74%,rgba(119,64,209,.17),transparent 50%);
  color:#f7f9ff;
}
.allies-v40-glow{position:absolute;inset:0;pointer-events:none;opacity:.22;
  background-image:linear-gradient(90deg,rgba(101,141,255,.12) 1px,transparent 1px),
                   linear-gradient(rgba(101,141,255,.12) 1px,transparent 1px);background-size:65px 65px;
  -webkit-mask-image:linear-gradient(180deg,transparent,#000 50%,transparent);
  mask-image:linear-gradient(180deg,transparent,#000 50%,transparent);
}
.allies-v40-content{position:relative;}
.allies-v40-intro{text-align:center;max-width:1090px;margin:0 auto 40px;}
.allies-v40-intro .eyebrow{justify-content:center;}
.allies-v40-intro h2{font-size:clamp(41px,4.7vw,75px);letter-spacing:-.057em;line-height:1.08;margin:18px 0 18px;}
.allies-v40-intro p{margin:0 auto;max-width:820px;color:#b5c8e6;font-size:clamp(15px,1.22vw,19px);line-height:1.7;}
.allies-v40-stage{position:relative;max-width:1320px;margin:0 auto;border:1px solid rgba(112,159,255,.35);
  border-radius:34px;padding:22px 26px 18px;background:linear-gradient(130deg,rgba(11,31,77,.96),rgba(8,20,50,.95) 60%,rgba(25,13,67,.89));
  box-shadow:0 25px 80px rgba(0,5,22,.4);}
.allies-v40-head,.allies-v40-bottom{display:flex;justify-content:space-between;align-items:center;gap:18px;}
.allies-v40-head{padding:0 6px 13px;border-bottom:1px solid rgba(123,169,255,.15);}
.allies-v40-counter{font-size:12px;font-weight:750;letter-spacing:.16em;color:#8abaff;}
.allies-v40-counter #allyCurrent{font-size:24px;letter-spacing:0;color:#fff;}
.allies-v40-divider{opacity:.35;}
.allies-v40-counter-note{margin-left:20px;font-size:10px;color:#91d8ff;}
.allies-v40-controls{display:flex;gap:8px;}
.allies-v40-arrow{width:42px;height:42px;display:grid;place-items:center;border-radius:50%;border:1px solid rgba(117,170,255,.48);background:rgba(17,45,103,.73);cursor:pointer;color:#e7f4ff;transition:background .2s,transform .2s,border-color .2s;}
.allies-v40-arrow:first-child .icon{transform:rotate(180deg);}
.allies-v40-arrow .icon{width:19px;height:19px;}
.allies-v40-arrow:hover,.allies-v40-arrow:focus-visible{background:#145edf;border-color:#90ddff;transform:translateY(-2px);}
.allies-v40-viewport{display:grid;position:relative;min-width:0;overflow:hidden;}
.allies-v40-card{grid-area:1/1;min-width:0;display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:clamp(20px,5vw,75px);align-items:center;padding:26px 22px 23px;
  opacity:0;visibility:hidden;pointer-events:none;transform:translate3d(16px,0,0);transition:opacity .58s ease,transform .65s ease,visibility .65s;}
.allies-v40-card.is-active{opacity:1;visibility:visible;pointer-events:auto;transform:translate3d(0,0,0);transition-delay:0s;}
.allies-v40-art{min-width:0;position:relative;border:1px solid rgba(117,174,255,.28);padding:26px;background:radial-gradient(circle at 25% 18%,rgba(28,102,222,.24),transparent 62%),rgba(11,29,72,.62);border-radius:28px;}
.allies-v40-art-plate{display:grid;place-items:center;padding:22px;min-height:255px;border-radius:22px;background:linear-gradient(145deg,#fff,#f4f8ff);}
.allies-v40-art-plate img{display:block;max-width:100%;max-height:195px;width:100%;height:auto;object-fit:contain;}
.allies-v40-art-tag{display:block;margin-top:15px;text-align:center;color:#80caff;letter-spacing:.13em;text-transform:uppercase;font-weight:750;font-size:10px;}
.allies-v40-copy{display:flex;flex-direction:column;align-items:flex-start;min-width:0;}
.allies-v40-tag{display:inline-block;font-size:11px;color:#8adeff;letter-spacing:.1em;font-weight:800;padding:8px 14px;border:1px solid rgba(89,173,255,.36);border-radius:999px;background:rgba(42,86,154,.25);}
.allies-v40-copy h3{font-size:clamp(38px,4.2vw,70px);line-height:1.02;letter-spacing:-.055em;margin:19px 0;color:#fff;}
.allies-v40-copy p{font-size:clamp(15px,1.15vw,19px);line-height:1.72;color:#c2d2e9;max-width:52ch;margin:0 0 25px;}
.allies-v40-copy .button{min-height:45px;}
.allies-v40-bottom{border-top:1px solid rgba(123,169,255,.15);padding:16px 6px 0;}
.allies-v40-bottom>span{font-size:10px;letter-spacing:.13em;color:#88a5d3;}
.allies-v40-progress{display:flex;align-items:center;gap:10px;}
.allies-v40-dot{height:9px;width:25px;padding:0;border:0;border-radius:9px;background:rgba(120,156,218,.38);cursor:pointer;transition:width .35s,background .35s;}
.allies-v40-dot.is-selected{width:65px;background:linear-gradient(90deg,#02bbf7,#8b60ff);}
.allies-v40-dot:focus-visible{outline:2px solid #a5dfff;outline-offset:4px;}

:root[data-theme="light"] .allies-v40{background:#f4f8ff;background-image:radial-gradient(ellipse at 15% 35%,rgba(88,166,246,.15),transparent 50%),radial-gradient(ellipse at 80% 80%,rgba(177,117,247,.12),transparent 45%);color:#0a1731;}
:root[data-theme="light"] .allies-v40-intro p{color:#546c91;}
:root[data-theme="light"] .allies-v40-stage{background:linear-gradient(140deg,#fff,#f5f8ff);border-color:#c8daf8;box-shadow:0 24px 50px rgba(28,76,156,.12);}
:root[data-theme="light"] .allies-v40-head,:root[data-theme="light"] .allies-v40-bottom{border-color:#d4e2fa;}
:root[data-theme="light"] .allies-v40-counter #allyCurrent,:root[data-theme="light"] .allies-v40-copy h3{color:#0a1731;}
:root[data-theme="light"] .allies-v40-counter-note,:root[data-theme="light"] .allies-v40-tag{color:#1374cf;}
:root[data-theme="light"] .allies-v40-art{background:#edf5ff;border-color:#cbdcf9;}
:root[data-theme="light"] .allies-v40-art-tag{color:#326eae;}
:root[data-theme="light"] .allies-v40-copy p{color:#526d92;}
:root[data-theme="light"] .allies-v40-arrow{background:#edf5ff;color:#1456c3;border-color:#c4d9fc;}
:root[data-theme="light"] .allies-v40-arrow:hover{background:#d8e9ff;}
:root[data-theme="light"] .allies-v40-bottom>span{color:#5a739c;}
:root[data-theme="light"] .allies-v40-tag{background:#e8f3ff;border-color:#c7dfff;}

@media(max-width:1050px){
  .web-hero-copy h1{font-size:clamp(39px,5vw,59px);}
  .allies-v40-card{gap:30px;}
  .allies-v40-art-plate{min-height:215px;}
}
@media(max-width:850px){
  .web-hero-copy h1{max-width:16ch;}
  .web-showcase--assembly{aspect-ratio:1.24;}
  .allies-v40-card{grid-template-columns:1fr;gap:21px;}
  .allies-v40-art{padding:15px;max-width:660px;width:100%;margin:auto;}
  .allies-v40-art-plate{min-height:190px;}
  .allies-v40-art-plate img{max-height:150px;}
  .allies-v40-copy{align-items:center;text-align:center;}
  .allies-v40-copy h3{margin:15px 0;}
  .allies-v40-copy p{max-width:670px;}
  .allies-v40-card{padding:22px 7px;}
}
@media(max-width:570px){
  .manifesto .manifesto-staircase{padding-right:.11em;}
  .web-hero-copy h1{font-size:clamp(36px,9.1vw,49px);max-width:14ch;}
  .web-showcase--assembly{aspect-ratio:1/1.07;}
  .web-assembly-scene{inset:49px 8px 9px;}
  .web-core-shell{width:64%;padding:7px;border-radius:15px;}
  .web-core-toolbar{height:16px;font-size:5px;}
  .web-core-stage{padding:7px;}
  .web-core-hero{padding:8px;}
  .web-core-badge{font-size:6px;}
  .web-core-hero strong{font-size:12px;margin:4px 0;}
  .web-core-hero small{font-size:7px;line-height:1.3;}
  .web-core-grid{gap:4px;margin-top:5px;}
  .web-core-card{height:28px;border-radius:6px;}
  .web-core-card::before{left:5px;top:5px;height:3px;}
  .web-core-card::after{left:5px;right:5px;top:12px;bottom:5px;}
  .web-assembly-piece{width:27%;max-width:95px;display:flex;flex-direction:column;text-align:center;gap:4px;padding:8px 5px;border-radius:10px;}
  .web-piece-icon{width:23px;height:23px;}
  .web-piece-icon .icon{width:13px;height:13px;}
  .web-assembly-piece strong{font-size:9px;}
  .web-assembly-piece small{display:none;}
  .piece-code{top:10%;left:1%;}.piece-shield{top:10%;right:1%;}
  .piece-server{bottom:12%;left:1%;}.piece-gear{bottom:12%;right:1%;}
  .web-showcase--assembly .web-showcase-label{font-size:8px;padding:7px 9px;border-radius:8px;}
  .web-showcase--assembly .web-showcase-label span{font-size:6px;}
  .web-showcase--assembly .web-label-one{bottom:7px;left:8px;}
  .web-showcase--assembly .web-label-two{top:42px;right:8px;}
  .allies-v40{padding:78px 0 38px;}
  .allies-v40-intro{margin-bottom:30px;}
  .allies-v40-intro h2{font-size:clamp(34px,9.3vw,47px);}
  .allies-v40-stage{padding:14px 12px;border-radius:24px;}
  .allies-v40-card{padding:15px 2px 19px;}
  .allies-v40-art-plate{min-height:150px;padding:14px;}
  .allies-v40-art-plate img{max-height:135px;}
  .allies-v40-tag{font-size:9px;}
  .allies-v40-copy h3{font-size:35px;}
  .allies-v40-copy p{font-size:15px;line-height:1.6;}
  .allies-v40-counter-note,.allies-v40-bottom>span{display:none;}
  .allies-v40-arrow{height:38px;width:38px;}
  .allies-v40-bottom{justify-content:center;}
}
@media(prefers-reduced-motion:reduce){
  .web-showcase--assembly .web-assembly-piece,
  .web-showcase--assembly .web-core-shell,
  .web-showcase--assembly .web-core-card,
  .web-showcase--assembly .web-core-aura{animation:none !important;}
  .allies-v40-card{transition:none !important;}
}
/* Mantener el contraste de las piezas: la película oscura de la escena anterior ya no se usa. */
.web-showcase--assembly::after{display:none;}
.web-showcase--assembly .web-assembly-piece{
  background:linear-gradient(140deg,rgba(15,53,126,.97),rgba(27,22,91,.97));
  border-color:rgba(95,204,255,.85);
  box-shadow:0 18px 38px rgba(0,10,40,.54),0 0 22px rgba(56,145,255,.29);
}
.web-showcase--assembly .web-core-shell{
  background:linear-gradient(155deg,rgba(23,74,158,.98),rgba(19,23,86,.98));
  box-shadow:0 20px 65px rgba(0,96,255,.42),0 0 42px rgba(120,79,240,.26);
}
.web-showcase--assembly .web-core-stage{
  background:linear-gradient(145deg,rgba(31,70,148,.94),rgba(17,28,84,.96));
}
.web-showcase--assembly .web-assembly-piece small{color:#cce6ff;}
