/* ====== CASTILLO 3D (three.js) + cielo de la tarjeta ====== */
.c3d-stage{position:absolute;inset:0;z-index:2;pointer-events:none}
.c3d-mount{position:absolute;inset:0;z-index:3}
.c3d-mount canvas{width:100%;height:100%;display:block}

/* capas de fondo (detrás del canvas) */
.c3d-sky{position:absolute;inset:0;z-index:1;background:radial-gradient(130% 80% at 50% 4%,rgba(198,206,255,.22),rgba(198,206,255,0) 58%),radial-gradient(90% 60% at 18% 78%,rgba(168,55,73,.28),rgba(168,55,73,0) 70%),radial-gradient(80% 55% at 84% 66%,rgba(94,86,190,.35),rgba(94,86,190,0) 72%)}
.c3d-halo{position:absolute;left:50%;top:46%;z-index:1;width:78%;aspect-ratio:1;transform:translate(-50%,-50%);border-radius:50%;background:radial-gradient(closest-side,rgba(255,236,205,.3),rgba(255,236,205,.09) 48%,rgba(255,236,205,0) 72%);animation:c3dBreathe 9s ease-in-out infinite}
@keyframes c3dBreathe{0%,100%{opacity:.75;transform:translate(-50%,-50%) scale(.97)}50%{opacity:1;transform:translate(-50%,-50%) scale(1.04)}}
.c3d-orbit{position:absolute;left:50%;top:74%;z-index:1;transform:translate(-50%,-50%);border:1px dashed rgba(255,255,255,.2);border-radius:50%;animation:c3dPulse 12s ease-in-out infinite}
.c3d-orbit.o1{width:88%;aspect-ratio:3.2}
.c3d-orbit.o2{width:110%;aspect-ratio:3.6;border-style:dotted;border-color:rgba(255,255,255,.14);animation-delay:-5s}
@keyframes c3dPulse{0%,100%{opacity:.45}50%{opacity:.9}}
.c3d-glow{position:absolute;left:50%;top:78%;z-index:1;width:62%;aspect-ratio:2.6;transform:translate(-50%,-50%);border-radius:50%;background:radial-gradient(closest-side,rgba(120,104,220,.55),rgba(120,104,220,0) 72%);filter:blur(8px)}

/* viñeta sobre el canvas para asentar el render en la tarjeta */
.c3d-vig{position:absolute;inset:0;z-index:4;box-shadow:inset 0 -70px 120px -40px rgba(28,16,58,.6),inset 0 60px 90px -50px rgba(28,16,58,.45)}
