:root {
  --ink: #14120f;
  --oxblood: #5a1a24;
  --text: #3b1219;
  --cream: #f4eddf;
  --cream-gold: #f3e3b8;
  --gold: #b8923a;
  --brass: #d4af5a;
  --brass-text: #e6c877;
  --gold-text: #86661c;
  --line: #d9ceb6;
  --tint: #ebe1cc;
  --display: 'Cormorant Garamond', Georgia, serif;
  --caps: 'Cormorant SC', Georgia, serif;
}
* { box-sizing: border-box; }
body { margin: 0; background: var(--cream); color: var(--text); font: 18px/1.5 'EB Garamond', Georgia, serif; }
a { color: inherit; }
a:hover { color: var(--gold-text); }
h1, h2 { font-family: var(--display); font-weight: 600; margin: 0; }
ul { list-style: none; margin: 0; padding: 0; }
.page { position: relative; max-width: 1088px; margin: 0 auto; padding: 0 24px; }

.dark { position: relative; background: var(--ink); color: var(--cream); padding-bottom: 72px; }
.dark a:hover { color: var(--brass); }
.ground { position: absolute; top: 0; left: 0; width: 100%; height: 100%; }
.band { display: block; width: 100%; height: 20px; background: var(--oxblood); border-top: 1px solid var(--brass); border-bottom: 1px solid var(--brass); }

.topbar { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 12px 32px; padding: 22px 0; border-bottom: 3px double var(--gold); font: 600 19px var(--caps); letter-spacing: .12em; }
.topbar a { text-decoration: none; display: inline-flex; align-items: center; min-height: 44px; }
.topbar .brand { font-size: 26px; letter-spacing: .08em; }
.topbar nav { display: flex; flex-wrap: wrap; gap: 0 32px; }
.topbar [aria-current="page"] { box-shadow: 0 1px 0 var(--brass); }

.corner { position: absolute; }
.tl { top: 0; left: 0; }
.tr { top: 0; right: 0; transform: scaleX(-1); }
.bl { bottom: 0; left: 0; transform: scaleY(-1); }
.br { bottom: 0; right: 0; transform: scale(-1, -1); }
.flush.tl { top: -1px; left: -1px; }
.flush.tr { top: -1px; right: -1px; }
.flush.bl { bottom: -1px; left: -1px; }
.flush.br { bottom: -1px; right: -1px; }
.iron { width: clamp(72px, 13vw, 140px); height: auto; }

.hero { position: relative; display: flex; flex-direction: column; align-items: center; text-align: center; margin: 32px 0 44px; padding: 60px 24px; }
.hero.compact { margin-bottom: 0; padding: 80px 48px; }
.logo { width: 720px; max-width: 86%; line-height: 0; }
.logo img { display: block; width: 100%; height: auto; }
.hero.compact h1 { font-size: clamp(42px, 7vw, 72px); line-height: 1.1; letter-spacing: .02em; margin-bottom: 18px; }
.chain { width: 360px; max-width: 86%; height: auto; }
.motto { font: 500 23px/1.35 var(--caps); letter-spacing: .14em; margin: 32px 0 0; }
.lede { font-style: italic; font-size: 22px; margin: 16px 0 0; }

.ticket { position: relative; border: 1px solid var(--brass); padding: 6px; background: var(--oxblood); }
.ticket-inner { border: 1px solid var(--brass); padding: 48px 60px; display: flex; flex-wrap: wrap; align-items: center; gap: 28px 48px; }
.tile { text-align: center; padding-right: 48px; border-right: 1px solid var(--brass); font: 600 21px/1.3 var(--caps); letter-spacing: .16em; color: var(--cream-gold); }
.tile strong { display: block; font: 500 100px/1 var(--display); letter-spacing: 0; font-variant-numeric: lining-nums; }
.details { flex: 1 1 300px; }
.details h2 { font-size: 44px; line-height: 1.1; margin-bottom: 8px; }
.details p { margin: 0; }
.eyebrow { font: 600 20px/1.3 var(--caps) !important; letter-spacing: .14em; color: var(--gold-text); margin: 0 0 6px !important; }
.ticket .eyebrow { color: var(--brass-text); }
.cta { display: inline-flex; align-items: center; gap: 12px; min-height: 52px; padding: 0 28px; background: var(--brass); color: var(--ink); text-decoration: none; font: 600 20px var(--caps); letter-spacing: .1em; box-shadow: 0 0 0 1px var(--oxblood), 0 0 0 2px var(--brass); }
.dark .cta:hover { background: var(--cream-gold); color: var(--ink); }
.pending { margin: 0; font-style: italic; }

