/* =============================================================
   aurora.css — Fondo dinámico + bloques multimedia
   Compartido por index.html y wiki.html.

   El fondo son cuatro manchas de luz desenfocadas que derivan muy
   despacio. Solo se animan con transform (va por GPU, no repinta
   layout) y se apagan del todo si el sistema pide menos movimiento.
   ============================================================= */

/* ---------- Capa de fondo ---------- */
.aurora {
    position: fixed;
    inset: 0;
    z-index: 0;
    overflow: hidden;
    pointer-events: none;
    /* Suma luz sobre el fondo en vez de taparlo: mantiene la identidad oscura. */
    mix-blend-mode: screen;
}

.aurora__blob {
    position: absolute;
    border-radius: 50%;
    filter: blur(90px);
    will-change: transform;
    opacity: .55;
}

/* Ámbar: el dorado del sitio */
.aurora__blob--1 {
    width: 46vw; height: 46vw;
    min-width: 380px; min-height: 380px;
    top: -8%; left: -6%;
    background: radial-gradient(circle at 35% 35%, rgba(199, 154, 69, .55), rgba(199, 154, 69, 0) 68%);
    animation: aurora-drift-1 34s ease-in-out infinite alternate;
}

/* Brasa: rojo apagado, da profundidad */
.aurora__blob--2 {
    width: 40vw; height: 40vw;
    min-width: 320px; min-height: 320px;
    top: 18%; right: -10%;
    background: radial-gradient(circle at 60% 40%, rgba(155, 55, 30, .42), rgba(155, 55, 30, 0) 70%);
    animation: aurora-drift-2 41s ease-in-out infinite alternate;
}

/* Violeta: el contraste frío que hace que lo dorado destaque */
.aurora__blob--3 {
    width: 52vw; height: 52vw;
    min-width: 400px; min-height: 400px;
    bottom: -14%; left: 12%;
    background: radial-gradient(circle at 45% 55%, rgba(86, 44, 138, .40), rgba(86, 44, 138, 0) 70%);
    animation: aurora-drift-3 47s ease-in-out infinite alternate;
}

/* Acero: pequeño y más rápido, evita que el conjunto parezca estático */
.aurora__blob--4 {
    width: 28vw; height: 28vw;
    min-width: 240px; min-height: 240px;
    top: 46%; left: 40%;
    background: radial-gradient(circle at 50% 50%, rgba(58, 110, 165, .34), rgba(58, 110, 165, 0) 72%);
    animation: aurora-drift-4 29s ease-in-out infinite alternate;
}

@keyframes aurora-drift-1 {
    0%   { transform: translate3d(0, 0, 0) scale(1); }
    50%  { transform: translate3d(9vw, 7vh, 0) scale(1.14); }
    100% { transform: translate3d(3vw, 16vh, 0) scale(.94); }
}
@keyframes aurora-drift-2 {
    0%   { transform: translate3d(0, 0, 0) scale(1.05); }
    50%  { transform: translate3d(-11vw, 12vh, 0) scale(.9); }
    100% { transform: translate3d(-4vw, 24vh, 0) scale(1.16); }
}
@keyframes aurora-drift-3 {
    0%   { transform: translate3d(0, 0, 0) scale(.95); }
    50%  { transform: translate3d(13vw, -9vh, 0) scale(1.12); }
    100% { transform: translate3d(-6vw, -18vh, 0) scale(1); }
}
@keyframes aurora-drift-4 {
    0%   { transform: translate3d(0, 0, 0) scale(1); }
    50%  { transform: translate3d(-14vw, -11vh, 0) scale(1.25); }
    100% { transform: translate3d(10vw, 8vh, 0) scale(.88); }
}

/* Accesibilidad: sin movimiento, el fondo se queda quieto y más tenue. */
@media (prefers-reduced-motion: reduce) {
    .aurora__blob { animation: none; opacity: .35; }
}

/* =============================================================
   Bloques multimedia
   Un <figure class="wiki-media"> con un <img> apuntando al fichero
   definitivo. Si la imagen todavía no existe, el onerror marca la
   figura como vacía y se ve el hueco con el nombre exacto del fichero
   que hay que dejar caer ahí. Añadir el fichero basta: cero código.

   (El nombre de clase viene de la wiki, que fue donde se estrenó;
   la landing usa el mismo componente para no duplicar estilos.)
   ============================================================= */
.wiki-media {
    margin: 0 0 22px;
    border-radius: 8px;
    overflow: hidden;
    border: 1px solid rgba(116, 109, 85, .45);
    background: rgba(10, 8, 5, .5);
}
.wiki-media img { display: block; width: 100%; height: auto; }
.wiki-media figcaption {
    padding: 10px 14px;
    color: #8d8677;
    font-size: 12.5px;
    line-height: 1.5;
    border-top: 1px solid rgba(116, 109, 85, .25);
}

/* Estado vacío: hueco con instrucciones */
.wiki-media.is-empty { border-style: dashed; }
.wiki-media.is-empty .wiki-media-slot {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 10px;
    aspect-ratio: 16 / 9;
    padding: 20px;
    text-align: center;
    background: repeating-linear-gradient(45deg,
        rgba(116, 109, 85, .05) 0 12px,
        rgba(116, 109, 85, .09) 12px 24px);
}
.wiki-media-slot { display: none; }
.wiki-media.is-empty .wiki-media-slot i { font-size: 26px; color: rgba(199, 154, 69, .6); }
.wiki-media.is-empty .wiki-media-slot .hint { color: #7d7768; font-size: 12px; letter-spacing: .5px; }
.wiki-media.is-empty .wiki-media-slot code {
    color: #c79a45;
    font-size: 12px;
    background: rgba(0, 0, 0, .4);
    border: 1px solid rgba(116, 109, 85, .4);
    border-radius: 4px;
    padding: 4px 9px;
    font-family: monospace;
    word-break: break-all;
}

@media (max-width: 760px) {
    .aurora__blob { filter: blur(60px); opacity: .45; }
    .aurora__blob--4 { display: none; }
}
