[data-theme="dark"] {
    --navy: #0f172a;
    --blue: #60a5fa;
    --sky: #082f49;
    --ink: #e2e8f0;
    --muted: #94a3b8;
    --white: #1e293b;
    color-scheme: dark;
}

body {
    transition: color 0.25s ease, background 0.25s ease;
}

.theme-toggle {
    position: fixed;
    top: 1.25rem;
    left: 1.25rem;
    z-index: 1100;
    border: 1px solid #93c5fd;
    border-radius: 999px;
    height: 43px;
    padding: 0 1.25rem;
    color: var(--white);
    background: var(--navy);
    box-shadow: 0 6px 18px #0f172a33;
    cursor: pointer;
    font: inherit;
    font-size: 16px;
    font-weight: 700;
    line-height: 1;
    transition: 0.2s ease;
}

nav button:not(.nav-toggle),
.theme-toggle {
    height: 43px !important;
    padding: 0 1.25rem !important;
    font-size: 16px !important;
    line-height: 1 !important;
}

html.menu-open,
body.menu-open,
body:has(nav.nav-open) {
    overflow: hidden;
}

.theme-toggle:hover,
.theme-toggle:focus-visible {
    color: var(--navy);
    background: #bfdbfe;
    transform: translateY(-2px);
}

[data-theme="dark"] body {
    color: #e2e8f0;
    background: linear-gradient(135deg, #0f172a, #111827 55%, #082f49);
}

[data-theme="dark"] nav {
    box-shadow: 0 4px 14px #02061766;
}

[data-theme="dark"] nav button,
[data-theme="dark"] .theme-toggle {
    color: #e2e8f0;
}

[data-theme="dark"] h1,
[data-theme="dark"] h3,
[data-theme="dark"] .experience > li::first-line {
    color: #e2e8f0;
}

[data-theme="dark"] h3 {
    color: #93c5fd;
}

[data-theme="dark"] nav button:hover,
[data-theme="dark"] nav a[aria-current="page"] button {
    color: #0f172a;
    background: #93c5fd;
}

[data-theme="dark"] .experience > li {
    color: #e2e8f0;
    background: #1e293b;
    border-color: #334155;
    box-shadow: 0 8px 22px #02061766;
}

[data-theme="dark"] .experience > li a {
    color: #93c5fd;
}

[data-theme="dark"] .transcript-links a:hover {
    background: #93c5fd;
    color: #0f172a;
}

[data-theme="dark"] .transcript-links a,
[data-theme="dark"] form button {
    color: #f8fafc;
}

[data-theme="dark"] form input,
[data-theme="dark"] form textarea {
    border-color: #475569;
    color: var(--ink);
    background: #0f172a;
}

@media (max-width: 480px) {
    .theme-toggle {
        top: 0.75rem;
        left: 0.75rem;
        padding: 0 1.25rem !important;
    }
}

@media (prefers-reduced-motion: reduce) {
    body,
    .theme-toggle {
        transition: none;
    }
}
