/* ═══════════════════════════════════════════════════════════════
   POLISH · SCROLLBAR · ANIMATIONS · UI
   ═══════════════════════════════════════════════════════════════ */

/* ── Scrollbar: transparent track (no dark bar on the right) ── */
html {
    scrollbar-width: thin;
    scrollbar-color: rgba(0, 229, 255, 0.32) transparent;
}

html::-webkit-scrollbar {
    width: 6px;
    height: 6px;
}

html::-webkit-scrollbar-track {
    background: transparent;
}

html::-webkit-scrollbar-thumb {
    background: rgba(0, 229, 255, 0.28);
    border-radius: 3px;
}

html::-webkit-scrollbar-thumb:hover {
    background: rgba(0, 229, 255, 0.42);
}

html::-webkit-scrollbar-corner {
    background: transparent;
}

/* ── Scroll reveal variants ── */
body.area51-v2 .a51-scroll-in {
    opacity: 0;
    transform: translateY(36px) scale(0.98);
    filter: blur(3px);
    transition:
        opacity 0.75s var(--ease-out-expo),
        transform 0.75s var(--ease-out-expo),
        filter 0.75s var(--ease-out-expo);
}

body.area51-v2 .a51-scroll-in.a51-visible {
    opacity: 1;
    transform: none;
    filter: none;
}

body.area51-v2 .a51-scroll-in-left {
    opacity: 0;
    transform: translateX(-40px);
    transition: opacity 0.7s var(--ease-out-expo), transform 0.7s var(--ease-out-expo);
}

body.area51-v2 .a51-scroll-in-left.a51-visible {
    opacity: 1;
    transform: none;
}

body.area51-v2 .a51-scroll-in-right {
    opacity: 0;
    transform: translateX(40px);
    transition: opacity 0.7s var(--ease-out-expo), transform 0.7s var(--ease-out-expo);
}

body.area51-v2 .a51-scroll-in-right.a51-visible {
    opacity: 1;
    transform: none;
}

body.area51-v2 .a51-scroll-in[data-stagger="1"] { transition-delay: 0.05s; }
body.area51-v2 .a51-scroll-in[data-stagger="2"] { transition-delay: 0.1s; }
body.area51-v2 .a51-scroll-in[data-stagger="3"] { transition-delay: 0.15s; }
body.area51-v2 .a51-scroll-in[data-stagger="4"] { transition-delay: 0.2s; }
body.area51-v2 .a51-scroll-in[data-stagger="5"] { transition-delay: 0.25s; }

/* ── Nav logo pulse (glow only — no square box scale) ── */
body.area51-v2 .nav-logo-interactive.logo-shards-ready,
body.area51-v2 .home-boot-logo-interactive.logo-shards-ready {
    animation: none !important;
}

body.area51-v2 .nav-logo-interactive.logo-shards-ready .nav-logo-mark,
body.area51-v2 .nav-logo-interactive.nav-logo-shattered .nav-logo-mark,
body.area51-v2 .nav-logo-interactive.nav-logo-assembling .nav-logo-mark {
    opacity: 0 !important;
    visibility: hidden !important;
    animation: none !important;
}

@keyframes dl-nav-logo-pulse {
    0%, 100% { transform: scale(1); }
    50% { transform: scale(1.1); }
}

@keyframes dl-nav-logo-glow {
    0%, 100% {
        opacity: 0.78;
    }
    50% {
        opacity: 1;
    }
}

/* Nav uses text-only links from area51-theme.css — no square button overrides */

body.area51-v2 .filter-chip,
body.area51-v2 .support-donate-btn,
body.area51-v2 .intercept-channel-chip {
    border: 1px solid rgba(0, 229, 255, 0.28);
    background: linear-gradient(165deg, rgba(0, 229, 255, 0.1) 0%, rgba(8, 8, 24, 0.85) 100%);
    box-shadow: 0 2px 12px rgba(0, 0, 0, 0.25), inset 0 1px 0 rgba(0, 229, 255, 0.12);
    transition: transform 0.22s var(--ease-out-expo), box-shadow 0.22s, border-color 0.22s, background 0.22s;
}

body.area51-v2 .filter-chip:hover,
body.area51-v2 .filter-chip.active {
    transform: translateY(-2px);
    border-color: rgba(0, 229, 255, 0.55);
    box-shadow: 0 6px 24px rgba(0, 229, 255, 0.2), inset 0 0 16px rgba(0, 229, 255, 0.08);
}

body.area51-v2 .mob-menu-item {
    border-left: 3px solid transparent;
    border-bottom: 1px solid rgba(0, 229, 255, 0.06);
    transition: all 0.25s var(--ease-out-expo);
}

body.area51-v2 .mob-menu-item.active,
body.area51-v2 .mob-menu-item:hover {
    background: rgba(0, 229, 255, 0.08);
    padding-left: 24px;
}

/* ═══════════════════════════════════════════════════════════════
   HOME BOOT — 3D LOGO SHARD VORTEX ASSEMBLY
   ═══════════════════════════════════════════════════════════════ */
body.area51-v2 .a51-boot-logo-stage {
    position: relative;
    width: min(62vw, 280px);
    height: min(62vw, 280px);
    margin: 0 auto 12px;
    perspective: 900px;
    perspective-origin: 50% 42%;
    overflow: visible;
}

body.area51-v2 .a51-boot-energy-ring {
    position: absolute;
    left: 50%;
    top: 50%;
    width: 92%;
    height: 92%;
    transform: translate(-50%, -50%);
    border-radius: 50%;
    border: 1px solid rgba(0, 229, 255, 0.25);
    box-shadow: 0 0 24px rgba(0, 229, 255, 0.12), inset 0 0 20px rgba(0, 229, 255, 0.06);
    opacity: 0;
    pointer-events: none;
}

body.area51-v2 .a51-boot-energy-ring--2 {
    width: 108%;
    height: 108%;
    border-style: dashed;
    border-color: rgba(124, 58, 255, 0.28);
}

body.area51-v2 .a51-boot-logo-stage:has(.a51-boot-assembling) .a51-boot-energy-ring,
body.area51-v2 .a51-boot-logo-stage:has(.a51-boot-assembled) .a51-boot-energy-ring {
    opacity: 1;
    animation: a51-boot-ring-spin 3.6s linear infinite;
}

body.area51-v2 .a51-boot-logo-stage:has(.a51-boot-assembling) .a51-boot-energy-ring--2,
body.area51-v2 .a51-boot-logo-stage:has(.a51-boot-assembled) .a51-boot-energy-ring--2 {
    animation-direction: reverse;
    animation-duration: 5.2s;
}

@keyframes a51-boot-ring-spin {
    to { transform: translate(-50%, -50%) rotate(360deg); }
}

body.area51-v2 .a51-boot-shockwave {
    position: absolute;
    left: 50%;
    top: 50%;
    width: 40%;
    height: 40%;
    transform: translate(-50%, -50%) scale(0.2);
    border-radius: 50%;
    border: 2px solid rgba(0, 229, 255, 0.75);
    box-shadow:
        0 0 24px rgba(0, 229, 255, 0.45),
        inset 0 0 18px rgba(124, 58, 255, 0.2);
    opacity: 0;
    pointer-events: none;
}