#calendar { padding: 72px 0 24px; scroll-margin-top: 16px; }
.section-title { font-size: 42px; line-height: 1.15; letter-spacing: .02em; text-align: center; margin-bottom: 10px; color: var(--oxblood); }
.heading-flair { display: flex; justify-content: center; margin-bottom: 26px; }
.calendar { border-top: 3px double var(--oxblood); }
.calendar li { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 32px; padding: 14px 0; border-bottom: 1px solid var(--line); }
.date { flex: 0 0 150px; }
.chip { display: inline-block; background: var(--oxblood); color: var(--cream-gold); padding: 5px 14px; font: 600 20px/1.2 var(--caps); letter-spacing: .08em; box-shadow: 0 0 0 1px var(--cream), 0 0 0 2px var(--gold); }
.what { flex: 1 1 240px; font-size: 20px; }
.host { flex: 1 1 200px; font-style: italic; }
.time { flex: 0 0 80px; }

.hosts { position: relative; display: flex; flex-wrap: wrap; justify-content: center; align-items: center; gap: 20px 40px; margin: 40px 0 72px; padding: 36px 32px; border: 1px solid var(--gold); background: var(--ink); color: var(--cream); }
.hosts p { margin: 0; font-size: 20px; }
.hosts a { color: var(--brass-text); }
.hosts a:hover { color: var(--cream-gold); }
.mini-cameos { display: flex; gap: 14px; }
.mini-cameo { width: 72px; height: 88px; border-radius: 50%; background: var(--oxblood); color: var(--cream-gold); border: 1px solid var(--brass); box-shadow: 0 0 0 3px var(--ink), 0 0 0 4px var(--brass); display: flex; align-items: center; justify-content: center; font: 600 26px var(--display); }

.people { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 340px), 1fr)); gap: 64px 88px; padding: 72px 0; }
.person { display: flex; flex-direction: column; align-items: center; text-align: center; font-size: 19px; }
.cameo { width: 260px; height: 330px; border-radius: 50%; border: 1.5px solid var(--oxblood); box-shadow: 0 0 0 7px var(--cream), 0 0 0 8px var(--gold); background: var(--tint); overflow: hidden; display: flex; align-items: flex-end; }
.cameo svg { width: 100%; }
.person .eyebrow { margin-top: 36px !important; }
.person h2 { font-size: 38px; line-height: 1.15; margin-bottom: 14px; color: var(--oxblood); }
.bio { margin: 0 0 16px; max-width: 400px; }
.next-hosting { font-style: italic; margin: 0; }

.rules { background: var(--oxblood); color: var(--cream); border-top: 1px solid var(--brass); padding: 28px 24px 40px; font: 600 19px var(--caps); letter-spacing: .12em; text-align: center; }
.tailpiece { display: flex; align-items: center; gap: 18px; max-width: 1040px; margin: 0 auto 18px; }
.tailpiece span { flex: 1; height: 1px; background: var(--brass); }
.tenets { display: flex; flex-wrap: wrap; justify-content: center; align-items: center; gap: 8px 28px; }

@media (max-width: 640px) {
  .hero.compact { padding: 72px 24px; }
  .hero { padding: 72px 12px; }
  .logo { max-width: 100%; }
  .ticket-inner { padding: 60px 24px; justify-content: center; text-align: center; }
  .tile { padding: 0 0 20px; border-right: 0; border-bottom: 1px solid var(--brass); width: 100%; }
  .motto { letter-spacing: .08em; font-size: 20px; }
  .date { flex: 1 1 100%; }
}
