:root { --grain: url("https://www.transparenttextures.com/patterns/stardust.png"); }
  body { background-color: #fcf9f8; position: relative; }
  body::before {
    content: ""; position: fixed; top: 0; left: 0; width: 100%; height: 100%;
    background-image: var(--grain); opacity: 0.04; pointer-events: none; z-index: 9999;
  }
  .font-display-lg { font-family: 'EB Garamond', serif; }
  .font-headline-md { font-family: 'EB Garamond', serif; }
  .font-headline-sm { font-family: 'EB Garamond', serif; }
  .font-body-lg { font-family: 'Hanken Grotesk', sans-serif; }
  .font-body-md { font-family: 'Hanken Grotesk', sans-serif; }
  .font-label-caps { font-family: 'Hanken Grotesk', sans-serif; }
  .slow-fade { animation: fadeIn 2s ease-out forwards; }
  @keyframes fadeIn { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: translateY(0); } }
  .border-champagne { border-color: #bc9852; }
  .shimmer {
    background: linear-gradient(100deg, #410918 0%, #bc9852 38%, #db8592 58%, #410918 100%);
    background-size: 200% auto; -webkit-background-clip: text;
    -webkit-text-fill-color: transparent; background-clip: text;
    animation: shimmer-anim 5s linear infinite;
  }
  @keyframes shimmer-anim { to { background-position: 200% center; } }
  .border-b-thin { border-bottom: 0.5px solid #d8c1c3; }
  .transition-editorial { transition: all 0.6s cubic-bezier(0.22, 1, 0.36, 1); }
  .small-caps-serif { font-family: 'EB Garamond', serif; font-variant: small-caps; letter-spacing: 0.1em; }
  .calendar-grid { display: grid; grid-template-columns: repeat(7, 1fr); }
  .cal-day-active { position: relative; }
  .cal-day-active::after {
    content: ''; position: absolute; bottom: 4px; left: 50%; transform: translateX(-50%);
    width: 4px; height: 4px; background-color: #914854; border-radius: 9999px;
  }
  /* Members nav tooltip */
  .members-nav-link { position: relative; }
  .members-nav-link::after {
    content: 'Members only'; position: absolute; top: 130%; left: 50%;
    transform: translateX(-50%); white-space: nowrap;
    font-size: 10px; letter-spacing: 0.15em; text-transform: uppercase;
    background: #fcf9f8; border: 1px solid #d8c1c3; color: #bc9852;
    padding: 4px 10px; opacity: 0; pointer-events: none;
    transition: opacity 0.2s; margin-top: 4px; font-family: 'Hanken Grotesk', sans-serif;
  }
  .members-nav-link:hover::after { opacity: 1; }
  /* Curtain */
  #curtain { position: fixed; inset: 0; background: #fcf9f8; z-index: 10000; opacity: 0; pointer-events: none; transition: opacity 0.7s ease; }
  #curtain.on { opacity: 1; pointer-events: all; }
  /* Pricing badge */
  .price-badge-member { background: #ffd9dd; color: #410918; }
  .price-badge-public { background: #f0eded; color: #5f5e5a; }
  /* Founding wall */
  .founding-placeholder { font-family: 'EB Garamond', serif; font-style: italic; color: #bc9852; opacity: 0.5; }

  /* ── SLIDESHOW / CAROUSEL ── */
  .pe-slideshow {
    position: relative;
    overflow: hidden;
    background: #f0eded;
  }
  .pe-slideshow .pe-slide {
    position: absolute;
    inset: 0;
    opacity: 0;
    transition: opacity 1.1s ease;
    background-size: cover;
    background-position: center;
  }
  .pe-slideshow .pe-slide.active { opacity: 1; }
  .pe-slideshow .pe-placeholder {
    position: absolute; inset: 0;
    display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 8px;
    color: #85727466;
  }
  .pe-dots {
    position: absolute; bottom: 14px; left: 0; right: 0;
    display: flex; justify-content: center; gap: 6px; z-index: 5;
  }
  .pe-dot {
    width: 6px; height: 6px; border-radius: 50%;
    background: rgba(255,255,255,0.5);
    cursor: pointer; transition: background 0.3s, transform 0.3s;
  }
  .pe-dot.active { background: #fff; transform: scale(1.3); }
