:root {
    color-scheme: dark;
}

html {
    scroll-padding-top: 5rem;
}

body {
    min-width: 320px;
    background:
        radial-gradient(circle at 15% 10%, rgba(99, 102, 241, 0.14), transparent 28rem),
        #0a192f;
}

.skip-link {
    position: fixed;
    left: 1rem;
    top: -4rem;
    z-index: 100;
    border-radius: 0.5rem;
    background: #c0c1ff;
    color: #1000a9;
    padding: 0.75rem 1rem;
    font-weight: 700;
    transition: top 160ms ease;
}

.skip-link:focus {
    top: 1rem;
}

.glass-panel {
    background: rgba(17, 34, 64, 0.6);
    border: 1px solid rgba(255, 255, 255, 0.1);
    box-shadow: 0 24px 60px rgba(0, 0, 0, 0.22);
    backdrop-filter: blur(14px);
}

.glass-nav {
    background: rgba(10, 25, 47, 0.76);
    border-bottom: 1px solid rgba(255, 255, 255, 0.06);
    backdrop-filter: blur(16px);
}

.nav-link {
    position: relative;
    color: #c7c4d7;
    font-size: 0.875rem;
    font-weight: 600;
    transition: color 180ms ease;
}

.nav-link::after {
    position: absolute;
    right: 0;
    bottom: -0.5rem;
    left: 0;
    height: 2px;
    background: #6366f1;
    content: '';
    opacity: 0;
    transform: scaleX(0.5);
    transition: opacity 180ms ease, transform 180ms ease;
}

.nav-link:hover,
.nav-link.active {
    color: #c0c1ff;
}

.nav-link.active::after {
    opacity: 1;
    transform: scaleX(1);
}

.btn-primary {
    background: #6366f1;
    color: #fff;
    box-shadow: 0 10px 30px rgba(99, 102, 241, 0.2);
    transition: transform 200ms ease, box-shadow 200ms ease, background-color 200ms ease;
}

.btn-primary:hover {
    background: #7477f5;
    box-shadow: 0 14px 36px rgba(99, 102, 241, 0.38);
    transform: translateY(-2px);
}

.btn-primary:disabled {
    cursor: wait;
    opacity: 0.65;
    transform: none;
}

.btn-ghost {
    background: rgba(0, 0, 0, 0.25);
    border: 1px solid rgba(255, 255, 255, 0.2);
    color: #d4e4fa;
    backdrop-filter: blur(6px);
    transition: background-color 200ms ease, border-color 200ms ease, transform 200ms ease;
}

.btn-ghost:hover {
    background: rgba(255, 255, 255, 0.1);
    border-color: rgba(255, 255, 255, 0.35);
    transform: translateY(-2px);
}

.chip {
    background: rgba(26, 26, 26, 0.72);
    color: #aeb9cc;
    backdrop-filter: blur(6px);
}

.section-label {
    color: #c0c1ff;
    font-size: 0.75rem;
    font-weight: 700;
    letter-spacing: 0.2em;
    text-transform: uppercase;
}

.project-card {
    transition: transform 240ms ease, border-color 240ms ease, box-shadow 240ms ease;
}

.project-card:hover {
    border-color: rgba(192, 193, 255, 0.28);
    box-shadow: 0 28px 70px rgba(0, 0, 0, 0.32);
    transform: translateY(-5px);
}

.input-field {
    background: rgba(1, 15, 31, 0.74);
    border: 1px solid rgba(255, 255, 255, 0.12);
    transition: border-color 180ms ease, box-shadow 180ms ease;
}

.input-field:focus {
    border-color: #8083ff;
    box-shadow: 0 0 0 3px rgba(99, 102, 241, 0.2);
    outline: none;
}

.mobile-menu {
    transition: opacity 220ms ease;
}

.fade-in-section {
    opacity: 0;
    transform: translateY(24px);
    transition: opacity 600ms ease, transform 600ms ease;
}

.fade-in-section.is-visible {
    opacity: 1;
    transform: none;
}

:focus-visible {
    outline: 2px solid #c0c1ff;
    outline-offset: 4px;
}

@media (prefers-reduced-motion: reduce) {
    html {
        scroll-behavior: auto;
    }

    *,
    *::before,
    *::after {
        scroll-behavior: auto !important;
        transition-duration: 0.01ms !important;
    }

    .fade-in-section {
        opacity: 1;
        transform: none;
    }
}