body.area51-v2 .a51-boot-shockwave.active {
    animation: a51-boot-shockwave-burst 0.9s var(--ease-out-expo) forwards;
}

@keyframes a51-boot-shockwave-burst {
    0% {
        opacity: 0.95;
        transform: translate(-50%, -50%) scale(0.2);
        box-shadow:
            0 0 24px rgba(0, 229, 255, 0.55),
            inset 0 0 18px rgba(124, 58, 255, 0.25);
    }
    100% {
        opacity: 0;
        transform: translate(-50%, -50%) scale(2.8);
        border-width: 1px;
        box-shadow:
            0 0 60px rgba(0, 229, 255, 0.15),
            inset 0 0 40px rgba(124, 58, 255, 0.08);
    }
}

body.area51-v2 .a51-boot-logo-assembly {
    position: relative;
    width: 100%;
    height: 100%;
    transform-style: preserve-3d;
    transform: rotateX(18deg);
    z-index: 2;
}

body.area51-v2 .a51-boot-logo-assembly.a51-boot-assembling {
    animation: a51-logo-vortex-spin 4.8s cubic-bezier(0.16, 1, 0.28, 1) forwards;
}

@keyframes a51-logo-vortex-spin {
    0% { transform: rotateX(32deg) rotateY(0deg) scale(0.62); filter: brightness(0.55) drop-shadow(0 0 0 transparent); }
    18% { transform: rotateX(24deg) rotateY(280deg) scale(0.88); filter: brightness(0.95); }
    45% { transform: rotateX(16deg) rotateY(720deg) scale(1.1); filter: brightness(1.25) drop-shadow(0 0 28px rgba(0, 229, 255, 0.45)); }
    72% { transform: rotateX(10deg) rotateY(1040deg) scale(1.04); filter: brightness(1.1); }
    100% { transform: rotateX(8deg) rotateY(1260deg) scale(1); filter: brightness(1) drop-shadow(0 0 18px rgba(0, 229, 255, 0.35)); }
}

body.area51-v2 .a51-boot-logo-assembly.a51-boot-assembled {
    transform: rotateX(8deg) rotateY(0deg) scale(1);
    animation: a51-boot-logo-idle-pulse 2.4s ease-in-out infinite;
}

@keyframes a51-boot-logo-idle-pulse {
    0%, 100% {
        transform: rotateX(8deg) rotateY(0deg) scale(1);
        filter: drop-shadow(0 0 10px rgba(0, 229, 255, 0.45)) drop-shadow(0 0 18px rgba(0, 200, 255, 0.15));
    }
    50% {
        transform: rotateX(6deg) rotateY(0deg) scale(1.07);
        filter: drop-shadow(0 0 22px rgba(0, 229, 255, 0.8)) drop-shadow(0 0 36px rgba(0, 200, 255, 0.35));
    }
}

body.area51-v2 .a51-boot-logo-stage:has(.a51-boot-assembled) .a51-boot-energy-ring {
    opacity: 0.65;
    animation: a51-boot-ring-spin 10s linear infinite, a51-boot-ring-breathe 2.4s ease-in-out infinite;
}

body.area51-v2 .a51-boot-logo-stage:has(.a51-boot-assembled) .a51-boot-energy-ring--2 {
    animation-direction: reverse;
    animation-duration: 14s, 2.4s;
}

@keyframes a51-boot-ring-breathe {
    0%, 100% { opacity: 0.55; transform: translate(-50%, -50%) scale(1); }
    50% { opacity: 0.95; transform: translate(-50%, -50%) scale(1.08); }
}

body.area51-v2 .a51-boot-shard {
    position: absolute;
    transform-style: preserve-3d;
    opacity: 0;
    will-change: transform, opacity;
}

body.area51-v2 .a51-boot-shard-face {
    width: 100%;
    height: 100%;
    background-repeat: no-repeat;
    filter: none;
    backface-visibility: hidden;
    transform: translateZ(1px);
}

body.area51-v2 .nav-logo-assembly .a51-boot-shard-face,
body.area51-v2 .home-boot-logo-interactive .a51-boot-shard-face {
    filter: drop-shadow(0 0 6px rgba(0, 229, 255, 0.35));
}

body.area51-v2 .a51-boot-logo-assembly.a51-boot-assembling .a51-boot-shard {
    animation: a51-shard-vortex-in 3.8s cubic-bezier(0.1, 1, 0.24, 1) forwards;
    animation-delay: calc(var(--shard-i) * 0.028s);
}

body.area51-v2 .a51-boot-logo-stage:has(.a51-boot-assembling) .home-boot-shard-stage,
body.area51-v2 .home-boot-logo-interactive.boot-logo-vortex-active .home-boot-shard-stage {
    opacity: 1;
    animation: boot-shard-stage-vortex 4.8s cubic-bezier(0.16, 1, 0.28, 1) forwards;
    transform-style: preserve-3d;
}

body.area51-v2 .a51-boot-logo-stage:has(.a51-boot-assembling) .a51-boot-energy-ring,
body.area51-v2 .home-boot-logo-interactive.boot-logo-vortex-active .a51-boot-energy-ring {
    opacity: 1;
    animation: a51-boot-ring-spin 2.4s linear infinite;
}

body.area51-v2 .a51-boot-logo-stage:has(.a51-boot-assembling) .a51-boot-energy-ring--2,
body.area51-v2 .home-boot-logo-interactive.boot-logo-vortex-active .a51-boot-energy-ring--2 {
    animation-direction: reverse;
    animation-duration: 3.6s;
}

@keyframes boot-shard-stage-vortex {
    0% { transform: rotateY(0deg) rotateX(14deg); }
    100% { transform: rotateY(540deg) rotateX(8deg); }
}

@keyframes a51-shard-vortex-in {
    0% {
        opacity: 0;
        transform:
            translate3d(calc(var(--tx) * 1px), calc(var(--ty) * 1px), calc(var(--tz) * 1px))
            rotateX(calc(var(--rx) * 1deg))
            rotateY(calc(var(--ry) * 1deg))
            rotateZ(calc(var(--rz) * 1deg))
            scale(0.02);
        filter: brightness(2.4);
    }
    22% { opacity: 1; }
    55% {
        opacity: 1;
        transform:
            translate3d(calc(var(--tx) * 0.08px), calc(var(--ty) * 0.08px), calc(var(--tz) * 0.15px))
            rotateX(calc(var(--rx) * 0.12deg))
            rotateY(calc(var(--ry) * 0.12deg + 180deg))
            rotateZ(calc(var(--rz) * 0.08deg))
            scale(1.14);
    }
    78% {
        transform: translate3d(0, 0, 6px) rotateX(0) rotateY(360deg) rotateZ(0) scale(0.98);
    }
    100% {
        opacity: 1;
        transform: translate3d(0, 0, 0) rotateX(0) rotateY(720deg) rotateZ(0) scale(1);
        filter: brightness(1);
    }
}

body.area51-v2 .a51-boot-logo-assembly.a51-boot-assembled .a51-boot-shard {
    opacity: 1;
    transform: translate3d(0, 0, 0) rotateX(0) rotateY(0) rotateZ(0) scale(1);
}

body.area51-v2 .home-boot-stack {
    position: relative;
    z-index: 3;
}

