a {
    color: var(--app-default-link-color);
    text-decoration: none;
}

a:hover {
    color: var(--app-default-link-hover-color);
}

a:visited:hover {
    color: var(--app-default-link-hover-color);
}

body {
    color: var(--app-default-text-color);
    scrollbar-color: var(--app-bg-secondary) transparent;
}

.loader-orbital {
    width: 48px;
    height: 48px;
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
}

.loader-ring {
    position: absolute;
    inset: 0;
    border-radius: 50%;
    border: 2.5px solid transparent;
    border-top-color: var(--app-primary);
    border-right-color: var(--app-primary);
    animation: orbital-spin 900ms cubic-bezier(0.6, 0.2, 0.4, 0.8) infinite;
}

.loader-ring--delay {
    inset: 8px;
    border-top-color: transparent;
    border-right-color: transparent;
    border-bottom-color: var(--app-primary);
    border-left-color: var(--app-primary);
    opacity: 0.5;
    animation-duration: 700ms;
    animation-direction: reverse;
}

.loader-core {
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: var(--app-primary);
    animation: core-pulse 900ms ease-in-out infinite alternate;
}

@keyframes orbital-spin {
    0%   { transform: rotate(0deg); }
    100% { transform: rotate(360deg); }
}

@keyframes core-pulse {
    from { transform: scale(0.6); opacity: 0.4; }
    to   { transform: scale(1.3); opacity: 1; }
}
