:root, [data-bs-theme="dark"] {
    --bs-primary: #d8b77a;
    --bs-primary-rgb: 216, 183, 122;
    --bs-body-bg: #161a16;
    --bs-body-color: #f2eadb;
    --bs-secondary-color: #bdb9a8;
    --bs-border-color: #4a4c3e;
    --bs-link-color: #ddbd85;
    --bs-link-hover-color: #f5ddb4;
    --parlour-gold: #d8b77a;
    --parlour-muted: #bdb9a8;
    --parlour-line: rgba(216, 183, 122, .23);
}
html { scroll-behavior: smooth; scroll-padding-top: 2rem; }
body {
    min-height: 100vh;
    display: flex;
    flex-direction: column;
    font-family: system-ui, -apple-system, sans-serif;
    font-size: .9375rem;
    line-height: 1.75;
    background-image: radial-gradient(ellipse at 80% 15%, rgba(111, 83, 40, .10), transparent 55%);
}
h1, h2, h3, .font-decorative, .footer-brand { font-family: Georgia, 'Times New Roman', serif; font-weight: 400; }
::selection { color: #161a16; background: #d8b77a; }
a, button { touch-action: manipulation; }
a { text-underline-offset: .25em; }
:focus-visible { outline: 2px solid #f0cc8d; outline-offset: 5px; }
.bg-wood-dark { background-color: #161a16 !important; }
.bg-wood-panel { background-color: #22271f !important; }
.bg-victorian-green { background-color: #17231e !important; }
.text-primary, .text-gold-leaf { color: var(--parlour-gold) !important; }
.bg-primary { background-color: var(--parlour-gold) !important; }
.text-on-surface { color: #f2eadb !important; }
.text-on-surface-variant { color: var(--parlour-muted) !important; }
.text-wood-dark { color: #161a16 !important; }
.border-primary-container { border-color: var(--parlour-line) !important; }
.border-secondary-container { border-color: #59604e !important; }
.font-decorative { letter-spacing: .025em; }
.eyebrow { color: var(--parlour-gold); font-size: .66rem; font-weight: 600; letter-spacing: .2em; text-transform: uppercase; }
.site-header { border-bottom: 1px solid var(--parlour-line); background: #17231e; }
.header-note { background: #101a15; color: #c7c5b3; font-size: .67rem; letter-spacing: .12em; border-bottom: 1px solid var(--parlour-line); }
.brand-wordmark { font: 1.3rem Georgia, serif; color: #f2eadb; }
.brand-subtitle { font: .56rem system-ui, sans-serif; letter-spacing: .25em; text-transform: uppercase; color: #bdb9a8; }
.brand-emblem { display: grid; place-items: center; width: 42px; height: 48px; border: 1px solid #88774f; border-radius: 50% 50% 4px 4px; color: var(--parlour-gold); font: 2.2rem Georgia, serif; }
.navbar .nav-link { color: #c5c4b4; font-size: .8rem; }
.navbar .nav-link:hover, .navbar .nav-link.active { color: #edd4a5; }
.navbar-toggler { border-color: var(--parlour-line); padding: .4rem; }
.account-greeting { display: inline-block; max-width: 15rem; overflow-wrap: anywhere; }
.btn { font-size: .8rem; font-weight: 500; border-radius: 3px; transition: background-color .2s, color .2s, box-shadow .2s; }
.btn-primary { --bs-btn-color: #201e16; --bs-btn-bg: #ddbd85; --bs-btn-border-color: #ddbd85; --bs-btn-hover-color: #161a16; --bs-btn-hover-bg: #ecd2a5; --bs-btn-hover-border-color: #ecd2a5; --bs-btn-active-color: #161a16; --bs-btn-active-bg: #d0ad70; --bs-btn-active-border-color: #d0ad70; }
.btn-outline-primary { --bs-btn-color: #ddbd85; --bs-btn-border-color: #8b7955; --bs-btn-hover-color: #161a16; --bs-btn-hover-bg: #ddbd85; --bs-btn-hover-border-color: #ddbd85; --bs-btn-active-color: #161a16; --bs-btn-active-bg: #ddbd85; --bs-btn-active-border-color: #ddbd85; }
.form-control, .form-control:focus { color: #f2eadb; background-color: #161a16; }
.form-control:focus { border-color: #d8b77a !important; box-shadow: 0 0 0 .2rem rgba(216,183,122,.18); }
.form-floating > label { color: #bdb9a8; }
.form-check-input:checked { background-color: #8b7044; border-color: #ddbd85; }
.site-footer { border-top: 1px solid var(--parlour-line); background: #121b16; }
.footer-brand { font-size: 1.5rem; color: #f2eadb; }
.skip-link { position: fixed; top: -100px; left: 1rem; z-index: 2000; background: #ddbd85; color: #161a16; padding: .6rem 1rem; }
.skip-link:focus { top: 1rem; }
@media (max-width: 575.98px) {
    .brand-wordmark { font-size: 1.05rem; }
    .brand-emblem { width: 32px; height: 40px; font-size: 1.8rem; }
    .navbar-brand { gap: .6rem !important; margin-right: .5rem; }
    .header-note { font-size: .57rem; letter-spacing: .06em; }
}
@media (prefers-reduced-motion: reduce) {
    html { scroll-behavior: auto; }
    *, *::before, *::after { transition: none !important; animation: none !important; }
}
