@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,300;0,400;0,500;0,600;1,300;1,400&family=Cormorant+SC:wght@400;600&family=Montserrat:wght@200;300;400;500&display=swap');

:root {
  --ff-display: 'operetta-52', Georgia, serif;
  --ff-editorial: 'Cormorant Garamond', Georgia, serif;
  --ff-sc: 'Cormorant SC', Georgia, serif;
  --ff-body: 'Montserrat', -apple-system, sans-serif;
  --fw-body: 300;

  --ink: #0A0E1A;
  --pitch: #0A0E1A;
  --navy-deep: #0E1528;
  --navy: #1B2340;
  --navy-mid: #263054;
  --navy-light: #334070;
  --mauve: #C4A0A8;
  --mauve-muted: #9A7E85;

  --gold: #B8A060;
  --gold-warm: #C8B070;
  --gold-pale: #D8C890;
  --gold-deep: #9A8450;
  --starforge: #B8A060;

  --bone: #EDE6DA;
  --parchment: #7A849C;
  --sage: #7A849C;
  --mist: rgba(122, 132, 156, 0.55);

  --rule: rgba(184, 160, 96, 0.20);
  --rule-bright: rgba(184, 160, 96, 0.40);

  --fs-micro: 10px;
  --fs-caption: 11px;
  --fs-body: 15px;
  --fs-lead: 18px;
  --fs-h4: 22px;
  --fs-h3: 34px;
  --fs-h2: 54px;
  --fs-h1: 88px;
  --fs-display: 148px;
  --fs-colossal: 220px;

  --tr-ultra: 0.52em;
  --tr-wide: 0.32em;
  --tr-mid: 0.18em;
  --tr-tight: 0.04em;

  --gutter: clamp(20px, 4vw, 64px);
  --maxw: 1440px;
  --rail: 1px solid var(--rule);

  /* Schema v2 §8.1 — surfaces used by the founders banner and party monograms.
     Named theme-neutrally so the shared markup never references a theme's own
     colour vocabulary (--moss-* / --plum-* / --navy-*). */
  --surface-mid: var(--navy-mid);
  --avatar-bg-from: var(--navy-mid);
  --avatar-bg-to: var(--pitch);
}

* { box-sizing: border-box; }
html, body { margin: 0; padding: 0; }
body {
  background: var(--pitch);
  background-image: url('assets/celestial-bg.jpg');
  background-size: cover;
  background-position: center top;
  background-attachment: fixed;
  background-repeat: no-repeat;
  color: var(--bone);
  font-family: var(--ff-body);
  font-weight: 300;
  font-size: var(--fs-body);
  line-height: 1.65;
  letter-spacing: 0.01em;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
  overflow-x: hidden;
}

img { display: block; max-width: 100%; }
button { font-family: inherit; cursor: pointer; }

/* Base link colour — load-bearing. Without this, every unclassed anchor
   (footer mailto, .ics download links, the livestream link) renders
   browser-blue. Low specificity so any classed link rule still wins. */
a { color: var(--gold); }
a:hover, a:focus-visible { color: var(--gold-pale); }

.eyebrow {
  font-family: var(--ff-body);
  font-weight: 300;
  font-size: var(--fs-caption);
  letter-spacing: var(--tr-ultra);
  text-transform: uppercase;
  color: var(--gold);
}
.eyebrow-bone { color: var(--bone); opacity: 0.7; }

.display {
  font-family: var(--ff-display);
  font-weight: 300;
  line-height: 0.92;
  letter-spacing: -0.02em;
}

.editorial {
  font-family: var(--ff-editorial);
  font-weight: 400;
  font-style: italic;
  line-height: 1.1;
}

.serif {
  font-family: var(--ff-editorial);
  font-weight: 400;
  line-height: 1.2;
}

.sc {
  font-family: var(--ff-sc);
  font-weight: 600;
  letter-spacing: 0.08em;
}

.rule-ornament {
  display: flex; align-items: center; justify-content: center;
  gap: 14px; color: var(--gold); opacity: 0.75;
}
.rule-ornament::before,
.rule-ornament::after {
  content: ''; height: 1px; width: 64px;
  background: linear-gradient(90deg, transparent, var(--gold), transparent);
}

.gold-foil {
  background: linear-gradient(
    180deg,
    #D8C890 0%,
    #C8B070 25%,
    #B8A060 50%,
    #C8B070 75%,
    #D8C890 100%
  );
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  color: transparent;
}

.reveal {
  opacity: 0;
  transform: translateY(28px);
  transition: opacity 1.2s cubic-bezier(.2,.6,.2,1), transform 1.2s cubic-bezier(.2,.6,.2,1);
}
.reveal.in {
  opacity: 1;
  transform: none;
}

::selection { background: rgba(184, 160, 96, 0.35); color: var(--bone); }

::-webkit-scrollbar { width: 8px; background: var(--pitch); }
::-webkit-scrollbar-thumb { background: rgba(184, 160, 96, 0.25); }
