/* ===========================================
   ASTRO GAMING — Custom Styles (Tailwind companion)
   Only styles that are difficult / verbose in Tailwind utilities
   =========================================== */

/* ---------- Hero Grid Overlay ---------- */
.hero-grid {
    background-image:
        linear-gradient(rgba(255,255,255,0.025) 1px, transparent 1px),
        linear-gradient(90deg, rgba(255,255,255,0.025) 1px, transparent 1px);
    background-size: 32px 32px;
    transform: perspective(500px) rotateX(60deg) translateY(-100px) scale(3);
    animation: gridMove 20s linear infinite;
    pointer-events: none;
}

@keyframes gridMove {
    0%   { transform: perspective(500px) rotateX(60deg) translateY(0)    scale(3); }
    100% { transform: perspective(500px) rotateX(60deg) translateY(30px) scale(3); }
}

/* ---------- Button Styles ---------- */

/* Primary — gradient purple */
.btn-primary-style {
    background: linear-gradient(45deg, #9d4edd, #7b2cbf);
    color: #fff;
    box-shadow: 0 4px 15px rgba(157, 78, 221, 0.3);
    transition: all 0.3s cubic-bezier(0.25, 0.8, 0.25, 1);
    display: inline-block;
    text-decoration: none;
}
.btn-primary-style:hover {
    transform: translateY(-2px);
    box-shadow: 0 6px 24px rgba(157, 78, 221, 0.6);
    color: #fff;
}

/* Outline — cyan border */
.btn-outline-style {
    background: transparent;
    border: 1px solid #00f0ff;
    color: #00f0ff;
    transition: all 0.3s cubic-bezier(0.25, 0.8, 0.25, 1);
    display: inline-block;
    text-decoration: none;
}
.btn-outline-style:hover {
    background: rgba(0, 240, 255, 0.1);
    box-shadow: 0 0 18px rgba(0, 240, 255, 0.4);
    transform: translateY(-2px);
}

/* Glow — fill sweep effect */
.btn-glow-style {
    position: relative;
    overflow: hidden;
    z-index: 1;
    border: 1px solid #9d4edd;
    color: #e0aaff;
    background: transparent;
    transition: color 0.35s ease, box-shadow 0.35s ease;
    display: inline-block;
    text-decoration: none;
}
.btn-glow-style::before {
    content: '';
    position: absolute;
    inset: 0;
    background: #9d4edd;
    transform: scaleX(0);
    transform-origin: left;
    transition: transform 0.35s cubic-bezier(0.25, 0.8, 0.25, 1);
    z-index: -1;
}
.btn-glow-style:hover::before { transform: scaleX(1); }
.btn-glow-style:hover {
    color: #fff;
    box-shadow: 0 0 24px #9d4edd;
}

/* ---------- Scroll Fade-In ---------- */
.fade-in {
    opacity: 0;
    transform: translateY(28px);
    transition: opacity 0.75s ease, transform 0.75s ease;
}
.fade-in.appear {
    opacity: 1;
    transform: translateY(0);
}

/* ---------- Mobile nav max-height transition ---------- */
#mobile-nav {
    transition: max-height 0.4s ease;
}
#mobile-nav.open {
    max-height: 400px;
}
