/* Free Bacchus — waitlist modal.
   Shared across every page so the dialog opens over whatever the reader is
   looking at, rather than sending them to the homepage first. Mirrors the age
   gate's furniture so the two read as one system. */
/* Waitlist modal — same furniture as the age gate so it reads as one system. */
#fb-join{position:fixed;inset:0;z-index:1000;display:flex;align-items:center;justify-content:center;padding:24px;background:rgba(8,22,15,.55);-webkit-backdrop-filter:blur(22px) saturate(1.25);backdrop-filter:blur(22px) saturate(1.25);animation:fbJoinIn .32s ease both}
#fb-join[hidden]{display:none}
@keyframes fbJoinIn{from{opacity:0}to{opacity:1}}
.fb-join-card{position:relative;max-width:520px;width:100%;text-align:center;padding:44px 40px 38px;border-radius:28px;background:linear-gradient(160deg,rgba(243,239,231,.14),rgba(243,239,231,.05) 42%,rgba(16,41,30,.18));border:1px solid rgba(201,155,122,.34);box-shadow:0 30px 80px -30px rgba(0,0,0,.7);animation:fbJoinUp .38s cubic-bezier(.2,.9,.3,1.1) both;max-height:calc(100vh - 48px);overflow-y:auto}
@keyframes fbJoinUp{from{opacity:0;transform:translateY(14px) scale(.985)}to{opacity:1;transform:none}}
.fb-join-crest{width:52px;height:60px;margin:0 auto 18px;background:var(--crest,url(/images/brand-crest.png)) center/contain no-repeat;opacity:.9}
.fb-join-x{position:absolute;top:14px;right:16px;width:34px;height:34px;border-radius:50%;border:1px solid rgba(201,155,122,.3);background:transparent;color:var(--copper);font-size:20px;line-height:1;cursor:pointer;transition:background .2s,color .2s}
.fb-join-x:hover{background:var(--copper);color:#142A1E}
#fb-join h3{font-family:"Cormorant Garamond",serif;font-weight:300;font-size:clamp(23px,2.9vw,30px);line-height:1.22;color:var(--ivory);margin:0 0 12px}
.fb-join-sub{font-family:"EB Garamond",Georgia,serif;font-size:15px;line-height:1.62;color:rgba(234,228,214,.78);margin:0 auto 22px;max-width:400px}
#fb-join form{display:block}
#fb-join input[type=email],#fb-join input[type=text]{width:100%;font-family:"Karla",sans-serif;font-size:13px;color:var(--ivory);background:rgba(8,20,13,.45);border:1px solid rgba(201,155,122,.34);border-radius:40px;padding:13px 20px;outline:none;transition:border-color .25s;margin-bottom:9px}
#fb-join input:focus{border-color:var(--copper)}
#fb-join input::placeholder{color:rgba(228,212,196,.45)}
.fb-join-row{display:flex;gap:9px}
.fb-join-row input{flex:1 1 0;min-width:0}
.fb-join-note{font-family:"Karla",sans-serif;font-size:10px;letter-spacing:.09em;color:rgba(234,228,214,.45);line-height:1.6;margin:4px 0 16px}
.fb-join-go{width:100%;font-family:"Karla",sans-serif;font-size:11px;letter-spacing:.22em;text-transform:uppercase;font-weight:600;background:var(--copper);color:#142A1E;border:1px solid var(--copper);border-radius:40px;padding:15px 28px;cursor:pointer;transition:background .25s,color .25s}
.fb-join-go:hover{background:transparent;color:var(--copper)}
.fb-join-opt{display:inline-flex;align-items:center;gap:8px;margin-top:15px;font-family:"Karla",sans-serif;font-size:10.5px;letter-spacing:.11em;text-transform:uppercase;color:rgba(234,228,214,.6);cursor:pointer}
.fb-join-opt input{accent-color:var(--copper);width:14px;height:14px;margin:0}
.fb-form.sent .fb-join-email,.fb-form.sent .fb-join-row,.fb-form.sent input[name=location],.fb-form.sent .fb-join-note,.fb-form.sent .fb-join-go,.fb-form.sent .fb-join-opt{display:none}
body.fb-join-lock{overflow:hidden}
@media(max-width:520px){.fb-join-card{padding:38px 24px 30px}.fb-join-row{flex-direction:column;gap:0}}

/* Honeypot. This MUST live here, not in a page's inline styles: the modal is
   injected on all 130 pages, and without this rule the field renders as a
   visible "Leave empty" input. A reader who fills it in has their signup
   silently accepted and discarded — the worst possible failure. */
.fb-hp2{position:absolute!important;left:-9999px!important;opacity:0!important;height:0!important;width:0!important;overflow:hidden;pointer-events:none}
