/* ASTILLAS DEL VACÍO · v33 · cuatro escenas SVG animadas SOLO en el medallón central.
   Conserva la geometría del v32 y el movimiento/gesto del carrusel.
   El CSS manipula elementos de SVG inline; sin vídeo, sin audio nuevo. */
.portal-body .astillas-orbit .orbit-illustration{
  display:block;width:100%;height:100%;border-radius:50%;
  overflow:hidden;pointer-events:none;user-select:none;
  filter:contrast(1.12) saturate(1.14) brightness(1.16);
  transition:filter .34s ease;
}
.portal-body .astillas-orbit .orbit-item.is-center .orbit-illustration{
  filter:contrast(1.1) saturate(1.16) brightness(1.22);
}
.portal-body .astillas-orbit .orbit-item:hover .orbit-illustration{
  filter:contrast(1.13) saturate(1.2) brightness(1.29);
}
.portal-body .astillas-orbit .orbit-item,
.portal-body .astillas-orbit .orbit-illustration {touch-action:none!important;-webkit-user-select:none;user-select:none;}
.portal-body .astillas-orbit .orbit-item,
.portal-body .astillas-orbit .orbit-item .orbit-illustration {cursor:grab!important;}
.portal-body .astillas-orbit.is-grabbing .orbit-item,
.portal-body .astillas-orbit.is-grabbing .orbit-item .orbit-illustration {cursor:grabbing!important;}
/* Animate only active illustration. CSS animations begin fresh upon becoming active. */
.astillas-orbit .orbit-illustration .slow-spin,
.astillas-orbit .orbit-illustration .reverse-spin{transform-box:view-box;transform-origin:256px 256px;}
.astillas-orbit .orbit-item.is-playing .halo-pulse,
.astillas-orbit .orbit-item.is-playing .signal {animation:svg33-breathe 5.4s ease-in-out infinite;}
.astillas-orbit .orbit-item.is-playing .sweep {animation:svg33-sweep 7s ease-in-out infinite;}
.astillas-orbit .orbit-item.is-playing .flicker{animation:svg33-flicker 4.6s ease-in-out infinite;}
.astillas-orbit .orbit-item.is-playing[data-orbit="libros"] .floating{
  animation:svg33-book-float 6s ease-in-out infinite;
}
.astillas-orbit [data-orbit="libros"] .book-page-motion{
  transform-box:fill-box;transform-origin:left center;
  opacity:0;
}
.astillas-orbit .is-playing[data-orbit="libros"] .book-page-motion{
  animation:svg33-book-open 7.8s ease-in-out infinite;
}
.astillas-orbit [data-orbit="libros"] .book-light-scan{opacity:0;}
.astillas-orbit .is-playing[data-orbit="libros"] .book-light-scan{
  animation:svg33-page-scan 6.2s ease-in-out infinite;
}
.astillas-orbit .is-playing[data-orbit="libros"] .book-cover-flare{
  animation:svg33-glint 6.2s ease-in-out infinite;
}
.astillas-orbit .is-playing[data-orbit="libros"] .book-spark{
  opacity:0;animation:svg33-spark 6.8s ease-in-out infinite;
  animation-delay:var(--spark-delay,0s);
}
.astillas-orbit .is-playing[data-orbit="universo"] .slow-spin{
  animation:svg33-rotate 18s linear infinite;
}
.astillas-orbit .is-playing[data-orbit="universo"] .reverse-spin{
  animation:svg33-rotate-reverse 14s linear infinite;
}
.astillas-orbit [data-orbit="universo"] .portal-energy-motion{opacity:.4;}
.astillas-orbit .is-playing[data-orbit="universo"] .portal-energy-motion{
  animation:svg33-energy 5.6s ease-in-out infinite;
}
.astillas-orbit .is-playing[data-orbit="universo"] .portal-core-motion{
  transform-box:fill-box;transform-origin:center;
  animation:svg33-core 4.6s ease-in-out infinite;
}
.astillas-orbit .is-playing[data-orbit="universo"] .portal-base-flare{
  animation:svg33-spark 6s ease-in-out infinite;
}
.astillas-orbit .is-playing[data-orbit="redes"] .network-packet{
  animation:svg33-transfer 3.6s linear infinite;
  animation-delay:var(--packet-delay,0s);
}
.astillas-orbit [data-orbit="redes"] .network-packet{stroke-dashoffset:0;opacity:0;}
.astillas-orbit .is-playing[data-orbit="redes"] .network-beacon{
  animation:svg33-beacon 3.6s ease-in-out infinite;
  animation-delay:var(--beacon-delay,0s);
}
.astillas-orbit [data-orbit="redes"] .network-beacon{opacity:.15;}
.astillas-orbit .is-playing[data-orbit="redes"] .network-center-wave{
  transform-box:fill-box;transform-origin:center;
  animation:svg33-network-ring 4.2s ease-out infinite;
}
.astillas-orbit [data-orbit="foro"] .forum-message{opacity:.78;}
.astillas-orbit .is-playing[data-orbit="foro"] .forum-message-1{animation:svg33-message-a 7.2s ease-in-out infinite;}
.astillas-orbit .is-playing[data-orbit="foro"] .forum-message-2{animation:svg33-message-b 7.2s ease-in-out infinite;}
.astillas-orbit .is-playing[data-orbit="foro"] .forum-message-3{animation:svg33-message-c 7.2s ease-in-out infinite;}
.astillas-orbit .is-playing[data-orbit="foro"] .forum-messages{animation:svg33-forum-float 7.2s ease-in-out infinite;}
.astillas-orbit [data-orbit="foro"] .forum-display-scan{opacity:0;}
.astillas-orbit .is-playing[data-orbit="foro"] .forum-display-scan{animation:svg33-terminal-scan 6s linear infinite;}
.astillas-orbit .is-playing[data-orbit="foro"] .forum-cursor{animation:svg33-cursor 1.2s steps(1,end) infinite;}
.astillas-orbit .is-playing[data-orbit="foro"] .forum-notification{animation:svg33-spark 7.2s ease-in-out infinite;animation-delay:1s;}
@keyframes svg33-breathe{0%,100%{opacity:.6}50%{opacity:1}}
@keyframes svg33-sweep{0%,100%{opacity:.22}30%{opacity:.54}65%{opacity:.35}}
@keyframes svg33-flicker{0%,100%{opacity:.77}21%{opacity:1}38%{opacity:.62}49%{opacity:.96}72%{opacity:.67}}
@keyframes svg33-book-float{0%,100%{transform:translateY(0)}50%{transform:translateY(-7px)}}
@keyframes svg33-book-open{0%,9%,76%,100%{opacity:0;transform:scaleX(.12)}20%,43%{opacity:.8;transform:scaleX(1)}55%{opacity:.34;transform:scaleX(.45)}}
@keyframes svg33-page-scan{0%,12%,85%,100%{opacity:0;transform:translateY(0)}18%{opacity:.7}55%{opacity:.8;transform:translateY(115px)}66%{opacity:0;transform:translateY(154px)}}
@keyframes svg33-glint{0%,10%,58%,100%{opacity:0}21%{opacity:.7}28%{opacity:.3}38%{opacity:.55}}
@keyframes svg33-spark{0%,12%,57%,100%{opacity:0;transform:scale(.5)}24%,38%{opacity:.9;transform:scale(1)}}
@keyframes svg33-rotate{to{transform:rotate(360deg)}}
@keyframes svg33-rotate-reverse{to{transform:rotate(-360deg)}}
@keyframes svg33-energy{0%,100%{opacity:.24}30%,45%{opacity:.88}69%{opacity:.55}}
@keyframes svg33-core{0%,100%{transform:scale(.75);opacity:.3}48%{transform:scale(1.09);opacity:.9}}
@keyframes svg33-transfer{0%{opacity:0;stroke-dashoffset:270}8%{opacity:.94}79%{opacity:.9}100%{opacity:0;stroke-dashoffset:0}}
@keyframes svg33-beacon{0%,100%{opacity:.18}18%,31%{opacity:.96}45%{opacity:.28}}
@keyframes svg33-network-ring{0%{opacity:.85;transform:scale(.6)}75%,100%{opacity:0;transform:scale(1.32)}}
@keyframes svg33-message-a{0%,8%{opacity:.2;transform:translateX(-12px)}16%,72%{opacity:1;transform:translateX(0)}95%,100%{opacity:.15}}
@keyframes svg33-message-b{0%,28%{opacity:.12;transform:translateX(12px)}39%,80%{opacity:1;transform:translateX(0)}97%,100%{opacity:.2}}
@keyframes svg33-message-c{0%,47%{opacity:.12;transform:translateX(-12px)}60%,89%{opacity:1;transform:translateX(0)}99%,100%{opacity:.16}}
@keyframes svg33-forum-float{0%,100%{transform:translateY(0)}50%{transform:translateY(-3px)}}
@keyframes svg33-terminal-scan{0%,8%{opacity:0;transform:translateY(0)}22%{opacity:.65}75%{opacity:.4;transform:translateY(132px)}89%,100%{opacity:0;transform:translateY(150px)}}
@keyframes svg33-cursor{0%,49%{opacity:1}50%,100%{opacity:0}}
@media(prefers-reduced-motion:reduce){
  .astillas-orbit .orbit-illustration *,
  .astillas-orbit .orbit-item.is-center .orbit-image{animation:none!important;transition:none!important;}
}
