/* Carrusel orbital minimalista: solo la escena activa ilumina la portada. */
.portal-navigation{width:min(100%,620px);margin-top:14px;position:relative;z-index:3}
.astillas-orbit{--near:150px;--far:260px;position:relative;width:100%;height:181px;outline:none;perspective:900px;isolation:isolate;touch-action:pan-y;user-select:none;-webkit-user-select:none}
.astillas-orbit:focus-visible{outline:1px solid rgba(226,204,255,.65);outline-offset:2px;border-radius:8px}
.orbit-item,.orbit-echo{--x:0px;--y:0px;--scale:1;--opacity:1;--bright:1;position:absolute;left:50%;top:7px;width:145px;height:172px;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;text-decoration:none;color:#faf6ff;opacity:var(--opacity);filter:brightness(var(--bright));transform:translate3d(calc(-50% + var(--x)),var(--y),0) scale(var(--scale));transform-origin:50% 40%;transition:transform .62s cubic-bezier(.2,.78,.21,1),opacity .55s ease,filter .55s ease;will-change:transform,opacity;cursor:pointer;outline:none}
.orbit-image{position:relative;flex:none;width:133px;height:133px;border-radius:50%;border:1px solid rgba(215,186,255,.3);box-shadow:inset 0 0 9px rgba(189,156,255,.12),0 0 11px rgba(70,40,135,.13);transition:box-shadow .5s,border-color .5s;overflow:visible}
.orbit-image::before{content:"";position:absolute;inset:-4px;border-radius:50%;border:1px solid rgba(182,143,255,.33);opacity:.7;transition:opacity .5s,box-shadow .5s}
.orbit-image img{display:block;width:100%;height:100%;border-radius:50%;object-fit:cover;pointer-events:none}
.orbit-label{display:grid;place-items:center;gap:2px;margin-top:6px;text-align:center;min-width:230px;opacity:0;transform:translateY(-5px);pointer-events:none;transition:opacity .3s,transform .4s}
.orbit-label strong{font:750 12px/1.3 Arial,Helvetica,sans-serif;letter-spacing:.17em;white-space:nowrap;text-shadow:0 0 10px #000,0 0 22px #000}
.orbit-item.is-center{--x:0px;--y:0px;--scale:1;--opacity:1;--bright:1.17;z-index:5;cursor:pointer}
.orbit-item.is-center .orbit-image{border-color:rgba(238,214,255,.86);box-shadow:0 0 17px rgba(192,137,255,.59),0 0 32px rgba(95,55,177,.32),inset 0 0 22px rgba(204,168,255,.22)}
.orbit-item.is-center .orbit-image::before{box-shadow:0 0 14px rgba(180,135,255,.43);opacity:1}
.orbit-item.is-center .orbit-label{opacity:1;transform:translateY(0)}
.orbit-item.is-left{--x:calc(-1 * var(--near));--y:16px;--scale:.71;--opacity:.81;--bright:.78;z-index:3}
.orbit-item.is-right{--x:var(--near);--y:16px;--scale:.71;--opacity:.81;--bright:.78;z-index:3}
.orbit-item.is-far-right{--x:var(--far);--y:30px;--scale:.5;--opacity:.47;--bright:.67;z-index:2}
.orbit-echo.is-far-left{--x:calc(-1 * var(--far));--y:30px;--scale:.5;--opacity:.47;--bright:.67;z-index:2;pointer-events:none;cursor:default}
.orbit-item.is-left:hover,.orbit-item.is-right:hover,.orbit-item.is-far-right:hover{--opacity:.96;--bright:.92}
.orbit-item:focus-visible .orbit-image{outline:2px solid #f2dcff;outline-offset:5px}
@media(max-width:1100px){.portal-navigation{max-width:580px;margin-top:12px}.astillas-orbit{--near:136px;--far:225px;height:173px}.orbit-item{top:4px}}
@media(max-width:780px){.portal-navigation{width:100%;max-width:520px;margin-top:20px}.astillas-orbit{--near:clamp(88px,25vw,132px);--far:clamp(154px,42vw,212px);height:165px}.orbit-item{top:4px}}
@media(max-width:520px){.portal-navigation{margin-top:18px}.astillas-orbit{height:151px;--near:clamp(82px,28vw,117px);--far:clamp(145px,47vw,193px)}.orbit-item{top:1px}.orbit-item.is-center{--scale:.87}.orbit-item.is-left,.orbit-item.is-right{--scale:.61}.orbit-item.is-far-right,.orbit-echo.is-far-left{--scale:.44}.orbit-label{margin-top:3px}}
@media(min-width:781px) and (max-height:950px){.portal-content{min-height:620px;padding-top:1.5vh;padding-bottom:3vh}.portal-kicker{margin-bottom:15px}.portal-title{font-size:clamp(77px,8.2vw,141px)}.portal-title-rule{margin:21px 0 17px}.portal-quote{margin-bottom:11px}.portal-navigation{margin-top:12px}.astillas-orbit{height:172px}}
@media(min-width:781px) and (max-height:740px){.portal-content{min-height:575px;padding-top:0;padding-bottom:14px}.portal-kicker{margin-bottom:9px}.portal-title{font-size:clamp(68px,7.2vw,114px)}.portal-title-rule{margin:14px 0 11px}.portal-quote{font-size:clamp(21px,2vw,31px);margin-bottom:8px}.portal-navigation{margin-top:7px}.astillas-orbit{height:147px}.orbit-item{top:-7px}.orbit-item.is-center{--scale:.85}.orbit-item.is-left,.orbit-item.is-right{--scale:.59}.orbit-item.is-far-right,.orbit-echo.is-far-left{--scale:.42}}
@media(prefers-reduced-motion:reduce){.orbit-item,.orbit-echo,.orbit-image,.orbit-image::before,.orbit-label{transition:none!important}}

/* Destinos que aún no están publicados. No se inventan tiendas ni foros funcionales. */
.destination-section{padding:80px 0;background:linear-gradient(135deg,#0f0c1d,#161126 60%,#0c0c19);border-block:1px solid rgba(194,171,255,.14)}
.destination-panel{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(0,.55fr);gap:35px;align-items:center;padding:34px clamp(25px,4vw,60px);border:1px solid rgba(177,147,236,.28);background:radial-gradient(circle at 80% 50%,rgba(136,91,204,.14),transparent 50%),rgba(11,9,27,.47)}
.destination-section .destination-overline{font-size:10px;letter-spacing:.22em;color:#b9a2ea;font-weight:800}.destination-section h2{font:400 clamp(37px,4.2vw,64px)/1.05 Georgia,serif;margin:16px 0;color:#f4efff}.destination-section h2 em{color:#bca6eb}.destination-section p{max-width:610px;line-height:1.8;color:#c9bfd8}.destination-side{display:grid;place-items:center;text-align:center;gap:12px}.destination-side img{max-height:235px;width:auto;filter:drop-shadow(0 10px 20px #0008)}.destination-status{padding:12px 16px;border:1px solid rgba(194,170,236,.45);font-size:10px;letter-spacing:.16em;color:#d7c7f7}.destination-forum{background:linear-gradient(115deg,#100c1d,#171326 70%,#100d1d)}
.world-characters{margin-top:34px;border-top:1px solid rgba(199,166,244,.23);padding-top:27px}.world-characters-label{font-size:10px;letter-spacing:.18em;color:#c7b1ec;font-weight:700}.world-characters h3{font:400 clamp(25px,2.4vw,38px) Georgia,serif;margin:10px 0 18px;color:#eee6fa}.character-names{display:flex;flex-wrap:wrap;gap:9px}.character-names span{font-size:10px;letter-spacing:.09em;color:#e7dbff;padding:10px 14px;border:1px solid rgba(193,173,229,.33);background:rgba(108,82,160,.1)}
@media(max-width:780px){.destination-section{padding:55px 0}.destination-panel{grid-template-columns:1fr;gap:15px}.destination-side img{max-height:195px}}


/* Selector en la esquina inferior derecha. No altera el fondo ni las capas de la escena. */
@media (min-width:781px){
 .portal-content{position:relative;padding-bottom:205px}
 .portal-navigation{
   position:absolute;
   left:auto;
   right:clamp(36px,4.2vw,92px);
   bottom:17px;
   transform:none;
   width:min(540px,44vw);
   max-width:none;
   margin:0;
 }
}
@media (min-width:781px) and (max-width:1180px){
 .portal-navigation{right:clamp(24px,3.5vw,42px);width:min(510px,52vw)}
 .astillas-orbit{--near:125px;--far:205px}
}
@media (min-width:781px) and (max-height:740px){
 .portal-content{padding-bottom:178px}
 .portal-navigation{bottom:6px}
}
@media(max-width:780px){
 /* Pantallas estrechas: mantener el conjunto dentro del área visible. */
 .portal-navigation{margin-left:calc((100vw - min(520px, 100vw - 48px))/2 - 24px)}
}

/* Entrada de la navegación sin transformar su posición. */
.orbit-enter{animation:orbitEnter 1s ease 1.1s both}
@keyframes orbitEnter{from{opacity:0}to{opacity:1}}

/* Mayor legibilidad y presencia del carrusel sin hacerlo invasivo. */
.astillas-orbit::before{content:"";position:absolute;left:50%;bottom:82px;transform:translateX(-50%);width:min(88%,560px);height:74px;border-radius:50%;border:1px solid rgba(180,144,255,.18);box-shadow:0 0 32px rgba(145,102,239,.11), inset 0 0 20px rgba(160,120,245,.06);opacity:.95;pointer-events:none;}
.orbit-item,.orbit-echo{top:0px}
.orbit-image{border-color:rgba(219,197,255,.42);box-shadow:inset 0 0 11px rgba(189,156,255,.2),0 0 18px rgba(87,55,163,.24),0 10px 26px rgba(0,0,0,.28);}
.orbit-image::before{opacity:.9;border-color:rgba(193,155,255,.42);}
.orbit-image::after{content:"";position:absolute;inset:-10px;border-radius:50%;background:radial-gradient(circle, rgba(166,122,255,.14), rgba(166,122,255,.04) 48%, rgba(166,122,255,0) 70%);z-index:-1;pointer-events:none;}
.orbit-item.is-center{--bright:1.28;}
.orbit-item.is-center .orbit-image{border-color:rgba(244,229,255,.95);box-shadow:0 0 26px rgba(208,151,255,.75),0 0 52px rgba(119,67,210,.42),inset 0 0 26px rgba(218,185,255,.28);animation:orbitPulse 2.8s ease-in-out infinite;}
.orbit-item.is-center .orbit-image::before{box-shadow:0 0 22px rgba(196,150,255,.55);}
.orbit-item.is-center .orbit-image::after{background:radial-gradient(circle, rgba(183,132,255,.30), rgba(183,132,255,.10) 44%, rgba(183,132,255,0) 70%);}
.orbit-item.is-left,.orbit-item.is-right{--opacity:.92;--bright:.91;}
.orbit-item.is-far-right,.orbit-echo.is-far-left{--opacity:.70;--bright:.82;}
.orbit-item.is-left .orbit-image,.orbit-item.is-right .orbit-image{border-color:rgba(205,178,255,.54);box-shadow:0 0 15px rgba(118,81,201,.28),0 8px 22px rgba(0,0,0,.25),inset 0 0 12px rgba(195,164,255,.14);}
.orbit-item.is-far-right .orbit-image,.orbit-echo.is-far-left .orbit-image{border-color:rgba(191,162,240,.36);box-shadow:0 0 11px rgba(105,71,178,.18),0 6px 18px rgba(0,0,0,.20);}
.orbit-item:hover .orbit-image{transform:translateY(-2px);}
.orbit-label strong{font-size:13px;text-shadow:0 0 12px #000,0 0 26px #000,0 0 12px rgba(148,104,236,.30);}
@keyframes orbitPulse{0%,100%{transform:scale(1);box-shadow:0 0 22px rgba(208,151,255,.62),0 0 44px rgba(119,67,210,.38),inset 0 0 24px rgba(218,185,255,.24);}50%{transform:scale(1.02);box-shadow:0 0 30px rgba(221,170,255,.84),0 0 58px rgba(126,75,222,.50),inset 0 0 30px rgba(228,198,255,.33);}}
@media(max-width:780px){.astillas-orbit::before{bottom:70px;width:min(92%,430px);height:66px}.orbit-item.is-left,.orbit-item.is-right{--opacity:.96;--bright:.95}.orbit-item.is-far-right,.orbit-echo.is-far-left{--opacity:.78;--bright:.88}}
@media(prefers-reduced-motion:reduce){.orbit-item.is-center .orbit-image{animation:none!important}}

/* Solo el nombre del destino activo bajo la imagen, con aire suficiente. */
.orbit-label{margin-top:11px;min-width:225px;}
.orbit-label strong{font-size:12px;line-height:1.35;letter-spacing:.16em;}
.astillas-orbit{height:185px;}
@media (min-width:781px) and (max-height:740px){
 .astillas-orbit{height:155px;}
 .orbit-label{margin-top:12px;}
}
@media (max-width:780px){.orbit-label{margin-top:7px}.astillas-orbit{height:178px}}
@media (max-width:520px){.astillas-orbit{height:160px}.orbit-label{margin-top:9px}}

/* Tres círculos visibles, con el seleccionado más próximo al borde derecho.
   El cuarto destino sigue existiendo: aparece al girar. */
.orbit-item.is-hidden{
  --x:calc(var(--near) + var(--near));
  --y:28px;
  --scale:.42;
  --opacity:0;
  --bright:.65;
  z-index:1;
  pointer-events:none;
  visibility:hidden;
  transition:transform .62s cubic-bezier(.2,.78,.21,1),opacity .55s ease,filter .55s ease,visibility 0s linear .62s;
}
.orbit-item.is-hidden .orbit-label{display:none}
@media (min-width:781px){
  .portal-navigation{
    width:min(405px,42vw);
    right:clamp(22px,3vw,58px);
  }
  .astillas-orbit{--near:117px;--far:220px}
  .astillas-orbit::before{width:min(93%,390px)}
}
@media (min-width:781px) and (max-width:1180px){
  .portal-navigation{width:min(380px,44vw);right:clamp(18px,2.8vw,36px)}
  .astillas-orbit{--near:105px;--far:210px}
}
@media (max-width:780px){
  .astillas-orbit::before{width:min(85%,360px)}
}

/* CORRECCIÓN TABLET: el cuarto destino NUNCA se ve durante la transición.
   Antes permanecía visible 620 ms desplazándose hacia la derecha. */
.astillas-orbit .orbit-item.is-hidden{
  display:none!important;
  visibility:hidden!important;
  pointer-events:none!important;
  transition:none!important;
  animation:none!important;
}
/* El gesto pertenece al carrusel completo, también a los espacios y halos. */
.portal-body .portal-navigation,
.portal-body .astillas-orbit,
.portal-body .astillas-orbit .orbit-item,
.portal-body .astillas-orbit .orbit-image,
.portal-body .astillas-orbit .orbit-image img{
  touch-action:none!important;
  -webkit-user-select:none;
  user-select:none;
  -webkit-touch-callout:none;
  overscroll-behavior:none;
}

/* Interacción intencional: mano abierta al pasar y cerrada mientras se arrastra.
   Ningún movimiento del cursor en reposo provoca rotación. */
.portal-body .astillas-orbit,
.portal-body .astillas-orbit .orbit-item,
.portal-body .astillas-orbit .orbit-image,
.portal-body .astillas-orbit .orbit-image img {cursor:grab!important;}
.portal-body .astillas-orbit.is-grabbing,
.portal-body .astillas-orbit.is-grabbing .orbit-item,
.portal-body .astillas-orbit.is-grabbing .orbit-image,
.portal-body .astillas-orbit.is-grabbing .orbit-image img {cursor:grabbing!important;}
/* Al pasar el ratón se ilumina el icono, pero no se desplaza dos píxeles. */
.portal-body .astillas-orbit .orbit-item:hover .orbit-image {transform:none;}
