/* Base styles */
body {
    margin: 0;
    padding: 0;
    background-color: #0f172a; /* Dark navy background */
    color: #e5e5e5;
}

/* Background with radial gradients */
.bg-mesh {
    background-image: 
        radial-gradient(at 40% 20%, rgba(56, 189, 248, 0.05) 0px, transparent 50%),
        radial-gradient(at 80% 0%, rgba(168, 85, 247, 0.05) 0px, transparent 50%),
        radial-gradient(at 0% 50%, rgba(56, 189, 248, 0.05) 0px, transparent 50%),
        radial-gradient(at 80% 50%, rgba(168, 85, 247, 0.05) 0px, transparent 50%),
        radial-gradient(at 0% 100%, rgba(56, 189, 248, 0.05) 0px, transparent 50%),
        radial-gradient(at 80% 100%, rgba(168, 85, 247, 0.05) 0px, transparent 50%),
        radial-gradient(at 0% 0%, rgba(56, 189, 248, 0.05) 0px, transparent 50%);
    min-height: 100vh;
}

/* Transparent “glass” effect for containers (nav, sections, etc.) */
.glass {
    background: rgba(255, 255, 255, 0.03);
    backdrop-filter: blur(20px);
    border: 1px solid rgba(255, 255, 255, 0.05);
}

/* Tailwind breakpoints with some custom fallback for mobile devices */
@media only screen and (max-width: 768px),
       only screen and (max-device-width: 768px),
       only screen and (-webkit-min-device-pixel-ratio: 2),
       only screen and (hover: none) {
    /* Example override for a certain section on mobile */
    #software .glass {
        background-color: #0f172a !important;
        background: #0f172a !important;
        backdrop-filter: none !important;
        -webkit-backdrop-filter: none !important;
        border: none !important;
    }

    /* Ensures content layers properly if background was removed */
    #software .glass::before {
        content: '';
        position: absolute;
        top: 0; left: 0; right: 0; bottom: 0;
        background: #0f172a;
        z-index: -1;
    }
}

@media (pointer: coarse) {
    #software .glass {
        background-color: #0f172a !important;
        background: #0f172a !important;
    }
}

/* Gradient border utility */
.gradient-border {
    position: relative;
    border: double 1px transparent;
    background-image: 
        linear-gradient(#0f172a, #0f172a), 
        linear-gradient(to right, rgba(56, 189, 248, 0.2), rgba(168, 85, 247, 0.2));
    background-origin: border-box;
    background-clip: padding-box, border-box;
}

/* Gradient text styling for headings or stats */
.gradient-text {
    background: linear-gradient(135deg, #38bdf8 0%, #a855f7 100%);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
}

/* Animated stat numbers (if used) */
.stat-number {
    background: linear-gradient(135deg, #38bdf8 0%, #a855f7 100%);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
    font-size: 2.5rem;
    font-weight: 200;
    letter-spacing: 0.05em;
    opacity: 0;
    transform: translateY(20px);
    transition: opacity 0.5s ease, transform 0.5s ease;
}

.stat-number.visible {
    opacity: 1;
    transform: translateY(0);
}

/* Hover elevation for “card” elements */
.card-hover {
    transition: all 0.3s ease;
}

.card-hover:hover {
    transform: translateY(-5px);
    box-shadow: 0 10px 30px -5px rgba(56, 189, 248, 0.1);
}

/* Input focus state for forms */
input:focus, textarea:focus {
    outline: none;
    box-shadow: 0 0 0 2px rgba(56, 189, 248, 0.2);
}

/* Hover button effect */
.hover-button {
    transition: all 0.2s ease;
}

.hover-button:hover {
    opacity: 0.9;
    transform: translateY(-1px);
}

/* Force dark theme background */
html, body {
    background-color: #0f172a !important;
}

/* Example styling for “software cards” in your portfolio */
.software-card {
    background: rgba(15, 23, 42, 0.8);
    backdrop-filter: blur(20px);
    -webkit-backdrop-filter: blur(20px);
}

/* On hover, slightly darken and elevate the card */
.software-card.card-hover:hover {
    background: rgba(15, 23, 42, 0.9);
    transform: translateY(-5px);
    box-shadow: 0 10px 30px -5px rgba(56, 189, 248, 0.1);
}
