:root {
    --terminal-font: Consolas, "SFMono-Regular", "Liberation Mono", Menlo, monospace;
}

html[data-bs-theme="light"] {
    --primary: #047481;
    --accent: #0891b2;
    --text-main: #0f172a;
    --text-muted: #526173;
    --bg-body: #f6f8fb;
    --bg-section: transparent;
    --bg-alt: transparent;
    --card-bg: #ffffff;
    --card-border: rgba(15, 23, 42, 0.14);
    --card-shadow: none;
    --card-shadow-hover: none;
    --pill-bg: #eef8fa;
    --pill-text: #075985;
    --pill-border: #b8e4ec;
    --nav-bg: rgba(246, 248, 251, 0.88);
    --nav-link-hover: rgba(8, 145, 178, 0.09);
    --shot-from: #f8fafc;
    --shot-to: #eef8fa;
    --shot-border: rgba(15, 23, 42, 0.16);
    --input-bg: #ffffff;
    --focus-ring: rgba(8, 145, 178, 0.22);
    --gallery-bg: #f6f8fb;
    --gallery-panel: #ffffff;
    --gallery-border: rgba(15, 23, 42, 0.14);
    --gallery-caption-bg: rgba(246, 248, 251, 0.92);
}

html[data-bs-theme="dark"] {
    --primary: #5eead4;
    --accent: #22d3ee;
    --text-main: #e6edf3;
    --text-muted: #8da2b6;
    --bg-body: #050a12;
    --bg-section: transparent;
    --bg-alt: transparent;
    --card-bg: #0b1220;
    --card-border: rgba(148, 163, 184, 0.16);
    --card-shadow: none;
    --card-shadow-hover: none;
    --pill-bg: #07131f;
    --pill-text: #99f6e4;
    --pill-border: rgba(94, 234, 212, 0.24);
    --nav-bg: rgba(5, 10, 18, 0.9);
    --nav-link-hover: rgba(94, 234, 212, 0.08);
    --shot-from: #08111f;
    --shot-to: #0b1220;
    --shot-border: rgba(148, 163, 184, 0.2);
    --input-bg: #08111f;
    --focus-ring: rgba(94, 234, 212, 0.2);
    --gallery-bg: #050a12;
    --gallery-panel: #0b1220;
    --gallery-border: rgba(148, 163, 184, 0.16);
    --gallery-caption-bg: rgba(5, 10, 18, 0.9);
}

html:not([data-bs-theme]):not([data-theme="light"]) {
    color-scheme: dark;
    --bg: #050a12;
    --surface: #0b1220;
    --surface-strong: #111827;
    --border: rgba(148, 163, 184, 0.16);
    --accent: #5eead4;
    --accent-strong: #22d3ee;
    --text: #e6edf3;
    --muted: #8da2b6;
    --success: #4ade80;
    --warning: #fbbf24;
    --danger: #fb7185;
    --code: #dbeafe;
    --shadow: none;
    --radius: 8px;
}

html:not([data-bs-theme])[data-theme="light"] {
    color-scheme: light;
    --bg: #f6f8fb;
    --surface: #ffffff;
    --surface-strong: #eef2f7;
    --border: rgba(15, 23, 42, 0.14);
    --accent: #047481;
    --accent-strong: #0891b2;
    --text: #0f172a;
    --muted: #526173;
    --success: #15803d;
    --warning: #b45309;
    --danger: #be123c;
    --code: #1e293b;
    --shadow: none;
    --radius: 8px;
}

body {
    background:
        linear-gradient(rgba(148, 163, 184, 0.035) 1px, transparent 1px),
        linear-gradient(90deg, rgba(148, 163, 184, 0.035) 1px, transparent 1px),
        var(--bg-body, var(--bg));
    background-size: 32px 32px, 32px 32px, auto;
    font-family: var(--terminal-font);
}

.bg-blob {
    display: none !important;
}

.nav-shell,
.profile-card,
.custom-card,
.project-shot,
.game-card,
.hero,
.game-modal,
.panel,
.stat-box,
.item-card,
.cart-item,
.code-block,
.dialog-message {
    border-radius: 8px !important;
    box-shadow: none !important;
}

.nav-shell {
    max-width: min(1120px, calc(100% - 2rem));
    border-color: var(--card-border, var(--border)) !important;
    background: var(--nav-bg, rgba(5, 10, 18, 0.9)) !important;
}

.navbar-brand,
.logo,
.hero-name,
.hero-title,
.section-title,
.section-heading h2,
.modal-title,
.gallery-title {
    font-family: var(--terminal-font);
    letter-spacing: 0;
}