body.area51-v2 .home-boot-login {
    opacity: 0;
    transform: translateY(20px);
    transition: opacity 0.8s var(--ease-out-expo), transform 0.8s var(--ease-out-expo);
}

body.area51-v2 .home-boot-login.a51-boot-login-ready {
    opacity: 1;
    transform: none;
}

body.area51-v2 .a51-boot-logo-assembly.a51-boot-assembled.engage-flash,
body.area51-v2 .a51-boot-logo-assembly.engage-flash {
    animation: a51-logo-shard-idle-pulse 2.4s ease-in-out infinite, a51-boot-logo-engage-shake 0.9s var(--ease-out-expo) 1 !important;
}

body.area51-v2 .a51-boot-logo-stage:has(.home-boot-login.authenticating) .a51-boot-energy-ring,
body.area51-v2 .a51-boot-logo-stage:has(.a51-boot-assembled.engage-flash) .a51-boot-energy-ring {
    opacity: 0.65;
    animation: a51-boot-ring-spin 10s linear infinite, a51-boot-ring-breathe 2.4s ease-in-out infinite;
}

body.area51-v2 .a51-boot-logo-stage:has(.home-boot-login.authenticating) .a51-boot-energy-ring--2,
body.area51-v2 .a51-boot-logo-stage:has(.a51-boot-assembled.engage-flash) .a51-boot-energy-ring--2 {
    animation-direction: reverse;
    animation-duration: 14s, 2.4s;
}

body.area51-v2 .nav-logo-assembly.nav-logo-scattered,
body.area51-v2 .nav-logo-assembly.nav-logo-assembling-shards,
body.area51-v2 .a51-boot-logo-assembly.nav-logo-scattered,
body.area51-v2 .a51-boot-logo-assembly.nav-logo-assembling-shards {
    animation: none !important;
}

body.area51-v2 .a51-boot-logo-assembly.a51-boot-assembling {
    animation: a51-logo-vortex-spin 4.8s cubic-bezier(0.16, 1, 0.28, 1) forwards !important;
}

@keyframes a51-boot-logo-engage-shake {
    0%, 100% { transform: rotateX(12deg) rotateY(0deg) scale(1); }
    30% { transform: rotateX(10deg) rotateY(8deg) scale(1.08); filter: brightness(1.15); }
    60% { transform: rotateX(14deg) rotateY(-6deg) scale(1.04); }
}

body.area51-v2 .a51-boot-scene,
body.area51-v2 .a51-boot-grid-floor,
body.area51-v2 .a51-boot-orbit,
body.area51-v2 .a51-boot-logo-glow {
    display: none !important;
}

/* ═══════════════════════════════════════════════════════════════
   INVESTIGATIONS — VAULT CLEARANCE SEQUENCE
   ═══════════════════════════════════════════════════════════════ */
body.area51-v2 .inv-scan-screen {
    background: rgba(10, 14, 8, 0.94);
}

body.area51-v2 .inv-scan-layout {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    min-height: 100%;
    gap: 24px;
    padding: max(88px, calc(72px + env(safe-area-inset-top, 0px))) 20px 32px;
    box-sizing: border-box;
}

body.area51-v2 .inv-bio-scanner {
    width: min(94vw, 420px);
    opacity: 0;
    transform: translateY(-12px);
    transition: opacity 0.45s var(--ease-out-expo), transform 0.45s var(--ease-out-expo);
    pointer-events: none;
}

body.area51-v2.inv-scan-active .inv-bio-scanner {
    opacity: 1;
    transform: none;
}

body.area51-v2 .inv-bio-scanner.inv-bio-scanning .inv-bio-scan-beam {
    animation: inv-bio-beam-sweep 2.4s ease-in-out infinite;
}

body.area51-v2 .inv-bio-scanner.inv-bio-scanning .inv-bio-reticle {
    animation: inv-bio-reticle-pulse 1.8s ease-in-out infinite;
}

body.area51-v2 .inv-bio-scanner.inv-bio-scan-complete .inv-bio-scan-beam {
    animation: none;
    top: 100%;
    opacity: 0.35;
}

body.area51-v2 .inv-bio-scanner-header {
    font-family: var(--font-mono);
    font-size: 9px;
    font-weight: 700;
    letter-spacing: 0.34em;
    color: var(--blue);
    text-align: center;
    margin-bottom: 10px;
    text-shadow: 0 0 10px rgba(0, 200, 255, 0.35);
}

body.area51-v2 .inv-bio-scanner-viewport {
    position: relative;
    height: 168px;
    border: 1px solid rgba(0, 200, 255, 0.28);
    background:
        radial-gradient(ellipse 55% 70% at 50% 38%, rgba(0, 200, 255, 0.06) 0%, transparent 72%),
        linear-gradient(180deg, rgba(8, 14, 20, 0.98) 0%, rgba(6, 10, 16, 0.99) 100%);
    overflow: hidden;
    clip-path: polygon(0 0, calc(100% - 10px) 0, 100% 10px, 100% 100%, 10px 100%, 0 calc(100% - 10px));
    box-shadow: inset 0 0 32px rgba(0, 200, 255, 0.05), 0 8px 28px rgba(0, 0, 0, 0.35);
}

body.area51-v2 .inv-bio-scan-grid {
    position: absolute;
    inset: 0;
    background:
        repeating-linear-gradient(0deg, transparent, transparent 11px, rgba(0, 200, 255, 0.04) 11px, rgba(0, 200, 255, 0.04) 12px),
        repeating-linear-gradient(90deg, transparent, transparent 11px, rgba(0, 200, 255, 0.03) 11px, rgba(0, 200, 255, 0.03) 12px);
    opacity: 0.7;
}

body.area51-v2 .inv-bio-reticle {
    position: absolute;
    inset: 18px 24px;
    border: 1px dashed rgba(0, 229, 255, 0.28);
    border-radius: 2px;
}

body.area51-v2 .inv-bio-reticle::before,
body.area51-v2 .inv-bio-reticle::after {
    content: '';
    position: absolute;
    left: 50%;
    top: 50%;
    transform: translate(-50%, -50%);
    background: rgba(0, 229, 255, 0.45);
}

body.area51-v2 .inv-bio-reticle::before {
    width: 1px;
    height: 100%;
}

body.area51-v2 .inv-bio-reticle::after {
    width: 100%;
    height: 1px;
}

body.area51-v2 .inv-bio-scan-beam {
    position: absolute;
    left: 0;
    right: 0;
    top: -8%;
    height: 3px;
    background: linear-gradient(90deg, transparent 0%, rgba(0, 200, 255, 0.2) 15%, var(--blue) 50%, rgba(0, 200, 255, 0.2) 85%, transparent 100%);
    box-shadow: 0 0 16px rgba(0, 200, 255, 0.55), 0 0 40px rgba(0, 200, 255, 0.25);
}

body.area51-v2 .inv-bio-scan-beam::after {
    content: '';
    position: absolute;
    left: 0;
    right: 0;
    top: 3px;
    height: 48px;
    background: linear-gradient(180deg, rgba(0, 200, 255, 0.16), transparent);
}

body.area51-v2 .inv-bio-corner {
    position: absolute;
    width: 14px;
    height: 14px;
    border-color: var(--blue);
    border-style: solid;
    opacity: 0.75;
}

