@tailwind base;
@tailwind components;
@tailwind utilities;

:root {
    --bg-color: #0f172a; /* slate-900 */
    --text-color: #cbd5e1; /* slate-300 */
    --primary-color: #22d3ee; /* cyan-400 */
    --secondary-color: #64748b; /* slate-500 */
}

html {
    scroll-behavior: smooth;
}

body {
    font-family: 'Noto Sans SC', sans-serif;
    background-color: var(--bg-color);
    color: var(--text-color);
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

#header.scrolled {
    background-color: rgba(15, 23, 42, 0.85); /* slate-900 with opacity */
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
    border-bottom: 1px solid rgb(51 65 85);
}

.nav-link {
    position: relative;
    padding: 0.5rem 0;
}

.nav-link::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 0;
    width: 0;
    height: 2px;
    background-color: var(--primary-color);
    transition: width 0.3s ease-in-out;
}

.nav-link:hover::after,
.nav-link.active::after {
    width: 100%;
}

.nav-link.active {
    color: var(--primary-color);
}

.btn-primary {
    @apply inline-block bg-cyan-500 text-white font-semibold py-2 px-6 rounded-full transition-all duration-300;
    @apply hover:bg-cyan-400 hover:shadow-lg hover:shadow-cyan-500/20 transform hover:-translate-y-0.5;
}

.animate-fade-in-down {
    animation: fadeInDown 1s ease-out forwards;
    opacity: 0;
}

.animate-fade-in-up {
    animation: fadeInUp 1s ease-out 0.5s forwards;
    opacity: 0;
}

@keyframes fadeInDown {
    from {
        opacity: 0;
        transform: translateY(-20px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

@keyframes fadeInUp {
    from {
        opacity: 0;
        transform: translateY(20px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

.page-hero {
    background-image: radial-gradient(circle, rgba(30, 41, 59, 0.1) 0%, rgba(15, 23, 42, 0.9) 80%);
}

.business-card, .tech-card, .game-card {
    will-change: transform, border-color;
}

.prose blockquote {
    border-left-color: var(--primary-color);
}

.game-card-image {
    @apply w-full h-40 object-cover;
}