.navbar-brand::before,
.logo::before {
    content: "$ ";
    color: var(--primary, var(--accent));
}

.section-title::before {
    content: "./";
    color: var(--primary);
}

.hero-name {
    background: none !important;
    color: var(--text-main) !important;
    -webkit-text-fill-color: currentColor !important;
}

.hero-role::before {
    content: "> ";
    color: var(--primary);
}

.nav-link,
.mode-toggle,
.theme-toggle,
.btn,
.game-card button,
.gallery-back,
.lightbox-close,
.lightbox-nav,
.modal-close,
.card-button,
input[type="text"],
textarea,
.form-control {
    border-radius: 6px !important;
}

.nav-link,
.mode-toggle,
.theme-toggle,
.btn,
.badge,
.skill-badge,
.status-pill,
.chip,
.gallery-back,
.lightbox-path,
.lightbox-close,
.lightbox-nav,
.lightbox-counter {
    font-family: var(--terminal-font);
}

.mode-toggle,
.theme-toggle,
.btn.secondary,
.btn-outline-primary,
.form-control,
input[type="text"],
textarea {
    border-color: var(--card-border, var(--border)) !important;
}

.nav-link:hover,
.nav-link:focus-visible,
.mode-toggle:hover,
.mode-toggle:focus-visible,
.theme-toggle:hover,
.theme-toggle:focus-visible,
.btn-outline-primary:hover,
.btn-outline-primary:focus-visible,
.btn.secondary:hover,
.btn.secondary:focus-visible {
    border-color: var(--primary, var(--accent)) !important;
    color: var(--text-main, var(--text)) !important;
}

.btn-primary,
.btn.primary,
.game-card button {
    border: 1px solid var(--primary, var(--accent)) !important;
    background: var(--primary, var(--accent)) !important;
    color: #031314 !important;
}

.btn-primary:hover,
.btn-primary:focus-visible,
.btn.primary:hover,
.btn.primary:focus-visible,
.game-card button:hover,
.game-card button:focus-visible {
    background: var(--accent, var(--accent-strong)) !important;
    border-color: var(--accent, var(--accent-strong)) !important;
    color: #031314 !important;
}

.btn-outline-primary {
    background: transparent !important;
    color: var(--primary) !important;
}

.profile-card,
.custom-card {
    background: var(--card-bg) !important;
    border-color: var(--card-border) !important;
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
}

.custom-card:hover,
.game-card:hover,
.game-card:focus-within {
    transform: translateY(-2px) !important;
    border-color: var(--primary, var(--accent)) !important;
}

.skill-badge,
.skill-badge.rounded-pill,
.badge,
.status-pill,
.chip {
    border-radius: 4px !important;
}

.project-shot {
    border-style: solid !important;
    background: var(--input-bg) !important;
}

.profile-card img,
.project-shot img,
.game-icon,
.item-emoji {
    border-radius: 6px !important;
}

.form-control:focus,
input[type="text"]:focus,
textarea:focus {
    border-color: var(--primary, var(--accent)) !important;
    box-shadow: 0 0 0 3px var(--focus-ring, rgba(94, 234, 212, 0.2)) !important;
}

.scroll-top {
    border-radius: 8px !important;
    box-shadow: none !important;
}

.footer {
    border-top: 1px solid var(--card-border, var(--border));
}

.game-icon,
.item-emoji {
    background: rgba(94, 234, 212, 0.09) !important;
    color: var(--accent);
}

.game-card,
.panel,
.stat-box,
.item-card,
.cart-item {
    background: var(--surface) !important;
    border-color: var(--border) !important;
}

.game-modal {
    background: var(--surface) !important;
    border-color: var(--border) !important;
}

.modal-backdrop {
    background: rgba(0, 0, 0, 0.86) !important;
}

.code-block {
    background: #050a12 !important;
    border-color: var(--border) !important;
}

.gallery-thumb,
.gallery-item,
.lightbox-shell {
    border-radius: 8px !important;
}

.gallery-item {
    background: var(--gallery-panel) !important;
    border-color: var(--gallery-border) !important;
}

.gallery-item:hover,
.gallery-item:focus-within {
    border-color: var(--primary) !important;
}

.gallery-title::before {
    content: "$ cd ";
    color: var(--primary);
}

.lightbox {
    background: rgba(0, 0, 0, 0.92) !important;
}

@media (prefers-reduced-motion: reduce) {
    *,
    *::before,
    *::after {
        scroll-behavior: auto !important;
    }
}