body.area51-v2 .inv-bio-corner--tl { top: 8px; left: 8px; border-width: 2px 0 0 2px; }
body.area51-v2 .inv-bio-corner--tr { top: 8px; right: 8px; border-width: 2px 2px 0 0; }
body.area51-v2 .inv-bio-corner--bl { bottom: 8px; left: 8px; border-width: 0 0 2px 2px; }
body.area51-v2 .inv-bio-corner--br { bottom: 8px; right: 8px; border-width: 0 2px 2px 0; }

body.area51-v2 .inv-bio-metrics {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 8px;
    margin-top: 10px;
}

body.area51-v2 .inv-bio-metric {
    display: flex;
    flex-direction: column;
    gap: 3px;
    font-family: var(--font-mono);
    font-size: 8px;
    letter-spacing: 0.12em;
    color: var(--text-dim);
    text-align: center;
}

body.area51-v2 .inv-bio-metric span:last-child {
    color: var(--cyan);
    font-size: 9px;
    letter-spacing: 0.08em;
}

body.area51-v2 .inv-bio-readout {
    margin-top: 8px;
    font-family: var(--font-mono);
    font-size: 9px;
    letter-spacing: 0.28em;
    color: var(--cyan);
    text-align: center;
    text-shadow: 0 0 10px rgba(0, 200, 255, 0.35);
    animation: inv-bio-readout-blink 1.2s ease-in-out infinite;
}

body.area51-v2 .inv-bio-scanner.inv-bio-scan-complete .inv-bio-readout {
    animation: none;
    color: var(--cyan);
    text-shadow: 0 0 10px rgba(0, 229, 255, 0.35);
}

@keyframes inv-bio-beam-sweep {
    0% { top: -8%; opacity: 0.4; }
    8% { opacity: 1; }
    92% { opacity: 1; }
    100% { top: 108%; opacity: 0.35; }
}

@keyframes inv-bio-reticle-pulse {
    0%, 100% { opacity: 0.55; }
    50% { opacity: 1; }
}

@keyframes inv-bio-readout-blink {
    0%, 100% { opacity: 0.7; }
    50% { opacity: 1; }
}

body.area51-v2 .home-boot-shard-stage {
    position: relative;
    width: 100%;
    height: 100%;
    perspective: 900px;
    perspective-origin: 50% 42%;
}

body.area51-v2 .home-boot-logo-interactive {
    cursor: default;
    position: relative;
    z-index: 5;
    pointer-events: auto;
}

body.area51-v2 .home-boot-logo-interactive.boot-logo-intro-active {
    pointer-events: none;
    cursor: default;
}

body.area51-v2 .home-boot-logo-interactive.logo-shard-hover-active .home-boot-shard-stage {
    opacity: 1;
}

body.area51-v2 .a51-inv-folder-scene,
body.area51-v2 .a51-inv-folder,
body.area51-v2 .a51-inv-folder-tab,
body.area51-v2 .a51-inv-folder-body,
body.area51-v2 .a51-inv-folder-header,
body.area51-v2 .a51-inv-folder-lines,
body.area51-v2 .a51-inv-folder-line,
body.area51-v2 .a51-inv-folder-bar,
body.area51-v2 .a51-inv-folder-bar-fill,
body.area51-v2 .a51-inv-folder-status {
    display: none !important;
}

body.area51-v2 .dl-vault-sequence {
    position: relative;
    inset: auto;
    width: min(94vw, 560px);
    flex-shrink: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 0;
    opacity: 0;
}

body.area51-v2.inv-scan-active .dl-vault-sequence {
    opacity: 1;
    animation: dl-vault-sequence-in 0.5s var(--ease-out-expo) forwards;
}

@keyframes dl-vault-sequence-in {
    from { opacity: 0; transform: scale(0.94); filter: blur(6px); }
    to { opacity: 1; transform: none; filter: none; }
}

body.area51-v2 .dl-vault-frame {
    position: relative;
    width: min(94vw, 560px);
    border: 1px solid rgba(0, 229, 255, 0.32);
    background: linear-gradient(165deg, rgba(18, 26, 14, 0.98) 0%, rgba(10, 16, 8, 0.99) 100%);
    box-shadow: 0 16px 56px rgba(0, 0, 0, 0.55), inset 0 0 32px rgba(0, 229, 255, 0.04);
    clip-path: polygon(0 0, calc(100% - 14px) 0, 100% 14px, 100% 100%, 14px 100%, 0 calc(100% - 14px));
}

body.area51-v2 .dl-vault-header {
    font-family: var(--font-mono);
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 0.32em;
    color: var(--amber);
    padding: 14px 18px;
    border-bottom: 1px solid rgba(0, 229, 255, 0.2);
    background: rgba(0, 229, 255, 0.04);
}

body.area51-v2 .dl-vault-body {
    display: grid;
    grid-template-columns: 140px 1fr;
    gap: 20px;
    padding: 22px 20px 18px;
}

body.area51-v2 .dl-vault-dial-stage {
    position: relative;
    width: 120px;
    height: 120px;
    margin: 0 auto;
}

body.area51-v2 .dl-vault-progress-ring {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    transform: rotate(-90deg);
}

body.area51-v2 .dl-vault-progress-track {
    fill: none;
    stroke: rgba(0, 229, 255, 0.12);
    stroke-width: 4;
}

body.area51-v2 .dl-vault-progress-arc {
    fill: none;
    stroke: var(--amber);
    stroke-width: 4;
    stroke-linecap: round;
    filter: drop-shadow(0 0 6px rgba(212, 160, 23, 0.65));
    transition: stroke-dashoffset 0.08s linear;
}

body.area51-v2 .dl-vault-dial-ring {
    position: absolute;
    inset: 14px;
    border-radius: 50%;
    border: 2px dashed rgba(0, 229, 255, 0.35);
    transition: transform 0.08s linear;
}

body.area51-v2 .dl-vault-dial-core {
    position: absolute;
    inset: 28px;
    border-radius: 50%;
    background: radial-gradient(circle at 35% 30%, rgba(0, 229, 255, 0.18), rgba(10, 16, 8, 0.95) 68%);
    border: 1px solid rgba(0, 229, 255, 0.4);
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: inset 0 0 20px rgba(0, 229, 255, 0.08);
}

body.area51-v2 .dl-vault-dial-num {
    font-family: var(--font-display);
    font-size: 28px;
    font-weight: 700;
    color: var(--amber);
    text-shadow: 0 0 14px rgba(212, 160, 23, 0.55);
    letter-spacing: 0.05em;
}

body.area51-v2.inv-scan-active .dl-vault-dial-ring {
    animation: dl-vault-dial-tick 0.6s steps(6) infinite;
}

@keyframes dl-vault-dial-tick {
    to { filter: brightness(1.15); }
}

body.area51-v2 .dl-vault-panel {
    min-width: 0;
}

body.area51-v2 .dl-vault-leds {
    display: flex;
    gap: 6px;
    margin-bottom: 12px;
}

body.area51-v2 .dl-vault-led {
    width: 10px;
    height: 10px;
    border-radius: 50%;
    background: rgba(0, 229, 255, 0.12);
    border: 1px solid rgba(0, 229, 255, 0.25);
    transition: background 0.25s, box-shadow 0.25s, border-color 0.25s;
}

