:root {
  color-scheme: dark;
  --ink: #0b1019;
  --panel: #151b26;
  --line: #38404b;
  --cream: #f5f0e8;
  --muted: #aeb5be;
  --red: #dc3943;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; background: var(--ink); color: var(--cream); font-family: Arial, Helvetica, sans-serif; -webkit-font-smoothing: antialiased; }
button, a { -webkit-tap-highlight-color: transparent; }
button { font: inherit; }
a { color: inherit; }
:focus-visible { outline: 3px solid #f4adad; outline-offset: 4px; }
.skip-link { position: absolute; z-index: 10; top: -80px; left: 1rem; padding: .75rem 1rem; background: var(--cream); color: var(--ink); }
.skip-link:focus { top: 1rem; }
.page-shell { width: min(100%, 760px); min-height: 100vh; margin-inline: auto; background: #0e131d; }
.brand-bar { display: flex; align-items: center; gap: .65rem; min-height: 68px; padding: 0 clamp(20px, 5vw, 38px); border-bottom: 1px solid #ffffff1c; }
.brand-mark { font-family: Georgia, 'Times New Roman', serif; font-size: 1.75rem; letter-spacing: -.08em; line-height: 1; }
.brand-dot { color: var(--red); }
.brand-name, .brand-date, .eyebrow, .site-footer { font-size: .63rem; font-weight: 700; letter-spacing: .2em; }
.brand-name { color: #c8c6c3; }
.brand-date { margin-left: auto; color: #a5aab1; white-space: nowrap; letter-spacing: .13em; }
.hero { position: relative; isolation: isolate; min-height: 330px; overflow: hidden; border-bottom: 1px solid #d43a4442; }
.hero-image { position: absolute; inset: 0; z-index: -1; background: linear-gradient(90deg, #0b1019e8 2%, #0b1019ae 52%, #0b1019a8), linear-gradient(0deg, #0b1019 1%, transparent 72%), url('moonlit-sky.webp') center 28% / cover no-repeat; }
.hero-content { padding: 62px clamp(24px, 6vw, 48px) 44px; }
.eyebrow { margin: 0 0 19px; color: #ebadb0; line-height: 1.5; }
h1, h2, h3, p { margin-top: 0; }
h1, h2 { font-family: Georgia, 'Times New Roman', serif; font-weight: 400; }
h1 { max-width: 590px; margin-bottom: 26px; font-size: clamp(2.45rem, 8.9vw, 4.2rem); line-height: 1.02; letter-spacing: -.05em; text-wrap: balance; }
h1 em { color: #f14e53; font-weight: 400; }
.hero-rule { height: 1px; width: min(100%, 520px); background: #ffffff42; }
.hero-rule span { display: block; height: 2px; width: 54px; background: var(--red); }
.hero-caption { margin: 20px 0 0; color: #d0cfd0; font-family: Georgia, 'Times New Roman', serif; font-size: 1rem; font-style: italic; }
.cast-section { padding: 42px clamp(20px, 5vw, 38px) 50px; }
.section-heading { margin-bottom: 30px; }
.section-heading .eyebrow { display: flex; align-items: center; gap: 10px; margin-bottom: 12px; font-size: .58rem; }
.red-line { display: inline-block; width: 18px; height: 2px; background: var(--red); flex: none; }
h2 { margin-bottom: 10px; font-size: clamp(2.25rem, 8vw, 3.4rem); letter-spacing: -.04em; }
.section-heading > p:last-child { max-width: 440px; margin-bottom: 0; color: #c5c8ce; font-size: .94rem; line-height: 1.55; }
.performer-list { display: grid; gap: 10px; }
.performer-card { border: 1px solid var(--line); background: var(--panel); transition: border-color .2s, background .2s; }
.performer-card.is-open { border-color: #aa5057; background: #1b202a; }
.performer-toggle { width: 100%; min-height: 83px; display: grid; grid-template-columns: 30px 1fr 34px; align-items: center; gap: 14px; padding: 13px 18px; border: 0; background: transparent; color: var(--cream); text-align: left; cursor: pointer; }
.performer-number { align-self: center; color: #c25a62; font-family: Georgia, 'Times New Roman', serif; font-size: 1.15rem; }
.performer-name { font-family: Georgia, 'Times New Roman', serif; font-size: clamp(1.25rem, 5vw, 1.6rem); letter-spacing: -.015em; line-height: 1.13; }
.performer-arrow { display: grid; place-items: center; height: 34px; width: 34px; border: 1px solid #616975; border-radius: 50%; font-size: 1.1rem; line-height: 1; transition: transform .2s, border-color .2s; }
.is-open .performer-arrow { transform: rotate(45deg); border-color: var(--red); }
.payment-panel { padding: 0 18px 19px 62px; }
.payment-panel[hidden] { display: none; }
.payment-label { margin-bottom: 12px; color: var(--muted); font-size: .75rem; line-height: 1.4; }
.payment-links { display: grid; gap: 8px; }
.payment-link { display: flex; align-items: center; justify-content: space-between; min-height: 54px; padding: 0 15px; border: 1px solid #8e949d; color: var(--cream); text-decoration: none; font-size: .92rem; font-weight: 700; }
.payment-link:hover, .payment-link:focus-visible { border-color: #f37b7c; background: #ffffff0c; }
.payment-link span:last-child { color: #f4b2b3; font-size: 1.15rem; }
.notice { margin: 0; padding: 13px 15px; border-left: 2px solid var(--red); background: #ffffff0a; color: #d8c9cb; font-size: .85rem; line-height: 1.5; }
.trust-note { display: flex; gap: 10px; margin: 29px 2px 0; color: #aeb5be; font-size: .75rem; line-height: 1.55; }
.trust-note span { color: #e67c82; font-size: 1rem; }
.site-footer { display: flex; justify-content: space-between; gap: 16px; padding: 24px clamp(20px, 5vw, 38px) 34px; border-top: 1px solid #ffffff20; color: #949ba5; font-size: .57rem; line-height: 1.6; }
@media (max-width: 370px) { .brand-date { font-size: .53rem; } .brand-name { display: none; } .performer-toggle { grid-template-columns: 24px 1fr 32px; gap: 10px; padding-inline: 13px; } .payment-panel { padding-left: 47px; padding-right: 13px; } }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } *, *::before, *::after { transition-duration: 0.01ms !important; animation-duration: 0.01ms !important; } }

.demo-banner { padding: 11px 16px; background: #8d2630; color: white; text-align: center; font-size: .64rem; font-weight: 700; letter-spacing: .12em; line-height: 1.4; }
