/* ============================================================
   LAYOUT — estructura general, secciones, marquee lateral
   ============================================================ */

/* Cada section ocupa al menos una pantalla y respeta el espacio
   reservado para el marquee fijo de la derecha */
section {
    min-height: 100vh;
    position: relative;
    width: 100%;
    padding-right: var(--marquee-width);
    overflow: hidden;
}

/* Marquee lateral fijo: barra roja con texto vertical */
.marquee-container {
    position: fixed;
    top: 0;
    right: 0;
    height: 100vh;
    width: var(--marquee-width);
    background: var(--intense-red);
    z-index: 1000;
    display: flex;
    justify-content: center;
    overflow: hidden;
    border-left: 2px solid var(--noir);
}

.marquee-content {
    writing-mode: vertical-rl;
    text-orientation: mixed;
    white-space: nowrap;
    font-family: var(--font-display);
    font-size: 2rem;
    color: var(--noir);
    animation: scrollVertical 10s linear infinite;
}

/* Cursores: punto rojo + círculo verde con retardo. Se ocultan en móvil */
.cursor {
    width: 20px;
    height: 20px;
    background: var(--intense-red);
    border-radius: 50%;
    position: fixed;
    pointer-events: none;
    /* Por encima de la intro (99999) para que sea visible siempre */
    z-index: 100001;
    mix-blend-mode: difference;
    transition: transform 0.1s ease;
}

.cursor-follower {
    width: 50px;
    height: 50px;
    border: 1px solid var(--acid-green);
    border-radius: 50%;
    position: fixed;
    pointer-events: none;
    z-index: 100000;
    transition: transform 0.2s cubic-bezier(0.1, 1, 0.3, 1);
}

/* Pantalla de intro: fondo negro, ocupa todo, desaparece al terminar */
#intro {
    position: fixed;
    inset: 0;
    background: var(--noir);
    z-index: 99999;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: opacity 0.8s ease, visibility 0.8s ease;
}

#intro.done {
    animation: introOut 1s cubic-bezier(0.76, 0, 0.24, 1) forwards;
    pointer-events: none;
}

/* Botón "Skip" en la esquina inferior derecha durante la intro */
.skip-btn {
    position: fixed;
    bottom: 5vh;
    right: 5vw;
    font-family: var(--font-mono);
    font-size: 0.7rem;
    letter-spacing: 0.15em;
    text-transform: uppercase;
    color: var(--cream);
    background: transparent;
    border: 1px solid rgba(255, 255, 255, 0.3);
    padding: 10px 20px;
    cursor: pointer;
    z-index: 100000;
    transition: all 0.3s;
}

.skip-btn:hover {
    background: var(--acid-green);
    color: var(--noir);
    border-color: var(--acid-green);
}

.skip-btn.hidden {
    opacity: 0;
    pointer-events: none;
}