body.area51-v2 .dl-vault-led.lit {
    background: var(--cyan);
    border-color: var(--cyan);
    box-shadow: 0 0 10px rgba(0, 229, 255, 0.75);
}

body.area51-v2 .dl-vault-log {
    min-height: 168px;
    max-height: 200px;
    overflow: hidden;
    font-family: var(--font-mono);
    font-size: 10px;
    letter-spacing: 0.06em;
    line-height: 1.65;
    color: rgba(0, 229, 255, 0.35);
    margin-bottom: 12px;
    padding: 10px 12px;
    background: rgba(0, 0, 0, 0.35);
    border: 1px solid rgba(0, 229, 255, 0.14);
}

body.area51-v2 .dl-vault-log-line {
    opacity: 0;
    transform: translateX(-8px);
    transition: opacity 0.35s ease-out, transform 0.35s ease-out, color 0.35s;
}

body.area51-v2 .dl-vault-log-line.visible {
    opacity: 1;
    transform: none;
    color: var(--cyan);
    text-shadow: 0 0 8px rgba(0, 229, 255, 0.35);
}

body.area51-v2 .dl-vault-status {
    font-family: var(--font-mono);
    font-size: 10px;
    letter-spacing: 0.22em;
    color: var(--amber);
    animation: dl-vault-status-blink 1.4s ease-in-out infinite;
}

body.area51-v2 .dl-vault-sequence.dl-vault-complete .dl-vault-status {
    color: var(--cyan);
    animation: none;
}

body.area51-v2 .dl-vault-granted {
    position: absolute;
    inset: 0;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 8px;
    background: rgba(8, 12, 6, 0.88);
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.45s var(--ease-out-expo);
}

body.area51-v2 .dl-vault-sequence.dl-vault-granted-show .dl-vault-granted {
    opacity: 1;
}

body.area51-v2 .dl-vault-grant-icon {
    font-size: 42px;
    color: var(--cyan);
    text-shadow: 0 0 24px rgba(0, 229, 255, 0.75);
    animation: dl-vault-grant-pop 0.55s var(--ease-out-expo) forwards;
}

body.area51-v2 .dl-vault-grant-title {
    font-family: var(--font-display);
    font-size: 22px;
    letter-spacing: 0.28em;
    color: var(--cyan);
    animation: dl-vault-grant-pop 0.55s var(--ease-out-expo) 0.08s forwards;
    opacity: 0;
}

body.area51-v2 .dl-vault-grant-sub {
    font-family: var(--font-mono);
    font-size: 10px;
    letter-spacing: 0.2em;
    color: var(--amber);
    animation: dl-vault-grant-pop 0.55s var(--ease-out-expo) 0.16s forwards;
    opacity: 0;
}

@keyframes dl-vault-grant-pop {
    from { opacity: 0; transform: scale(0.88) translateY(8px); }
    to { opacity: 1; transform: none; }
}

body.area51-v2 .inv-auth-prompt {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    pointer-events: none;
    z-index: 2;
}

body.area51-v2 .inv-auth-prompt-text {
    font-family: var(--font-mono);
    font-size: 11px;
    letter-spacing: 0.32em;
    color: var(--amber);
    padding: 14px 22px;
    border: 1px solid rgba(212, 160, 23, 0.35);
    background: rgba(12, 18, 10, 0.82);
    animation: inv-auth-prompt-pulse 2s ease-in-out infinite;
}

body.area51-v2 #page-investigations.inv-scanning .inv-auth-prompt,
body.area51-v2 #page-investigations.inv-unlocked .inv-auth-prompt {
    opacity: 0;
    visibility: hidden;
}

@keyframes inv-auth-prompt-pulse {
    0%, 100% { opacity: 0.72; box-shadow: 0 0 12px rgba(212, 160, 23, 0.12); }
    50% { opacity: 1; box-shadow: 0 0 24px rgba(212, 160, 23, 0.22); }
}

body.area51-v2 #page-investigations.inv-overlay-exiting .inv-restrict-overlay {
    opacity: 0;
    transition: opacity 1.2s ease;
}

@keyframes dl-vault-status-blink {
    0%, 100% { opacity: 0.65; }
    50% { opacity: 1; }
}

@media (max-width: 520px) {
    body.area51-v2 .dl-vault-body {
        grid-template-columns: 1fr;
        text-align: center;
    }

    body.area51-v2 .inv-bio-metrics {
        grid-template-columns: repeat(2, 1fr);
    }

    body.area51-v2 .inv-bio-scanner-viewport {
        height: 148px;
    }
}

body.area51-v2 .a51-cls-scene,
body.area51-v2 .a51-cls-corner,
body.area51-v2 .a51-cls-stamp-band,
body.area51-v2 .a51-cls-dossier,
body.area51-v2 .a51-cls-laser-beam,
body.area51-v2 .a51-cls-noise,
body.area51-v2 .a51-cls-counter,
body.area51-v2 .a51-cls-hud,
body.area51-v2 .a51-inv-vault {
    display: none !important;
}

/* ── Nav logo shard hover ── */
body.area51-v2 .nav-logo-interactive,
body.area51-v2 .home-boot-logo-interactive {
    cursor: default;
}

body.area51-v2 .nav-logo-shard-stage {
    position: absolute;
    inset: 0;
    opacity: 0;
    pointer-events: none;
    perspective: 900px;
    perspective-origin: 50% 42%;
    z-index: 4;
    border-radius: 50%;
    overflow: hidden;
}

body.area51-v2 .nav-logo-interactive .nav-logo-energy-ring {
    position: absolute;
    left: 50%;
    top: 50%;
    width: 92%;
    height: 92%;
    transform: translate(-50%, -50%);
    border-radius: 50%;
    border: 1px solid rgba(0, 229, 255, 0.35);
    box-shadow:
        inset 0 0 12px rgba(0, 229, 255, 0.12),
        0 0 10px rgba(0, 229, 255, 0.18);
    opacity: 0.72;
    pointer-events: none;
    z-index: 1;
    animation: nav-logo-ring-idle 9s linear infinite, dl-nav-logo-glow 2.4s ease-in-out infinite;
}

body.area51-v2 .nav-logo-interactive .nav-logo-energy-ring--2 {
    width: 100%;
    height: 100%;
    border-style: dashed;
    border-color: rgba(0, 229, 255, 0.22);
    opacity: 0.55;
    animation-direction: reverse;
    animation-duration: 13s;
}

@keyframes nav-logo-ring-idle {
    to { transform: translate(-50%, -50%) rotate(360deg); }
}

body.area51-v2 .nav-logo-interactive.nav-logo-shattered .nav-logo-energy-ring,
body.area51-v2 .nav-logo-interactive.nav-logo-assembling .nav-logo-energy-ring {
    opacity: 1;
    animation: a51-boot-ring-spin 1.8s linear infinite;
}

body.area51-v2 .nav-logo-interactive.nav-logo-shattered .nav-logo-energy-ring--2,
body.area51-v2 .nav-logo-interactive.nav-logo-assembling .nav-logo-energy-ring--2 {
    animation-direction: reverse;
    animation-duration: 2.8s;
}

body.area51-v2 .nav-logo-interactive.nav-logo-shattered,
body.area51-v2 .nav-logo-interactive.nav-logo-assembling,
body.area51-v2 .nav-logo-interactive.logo-shard-hover-active {
    overflow: visible;
    z-index: 10001;
    position: relative;
    isolation: auto;
}

