/* ===== THEME VARIABLES ===== */
:root {
    /* Light theme (default) */
    --color-bg: 255 255 255;
    --color-bg-100: 248 250 252;
    --color-bg-200: 241 245 249;
    --color-text: 15 23 42;
    --color-text-muted: 100 116 139;
    --color-primary: 108 58 255;
    --color-primary-light: 124 58 237;
    --color-primary-dark: 85 33 204;
    --color-accent: 0 180 210;
    --color-accent-green: 0 180 100;
    --cursor-glow: rgba(108, 58, 255, 0.08);
    --bg-grid-color: rgba(108, 58, 255, 0.04);
}

html.dark {
    /* Dark theme */
    --color-bg: 10 10 26;
    --color-bg-100: 18 18 42;
    --color-bg-200: 26 26 62;
    --color-text: 240 240 255;
    --color-text-muted: 136 136 170;
    --color-primary: 108 58 255;
    --color-primary-light: 139 92 246;
    --color-primary-dark: 85 33 204;
    --color-accent: 0 240 255;
    --color-accent-green: 0 255 148;
    --cursor-glow: rgba(108, 58, 255, 0.12);
    --bg-grid-color: rgba(108, 58, 255, 0.03);
}

/* ===== REVEAL ANIMATION ===== */
.reveal {
    opacity: 0;
    transform: translateY(40px);
    transition: all 0.8s cubic-bezier(0.16, 1, 0.3, 1);
}
.reveal.active {
    opacity: 1;
    transform: translateY(0);
}

/* ===== TERMINAL LINE ANIMATION ===== */
@keyframes typeLine {
    from { opacity: 0; transform: translateX(-10px); }
    to { opacity: 1; transform: translateX(0); }
}

/* ===== BACKGROUND GRID ===== */
.bg-grid {
    background-image:
        linear-gradient(var(--bg-grid-color) 1px, transparent 1px),
        linear-gradient(90deg, var(--bg-grid-color) 1px, transparent 1px);
    background-size: 60px 60px;
}

/* ===== THEME TOGGLE BUTTON ===== */
#themeToggle {
    display: flex;
    align-items: center;
    justify-content: center;
    color: rgb(var(--color-text-muted));
    background: transparent;
    border: none;
    cursor: pointer;
    transition: color 0.2s ease;
    flex-shrink: 0;
    padding: 0.25rem;
}
#themeToggle:hover {
    color: rgb(var(--color-text));
}
html.dark #themeToggle,
html.dark #themeToggleMobile {
    color: #38bdf8;
}
html.dark #themeToggle:hover,
html.dark #themeToggleMobile:hover {
    color: #7dd3fc;
}

/* ===== THEME DROPDOWN MENU ===== */
.theme-menu-panel {
    background: rgb(var(--color-bg-100));
    border: 1px solid rgb(var(--color-primary) / 0.2);
    box-shadow: 0 8px 30px rgb(0 0 0 / 0.15);
}

.theme-option {
    color: rgb(var(--color-text-muted));
    background: transparent;
    cursor: pointer;
    transition: background 0.15s ease, color 0.15s ease;
    text-align: left;
}
.theme-option:hover {
    background: rgb(var(--color-primary) / 0.08);
    color: rgb(var(--color-text));
}
.theme-option.active {
    color: rgb(var(--color-primary-light));
    font-weight: 600;
}

/* ===== CURSOR GLOW THEME ===== */
#cursorGlow {
    background: radial-gradient(circle, var(--cursor-glow) 0%, transparent 70%);
}

/* ===== FADE IN UP ===== */
@keyframes fadeInUp {
    from { opacity: 0; transform: translateY(30px); }
    to { opacity: 1; transform: translateY(0); }
}
