/* Reset + base */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; overflow-x: clip; overflow-y: scroll; }
body {
    margin: 0;
    font-family: var(--font-body);
    font-size: var(--fs-md);
    line-height: var(--lh-normal);
    color: var(--color-text);
    background: var(--color-bg);
    -webkit-font-smoothing: antialiased;
    text-rendering: optimizeLegibility;
}
img, svg, video { max-width: 100%; display: block; }
button { font: inherit; color: inherit; background: none; border: none; cursor: pointer; padding: 0; }
a { color: inherit; text-decoration: none; transition: color var(--dur-fast) var(--ease), opacity var(--dur-fast) var(--ease); }
a:hover { opacity: .85; }
input, select, textarea { font: inherit; color: inherit; }
ul, ol { padding: 0; margin: 0; list-style: none; }
h1, h2, h3, h4, h5, h6 { margin: 0; font-family: var(--font-heading); font-weight: 700; line-height: var(--lh-tight); letter-spacing: -0.01em; }
p { margin: 0; }
::selection { background: var(--color-accent); color: var(--color-bg); }

.container {
    width: 100%;
    max-width: var(--container-max);
    margin: 0 auto;
    padding-left: var(--container-pad);
    padding-right: var(--container-pad);
}

.muted { color: var(--color-text-muted); }

/* Animations: scroll-triggered */
[data-anim] {
    opacity: 0;
    transform: translateY(28px);
    transition: opacity 700ms var(--ease), transform 700ms var(--ease);
    will-change: opacity, transform;
}
[data-anim="fade-in"]  { transform: none; }
[data-anim="fade-up"]  { transform: translateY(28px); }
[data-anim="fade-down"]{ transform: translateY(-28px); }
[data-anim="fade-left"]{ transform: translateX(28px); }
[data-anim="fade-right"]{ transform: translateX(-28px); }
[data-anim="zoom"]     { transform: scale(.95); transform-origin: center; }
[data-anim].is-visible { opacity: 1; transform: none; }

@media (prefers-reduced-motion: reduce) {
    [data-anim] { transition: none !important; opacity: 1 !important; transform: none !important; }
    html { scroll-behavior: auto; }
}