body.area51-v2 .nav-logo-interactive.nav-logo-shattered .nav-logo-shard-stage,
body.area51-v2 .nav-logo-interactive.nav-logo-assembling .nav-logo-shard-stage,
body.area51-v2 .nav-logo-interactive.logo-shard-hover-active .nav-logo-shard-stage {
    overflow: visible;
    inset: -50%;
    z-index: 3;
}

body.area51-v2 .nav-logo-interactive.nav-logo-shattered .nav-logo-assembly,
body.area51-v2 .nav-logo-interactive.nav-logo-assembling .nav-logo-assembly,
body.area51-v2 .nav-logo-interactive.logo-shard-hover-active .nav-logo-assembly {
    overflow: visible;
}

body.area51-v2 .nav-logo-interactive.nav-logo-tornado.nav-logo-shattered .nav-logo-shard-stage,
body.area51-v2 .home-boot-logo-interactive.nav-logo-tornado.logo-shard-hover-active.nav-logo-shattered .home-boot-shard-stage {
    opacity: 1;
    animation: nav-tornado-cylinder-spin 2.8s linear infinite;
    transform-style: preserve-3d;
}

@keyframes nav-tornado-cylinder-spin {
    0% { transform: rotateX(14deg) rotateY(0deg); }
    100% { transform: rotateX(14deg) rotateY(360deg); }
}

body.area51-v2 .nav-logo-interactive.nav-logo-tornado .nav-logo-assembly.nav-logo-scattered .a51-boot-shard,
body.area51-v2 .home-boot-logo-interactive.nav-logo-tornado .a51-boot-logo-assembly.nav-logo-scattered .a51-boot-shard {
    opacity: 1;
    animation:
        nav-shard-scatter-out 0.48s cubic-bezier(0.22, 1, 0.36, 1) forwards,
        nav-shard-tornado-float 2.4s ease-in-out infinite;
    animation-delay: calc(var(--shard-i) * 0.018s), calc(var(--shard-i) * 0.04s);
    animation-fill-mode: forwards, none;
}

@keyframes nav-shard-tornado-float {
    0%, 100% {
        transform:
            translate3d(calc(var(--tx) * 1px), calc(var(--ty) * 1px), calc(var(--tz) * 1px))
            rotateX(calc(var(--rx) * 1deg))
            rotateY(calc(var(--ry) * 1deg))
            rotateZ(calc(var(--rz) * 1deg))
            scale(0.98);
    }
    50% {
        transform:
            translate3d(calc(var(--tx) * 1px), calc(var(--ty) * 1px - 6px), calc(var(--tz) * 1px + 8px))
            rotateX(calc(var(--rx) * 1deg + 8deg))
            rotateY(calc(var(--ry) * 1deg + 14deg))
            rotateZ(calc(var(--rz) * 1deg + 6deg))
            scale(1);
    }
}

body.area51-v2 .nav-logo-interactive.nav-logo-tornado.nav-logo-shattered .nav-logo-energy-ring,
body.area51-v2 .home-boot-logo-interactive.nav-logo-tornado.logo-shard-hover-active.nav-logo-shattered .a51-boot-energy-ring {
    opacity: 1;
    animation: a51-boot-ring-spin 1.8s linear infinite;
}

body.area51-v2 .nav-logo-interactive.nav-logo-tornado.nav-logo-shattered .nav-logo-energy-ring--2,
body.area51-v2 .home-boot-logo-interactive.nav-logo-tornado.logo-shard-hover-active.nav-logo-shattered .a51-boot-energy-ring--2 {
    animation-direction: reverse;
    animation-duration: 2.8s;
}

body.area51-v2 .nav-logo-interactive.nav-logo-shattered .nav-logo-shard-stage,
body.area51-v2 .home-boot-logo-interactive.logo-shard-hover-active.nav-logo-shattered .home-boot-shard-stage {
    opacity: 1;
    animation: logo-shard-stage-wobble 2.6s ease-in-out infinite;
    transform-style: preserve-3d;
}

body.area51-v2 .nav-logo-interactive.nav-logo-shattered .nav-logo-energy-ring,
body.area51-v2 .home-boot-logo-interactive.logo-shard-hover-active.nav-logo-shattered .a51-boot-energy-ring {
    opacity: 1;
    animation: a51-boot-ring-spin 2.8s linear infinite;
}

body.area51-v2 .nav-logo-interactive.nav-logo-shattered .nav-logo-energy-ring--2,
body.area51-v2 .home-boot-logo-interactive.logo-shard-hover-active.nav-logo-shattered .a51-boot-energy-ring--2 {
    animation-direction: reverse;
    animation-duration: 4.2s;
}

@keyframes logo-shard-stage-wobble {
    0%, 100% { transform: rotateY(-5deg) rotateX(8deg); }
    50% { transform: rotateY(5deg) rotateX(8deg); }
}

body.area51-v2 .nav-logo-interactive.nav-logo-assembling .nav-logo-shard-stage,
body.area51-v2 .nav-logo-interactive.logo-shards-ready .nav-logo-shard-stage,
body.area51-v2 .home-boot-logo-interactive.logo-shards-ready .home-boot-shard-stage {
    opacity: 1;
    animation: none;
}

body.area51-v2 .logo-shards-resting .a51-boot-shard,
body.area51-v2 .nav-logo-assembly.logo-shards-resting .a51-boot-shard,
body.area51-v2 .a51-boot-logo-assembly.logo-shards-resting .a51-boot-shard {
    opacity: 1 !important;
    transform: translate3d(0, 0, 0) rotateX(0) rotateY(0) rotateZ(0) scale(1) !important;
    animation: none !important;
}

body.area51-v2 .nav-logo-assembly.logo-shards-resting,
body.area51-v2 .a51-boot-logo-assembly.logo-shards-resting.a51-boot-assembled {
    animation: a51-logo-shard-idle-pulse 2.4s ease-in-out infinite;
}

@keyframes a51-logo-shard-idle-pulse {
    0%, 100% {
        filter: drop-shadow(0 0 10px rgba(0, 229, 255, 0.45)) drop-shadow(0 0 18px rgba(0, 200, 255, 0.15));
        transform: rotateX(12deg) rotateY(0deg) scale(1);
    }
    50% {
        filter: drop-shadow(0 0 22px rgba(0, 229, 255, 0.8)) drop-shadow(0 0 36px rgba(0, 200, 255, 0.35));
        transform: rotateX(10deg) rotateY(0deg) scale(1.06);
    }
}

body.area51-v2 .a51-boot-logo-assembly.logo-shards-resting.a51-boot-assembled {
    transform: rotateX(12deg);
}

body.area51-v2 .a51-boot-logo-stage:has(.logo-shards-resting) .a51-boot-energy-ring {
    opacity: 0.65;
    animation: a51-boot-ring-spin 10s linear infinite, a51-boot-ring-breathe 2.4s ease-in-out infinite;
}

body.area51-v2 .a51-boot-logo-stage:has(.logo-shards-resting) .a51-boot-energy-ring--2 {
    animation-direction: reverse;
    animation-duration: 14s, 2.4s;
}

