/**
 * OrbiSky v2 — Sunspots Showblock
 * Sonnenflecken & Protuberanzen (6-Phasen-Block)
 */

/* ============================================================
   CONTAINER
   ============================================================ */

#sunspots {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: #000;
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
}

/* Dual-Image System (current + next) für Crossfade */
#sunspots .sunspots-img {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    object-fit: contain;
    opacity: 0;
    transition: opacity 1.5s ease;
}

#sunspots .sunspots-img.visible {
    opacity: 1;
}

/* ============================================================
   OVERLAY — Struktur wie .sun-overlay in sun-overlay.css
   ============================================================ */

.sunspots-overlay {
    position: absolute;
    font-size: 2.4em;
    font-weight: var(--font-weight-semibold);
    color: var(--color-text);
    text-shadow: var(--shadow-text);
    max-width: 55%;
    padding: 0;
    box-sizing: border-box;
    z-index: calc(var(--z-overlay) + 10);
    line-height: 1.3;
    pointer-events: none;
    opacity: 0;
    transition: opacity 1s ease-in-out;
}

.sunspots-overlay.visible {
    opacity: 1;
}

.sunspots-overlay.hidden {
    opacity: 0;
    pointer-events: none;
}

/* Positionsklassen — 4 Ecken wie sun-overlay */
.sunspots-overlay.pos-bottom-left {
    bottom: var(--margin-screen-v);
    left: var(--margin-screen);
    right: auto;
    top: auto;
    text-align: left;
}

.sunspots-overlay.pos-bottom-right {
    bottom: var(--margin-screen-v);
    right: var(--margin-screen);
    left: auto;
    top: auto;
    text-align: right;
}

.sunspots-overlay.pos-top-left {
    top: var(--margin-screen-v);
    left: var(--margin-screen);
    right: auto;
    bottom: auto;
    text-align: left;
}

.sunspots-overlay.pos-top-right {
    /* Unter Badges (NOAA + Source) positionieren */
    top: calc(var(--margin-screen-v) + 3.5em);
    right: var(--margin-screen);
    left: auto;
    bottom: auto;
    text-align: right;
}

/* Titel / Hauptzeile */
.sunspots-title {
    font-size: 1.1em;
    font-weight: var(--font-weight-bold);
    color: #FFD700;
    line-height: 1.25;
    margin-bottom: 0.2em;
}

/* Fakt / Caption-Zeile (cycling) */
.sunspots-caption {
    font-size: 0.85em;
    font-weight: var(--font-weight-normal);
    color: var(--color-text-secondary);
    line-height: 1.4;
    min-height: 2.4em; /* Platz für 2 Zeilen ohne Layout-Sprung */
    opacity: 1;
    transition: opacity 0.5s ease;
}

.sunspots-caption.fade-out {
    opacity: 0;
}

/* ============================================================
   PHASE 2: AR-STECKBRIEF (kompakt, einzeilig)
   ============================================================ */

.sunspots-ar-badge {
    display: inline-block;
    background: rgba(255, 215, 0, 0.15);
    border: 1px solid rgba(255, 215, 0, 0.4);
    border-radius: 3px;
    padding: 0.1em 0.4em;
    font-size: 0.8em;
    font-weight: var(--font-weight-bold);
    color: #FFD700;
    letter-spacing: 0.06em;
    margin-right: 0.5em;
    vertical-align: middle;
}

.sunspots-ar-info {
    font-size: 0.82em;
    color: var(--color-text-secondary);
    vertical-align: middle;
}

/* ============================================================
   FADE-IN-ANIMATION beim Phasenwechsel
   ============================================================ */

@keyframes sunspots-phase-enter {
    from { opacity: 0; }
    to   { opacity: 1; }
}

.sunspots-overlay.phase-enter {
    animation: sunspots-phase-enter 0.8s ease forwards;
}

/* ============================================================
   SONNE LIVE BADGE (oben rechts, identisch zum sun-live Showblock)
   ============================================================ */

