*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
    margin: 0;
    color: var(--text);
    background: var(--background);
    font-family: var(--font-sans);
    font-size: 1rem;
    line-height: 1.65;
    word-break: keep-all;
    overflow-wrap: break-word;
}
body.drawer-open, body.modal-open { overflow: hidden; }
img { display: block; max-width: 100%; }
a { color: inherit; text-decoration: none; }
button, input, textarea, select { font: inherit; }
button { color: inherit; }
ul, ol { margin: 0; padding: 0; list-style: none; }
h1, h2, p, dl, dd { margin: 0; }
.shell { width: min(calc(100% - 3rem), var(--content-width)); margin-inline: auto; }
.shell--wide { width: min(calc(100% - 3rem), var(--wide-width)); }
.skip-link {
    position: fixed; left: 1rem; top: 1rem; z-index: 1000; transform: translateY(-160%);
    padding: 0.75rem 1rem; color: var(--white); background: var(--primary); border-radius: var(--radius-small);
}
.skip-link:focus { transform: translateY(0); }
:focus-visible { outline: 3px solid #c9a66b; outline-offset: 4px; }
.eyebrow {
    color: rgba(255, 255, 255, 0.78); font-size: 0.75rem; font-weight: 700;
    letter-spacing: 0.28em; line-height: 1.4;
}
.eyebrow--dark { color: var(--secondary); }
.reveal { opacity: 0; transform: translateY(16px); transition: opacity 600ms ease var(--delay, 0ms), transform 600ms ease var(--delay, 0ms); }
.reveal.is-visible { opacity: 1; transform: none; }