body.area51-v2 .nav-logo-assembly {
    position: relative;
    width: 100%;
    height: 100%;
    transform-style: preserve-3d;
    transform: rotateX(12deg);
}

body.area51-v2 .nav-logo-assembly .a51-boot-shard {
    position: absolute;
    transform-style: preserve-3d;
    opacity: 0;
}

body.area51-v2 .nav-logo-assembly.nav-logo-scattered .a51-boot-shard {
    opacity: 1;
    animation: nav-shard-scatter-out 0.34s cubic-bezier(0.22, 1, 0.36, 1) forwards;
    animation-fill-mode: forwards;
}

@keyframes nav-shard-scatter-out {
    0% {
        transform: translate3d(0, 0, 0) rotateX(0) rotateY(0) rotateZ(0) scale(1);
    }
    100% {
        transform:
            translate3d(calc(var(--tx) * 1px), calc(var(--ty) * 1px), calc(var(--tz) * 1px))
            rotateX(calc(var(--rx) * 1deg))
            rotateY(calc(var(--ry) * 1deg))
            rotateZ(calc(var(--rz) * 1deg))
            scale(0.98);
    }
}

body.area51-v2 .nav-logo-assembly.nav-logo-assembling-shards .a51-boot-shard {
    opacity: 1;
    animation: nav-shard-assemble-in 1.1s cubic-bezier(0.22, 1, 0.36, 1) forwards;
    animation-delay: calc(var(--shard-i) * 0.014s);
    animation-fill-mode: forwards;
}

@keyframes nav-shard-assemble-in {
    0% {
        opacity: 1;
        transform:
            translate3d(calc(var(--tx) * 1px), calc(var(--ty) * 1px), calc(var(--tz) * 1px))
            rotateX(calc(var(--rx) * 1deg))
            rotateY(calc(var(--ry) * 1deg))
            rotateZ(calc(var(--rz) * 1deg))
            scale(0.98);
    }
    100% {
        opacity: 1;
        transform: translate3d(0, 0, 0) rotateX(0) rotateY(0) rotateZ(0) scale(1);
    }
}

body.area51-v2 .home-boot-logo-interactive.logo-shard-hover-active .a51-boot-logo-assembly.nav-logo-scattered .a51-boot-shard {
    opacity: 1;
    animation: nav-shard-scatter-out 0.34s cubic-bezier(0.22, 1, 0.36, 1) forwards;
    animation-fill-mode: forwards;
}

body.area51-v2 .home-boot-logo-interactive.logo-shard-hover-active .a51-boot-logo-assembly.nav-logo-assembling-shards .a51-boot-shard {
    opacity: 1;
    animation: nav-shard-assemble-in 1.1s cubic-bezier(0.22, 1, 0.36, 1) forwards;
    animation-delay: calc(var(--shard-i) * 0.014s);
    animation-fill-mode: forwards;
}

body.area51-v2 .nav-logo-shockwave {
    position: absolute;
    left: 50%;
    top: 50%;
    width: 50%;
    height: 50%;
    transform: translate(-50%, -50%) scale(0.2);
    border-radius: 50%;
    border: 2px solid rgba(0, 229, 255, 0.6);
    opacity: 0;
    pointer-events: none;
    z-index: 4;
}

body.area51-v2 .nav-logo-shockwave.active {
    animation: a51-boot-shockwave-burst 0.85s var(--ease-out-expo) forwards;
}

/* ── Fallout-style CRT page transition ── */
body.area51-v2 .a51-page-transition {
    position: fixed;
    inset: 0;
    z-index: 10060;
    pointer-events: none;
    opacity: 0;
    visibility: hidden;
    display: none;
    background: #04040f;
    transform-origin: center center;
    overflow: hidden;
}

body.area51-v2 .a51-pt-backdrop {
    position: absolute;
    inset: 0;
    background: #04040f;
    opacity: 0;
    z-index: 0;
}

body.area51-v2.page-transitioning .a51-pt-backdrop {
    opacity: 1;
}

body.area51-v2 .a51-pt-crt-fx {
    position: absolute;
    inset: 0;
    z-index: 1;
    overflow: hidden;
    transform-origin: center center;
    pointer-events: none;
}

body.area51-v2 .a51-pt-noise,
body.area51-v2 .a51-pt-jitter,
body.area51-v2 .a51-pt-scanbar,
body.area51-v2 .a51-pt-phosphor {
    position: absolute;
    inset: 0;
    opacity: 0;
    pointer-events: none;
    z-index: 1;
}

body.area51-v2 .a51-pt-jitter {
    background: transparent;
    mix-blend-mode: screen;
}

body.area51-v2 .a51-pt-scanbar {
    top: 50%;
    height: 3px;
    background: linear-gradient(90deg, transparent, rgba(0, 229, 255, 0.85), rgba(124, 58, 255, 0.65), transparent);
    box-shadow: 0 0 18px rgba(0, 229, 255, 0.65);
    transform: translateY(-50%) scaleX(0.2);
}

body.area51-v2.page-transitioning .a51-page-transition {
    display: block !important;
    opacity: 1 !important;
    visibility: visible !important;
    background: #04040f !important;
}

body.area51-v2.page-transitioning .a51-pt-crt-fx {
    animation: a51-crt-switch 0.88s steps(14) forwards;
}

body.area51-v2.page-transitioning .a51-pt-backdrop {
    opacity: 1 !important;
    visibility: visible !important;
    background: #04040f !important;
    transition: none !important;
}

body.area51-v2.page-transitioning .a51-atmo,
body.area51-v2.page-transitioning #starfield,
body.area51-v2.page-transitioning #a51RadarCanvas,
body.area51-v2.page-transitioning .site-nav,
body.area51-v2.page-transitioning footer,
body.area51-v2.page-transitioning .home-signal-boot-overlay,
body.area51-v2.page-transitioning .hud-corner {
    visibility: hidden !important;
    opacity: 0 !important;
    pointer-events: none !important;
}

body.area51-v2.page-transitioning {
    overflow: hidden;
    background: #04040f !important;
}

body.area51-v2 .a51-page-transition.a51-page-transition--done {
    opacity: 0 !important;
    visibility: hidden !important;
    display: none !important;
    pointer-events: none !important;
    animation: none !important;
}

body.area51-v2:not(.page-transitioning) .a51-page-transition {
    display: none !important;
    visibility: hidden !important;
    opacity: 0 !important;
    animation: none !important;
}

body.area51-v2 .a51-page-transition.a51-page-transition--done .a51-pt-backdrop,
body.area51-v2 .a51-page-transition.a51-page-transition--done .a51-pt-crt-fx,
body.area51-v2 .a51-page-transition.a51-page-transition--done .a51-pt-noise,
body.area51-v2 .a51-page-transition.a51-page-transition--done .a51-pt-jitter,
body.area51-v2 .a51-page-transition.a51-page-transition--done .a51-pt-scanbar,
body.area51-v2 .a51-page-transition.a51-page-transition--done .a51-pt-phosphor {
    opacity: 0 !important;
    animation: none !important;
}

body.area51-v2.page-transitioning .a51-pt-noise {
    animation: a51-crt-noise 0.88s steps(8) forwards;
}

body.area51-v2.page-transitioning .a51-pt-jitter {
    animation: a51-crt-jitter 0.88s steps(18) forwards;
}