#sunspots-live-badge {
    position: absolute;
    top: var(--margin-screen-v);
    right: var(--margin-screen);
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 0;
    border-radius: var(--radius-sm);
    overflow: hidden;
    pointer-events: none;
    z-index: calc(var(--z-overlay) + 10);
    box-shadow: 0 0 15px rgba(255, 215, 0, 0.6);
    animation: sun-badge-pulse 1.5s ease-in-out infinite;
    will-change: transform, opacity;
}

#sunspots-live-badge .badge-main {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.4em;
    padding: 0.35em 0.9em;
    background: linear-gradient(135deg, #FFD700, #FF8C00);
    color: #000;
    font-size: var(--font-size-normal);
    font-weight: var(--font-weight-bold);
    letter-spacing: 0.08em;
}

#sunspots-live-badge .badge-brand {
    font-size: 0.85em;
    font-weight: var(--font-weight-bold);
    padding: 0.25em 0.9em;
    background: rgba(255, 215, 0, 0.2);
    text-align: center;
    text-shadow: 0 1px 4px rgba(0, 0, 0, 0.5);
    letter-spacing: 0.05em;
}

#sunspots-live-badge .badge-brand .text-white {
    color: #ffffff;
}

#sunspots-live-badge .badge-brand .accent {
    color: #FFD700;
}

#sunspots-live-badge .sun-dot {
    display: inline-block;
    width: 0.6em;
    height: 0.6em;
    background: #000;
    border-radius: 50%;
    animation: sun-dot-pulse 1s infinite;
    will-change: transform, opacity;
}

@keyframes sun-dot-pulse {
    0%, 100% { opacity: 1; transform: scale(1); }
    50% { opacity: 0.4; transform: scale(1.2); }
}

/* ============================================================
   PHASE 3: LIMBUS-ZOOM (Pan um den Sonnenrand)
   Protuberanzen sitzen geometrisch immer am Limbus (~88% Radius).
   Werte für 16:9-Display, scale(2.5): ±13% = Limbus bei ~Bildmitte.
   Bei anderen Seitenverhältnissen ggf. anpassen.
   ============================================================ */

@keyframes sunspots-limb-pan {
    /* Vollscheibe → oben */
    0%   { transform: scale(1)   translate(0,     0);     }
    8%   { transform: scale(2.5) translate(0,     13%);   }
    /* Oben halten */
    26%  { transform: scale(2.5) translate(0,     13%);   }
    /* → rechts */
    34%  { transform: scale(2.5) translate(-13%,  0);     }
    /* Rechts halten */
    50%  { transform: scale(2.5) translate(-13%,  0);     }
    /* → unten */
    58%  { transform: scale(2.5) translate(0,    -13%);   }
    /* Unten halten */
    74%  { transform: scale(2.5) translate(0,    -13%);   }
    /* → links */
    82%  { transform: scale(2.5) translate(13%,   0);     }
    /* Links halten bis Ende */
    100% { transform: scale(2.5) translate(13%,   0);     }
}

/* Klasse wird von JS für Phase 3 gesetzt */
#sunspots.limb-zoom #sunspots-img-current,
#sunspots.limb-zoom #sunspots-img-next {
    animation: sunspots-limb-pan 25s ease-in-out forwards;
    transform-origin: center center;
}

/* ============================================================
   QUELLEN-BADGE (ersetzt/ergänzt NOAA-Badge je nach Phase)
   ============================================================ */

#sunspots-source-badge {
    position: absolute;
    top: calc(var(--margin-screen-v) + 4.5em); /* unterhalb #sunspots-live-badge */
    right: var(--margin-screen);
    padding: 0.3em 0.7em;
    background: rgba(20, 40, 80, 0.8);
    color: #fff;
    font-size: 0.8em;
    font-weight: var(--font-weight-bold);
    letter-spacing: 0.1em;
    text-transform: uppercase;
    border-radius: 3px;
    opacity: 0;
    transition: opacity 0.8s ease;
    z-index: calc(var(--z-overlay) + 10);
    pointer-events: none;
}

#sunspots-source-badge.visible {
    opacity: 0.85;
}
