/* App shell defaults — theme.css must load first */

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

body {
    margin: 0;
    background-color: var(--color-base);
    color: var(--color-text);
    font-family: var(--font-ui);
    font-size: var(--spacing-base);
    line-height: var(--spacing-line-height);
}

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

a:hover {
    text-decoration: underline;
}

h1, h2, h3, h4, h5, h6 {
    font-family: var(--font-heading, var(--font-ui));
}

button {
    font-family: var(--font-ui);
    cursor: pointer;
}

input {
    font-family: var(--font-ui);
}

/* Sharp corners on all interactive elements (AC1.5) */
button,
input,
select,
textarea {
    border-radius: 0;
}

/* Scrollbar styling — thin, subtle, matching dark theme */

* {
    scrollbar-width: thin;
    scrollbar-color: var(--color-border) transparent;
}

::-webkit-scrollbar {
    width: 6px;
    height: 6px;
}

::-webkit-scrollbar-track {
    background: transparent;
}

::-webkit-scrollbar-thumb {
    background: var(--color-border);
}

::-webkit-scrollbar-thumb:hover {
    background: var(--color-subtle);
}

/* Content fade-in after hydration / client navigation */

@keyframes fade-in {
    from { opacity: 0; }
    to { opacity: 1; }
}

.browse-page {
    animation: fade-in 0.2s ease-out;
}