body.area51-v2.page-transitioning .a51-pt-scanbar {
    animation: a51-crt-scanbar 0.88s steps(12) forwards;
}

body.area51-v2.page-transitioning .a51-pt-phosphor {
    animation: a51-crt-phosphor 0.88s ease-out forwards;
}

@keyframes a51-crt-switch {
    0% { opacity: 1; transform: scaleY(1) translateX(0); filter: brightness(1); }
    10% { opacity: 1; transform: scaleY(1) translateX(0); filter: brightness(1.15); }
    22% { opacity: 1; transform: scaleY(1) translateX(-2px); filter: brightness(1.25); }
    24% { opacity: 1; transform: scaleY(0.95) translateX(3px); }
    26% { opacity: 1; transform: scaleY(0.55) translateX(-4px); filter: brightness(1.6); }
    30% { opacity: 1; transform: scaleY(0.018) translateX(5px); filter: brightness(2.6); background: rgba(0, 229, 255, 0.22); }
    32% { opacity: 1; transform: scaleY(0.018) translateX(-7px); }
    34% { opacity: 1; transform: scaleY(0.018) translateX(6px); }
    36% { opacity: 1; transform: scaleY(0.018) translateX(-5px); filter: brightness(0.35); background: #060a04; }
    42% { opacity: 1; transform: scaleY(0.018) translateX(4px); background: #040604; }
    48% { opacity: 1; transform: scaleY(0.018) translateX(-3px); filter: brightness(0.2); }
    54% { opacity: 1; transform: scaleY(0.018) translateX(2px); filter: brightness(1.9); background: rgba(0, 229, 255, 0.1); }
    62% { opacity: 1; transform: scaleY(0.35) translateX(-2px); filter: brightness(1.5); }
    68% { opacity: 1; transform: scaleY(1) translateX(3px); filter: brightness(1.4); }
    74% { opacity: 1; transform: scaleY(1) translateX(-2px); }
    82% { opacity: 1; transform: scaleY(1) translateX(1px); filter: brightness(1.15); }
    94% { opacity: 1; transform: scaleY(1) translateX(0); filter: brightness(1); }
    100% { opacity: 0; transform: scaleY(1) translateX(0); filter: brightness(1); }
}

@keyframes a51-crt-jitter {
    0%, 22% { opacity: 0; transform: translateX(0); }
    24% { opacity: 0.35; transform: translateX(-6px); }
    26% { opacity: 0.5; transform: translateX(5px); }
    28% { opacity: 0.65; transform: translateX(-8px); }
    30% { opacity: 0.8; transform: translateX(7px); }
    32% { opacity: 0.85; transform: translateX(-5px); }
    34% { opacity: 0.9; transform: translateX(6px); }
    36% { opacity: 0.75; transform: translateX(-4px); }
    40% { opacity: 0.6; transform: translateX(3px); }
    44% { opacity: 0.45; transform: translateX(-2px); }
    50%, 58% { opacity: 0.7; transform: translateX(4px); }
    62% { opacity: 0.55; transform: translateX(-3px); }
    68% { opacity: 0.35; transform: translateX(2px); }
    100% { opacity: 0; transform: translateX(0); }
}

@keyframes a51-crt-scanbar {
    0%, 26% { opacity: 0; transform: translateY(-50%) scaleX(0.1); }
    30% { opacity: 1; transform: translateY(-50%) scaleX(1); }
    36%, 52% { opacity: 1; transform: translateY(-50%) scaleX(1); box-shadow: 0 0 28px rgba(0, 229, 255, 0.85); }
    58% { opacity: 0.85; transform: translateY(-50%) scaleX(0.85); }
    66% { opacity: 0.5; transform: translateY(-50%) scaleX(1.1); }
    100% { opacity: 0; transform: translateY(-50%) scaleX(0.2); }
}

@keyframes a51-crt-noise {
    0%, 20% { opacity: 0; }
    26%, 72% { opacity: 0.65; }
    100% { opacity: 0; }
}

body.area51-v2 .a51-pt-noise {
    background: repeating-linear-gradient(0deg, transparent, transparent 2px, rgba(0, 229, 255, 0.05) 2px, rgba(0, 229, 255, 0.05) 3px);
    mix-blend-mode: overlay;
}

body.area51-v2 .a51-pt-phosphor {
    background: radial-gradient(ellipse at center, rgba(0, 229, 255, 0.14) 0%, transparent 70%);
}

@keyframes a51-crt-phosphor {
    0%, 55% { opacity: 0; }
    65% { opacity: 0.7; }
    100% { opacity: 0; }
}

/* ── Interactive tilt/hover ── */
body.area51-v2 .a51-interactive {
    transform: perspective(600px) rotateX(var(--tilt-x, 0deg)) rotateY(var(--tilt-y, 0deg));
    transition: transform 0.15s ease-out, box-shadow 0.2s, border-color 0.2s;
}

body.area51-v2 .stat-block.a51-interactive:hover,
body.area51-v2 .support-card.a51-interactive:hover,
body.area51-v2 .intercept-item.a51-visible:hover {
    border-left-color: var(--intercept-accent, var(--blue));
    box-shadow: 0 10px 36px rgba(0, 0, 0, 0.4), 0 0 24px color-mix(in srgb, var(--intercept-accent, var(--blue)) 28%, transparent);
}

body.area51-v2 .split-list-item.a51-interactive:hover {
    background: rgba(0, 229, 255, 0.06);
    border-color: rgba(0, 229, 255, 0.28);
}

body.area51-v2 .filter-chip.a51-interactive:active {
    transform: scale(0.97);
}

/* ── Contact transmit button (amber/yellow) ── */
body.area51-v2 .submit-btn {
    border-color: var(--amber) !important;
    color: var(--amber) !important;
}

body.area51-v2 .submit-btn::before {
    background: var(--amber) !important;
}

body.area51-v2 .submit-btn:hover {
    color: var(--black) !important;
    box-shadow: 0 0 40px var(--amber-dim) !important;
}

/* Galaxy shell — use original cyan HUD (no green filter) */
body.area51-v2 .inv-bio-scanner,
body.area51-v2 .dl-vault-sequence,
body.area51-v2 .inv-auth-prompt {
    display: none !important;
}

body.area51-v2 .stat-block,
body.area51-v2 .support-card {
    border-color: rgba(0, 200, 255, 0.14);
    transition: border-color 0.3s, box-shadow 0.3s, transform 0.3s var(--ease-out-expo);
}

body.area51-v2 .intercept-item {
    transition: border-color 0.3s, box-shadow 0.3s, transform 0.3s var(--ease-out-expo);
}

body.area51-v2 .stat-block.a51-visible:hover {
    border-color: color-mix(in srgb, var(--accent, var(--blue)) 45%, transparent);
    box-shadow: 0 8px 32px rgba(0, 0, 0, 0.35), 0 0 24px color-mix(in srgb, var(--accent, var(--blue)) 18%, transparent);
}

body.area51-v2 .split-list-item.a51-visible {
    transition: transform 0.25s, border-color 0.25s, background 0.25s;
}

body.area51-v2 .split-list-item.a51-visible:hover {
    transform: translateX(4px);
    border-color: rgba(0, 229, 255, 0.3);
}
