:root {
    --header-offset: 80px;
}

html.has-fixed-header {
    scroll-padding-top: var(--header-offset);
}

body {
    background-color: #0a0a1a;
    color: #e0e0e0;
    font-family: 'Roboto', sans-serif;
}

.font-orbitron {
    font-family: 'Orbitron', sans-serif;
}

/* Hero background: fixed on desktop, scroll on mobile to avoid iOS issues */
.hero-bg {
    background-image: url('space.jpg');
    background-size: cover;
    background-position: center;
    background-attachment: fixed;
}

@media (max-width: 768px) {
    .hero-bg {
        background-attachment: scroll;
    }
}

.glassmorphism {
    background: rgba(10, 10, 26, 0.6);
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
    border: 1px solid rgba(255, 255, 255, 0.1);
}

.btn-glow-cyan {
    box-shadow: 0 0 5px #22d3ee, 0 0 15px #22d3ee, 0 0 25px #22d3ee;
}

.btn-glow-purple {
    box-shadow: 0 0 5px #8b5cf6, 0 0 15px #8b5cf6, 0 0 25px #8b5cf6;
}

.grid-bg {
    background-image:
        linear-gradient(to right, rgba(55, 65, 81, .3) 1px, transparent 1px),
        linear-gradient(to bottom, rgba(55, 65, 81, .3) 1px, transparent 1px);
    background-size: 2rem 2rem;
}

/* Scroll reveal */
.reveal {
    position: relative;
    transform: translateY(80px);
    opacity: 0;
    transition: transform .8s ease, opacity .8s ease;
}

.reveal.active {
    transform: translateY(0);
    opacity: 1;
}

/* Reduced motion support */
@media (prefers-reduced-motion: reduce) {
    .reveal {
        transition: none;
        transform: none;
        opacity: 1;
    }

    html {
        scroll-behavior: auto;
    }
}

/* Visually hidden but accessible text (sr-only) */
.sr-only {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}