/* =====================================================================
   PLATINUM DIVAS — LUXURY DESIGN SYSTEM
   Shared by every page. Cream, ivory, rose, blush, champagne & gold.
   ===================================================================== */

@import url('https://fonts.googleapis.com/css2?family=Bodoni+Moda:ital,opsz,wght@0,6..96,400;0,6..96,500;0,6..96,600;1,6..96,400&family=Libre+Franklin:wght@300;400;500;600;700&family=Allison&family=Homemade+Apple&family=WindSong:wght@400;500&family=Great+Vibes&family=Mrs+Saint+Delafield&family=Italianno&family=Tangerine:wght@400;700&family=Pinyon+Script&family=Parisienne&display=swap');

:root {
    /* primary */
    --cream:      #FBF5EE;
    --ivory:      #FFFCF7;
    --cream-deep: #F5EADD;
    --blush:      #FAE6EA;
    --blush-deep: #F3D2DA;
    --rose:       #D9738B;
    --rose-deep:  #B85570;
    --rose-pale:  #EFAEBD;
    --champagne:  #E8D5AE;
    --gold:       #C1974F;
    --gold-light: #E6D2A8;
    --gold-deep:  #A17B36;

    /* accents */
    --sage:       #A8B5A0;
    --emerald:    #2F6B52;
    --sky:        #CFE2EF;
    --dusty:      #8FA9C0;

    /* ink */
    --ink:        #4A2233;
    --ink-soft:   #8A6C77;
    --white:      #FFFFFF;

    --display: 'Bodoni Moda', 'Didot', Georgia, serif;
    --script:  'Parisienne', cursive;
    --signature: 'WindSong', 'Great Vibes', 'Parisienne', cursive;
    --sans:    'Libre Franklin', 'Helvetica Neue', Arial, sans-serif;
    --label:   'Libre Franklin', 'Helvetica Neue', Arial, sans-serif;

    --ease: cubic-bezier(.22,1,.36,1);
    --r-card: 20px;
    --r-pill: 999px;
    --shadow-soft: 0 14px 38px -20px rgba(74,34,51,.30);
    --shadow-lift: 0 28px 60px -26px rgba(184,85,112,.45);
    --foil: linear-gradient(115deg,#A17B36 0%,#E6D2A8 22%,#F7EBD2 38%,#C1974F 55%,#E9D6AE 72%,#A17B36 100%);
}

/* ---------------------------------------------------------------- base */
* { margin:0; padding:0; box-sizing:border-box; }
html { scroll-behavior:smooth; }
body {
    font-family:var(--sans); font-weight:400; font-size:1rem; line-height:1.75;
    color:var(--ink); background:var(--cream); overflow-x:hidden;
    background-image:
        radial-gradient(900px 520px at 92% -6%, rgba(217,115,139,.07), transparent 60%),
        radial-gradient(760px 480px at 2% 6%,  rgba(193,151,79,.06),  transparent 58%),
        radial-gradient(700px 520px at 50% 104%, rgba(207,226,239,.14), transparent 62%);
    background-attachment:fixed;
}
h1,h2,h3,h4 { font-family:var(--display); font-weight:500; line-height:1.12; }
p { color:var(--ink-soft); }
a { color:inherit; text-decoration:none; transition:.32s var(--ease); }
ul { list-style:none; }
img, svg { display:block; max-width:100%; }
button, input, select, textarea { font-family:var(--sans); color:inherit; }
:focus-visible { outline:2px solid var(--rose); outline-offset:3px; border-radius:4px; }
::selection { background:var(--blush-deep); }

/* ------------------------------------------------------------ utilities */
.wrap  { width:90%; max-width:1180px; margin:0 auto; }
.wrap-n{ width:90%; max-width:900px;  margin:0 auto; }
.pad   { padding:104px 0; }
.pad-s { padding:64px 0; }
.center{ text-align:center; }
.hidden{ display:none !important; }
.rel   { position:relative; z-index:2; }

.script { font-family:var(--script); color:var(--rose); }
.eyebrow { font-family:var(--label); font-weight:600;
    display:block; font-size:0.72rem; font-weight:500; letter-spacing:0.18em;
    text-transform:uppercase; color:var(--gold); margin-bottom:14px;
}
.title { font-size:clamp(2.1rem,5.4vw,3.6rem); letter-spacing:.005em; }
.title-xl { font-size:clamp(2.6rem,7.4vw,5rem); }
.title .script { display:block; font-size:.62em; margin-bottom:-.08em; }
.lede { max-width:700px; margin:0 auto; font-size:1.08rem; }
.lede.italic { font-style:italic; }
.lede.left { margin-left:0; }
.foil-text { background:var(--foil); -webkit-background-clip:text; background-clip:text; color:transparent; }

/* -------------------------------------------------------------- buttons */
.btn { font-family:var(--label); font-weight:600;
    position:relative; display:inline-flex; align-items:center; justify-content:center; gap:9px;
    font-size:0.72rem; font-weight:500; letter-spacing:0.18em; text-transform:uppercase;
    padding:16px 36px; border:1px solid transparent; border-radius:var(--r-pill);
    cursor:pointer; transition:.32s var(--ease); overflow:hidden;
}
.btn-rose { background:var(--rose); color:var(--white); }
.btn-rose:hover { background:var(--rose-deep); transform:translateY(-3px); box-shadow:0 16px 32px -14px rgba(184,85,112,.85); }
.btn-gold { background:var(--foil); color:#4A3512; }
.btn-gold:hover { transform:translateY(-3px); box-shadow:0 16px 32px -14px rgba(161,123,54,.7); filter:brightness(1.05); }
.btn-outline { background:transparent; border-color:var(--gold); color:var(--gold-deep); }
.btn-outline:hover { background:var(--gold); color:var(--white); transform:translateY(-3px); }
.btn-ink { background:transparent; border-color:rgba(74,34,51,.22); color:var(--ink); }
.btn-ink:hover { border-color:var(--ink); }
.btn-emerald { background:var(--emerald); color:var(--white); }
.btn-emerald:hover { filter:brightness(1.12); transform:translateY(-3px); }
.btn:disabled { background:#E2D6DA; border-color:transparent; color:var(--white); cursor:not-allowed; transform:none; box-shadow:none; filter:none; }
.btn-sm { padding:11px 22px; font-size:.64rem; }
.btn-lg { padding:19px 46px; font-size:.76rem; }
.btn-block { width:100%; }
.btn-glow::after {
    content:''; position:absolute; inset:0; border-radius:inherit; pointer-events:none;
    box-shadow:0 0 0 0 rgba(217,115,139,.55); animation:glow 3.4s ease-in-out infinite;
}
@keyframes glow { 0%,100%{box-shadow:0 0 0 0 rgba(217,115,139,.42)} 50%{box-shadow:0 0 0 14px rgba(217,115,139,0)} }

/* --------------------------------------------------------------- frames */
.framed { position:relative; border-radius:var(--r-card); }
.framed::before, .framed::after { content:''; position:absolute; pointer-events:none; border-radius:inherit; }
.framed::before { inset:0; border:1px solid var(--gold-light); }
.framed::after  { inset:8px; border:1px solid rgba(193,151,79,.32); border-radius:calc(var(--r-card) - 6px); }

.card {
    position:relative; background:var(--ivory); border-radius:var(--r-card);
    padding:46px 34px 40px; box-shadow:var(--shadow-soft); transition:.4s var(--ease);
}
.card:hover { transform:translateY(-10px); box-shadow:var(--shadow-lift); }
.card-flat { box-shadow:none; border:1px solid var(--gold-light); }

/* ------------------------------------------------------- jewelry divider */
.divider { display:flex; align-items:center; justify-content:center; gap:14px; margin:24px 0 30px; }
.divider .rule { height:1px; width:78px; background:linear-gradient(90deg,transparent,var(--gold)); }
.divider .rule:last-child { background:linear-gradient(270deg,transparent,var(--gold)); }
.divider .gem { width:16px; height:16px; fill:var(--gold); flex:none; }
.divider .pearls { display:flex; gap:5px; }
.divider .pearls i {
    width:7px; height:7px; border-radius:50%; display:block;
    background:radial-gradient(circle at 32% 30%, #fff 0%, #F7ECEF 38%, #E2CBD2 100%);
    box-shadow:0 1px 2px rgba(74,34,51,.18);
}
.divider.left { justify-content:flex-start; }
.divider.left .rule:first-child { display:none; }

/* pearl string used as a section rule */
.pearl-string { display:flex; justify-content:center; gap:8px; padding:8px 0; }
.pearl-string i {
    width:9px; height:9px; border-radius:50%;
    background:radial-gradient(circle at 32% 28%, #fff 0%, #FBF2F4 40%, #DFC7CE 100%);
    box-shadow:0 1px 3px rgba(74,34,51,.16);
}

/* ---------------------------------------------------------------- ribbon */
.ribbon { font-family:var(--label); font-weight:600;
    display:inline-block; position:relative; background:var(--rose); color:var(--white);
    font-size:0.72rem; letter-spacing:0.18em; text-transform:uppercase; font-weight:500;
    padding:9px 26px; border-radius:3px; box-shadow:0 6px 16px -8px rgba(184,85,112,.9);
}
.ribbon::before, .ribbon::after {
    content:''; position:absolute; top:0; width:12px; height:100%; background:var(--rose-deep);
}
.ribbon::before { left:-11px; clip-path:polygon(0 0,100% 0,100% 100%,0 100%,42% 50%); }
.ribbon::after  { right:-11px; clip-path:polygon(0 0,100% 0,58% 50%,100% 100%,0 100%); }

/* --------------------------------------------------------- detail bar */
.detail-bar { font-family:var(--label); font-weight:600;
    display:inline-flex; flex-wrap:wrap; justify-content:center; align-items:center; gap:10px 24px;
    border-top:1px solid var(--gold); border-bottom:1px solid var(--gold);
    padding:14px 32px; font-size:0.72rem; letter-spacing:0.18em; text-transform:uppercase;
}
.detail-bar .sep { color:var(--rose); }

/* --------------------------------------------------------------- florals */
.floral { position:absolute; pointer-events:none; z-index:0; }
.floral img { position:absolute; display:block; }
.floral[data-floral] { aspect-ratio:1; }
.floral[data-floral="top"] { aspect-ratio:3/1; }
.floral[data-floral="spray"] { aspect-ratio:.9; }

/* THE BIG ONES — 35-55vw, bleeding off the page edge */
.floral-arch-l  { top:-8%;  left:-16%;  width:clamp(300px,44vw,720px); }
.floral-arch-r  { top:-14%; right:-16%; width:clamp(320px,48vw,780px); transform:scaleX(-1); }
.floral-top     { top:-24%; left:50%; transform:translateX(-50%); width:clamp(420px,72vw,1100px); }
.floral-side-l  { top:12%;  left:-20%;  width:clamp(260px,38vw,560px); }
.floral-side-r  { bottom:-8%; right:-18%; width:clamp(260px,40vw,600px); transform:scaleX(-1); }
.floral-bottom  { bottom:-22%; left:-12%; width:clamp(300px,46vw,700px); }
.floral-corner  { bottom:-10%; right:-10%; width:clamp(200px,26vw,380px); }

/* tone-on-tone: barely a shade off the page, so they read as texture */
.bloom-1 { color:#FAF2F5; }
.bloom-2 { color:#FBF5F0; }
.bloom-3 { color:#F5F7F3; }
.bloom-4 { color:#F4F8FA; }
.bloom-5 { color:#FCF4F6; }

/* the old names, kept so nothing breaks */
.bloom-ivory   { color:#FBF5F0; }
.bloom-cream   { color:#FAF3EE; }
.bloom-blush   { color:#FAF2F5; }
.bloom-rose    { color:#FCF4F6; }
.bloom-champ   { color:#FBF6EF; }
.bloom-sky     { color:#F4F8FA; }
.bloom-sage    { color:#F5F7F3; }

/* on tinted bands the silhouettes need a touch more contrast */
.band-blush .floral   { filter:brightness(.985); }
.band-emerald .floral { filter:none; opacity:.10 !important; }
.o-90 { opacity:1 } .o-70 { opacity:.92 } .o-50 { opacity:.85 } .o-35 { opacity:.8 } .o-22 { opacity:.7 }

.sway { animation:sway 11s ease-in-out infinite; transform-origin:50% 90%; }
.sway-slow { animation:sway 17s ease-in-out infinite; transform-origin:50% 90%; }
@keyframes sway { 0%,100%{transform:rotate(-1.1deg)} 50%{transform:rotate(1.1deg)} }

/* -------------------------------------------------- petals & sparkles */
.petal-field, .pearl-field { position:absolute; inset:0; overflow:hidden; pointer-events:none; z-index:1; }
.petal {
    position:absolute; top:-8%; width:16px; height:16px; opacity:.65;
    background:radial-gradient(circle at 35% 30%, #F9DCE3, #E9A9BA);
    border-radius:60% 0 60% 0; animation:fall linear infinite;
}
.pearl-drift {
    position:absolute; top:-6%; width:9px; height:9px; border-radius:50%; opacity:.7;
    background:radial-gradient(circle at 32% 28%, #fff 0%, #FBF2F4 40%, #DFC7CE 100%);
    animation:fall linear infinite;
}
@keyframes fall {
    0%   { transform:translate3d(0,-40px,0) rotate(0deg); opacity:0; }
    12%  { opacity:.7; }
    100% { transform:translate3d(60px,115vh,0) rotate(420deg); opacity:0; }
}
.sparkle { position:absolute; fill:var(--gold-light); animation:twinkle 3.6s ease-in-out infinite; }
@keyframes twinkle { 0%,100%{opacity:.25;transform:scale(.7)} 50%{opacity:1;transform:scale(1.15)} }

/* ---------------------------------------------------------------- reveal */
.reveal { opacity:0; transform:translateY(34px); transition:opacity .9s var(--ease), transform .9s var(--ease); }
.reveal.on { opacity:1; transform:none; }
.d1{transition-delay:.1s} .d2{transition-delay:.2s} .d3{transition-delay:.3s} .d4{transition-delay:.4s} .d5{transition-delay:.5s}

/* ------------------------------------------------------------------- nav */
.nav {
    position:sticky; top:0; z-index:900; background:rgba(251,245,238,.93);
    backdrop-filter:blur(14px); border-bottom:1px solid var(--gold-light);
}
.nav-in { display:flex; align-items:center; gap:16px; padding:14px 0; }
.brand { margin-right:auto; line-height:1.02; }
.brand .club { font-family:var(--label); font-weight:600; display:block; font-size:0.72rem; letter-spacing:0.18em; text-transform:uppercase; color:var(--gold); }
.brand .nm   { display:block; font-family:var(--script); font-size:1.9rem; color:var(--rose); }
.nav-links { display:flex; align-items:center; gap:24px; }
.nav-links > a { font-family:var(--label); font-weight:600;
    font-size:0.72rem; letter-spacing:0.18em; text-transform:uppercase; position:relative; padding:4px 0; white-space:nowrap;
}
.nav-links > a::after { content:''; position:absolute; left:0; bottom:-2px; width:0; height:1px; background:var(--rose); transition:.32s var(--ease); }
.nav-links > a:hover::after, .nav-links > a[aria-current]::after { width:100%; }
.has-menu { position:relative; }
.menu {
    position:absolute; top:calc(100% + 14px); left:50%; transform:translateX(-50%) translateY(-8px);
    background:var(--ivory); border:1px solid var(--gold-light); border-radius:14px;
    padding:14px 8px; min-width:210px; box-shadow:var(--shadow-soft);
    opacity:0; visibility:hidden; transition:.28s var(--ease);
}
.has-menu:hover .menu, .has-menu:focus-within .menu { opacity:1; visibility:visible; transform:translateX(-50%) translateY(0); }
.menu a { display:flex; align-items:center; gap:10px; padding:9px 16px; font-size:.78rem; border-radius:8px; }
.menu a:hover { background:var(--blush); color:var(--rose-deep); }
.menu a svg { width:20px; height:20px; flex:none; }
.chip { font-family:var(--label); font-weight:600;
    display:none; align-items:center; gap:9px; background:none; border:1px solid var(--gold-light);
    padding:5px 6px 5px 15px; border-radius:var(--r-pill); cursor:pointer;
    font-size:0.72rem; letter-spacing:0.18em; text-transform:uppercase; color:var(--ink-soft);
}
.chip.on { display:inline-flex; }
.chip:hover { border-color:var(--gold); background:var(--blush); }
.chip b {
    width:28px; height:28px; border-radius:50%; display:grid; place-items:center;
    background:var(--rose); color:var(--white); font-size:.64rem; letter-spacing:0; font-weight:500;
}
.nav-toggle { display:none; background:none; border:0; font-size:1.45rem; cursor:pointer; line-height:1; }

/* ------------------------------------------------------------------ hero */
.hero { position:relative; overflow:hidden; padding:40px 0 0; }
.hero-frame {
    position:relative; border-radius:28px; overflow:hidden;
    padding:clamp(56px,8vw,110px) clamp(20px,5vw,72px);
    background:
        radial-gradient(120% 90% at 50% 0%, rgba(255,252,247,.96), rgba(250,230,234,.82) 55%, rgba(251,245,238,.94) 100%);
    box-shadow:0 40px 90px -50px rgba(74,34,51,.5);
}
.hero-frame::before {
    content:''; position:absolute; inset:14px; border:1px solid rgba(193,151,79,.45); border-radius:20px; pointer-events:none; z-index:3;
}
.hero h1 { margin:0; }
.hero .sub { max-width:640px; margin:22px auto 0; font-size:1.1rem; }
.hero-cta { display:flex; gap:14px; justify-content:center; flex-wrap:wrap; margin-top:36px; }
.stats { display:flex; justify-content:center; gap:clamp(22px,6vw,66px); flex-wrap:wrap; margin-top:48px; padding-top:28px; border-top:1px solid rgba(193,151,79,.38); }
.stats b { display:block; font-family:var(--display); font-size:2.2rem; line-height:1; }
.stats span { font-family:var(--label); font-weight:600; font-size:0.72rem; letter-spacing:0.18em; text-transform:uppercase; color:var(--gold); }

/* page header for interior pages */
.page-head { position:relative; overflow:hidden; padding:clamp(58px,8vw,104px) 0 clamp(48px,6vw,80px); text-align:center; }

/* -------------------------------------------------------------- trinkets */
.trinkets { display:flex; justify-content:center; align-items:flex-end; gap:clamp(14px,3.4vw,40px); margin-top:46px; flex-wrap:wrap; }
.trinkets svg { width:clamp(30px,4.2vw,48px); height:auto; }
.ico-line { fill:none; stroke:var(--gold); stroke-width:3.2; stroke-linecap:round; stroke-linejoin:round; }
.ico-fill { fill:var(--gold); }
.ico-rose { fill:var(--rose); }
.ico-pearl{ fill:#F3E2E7; stroke:var(--gold-light); stroke-width:2; }

/* ------------------------------------------------------------- grids */
.grid-2 { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:28px; }
.grid-3 { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:28px; }
.grid-5 { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:22px; }
.split  { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:60px; align-items:center; }
.split.narrow-left { grid-template-columns:.82fr 1.18fr; }

/* --------------------------------------------------- experience cards */
.exp-card { text-align:center; padding:44px 26px 38px; overflow:hidden; }
.exp-card .halo {
    width:96px; height:96px; margin:0 auto 20px; border-radius:50%;
    display:grid; place-items:center; position:relative;
    background:radial-gradient(circle at 40% 32%, var(--white), var(--blush) 70%);
    box-shadow:0 10px 26px -14px rgba(184,85,112,.6);
}
.exp-card .halo::after { content:''; position:absolute; inset:-7px; border:1px solid var(--gold-light); border-radius:50%; }
.exp-card .halo svg { width:46px; height:46px; }
.exp-card h3 { font-size:1.6rem; margin-bottom:4px; }
.exp-card .tag { font-family:var(--script); color:var(--rose); font-size:1.16rem; display:block; margin-bottom:12px; }
.exp-card p { font-size:.92rem; }
.exp-card .more { font-family:var(--label); font-weight:600; display:inline-block; margin-top:18px; font-size:0.72rem; letter-spacing:0.18em; text-transform:uppercase; color:var(--gold-deep); border-bottom:1px solid var(--gold-light); padding-bottom:3px; }
.exp-card:hover .more { color:var(--rose); border-color:var(--rose); }

/* experience detail block */
.exp-block { position:relative; overflow:hidden; }
.exp-block .split { align-items:center; }
.exp-photo { position:relative; border-radius:var(--r-card); overflow:hidden; aspect-ratio:4/3; background:var(--blush); box-shadow:var(--shadow-soft); }
.exp-photo img { width:100%; height:100%; object-fit:cover; }
.chips { display:flex; flex-wrap:wrap; gap:9px; margin:20px 0 26px; }
.chip-tag { font-family:var(--label); font-weight:600;
    font-size:0.72rem; letter-spacing:0.14em; text-transform:uppercase; padding:7px 15px;
    border-radius:var(--r-pill); background:var(--white); border:1px solid var(--gold-light); color:var(--ink-soft);
}

/* ---------------------------------------------------------- event cards */
.event-list { display:flex; flex-direction:column; gap:24px; }
.event-card { display:grid; grid-template-columns:170px minmax(0,1fr) auto; gap:30px; align-items:center; padding:26px; background:var(--ivory); border-radius:var(--r-card); box-shadow:var(--shadow-soft); transition:.4s var(--ease); }
.event-card:hover { transform:translateY(-6px); box-shadow:var(--shadow-lift); }
.event-card.mine { background:linear-gradient(150deg,var(--blush),var(--ivory) 62%); }
.event-photo { border-radius:14px; overflow:hidden; aspect-ratio:4/3; background:var(--blush); }
.event-photo img { width:100%; height:100%; object-fit:cover; }
.event-date { text-align:center; }
.event-date .mo { font-family:var(--label); font-weight:600; font-size:0.72rem; letter-spacing:0.18em; text-transform:uppercase; color:var(--rose); }
.event-date .dy { font-family:var(--display); font-size:2.6rem; line-height:1; }
.event-date .yr { font-size:.56rem; letter-spacing:.2em; color:var(--ink-soft); }
.event-body h3 { font-size:1.5rem; margin-bottom:5px; }
.event-meta { font-size:.84rem; color:var(--ink-soft); }
.event-vibe { font-family:var(--script); color:var(--rose); font-size:1.22rem; margin:8px 0; }
.event-side { display:flex; flex-direction:column; gap:10px; min-width:184px; }
.price { font-family:var(--display); font-size:1.7rem; text-align:center; }
.price small { display:block; font-family:var(--label); font-size:0.72rem; letter-spacing:0.18em; text-transform:uppercase; color:var(--ink-soft); }
.seatbar { height:3px; border-radius:3px; background:rgba(193,151,79,.2); }
.seatbar i { display:block; height:100%; border-radius:3px; background:var(--foil); transition:width .6s ease; }
.seatbar.full i { background:var(--rose); }
.seatnote { font-family:var(--label); font-weight:600; font-size:0.72rem; letter-spacing:0.16em; text-transform:uppercase; color:var(--ink-soft); }
.stepper { display:inline-flex; align-items:center; justify-content:space-between; gap:10px; border:1px solid var(--gold-light); border-radius:var(--r-pill); padding:6px 12px; }
.stepper span { font-family:var(--label); font-weight:600; font-size:0.72rem; letter-spacing:0.16em; text-transform:uppercase; color:var(--gold-deep); }
.stepper button { width:22px; height:22px; border-radius:50%; border:1px solid var(--gold-light); background:none; color:var(--gold-deep); cursor:pointer; line-height:1; }
.stepper button:hover { background:var(--gold); color:var(--white); }
.stepper b { font-family:var(--display); min-width:11px; text-align:center; }

/* ------------------------------------------------------------- calendar */
.cal { background:var(--ivory); border-radius:var(--r-card); padding:28px 26px 32px; box-shadow:var(--shadow-soft); }
.cal-head { display:flex; align-items:center; justify-content:space-between; margin-bottom:18px; }
.cal-head h3 { font-size:1.6rem; }
.cal-head button { width:34px; height:34px; border-radius:50%; border:1px solid var(--gold-light); background:none; color:var(--gold-deep); cursor:pointer; transition:.3s var(--ease); }
.cal-head button:hover { background:var(--gold); color:var(--white); border-color:var(--gold); }
.cal-grid { display:grid; grid-template-columns:repeat(7,minmax(0,1fr)); gap:4px; }
.dow { font-family:var(--label); font-weight:600; text-align:center; font-size:0.72rem; letter-spacing:0.16em; text-transform:uppercase; color:var(--gold); padding-bottom:8px; }
.day { aspect-ratio:1; display:flex; flex-direction:column; align-items:center; justify-content:center; font-size:.84rem; color:var(--ink-soft); border:1px solid transparent; border-radius:10px; }
.day.blank { visibility:hidden; }
.day.today { border-color:var(--gold-light); }
.day.has { cursor:pointer; background:var(--blush); border-color:var(--blush-deep); color:var(--ink); }
.day.has:hover, .day.has.sel { background:var(--rose); color:var(--white); border-color:var(--rose); }
.day .dot { width:4px; height:4px; border-radius:50%; background:var(--rose); margin-top:3px; }
.day.has:hover .dot, .day.has.sel .dot { background:var(--white); }

/* ---------------------------------------------------------------- forms */
.fg { margin-bottom:20px; }
.row-2 { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:20px; }
.row-3 { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:20px; }
label { font-family:var(--label); font-weight:600; display:block; font-size:0.72rem; font-weight:500; letter-spacing:0.18em; text-transform:uppercase; color:var(--gold-deep); margin-bottom:8px; }
.inp {
    width:100%; padding:13px 16px; border:1px solid var(--gold-light); border-radius:12px;
    background:var(--white); font-size:.96rem; font-weight:400; transition:.3s var(--ease);
}
.inp:focus { outline:none; border-color:var(--rose); box-shadow:0 0 0 4px rgba(217,115,139,.12); }
textarea.inp { resize:vertical; }
.hint { font-size:.74rem; color:var(--ink-soft); margin-top:6px; }
.note { font-size:.76rem; line-height:1.7; color:var(--ink-soft); }
.pick { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; }
.pick button {
    border:1px solid var(--gold-light); background:var(--white); border-radius:14px;
    padding:16px 14px; cursor:pointer; text-align:left; transition:.3s var(--ease);
}
.pick button:hover { border-color:var(--gold); }
.pick button.on { border-color:var(--rose); background:var(--blush); box-shadow:0 0 0 3px rgba(217,115,139,.14); }
.pick b { display:block; font-family:var(--display); font-size:1.1rem; font-weight:500; }
.pick span { display:block; font-size:.7rem; line-height:1.45; color:var(--ink-soft); margin-top:3px; }
.panel { background:var(--ivory); border-radius:var(--r-card); padding:clamp(28px,4vw,48px); box-shadow:var(--shadow-soft); }

/* --------------------------------------------------------------- gallery */
.gal-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:22px; }
.tile { position:relative; border-radius:var(--r-card); overflow:hidden; height:320px; background:var(--blush); cursor:zoom-in; box-shadow:var(--shadow-soft); }
.tile img { width:100%; height:100%; object-fit:cover; transition:transform .9s var(--ease); }
.tile:hover img { transform:scale(1.08); }
.tile-cap { position:absolute; inset:0; display:flex; align-items:flex-end; padding:24px; background:linear-gradient(transparent 42%, rgba(74,34,51,.88)); opacity:0; transition:.35s var(--ease); }
.tile:hover .tile-cap { opacity:1; }
.tile-cap span { font-family:var(--display); font-size:1.14rem; color:var(--white); text-align:left; }
.tile-cap small { display:block; font-family:var(--label); font-size:0.72rem; letter-spacing:0.16em; text-transform:uppercase; margin-top:6px; opacity:.9; }
.tile-x { position:absolute; top:12px; right:12px; width:30px; height:30px; z-index:3; border:0; border-radius:50%; background:rgba(74,34,51,.75); color:var(--white); cursor:pointer; opacity:0; transition:.3s var(--ease); }
.tile:hover .tile-x { opacity:1; }
.uptile {
    height:320px; border:2px dashed var(--blush-deep); border-radius:var(--r-card); background:var(--blush);
    display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center;
    padding:28px; cursor:pointer; transition:.3s var(--ease);
}
.uptile:hover, .uptile.drag { background:var(--ivory); border-color:var(--rose); }
.uptile .plus { font-size:2.2rem; color:var(--rose); line-height:1; margin-bottom:8px; }
.fchips { display:flex; gap:10px; justify-content:center; flex-wrap:wrap; }
.fchip { font-family:var(--label); font-weight:600; background:var(--white); border:1px solid var(--gold-light); color:var(--ink-soft); font-size:0.72rem; letter-spacing:0.16em; text-transform:uppercase; padding:10px 20px; border-radius:var(--r-pill); cursor:pointer; transition:.3s var(--ease); }
.fchip:hover { border-color:var(--rose); color:var(--rose); }
.fchip.on { background:var(--rose); border-color:var(--rose); color:var(--white); }

/* ---------------------------------------------------------- testimonials */
.quote-card { text-align:center; padding:46px 34px; }
.quote-card .mark { font-family:var(--display); font-size:3.4rem; color:var(--rose-pale); line-height:.6; }
.quote-card p { font-family:var(--display); font-style:italic; font-size:1.16rem; color:var(--ink); margin:14px 0 20px; }
.quote-card .who { font-family:var(--script); font-size:1.5rem; color:var(--rose); }
.quote-card .role { font-family:var(--label); font-weight:600; font-size:0.72rem; letter-spacing:0.18em; text-transform:uppercase; color:var(--gold); }
.avatar { width:78px; height:78px; border-radius:50%; margin:0 auto 16px; object-fit:cover; background:var(--blush); border:1px solid var(--gold-light); padding:4px; }

/* ------------------------------------------------------------- organizer */
.org-card { text-align:center; padding:0 0 32px; overflow:hidden; }
.org-photo { aspect-ratio:1; background:var(--blush); }
.org-photo img { width:100%; height:100%; object-fit:cover; }
.org-card .inner { padding:24px 26px 0; }
.org-card h3 { font-size:1.4rem; }
.org-card .role { font-family:var(--label); font-weight:600; font-size:0.72rem; letter-spacing:0.18em; text-transform:uppercase; color:var(--gold); margin-top:4px; }
.org-card .q { font-family:var(--script); color:var(--rose); font-size:1.14rem; margin-top:12px; }

/* ---------------------------------------------------------- member card */
.memcard { text-align:center; padding:46px 36px 40px; background:linear-gradient(160deg,var(--ivory),var(--blush) 130%); }
.memcard .mc-club { font-family:var(--label); font-weight:600; font-size:0.72rem; letter-spacing:0.18em; text-transform:uppercase; color:var(--gold); }
.memcard .mc-name { font-family:var(--script); font-size:clamp(2rem,5vw,2.9rem); color:var(--rose); line-height:1.1; margin:8px 0 2px; }
.memcard .mc-tier { font-family:var(--label); font-weight:600; display:inline-block; padding:7px 20px; border-radius:var(--r-pill); background:var(--foil); color:#4A3512; font-size:0.72rem; letter-spacing:0.18em; text-transform:uppercase; margin-top:8px; }
.memcard .mc-foot { font-family:var(--label); font-weight:600; display:flex; justify-content:space-between; gap:14px; margin-top:26px; font-size:0.72rem; letter-spacing:0.18em; text-transform:uppercase; color:var(--ink-soft); }
.mrow { display:flex; align-items:baseline; gap:14px; flex-wrap:wrap; padding:15px 0; border-bottom:1px solid var(--gold-light); }
.mrow b { font-family:var(--display); font-size:1.14rem; font-weight:500; }
.mrow span { font-family:var(--label); font-weight:600; margin-left:auto; font-size:0.72rem; letter-spacing:0.16em; text-transform:uppercase; color:var(--rose); }

/* --------------------------------------------------------------- tables */
.tbl-wrap { max-height:440px; overflow-y:auto; border:1px solid var(--gold-light); border-radius:14px; }
.tbl { width:100%; border-collapse:collapse; font-size:.82rem; }
.tbl th { font-family:var(--label); font-weight:600; position:sticky; top:0; text-align:left; padding:13px 15px; background:var(--cream-deep); font-size:0.72rem; letter-spacing:0.18em; text-transform:uppercase; color:var(--gold-deep); font-weight:500; }
.tbl td { padding:13px 15px; border-top:1px solid var(--gold-light); }
.tbl td b { display:block; font-family:var(--display); font-size:1rem; font-weight:500; }
.tbl td small { color:var(--ink-soft); font-size:.72rem; }
.pill { font-family:var(--label); font-weight:600; display:inline-block; font-size:0.72rem; letter-spacing:0.16em; text-transform:uppercase; padding:4px 11px; border-radius:var(--r-pill); background:var(--blush); color:var(--rose-deep); }
.pill.gold { background:var(--champagne); color:#5A4110; }
.pill.sage { background:#DFE6DB; color:var(--emerald); }

/* --------------------------------------------------------------- footer */
.foot { position:relative; overflow:hidden; background:var(--ivory); border-top:1px solid var(--gold-light); padding:74px 0 30px; }
.foot-grid { display:grid; grid-template-columns:1.7fr minmax(0,1fr) minmax(0,1fr) 1.3fr; gap:44px; }
.foot .nm { font-family:var(--script); font-size:2.1rem; color:var(--rose); }
.foot p { font-size:.9rem; margin-top:10px; }
.foot-title { font-family:var(--label); font-weight:600; font-size:0.72rem; letter-spacing:0.18em; text-transform:uppercase; color:var(--gold); margin-bottom:16px; }
.foot-links li { margin-bottom:10px; }
.foot-links a, .foot-links button { font-size:.86rem; color:var(--ink-soft); background:none; border:0; cursor:pointer; padding:0; font-weight:400; }
.foot-links a:hover, .foot-links button:hover { color:var(--rose); }
.news { display:flex; gap:8px; margin-top:12px; }
.news .inp { padding:11px 14px; font-size:.85rem; }
.copy { text-align:center; margin-top:52px; padding-top:24px; border-top:1px solid var(--gold-light); font-size:.66rem; letter-spacing:.14em; color:var(--ink-soft); }

/* --------------------------------------------------------------- modal */
.modal { display:none; position:fixed; inset:0; background:rgba(74,34,51,.7); backdrop-filter:blur(6px); z-index:2000; align-items:center; justify-content:center; padding:20px; opacity:0; transition:opacity .3s ease; }
.modal.open { display:flex; opacity:1; }
.modal-box { position:relative; background:var(--cream); border-radius:24px; width:100%; max-width:600px; padding:clamp(28px,4vw,46px); max-height:90vh; overflow-y:auto; transform:translateY(18px); transition:transform .3s var(--ease); box-shadow:0 40px 90px -40px rgba(0,0,0,.6); }
.modal.open .modal-box { transform:none; }
.close-x { position:absolute; top:14px; right:18px; font-size:1.9rem; line-height:1; background:none; border:0; cursor:pointer; z-index:5; }
.switch { text-align:center; margin-top:16px; font-size:.8rem; color:var(--ink-soft); }
.switch button { background:none; border:0; color:var(--rose); font-size:.8rem; font-weight:500; cursor:pointer; text-decoration:underline; }
.sent { text-align:center; padding:16px 0; }
.sent svg { width:44px; height:44px; margin:0 auto 14px; fill:var(--rose); }
.sent h3 { font-size:1.8rem; margin-bottom:10px; }

.lightbox { position:fixed; inset:0; z-index:2500; background:rgba(74,34,51,.95); display:none; align-items:center; justify-content:center; flex-direction:column; padding:40px; }
.lightbox.open { display:flex; }
.lightbox img { max-height:76vh; max-width:100%; border-radius:12px; }
.lightbox .cap { color:var(--cream); font-family:var(--display); font-size:1.1rem; margin-top:18px; text-align:center; }

.toast { position:fixed; left:50%; bottom:30px; transform:translate(-50%,190%); background:var(--ink); color:var(--cream); padding:15px 32px; border-radius:var(--r-pill); font-size:.76rem; letter-spacing:.06em; z-index:3000; max-width:88vw; text-align:center; box-shadow:0 20px 40px -18px rgba(0,0,0,.7); transition:transform .45s var(--ease); }
.toast.up { transform:translate(-50%,0); }

.banner { background:var(--rose); color:var(--white); text-align:center; padding:12px 20px; font-size:.74rem; letter-spacing:.08em; position:relative; z-index:1200; }
.banner code { background:rgba(255,255,255,.24); padding:2px 7px; border-radius:4px; }

/* ------------------------------------------------------------- sections */
.band-blush { background:linear-gradient(180deg,var(--blush) 0%, var(--cream) 100%); position:relative; overflow:hidden; }
.band-cream { background:var(--cream-deep); position:relative; overflow:hidden; }
.band-ivory { background:var(--ivory); position:relative; overflow:hidden; }
.band-sky   { background:linear-gradient(180deg,var(--sky) 0%, var(--cream) 100%); position:relative; overflow:hidden; }
.band-emerald { background:var(--emerald); color:var(--cream); position:relative; overflow:hidden; }
.band-emerald .title, .band-emerald h3 { color:var(--cream); }
.band-emerald p { color:rgba(251,245,238,.72); }
.band-emerald .eyebrow { color:var(--champagne); }
.band-emerald label { color:var(--champagne); }

/* ---------------------------------------------------------- responsive */
@media (max-width:1080px) {
    .grid-5 { grid-template-columns:repeat(3,minmax(0,1fr)); }
}
@media (max-width:980px) {
    .grid-3, .foot-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
    .split, .split.narrow-left { grid-template-columns:minmax(0,1fr); gap:36px; }
    .event-card { grid-template-columns:110px minmax(0,1fr); }
    .event-side { grid-column:1/-1; flex-direction:row; align-items:center; flex-wrap:wrap; }
    .event-photo { display:none; }
    .gal-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width:680px) {
    .pad { padding:66px 0; }
    .nav-toggle { display:block; }
    .nav-in { position:relative; }
    .nav-links {
        display:none; position:absolute; top:100%; left:-5%; width:110vw;
        flex-direction:column; align-items:flex-start; gap:16px;
        background:var(--cream); padding:24px 8%; border-bottom:1px solid var(--gold-light);
        max-height:74vh; overflow-y:auto;
    }
    .nav-links.open { display:flex; }
    .menu { position:static; transform:none; opacity:1; visibility:visible; box-shadow:none; border:0; padding:6px 0 0 12px; min-width:0; background:transparent; }
    .grid-2, .grid-3, .grid-5, .gal-grid, .row-2, .row-3, .pick, .foot-grid { grid-template-columns:minmax(0,1fr); }
    .event-card { grid-template-columns:minmax(0,1fr); gap:16px; }
    .event-date { display:flex; align-items:baseline; gap:10px; }
    .event-date .dy { font-size:1.8rem; }
    .floral { display:none; }
    .floral-top, .floral-arch-l, .floral-arch-r { display:block; opacity:.45; }
    .hero-cta .btn { width:100%; }
    .news { flex-direction:column; }
}
@media (prefers-reduced-motion:reduce) {
    *, *::before, *::after { animation:none !important; transition:none !important; }
    html { scroll-behavior:auto; }
    .reveal { opacity:1; transform:none; }
}

/* =====================================================================
   BOUTIQUE HEADER + AIRY HOME LAYOUT
   ===================================================================== */

/* thin utility bar above everything */
.topbar { font-family:var(--label); font-weight:600; background:var(--ivory); border-bottom:1px solid rgba(193,151,79,.28); font-size:0.72rem; letter-spacing:0.18em; text-transform:uppercase; }
.tb-in { display:flex; align-items:center; justify-content:space-between; gap:18px; padding:9px 0; }
.tb-in a { color:var(--ink-soft); }
.tb-in a:hover { color:var(--rose); }
.tb-left, .tb-right { display:flex; align-items:center; gap:20px; }
.tb-right .chip { font-size:.58rem; padding:3px 4px 3px 12px; }
.tb-right .chip b { width:23px; height:23px; font-size:.58rem; }

/* centered script wordmark */
.brandblock { text-align:center; padding:30px 20px 24px; position:relative; overflow:hidden; }
.brandblock .bb-name { font-family:var(--script); color:var(--ink); font-size:clamp(2.6rem,7vw,4.4rem); line-height:1; display:block; }
.brandblock .bb-name em { font-style:normal; color:var(--rose); }
.brandblock .bb-tag { font-family:var(--label); font-weight:600; font-size:0.72rem; letter-spacing:0.18em; text-transform:uppercase; color:var(--gold); margin-top:10px; }
.brandblock .floral { opacity:.3; }

/* horizontal blush nav strip */
.navstrip { background:var(--blush); border-top:1px solid rgba(193,151,79,.22); border-bottom:1px solid rgba(193,151,79,.22); backdrop-filter:none; }
.navstrip .nav-in { justify-content:center; padding:0; gap:0; }
.navstrip .nav-links { gap:30px; padding:13px 0; }
.navstrip .nav-links > a { font-size:.63rem; letter-spacing:.26em; color:var(--ink); }
.navstrip .nav-links > a::after { background:var(--rose-deep); }
.navstrip .btn { padding:8px 20px; font-size:.6rem; }
.navstrip .nav-toggle { padding:12px 0; }
@media (max-width:680px) {
    .navstrip .nav-in { justify-content:space-between; }
    .navstrip .nav-links { background:var(--blush); }
    .topbar .tb-left a:nth-child(n+3) { display:none; }
}

/* full-bleed photo hero with a translucent card */
.hero-photo {
    position:relative; min-height:clamp(420px,62vh,640px); display:flex; align-items:center; justify-content:center;
    background-size:cover; background-position:center; padding:60px 20px; overflow:hidden;
}
.hero-photo::after { content:''; position:absolute; inset:0; background:linear-gradient(rgba(251,245,238,.18), rgba(250,230,234,.32)); }
.hero-box {
    position:relative; z-index:3; background:rgba(255,255,255,.84); backdrop-filter:blur(3px);
    padding:clamp(34px,5vw,58px) clamp(26px,5vw,66px); max-width:660px; text-align:center;
    box-shadow:0 24px 60px -34px rgba(74,34,51,.5);
}
.hero-box::before { content:''; position:absolute; inset:9px; border:1px solid rgba(193,151,79,.42); pointer-events:none; }
.hero-box .script { display:block; font-size:clamp(2rem,5.2vw,3.4rem); line-height:1.05; color:var(--ink); }
.hero-box .script em { font-style:normal; color:var(--rose); }
.hero-box .kicker { font-family:var(--label); font-weight:600; font-size:0.72rem; letter-spacing:0.18em; text-transform:uppercase; color:var(--gold); }
.hero-box p { margin:16px auto 0; max-width:460px; font-size:.98rem; }
.hero-box .hero-cta { margin-top:26px; }

/* newsletter strip */
.news-strip { background:var(--blush); padding:44px 0; position:relative; overflow:hidden; }
.news-in { display:grid; grid-template-columns:auto minmax(0,1fr); gap:36px; align-items:center; }
.news-in .head .script { font-size:clamp(1.9rem,4.4vw,2.9rem); line-height:1; color:var(--ink); display:block; }
.news-in .head .sub { font-family:var(--label); font-weight:600; font-size:0.72rem; letter-spacing:0.18em; text-transform:uppercase; color:var(--gold-deep); margin-top:8px; max-width:280px; }
.news-in form { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto; gap:12px; }
.news-in .inp { background:var(--white); border-color:transparent; border-radius:0; }
@media (max-width:860px) { .news-in { grid-template-columns:minmax(0,1fr); text-align:center; } .news-in .head .sub { margin:8px auto 0; } .news-in form { grid-template-columns:minmax(0,1fr); } }

/* three blush quick-link panels */
.quicklinks { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:22px; }
.qlink {
    position:relative; overflow:hidden; background:var(--blush); min-height:230px;
    display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center; padding:34px 26px;
    transition:.4s var(--ease);
}
.qlink::before { content:''; position:absolute; inset:12px; border:1px solid rgba(255,255,255,.75); pointer-events:none; z-index:2; }
.qlink:hover { transform:translateY(-6px); box-shadow:var(--shadow-lift); }
.qlink .floral { inset:auto; top:-30%; left:-14%; width:150%; opacity:.34; }
.qlink .caps { font-family:var(--label); font-weight:600; position:relative; z-index:3; font-size:0.72rem; letter-spacing:0.18em; text-transform:uppercase; color:var(--gold-deep); }
.qlink .scr { position:relative; z-index:3; font-family:var(--script); font-size:clamp(2rem,4.4vw,2.9rem); color:var(--ink); line-height:1.05; margin-top:4px; }
.qlink:hover .scr { color:var(--rose-deep); }
@media (max-width:860px) { .quicklinks { grid-template-columns:minmax(0,1fr); } }

/* lighter section headings for the airy home */
.soft-head .title { font-weight:400; }
.soft-head .script { display:block; color:var(--ink); }

/* =====================================================================
   SIGNATURE SCRIPT + CAPS PAIRING  (the boutique-theme signature)
   ===================================================================== */
.signature { font-family:var(--signature); font-weight:400; }

/* letterspaced serif caps sharing a baseline with a big script word */
.pair {
    display:flex; align-items:baseline; justify-content:center; white-space:nowrap;
    /* Allison drops a long way below the baseline. Measured: 2.5rem clears it. */
    padding-bottom:2.8rem;
}
.pair em {
    font-family:var(--display); font-style:normal; font-weight:400;
    font-size:1.15rem; letter-spacing:0.18em; text-transform:uppercase; color:var(--ink);
}
.pair b {
    font-family:var(--signature); font-weight:400; font-size:3.3rem; line-height:1;
    color:var(--ink); margin-left:-.14em; position:relative; top:.06em;
}
.pair.sm em { font-size:.82rem; letter-spacing:.28em; }
.pair.sm b  { font-size:2.3rem; }
.pair.lg em { font-size:1.4rem; }
.pair.lg b  { font-size:4.2rem; }
.pair.rose b { color:var(--rose-deep); }

/* stacked variant for narrow tiles */
.pair-stack { display:block; text-align:center; }
.pair-stack em { display:block; font-family:var(--display); font-style:normal;
    font-size:0.72rem; letter-spacing:0.18em; text-transform:uppercase; color:var(--gold-deep); }
.pair-stack b { display:block; font-family:var(--signature); font-weight:400;
    font-size:2.5rem; line-height:1; color:var(--ink); margin-top:6px; padding-bottom:.3em; }

/* ---------- bigger, tighter centred wordmark ---------- */
.brandblock .bb-name { font-family:var(--signature); font-size:clamp(3rem,8.4vw,5.4rem); line-height:.8; }
.brandblock .bb-tag { font-family:var(--label); font-weight:600; font-size:1rem;
                      letter-spacing:.16em; color:var(--rose-deep); }

/* ---------- contained hero, white space around it ---------- */
.hero-inset { position:relative; max-width:1250px; margin:38px auto 0; padding:0 clamp(16px,4vw,40px); }
.hero-inset .shot {
    width:100%; height:clamp(360px,56vh,540px); object-fit:cover; display:block; background:var(--blush);
}
.hero-card {
    position:absolute; top:50%; left:50%; transform:translate(-50%,-50%); z-index:4;
    background:rgba(255,255,255,.9); backdrop-filter:blur(5px);
    padding:clamp(30px,4vw,48px) clamp(26px,5vw,60px); text-align:center;
    max-width:580px; width:82%; box-shadow:0 18px 44px -26px rgba(43,38,39,.35);
}
.hero-card::before { content:''; position:absolute; inset:8px; border:1px solid rgba(216,162,175,.5); pointer-events:none; }
.hero-card .scr { display:block; font-family:var(--signature); font-size:clamp(2.1rem,5vw,3.3rem); line-height:.92; color:var(--ink); }
.hero-card .ttl { font-family:var(--display); font-weight:400; font-size:clamp(1.1rem,2.4vw,1.5rem); letter-spacing:.05em; margin:14px 0 6px; }
.hero-card p { font-size:.92rem; max-width:400px; margin:0 auto; }
.hero-card .hero-cta { margin-top:24px; }

/* ---------- dark button, as in the reference ---------- */
.btn-dark { background:#231F20; color:var(--white); border-radius:0; }
.btn-dark:hover { background:var(--rose); transform:translateY(-2px); }
.btn-square { border-radius:0; }

/* ---------- pillar tiles with real florals behind ---------- */
.pillars-5 { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:18px; }
.pillar-tile {
    position:relative; overflow:hidden; background:var(--blush-deep);
    min-height:210px; display:grid; place-items:center; padding:26px 18px; text-align:center;
    transition:.4s var(--ease);
}
.pillar-tile::before { content:''; position:absolute; inset:10px; border:1px solid rgba(255,255,255,.7); z-index:2; pointer-events:none; }
.pillar-tile .floral { position:absolute; right:-26%; bottom:-34%; width:92%; opacity:.4; z-index:1; }
.pillar-tile .pair-stack, .pillar-tile .pair { position:relative; z-index:3; }
.pillar-tile:hover { transform:translateY(-6px); box-shadow:var(--shadow-lift); }
.pillar-tile:hover .pair-stack b { color:var(--rose-deep); }
.pillar-tile .sub { position:relative; z-index:3; display:block; font-size:.7rem; color:var(--ink-soft); margin-top:10px; line-height:1.5; }
@media (max-width:1080px) { .pillars-5 { grid-template-columns:repeat(3,minmax(0,1fr)); } }
@media (max-width:700px)  { .pillars-5 { grid-template-columns:minmax(0,1fr); } }

/* ---------- 3-up quick links using the inline pairing ---------- */
.qlink .pair { position:relative; z-index:3; }
.qlink .floral { right:-22%; bottom:-34%; left:auto; top:auto; width:88%; opacity:.4; }

/* ---------- airier newsletter strip ---------- */
.news-strip { background:var(--soft-blush,var(--blush)); padding:34px 0; }
.news-in .head .script { font-family:var(--signature); line-height:.82; }

/* =====================================================================
   SIGNATURE SCRIPT — change these FOUR lines to swap the fancy font.
   Presets are listed in font-preview.html.
   ===================================================================== */
:root {
    --signature: 'Allison', 'WindSong', cursive;   /* the script face */
    --script:    var(--signature);                 /* keep both in sync */
    --sig-scale: 1.42;                             /* size multiplier   */
    --sig-drop:  .30em;                            /* baseline nudge    */
    --sig-lh:    .95;                              /* line height       */
}

/* every place the script appears, scaled from the four values above */
.brandblock .bb-name { font-size:calc(clamp(3rem,8.4vw,5.4rem) * var(--sig-scale)); line-height:var(--sig-lh); padding-bottom:.08em; }
.pair b              { font-size:calc(3.3rem * var(--sig-scale)); line-height:var(--sig-lh); top:var(--sig-drop); }
.pair.sm b           { font-size:calc(2.3rem * var(--sig-scale)); }
.pair.lg b           { font-size:calc(4.2rem * var(--sig-scale)); }
.pair-stack b        { font-size:calc(2.5rem * var(--sig-scale)); line-height:var(--sig-lh); }
.hero-card .scr      { font-size:calc(clamp(2.1rem,5vw,3.3rem) * var(--sig-scale)); line-height:var(--sig-lh); }
.news-in .head .script { font-size:calc(clamp(1.9rem,4.4vw,2.9rem) * var(--sig-scale)); line-height:var(--sig-lh); }
.qlink .scr          { font-size:calc(clamp(2rem,4.4vw,2.9rem) * var(--sig-scale)); line-height:var(--sig-lh); }
.foot .nm            { font-size:calc(2.1rem * var(--sig-scale)); line-height:var(--sig-lh); }
.brand .nm           { font-size:calc(1.9rem * var(--sig-scale)); line-height:var(--sig-lh); }
.quote-card .who     { font-size:calc(1.5rem * var(--sig-scale)); line-height:var(--sig-lh); }
.memcard .mc-name    { font-size:calc(clamp(2rem,5vw,2.9rem) * var(--sig-scale)); line-height:var(--sig-lh); }
.exp-card .tag       { font-size:calc(1.16rem * var(--sig-scale)); line-height:var(--sig-lh); }
.event-vibe,
.seating .vibe       { font-size:calc(1.22rem * var(--sig-scale)); line-height:var(--sig-lh); }
.org-card .q         { font-size:calc(1.14rem * var(--sig-scale)); line-height:var(--sig-lh); }
.title .script       { line-height:var(--sig-lh); padding-bottom:.06em; }

/* long swashes need room to breathe */
.pair, .pair-stack, .brandblock, .hero-card, .qlink, .pillar-tile { overflow:visible; }
.pillar-tile, .qlink { overflow:hidden; }
.pillar-tile .pair-stack b, .qlink .pair b { padding:0 .12em; }

/* =====================================================================
   FULL-WIDTH HERO SLIDER  (no overlay — the photograph is the hero)
   ===================================================================== */
.hero-slider {
    position:relative; width:100%; height:clamp(440px,78vh,860px);
    overflow:hidden; background:var(--blush);
}
.hero-slide {
    position:absolute; inset:0; background-size:cover; background-position:center;
    opacity:0; transform:scale(1.04); transition:opacity 1.2s var(--ease), transform 7s linear;
}
.hero-slide.on { opacity:1; transform:scale(1); }

.hero-arrow {
    position:absolute; top:50%; transform:translateY(-50%); z-index:5;
    width:52px; height:52px; border-radius:50%; border:0; cursor:pointer;
    background:rgba(255,255,255,.86); color:var(--ink);
    font-size:1.5rem; line-height:1; display:grid; place-items:center;
    box-shadow:0 8px 22px -10px rgba(43,38,39,.5); transition:.3s var(--ease);
}
.hero-arrow:hover { background:var(--white); transform:translateY(-50%) scale(1.08); }
.hero-arrow.prev { left:clamp(12px,3vw,34px); }
.hero-arrow.next { right:clamp(12px,3vw,34px); }

.hero-dots {
    position:absolute; left:50%; bottom:24px; transform:translateX(-50%); z-index:5;
    display:flex; gap:10px; padding:9px 16px; border-radius:99px; background:rgba(255,255,255,.7);
}
.hero-dots button {
    width:9px; height:9px; border-radius:50%; border:0; padding:0; cursor:pointer;
    background:rgba(74,34,51,.3); transition:.3s var(--ease);
}
.hero-dots button.on { background:var(--rose); width:26px; border-radius:99px; }

.hero-caption {
    position:absolute; left:50%; bottom:70px; transform:translateX(-50%); z-index:4;
    font-family:var(--display); font-size:0.72rem; letter-spacing:0.18em; text-transform:uppercase;
    color:var(--white); text-shadow:0 2px 10px rgba(0,0,0,.6); pointer-events:none; text-align:center;
}

/* the words now live UNDER the photograph, not on top of it */
.hero-intro { text-align:center; padding:clamp(46px,6vw,74px) 20px clamp(20px,3vw,34px); }
.hero-intro .scr {
    display:block; font-family:var(--signature); line-height:var(--sig-lh);
    font-size:calc(clamp(2.2rem,5.4vw,3.6rem) * var(--sig-scale)); color:var(--ink); padding-bottom:.06em;
}
.hero-intro .ttl {
    font-family:var(--display); font-weight:400; font-size:clamp(1.15rem,2.6vw,1.6rem);
    letter-spacing:.05em; margin:10px 0 0;
}
.hero-intro p { max-width:520px; margin:16px auto 0; font-size:.98rem; }
.hero-intro .hero-cta { margin-top:26px; justify-content:center; }

@media (max-width:680px) {
    .hero-slider { height:clamp(340px,58vh,520px); }
    .hero-arrow { width:40px; height:40px; font-size:1.2rem; }
    .hero-dots { bottom:16px; }
    .hero-caption { display:none; }
}

/* =====================================================================
   WHITE PAGE — no beige anywhere.
   Add class="page-white" to <body>. Only the nav strip, the newsletter
   strip and the tiles keep their blush; every cream and ivory surface
   becomes white.
   ===================================================================== */
body.page-white { background:var(--white); background-image:none; }

/* full-width bands */
body.page-white .band-cream,
body.page-white .band-ivory { background:var(--white); }
body.page-white .band-blush { background:linear-gradient(170deg,var(--blush) 0%, #FDF2F5 100%); }
body.page-white .band-cream,
body.page-white .band-ivory { border-top:1px solid rgba(193,151,79,.14); }

/* every beige panel and surface */
body.page-white .topbar,
body.page-white .card,
body.page-white .event-card,
body.page-white .cal,
body.page-white .panel,
body.page-white .foot,
body.page-white .modal-box,
body.page-white .menu,
body.page-white .nav-links { background:var(--white); }

body.page-white .nav { background:rgba(255,255,255,.94); }
body.page-white .navstrip { background:var(--blush); }        /* the pink strip stays */
body.page-white .memcard { background:linear-gradient(160deg,var(--white),var(--blush) 135%); }
body.page-white .tbl th  { background:#F8F4F5; }
body.page-white .uptile:hover,
body.page-white .uptile.drag { background:var(--white); }

/* cards need a hairline once the beige is gone, or they vanish */
body.page-white .card,
body.page-white .event-card,
body.page-white .cal,
body.page-white .panel { border:1px solid rgba(193,151,79,.20); }

/* florals were tuned for tinted grounds — soften on white */
body.page-white .band-cream .floral,
body.page-white .band-ivory .floral,
body.page-white .foot .floral { opacity:.22; }

/* =====================================================================
   PINK-BORDERED PILLAR CARDS
   ===================================================================== */
.pillar-tile, .qlink {
    background:var(--white);
    border:2px solid var(--rose-pale);
    border-radius:4px;
}
.pillar-tile::before, .qlink::before { display:none; }
.pillar-tile:hover, .qlink:hover {
    background:var(--blush);
    border-color:var(--rose);
    transform:translateY(-6px);
    box-shadow:0 22px 44px -26px rgba(184,85,112,.6);
}
.pillar-tile .floral, .qlink .floral { opacity:.34; }
.pillar-tile:hover .floral, .qlink:hover .floral { opacity:.46; }

/* six across, gracefully */
.pillars-6 { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:20px; }
@media (min-width:1180px) { .pillars-6 { grid-template-columns:repeat(6,minmax(0,1fr)); } }
@media (max-width:760px)  { .pillars-6 { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (max-width:460px)  { .pillars-6 { grid-template-columns:minmax(0,1fr); } }
.pillars-6 .pillar-tile { min-height:200px; padding:24px 14px; }
.pillars-6 .pair-stack b { font-size:calc(2.1rem * var(--sig-scale)); }

/* =====================================================================
   MEMBERS-ONLY TEASE
   ===================================================================== */
.locked-line { font-family:var(--label); font-weight:600;
    display:flex; align-items:center; gap:9px; margin:8px 0 4px;
    font-size:0.72rem; letter-spacing:0.16em; text-transform:uppercase; color:var(--rose-deep);
}
.locked-line svg { width:15px; height:15px; flex:none; color:var(--rose); }
.event-card.locked .event-date { opacity:.35; }
.event-card.locked { border:2px dashed var(--rose-pale); }
.tease-block {
    display:grid; place-items:center; text-align:center; background:var(--blush);
    border-radius:12px; min-height:96px; padding:14px;
}
.tease-block .pil { font-family:var(--display); font-size:0.72rem; letter-spacing:0.18em; text-transform:uppercase; color:var(--rose-deep); }
.tease-block .qm { font-family:var(--signature); font-size:2.4rem; line-height:.9; color:var(--rose); }

/* prominent "add an event" call to action */
.add-cta {
    display:flex; align-items:center; justify-content:space-between; gap:26px; flex-wrap:wrap;
    border:2px solid var(--rose-pale); border-radius:4px; padding:30px 34px; background:var(--white);
}
.add-cta .txt .pair { margin-bottom:2px; }
.add-cta p { font-size:.92rem; max-width:520px; }
.btn-add::before { content:'+'; font-size:1.15em; line-height:0; position:relative; top:.06em; }

/* collapsible optional fields on the add-event form */
.more-fields { border:1px solid var(--gold-light); border-radius:12px; padding:0 20px; margin:6px 0 22px; }
.more-fields summary { font-family:var(--label); font-weight:600;
    cursor:pointer; list-style:none; padding:16px 0; font-size:0.72rem;
    letter-spacing:0.18em; text-transform:uppercase; color:var(--gold-deep); font-weight:500;
}
.more-fields summary::-webkit-details-marker { display:none; }
.more-fields summary::before { content:'+ '; color:var(--rose); font-weight:600; }
.more-fields[open] summary::before { content:'\2013 '; }
.more-fields summary span { text-transform:none; letter-spacing:0; color:var(--ink-soft); font-size:.8rem; }
.more-fields[open] { padding-bottom:6px; }

/* =====================================================================
   SINGLE MENU BAR  (replaces the old topbar + blush navstrip pair)
   ===================================================================== */
.topnav {
    position:sticky; top:0; z-index:900;
    background:rgba(255,255,255,.96); backdrop-filter:blur(14px);
    border-bottom:1px solid rgba(193,151,79,.28);
}
.topnav .nav-in { display:flex; align-items:center; gap:18px; padding:12px 0; }
.topnav .nav-links { display:flex; align-items:center; gap:clamp(14px,2.2vw,30px); margin-right:auto; }
.topnav .nav-links > a { font-family:var(--label); font-weight:600;
    font-size:0.72rem; letter-spacing:0.18em; text-transform:uppercase; color:var(--ink);
    position:relative; padding:4px 0; white-space:nowrap;
}
.topnav .nav-links > a::after {
    content:''; position:absolute; left:0; bottom:-2px; width:0; height:1px;
    background:var(--rose); transition:.3s var(--ease);
}
.topnav .nav-links > a:hover::after { width:100%; }
.nav-right { display:flex; align-items:center; gap:14px; flex:none; }
.nav-right a { font-family:var(--label); font-weight:600;
    font-size:0.72rem; letter-spacing:0.18em; text-transform:uppercase; color:var(--ink-soft);
}
.nav-right a:hover { color:var(--rose); }
.nav-right .btn { padding:8px 18px; font-size:.58rem; }
.nav-right .chip { font-size:.56rem; padding:3px 4px 3px 12px; }
.nav-right .chip b { width:23px; height:23px; font-size:.56rem; }

@media (max-width:900px) { .nav-right .social-link { display:none; } }
@media (max-width:760px) {
    .topnav .nav-in { position:relative; }
    .topnav .nav-toggle { display:block; order:-1; }
    .topnav .nav-links {
        display:none; position:absolute; top:100%; left:-5%; width:110vw;
        flex-direction:column; align-items:flex-start; gap:18px;
        background:var(--white); padding:24px 8%;
        border-bottom:1px solid var(--gold-light); max-height:76vh; overflow-y:auto;
    }
    .topnav .nav-links.open { display:flex; }
    .topnav .nav-links > a { font-size:.72rem; }
}

/* =====================================================================
   PHOTO ALBUMS
   ===================================================================== */
.album-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:24px; }
.album-card {
    position:relative; background:var(--white); border:2px solid var(--rose-pale);
    border-radius:4px; overflow:hidden; text-align:left; transition:.4s var(--ease); display:block;
}
.album-card:hover { transform:translateY(-6px); box-shadow:0 22px 44px -26px rgba(184,85,112,.55); border-color:var(--rose); }
.album-cover { position:relative; aspect-ratio:4/3; background:var(--blush); overflow:hidden; }
.album-cover img { width:100%; height:100%; object-fit:cover; transition:transform .9s var(--ease); }
.album-card:hover .album-cover img { transform:scale(1.06); }
.album-cover .empty-cover { position:absolute; inset:0; display:grid; place-items:center; }
.album-cover .empty-cover .floral { position:absolute; inset:-10%; width:120%; opacity:.5; }
.album-cover .count { font-family:var(--label); font-weight:600;
    position:absolute; right:12px; bottom:12px; z-index:3;
    background:rgba(255,255,255,.92); border-radius:99px; padding:5px 13px;
    font-size:0.72rem; letter-spacing:0.16em; text-transform:uppercase; color:var(--ink);
}
.album-body { padding:20px 22px 22px; }
.album-body .cat { font-family:var(--label); font-weight:600; font-size:0.72rem; letter-spacing:0.18em; text-transform:uppercase; color:var(--rose-deep); }
.album-body h3 { font-family:var(--display); font-size:1.35rem; font-weight:500; margin:6px 0 6px; line-height:1.2; }
.album-body .meta { font-size:.78rem; color:var(--ink-soft); line-height:1.6; }
.album-body .meta b { font-weight:400; color:var(--ink); }

/* single album view */
.album-head { display:flex; align-items:flex-start; gap:26px; flex-wrap:wrap; margin-bottom:32px; }
.album-head .info { flex:1; min-width:240px; }
.album-head .info h2 { font-family:var(--display); font-size:clamp(1.8rem,4vw,2.6rem); font-weight:500; }
.album-head .info .meta { font-size:.9rem; color:var(--ink-soft); margin-top:8px; }
.album-head .acts { display:flex; gap:10px; flex-wrap:wrap; }
.back-link { font-family:var(--label); font-weight:600;
    display:inline-flex; align-items:center; gap:8px; font-size:0.72rem; letter-spacing:0.18em;
    text-transform:uppercase; color:var(--rose-deep); margin-bottom:18px;
}
.back-link:hover { color:var(--ink); }

/* create-album panel */
.new-album { border:2px dashed var(--rose-pale); border-radius:4px; padding:clamp(24px,4vw,38px); background:var(--white); }
.new-album.hidden { display:none; }

@media (max-width:980px) { .album-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (max-width:640px) { .album-grid { grid-template-columns:minmax(0,1fr); } }

/* checkbox rows for commitments */
.check { display:flex; gap:12px; align-items:flex-start; padding:9px 0; cursor:pointer; font-size:.92rem;
         font-weight:400; letter-spacing:0; text-transform:none; color:var(--ink); margin-bottom:0; }
.check input { width:19px; height:19px; flex:none; margin-top:3px; accent-color:var(--rose); cursor:pointer; }
.check span { line-height:1.55; }
.check b { font-weight:500; }

/* =====================================================================
   THE LOUNGE
   ===================================================================== */
.lounge { max-width:760px; margin:0 auto; }
.lounge-box { background:var(--white); border:2px solid var(--rose-pale); border-radius:4px; padding:22px; margin-bottom:22px; }
.lounge-box textarea {
    width:100%; border:0; resize:vertical; font-family:var(--sans); font-size:1rem;
    font-weight:400; background:transparent; min-height:64px;
}
.lounge-box textarea:focus { outline:none; }
.lounge-box .row { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-top:10px;
                   border-top:1px solid var(--gold-light); padding-top:12px; }
.lounge-box .count { font-size:.7rem; color:var(--ink-soft); }

.post { background:var(--white); border:1px solid var(--gold-light); border-radius:4px; padding:20px 22px; margin-bottom:16px; }
.post.pinned { border-color:var(--rose); background:linear-gradient(160deg,var(--blush),var(--white) 60%); }
.post-head { display:flex; align-items:center; gap:12px; margin-bottom:10px; }
.post-av { width:38px; height:38px; border-radius:50%; display:grid; place-items:center; flex:none;
           background:var(--rose); color:var(--white); font-family:var(--display); font-size:.85rem; }
.post-av.founder { background:var(--foil); color:#4A3512; }
.post-av.organizer { background:var(--teal, var(--emerald)); }
.post-who { font-family:var(--display); font-size:1.05rem; font-weight:500; line-height:1.2; }
.post-role { font-family:var(--label); font-weight:600; font-size:0.72rem; letter-spacing:0.18em; text-transform:uppercase; color:var(--gold-deep); }
.post-when { margin-left:auto; font-size:.66rem; letter-spacing:.1em; color:var(--ink-soft); flex:none; }
.post-body { font-size:.98rem; line-height:1.7; white-space:pre-wrap; }
.post-acts { display:flex; gap:14px; margin-top:12px; }
.post-acts button { font-family:var(--label); font-weight:600; background:none; border:0; cursor:pointer; font-size:0.72rem; letter-spacing:0.18em;
                    text-transform:uppercase; color:var(--rose-deep); padding:0; }
.post-acts button:hover { color:var(--ink); }
.replies { margin-top:14px; padding-left:16px; border-left:2px solid var(--blush-deep); }
.reply { padding:10px 0; }
.reply .who { font-family:var(--display); font-size:.92rem; font-weight:500; }
.reply .when { font-size:.62rem; color:var(--ink-soft); margin-left:8px; }
.reply .body { font-size:.92rem; line-height:1.6; margin-top:2px; }
.reply-form { display:flex; gap:8px; margin-top:10px; }
.reply-form input { flex:1; padding:9px 13px; border:1px solid var(--gold-light); border-radius:99px;
                    font-family:var(--sans); font-size:.88rem; font-weight:400; }
.reply-form input:focus { outline:none; border-color:var(--rose); }

/* dues status card */
.dues-card { border:2px solid var(--rose-pale); border-radius:4px; padding:26px 28px; background:var(--white); }
.dues-card.trial  { border-color:var(--gold-light); background:linear-gradient(160deg,#FBF6EF,var(--white) 60%); }
.dues-card.due    { border-color:var(--rose); background:linear-gradient(160deg,var(--blush),var(--white) 60%); }
.dues-card .state { font-family:var(--label); font-weight:600; font-size:0.72rem; letter-spacing:0.18em; text-transform:uppercase; color:var(--gold-deep); }
.dues-card h4 { font-family:var(--display); font-size:1.5rem; font-weight:500; margin:6px 0 8px; }
.dues-card p { font-size:.92rem; }
.role-pill { font-family:var(--label); font-weight:600; display:inline-block; font-size:0.72rem; letter-spacing:0.18em; text-transform:uppercase;
             padding:4px 12px; border-radius:99px; background:var(--blush); color:var(--rose-deep); }
.role-pill.founder { background:var(--foil); color:#4A3512; }

/* =====================================================================
   MORE PRESENCE -- bigger type, colour blocks, gold foil
   ===================================================================== */

/* ---------- type scale up ---------- */
html { font-size:18px; }
body { font-size:1rem; }
.title    { font-size:clamp(2.4rem,6.2vw,4.2rem); }
.title-xl { font-size:clamp(3rem,8.4vw,5.8rem); }
.lede     { font-size:1.16rem; line-height:1.8; max-width:740px; }
.eyebrow  { font-size:.8rem; letter-spacing:.34em; }
.pair em     { font-size:1.35rem; }
.pair b      { font-size:calc(3.9rem * var(--sig-scale)); }
.pair.sm em  { font-size:.95rem; }
.pair.sm b   { font-size:calc(2.7rem * var(--sig-scale)); }
.pair.lg em  { font-size:1.65rem; }
.pair.lg b   { font-size:calc(5rem * var(--sig-scale)); }
.pair-stack em { font-size:.82rem; }
.pair-stack b  { font-size:calc(2.9rem * var(--sig-scale)); }
.btn      { font-size:.78rem; padding:17px 40px; }
.btn-sm   { font-size:.7rem; padding:12px 24px; }
.btn-lg   { font-size:.84rem; padding:21px 50px; }
.card p, .exp-card p { font-size:1rem; }
.event-body h3 { font-size:1.75rem; }
.event-meta    { font-size:1.02rem; }
.stats b  { font-size:2.9rem; }
.stats span { font-size:.64rem; }
.hero-intro .ttl { font-size:clamp(1.3rem,3vw,1.9rem); }
.hero-intro p { font-size:1.1rem; }

/* ---------- solid colour blocks (immune to page-white) ---------- */
.band-rose {
    position:relative; overflow:hidden;
    background:linear-gradient(155deg,#E187A0 0%, var(--rose) 45%, var(--rose-deep) 100%);
    color:var(--white);
}
.band-rose .title, .band-rose h2, .band-rose h3, .band-rose .pair em, .band-rose .pair b { color:var(--white); }
.band-rose p, .band-rose .lede { color:rgba(255,255,255,.92); }
.band-rose .eyebrow { color:var(--champagne); }
.band-rose .divider .rule { background:linear-gradient(90deg,transparent,var(--champagne)); }
.band-rose .divider .rule:last-child { background:linear-gradient(270deg,transparent,var(--champagne)); }
.band-rose .divider .gem { fill:var(--champagne); }
.band-rose .floral { opacity:.16 !important; filter:none; }

.band-champagne {
    position:relative; overflow:hidden;
    background:linear-gradient(160deg,#FBF3E2 0%, #F2E4C6 55%, #E8D5AE 100%);
}
.band-champagne .floral { opacity:.35 !important; }

.band-ink { position:relative; overflow:hidden; background:var(--ink); color:var(--cream); }
.band-ink .title, .band-ink h3, .band-ink .pair em, .band-ink .pair b { color:var(--cream); }
.band-ink p { color:rgba(251,245,238,.7); }
.band-ink .eyebrow { color:var(--champagne); }

body.page-white .band-rose,
body.page-white .band-champagne,
body.page-white .band-ink { background-image:none; }
body.page-white .band-rose { background:linear-gradient(155deg,#E187A0 0%, var(--rose) 45%, var(--rose-deep) 100%); }
body.page-white .band-champagne { background:linear-gradient(160deg,#FBF3E2 0%, #F2E4C6 55%, #E8D5AE 100%); }
body.page-white .band-ink { background:var(--ink); }

/* ---------- gold foil frames ---------- */
.foil-frame {
    border:2px solid transparent; border-radius:4px;
    background:
        linear-gradient(var(--white), var(--white)) padding-box,
        var(--foil) border-box;
    background-size:auto, 300% 300%;
    transition:.45s var(--ease);
}
.foil-frame:hover { background-position:0 0, 100% 50%; transform:translateY(-7px);
                    box-shadow:0 24px 48px -26px rgba(161,123,54,.6); }
.foil-frame.on-rose {
    background:
        linear-gradient(var(--white), var(--white)) padding-box,
        var(--foil) border-box;
}
.foil-rule { height:3px; border:0; background:var(--foil); background-size:250% 100%;
             animation:foilmove 7s linear infinite; max-width:150px; margin:20px auto; }
.foil-rule.left { margin-left:0; }
@keyframes foilmove { 0%{background-position:0 0} 100%{background-position:250% 0} }

/* ---------- section icon badge ---------- */
.sec-badge {
    width:66px; height:66px; margin:0 auto 18px; border-radius:50%;
    display:grid; place-items:center; position:relative;
    background:linear-gradient(var(--white),var(--white)) padding-box, var(--foil) border-box;
    border:2px solid transparent;
}
.sec-badge svg { width:32px; height:32px; }
.band-rose .sec-badge { background:linear-gradient(var(--rose-deep),var(--rose-deep)) padding-box, var(--foil) border-box; }
.band-rose .sec-badge .ico-line { stroke:var(--champagne); }
.band-rose .sec-badge .ico-fill { fill:var(--champagne); }
.band-rose .sec-badge .ico-rose { fill:#FBD9E2; }

/* ---------- home page mini calendar ---------- */
.cal-feature { display:grid; grid-template-columns:.85fr 1.15fr; gap:44px; align-items:start; }
.mini-cal {
    border:2px solid transparent; border-radius:6px; padding:26px 24px 28px;
    background:linear-gradient(var(--white),var(--white)) padding-box, var(--foil) border-box;
    box-shadow:0 20px 44px -30px rgba(74,34,51,.5);
}
.mini-cal-head { display:flex; align-items:center; justify-content:space-between; margin-bottom:6px; }
.mini-cal-head .m { font-family:var(--display); font-size:1.6rem; font-weight:500; }
.mini-cal-head .y { font-size:.62rem; letter-spacing:.28em; color:var(--gold-deep); }
.mini-cal-head button { width:32px; height:32px; border-radius:50%; border:1px solid var(--gold-light);
                        background:none; color:var(--gold-deep); cursor:pointer; }
.mini-cal-head button:hover { background:var(--gold); color:var(--white); border-color:var(--gold); }
.mini-grid { display:grid; grid-template-columns:repeat(7,minmax(0,1fr)); gap:3px; margin-top:14px; }
.mini-grid .dw { font-family:var(--label); font-weight:600; text-align:center; font-size:0.72rem; letter-spacing:0.12em; text-transform:uppercase;
                 color:var(--gold-deep); padding-bottom:6px; }
.mini-grid .dd { aspect-ratio:1; display:grid; place-items:center; font-size:.84rem; color:var(--ink-soft);
                 border-radius:8px; position:relative; }
.mini-grid .dd.blank { visibility:hidden; }
.mini-grid .dd.today { border:1px solid var(--gold); color:var(--ink); }
.mini-grid .dd.has { background:var(--rose); color:var(--white); font-weight:500; cursor:pointer; }
.mini-grid .dd.has:hover { background:var(--rose-deep); transform:scale(1.08); }
.mini-legend { font-family:var(--label); font-weight:600; display:flex; align-items:center; gap:9px; margin-top:16px; font-size:0.72rem;
               letter-spacing:0.14em; text-transform:uppercase; color:var(--ink-soft); }
.mini-legend b { width:13px; height:13px; border-radius:4px; background:var(--rose); }
@media (max-width:900px) { .cal-feature { grid-template-columns:minmax(0,1fr); gap:30px; } }

/* ---------- pillar tiles on the rose block ---------- */
.band-rose .pillar-tile {
    background:var(--white); border:2px solid transparent; border-radius:4px;
    background:linear-gradient(var(--white),var(--white)) padding-box, var(--foil) border-box;
}
.band-rose .pillar-tile:hover { background:linear-gradient(var(--blush),var(--white)) padding-box, var(--foil) border-box; }
.band-rose .pillar-tile .pair-stack em { color:var(--gold-deep); }
.band-rose .pillar-tile .pair-stack b  { color:var(--ink); }
.band-rose .pillar-tile .sub { color:var(--ink-soft); }
.band-rose .pillar-tile .floral { opacity:.4 !important; }

/* ---------- sparkle strip between sections ---------- */
.strip {
    background:var(--foil); background-size:250% 100%; animation:foilmove 9s linear infinite;
    height:5px; width:100%;
}

/* =====================================================================
   MEMBER PHOTOS
   ===================================================================== */
.avatar-img, .avatar-init {
    border-radius:50%; object-fit:cover; flex:none; display:grid; place-items:center;
    background:var(--rose); color:var(--white); font-family:var(--display); font-weight:500;
    border:2px solid var(--white); box-shadow:0 2px 8px rgba(74,34,51,.16);
}
.avatar-img.founder, .avatar-init.founder { border-color:var(--gold); box-shadow:0 0 0 2px var(--gold-light); }
.avatar-init.organizer { background:var(--emerald); }
.avatar-init.founder { background:var(--foil); color:#4A3512; }

.photo-prompt {
    display:flex; align-items:center; gap:20px; flex-wrap:wrap;
    border:2px solid var(--rose); border-radius:4px; padding:22px 26px;
    background:linear-gradient(160deg,var(--blush),var(--white) 70%); margin-bottom:24px;
}
.photo-prompt .txt { flex:1; min-width:220px; }
.photo-prompt h4 { font-family:var(--display); font-size:1.3rem; font-weight:500; }
.photo-prompt p { font-size:.9rem; margin-top:4px; }

/* =====================================================================
   THE LOUNGE PAGE -- a studio wall of faces
   ===================================================================== */
.lounge-hero { display:flex; align-items:center; gap:14px; flex-wrap:wrap; justify-content:center; margin-bottom:8px; }
.lounge-hero .avatar-img, .lounge-hero .avatar-init { width:52px; height:52px; margin-left:-14px; }
.lounge-hero .avatar-img:first-child, .lounge-hero .avatar-init:first-child { margin-left:0; }

.board { display:grid; grid-template-columns:minmax(0,1fr) 300px; gap:36px; align-items:start; }
.board-side { position:sticky; top:96px; }
.side-card { border:2px solid var(--rose-pale); border-radius:4px; background:var(--white); padding:22px; margin-bottom:18px; }
.side-card h4 { font-family:var(--display); font-size:1.15rem; font-weight:500; margin-bottom:12px; }
.who-list { display:flex; flex-wrap:wrap; gap:8px; }
.who-list .avatar-img, .who-list .avatar-init { width:42px; height:42px; }
@media (max-width:900px) { .board { grid-template-columns:minmax(0,1fr); } .board-side { position:static; } }


/* the artwork is already the right pink -- opacity alone tunes it */
.floral img { filter:none; }
.o-90 .floral img, .o-90 img { opacity:inherit; }
.band-rose .floral img { filter:brightness(1.6) saturate(.3); }
.band-emerald .floral img { filter:brightness(1.8) saturate(.2); }
.band-ink .floral img { filter:brightness(1.7) saturate(.25); }

/* ---------- the logo in the header ---------- */
.brandblock { padding:22px 20px 20px; }
.bb-logo { display:block; }
.bb-logo img { width:clamp(190px,26vw,300px); height:auto; margin:0 auto; }
.brandblock .bb-tag { margin-top:4px; }
@media (max-width:640px) { .bb-logo img { width:190px; } }

/* =====================================================================
   THE TABLE DECK
   ===================================================================== */
.deck { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:20px; }
@media (max-width:1000px) { .deck { grid-template-columns:repeat(3,minmax(0,1fr)); } }
@media (max-width:760px)  { .deck { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (max-width:460px)  { .deck { grid-template-columns:minmax(0,1fr); } }

.card-flip { perspective:1200px; cursor:pointer; aspect-ratio:.82; }
.cf-inner {
    position:relative; width:100%; height:100%; transition:transform .65s var(--ease);
    transform-style:preserve-3d;
}
.card-flip.flipped .cf-inner { transform:rotateY(180deg); }

.cf-face {
    position:absolute; inset:0; backface-visibility:hidden; border-radius:14px;
    display:flex; flex-direction:column; align-items:center; justify-content:center;
    text-align:center; padding:24px 20px; overflow:hidden;
}
.cf-back {
    background:linear-gradient(165deg,#FFFFFF 0%, var(--blush) 100%);
    border:2px solid transparent;
    background-clip:padding-box;
    box-shadow:0 12px 28px -20px rgba(74,34,51,.5);
    border:2px solid var(--rose-pale);
}
.cf-back:hover { border-color:var(--rose); }
.cf-icon { width:44px; height:44px; margin-bottom:16px; }
.cf-icon svg { width:44px; height:44px; }
.cf-cat {
    font-family:var(--display); font-weight:500; font-size:0.86rem; letter-spacing:0.18em;
    text-transform:uppercase; color:var(--rose-deep); line-height:1.5;
}
.cf-hint { font-family:var(--label); font-weight:600;
    position:absolute; bottom:20px; left:0; right:0;
    font-size:0.72rem; letter-spacing:0.18em; text-transform:uppercase; color:var(--gold-deep);
}

.cf-front {
    transform:rotateY(180deg);
    background:var(--white); border:2px solid var(--rose-pale); border-radius:14px;
    box-shadow:0 12px 28px -20px rgba(74,34,51,.5);
}
.cf-q { font-family:var(--sans); font-weight:400; font-size:1.02rem; line-height:1.5; color:var(--ink); }
.cf-dots { color:var(--rose-pale); letter-spacing:.3em; margin:16px 0 14px; font-size:.7rem; }
.cf-mark {
    background:none; border:1px solid var(--rose-pale); border-radius:999px; cursor:pointer;
    font-family:var(--label); font-size:0.72rem; letter-spacing:0.18em; text-transform:uppercase;
    color:var(--rose-deep); padding:9px 20px; transition:.3s var(--ease);
}
.cf-mark:hover { background:var(--rose); border-color:var(--rose); color:var(--white); }

/* answered cards go dark, as in the original */
.card-flip.used .cf-front { background:#2A1A20; border-color:#4A2E38; }
.card-flip.used .cf-q { color:#F6E9EC; font-weight:500; }
.card-flip.used .cf-dots { color:#7A5A66; }
.card-flip.used .cf-mark { background:var(--rose-deep); border-color:var(--rose-deep); color:var(--white); }
.card-flip.used .cf-back { opacity:.55; }
.cf-used { font-family:var(--label); font-weight:600;
    position:absolute; top:14px; right:14px; background:var(--rose); color:var(--white);
    font-size:0.72rem; letter-spacing:0.18em; text-transform:uppercase; padding:4px 11px; border-radius:999px;
}
.deck-filters { justify-content:center; }

/* ---------------------------------------------------------------------
   SAFETY NET -- nothing may ever fill the page, whatever the cascade does
   --------------------------------------------------------------------- */
[data-icon] { display:inline-block; line-height:0; }
[data-icon] svg { display:block; max-width:100%; height:auto; }
.sec-badge svg, .cf-icon svg, .halo svg, .trinkets svg { max-width:100%; }
.floral img { max-width:100%; }
.brandblock img, .foot img { max-width:100%; }

/* =====================================================================
   MESSAGES INSIDE AN EVENT
   ===================================================================== */
.ev-thread { grid-column:1/-1; border-top:1px solid var(--gold-light); margin-top:14px; padding-top:16px; }
.ev-thread.hidden { display:none; }
.ev-msg { display:flex; gap:12px; padding:10px 0; }
.ev-msg .avatar-img, .ev-msg .avatar-init { width:34px; height:34px; }
.ev-msg .who { font-family:var(--display); font-size:.98rem; font-weight:500; }
.ev-msg .when { font-size:.6rem; letter-spacing:.1em; color:var(--ink-soft); margin-left:8px; }
.ev-msg .body { font-size:.94rem; line-height:1.55; margin-top:2px; }
.ev-msg .host-tag { font-family:var(--label); font-weight:600; font-size:0.72rem; letter-spacing:0.16em; text-transform:uppercase; background:var(--rose);
                    color:var(--white); padding:2px 8px; border-radius:99px; margin-left:8px; }
.ev-send { display:flex; gap:8px; margin-top:12px; }
.ev-send input { flex:1; padding:10px 14px; border:1px solid var(--gold-light); border-radius:99px;
                 font-family:var(--sans); font-size:.9rem; font-weight:400; }
.ev-send input:focus { outline:none; border-color:var(--rose); }
.msg-btn { position:relative; }
.msg-btn .badge {
    position:absolute; top:-6px; right:-6px; min-width:19px; height:19px; padding:0 5px;
    border-radius:99px; background:var(--rose); color:var(--white);
    font-size:.58rem; display:grid; place-items:center;
}
.new-ribbon { font-family:var(--label); font-weight:600;
    display:inline-block; background:var(--emerald); color:var(--white); font-size:0.72rem;
    letter-spacing:0.18em; text-transform:uppercase; padding:4px 11px; border-radius:99px; margin-right:8px;
}

/* a date chip on event photos, so the photo never hides when it is */
.event-photo { position:relative; }
.photo-date {
    position:absolute; left:10px; bottom:10px;
    background:rgba(255,255,255,.94); color:var(--ink);
    font-family:var(--display); font-weight:500; font-size:.78rem;
    letter-spacing:.06em; padding:5px 12px; border-radius:99px;
    box-shadow:0 4px 12px -6px rgba(74,34,51,.6);
}

/* photos inside the event chat */
.msg-img { width:100%; max-width:340px; border-radius:12px; margin-top:8px; display:block; cursor:zoom-in; }
.pending-pic { position:relative; display:inline-block; margin-top:10px; }
.pending-pic.hidden { display:none; }
.pending-pic img { width:110px; height:110px; object-fit:cover; border-radius:10px; display:block; }
.pic-x { position:absolute; top:-8px; right:-8px; width:26px; height:26px; border-radius:50%;
         border:0; background:var(--ink); color:#fff; cursor:pointer; font-size:16px; line-height:1; }

/* =====================================================================
   THE DASHBOARD
   ===================================================================== */
.stat-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:14px; }
.stat-card {
    border:2px solid var(--rose-pale); border-radius:4px; padding:20px 18px; background:var(--white);
    text-align:center;
}
.stat-card.hot { border-color:var(--rose); background:linear-gradient(160deg,var(--blush),var(--white) 70%); }
.stat-card b { display:block; font-family:var(--display); font-size:2.3rem; font-weight:500; color:var(--ink); line-height:1; }
.stat-card span { font-family:var(--label); font-weight:600; display:block; margin-top:6px; font-size:0.72rem; letter-spacing:0.18em;
                  text-transform:uppercase; color:var(--ink-soft); }
@media (max-width:900px) { .stat-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } }

.tabs { display:flex; gap:6px; flex-wrap:wrap; border-bottom:1px solid var(--gold-light); margin:38px 0 24px; }
.tab {
    background:none; border:0; border-bottom:3px solid transparent; cursor:pointer;
    padding:12px 18px; font-family:var(--label); font-size:0.72rem; letter-spacing:0.18em;
    text-transform:uppercase; color:var(--ink-soft);
}
.tab.on { color:var(--ink); border-bottom-color:var(--rose); }
.tab-n { display:inline-block; min-width:19px; padding:1px 6px; border-radius:99px;
         background:var(--rose); color:#fff; font-size:.58rem; margin-left:6px; }
.tab-n:empty { display:none; }
.tab-body.hidden { display:none; }

.dash-tools { display:flex; gap:10px; flex-wrap:wrap; margin-bottom:20px; align-items:center; }
.dash-tools .inp { width:auto; flex:1; min-width:180px; margin:0; }
.dash-tools select.inp { flex:0 0 190px; }

.mrow {
    display:grid; grid-template-columns:1.6fr minmax(0,1fr) auto; gap:16px; align-items:center;
    border:1px solid var(--gold-light); border-radius:4px; padding:14px 18px; margin-bottom:10px;
    background:var(--white);
}
.mrow.gone { opacity:.55; background:#FAF7F8; }
.mwho { display:flex; gap:14px; align-items:center; min-width:0; }
.mwho b { font-family:var(--display); font-size:1.08rem; font-weight:500; display:block; }
.mwho small { display:block; font-size:.76rem; color:var(--ink-soft); margin-top:2px; }
.mtags { display:flex; gap:7px; flex-wrap:wrap; }
.macts { display:flex; gap:7px; flex-wrap:wrap; justify-content:flex-end; }
.macts .btn { padding:9px 15px; font-size:.6rem; }
@media (max-width:860px) {
    .mrow { grid-template-columns:minmax(0,1fr); }
    .macts { justify-content:flex-start; }
}

/* policy pages */
.pol-h { font-family:var(--display); font-size:1.4rem; font-weight:500; color:var(--ink);
         margin:34px 0 10px; padding-top:20px; border-top:1px solid var(--gold-light); }
.pol-h:first-of-type { border-top:0; padding-top:0; }
.pol-list { list-style:none; padding:0; margin:10px 0; }
.pol-list li { padding:7px 0 7px 22px; position:relative; font-size:1rem; line-height:1.7; }
.pol-list li::before { content:''; position:absolute; left:2px; top:16px; width:6px; height:6px;
                       border-radius:50%; background:var(--rose); }

/* =====================================================================
   ACCOUNT MENU
   ===================================================================== */
.acct-menu {
    position:absolute; z-index:1200; min-width:250px;
    background:var(--white); border:2px solid var(--rose-pale); border-radius:6px;
    box-shadow:0 24px 54px -28px rgba(74,34,51,.6);
    opacity:0; transform:translateY(-8px); pointer-events:none;
    transition:.24s var(--ease); overflow:hidden;
}
.acct-menu.open { opacity:1; transform:translateY(0); pointer-events:auto; }
.acct-head {
    display:flex; gap:13px; align-items:center; padding:18px;
    background:linear-gradient(160deg,var(--blush),var(--white) 80%);
    border-bottom:1px solid var(--gold-light);
}
.acct-head b { font-family:var(--display); font-size:1.05rem; font-weight:500; display:block; line-height:1.2; }
.acct-head small { display:block; font-size:.72rem; color:var(--ink-soft); margin-top:2px;
                   max-width:150px; overflow:hidden; text-overflow:ellipsis; }
.acct-role { font-family:var(--label); font-weight:600; display:inline-block; margin-top:6px; font-size:0.72rem; letter-spacing:0.18em;
             text-transform:uppercase; color:var(--rose-deep); }
.acct-menu a, .acct-menu button {
    display:block; width:100%; text-align:left; background:none; border:0; cursor:pointer;
    padding:13px 18px; font-family:var(--label); font-size:0.72rem; letter-spacing:0.16em;
    text-transform:uppercase; color:var(--ink); border-top:1px solid rgba(193,151,79,.2);
    transition:.2s var(--ease);
}
.acct-menu a:first-of-type { border-top:0; }
.acct-menu a:hover, .acct-menu button:hover { background:var(--blush); color:var(--rose-deep); }
.acct-menu .acct-admin { color:var(--rose-deep); font-weight:500; }
.acct-menu #acctOut { color:var(--ink-soft); border-top:1px solid var(--gold-light); }
.acct-menu #acctOut:hover { background:var(--ink); color:var(--white); }
.chip { cursor:pointer; }

/* =====================================================================
   PROFILE CARD
   ===================================================================== */
.profile-card {
    border:2px solid var(--rose-pale); border-radius:6px; background:var(--white);
    padding:clamp(22px,3.5vw,30px); margin-bottom:24px; text-align:left;
}
.profile-card.incomplete { border-color:var(--rose);
    background:linear-gradient(160deg,var(--blush),var(--white) 55%); }
.pc-top { display:flex; gap:22px; align-items:center; flex-wrap:wrap; }
.pc-photo { position:relative; text-align:center; flex:none; }
.pc-photo .avatar-img, .pc-photo .avatar-init { margin:0 auto; }
.pc-cam {
    display:block; margin-top:9px; background:none; border:1px solid var(--rose-pale);
    border-radius:999px; cursor:pointer; padding:5px 14px;
    font-family:var(--label); font-size:0.72rem; letter-spacing:0.16em;
    text-transform:uppercase; color:var(--rose-deep); transition:.25s var(--ease);
}
.pc-cam:hover { background:var(--rose); border-color:var(--rose); color:var(--white); }
.pc-who { flex:1; min-width:200px; }
.pc-who h3 { font-family:var(--display); font-size:1.7rem; font-weight:500; line-height:1.15; }
.pc-badges { display:flex; gap:7px; flex-wrap:wrap; margin-top:10px; }
.status-badge { font-family:var(--label); font-weight:600;
    font-size:0.72rem; letter-spacing:0.18em; text-transform:uppercase;
    padding:5px 13px; border-radius:999px; color:var(--white); font-weight:500;
}
.status-badge.bg-rose    { background:var(--rose); }
.status-badge.bg-emerald { background:var(--emerald); }
.status-badge.bg-gold    { background:var(--foil); color:#4A3512; }
.status-badge.bg-ink     { background:var(--ink); }
.pc-nudge {
    margin-top:18px; padding:13px 16px; border-radius:4px;
    background:rgba(217,115,139,.12); border-left:3px solid var(--rose);
    font-size:.9rem; line-height:1.6;
}
.profile-card .fg { margin-bottom:14px; }
.profile-card label { font-size:.58rem; }

/* =====================================================================
   MY ACCOUNT
   ===================================================================== */
.acct-hero { display:flex; gap:28px; align-items:center; flex-wrap:wrap; }
.ah-photo { text-align:center; flex:none; }
.ah-who { flex:1; min-width:220px; }
.ah-who h1 { font-family:var(--display); font-size:clamp(1.9rem,4.4vw,2.7rem); font-weight:500; line-height:1.1; }
.ah-meta { font-size:.84rem; color:var(--ink-soft); margin-top:9px; }
.ah-stats { display:flex; gap:26px; flex:none; }
.ah-stats div { text-align:center; }
.ah-stats b { display:block; font-family:var(--display); font-size:2.1rem; font-weight:500; color:var(--ink); line-height:1; }
.ah-stats span { font-family:var(--label); font-weight:600; display:block; margin-top:4px; font-size:0.72rem; letter-spacing:0.18em;
                 text-transform:uppercase; color:var(--ink-soft); }
@media (max-width:760px) { .ah-stats { width:100%; justify-content:space-around; margin-top:12px; } }

.acct-h { font-family:var(--display); font-size:1.5rem; font-weight:500; color:var(--ink);
          margin-bottom:16px; padding-bottom:8px; border-bottom:1px solid var(--gold-light); }
.acct-tools { display:flex; gap:10px; flex-wrap:wrap; }
.quick-fills { display:flex; gap:7px; flex-wrap:wrap; margin-top:6px; }
.quick-fills .fchip { font-size:.58rem; padding:7px 13px; }

/* =====================================================================
   THE BIG CALENDAR
   ===================================================================== */
.cal-big {
    background:var(--white); border:2px solid transparent; border-radius:6px;
    background:linear-gradient(var(--white),var(--white)) padding-box, var(--foil) border-box;
    padding:clamp(18px,3vw,30px); box-shadow:0 22px 50px -34px rgba(74,34,51,.55);
}
.cal-big .cal-head h3 { font-size:clamp(1.4rem,3vw,2rem); }
.cal-grid.big { display:grid; grid-template-columns:repeat(7,minmax(0,1fr)); gap:6px;
               margin-top:16px; width:100%; }
.cal-grid.big .dow { font-family:var(--label); font-weight:600;
    text-align:center; font-size:0.72rem; letter-spacing:0.16em; text-transform:uppercase;
    color:var(--gold-deep); padding-bottom:8px;
}
.cal-grid.big .day {
    min-width:0; min-height:104px; border:1px solid var(--gold-light); border-radius:8px;
    padding:7px 7px 6px; position:relative; background:var(--white); overflow:hidden;
    display:flex; flex-direction:column; gap:4px; transition:.25s var(--ease);
}
.cal-grid.big .day.blank { border:0; background:none; }
.cal-grid.big .dnum { font-size:.8rem; color:var(--ink-soft); font-weight:400; }
.cal-grid.big .day.today { border-color:var(--gold); box-shadow:inset 0 0 0 1px var(--gold); }
.cal-grid.big .day.today .dnum { color:var(--ink); font-weight:500; }
.cal-grid.big .day.has { cursor:pointer; background:linear-gradient(170deg,var(--white),#FFF8FA); }
.cal-grid.big .day.has:hover { border-color:var(--rose); }
.cal-grid.big .day.sel { border-color:var(--rose); box-shadow:0 0 0 2px var(--rose-pale); }
.cal-chip {
    display:block; min-width:0; background:var(--rose); color:var(--white); border-radius:5px;
    padding:4px 7px; text-decoration:none; transition:.2s var(--ease); overflow:hidden;
}
.cal-chip:hover { background:var(--rose-deep); transform:translateY(-1px); }
.cal-chip b { display:block; font-family:var(--label); font-weight:500; font-size:0.72rem;
              letter-spacing:0.06em; text-transform:uppercase; line-height:1.25;
              overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.cal-chip span { display:block; font-size:.55rem; opacity:.9; margin-top:1px; }
.cal-more { font-family:var(--label); font-weight:600; font-size:0.72rem; letter-spacing:0.1em; text-transform:uppercase; color:var(--rose-deep); }
/* ---------- tablet ---------- */
@media (max-width:860px) {
    .cal-big { padding:16px 12px 18px; }
    .cal-grid.big { gap:4px; }
    .cal-grid.big .day { min-height:78px; padding:5px 4px; border-radius:6px; }
    .cal-chip { padding:3px 5px; border-radius:4px; }
    .cal-chip b { font-size:.5rem; letter-spacing:.02em; }
    .cal-chip span { font-size:.48rem; }
}

/* ---------- phone: square cells, dots instead of chips ---------- */
@media (max-width:620px) {
    .cal-big { padding:14px 8px 16px; border-radius:4px; }
    .cal-big .cal-head { gap:6px; }
    .cal-big .cal-head h3 { font-size:1.3rem; }
    .cal-big .cal-head button { width:34px; height:34px; }

    .cal-grid.big { gap:3px; margin-top:12px; }
    .cal-grid.big .dow { font-size:.55rem; letter-spacing:.04em; padding-bottom:4px; }
    .cal-grid.big .day {
        min-height:0; aspect-ratio:1; padding:0; border-radius:6px;
        align-items:center; justify-content:center; gap:3px;
    }
    .cal-grid.big .dnum { font-size:.86rem; line-height:1; }

    /* the chip becomes a dot -- the list underneath carries the detail */
    .cal-chip {
        width:6px; height:6px; padding:0; border-radius:50%;
        background:var(--rose); overflow:visible;
    }
    .cal-chip b, .cal-chip span { display:none; }
    .cal-grid.big .day.has { background:var(--blush); border-color:var(--rose-pale); }
    .cal-grid.big .day.has .dnum { color:var(--ink); font-weight:500; }
    .cal-grid.big .day.sel { background:var(--rose); border-color:var(--rose); }
    .cal-grid.big .day.sel .dnum { color:var(--white); }
    .cal-grid.big .day.sel .cal-chip { background:var(--white); }
    .cal-more { display:none; }

    .cal-legend { display:flex; }
}

/* a note so nobody wonders what the dots mean */
.cal-legend { font-family:var(--label); font-weight:600;
    display:none; align-items:center; justify-content:center; gap:8px; margin-top:12px;
    font-size:0.72rem; letter-spacing:0.1em; text-transform:uppercase; color:var(--ink-soft);
}
.cal-legend i { width:7px; height:7px; border-radius:50%; background:var(--rose); display:block; }

/* =====================================================================
   SINGLE EVENT PAGE -- flyer beside the details
   ===================================================================== */
.ev-split { display:grid; grid-template-columns:minmax(0,440px) 1fr; gap:clamp(28px,4vw,52px); align-items:start; }

.ev-flyer { position:relative; }
.ev-flyer img {
    width:100%; height:auto; display:block; border-radius:6px; cursor:zoom-in;
    border:2px solid transparent;
    background:linear-gradient(var(--white),var(--white)) padding-box, var(--foil) border-box;
    box-shadow:0 26px 60px -34px rgba(74,34,51,.6); transition:.4s var(--ease);
}
.ev-flyer img:hover { transform:translateY(-4px); box-shadow:0 32px 68px -32px rgba(74,34,51,.7); }
.flyer-note { font-family:var(--label); font-weight:600; text-align:center; margin-top:10px; font-size:0.72rem; letter-spacing:0.18em;
              text-transform:uppercase; color:var(--ink-soft); }

.flyer-blank {
    position:relative; aspect-ratio:2/3; border-radius:6px; overflow:hidden;
    background:linear-gradient(165deg,var(--blush),var(--white) 70%);
    border:2px solid var(--rose-pale); display:grid; place-items:center;
}
.fb-date { position:relative; text-align:center; color:var(--ink); }
.fb-date .mo { font-family:var(--label); font-weight:600; display:block; font-size:0.72rem; letter-spacing:0.18em; text-transform:uppercase; color:var(--rose-deep); }
.fb-date .dy { display:block; font-family:var(--display); font-size:5rem; font-weight:500; line-height:1; }
.fb-date .yr { display:block; font-size:.62rem; letter-spacing:.28em; color:var(--gold-deep); }

.ev-detail { min-width:0; }
.ev-title { font-family:var(--display); font-size:clamp(1.9rem,4.2vw,3rem); font-weight:500; line-height:1.08; margin-top:4px; }
.ev-tagline { font-family:var(--signature); font-size:calc(2.1rem * var(--sig-scale));
              color:var(--rose); line-height:1; margin-top:6px; }
.ev-blurb { font-size:1.04rem; line-height:1.8; margin-top:20px; }
.ev-facts { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; margin-top:22px; }
.fact { display:flex; gap:12px; align-items:flex-start; }
.fact-ico { flex:none; margin-top:2px; }
.fact b { font-family:var(--label); font-weight:600; display:block; font-size:0.72rem; letter-spacing:0.18em; text-transform:uppercase; color:var(--gold-deep); }
.fact span { display:block; font-size:.98rem; margin-top:3px; line-height:1.5; }
.ev-card { border:2px solid var(--rose-pale); border-radius:6px; background:var(--white); padding:22px; }
.ev-card .state { font-family:var(--label); font-weight:600; font-size:0.72rem; letter-spacing:0.18em; text-transform:uppercase; color:var(--gold-deep); }
.ev-card h4 { font-family:var(--display); font-size:1.35rem; font-weight:500; margin:5px 0 2px; }

@media (max-width:900px) {
    .ev-split { grid-template-columns:minmax(0,1fr); }
    .ev-flyer { position:static; max-width:420px; margin:0 auto 8px; }
    .ev-facts { grid-template-columns:minmax(0,1fr); }
}

/* =====================================================================
   SIX QUESTIONS
   ===================================================================== */
.q-who { border:2px solid var(--rose-pale); border-radius:6px; padding:22px 24px; margin-bottom:26px; background:var(--white); }
.q-card {
    display:flex; gap:22px; align-items:flex-start;
    border:2px solid var(--rose-pale); border-radius:6px; padding:28px 30px;
    margin-bottom:22px; background:var(--white); transition:.3s var(--ease);
}
.q-card textarea { min-height:132px; line-height:2.1; }
.q-card:focus-within { border-color:var(--rose); box-shadow:0 14px 34px -24px rgba(184,85,112,.6); }
.q-num {
    flex:none; width:56px; height:56px; border-radius:50%; display:grid; place-items:center;
    font-family:var(--display); font-size:1.6rem; font-weight:500; color:var(--white);
    background:linear-gradient(160deg,#E187A0,var(--rose));
}
.q-body { flex:1; min-width:0; }
.q-body h3 { font-family:var(--display); font-size:1.3rem; font-weight:500;
             line-height:1.5; margin:8px 0 18px; color:var(--ink); }
.q-body textarea { width:100%; margin:0; }

@media print {
    .no-print, .banner, .topnav, .foot, .floral, .petal-field, .strip { display:none !important; }
    body { font-size:11pt; }
    .q-card { break-inside:avoid; border:1px solid #999; box-shadow:none; margin-bottom:14px; }
    .q-num { background:none !important; color:#000 !important; border:1px solid #999; }
    .q-body textarea { border:0; border-bottom:1px solid #bbb; min-height:104px; background:none; }
    .brandblock { padding:0 0 12px; }
    .page-head { padding:12px 0 !important; }
}


/* =====================================================================
   READABILITY -- everything a couple of points larger
   ===================================================================== */
label            { font-size:.68rem !important; letter-spacing:.16em; }
.inp             { font-size:1.02rem; }
.hint            { font-size:.84rem; }
.note            { font-size:.94rem; line-height:1.7; }
.chip-tag        { font-size:.7rem; padding:6px 14px; }
.pill            { font-size:.66rem; padding:5px 13px; }
.fchip           { font-size:.72rem; padding:11px 20px; }
.seatnote        { font-size:.8rem; }
.foot-links a    { font-size:.92rem; }
.foot p          { font-size:.94rem; }
.foot-title      { font-size:.68rem; }
.card p, .exp-card p { font-size:1.04rem; line-height:1.8; }
.event-body h3   { font-size:1.85rem; }
.event-vibe      { font-size:1.25rem; }
.mwho small      { font-size:.86rem; }
.mwho b          { font-size:1.15rem; }
.status-badge    { font-size:.6rem; padding:6px 15px; }
.stat-card span  { font-size:.64rem; }
.ah-stats span   { font-size:.62rem; }
.tab             { font-size:.72rem; }
.acct-h          { font-size:1.6rem; }
.fact b          { font-size:.62rem; }
.fact span       { font-size:1.06rem; }
.ev-blurb        { font-size:1.12rem; line-height:1.85; }
.ev-card .state  { font-size:.64rem; }
.ev-card h4      { font-size:1.45rem; }
.dues-card .state{ font-size:.66rem; }
.dues-card h4    { font-size:1.6rem; }
.dues-card p     { font-size:1rem; }
.q-body h3       { font-size:1.28rem; }
.post-body       { font-size:1.05rem; }
.reply .body     { font-size:1rem; }
.ev-msg .body    { font-size:1.02rem; }
.cal-chip b      { font-size:.62rem; }
.cal-chip span   { font-size:.6rem; }
.cal-grid.big .dnum { font-size:.88rem; }
.cal-grid.big .dow  { font-size:.64rem; }
.tbl td, .tbl th { font-size:.94rem; }
.tbl small       { font-size:.82rem; }
.lede            { font-size:1.24rem; }
.btn             { font-size:.82rem; }
.btn-sm          { font-size:.74rem; }

/* =====================================================================
   COMPACT SEATS CARD, AND LESS SCROLLING ON THE EVENT PAGE
   ===================================================================== */
.seat-line { display:flex; align-items:baseline; gap:10px; margin-bottom:10px; }
.seat-line.going { color:var(--emerald); }
.seat-big { font-family:var(--display); font-size:2.4rem; font-weight:500; line-height:1; color:var(--ink); }
.seat-line.going .seat-big { color:var(--emerald); }
.seat-lbl { font-size:.9rem; color:var(--ink-soft); line-height:1.3; }
.seat-row { display:flex; align-items:center; justify-content:space-between; gap:12px; margin:12px 0 12px; }
.seat-ask { font-family:var(--label); font-weight:600; font-size:0.72rem; letter-spacing:0.16em; text-transform:uppercase; color:var(--gold-deep); }
.stepper.tight { margin:0; gap:6px; }
.stepper.tight button { width:32px; height:32px; }
.stepper.tight span { min-width:26px; font-size:1.1rem; }
.ev-card { padding:18px 20px; }

/* the whole right column holds still once the flyer has scrolled past */
@media (min-width:901px) {
    .ev-split { align-items:start; }
    .ev-left { position:sticky; top:88px; }
}

/* =====================================================================
   EVENT ROW -- the list shape used on the calendar and events pages
   ===================================================================== */
.ev-row {
    display:flex; gap:18px; align-items:flex-start; padding:20px 0;
    border-bottom:1px solid var(--gold-light); text-decoration:none; color:inherit;
    transition:.25s var(--ease);
}
.ev-row:hover { background:linear-gradient(90deg,rgba(250,230,234,.5),transparent); }
.ev-row:hover .er-title { color:var(--rose-deep); }
.ev-row.past { opacity:.66; }
.er-body { flex:1; min-width:0; }
.er-when { font-family:var(--label); font-weight:600; font-size:0.82rem; letter-spacing:0.06em; color:var(--rose-deep); text-transform:uppercase; }
.er-title { font-family:var(--display); font-size:1.5rem; font-weight:500; line-height:1.25;
            margin:5px 0 6px; color:var(--ink); transition:.2s var(--ease); }
.er-meta { font-size:.92rem; color:var(--ink-soft); }
.lockword { color:var(--rose-deep); }
.er-foot { display:flex; gap:10px; align-items:center; margin-top:12px; }
.er-going { font-size:.86rem; color:var(--ink-soft); }
.er-full { font-family:var(--label); font-weight:600; font-size:0.72rem; letter-spacing:0.16em; text-transform:uppercase;
           background:var(--ink); color:var(--white); padding:4px 11px; border-radius:99px; }
.er-thumb { flex:none; width:132px; height:96px; border-radius:10px; overflow:hidden;
            background:var(--blush); display:grid; place-items:center; }
.er-thumb img { width:100%; height:100%; object-fit:cover; }
.er-date { text-align:center; font-family:var(--display); color:var(--rose-deep); line-height:1; }
.er-date b { display:block; font-size:1.8rem; font-weight:500; color:var(--ink); }
@media (max-width:560px) {
    .er-thumb { width:92px; height:70px; }
    .er-title { font-size:1.25rem; }
}

/* =====================================================================
   CHECK IN
   ===================================================================== */
.ci-tally { display:flex; gap:26px; flex-wrap:wrap; margin-top:16px; }
.ci-tally div { text-align:center; }
.ci-tally b { display:block; font-family:var(--display); font-size:1.9rem; font-weight:500; line-height:1; color:var(--ink); }
.ci-tally span { font-family:var(--label); font-weight:600; display:block; margin-top:3px; font-size:0.72rem; letter-spacing:0.18em;
                 text-transform:uppercase; color:var(--ink-soft); }

.ci-row {
    display:flex; gap:16px; align-items:center; justify-content:space-between; flex-wrap:wrap;
    border:1px solid var(--gold-light); border-radius:6px; padding:14px 16px; margin-bottom:10px;
    background:var(--white); transition:.2s var(--ease);
}
.ci-row.in   { border-color:var(--emerald); background:linear-gradient(90deg,rgba(45,106,79,.06),var(--white) 40%); }
.ci-row.wait { opacity:.72; border-style:dashed; }
.ci-who { display:flex; gap:14px; align-items:center; min-width:0; flex:1; }
.ci-who b { font-family:var(--display); font-size:1.16rem; font-weight:500; display:block; }
.ci-who small { display:block; font-size:.84rem; color:var(--ink-soft); margin-top:2px; }
.strike { color:var(--rose-deep); font-weight:500; }
.ci-acts { display:flex; gap:6px; flex-wrap:wrap; }
.ci-select {
    border:1px solid var(--gold-light); background:var(--white); border-radius:99px; cursor:pointer;
    padding:9px 34px 9px 16px; font-family:var(--sans); font-size:.74rem; color:var(--ink);
    transition:.2s var(--ease); min-width:186px;
    appearance:none;
    background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%238A6C77' stroke-width='1.6' stroke-linecap='round'/%3E%3C/svg%3E");
    background-repeat:no-repeat; background-position:right 14px center; background-size:11px;
}
.ci-select:hover { border-color:var(--rose); }
.ci-select.here       { background-color:var(--emerald); color:var(--white); border-color:var(--emerald); }
.ci-select.late       { background-color:var(--gold);    color:var(--white); border-color:var(--gold); }
.ci-select.on_the_way,
.ci-select.parking    { background-color:var(--blush);   color:var(--ink);   border-color:var(--rose-pale); }
.ci-select.no_show,
.ci-select.day_of_cancel { background-color:var(--ink);  color:var(--white); border-color:var(--ink); }
.ci-select.excused    { background-color:var(--rose-pale); color:var(--ink); }
.ci-row.out { border-color:var(--ink); opacity:.8; }
@media (max-width:620px) {
    .ci-acts { width:100%; }
    .ci-select { width:100%; min-width:0; }
}

/* =====================================================================
   EVENT PAGE ADDITIONS -- faces, map, sticky bar
   ===================================================================== */
.going-line { display:flex; align-items:center; gap:14px; }
.face-stack { display:flex; }
.face-stack .avatar-img, .face-stack .avatar-init { margin-left:-12px; }
.face-stack > :first-child { margin-left:0; }
.face-more {
    width:40px; height:40px; border-radius:50%; margin-left:-12px;
    background:var(--rose-deep); color:var(--white); display:grid; place-items:center;
    font-size:.72rem; font-weight:500; border:2px solid var(--white);
}
.going-n { font-size:.98rem; color:var(--ink-soft); }
.going-n b { font-family:var(--display); font-size:1.3rem; color:var(--ink); }

.ev-map { width:100%; height:190px; border:0; display:block; }

.sticky-bar {
    position:fixed; left:0; right:0; bottom:0; z-index:950;
    display:flex; align-items:center; justify-content:space-between; gap:16px;
    padding:12px clamp(16px,5vw,40px);
    background:rgba(255,255,255,.97); backdrop-filter:blur(14px);
    border-top:1px solid var(--gold-light);
    box-shadow:0 -8px 30px -18px rgba(74,34,51,.4);
}
.sb-left { font-size:.94rem; color:var(--ink-soft); }
.sticky-bar .btn { padding:14px 30px; }
body:has(.sticky-bar) .foot { padding-bottom:100px; }
@media (min-width:901px) { .sticky-bar { display:none; } }
.mrow.warn { border-color:var(--gold); background:linear-gradient(90deg,rgba(193,151,79,.09),var(--white) 40%); }
.mrow.over { border-color:var(--rose); background:linear-gradient(90deg,rgba(217,115,139,.12),var(--white) 40%); }

/* =====================================================================
   VIEW BAR -- stays put whichever view you are in
   ===================================================================== */
.view-bar {
    display:flex; align-items:center; justify-content:space-between; gap:16px; flex-wrap:wrap;
    padding:14px 18px; border:2px solid var(--rose-pale); border-radius:999px; background:var(--white);
}
.view-toggle { display:flex; background:var(--blush); border-radius:999px; padding:4px; gap:3px; }
.vt {
    border:0; background:none; cursor:pointer; border-radius:999px; padding:10px 24px;
    font-family:var(--label); font-size:0.72rem; letter-spacing:0.18em; text-transform:uppercase;
    color:var(--ink-soft); transition:.25s var(--ease);
}
.vt.on { background:var(--rose); color:var(--white); box-shadow:0 4px 12px -6px rgba(184,85,112,.7); }
.vt:not(.on):hover { color:var(--rose-deep); }
.view-acts { display:flex; gap:9px; flex-wrap:wrap; }
@media (max-width:620px) {
    .view-bar { border-radius:14px; padding:12px; justify-content:center; }
    .view-toggle { width:100%; }
    .vt { flex:1; padding:11px 8px; }
    .view-acts { width:100%; }
    .view-acts .btn { flex:1; }
}

/* =====================================================================
   COMPACT ACTION ROW
   ===================================================================== */
.action-row {
    display:flex; align-items:center; gap:10px; flex-wrap:wrap;
    padding:12px 0 4px; margin-top:18px; border-top:1px solid var(--gold-light);
}
.act {
    width:40px; height:40px; border-radius:50%; border:1px solid var(--gold-light);
    background:var(--white); cursor:pointer; display:grid; place-items:center;
    transition:.22s var(--ease); flex:none;
}
.act svg { width:19px; height:19px; fill:none; stroke:var(--ink-soft); stroke-width:1.8;
           stroke-linecap:round; stroke-linejoin:round; }
.act:hover { border-color:var(--rose); background:var(--blush); }
.act:hover svg { stroke:var(--rose-deep); }
.act.danger:hover { border-color:var(--ink); background:var(--ink); }
.act.danger:hover svg { stroke:var(--white); }
.act-count {
    font-family:var(--display); font-size:.98rem; color:var(--ink-soft);
    padding:0 6px; letter-spacing:.02em;
}
.act-count b { font-size:1.35rem; color:var(--ink); font-weight:500; }
.act-state { font-family:var(--label); font-weight:600;
    margin-left:auto; font-size:0.72rem; letter-spacing:0.16em; text-transform:uppercase;
    padding:7px 15px; border-radius:99px; background:var(--blush); color:var(--rose-deep);
}
.act-state.go   { background:var(--emerald); color:var(--white); }
.act-state.wait { background:var(--ink); color:var(--white); }

/* guest bubbles that open */
.going-line { cursor:pointer; padding:10px 0; user-select:none; }
.going-caret { margin-left:6px; color:var(--ink-soft); font-size:.7rem; transition:.25s var(--ease); }
.going-line.open .going-caret { transform:rotate(180deg); display:inline-block; }
.going-names { display:flex; flex-wrap:wrap; gap:8px; padding:4px 0 10px; }
.going-names.hidden { display:none; }
.gn {
    display:inline-flex; align-items:center; gap:8px; background:var(--blush);
    border-radius:99px; padding:4px 14px 4px 4px; font-size:.88rem; color:var(--ink);
}
.gn i { font-style:normal; color:var(--rose-deep); font-size:.78rem; }

/* =====================================================================
   THE MESSAGE COMPOSER
   ===================================================================== */
.letter-box {
    max-width:620px; padding:0; overflow:hidden;
    background:linear-gradient(170deg,#FFFFFF 0%, #FFF9FB 60%, var(--blush) 100%);
    border:2px solid transparent;
    background-clip:padding-box;
}
.letter-head {
    text-align:center; padding:28px 30px 20px;
    background:linear-gradient(160deg,var(--blush),rgba(255,255,255,0));
    border-bottom:1px solid var(--gold-light); position:relative;
}
.letter-head::after {
    content:''; position:absolute; left:0; right:0; bottom:-1px; height:3px;
    background:var(--foil); background-size:250% 100%; animation:foilmove 8s linear infinite;
}
.letter-logo { width:74px; height:auto; display:block; margin:0 auto 8px; }
.letter-eyebrow { font-family:var(--label); font-weight:600; font-size:0.72rem; letter-spacing:0.18em; text-transform:uppercase; color:var(--rose-deep); }

.letter-fields { padding:20px 30px 6px; }
.lf { display:flex; align-items:center; gap:14px; padding:9px 0; border-bottom:1px solid rgba(193,151,79,.28); }
.lf span { font-family:var(--label); font-weight:600; flex:none; width:62px; font-size:0.72rem; letter-spacing:0.18em; text-transform:uppercase; color:var(--gold-deep); }
.lf b { font-family:var(--display); font-size:1.02rem; font-weight:500; color:var(--ink); }
.lf-input {
    flex:1; border:0; background:none; font-family:var(--display); font-size:1.02rem;
    color:var(--ink); padding:2px 0;
}
.lf-input:focus { outline:none; border-bottom:1px solid var(--rose); }

.letter-body {
    width:calc(100% - 60px); margin:14px 30px 0; padding:18px 20px;
    border:1px solid var(--gold-light); border-radius:6px; background:var(--white);
    font-family:var(--sans); font-size:1.02rem; font-weight:400; line-height:1.8;
    resize:vertical; min-height:170px;
}
.letter-body:focus { outline:none; border-color:var(--rose); box-shadow:0 0 0 3px rgba(217,115,139,.14); }
.letter-quick { display:flex; flex-wrap:wrap; gap:7px; padding:14px 30px 4px; }
.letter-quick .fchip { font-size:.62rem; padding:8px 14px; }
.letter-box .btn-block { width:calc(100% - 60px); margin:16px 30px 0; }
.letter-box .note { padding:0 30px 26px; }

/* =====================================================================
   EVENT PAGE -- framed, with a manage bar and grouped people
   ===================================================================== */
.manage-bar {
    display:flex; align-items:center; gap:9px; flex-wrap:wrap;
    padding:12px 18px; margin-bottom:18px;
    background:linear-gradient(120deg,var(--blush),#FFF6F8);
    border:1px solid var(--rose-pale); border-radius:999px;
}
.manage-bar.hidden { display:none; }
.mb-label { font-family:var(--label); font-weight:600;
    font-size:0.72rem; letter-spacing:0.18em; text-transform:uppercase;
    color:var(--rose-deep); margin-right:4px;
}
.mb-pill {
    border:0; background:var(--rose); color:var(--white); border-radius:999px; cursor:pointer;
    padding:10px 20px; font-family:var(--label); font-size:0.72rem; letter-spacing:0.14em;
    text-transform:uppercase; text-decoration:none; transition:.22s var(--ease);
}
.mb-pill:hover { background:var(--rose-deep); transform:translateY(-1px); }
.mb-pill.ghost { background:var(--white); color:var(--rose-deep); border:1px solid var(--rose-pale); }
.mb-pill.ghost:hover { background:var(--blush); }
@media (max-width:620px) {
    .manage-bar { border-radius:14px; justify-content:center; }
    .mb-pill { flex:1; text-align:center; padding:11px 10px; }
}

/* one frame around the whole event */
.ev-frame {
    border:2px solid var(--rose-pale); border-radius:8px; background:var(--white);
    padding:clamp(20px,3vw,34px); box-shadow:0 20px 50px -38px rgba(74,34,51,.5);
}

/* description gets a set height and scrolls inside */
.ev-desc {
    font-size:1.04rem; line-height:1.8; margin-top:20px;
    max-height:280px; overflow-y:auto; padding-right:12px;
    border-left:3px solid var(--blush-deep); padding-left:16px;
    scrollbar-width:thin;
}
.ev-desc::-webkit-scrollbar { width:5px; }
.ev-desc::-webkit-scrollbar-thumb { background:var(--rose-pale); border-radius:99px; }

/* the action row */
.action-row {
    display:flex; align-items:center; gap:10px; flex-wrap:wrap;
    margin-top:22px; padding-top:18px; border-top:1px solid var(--gold-light);
}
.act-pill {
    display:inline-flex; align-items:center; gap:9px; cursor:pointer;
    border:1px solid var(--gold-light); background:var(--white); border-radius:999px;
    padding:11px 20px; font-family:var(--label); font-size:0.72rem; letter-spacing:0.14em;
    text-transform:uppercase; color:var(--ink); text-decoration:none; transition:.22s var(--ease);
}
.act-pill svg { width:17px; height:17px; fill:none; stroke:var(--rose-deep);
                stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
.act-pill:hover { border-color:var(--rose); background:var(--blush); }
.act-pill.solid { background:var(--rose); border-color:var(--rose); color:var(--white); }
.act-pill.gold  { background:var(--foil); background-size:200% 200%; border:0; color:#4A3512;
                  font-weight:500; padding:11px 22px; }
.act-pill.gold:hover { background-position:100% 50%; }

.status-pick { position:relative; display:inline-flex; align-items:center; }
.status-pick select {
    position:absolute; inset:0; opacity:0; cursor:pointer; width:100%; height:100%;
}
.sp-label { font-family:var(--label); font-weight:600;
    display:inline-flex; align-items:center; gap:8px;
    border-radius:999px 0 0 999px; padding:11px 16px 11px 20px;
    font-size:0.72rem; letter-spacing:0.14em; text-transform:uppercase;
    background:var(--blush); color:var(--rose-deep); border:1px solid var(--rose-pale); border-right:0;
}
.sp-label.going    { background:var(--emerald); color:var(--white); border-color:var(--emerald); }
.sp-label.waitlist { background:var(--ink); color:var(--white); border-color:var(--ink); }
.sp-hint { font-family:var(--label); font-weight:600;
    border-radius:0 999px 999px 0; padding:11px 18px;
    font-size:0.72rem; letter-spacing:0.14em; text-transform:uppercase;
    background:var(--white); color:var(--ink-soft); border:1px solid var(--gold-light);
}
.status-pick:hover .sp-hint { color:var(--rose-deep); border-color:var(--rose); }


/* hosts, organizers, attendees */
.ev-people { margin-top:20px; }
.pgroup-h { font-family:var(--label); font-weight:600;
    font-size:0.72rem; letter-spacing:0.18em; text-transform:uppercase; color:var(--gold-deep);
    margin-bottom:9px; display:flex; align-items:center; gap:8px;
}
.pgroup-h span {
    background:var(--blush); color:var(--rose-deep); border-radius:99px;
    padding:2px 9px; font-size:.58rem; letter-spacing:.08em;
}
.pgroup-list { display:flex; flex-wrap:wrap; gap:8px; }
.pchip {
    display:inline-flex; align-items:center; gap:9px; background:#FBF6F7;
    border:1px solid var(--gold-light); border-radius:99px;
    padding:4px 15px 4px 4px; font-size:.9rem; color:var(--ink);
}
.pchip.host { background:var(--blush); border-color:var(--rose-pale); }
.pchip i { font-style:normal; color:var(--rose-deep); font-size:.8rem; }
.pchip .paidtick { font-family:var(--label); font-weight:600;
    font-size:0.72rem; letter-spacing:0.14em; text-transform:uppercase;
    background:var(--emerald); color:var(--white); padding:2px 8px; border-radius:99px; font-weight:500;
}
.pchip-x { border:0; background:none; cursor:pointer; color:var(--ink-soft); font-size:1.1rem;
           line-height:1; padding:0 0 0 4px; }
.pchip-x:hover { color:var(--rose-deep); }

.ch-list { display:flex; flex-direction:column; gap:6px; max-height:280px; overflow-y:auto; }
.ch-row {
    display:flex; align-items:center; gap:12px; width:100%; text-align:left; cursor:pointer;
    border:1px solid var(--gold-light); border-radius:8px; background:var(--white);
    padding:9px 14px; font-family:var(--sans); font-size:.96rem; color:var(--ink);
    transition:.2s var(--ease);
}
.ch-row:hover { border-color:var(--rose); background:var(--blush); }
.paid-flag { font-family:var(--label); font-weight:600;
    display:inline-block; margin-left:8px; font-size:0.72rem; letter-spacing:0.14em;
    text-transform:uppercase; background:var(--emerald); color:var(--white);
    padding:3px 10px; border-radius:99px; vertical-align:middle;
}
.paid-flag.due { background:var(--blush); color:var(--rose-deep); }
.ci-paid {
    border:1px solid var(--gold-light); background:var(--white); border-radius:99px; cursor:pointer;
    padding:9px 15px; font-family:var(--label); font-size:0.72rem; letter-spacing:0.14em;
    text-transform:uppercase; color:var(--ink-soft); transition:.2s var(--ease); flex:none;
}
.ci-paid:hover { border-color:var(--emerald); color:var(--emerald); }
.ci-paid.on { background:var(--emerald); border-color:var(--emerald); color:var(--white); }
.letter-quick-label { font-family:var(--label); font-weight:600; padding:16px 30px 0; font-size:0.72rem; letter-spacing:0.18em;
                      text-transform:uppercase; color:var(--gold-deep); }
.letter-quick { padding-top:8px; }

/* =====================================================================
   PEOPLE ROW -- hosts and attendees as faces, expanding to names
   ===================================================================== */
.people-row {
    display:flex; align-items:center; gap:26px; flex-wrap:wrap; cursor:pointer;
    padding:14px 16px; border:1px solid var(--gold-light); border-radius:10px;
    background:#FDFAFB; user-select:none; transition:.22s var(--ease);
}
.people-row:hover { border-color:var(--rose-pale); background:var(--blush); }
.pr-group { display:flex; align-items:center; gap:11px; }
.pr-label { font-family:var(--label); font-weight:600;
    font-size:0.72rem; letter-spacing:0.18em; text-transform:uppercase; color:var(--ink-soft);
    white-space:nowrap;
}
.pr-label b { font-family:var(--display); font-size:.94rem; color:var(--ink); letter-spacing:0; }
.pr-label.gold { color:var(--gold-deep); }
.pr-caret { margin-left:auto; color:var(--ink-soft); font-size:.75rem; transition:.25s var(--ease); }
.people-row.open .pr-caret { transform:rotate(180deg); display:inline-block; }

.people-open { padding:14px 4px 2px; display:flex; flex-direction:column; gap:12px; }
.people-open.hidden { display:none; }
.po-line { display:flex; flex-wrap:wrap; gap:7px; align-items:center; }
.po-h { font-family:var(--label); font-weight:600;
    font-size:0.72rem; letter-spacing:0.18em; text-transform:uppercase; color:var(--ink-soft);
    margin-right:4px; min-width:70px;
}
.po-h.gold { color:var(--gold-deep); }

.pchip.gold { background:linear-gradient(120deg,#FBF1DC,#F3E3C2); border-color:var(--gold); }
.pchip.pink { background:var(--blush); border-color:var(--rose-pale); }

/* paid, and the plus-one stepper */
.pay-pill { font-family:var(--label); font-weight:600;
    font-size:0.72rem; letter-spacing:0.16em; text-transform:uppercase;
    padding:11px 18px; border-radius:999px; border:1px solid var(--gold-light);
    background:var(--white); color:var(--ink-soft);
}
.pay-pill.paid { background:var(--emerald); border-color:var(--emerald); color:var(--white); }
.pay-pill.due  { background:var(--blush); border-color:var(--rose-pale); color:var(--rose-deep); }
.pay-pill.free { background:#F5F7F3; border-color:#DCE4D8; color:#5B7355; }

.plus-one {
    display:inline-flex; align-items:center; gap:2px;
    border:1px solid var(--gold-light); border-radius:999px; overflow:hidden; background:var(--white);
}
.plus-one button {
    border:0; background:none; cursor:pointer; width:34px; height:40px;
    font-size:1.05rem; color:var(--ink-soft); transition:.2s var(--ease);
}
.plus-one button:hover { background:var(--blush); color:var(--rose-deep); }
.plus-one span {
    min-width:38px; text-align:center; font-family:var(--display); font-size:.98rem; color:var(--ink);
}

/* the check-in count in the manage bar */
.mb-stat { font-family:var(--label); font-weight:600;
    font-size:0.72rem; letter-spacing:0.14em; text-transform:uppercase; color:var(--ink-soft);
    background:var(--white); border:1px solid var(--rose-pale); border-radius:999px;
    padding:8px 15px; margin-right:2px;
}
.mb-stat b { font-family:var(--display); font-size:1.05rem; color:var(--ink); letter-spacing:0; }

@media (max-width:620px) {
    .people-row { gap:14px; padding:12px; }
    .pr-group { width:100%; }
    .action-row { gap:8px; }
    .act-pill, .pay-pill, .sp-label, .sp-hint { font-size:.6rem; padding:10px 14px; }
}

/* =====================================================================
   BELL, MEMBER CARD, INBOX
   ===================================================================== */
.bell {
    position:relative; width:38px; height:38px; border-radius:50%; display:grid; place-items:center;
    border:1px solid var(--gold-light); background:var(--white); transition:.2s var(--ease);
}
.bell svg { width:18px; height:18px; fill:none; stroke:var(--ink-soft);
            stroke-width:1.7; stroke-linecap:round; stroke-linejoin:round; }
.bell:hover { border-color:var(--rose); background:var(--blush); }
.bell:hover svg { stroke:var(--rose-deep); }
.bell-n {
    position:absolute; top:-4px; right:-4px; min-width:18px; height:18px; padding:0 5px;
    border-radius:99px; background:var(--rose); color:var(--white);
    font-size:.56rem; font-weight:600; display:grid; place-items:center;
    border:2px solid var(--white);
}
.bell-n.hidden { display:none; }

.mcard { max-width:420px; text-align:center; }
.mcard-top { padding:8px 0 4px; }
.mcard-top .avatar-img, .mcard-top .avatar-init { margin:0 auto 12px; }
.mcard-top h3 { font-family:var(--display); font-size:1.6rem; font-weight:500; margin-bottom:8px; }
.mcard-bio { font-size:.98rem; line-height:1.7; margin:16px 0 4px; color:var(--ink-soft); }
.mcard .fg { text-align:left; }

.thread-list { display:flex; flex-direction:column; gap:8px; }
.thread {
    display:flex; gap:14px; align-items:center; width:100%; text-align:left; cursor:pointer;
    border:1px solid var(--gold-light); border-radius:10px; background:var(--white);
    padding:13px 16px; transition:.2s var(--ease);
}
.thread:hover { border-color:var(--rose); background:#FFFAFB; }
.thread.unread { border-color:var(--rose); background:var(--blush); }
.thread .tbody { flex:1; min-width:0; }
.thread b { font-family:var(--display); font-size:1.1rem; font-weight:500; display:block; }
.thread small { display:block; font-size:.86rem; color:var(--ink-soft); margin-top:2px;
                overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.thread .tn { flex:none; min-width:22px; height:22px; padding:0 7px; border-radius:99px;
              background:var(--rose); color:#fff; font-size:.6rem; display:grid; place-items:center; }

.dm-log { display:flex; flex-direction:column; gap:9px; max-height:420px; overflow-y:auto; padding:4px; }
.dm { max-width:78%; padding:11px 16px; border-radius:16px; font-size:.98rem; line-height:1.55; }
.dm.them { align-self:flex-start; background:var(--blush); border-bottom-left-radius:5px; }
.dm.me   { align-self:flex-end; background:var(--rose); color:var(--white); border-bottom-right-radius:5px; }
.dm-when { font-size:.62rem; opacity:.65; display:block; margin-top:4px; }

/* =====================================================================
   SMALL LABELS -- Libre Franklin, heavier, tighter, darker
   The old settings were Jost Light at .34em spacing in pale rose and
   gold, which was three readability problems at once.
   ===================================================================== */
.eyebrow,
.pr-label, .po-h, .pgroup-h,
.fact b, .lf span,
.act-pill, .pay-pill, .sp-label, .sp-hint,
.mb-label, .mb-stat, .mb-pill,
.status-badge, .role-pill, .pill, .chip-tag, .fchip,
.tab, .vt, .state, .dues-card .state, .ev-card .state,
.seatnote, .cf-cat, .cf-hint, .cf-mark, .cf-used,
.er-when, .er-full, .new-ribbon, .cal-legend, .cal-more,
.qt, .q-body .eyebrow, .letter-eyebrow, .letter-quick-label,
.foot-title, .bb-tag, .banner, .banner a,
.acct-role, .post-role, .host-tag, .flyer-note,
.stat-card span, .ah-stats span, .ci-tally span, .ci-select, .ci-paid,
.locked-line, .paid-flag, .paidtick, .tab-n, label, .hint,
.topnav .nav-links > a, .nav-right a, .cal-grid.big .dow, .cal-chip b {
    font-family: var(--label);
}

/* weight and spacing that can actually be read */
.eyebrow      { font-weight:600; font-size:.84rem; letter-spacing:.18em; color:var(--rose-deep); }
.fact b       { font-weight:600; font-size:.68rem; letter-spacing:.15em; color:var(--gold-deep); }
.pr-label     { font-weight:600; font-size:.66rem; letter-spacing:.14em; color:var(--ink-soft); }
.pr-label.gold, .po-h.gold { color:var(--gold-deep); }
.po-h         { font-weight:600; font-size:.64rem; letter-spacing:.14em; }
.pgroup-h     { font-weight:600; font-size:.66rem; letter-spacing:.15em; color:var(--gold-deep); }
.mb-label     { font-weight:600; font-size:.66rem; letter-spacing:.14em; color:var(--rose-deep); }
.mb-stat      { font-weight:500; font-size:.68rem; letter-spacing:.1em; }
.mb-pill      { font-weight:600; font-size:.7rem;  letter-spacing:.1em; }
.act-pill     { font-weight:600; font-size:.72rem; letter-spacing:.1em; }
.pay-pill     { font-weight:600; font-size:.68rem; letter-spacing:.11em; }
.sp-label     { font-weight:600; font-size:.72rem; letter-spacing:.11em; }
.sp-hint      { font-weight:500; font-size:.68rem; letter-spacing:.11em; }
.status-badge { font-weight:600; font-size:.64rem; letter-spacing:.12em; }
.role-pill    { font-weight:600; font-size:.62rem; letter-spacing:.13em; }
.pill         { font-weight:500; font-size:.7rem;  letter-spacing:.08em; }
.chip-tag     { font-weight:500; font-size:.74rem; letter-spacing:.06em; }
.fchip        { font-weight:500; font-size:.76rem; letter-spacing:.06em; }
.tab          { font-weight:600; font-size:.76rem; letter-spacing:.12em; }
.vt           { font-weight:600; font-size:.76rem; letter-spacing:.12em; }
.state, .dues-card .state, .ev-card .state {
                font-weight:600; font-size:.68rem; letter-spacing:.14em; color:var(--gold-deep); }
.seatnote     { font-weight:500; font-size:.82rem; letter-spacing:.04em; }
.er-when      { font-weight:600; font-size:.78rem; letter-spacing:.08em; color:var(--rose-deep); }
.foot-title   { font-weight:600; font-size:.72rem; letter-spacing:.14em; }
.bb-tag       { font-weight:500; font-size:.76rem; letter-spacing:.24em; }
.acct-role, .post-role { font-weight:600; font-size:.6rem; letter-spacing:.14em; }
.host-tag     { font-weight:600; font-size:.58rem; letter-spacing:.1em; }
.locked-line  { font-weight:600; font-size:.74rem; letter-spacing:.1em; }
.paid-flag, .paidtick { font-weight:600; font-size:.6rem; letter-spacing:.1em; }
.stat-card span, .ah-stats span, .ci-tally span {
                font-weight:600; font-size:.66rem; letter-spacing:.12em; }
.flyer-note   { font-weight:500; font-size:.66rem; letter-spacing:.14em; }
.cal-legend   { font-weight:500; font-size:.72rem; letter-spacing:.08em; }
.cal-grid.big .dow { font-weight:600; font-size:.68rem; letter-spacing:.06em; color:var(--gold-deep); }
.cal-chip b   { font-weight:600; font-size:.64rem; letter-spacing:.03em; }
.new-ribbon   { font-weight:600; font-size:.6rem;  letter-spacing:.11em; }
.qt           { font-weight:600; font-size:.68rem; letter-spacing:.14em; }
.letter-eyebrow, .letter-quick-label { font-weight:600; font-size:.68rem; letter-spacing:.16em; }
.lf span      { font-weight:600; font-size:.66rem; letter-spacing:.14em; }
.ci-select, .ci-paid { font-weight:500; letter-spacing:.06em; }
.tab-n        { font-weight:600; }
label         { font-family:var(--label) !important; font-weight:600 !important;
                font-size:.72rem !important; letter-spacing:.11em; color:var(--gold-deep); }
.hint         { font-family:var(--label); font-weight:400; font-size:.86rem; letter-spacing:.01em; }
.topnav .nav-links > a { font-weight:500; font-size:.76rem; letter-spacing:.12em; }
.nav-right a  { font-weight:500; font-size:.68rem; letter-spacing:.12em; }
.btn          { font-family:var(--label); font-weight:600; letter-spacing:.11em; font-size:.8rem; }
.btn-sm       { font-size:.74rem; }
.btn-lg       { font-size:.86rem; }


/* =====================================================================
   BODY COPY -- Libre Franklin, a step up in weight and size
   ===================================================================== */
body            { font-weight:400; }
p               { font-weight:400; }
.lede           { font-weight:400; font-size:1.2rem; line-height:1.75; color:var(--ink); }
.note           { font-weight:400; font-size:.96rem; line-height:1.7; color:var(--ink-soft); }
.card p,
.exp-card p     { font-weight:400; font-size:1.02rem; line-height:1.75; }
.ev-blurb,
.ev-desc        { font-weight:400; font-size:1.04rem; line-height:1.78; }
.event-meta     { font-weight:400; font-size:1rem; color:var(--ink-soft); }
.er-meta        { font-weight:400; font-size:.96rem; }
.er-going       { font-weight:400; font-size:.9rem; }
.fact span      { font-weight:400; font-size:1.04rem; }
.post-body,
.reply .body,
.ev-msg .body,
.dm             { font-weight:400; }
.mwho small,
.thread small,
.ci-who small   { font-weight:400; }
.inp, .letter-body, .lounge-box textarea, .cf-q { font-weight:400; }
.pchip, .gn     { font-weight:500; }
.foot p, .foot-links a { font-weight:400; }
.q-body h3      { font-weight:500; }

/* the script and the serif are untouched */
.signature, .bb-name, .pair b, .ev-tagline { font-family:var(--signature); }
.title, .ev-title, .acct-h, h1, h2, h3, h4 { font-family:var(--display); }

/* =====================================================================
   FINAL SIZES -- last word, after every earlier rule
   ===================================================================== */
.eyebrow      { font-size:.8rem;  letter-spacing:.17em; }
.fact b       { font-size:.72rem; letter-spacing:.14em; }
.fact span    { font-size:1.02rem; }
.pr-label     { font-size:.72rem; letter-spacing:.13em; }
.po-h, .pgroup-h { font-size:.7rem; letter-spacing:.13em; }
.mb-label     { font-size:.72rem; }
.mb-stat, .mb-pill { font-size:.74rem; }
.act-pill, .sp-label { font-size:.75rem; }
.pay-pill, .sp-hint  { font-size:.72rem; }
.status-badge { font-size:.68rem; }
.role-pill    { font-size:.68rem; }
.pill         { font-size:.72rem; }
.chip-tag     { font-size:.76rem; }
.fchip        { font-size:.78rem; padding:11px 20px; }
.tab, .vt     { font-size:.78rem; }
.state, .dues-card .state, .ev-card .state { font-size:.72rem; }
.seatnote     { font-size:.84rem; }
.er-when      { font-size:.8rem; }
.foot-title   { font-size:.74rem; }
.bb-tag       { font-size:.78rem; letter-spacing:.22em; }
.acct-role, .post-role, .host-tag { font-size:.66rem; }
.locked-line  { font-size:.76rem; }
.paid-flag, .paidtick { font-size:.64rem; }
.stat-card span, .ah-stats span, .ci-tally span { font-size:.68rem; }
.flyer-note   { font-size:.7rem; }
.cal-legend   { font-size:.74rem; }
.cal-grid.big .dow  { font-size:.7rem; }
.cal-chip b   { font-size:.66rem; }
.cal-chip span{ font-size:.64rem; }
.new-ribbon   { font-size:.64rem; }
.qt           { font-size:.72rem; }
.letter-eyebrow, .letter-quick-label, .lf span { font-size:.72rem; }
.ci-select, .ci-paid { font-size:.76rem; }
label         { font-size:.74rem !important; }
.hint         { font-size:.86rem; }
.topnav .nav-links > a { font-size:.78rem; letter-spacing:.11em; }
.nav-right a  { font-size:.72rem; }
.btn          { font-size:.8rem; }
.btn-sm       { font-size:.74rem; }
.btn-lg       { font-size:.86rem; }
.macts .btn   { font-size:.72rem; padding:10px 16px; }
.nav-right .btn { font-size:.72rem; padding:10px 20px; }
.note         { font-size:.94rem; }
.lede         { font-size:1.16rem; }

/* =====================================================================
   THE WORDMARK BLOCK -- last word
   ===================================================================== */
.brandblock .bb-tag {
    font-family:var(--label); font-weight:600;
    font-size:1.02rem; letter-spacing:.15em; text-transform:uppercase;
    color:var(--rose-deep); margin-top:10px;
}
.brandblock .bb-name { font-size:clamp(3.2rem, 8vw, 5.4rem); }
.brandblock .bb-logo img { width:clamp(200px, 27vw, 320px); }
@media (max-width:620px) {
    .brandblock .bb-tag { font-size:.86rem; letter-spacing:.12em; }
}

/* the join strip that replaced the newsletter */
.join-acts { display:flex; gap:10px; flex-wrap:wrap; align-items:center; }
@media (max-width:700px) {
    .join-acts { width:100%; }
    .join-acts .btn { flex:1; text-align:center; }
}


/* =====================================================================
   SCRIPT DESCENDERS
   Allison drops well below the baseline. Anywhere the script sits above
   other content it needs room, or it lands on the line beneath.
   ===================================================================== */
.pair            { padding-bottom:2.8rem; }
.pair.sm         { padding-bottom:1.7rem; }
.pair.lg         { padding-bottom:3.1rem; }
.pair-stack b    { padding-bottom:.3em; }
.title .script   { padding-bottom:.22em; }
.news-in .script { padding-bottom:.16em; display:inline-block; }
.ev-tagline      { padding-bottom:.2em; line-height:1.05; }
.exp-card .tag   { padding-bottom:.14em; }
.quote-card .who { padding-bottom:.12em; display:inline-block; }
.org-card .q     { padding-bottom:.14em; }
.memcard .mc-name{ padding-bottom:.1em; }
.foot .nm        { padding-bottom:.12em; display:inline-block; }
.brandblock .bb-name { padding-bottom:.14em; }

/* =====================================================================
   MEMBERSHIP TIERS -- a colour each
   ===================================================================== */
:root {
    --t-sister:  #D9738B;   /* pink     */
    --t-listing: #7A5C4F;   /* brown    */
    --t-partner: #3E6B8A;   /* blue     */
    --t-premier: #7B2D3F;   /* burgundy */
}

.tier-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(250px,1fr)); gap:20px; }
.tier {
    position:relative; background:var(--white); border-radius:10px; overflow:hidden;
    border:2px solid var(--tc, var(--rose-pale)); display:flex; flex-direction:column;
    transition:.3s var(--ease);
}
.tier:hover { transform:translateY(-5px); box-shadow:0 26px 54px -34px rgba(74,34,51,.55); }
.tier-top {
    background:var(--tc); color:var(--white); padding:22px 22px 18px; text-align:center;
}
.tier-mark { width:64px; height:auto; display:block; margin:0 auto 10px; filter:brightness(0) invert(1); }
.tier-name {
    font-family:var(--label); font-weight:700; font-size:.86rem;
    letter-spacing:.14em; text-transform:uppercase;
}
.tier-price { font-family:var(--display); font-size:2.4rem; font-weight:500; line-height:1; margin-top:8px; }
.tier-price small { font-family:var(--label); font-size:.72rem; font-weight:500;
                    letter-spacing:.1em; opacity:.9; display:block; margin-top:4px; }
.tier-body { padding:20px 22px 24px; flex:1; display:flex; flex-direction:column; }
.tier-for {
    font-family:var(--label); font-weight:600; font-size:.7rem; letter-spacing:.14em;
    text-transform:uppercase; color:var(--tc); margin-bottom:12px;
}
.tier-list { list-style:none; padding:0; margin:0 0 18px; flex:1; }
.tier-list li {
    position:relative; padding:7px 0 7px 24px; font-size:.98rem; line-height:1.55;
    border-top:1px solid rgba(193,151,79,.22);
}
.tier-list li:first-child { border-top:0; }
.tier-list li::before {
    content:''; position:absolute; left:4px; top:15px; width:7px; height:7px;
    border-radius:50%; background:var(--tc);
}
.tier .btn { width:100%; background:var(--tc); border-color:var(--tc); color:var(--white); }
.tier .btn:hover { filter:brightness(1.12); }
.tier { overflow:hidden; }
.tier-flag {
    position:absolute; top:16px; right:-34px; transform:rotate(38deg); z-index:2;
    background:var(--foil); color:#4A3512; padding:6px 36px;
    font-family:var(--label); font-weight:700; font-size:.6rem; letter-spacing:.12em;
    text-transform:uppercase;
}
@media (max-width:620px) { .tier-grid { grid-template-columns:minmax(0,1fr); } }

/* =====================================================================
   SPONSORED EVENTS
   ===================================================================== */
.sponsor-line { margin-top:8px; display:flex; gap:10px; align-items:center; flex-wrap:wrap; }
.sponsor-line a {
    font-family:var(--label); font-weight:600; font-size:.68rem; letter-spacing:.12em;
    text-transform:uppercase; color:var(--rose-deep); text-decoration:underline;
}
.sponsor-badge {
    display:inline-flex; align-items:center; gap:7px;
    border-radius:99px; padding:6px 15px;
    font-family:var(--label); font-weight:600; font-size:.72rem; letter-spacing:.04em;
    color:var(--white);
}
.sponsor-badge i {
    font-style:normal; font-size:.6rem; letter-spacing:.14em; text-transform:uppercase; opacity:.85;
}
.sponsor-badge.tier-listing { background:var(--t-listing); }
.sponsor-badge.tier-partner { background:var(--t-partner); }
.sponsor-badge.tier-premier { background:var(--t-premier); }

/* =====================================================================
   ORGANIZER PLACES
   ===================================================================== */
.places {
    border-radius:999px; padding:12px 24px; margin-bottom:20px; text-align:center;
    font-family:var(--label); font-size:.8rem; letter-spacing:.06em;
}
.places.open { background:var(--blush); color:var(--rose-deep); border:1px solid var(--rose-pale); }
.places.open b { font-family:var(--display); font-size:1.3rem; font-weight:500; color:var(--ink); }
.places.full {
    background:var(--ink); color:var(--white); border-radius:10px; padding:20px 26px;
    display:flex; flex-direction:column; gap:6px;
}
.places.full b { font-family:var(--display); font-size:1.3rem; font-weight:500; }
.places.full span { font-size:.92rem; opacity:.86; font-weight:400; letter-spacing:0; line-height:1.6; }

/* =====================================================================
   PAIRINGS ON A PHONE
   The caps and the script sit side by side with white-space:nowrap, which
   on a narrow screen runs the script clean off the edge -- measured at up
   to 245px past the viewport. Below 700px they stack instead.
   ===================================================================== */
@media (max-width:860px) {
    .pair, .pair.sm, .pair.lg {
        flex-direction:column;
        align-items:center;
        white-space:normal;
        gap:2px;
        padding-bottom:1.9rem;
        max-width:100%;
    }
    .pair em, .pair.sm em, .pair.lg em {
        font-size:.92rem; letter-spacing:.24em; line-height:1.4;
        text-align:center; margin:0;
    }
    .pair b, .pair.sm b, .pair.lg b {
        font-size:2.5rem; line-height:1; margin-left:0; top:0;
        text-align:center; max-width:100%;
    }
    .pair.lg b  { font-size:2.8rem; }
    .pair.sm b  { font-size:2.1rem; }
    .pair.lg    { padding-bottom:2.1rem; }
    .pair.sm    { padding-bottom:1.6rem; }
}

/* very narrow phones */
@media (max-width:400px) {
    .pair b        { font-size:2.2rem; }
    .pair.lg b     { font-size:2.4rem; }
    .pair.sm b     { font-size:1.9rem; }
    .pair em, .pair.lg em, .pair.sm em { font-size:.86rem; letter-spacing:.2em; }
}

/* Between the stacked phone layout and a wide desktop there is a band where
   the side-by-side pairing is too wide for the space. Let the script scale
   with the viewport there rather than adding another breakpoint. */
@media (min-width:861px) {
    .pair b    { font-size:clamp(2.1rem, 4.4vw, 3.3rem); }
    .pair.lg b { font-size:clamp(2.4rem, 5vw,   3.9rem); }
    .pair.sm b { font-size:clamp(1.8rem, 3.4vw, 2.3rem); }
    .pair em    { font-size:clamp(.86rem, 1.5vw, 1.05rem); }
    .pair.lg em { font-size:clamp(.95rem, 1.7vw, 1.2rem); }
}

/* =====================================================================
   LONG UNBROKEN STRINGS
   An email address or URL has no spaces, so it cannot wrap and pushes its
   container past the screen edge. Measured: info@platinumdivas.org was
   329px of unbreakable text in a 360px viewport.
   ===================================================================== */
a[href^="mailto:"], a[href^="tel:"], a[href^="http"],
.card h3 a, .card p a, .trinkets a, .foot a, .note a {
    overflow-wrap:anywhere;
    word-break:break-word;
}
.card h3, .card h4, .card p, .trinkets, .note, .lede, .ev-desc, .post-body {
    overflow-wrap:break-word;
}
@media (max-width:420px) {
    .card h3 a[href^="mailto:"] { font-size:.92em; }
}

/* =====================================================================
   NAVIGATION ON TABLETS AND SMALL LAPTOPS
   The menu button only appeared below 680px, but the full nav -- nine
   links plus Get The App, Sign In and Join -- needs about 1000px.
   Measured: 155px of overflow at 768px, still 35px over at 1000px.
   Everything below 1080px now gets the menu.
   ===================================================================== */
@media (max-width:1080px) {
    .nav-toggle { display:block; }
    .nav-in { position:relative; }
    .topnav .nav-links,
    .nav-links {
        display:none; position:absolute; top:100%; left:0; width:100%;
        flex-direction:column; align-items:flex-start; gap:16px;
        background:var(--cream); padding:24px 6%;
        border-bottom:1px solid var(--gold-light);
        max-height:74vh; overflow-y:auto; margin-right:0;
        z-index:960;
    }
    .nav-links.open { display:flex; }
    body.page-white .nav-links { background:var(--white); }
    .menu {
        position:static; transform:none; opacity:1; visibility:visible;
        box-shadow:none; border:0; padding:6px 0 0 12px; min-width:0;
        background:transparent;
    }
    .nav-right { margin-left:auto; }
    .nav-right .social-link { display:none; }
}

/* =====================================================================
   THE FLORALS ARE MEANT TO BLEED OFF THE EDGE
   They are absolutely positioned and deliberately overhang. Any section
   holding one must clip it, or the page gains a horizontal scrollbar.
   `clip` rather than `hidden` -- hidden would create a scroll container
   and break position:sticky on the event page and the toolbars.
   ===================================================================== */
html { overflow-x:clip; }
body { overflow-x:clip; }

section, header, .brandblock, .news-strip, .band-rose, .band-cream,
.band-blush, .band-champagne, .pad, .page-head, article {
    overflow-x:clip;
}

/* =====================================================================
   PHOTO CROPPER
   ===================================================================== */
.crop-box { max-width:400px; text-align:center; }
.crop-stage {
    position:relative; margin:0 auto; border-radius:10px; overflow:hidden;
    background:var(--cream); touch-action:none; cursor:grab;
    box-shadow:inset 0 0 0 1px var(--gold-light);
}
.crop-stage:active { cursor:grabbing; }
.crop-stage canvas { display:block; }
/* the circle shows her exactly what will be kept */
.crop-ring {
    position:absolute; inset:0; pointer-events:none;
    box-shadow:0 0 0 999px rgba(251,245,238,.72);
    border-radius:50%;
    outline:2px solid var(--rose);
    outline-offset:-2px;
}
.crop-zoom {
    display:flex; align-items:center; gap:12px; margin:18px auto 4px; max-width:320px;
}
.crop-zoom button {
    width:38px; height:38px; flex:none; border-radius:50%; cursor:pointer;
    border:1px solid var(--gold-light); background:var(--white);
    font-size:1.2rem; line-height:1; color:var(--ink-soft); transition:.2s var(--ease);
}
.crop-zoom button:hover { border-color:var(--rose); color:var(--rose-deep); background:var(--blush); }
.crop-zoom input[type=range] {
    flex:1; -webkit-appearance:none; appearance:none; height:4px; border-radius:99px;
    background:var(--rose-pale); outline:none;
}
.crop-zoom input[type=range]::-webkit-slider-thumb {
    -webkit-appearance:none; appearance:none; width:22px; height:22px; border-radius:50%;
    background:var(--rose); cursor:pointer; border:3px solid var(--white);
    box-shadow:0 2px 8px -2px rgba(184,85,112,.7);
}
.crop-zoom input[type=range]::-moz-range-thumb {
    width:22px; height:22px; border-radius:50%; background:var(--rose);
    cursor:pointer; border:3px solid var(--white);
}
.crop-acts { display:flex; gap:10px; margin-top:18px; }
.crop-acts .btn { flex:1; }
@media (max-width:420px) {
    .crop-box { max-width:calc(100vw - 32px); padding:20px 16px; }
    .crop-acts { flex-direction:column-reverse; }
}

/* =====================================================================
   PAIRINGS INSIDE A MODAL ALWAYS STACK
   A media query measures the window, not the box. The modal is about
   400px wide however wide the screen is, so on a desktop the caps and
   script used the side-by-side layout and overlapped each other.
   ===================================================================== */
.modal-box .pair,
.modal-box .pair.sm,
.modal-box .pair.lg {
    flex-direction:column;
    align-items:center;
    white-space:normal;
    gap:0;
    padding-bottom:1.2rem;
    max-width:100%;
}
.modal-box .pair em,
.modal-box .pair.sm em,
.modal-box .pair.lg em {
    font-size:.82rem; letter-spacing:.22em; margin:0; line-height:1.4;
}
.modal-box .pair b,
.modal-box .pair.sm b,
.modal-box .pair.lg b {
    font-size:2rem; line-height:1; margin-left:0; top:0;
}

/* the two buttons were cramped enough for the label to wrap onto three
   lines, which made the wrong one easy to hit */
.crop-acts { flex-direction:column; gap:10px; }
.crop-acts .btn { width:100%; white-space:nowrap; }
.crop-acts #cropSave { order:1; padding:16px 20px; }
.crop-acts #cropCancel { order:2; }
@media (max-width:420px) {
    .crop-acts { flex-direction:column; }
}

/* =====================================================================
   MEMBERSHIP STRIP
   Whether she has joined should be the first thing she sees, not the
   fourth tab along. Loud on trial, louder when lapsed, quiet once paid.
   ===================================================================== */
.mstrip {
    display:flex; align-items:center; gap:20px; flex-wrap:wrap;
    margin-top:22px; padding:18px 24px; border-radius:12px;
}
.ms-words { flex:1; min-width:200px; }
.ms-words b {
    display:block; font-family:var(--display); font-size:1.25rem; font-weight:500;
    color:var(--ink); margin-bottom:3px;
}
.ms-words span { display:block; font-size:.98rem; line-height:1.6; color:var(--ink-soft); }

/* on trial -- a countdown she cannot argue with */
.mstrip.trial {
    background:linear-gradient(120deg,#FFF8E8,#FDF1DC);
    border:1px solid var(--gold);
}
.ms-count {
    flex:none; text-align:center; min-width:78px;
    padding-right:20px; border-right:1px solid rgba(193,151,79,.4);
}
.ms-count b {
    display:block; font-family:var(--display); font-size:2.6rem; font-weight:500;
    line-height:1; color:var(--gold-deep);
}
.ms-count span {
    display:block; margin-top:2px; font-family:var(--label); font-weight:600;
    font-size:.66rem; letter-spacing:.14em; text-transform:uppercase; color:var(--gold-deep);
}
.mstrip.trial.urgent { background:linear-gradient(120deg,#FFF1F4,#FBE2E7); border-color:var(--rose); }
.mstrip.trial.urgent .ms-count b,
.mstrip.trial.urgent .ms-count span { color:var(--rose-deep); }
.mstrip.trial.urgent .ms-count { border-right-color:rgba(217,115,139,.45); }

/* lapsed */
.mstrip.lapsed {
    background:linear-gradient(120deg,#FFF1F4,#FBE2E7);
    border:2px solid var(--rose);
}

/* paid -- present but unobtrusive */
.mstrip.good {
    background:rgba(45,106,79,.07); border:1px solid rgba(45,106,79,.25);
    padding:13px 20px; gap:13px;
}
.mstrip.good .ms-words b { font-size:1.02rem; color:var(--emerald); }
.mstrip.good .ms-words span { font-size:.9rem; }
.ms-tick {
    flex:none; width:30px; height:30px; border-radius:50%; display:grid; place-items:center;
    background:var(--emerald); color:var(--white); font-size:.9rem;
}

@media (max-width:620px) {
    .mstrip { gap:14px; padding:16px; }
    .ms-count { border-right:0; border-bottom:1px solid rgba(193,151,79,.4);
                padding:0 0 10px; width:100%; }
    .mstrip .btn { width:100%; }
}

/* =====================================================================
   LEAVING
   Apple requires in-app deletion where there is in-app signup. Present
   and findable, but not competing with anything else on the page.
   ===================================================================== */
.danger-zone {
    margin-top:40px; padding:22px 24px; border-radius:10px;
    border:1px solid var(--gold-light); background:#FBFAF8;
}
.dz-head {
    font-family:var(--label); font-weight:600; font-size:.7rem;
    letter-spacing:.16em; text-transform:uppercase; color:var(--ink-soft);
    margin-bottom:8px;
}
.danger-zone .note { margin-bottom:16px; }
.danger-zone .btn { border-color:var(--ink-soft); color:var(--ink-soft); }
.danger-zone .btn:hover { border-color:var(--ink); background:var(--ink); color:var(--white); }

/* the app gets a little room for the phone's own furniture */
.is-native body { padding-top:env(safe-area-inset-top); }
.is-native .sticky-bar { padding-bottom:calc(12px + env(safe-area-inset-bottom)); }
.is-native .topnav { top:env(safe-area-inset-top); }

/* =====================================================================
   MEDIA LIBRARY
   ===================================================================== */
.media-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(230px,1fr)); gap:20px; }
.media-card {
    margin:0; border:1px solid var(--gold-light); border-radius:10px; overflow:hidden;
    background:var(--white); display:flex; flex-direction:column;
}
.media-card.past { opacity:.72; }
.media-card img { width:100%; height:250px; object-fit:cover; display:block; background:var(--blush); }
.media-card figcaption { padding:14px 16px 16px; display:flex; flex-direction:column; gap:3px; }
.media-card b { font-family:var(--display); font-size:1.1rem; font-weight:500; line-height:1.3; }
.media-card span { font-size:.88rem; color:var(--ink-soft); }
.mc-pillar {
    font-family:var(--label); font-weight:600; font-size:.66rem !important;
    letter-spacing:.12em; text-transform:uppercase; color:var(--gold-deep); margin-top:2px;
}
.media-card .btn { margin-top:10px; }

/* =====================================================================
   POST TO SOCIAL
   ===================================================================== */
.share-box { max-width:560px; }
.share-note {
    background:var(--blush); border-radius:8px; padding:14px 18px; margin-bottom:16px;
    display:flex; flex-direction:column; gap:4px;
}
.share-note b {
    font-family:var(--label); font-weight:600; font-size:.68rem; letter-spacing:.14em;
    text-transform:uppercase; color:var(--rose-deep);
}
.share-note span { font-size:.92rem; line-height:1.6; color:var(--ink-soft); }
.share-flyer { text-align:center; margin-bottom:16px; }
.share-flyer img {
    max-width:180px; width:100%; border-radius:8px; display:block; margin:0 auto 10px;
    border:1px solid var(--gold-light);
}
.share-box .letter-body { width:100%; margin:0; min-height:280px; font-size:.98rem; line-height:1.7; }
.share-acts { margin-top:14px; }
.share-acts .btn { width:100%; margin:0 0 9px; }

/* the warning above save, so nobody is surprised by what goes public */
.post-warning {
    background:linear-gradient(120deg,#FFF8E8,#FDF1DC);
    border:1px solid var(--gold); border-radius:8px;
    padding:16px 20px; margin:18px 0; display:flex; flex-direction:column; gap:5px;
}
.post-warning b {
    font-family:var(--label); font-weight:600; font-size:.72rem; letter-spacing:.14em;
    text-transform:uppercase; color:var(--gold-deep);
}
.post-warning span { font-size:.94rem; line-height:1.65; color:var(--ink-soft); }

/* =====================================================================
   THE SOCIAL QUEUE
   ===================================================================== */
.social-card {
    display:flex; gap:20px; align-items:flex-start;
    border:1px solid var(--gold-light); border-radius:10px; padding:18px;
    margin-bottom:16px; background:var(--white);
}
.social-card.done { opacity:.62; }
.social-card img {
    flex:none; width:150px; height:188px; object-fit:cover; border-radius:8px;
    border:1px solid var(--gold-light); background:var(--blush);
}
.sc-noimg {
    flex:none; width:150px; height:188px; border-radius:8px; background:var(--blush);
    display:grid; place-items:center; font-size:.82rem; color:var(--ink-soft);
    border:1px dashed var(--rose-pale);
}
.sc-body { flex:1; min-width:0; }
.sc-head { display:flex; align-items:center; gap:12px; margin-bottom:10px; flex-wrap:wrap; }
.sc-head b { font-family:var(--display); font-size:1.25rem; font-weight:500; }
.sc-caption {
    background:var(--cream); border:1px solid var(--gold-light); border-radius:6px;
    padding:14px 16px; font-family:var(--sans); font-size:.92rem; line-height:1.7;
    white-space:pre-wrap; margin:0 0 12px; max-height:260px; overflow-y:auto;
}
.sc-acts { display:flex; gap:8px; flex-wrap:wrap; }
@media (max-width:620px) {
    .social-card { flex-direction:column; }
    .social-card img, .sc-noimg { width:100%; height:200px; }
    .sc-acts .btn { flex:1; }
}

/* the organizer question on the join form */
.pd-org {
    background:linear-gradient(120deg,#FFF8E8,#FDF1DC);
    border:1px solid var(--gold-light); border-radius:8px;
    padding:14px 16px; margin:4px 0 14px; align-items:flex-start;
}
.pd-org span { font-size:.9rem; line-height:1.6; }
.pd-org b { color:var(--ink); }

/* =====================================================================
   ORGANIZER INTAKE
   ===================================================================== */
.interview-note {
    background:linear-gradient(120deg,#FFF8E8,#FDF1DC);
    border:1px solid var(--gold); border-radius:8px;
    padding:16px 20px; margin-bottom:22px; display:flex; flex-direction:column; gap:5px;
}
.interview-note b {
    font-family:var(--label); font-weight:600; font-size:.72rem; letter-spacing:.14em;
    text-transform:uppercase; color:var(--gold-deep);
}
.interview-note span { font-size:.94rem; line-height:1.65; color:var(--ink-soft); }

.redirect-note {
    background:var(--blush); border:1px solid var(--rose-pale); border-radius:8px;
    padding:16px 20px; margin-top:12px; display:flex; flex-direction:column; gap:5px;
}
.redirect-note b {
    font-family:var(--label); font-weight:600; font-size:.72rem; letter-spacing:.14em;
    text-transform:uppercase; color:var(--rose-deep);
}
.redirect-note span { font-size:.94rem; line-height:1.65; color:var(--ink-soft); }
.redirect-note a { color:var(--rose-deep); text-decoration:underline; }

/* =====================================================================
   2026 REFRESH — the calmer look
   Everything below is additive and overrides earlier rules by order.
   Delete this whole block to return the site to its previous appearance.
   ===================================================================== */

/* ---------------------------------------------------------------- 1. HERO
   The words now sit ON the photograph. The scrim is bottom-anchored and
   stays clear above 55%, so faces are never dimmed — the photographs are
   of real members and darkening them was the reason overlays were
   rejected the first time. Words go in the empty lower third instead. */

.hero-tall {
    height:clamp(560px, calc(100svh - 62px), 880px);
    display:flex; align-items:flex-end; justify-content:center;
}
.hero-tall .hero-scrim {
    position:absolute; inset:0; z-index:2; pointer-events:none;
    background:linear-gradient(to top,
        rgba(40,20,29,.88) 0%,
        rgba(40,20,29,.72) 14%,
        rgba(40,20,29,.52) 32%,
        rgba(40,20,29,.24) 46%,
        rgba(40,20,29,0)   64%);
}
.hero-tall .hero-words {
    position:relative; z-index:3; text-align:center; color:var(--white);
    width:100%; max-width:720px; padding:0 22px clamp(56px,6.5vh,80px);
}
.hero-tall .hero-name {
    display:block; font-family:var(--signature); color:var(--white);
    font-size:calc(clamp(2rem,4.6vw,3.2rem) * var(--sig-scale, 1));
    line-height:var(--sig-lh, .9); padding-bottom:.08em; overflow-wrap:anywhere;
    text-shadow:0 3px 26px rgba(0,0,0,.55);
}
.hero-tall .hero-tag {
    display:block; font-family:var(--label); font-weight:600;
    font-size:.74rem; letter-spacing:.24em; text-transform:uppercase;
    color:var(--champagne); margin-top:6px;
    text-shadow:0 2px 12px rgba(0,0,0,.6);
}
.hero-tall .hero-line {
    font-family:var(--display); font-weight:400; color:var(--white);
    font-size:clamp(1.12rem,2.4vw,1.55rem); letter-spacing:.05em;
    margin:14px 0 0; text-shadow:0 2px 16px rgba(0,0,0,.55);
}
.hero-tall .hero-words p {
    max-width:520px; margin:14px auto 0; color:rgba(255,255,255,.93);
    font-size:1rem; text-shadow:0 2px 14px rgba(0,0,0,.6);
}
.hero-tall .hero-cta { margin-top:24px; justify-content:center; }

/* an outline button that reads on a photograph */
.btn-ghost {
    background:transparent; border:1px solid rgba(255,255,255,.85);
    color:var(--white);
}
.btn-ghost:hover { background:var(--white); color:var(--ink); border-color:var(--white); }

/* the controls move out of the way of the words */
.hero-tall .hero-arrow { z-index:4; background:rgba(255,255,255,.5); opacity:.55; }
.hero-tall:hover .hero-arrow { opacity:1; }
.hero-tall .hero-dots { bottom:22px; background:rgba(255,255,255,.28); }
.hero-tall .hero-dots button { background:rgba(255,255,255,.55); }
.hero-tall .hero-dots button.on { background:var(--white); }
.hero-tall .hero-caption {
    top:22px; bottom:auto; left:auto; right:24px; transform:none;
    background:rgba(40,20,29,.42); padding:6px 14px; border-radius:var(--r-pill);
    color:var(--champagne); backdrop-filter:blur(6px);
}

@media (max-width:680px) {
    .hero-tall { height:clamp(520px, 82svh, 720px); }
    .hero-tall .hero-scrim {
        background:linear-gradient(to top,
            rgba(40,20,29,.90) 0%, rgba(40,20,29,.74) 20%,
            rgba(40,20,29,.34) 44%, rgba(40,20,29,0) 66%);
    }
    .hero-tall .hero-words { padding-bottom:64px; }
    .hero-tall .hero-name { font-size:calc(clamp(1.7rem,6.4vw,2.4rem) * var(--sig-scale, 1)); }
    .hero-tall .hero-tag { font-size:.62rem; letter-spacing:.18em; }
    .hero-tall .hero-arrow { display:none !important; }
    .hero-tall .hero-caption { display:none; }
    .hero-tall .hero-cta .btn { width:100%; }
}

/* a photograph that drifts is fine; a photograph that lurches is not */
@media (prefers-reduced-motion:reduce) {
    .hero-slide { transition:opacity .5s linear; transform:none !important; }
}

/* ------------------------------------------------------- 2. LESS ORNAMENT
   The florals, foil and sparkle all stay — there are simply fewer of them
   competing on any one screen, which is most of what reads as "cleaner". */

.o-90 { opacity:.46 } .o-70 { opacity:.38 }
.o-50 { opacity:.30 } .o-35 { opacity:.24 } .o-22 { opacity:.15 }
.petal-field { display:none; }
.sec-badge { display:none; }
.strip { height:2px; }

/* ------------------------------------------------ 3. INTERIOR PAGE HEADS
   Every interior page opened with two stacked headers — the wordmark block,
   then the page title — which reads as two competing openings. The wordmark
   is a repeat on these pages, not the headline, so it becomes a quiet line
   above the title and the page head does the work. */

.brandblock { padding:20px 20px 2px; }
.brandblock .bb-name { font-size:calc(clamp(1.5rem,3vw,2.1rem) * var(--sig-scale)); }
.brandblock .bb-tag  { font-size:.6rem; letter-spacing:.2em; margin-top:2px; }
.brandblock .floral  { display:none; }

.page-head { padding:clamp(34px,4.4vw,58px) 0 clamp(38px,5vw,64px); }
.page-head .divider { margin-top:18px; }

/* -------------------------------------------- 4. THE FIFTH OVERFLOW TRAP
   about, gallery and events scrolled sideways at desktop widths. Not a
   grid track, a sticky ancestor, a long link or a .pair — a fifth cause.

   overflow-x:clip does not clip an absolutely positioned descendant whose
   containing block lies OUTSIDE the clipping box. The .floral elements are
   absolute, and the sections holding them were never positioned, so their
   containing block resolved all the way up to <body> and each section's
   clip was simply walked past. Positioning the section makes it the
   containing block, and the clip that was already there starts working.

   Verified by scrolling the window right and reading scrollX, not by
   reading scrollWidth — scrollWidth still reports the wide value even when
   the content is correctly clipped, which is why this survived a check. */

section, header, .pad, .page-head, .news-strip,
.band-rose, .band-blush, .band-champagne, .band-cream, .foot {
    position:relative;
}
