/* ============================================ 2. BASE / RESET ============================================ */
*, *::before, *::after { margin: 0; padding: 0; box-sizing: border-box; }
body {
    font-family: var(--font-sans); background-color: var(--bg-deep); color: var(--text-primary);
    min-height: 100vh; min-height: 100dvh; overflow-x: hidden;
    -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale;
    font-size: 15px; line-height: 1.6;
}
body::before {
    content: ''; position: fixed; inset: 0; pointer-events: none; z-index: -1;
    background: radial-gradient(ellipse at 50% 0%, var(--time-accent-bg, transparent) 0%, transparent 70%);
    opacity: 0.04; transition: background 10s ease;
}
:root[data-theme="light"] body::before {
    background:
        radial-gradient(ellipse at 8% 0%, rgba(205, 129, 83, 0.22) 0%, transparent 48%),
        radial-gradient(ellipse at 92% 10%, rgba(120, 135, 100, 0.16) 0%, transparent 42%),
        linear-gradient(135deg, #fbf8ef 0%, #f2eadc 100%);
    opacity: 1;
}
body::after {
    content: ''; position: fixed; inset: 0; opacity: 0.025; pointer-events: none; z-index: 9998;
    background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.7' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}
:root[data-theme="light"] body::after { opacity: 0.018; mix-blend-mode: multiply; }
::-webkit-scrollbar { width: 5px; }
::-webkit-scrollbar-track { background: transparent; }
::-webkit-scrollbar-thumb { background: rgba(138,133,120,0.3); border-radius: 3px; }
::-webkit-scrollbar-thumb:hover { background: rgba(138,133,120,0.5); }
.hidden { display: none !important; }
button { background: none; border: none; cursor: pointer; font-family: inherit; color: inherit; }
a { color: var(--accent-gold); text-decoration: none; }
button,
a,
[role="button"],
[role="tab"],
summary {
    -webkit-tap-highlight-color: transparent;
    touch-action: manipulation;
}
button:disabled,
[aria-disabled="true"] {
    cursor: not-allowed;
}
:where(button, a, [role="button"], [role="tab"], summary):focus-visible {
    outline: none;
    box-shadow: var(--interactive-focus-ring);
}
@media (hover: hover) and (pointer: fine) {
    a:hover {
        color: var(--text-primary);
        text-decoration: underline;
        text-decoration-color: color-mix(in srgb, var(--accent-gold) 62%, transparent);
        text-underline-offset: 3px;
    }
}
@media (prefers-reduced-motion: reduce) {
    *,
    *::before,
    *::after {
        scroll-behavior: auto !important;
    }
}


@keyframes fadeInUp { from { opacity: 0; transform: translateY(12px); } to { opacity: 1; transform: translateY(0); } }
@keyframes fadeIn { from { opacity: 0; } to { opacity: 1; } }
