html,
body {
    height: 100%;
}

body {
    scroll-behavior: smooth;
    font-family: 'Roboto', Helvetica, Arial, sans-serif !important;
    font-weight: 400;
    user-select: none;
}

* {
    border-radius: 0 !important;
}

nav [data-tab-target] {
    color: rgba(255, 255, 255, 0.6);
    transition: color 0.25s ease, transform 0.25s ease;
}

.brand-title {
    font-family: 'Oswald', sans-serif;
    font-weight: 400;
    color: #ffffff;
    background-color: #003467;
    padding: 0.9rem 1rem 1rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    letter-spacing: 0.12em;
}

.font-oswald {
    font-family: 'Oswald', sans-serif;
}

.panel {
    position: relative;
}

[data-fullscreen-menu],
[data-credit-overlay] {
    transition: opacity 0.4s ease;
}

[data-credit-panel] {
    transition: transform 0.4s ease, opacity 0.4s ease;
}

[data-credit-row] p {
    text-shadow: 1px 1px 2px rgba(0, 0, 0, 0.85);
}

.flicker,
.color-cycle,
.color-jump {
    animation: colorJump 6s steps(6) infinite;
}

.brand-glow {
    color: #ffffff;
    animation: none;
    text-shadow: 0 0 14px rgba(0, 52, 103, 1), 0 0 30px rgba(0, 52, 103, 0.95), 0 0 60px rgba(0, 52, 103, 0.85);
}

@keyframes glowSpin {
    0%, 25%, 50%, 75%, 100% { text-shadow: 0 0 14px rgba(0, 52, 103, 1), 0 0 30px rgba(0, 52, 103, 0.95), 0 0 60px rgba(0, 52, 103, 0.85); }
}

@keyframes colorJump {
    0% { color: hsl(0, 100%, 50%); }
    20% { color: hsl(60, 100%, 50%); }
    40% { color: hsl(120, 100%, 50%); }
    60% { color: hsl(200, 100%, 50%); }
    80% { color: hsl(280, 100%, 50%); }
    100% { color: hsl(340, 100%, 50%); }
}

[data-landing-bg] {
    filter: saturate(1.2) contrast(1.05);
}

[data-content-panel] {
    scroll-margin-top: 40px;
}

[data-menu-toggle] svg {
    display: block;
    transition: opacity 0.22s ease, transform 0.22s ease;
}
[data-menu-toggle] [data-icon="close"] {
    display: none;
}
[data-menu-toggle].is-open [data-icon="menu"] {
    display: none;
}
[data-menu-toggle].is-open [data-icon="close"] {
    display: block;
}

[data-sidebar].is-open [data-sidebar-nav] {
    margin-left: 14px;
}

.landing-justify {
    text-align: justify;
    text-align-last: center;
}

.landing-link {
    text-align: justify;
    text-align-last: center;
    white-space: nowrap;
}

.landing-line {
    display: block;
    width: 100vw;
    margin-left: 50%;
    transform: translateX(-50%);
    text-align: center;
    white-space: nowrap;
    letter-spacing: 0.32em;
}
