/* css/style.css */
body {
    font-family: 'Inter', sans-serif;
    background-color: #000000;
    color: #E0E0E0;
    scroll-behavior: smooth;
    margin: 0; /* Ensure no default margin */
    padding-top: 5rem; /* Global padding for sticky header (height of header is h-20 which is 5rem) */
}

.header-footer-bg {
    background-color: #0A0A0A;
}

.rainbow-gradient-text {
    background: linear-gradient(90deg, #FF00FF, #00FFFF, #FFFF00, #FF00FF);
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent;
    animation: rainbow-flow 10s ease-in-out infinite;
    background-size: 400% 100%;
}

.rainbow-gradient-border {
    border-image-source: linear-gradient(90deg, #FF00FF, #00FFFF, #FFFF00, #FF00FF);
    border-image-slice: 1;
    border-image-repeat: round;
}

.rainbow-border-bottom {
    border-bottom-width: 2px;
    border-bottom-style: solid;
    border-image-source: linear-gradient(to right, #FF00FF, #00FFFF, #FFFF00);
    border-image-slice: 1;
}

.rainbow-accent-bg {
    background: linear-gradient(90deg, rgba(255,0,255,0.7), rgba(0,255,255,0.7), rgba(255,255,0,0.7));
}

.nav-link {
    /* Tailwind classes will be applied directly in HTML for nav-links */
    /* Base styling can go here if needed, but Tailwind handles most */
}

.nav-link.active {
    /* This class will be dynamically added by JS */
    /* The rainbow-border-bottom effect is defined in Tailwind utilities in the HTML */
}

.page-section {
    /* No longer needed for SPA display logic */
    padding-bottom: 3rem; /* Add some padding at the bottom of content sections */
    min-height: calc(100vh - 10rem - 3rem); /* Full height minus header, body top padding, and its own bottom padding */
}

.card {
    background-color: #1A1A1A;
    border: 1px solid #333;
    transition: transform 0.3s ease, box-shadow 0.3s ease;
    overflow: hidden;
}

.card:hover {
    transform: translateY(-5px) scale(1.02);
    box-shadow: 0 10px 20px rgba(0, 255, 255, 0.2), 0 0 15px rgba(255,0,255,0.2);
}

.btn-primary {
    /* Tailwind classes will be applied directly in HTML */
    background-size: 200% auto; /* For hover gradient animation */
}

.btn-primary:hover {
    background-position: right center; /* Change gradient direction on hover */
}

@keyframes rainbow-flow {
    0%{background-position:0% 50%}
    50%{background-position:100% 50%}
    100%{background-position:0% 50%}
}

::-webkit-scrollbar {
    width: 8px;
    height: 8px;
}
::-webkit-scrollbar-track {
    background: #111;
    border-radius: 10px;
}
::-webkit-scrollbar-thumb {
    background: linear-gradient(45deg, #FF00FF, #00FFFF);
    border-radius: 10px;
}
::-webkit-scrollbar-thumb:hover {
    background: linear-gradient(45deg, #00FFFF, #FF00FF);
}
html {
  scrollbar-color: linear-gradient(45deg, #FF00FF, #00FFFF) #111;
  scrollbar-width: thin;
}

.pixel-title {
    font-weight: 900;
    letter-spacing: 0.05em;
    position: relative;
    display: inline-block;
}

.form-input {
    @apply w-full px-4 py-3 rounded-lg bg-gray-800 border border-gray-700 text-gray-200 focus:outline-none focus:ring-2 focus:ring-cyan-500 focus:border-transparent placeholder-gray-500;
}
.form-textarea {
    @apply w-full px-4 py-3 rounded-lg bg-gray-800 border border-gray-700 text-gray-200 focus:outline-none focus:ring-2 focus:ring-cyan-500 focus:border-transparent placeholder-gray-500 min-h-[120px];
}

/* Added to hide elements initially if needed for JS, e.g. mobile menu */
.hidden {
    display: none;
}