:root {
    --color-primary: #0b1c33;
    --color-primary-deep: #071322;
    --color-primary-edge: #1c3d63;

    --color-secondary: #6eb6d4;
    --color-secondary-strong: #3d97bb;

    --color-accent: #c5363a;

    --color-paper: #f5f7fa;
    --color-ink: #122033;
    --color-muted: #5a6b7c;

    --font: "Inter", "Segoe UI", system-ui, sans-serif;

    --sidebar-expanded: clamp(16.5rem, 25vw, 22rem);
    --sidebar-collapsed: 45px;
    --sidebar-width: var(--sidebar-expanded);
    --sidebar-mobile: min(88vw, 22.5rem);

    --content-pad: clamp(1rem, 3vw, 2.25rem);
    --ease: 220ms ease;
}

html[data-sidebar="collapsed"] {
    --sidebar-width: var(--sidebar-collapsed);
}

*,
*::before,
*::after {
    box-sizing: border-box;
}

html {
    height: 100%;
    background: var(--color-paper);
}

body {
    margin: 0;
    height: 100%;
    overflow: hidden;
    font-family: var(--font);
    font-size: 1rem;
    line-height: 1.5;
    color: var(--color-ink);
    background: var(--color-paper);
}

img {
    max-width: 100%;
    height: auto;
}

a {
    color: var(--color-secondary-strong);
}

a:hover {
    color: var(--color-primary);
}

:focus-visible {
    outline: 2px solid var(--color-secondary);
    outline-offset: 3px;
}

.visually-hidden {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

.skip-link {
    position: absolute;
    left: 0.75rem;
    top: 0.75rem;
    z-index: 80;
    transform: translateY(-160%);
    background: var(--color-accent);
    color: #fff;
    text-decoration: none;
    padding: 0.5rem 0.8rem;
    font-weight: 600;
}

.skip-link:focus {
    transform: none;
    color: #fff;
}

.text-center {
    text-align: center;
}

.mt-3 {
    margin-top: 1rem;
}

.m-0 {
    margin: 0;
}

.text-white {
    color: #fff;
}

@media (max-width: 64rem) {
    :root,
    html[data-sidebar="collapsed"],
    html[data-sidebar="expanded"] {
        --sidebar-width: 0px;
    }
}

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