:root {
    --black: #090908;
    --charcoal: #11110f;
    --ivory: #f2ebdd;
    --soft-ivory: #dcd3c4;
    --gold: #b99a63;
    --muted-gold: #8e7447;
    --border: rgba(185, 154, 99, 0.28);
    --muted: #9e9587;
    --serif: "Playfair Display", Georgia, serif;
    --sans: "DM Sans", "Helvetica Neue", sans-serif;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; background: var(--black); color: var(--ivory); font-family: var(--sans); font-size: 15px; line-height: 1.6; }
a { color: inherit; }
main { min-height: 62vh; }
button, input, select, textarea { font: inherit; }
.flash-messages { position: fixed; z-index: 20; top: 86px; right: 24px; width: min(360px, calc(100% - 48px)); }
.alert { display: flex; justify-content: space-between; gap: 16px; padding: 14px 16px; margin-bottom: 10px; border: 1px solid var(--border); background: var(--charcoal); color: var(--soft-ivory); }
.alert-close { border: 0; background: transparent; color: var(--gold); cursor: pointer; }
.eyebrow { color: var(--gold); font-size: 11px; letter-spacing: .22em; text-transform: uppercase; }
.pill-button, .submit-button, .cta-button, .back-button, .nav-pill { display: inline-flex; align-items: center; justify-content: center; gap: 12px; min-height: 44px; padding: 10px 22px; border: 1px solid var(--gold); border-radius: 999px; background: transparent; color: var(--ivory); font-size: 11px; font-weight: 600; letter-spacing: .16em; text-decoration: none; text-transform: uppercase; cursor: pointer; transition: background .3s ease, color .3s ease, transform .3s ease, border-color .3s ease; }
.pill-button:hover, .submit-button:hover, .cta-button:hover, .back-button:hover, .nav-pill:hover { background: var(--gold); color: var(--black); transform: translateY(-2px); }
.pill-button::after, .submit-button::after, .cta-button::after, .back-button::after { content: "→"; font-size: 16px; }
