@import url("https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Playfair+Display:ital,wght@0,500;0,600;0,700;1,500;1,600&display=swap");

:root {
  color-scheme: light;
  --ink: #1b1721;
  --ink-soft: #2b2532;
  --paper: #f8f6f1;
  --white: #fffefa;
  --muted: #817c83;
  --gold: #efc46d;
  --gold-dark: #d7a747;
  --pink: #e48c9f;
  --line: #e8e4de;
  --serif: "Playfair Display", Georgia, serif;
  --sans: "DM Sans", "Helvetica Neue", sans-serif;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: 6rem; }
body { margin: 0; color: var(--ink); background: var(--paper); font-family: var(--sans); font-size: 15px; line-height: 1.65; }
body, button, input, select { font-family: var(--sans); }
button, input, select { font-size: inherit; }
button, a, input, select { -webkit-tap-highlight-color: transparent; }
a { color: inherit; text-decoration: none; }
button { color: inherit; }
img { display: block; max-width: 100%; }
::selection { color: var(--ink); background: var(--gold); }
.visually-hidden { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
.skip-link { position: fixed; z-index: 20; top: 12px; left: 12px; padding: 10px 16px; color: var(--ink); background: var(--gold); transform: translateY(-160%); }
.skip-link:focus { transform: translateY(0); }

.site-header { position: relative; z-index: 5; display: flex; width: min(100% - 96px, 1440px); height: 96px; margin: auto; align-items: center; justify-content: space-between; }
.brand { display: inline-flex; align-items: center; gap: 10px; }
.brand-mark { display: grid; width: 43px; height: 43px; color: var(--gold-dark); place-items: center; }
.brand-mark svg { width: 40px; stroke: currentColor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.4; }
.brand-name { font-size: 20px; font-weight: 700; letter-spacing: -.08em; line-height: 1.1; }
.brand-name > span { color: var(--gold-dark); }
.brand-name small { display: block; margin-top: 5px; font-size: 8px; font-weight: 500; letter-spacing: .13em; text-transform: uppercase; }
.primary-nav { display: flex; height: 100%; align-items: center; gap: clamp(24px, 3.8vw, 58px); font-size: 12px; font-weight: 500; }
.primary-nav > a:not(.nav-ticket) { transition: color .2s ease; }
.primary-nav > a:not(.nav-ticket):hover, .text-link:hover, .dark-link:hover, .light-link:hover { color: var(--gold-dark); }
.nav-ticket { display: flex; min-height: 44px; padding: 0 20px; align-items: center; gap: 20px; border: 1px solid #dcd7cf; transition: background .2s, color .2s, border-color .2s; }
.nav-ticket:hover { color: var(--ink); background: var(--gold); border-color: var(--gold); }
.nav-ticket span { font-size: 15px; }
.menu-toggle { display: none; }

.hero { position: relative; display: grid; width: min(100% - 96px, 1440px); min-height: min(660px, calc(100svh - 96px)); margin: 0 auto; padding: 74px 0 88px; grid-template-columns: 1fr 1.08fr; align-items: center; gap: 3%; }
.hero-copy { position: relative; z-index: 1; padding-bottom: 12px; }
.eyebrow { display: flex; align-items: center; gap: 10px; color: #f0c77b; font-size: 10px; font-weight: 700; letter-spacing: .17em; line-height: 1.5; text-transform: uppercase; }
.eyebrow-dark { color: #9c8052; }
.eyebrow-dot, .live-indicator { display: inline-block; width: 7px; height: 7px; flex: 0 0 7px; border-radius: 50%; background: var(--gold-dark); }
.eyebrow-dot { box-shadow: 0 0 0 4px #edc46f33; }
h1, h2, h3, h4, p { margin-top: 0; }
h1, h2, .closing h2 { font-family: var(--serif); font-weight: 500; letter-spacing: -.047em; }
.hero h1 { margin: 25px 0 18px; font-size: clamp(51px, 6.1vw, 86px); line-height: 1.04; }
.hero h1 em, h2 em, .shop-copy h3 em, .closing h2 em { color: #b48b45; font-weight: 500; }
.hero-intro { max-width: 420px; margin-bottom: 27px; color: #726d74; font-size: 14px; line-height: 1.85; }
.hero-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 26px; }
.button { display: inline-flex; min-height: 50px; padding: 0 21px; align-items: center; justify-content: space-between; gap: 30px; border: 0; font-size: 11px; font-weight: 700; transition: background .2s, color .2s, transform .2s; cursor: pointer; }
.button:hover { transform: translateY(-2px); }
.button-gold { color: var(--ink); background: var(--gold); }
.button-gold:hover { background: #f4d18c; }
.button-dark { color: var(--white); background: var(--ink); }
.button-dark:hover { background: #433448; }
.text-link, .dark-link, .light-link { display: inline-flex; align-items: center; gap: 13px; font-size: 11px; font-weight: 600; transition: color .2s; }
.hero-footnote { display: flex; margin-top: 56px; align-items: center; gap: 9px; color: #817c83; font-size: 10px; }
.hero-footnote .live-indicator { width: 6px; height: 6px; flex-basis: 6px; background: #77a486; }
.hero-art { position: relative; min-width: 0; padding: 9px 23px 14px 0; }
.hero-image-wrap { position: relative; overflow: hidden; height: clamp(340px, 41vw, 555px); background: #3a2a3e; }
.hero-image { width: 100%; height: 100%; object-fit: cover; object-position: center; animation: image-arrive .8s ease-out both; }
.image-shade { position: absolute; inset: 30% 0 0; background: linear-gradient(0deg, #19151fe6, transparent); }
.art-caption { position: absolute; right: 30px; bottom: 25px; left: 30px; display: flex; justify-content: space-between; gap: 10px; color: white; font-family: var(--serif); font-size: 15px; font-style: italic; }
.roundel { position: absolute; top: -25px; right: 0; display: grid; width: 104px; height: 104px; border-radius: 50%; color: var(--ink); background: var(--gold); place-items: center; }
.roundel svg { width: 96px; height: 96px; animation: turn 28s linear infinite; fill: currentColor; font-family: var(--sans); font-size: 9.5px; font-weight: 700; letter-spacing: 1.45px; }
.roundel > span { position: absolute; font-size: 26px; }
.art-index { position: absolute; right: 0; bottom: -7px; font-size: 9px; font-weight: 700; letter-spacing: .12em; }
.art-index span { margin: 0 5px; color: #bbb5bc; }
.scroll-cue { position: absolute; bottom: 16px; left: 0; display: flex; align-items: center; gap: 11px; color: #918a91; font-size: 9px; letter-spacing: .1em; text-transform: uppercase; }
.scroll-cue span { width: 31px; height: 1px; background: var(--gold-dark); }

.ticker { overflow: hidden; height: 66px; color: var(--ink); background: var(--gold); }
.ticker-track { display: flex; width: max-content; height: 100%; align-items: center; gap: clamp(28px, 5vw, 74px); animation: marquee 32s linear infinite; }
.ticker-track span { font-family: var(--serif); font-size: 16px; letter-spacing: .12em; white-space: nowrap; }
.ticker-track i { font-size: 16px; font-style: normal; }

.section-pad { padding-right: max(48px, calc((100% - 1232px) / 2)); padding-left: max(48px, calc((100% - 1232px) / 2)); }
.about { padding-top: 105px; padding-bottom: 88px; }
.section-label { display: flex; align-items: center; gap: 13px; color: #8a858a; font-size: 9px; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; }
.section-label > span { color: var(--gold-dark); font-size: 10px; }
.about-content { display: grid; margin: 32px 0 70px; grid-template-columns: 1fr 1fr; gap: 12%; }
.section-heading .eyebrow { margin-bottom: 14px; }
h2 { margin-bottom: 0; font-size: clamp(42px, 5vw, 66px); line-height: 1.1; }
.about-copy { max-width: 490px; padding-top: 8px; color: #777178; font-size: 13px; line-height: 1.9; }
.about-copy p { margin-bottom: 17px; }
.dark-link { margin-top: 8px; color: var(--ink); }
.about-stats { display: grid; padding-top: 25px; border-top: 1px solid var(--line); grid-template-columns: repeat(4, 1fr); gap: 22px; }
.about-stats > div:not(.stats-note) { display: flex; flex-direction: column; gap: 4px; }
.stat-number { font-family: var(--serif); font-size: 25px; letter-spacing: -.04em; }
.stat-caption { color: #8a858a; font-size: 10px; }
.stats-note { align-self: center; color: #827c81; font-size: 11px; line-height: 1.6; }
.stats-note em { color: #8f6c37; font-family: var(--serif); font-size: 14px; }

.news { padding-top: 91px; padding-bottom: 95px; color: #fff; background: var(--ink); }
.section-topline { display: flex; margin-bottom: 38px; align-items: end; justify-content: space-between; gap: 20px; }
.section-label-light { margin-bottom: 25px; color: #b8b2ba; }
.news h2 { font-size: clamp(43px, 5vw, 61px); }
.news h2 em { color: var(--gold); }
.light-link { color: #f5f0ec; }
.light-link:hover { color: var(--gold); }
.news-card { display: grid; min-height: 305px; background: #25202a; grid-template-columns: 1fr 1fr; }
.news-card + .news-card { margin-top: 24px; }
.news-card-menu-2026 .news-photo img { object-position: center; }
.news-card-text-only { grid-template-columns: 1fr; }
.news-card-text-only .news-copy { max-width: 760px; }
.news-photo { position: relative; min-height: 305px; overflow: hidden; background: #39313d; }
.news-photo img { width: 100%; height: 100%; position: absolute; inset: 0; object-fit: cover; transition: transform .6s; }
.news-photo:hover img { transform: scale(1.035); }
.photo-arrow { position: absolute; right: 18px; bottom: 18px; display: grid; width: 38px; height: 38px; color: var(--on-gold); background: var(--gold); place-items: center; }
.news-copy { display: flex; padding: clamp(25px, 5vw, 54px); flex-direction: column; justify-content: center; }
.news-meta { display: flex; flex-wrap: wrap; margin-bottom: 20px; gap: 14px; color: #b7a16d; font-size: 8px; font-weight: 700; letter-spacing: .15em; }
.news-meta span + span { color: #a7a0a9; }
.news-copy h3 { max-width: 390px; margin-bottom: 13px; font-family: var(--serif); font-size: clamp(24px, 3vw, 34px); font-weight: 500; line-height: 1.23; }
.news-copy > p { max-width: 390px; margin-bottom: 18px; color: #c1bbc2; font-size: 11px; line-height: 1.8; }
.news-copy > .news-repertoire { margin-top: -6px; color: #b7aebc; font-size: 10px; }
.news-repertoire strong { color: #f5f0ec; }
.news-note { display: flex; margin-top: 24px; align-items: center; gap: 10px; color: #c2bac4; font-size: 10px; }
.news-note .live-indicator { width: 6px; height: 6px; flex-basis: 6px; background: #87b392; }

.ticket-dependent[hidden] { display: none !important; }
.tickets { padding-top: 106px; padding-bottom: 70px; }
.ticket-heading { display: grid; margin: 32px 0 40px; grid-template-columns: 1fr .73fr; align-items: end; gap: 8%; }
.ticket-heading .eyebrow { margin-bottom: 14px; }
.ticket-heading h2 { font-size: clamp(43px, 5vw, 65px); }
.ticket-intro { max-width: 390px; margin: 0 0 7px; color: #777178; font-size: 12px; line-height: 1.9; }
.availability { display: flex; min-height: 95px; padding: 20px 24px; align-items: center; gap: 17px; border: 1px solid #e8dfd0; background: #f4f0e8; }
.availability-icon { color: #b38a45; font-size: 23px; }
.availability > div { flex: 1; }
.availability strong { font-size: 12px; }
.availability p { margin: 4px 0 0; color: #88817f; font-size: 10px; }
.availability > a { display: flex; align-items: center; gap: 11px; font-size: 10px; font-weight: 600; }
.availability > a:hover { color: #92733f; }
.event-schedule { display: grid; margin-top: 14px; grid-template-columns: repeat(3, 1fr); border: 1px solid #403a45; }
.event-date { display: grid; min-width: 0; padding: 18px; gap: 5px; }
.event-date + .event-date { border-left: 1px solid #403a45; }
.event-date time { color: var(--gold); font-size: 9px; font-weight: 700; letter-spacing: .1em; }
.event-date strong { font-size: 10px; }
.event-date > span { color: #e8a4a4; font-size: 9px; font-weight: 600; }
.schedule-note { margin: 10px 0 0; color: #b3abb8; font-size: 9px; line-height: 1.7; }

.shop-preview { display: grid; margin-top: 54px; grid-template-columns: minmax(0, .72fr) minmax(0, 1fr); gap: 8%; align-items: center; }
.shop-preview > * { min-width: 0; }
.shop-copy { padding: 18px 0; }
.shop-label { display: flex; align-items: center; gap: 9px; color: #938b8e; font-size: 9px; font-weight: 700; letter-spacing: .14em; }
.shop-label > span { width: 7px; height: 7px; border-radius: 50%; background: #d1a64f; }
.shop-copy h3 { margin: 20px 0 14px; font-family: var(--serif); font-size: clamp(38px, 4vw, 52px); font-weight: 500; letter-spacing: -.04em; line-height: 1.08; }
.shop-copy > p { max-width: 325px; margin-bottom: 22px; color: #777178; font-size: 11px; line-height: 1.9; }
.preview-warning { display: flex; max-width: 350px; padding: 13px; align-items: flex-start; gap: 10px; color: #756d62; background: #efe9dd; font-size: 9px; line-height: 1.65; }
.preview-warning > span:first-child { color: #9c7837; font-size: 15px; }
.preview-warning strong { color: var(--ink); font-size: 10px; }
.shop-support { display: flex; margin-top: 25px; align-items: center; gap: 12px; color: #88817f; font-size: 9px; }
.support-icon { display: grid; width: 31px; height: 31px; border: 1px solid #dfdbd4; color: #8e754e; place-items: center; }
.shop-support > span:last-child { display: flex; flex-direction: column; gap: 2px; }
.shop-support a { color: var(--ink); font-weight: 600; }

.shop-card { min-width: 0; padding: 25px; border: 1px solid #ebe7e0; background: var(--white); box-shadow: 0 18px 55px #362c180d; }
.shop-card-top { display: flex; margin-bottom: 19px; align-items: center; justify-content: space-between; gap: 10px; }
.demo-pill { padding: 4px 8px; color: #876630; background: #f5ecd9; font-size: 8px; font-weight: 700; letter-spacing: .12em; }
.secure-note { color: #8b8589; font-size: 8px; }
.ticket-product { display: grid; padding-bottom: 20px; border-bottom: 1px solid #ece8e2; grid-template-columns: minmax(0, 142px) minmax(0, 1fr); gap: 20px; align-items: center; }
.product-art { position: relative; display: flex; height: 144px; overflow: hidden; flex-direction: column; align-items: center; justify-content: center; color: #f6e8d4; background: linear-gradient(148deg, #413342, #211c29 72%); }
.product-art::before, .product-art::after { position: absolute; width: 160px; height: 160px; border: 1px solid #d5ab6745; border-radius: 50%; content: ""; }
.product-art::before { transform: scale(.72); }
.product-art::after { transform: scale(1.06); }
.product-spotlight { position: absolute; top: 0; width: 2px; height: 98px; background: linear-gradient(#efc46d00, #efc46d91); transform: rotate(28deg); }
.product-star { z-index: 1; color: var(--gold); font-size: 17px; }
.product-logo { z-index: 1; width: min(96px, 85%); height: auto; margin-top: 2px; }
.product-caption { position: absolute; z-index: 1; bottom: 9px; font-size: 7px; letter-spacing: .17em; }
.product-details { min-width: 0; }
.product-overline { margin-bottom: 7px; color: #a18450; font-size: 8px; font-weight: 700; letter-spacing: .11em; }
.product-details h4, .checkout-heading h4 { margin: 0 0 14px; font-family: var(--serif); font-size: clamp(16px, 2vw, 21px); font-weight: 500; line-height: 1.35; }
.product-date { display: flex; margin: 5px 0; align-items: center; gap: 7px; color: #817b81; font-size: 9px; }
.product-options { padding-top: 19px; }
.product-options > label:first-child { display: flex; margin-bottom: 7px; justify-content: space-between; font-size: 9px; font-weight: 700; }
.product-options > label:first-child span { color: #a58d65; font-size: 7px; font-weight: 600; letter-spacing: .08em; }
.product-options select, .customer-fields input, .shipping-fields input { width: 100%; min-height: 42px; padding: 0 12px; border: 1px solid #e9e4dc; border-radius: 0; color: var(--ink); background-color: var(--white); font-size: 10px; }
.product-options select:focus, .customer-fields input:focus, .shipping-fields input:focus { outline: 2px solid #c7a263; outline-offset: 1px; }
.ticket-bottom-row { display: flex; margin-top: 16px; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px; }
.quantity-picker, .price-block { display: flex; align-items: center; gap: 11px; }
.quantity-picker > span, .price-block > span { color: #837d82; font-size: 9px; }
.stepper { display: inline-flex; height: 30px; align-items: center; border: 1px solid #e8e4de; }
.quantity-button { width: 28px; height: 28px; padding: 0; border: 0; background: transparent; font-size: 16px; cursor: pointer; }
.quantity-button:hover:not(:disabled) { background: #f6f1e8; }
.quantity-button:disabled { color: #c5c0c2; cursor: not-allowed; }
.stepper output { min-width: 23px; font-size: 10px; text-align: center; }
.price-block { gap: 9px; }
.price-block strong { font-size: 13px; }
.checkout-toggle { width: 100%; min-height: 47px; margin-top: 19px; }
.checkout { margin-top: 22px; padding-top: 21px; border-top: 1px solid #e9e4dc; }
.checkout[hidden], .order-result[hidden] { display: none; }
.checkout-heading { display: flex; margin-bottom: 20px; align-items: end; justify-content: space-between; gap: 12px; }
.checkout-heading > div { min-width: 0; }
.checkout-heading .product-overline { display: block; }
.checkout-heading h4 { margin-bottom: 0; font-size: 21px; }
.checkout-total { font-family: var(--serif); font-size: 20px; white-space: nowrap; }
.choice-group, .payment-group { min-width: 0; margin: 0; padding: 0; border: 0; }
.choice-group legend, .payment-group legend { margin-bottom: 9px; font-size: 10px; font-weight: 700; }
.choice-group { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
.choice-card { position: relative; display: flex; min-width: 0; min-height: 60px; padding: 8px; align-items: center; gap: 8px; border: 1px solid #e8e4de; cursor: pointer; }
.choice-card:has(input:checked) { border-color: #b18b4e; background: #fbf8f1; }
.choice-card > input { position: absolute; top: 8px; right: 8px; width: 12px; height: 12px; margin: 0; accent-color: #a77c37; }
.choice-card > span:last-child { min-width: 0; overflow-wrap: anywhere; }
.choice-icon { display: grid; width: 27px; height: 27px; flex: 0 0 27px; color: #987b4e; background: #f4efe6; font-size: 14px; place-items: center; }
.choice-card strong, .choice-card small { display: block; padding-right: 9px; }
.choice-card strong { font-size: 9px; }
.choice-card small { margin-top: 2px; color: #88817f; font-size: 7px; }
.shipping-fields { display: grid; margin-top: 15px; gap: 8px; }
.shipping-fields[hidden] { display: none; }
.shipping-fields > label, .customer-fields > label { display: grid; gap: 6px; font-size: 9px; font-weight: 600; }
.shipping-fields input, .customer-fields input { min-height: 38px; }
.address-row { display: grid; grid-template-columns: .8fr 1.5fr; gap: 9px; }
.payment-group { display: flex; margin-top: 19px; flex-wrap: wrap; gap: 9px 16px; }
.payment-group legend { flex: 0 0 100%; }
.payment-group label { display: inline-flex; min-height: 44px; padding: 6px 0; align-items: center; gap: 6px; font-size: 10px; cursor: pointer; }
.payment-group input { margin: 0; accent-color: var(--gold); }
.payment-wordmark { color: #174587; font-size: 11px; font-weight: 700; font-style: italic; }
.payment-note { margin: 10px 0 0; padding: 8px 10px; color: #766b58; background: #f5f0e5; font-size: 8px; line-height: 1.6; }
.customer-fields { display: grid; margin-top: 15px; gap: 11px; }
.terms { display: flex; margin-top: 14px; align-items: flex-start; gap: 8px; color: #777178; font-size: 8px; line-height: 1.55; cursor: pointer; }
.terms input { width: 18px; height: 18px; flex: 0 0 18px; margin: 1px 0 0; accent-color: var(--gold); }
.submit-order { width: 100%; min-height: 45px; margin-top: 15px; font-size: 10px; }
.privacy-note { margin: 10px 0 0; color: #8a858a; font-size: 8px; text-align: center; }
.order-result { display: flex; padding: 27px 8px 9px; flex-direction: column; align-items: center; text-align: center; }
.result-star { color: #b48b45; font-size: 25px; }
.order-result > strong { margin-top: 9px; font-family: var(--serif); font-size: 21px; font-weight: 500; }
.order-result > p { max-width: 290px; margin: 8px auto 13px; color: #777178; font-size: 10px; line-height: 1.7; }
.order-result .text-link { padding: 5px; border: 0; background: transparent; cursor: pointer; }
.ticket-benefits { display: grid; margin-top: 65px; padding: 21px 0; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); grid-template-columns: repeat(4, 1fr); gap: 15px; }
.ticket-benefits > div { display: flex; align-items: center; justify-content: center; gap: 10px; color: #79737a; font-size: 10px; }
.ticket-benefits > div > span { color: #a78955; font-size: 15px; }

.closing { display: flex; min-height: 430px; padding: 70px 24px; flex-direction: column; align-items: center; justify-content: center; color: #fff; background: radial-gradient(ellipse at 50% 112%, #584351 0, #241f2a 41%, #1b1721 73%); text-align: center; }
.closing-star { margin-bottom: 11px; color: var(--gold); font-size: 24px; }
.closing .eyebrow { margin-bottom: 12px; }
.closing h2 { margin-bottom: 14px; font-size: clamp(42px, 5.5vw, 66px); line-height: 1.08; }
.closing h2 em { color: var(--gold); }
.closing > p:not(.eyebrow) { margin-bottom: 22px; color: #c9c1cb; font-size: 11px; }
.closing .button { min-width: 205px; }
.site-footer { display: grid; min-height: 130px; padding: 30px max(48px, calc((100% - 1232px) / 2)); align-items: center; grid-template-columns: 1fr 1fr auto; gap: 20px; color: #a39ca6; background: #17141b; }
.brand-footer { color: var(--white); }
.brand-footer .brand-name { font-size: 17px; }
.brand-footer .brand-mark { width: 36px; }
.brand-footer .brand-mark svg { width: 34px; }
.site-footer > p { margin: 0; font-size: 9px; line-height: 1.8; }
.footer-links { display: flex; flex-wrap: wrap; gap: 15px; font-size: 9px; }
.footer-links a:hover { color: var(--gold); }
.copyright { grid-column: 3; color: #756e79; font-size: 8px; text-align: right; }

@keyframes marquee { to { transform: translateX(-50%); } }
@keyframes turn { to { transform: rotate(360deg); } }
@keyframes image-arrive { from { opacity: .6; transform: scale(1.025); } to { opacity: 1; transform: scale(1); } }

@media (min-width: 1500px) {
  .hero { min-height: 660px; }
}

@media (max-width: 1000px) {
  .site-header, .hero { width: calc(100% - 64px); }
  .hero { min-height: 590px; grid-template-columns: .9fr 1.1fr; gap: 2%; }
  .hero h1 { font-size: clamp(50px, 6vw, 68px); }
  .hero-image-wrap { height: 430px; }
  .primary-nav { gap: 22px; }
  .section-pad { padding-right: 48px; padding-left: 48px; }
  .shop-preview { grid-template-columns: .64fr 1fr; gap: 5%; }
  .shop-card { padding: 20px; }
  .ticket-product { grid-template-columns: 120px 1fr; gap: 14px; }
  .product-art { height: 132px; }
  .availability > a { max-width: 210px; }
}

@media (max-width: 760px) {
  .site-header { width: calc(100% - 40px); height: 76px; }
  .brand-mark { width: 37px; height: 37px; }
  .brand-mark svg { width: 35px; }
  .brand-name { font-size: 18px; }
  .menu-toggle { display: flex; width: 44px; height: 44px; padding: 12px 9px; flex-direction: column; justify-content: center; gap: 6px; border: 1px solid #e4dfd8; background: transparent; cursor: pointer; }
  .menu-toggle > span:not(.visually-hidden) { width: 22px; height: 1px; background: var(--ink); transition: transform .2s; }
  .menu-toggle[aria-expanded="true"] > span:first-child { transform: translateY(3.5px) rotate(45deg); }
  .menu-toggle[aria-expanded="true"] > span:nth-child(2) { transform: translateY(-3.5px) rotate(-45deg); }
  .primary-nav { position: absolute; top: 66px; right: 0; left: 0; display: none; height: auto; padding: 14px; flex-direction: column; align-items: stretch; gap: 0; border: 1px solid #e8e3dc; background: var(--paper); box-shadow: 0 15px 25px #211a2014; }
  .primary-nav.is-open { display: flex; }
  .primary-nav > a:not(.nav-ticket) { padding: 12px 8px; }
  .nav-ticket { margin-top: 7px; justify-content: space-between; }
  .hero { width: calc(100% - 40px); min-height: auto; padding: 47px 0 72px; grid-template-columns: 1fr; gap: 34px; }
  .hero-copy { order: 0; }
  .hero h1 { margin-top: 18px; font-size: clamp(49px, 12vw, 76px); }
  .hero-intro { max-width: 440px; font-size: 13px; }
  .hero-footnote { margin-top: 28px; }
  .hero-art { order: 1; padding: 0 14px 12px 0; }
  .hero-image-wrap { height: clamp(300px, 88vw, 500px); }
  .art-caption { right: 16px; bottom: 16px; left: 16px; font-size: 12px; }
  .roundel { top: -17px; width: 82px; height: 82px; }
  .roundel svg { width: 77px; height: 77px; font-size: 10px; }
  .roundel > span { font-size: 20px; }
  .scroll-cue { display: none; }
  .ticker { height: 55px; }
  .ticker-track { gap: 26px; }
  .ticker-track span { font-size: 13px; }
  .section-pad { padding-right: 22px; padding-left: 22px; }
  .about { padding-top: 72px; padding-bottom: 68px; }
  .about-content { margin: 26px 0 43px; grid-template-columns: 1fr; gap: 22px; }
  h2 { font-size: clamp(42px, 11vw, 58px); }
  .about-copy { max-width: 570px; }
  .about-stats { grid-template-columns: 1fr 1fr; row-gap: 22px; }
  .stats-note { align-self: end; }
  .news { padding-top: 70px; padding-bottom: 71px; }
  .section-topline { align-items: start; flex-direction: column; gap: 18px; }
  .section-label-light { margin-bottom: 18px; }
  .news-card { grid-template-columns: 1fr; }
  .news-photo { min-height: auto; aspect-ratio: 1.55; }
  .news-copy { padding: 25px 22px 30px; }
  .news-copy h3 { font-size: 29px; }
  .tickets { padding-top: 73px; padding-bottom: 52px; }
  .ticket-heading { margin: 25px 0 25px; grid-template-columns: 1fr; gap: 17px; }
  .ticket-heading h2 { font-size: clamp(41px, 10vw, 58px); }
  .ticket-intro { max-width: 540px; }
  .availability { padding: 16px; flex-wrap: wrap; gap: 10px 13px; }
  .availability > div { flex-basis: calc(100% - 37px); }
  .availability > a { margin-left: 36px; }
  .event-schedule { grid-template-columns: 1fr; }
  .event-date { grid-template-columns: 1fr auto; align-items: center; gap: 4px 10px; }
  .event-date + .event-date { border-top: 1px solid #403a45; border-left: 0; }
  .event-date time, .event-date > span { grid-column: 1; }
  .event-date strong { grid-column: 1; grid-row: 2; }
  .event-date > span { grid-column: 2; grid-row: 1 / span 2; }
  .shop-preview { margin-top: 40px; grid-template-columns: minmax(0, 1fr); gap: 18px; }
  .shop-copy { padding: 0; }
  .shop-copy h3 { font-size: 43px; }
  .shop-copy > p { max-width: 500px; }
  .shop-support { margin-top: 16px; }
  .shop-card { max-width: 540px; width: 100%; margin: 0 auto; padding: 17px; }
  .ticket-product { grid-template-columns: minmax(100px, 142px) minmax(0, 1fr); gap: 13px; }
  .product-art { height: clamp(120px, 36vw, 150px); }
  .product-details h4 { font-size: 18px; }
  .ticket-benefits { margin-top: 42px; grid-template-columns: 1fr 1fr; row-gap: 18px; }
  .ticket-benefits > div { justify-content: flex-start; }
  .closing { min-height: 390px; padding: 55px 20px; }
  .site-footer { padding: 28px 22px; grid-template-columns: 1fr 1fr; gap: 19px 12px; }
  .footer-links { grid-column: 1 / -1; gap: 18px; }
  .copyright { grid-column: 2; grid-row: 1; align-self: start; }
}

@media (max-width: 380px) {
  .site-header { width: calc(100% - 30px); }
  .brand-name small { font-size: 7px; }
  .hero { width: calc(100% - 32px); }
  .hero h1 { font-size: 46px; }
  .hero-actions { gap: 17px; }
  .section-pad { padding-right: 16px; padding-left: 16px; }
  .ticket-product { grid-template-columns: minmax(0, 96px) minmax(0, 1fr); gap: 11px; }
  .product-art { height: 115px; }
  .product-date { font-size: 8px; }
  .shop-card { padding: 14px; }
  .choice-card { padding: 7px; gap: 6px; }
  .choice-card strong { font-size: 8px; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
}

:root {
  color-scheme: dark;
  --ink: #f3eff5;
  --ink-soft: #d7d0dc;
  --paper: #19161e;
  --white: #25212a;
  --muted: #b6afbc;
  --gold-dark: #f0c46d;
  --line: #3a3540;
  --on-gold: #211b22;
}

body { background: var(--paper); }
::selection, .skip-link { color: var(--on-gold); }
.brand-logo { display: block; width: 174px; height: auto; }
.brand-footer .brand-logo { width: 152px; }
.nav-ticket { border-color: #514a56; }
.nav-ticket:hover { color: var(--on-gold); }
.hero-intro, .about-copy, .ticket-intro, .shop-copy > p { color: #bcb4c0; }
.hero-footnote, .stat-caption, .stats-note, .shop-label, .secure-note,
.product-date, .quantity-picker > span, .price-block > span,
.choice-card small, .shop-support, .privacy-note, .order-result > p {
  color: #b3abb8;
}
.eyebrow-dark { color: var(--gold); }
.hero h1 em, h2 em, .shop-copy h3 em { color: var(--gold); }
.button-gold { color: var(--on-gold); }
.button-dark { color: var(--ink); background: #403747; }
.button-dark:hover { background: #504458; }
.ticker { color: var(--on-gold); }
.roundel { color: var(--on-gold); }
.about, .tickets { background: var(--paper); }
.stats-note em { color: var(--gold); }
.news { color: var(--ink); background: #121016; }
.news-card { background: #211d25; }
.news-meta { color: var(--gold); }
.news-meta span + span { color: #b5adb9; }
.news-repertoire { color: #c1bbc2; }
.news-repertoire strong { color: var(--gold); }
.availability { border-color: #51483a; background: #27232a; }
.availability p { color: #b8b0bc; }
.availability > a:hover { color: var(--gold); }
.shop-copy .preview-warning { color: #d3c8b7; background: #302a2a; }
.preview-warning strong { color: var(--ink); }
.support-icon { border-color: #514a56; color: var(--gold); }
.shop-support a { color: var(--ink); }
.shop-card { border-color: #403a45; background: #211d25; box-shadow: 0 18px 55px #00000030; }
.demo-pill { color: var(--gold); background: #393022; }
.ticket-product { border-color: #403a45; }
.product-options select, .customer-fields input, .shipping-fields input {
  border-color: #504a56;
  color: var(--ink);
  background-color: #19161e;
}
.product-options select option { color: var(--ink); background: var(--white); }
.product-options > label:first-child span, .product-overline { color: #d2b779; }
.quantity-picker > span, .price-block > span { color: #b3abb8; }
.stepper, .choice-card { border-color: #504a56; }
.quantity-button:hover:not(:disabled) { background: #39323e; }
.quantity-button:disabled { color: #746d79; }
.checkout { border-color: #403a45; }
.choice-card:has(input:checked) { border-color: var(--gold-dark); background: #302a31; }
.choice-icon { color: var(--gold); background: #39323e; }
.payment-wordmark { color: #94b9ff; }
.payment-note { color: #d3c8b7; background: #302a2a; }
.terms { color: #bcb4c0; }
.ticket-benefits { border-color: var(--line); }
.ticket-benefits > div { color: #c3bbc7; }
.ticket-benefits > div > span, .result-star { color: var(--gold); }
.closing { background: radial-gradient(ellipse at 50% 112%, #443546 0, #211c27 41%, #17141b 73%); }
.site-footer { background: #121016; }

@media (max-width: 760px) {
  .brand-logo { width: min(174px, 48vw); }
  .brand-footer .brand-logo { width: min(152px, 42vw); }
  .menu-toggle { border-color: #514a56; }
  .menu-toggle > span:not(.visually-hidden) { background: var(--ink); }
  .primary-nav { border-color: #403a45; background: #211d25; box-shadow: 0 15px 25px #00000045; }
}

.hero { min-height: min(570px, calc(100svh - 96px)); padding-top: 48px; padding-bottom: 60px; }
.hero-image-wrap { height: clamp(320px, 36vw, 460px); }
.tickets { padding-top: 54px; padding-bottom: 60px; }
.ticket-heading { margin-top: 20px; margin-bottom: 22px; }
.ticket-heading h2 { font-size: clamp(40px, 4.5vw, 56px); }
.event-schedule { margin-top: 10px; }
.event-date { padding: 13px 16px; }
.schedule-note { margin-top: 6px; }
.shop-details, .more-details, .archive-details { border-top: 1px solid var(--line); }
.shop-details { margin-top: 26px; }
.shop-details > summary, .more-details > summary, .archive-details > summary {
  display: flex;
  min-height: 56px;
  align-items: center;
  gap: 14px;
  font-size: 11px;
  font-weight: 600;
  cursor: pointer;
  list-style: none;
}
.shop-details > summary::-webkit-details-marker,
.more-details > summary::-webkit-details-marker,
.archive-details > summary::-webkit-details-marker { display: none; }
.shop-details-note, .archive-details-note { min-width: 0; flex: 1; color: #b3abb8; font-size: 9px; font-weight: 400; }
.details-icon { color: var(--gold); font-size: 17px; transition: transform .2s; }
.shop-details[open] > summary .details-icon,
.more-details[open] > summary .details-icon,
.archive-details[open] > summary .details-icon { transform: rotate(45deg); }
.shop-details .shop-preview { margin-top: 22px; }
.about { padding-top: 58px; padding-bottom: 54px; }
.about-summary { display: flex; margin: 20px 0; align-items: end; justify-content: space-between; gap: 24px; }
.about-summary h2 { font-size: clamp(38px, 4vw, 50px); }
.about-summary > p { max-width: 300px; margin: 0 0 4px; color: #bcb4c0; font-size: 11px; }
.more-details { border-bottom: 1px solid var(--line); }
.more-details > summary { justify-content: space-between; }
.more-details .about-content { margin: 10px 0 25px; }
.more-details .about-stats { grid-column: 1 / -1; margin-top: 15px; }
.news { padding-top: 56px; padding-bottom: 56px; }
.section-topline { margin-bottom: 22px; }
.section-label-light { margin-bottom: 12px; }
.news h2 { font-size: clamp(38px, 4.5vw, 52px); }
.archive-details { border-color: #403a45; }
.archive-details > summary { min-height: 58px; }
.archive-cards .news-card { min-height: 250px; }
.archive-cards .news-photo { min-height: 250px; }
.news-note { margin-top: 15px; }
.closing { min-height: 340px; padding-top: 50px; padding-bottom: 50px; }

@media (min-width: 761px) {
  .hero { grid-template-columns: 1fr 1fr; }
  .news-card { grid-template-columns: .8fr 1.2fr; }
}

@media (max-width: 760px) {
  .hero { padding: 28px 0 35px; gap: 18px; }
  .hero h1 { margin: 14px 0 10px; font-size: clamp(42px, 10vw, 56px); }
  .hero-intro { max-width: 460px; margin-bottom: 15px; font-size: 12px; line-height: 1.65; }
  .hero-footnote { margin-top: 15px; }
  .hero-art { padding: 0 12px 9px 0; }
  .hero-image-wrap { height: clamp(180px, 56vw, 260px); }
  .art-caption { right: 12px; bottom: 12px; left: 12px; font-size: 10px; }
  .roundel { top: -12px; width: 68px; height: 68px; }
  .roundel svg { width: 64px; height: 64px; }
  .section-pad { padding-right: 22px; padding-left: 22px; }
  .tickets { padding-top: 38px; padding-bottom: 42px; }
  .ticket-heading { margin: 17px 0 16px; gap: 10px; }
  .ticket-heading h2 { font-size: 40px; }
  .ticket-intro { margin-bottom: 0; font-size: 11px; line-height: 1.65; }
  .availability { min-height: auto; padding: 12px; gap: 8px 10px; }
  .availability strong { font-size: 10px; }
  .availability p { font-size: 9px; }
  .availability > a { font-size: 9px; }
  .event-date { padding: 10px 12px; }
  .schedule-note { font-size: 8px; }
  .shop-details { margin-top: 17px; }
  .shop-details > summary { min-height: 48px; flex-wrap: wrap; gap: 4px 10px; }
  .shop-details > summary, .more-details > summary, .archive-details > summary { padding-right: 8px; }
  .shop-details-note { flex-basis: calc(100% - 27px); order: 2; }
  .shop-details > summary .details-icon { margin-left: auto; }
  .shop-details .shop-preview { margin-top: 18px; }
  .about { padding-top: 40px; padding-bottom: 38px; }
  .about-summary { margin: 17px 0; align-items: start; flex-direction: column; gap: 8px; }
  .about-summary h2 { font-size: 40px; }
  .about-summary > p { font-size: 10px; }
  .more-details .about-content { margin-top: 10px; }
  .more-details .about-stats { grid-template-columns: 1fr 1fr; }
  .news { padding-top: 40px; padding-bottom: 40px; }
  .section-topline { margin-bottom: 17px; }
  .section-topline { align-items: start; flex-direction: row; }
  .section-label-light { margin-bottom: 10px; }
  .news h2 { font-size: 38px; }
  .archive-details > summary { min-height: 54px; flex-wrap: wrap; gap: 3px 9px; }
  .archive-details-note { flex-basis: calc(100% - 27px); order: 2; }
  .archive-details > summary .details-icon { margin-left: auto; }
  .archive-cards .news-card { grid-template-columns: 1fr; }
  .archive-cards .news-photo { min-height: auto; aspect-ratio: 1.8; }
  .archive-cards .news-copy { padding: 20px; }
  .archive-cards .news-copy h3 { font-size: 25px; }
  .closing { min-height: 300px; padding: 42px 18px; }
}

@media (max-width: 380px) {
  .section-pad { padding-right: 16px; padding-left: 16px; }
  .hero { width: calc(100% - 32px); }
  .hero h1 { font-size: 41px; }
  .hero-actions { gap: 14px; }
  .hero-actions .button { padding: 0 14px; gap: 17px; }
  .ticket-heading h2, .about-summary h2 { font-size: 36px; }
  .shop-card { padding: 14px; }
}

body { font-size: 17px; }
.primary-nav { font-size: 15px; }
.nav-ticket { min-height: 48px; }
.eyebrow { font-size: 13px; }
.hero-intro { max-width: 490px; font-size: 18px; }
.hero-footnote { font-size: 13px; }
.button { min-height: 54px; font-size: 14px; }
.text-link, .dark-link, .light-link { font-size: 14px; }
.section-label { font-size: 12px; }
.section-label > span { font-size: 12px; }
.about-summary > p { max-width: 380px; font-size: 15px; }
.about-copy { max-width: 560px; font-size: 17px; }
.stat-caption { font-size: 13px; }
.stats-note { font-size: 14px; }
.stats-note em { font-size: 17px; }
.news-meta { gap: 16px; font-size: 11px; }
.news-copy h3 { max-width: 500px; font-size: clamp(30px, 2.7vw, 39px); }
.news-copy > p { max-width: 500px; font-size: 16px; line-height: 1.75; }
.news-copy > .news-repertoire { font-size: 14px; }
.news-note { font-size: 13px; }
.ticket-intro { max-width: 470px; font-size: 17px; line-height: 1.75; }
.availability { min-height: 110px; }
.availability strong { font-size: 16px; }
.availability p { font-size: 14px; }
.availability > a { font-size: 14px; }
.event-date { padding: 16px 20px; }
.event-date time { font-size: 13px; }
.event-date strong { font-size: 14px; }
.event-date > span { font-size: 12px; }
.schedule-note { font-size: 12px; }
.shop-details { margin-top: 30px; }
.shop-details > summary, .more-details > summary, .archive-details > summary {
  min-height: 62px;
  font-size: 15px;
}
.shop-details-note, .archive-details-note { font-size: 13px; }
.shop-copy > p { max-width: 390px; font-size: 15px; }
.preview-warning { max-width: 430px; font-size: 12px; }
.preview-warning strong { font-size: 13px; }
.shop-support { font-size: 12px; }
.product-overline { font-size: 11px; }
.product-details h4 { font-size: clamp(20px, 1.65vw, 25px); }
.product-date { gap: 9px; font-size: 13px; }
.secure-note { font-size: 11px; }
.demo-pill { font-size: 10px; }
.product-options > label:first-child { font-size: 13px; }
.product-options > label:first-child span { font-size: 10px; }
.product-options select, .customer-fields input, .shipping-fields input { min-height: 48px; font-size: 14px; }
.quantity-picker > span, .price-block > span { font-size: 12px; }
.stepper { height: 36px; }
.quantity-button { width: 34px; height: 34px; font-size: 20px; }
.stepper output { min-width: 28px; font-size: 13px; }
.price-block strong, .price-block output { font-size: 17px; font-weight: 700; }
.checkout-toggle { min-height: 54px; }
.checkout-heading .product-overline { font-size: 11px; }
.checkout-heading h4 { font-size: 25px; }
.checkout-total { font-size: 23px; }
.choice-group legend, .payment-group legend { font-size: 14px; }
.choice-card { min-height: 70px; padding: 11px; gap: 10px; }
.choice-icon { width: 34px; height: 34px; flex-basis: 34px; font-size: 18px; }
.choice-card strong { font-size: 12px; }
.choice-card small { font-size: 10px; }
.shipping-fields > label, .customer-fields > label { font-size: 12px; }
.payment-group label { font-size: 13px; }
.payment-wordmark { font-size: 15px; }
.payment-note { font-size: 12px; }
.terms { font-size: 11px; }
.submit-order { font-size: 13px; }
.privacy-note { font-size: 11px; }
.order-result > strong { font-size: 25px; }
.order-result > p { max-width: 370px; font-size: 14px; }
.ticket-benefits > div { font-size: 13px; }
.site-footer > p, .footer-links { font-size: 12px; }
.copyright { font-size: 11px; }

@media (max-width: 760px) {
  body { font-size: 16px; }
  .primary-nav { font-size: 16px; }
  .eyebrow { font-size: 12px; }
  .hero-intro { font-size: 15px; }
  .hero-footnote { font-size: 12px; }
  .button { font-size: 13px; }
  .text-link, .dark-link, .light-link { font-size: 13px; }
  .section-label { font-size: 12px; }
  .section-label > span { font-size: 11px; }
  .about-summary > p { font-size: 14px; }
  .about-copy { font-size: 15px; }
  .stat-caption { font-size: 12px; }
  .stats-note { font-size: 13px; }
  .news-meta { font-size: 12px; }
  .news-copy > p { font-size: 14px; }
  .news-copy > .news-repertoire { font-size: 13px; }
  .news-note { font-size: 12px; }
  .ticket-intro { font-size: 14px; }
  .availability strong { font-size: 13px; }
  .availability p, .availability > a { font-size: 12px; }
  .event-date time { font-size: 12px; }
  .event-date strong { font-size: 12px; }
  .event-date > span { font-size: 12px; }
  .schedule-note { font-size: 12px; }
  .shop-details > summary, .more-details > summary, .archive-details > summary { font-size: 14px; }
  .shop-details-note, .archive-details-note { font-size: 12px; }
  .shop-copy > p { font-size: 14px; }
  .preview-warning { font-size: 12px; }
  .preview-warning strong { font-size: 12px; }
  .shop-support { font-size: 12px; }
  .product-overline { font-size: 12px; }
  .product-details h4 { font-size: 20px; }
  .product-date { font-size: 12px; }
  .secure-note { font-size: 12px; }
  .product-options > label:first-child { font-size: 12px; }
  .product-options > label:first-child span { font-size: 12px; }
  .product-options select, .customer-fields input, .shipping-fields input { font-size: 14px; }
  .quantity-picker > span, .price-block > span { font-size: 12px; }
  .stepper { height: 34px; }
  .quantity-button { width: 32px; height: 32px; }
  .stepper output { font-size: 13px; }
  .price-block strong { font-size: 15px; }
  .choice-group legend, .payment-group legend { font-size: 13px; }
  .choice-card { min-height: 66px; padding: 8px; gap: 7px; }
  .choice-icon { width: 30px; height: 30px; flex-basis: 30px; font-size: 16px; }
  .choice-card strong { font-size: 12px; }
  .choice-card small { font-size: 12px; }
  .shipping-fields > label, .customer-fields > label { font-size: 12px; }
  .payment-group label { font-size: 12px; }
  .payment-wordmark { font-size: 14px; }
  .payment-note { font-size: 12px; }
  .terms { font-size: 12px; }
  .submit-order { font-size: 12px; }
  .privacy-note { font-size: 12px; }
  .order-result > strong { font-size: 23px; }
  .order-result > p { font-size: 12px; }
  .ticket-benefits > div { font-size: 12px; }
  .site-footer > p, .footer-links { font-size: 12px; }
  .copyright { font-size: 12px; }
}

:focus-visible {
  outline: 3px solid #f0c46d;
  outline-offset: 4px;
}

.menu-toggle, .quantity-button, .choice-card, .payment-group label, .terms, summary {
  touch-action: manipulation;
}

.quantity-button { min-width: 44px; min-height: 44px; }
.stepper { height: 46px; }
.stepper output { min-width: 32px; }
.section-label { color: #c9c1cb; }
.section-label-light { color: #c9c1cb; }
.news-meta span + span { color: #c9c1cb; }
.site-footer { color: #c9c1cb; }
.copyright { color: #aaa1b0; }
.quantity-button:disabled { color: #aaa1b0; }

@media (max-width: 760px) {
  .quantity-button { min-width: 44px; min-height: 44px; }
  .stepper { height: 46px; }
  .section-label, .section-label-light { color: #c9c1cb; }
}

@media (forced-colors: active) {
  .button, .nav-ticket, .shop-card, .availability, .choice-card, .event-schedule {
    border: 1px solid ButtonText;
  }
  :focus-visible { outline: 3px solid Highlight; }
}

.about-content { row-gap: 28px; }
.more-details .about-content { margin-bottom: 42px; }
.more-details .about-stats { padding-bottom: 16px; }

.palette-lab {
  padding: 76px 24px;
  color: var(--ink);
  background: var(--theme-section);
}
.palette-lab-inner { width: min(100%, 1232px); margin: 0 auto; }
.palette-lab .eyebrow { color: var(--gold); }
.palette-lab h2 { margin: 13px 0; font-size: clamp(36px, 4vw, 52px); }
.palette-lab h2 em { color: var(--gold); }
.palette-intro { max-width: 560px; margin-bottom: 27px; color: var(--theme-muted); }
.palette-options {
  display: grid;
  margin: 0;
  padding: 0;
  border: 0;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 14px;
}
.palette-option {
  display: flex;
  min-width: 0;
  padding: 13px;
  flex-direction: column;
  border: 1px solid var(--theme-border);
  background: var(--theme-card);
  cursor: pointer;
  transition: border-color .2s, transform .2s, background-color .2s;
}
.palette-option:hover { transform: translateY(-2px); }
.palette-option:has(input:checked) { border-color: var(--gold); background: var(--theme-raised); }
.palette-option input {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
}
.palette-option input:focus-visible + .palette-swatches { outline: 3px solid var(--gold); outline-offset: 3px; }
.palette-swatches { display: grid; height: 42px; margin-bottom: 12px; grid-template-columns: repeat(4, 1fr); }
.palette-swatches i { background: var(--swatch); }
.palette-name { font-weight: 700; }
.palette-description { color: var(--theme-muted); font-size: 13px; }
.palette-status { margin: 17px 0 0; color: var(--theme-muted); font-size: 14px; }

body[data-theme="stage"] {
  --paper: #19161e;
  --ink: #f3eff5;
  --white: #25212a;
  --gold: #f0c46d;
  --gold-dark: #f0c46d;
  --line: #3a3540;
  --on-gold: #211b22;
  --muted: #b6afbc;
  --theme-section: #121016;
  --theme-section-soft: #211c27;
  --theme-card: #211d25;
  --theme-card-border: #403a45;
  --theme-field: #19161e;
  --theme-border: #403a45;
  --theme-raised: #302a31;
  --theme-muted: #b3abb8;
  --theme-art-start: #413342;
  --theme-art-end: #211c29;
  --theme-glow: #443546;
}
body[data-theme="midnight"] {
  --paper: #111923;
  --ink: #f2f4f3;
  --white: #1c2836;
  --gold: #c4d6ff;
  --gold-dark: #a3b8e3;
  --line: #334153;
  --on-gold: #141d2a;
  --muted: #b9c3d1;
  --theme-section: #0d141d;
  --theme-section-soft: #172230;
  --theme-card: #192330;
  --theme-card-border: #344357;
  --theme-field: #151f2b;
  --theme-border: #344357;
  --theme-raised: #293447;
  --theme-muted: #b7c1d0;
  --theme-art-start: #293b53;
  --theme-art-end: #15202d;
  --theme-glow: #33465e;
}
body[data-theme="forest"] {
  --paper: #17211d;
  --ink: #f2f2eb;
  --white: #26352d;
  --gold: #f3a899;
  --gold-dark: #f3a899;
  --line: #394b40;
  --on-gold: #30201d;
  --muted: #bec9c0;
  --theme-section: #111a16;
  --theme-section-soft: #1d2b24;
  --theme-card: #1e2b25;
  --theme-card-border: #3b5146;
  --theme-field: #19251f;
  --theme-border: #3b5146;
  --theme-raised: #2a3a31;
  --theme-muted: #b8c8c0;
  --theme-art-start: #30473a;
  --theme-art-end: #18251e;
  --theme-glow: #385344;
}
body[data-theme="velvet"] {
  --paper: #21171d;
  --ink: #f6edf1;
  --white: #302129;
  --gold: #f0bbcc;
  --gold-dark: #e5a0bb;
  --line: #493541;
  --on-gold: #301b26;
  --muted: #c9b8c2;
  --theme-section: #170f15;
  --theme-section-soft: #2a1c25;
  --theme-card: #302129;
  --theme-card-border: #503946;
  --theme-field: #281c24;
  --theme-border: #503946;
  --theme-raised: #3d2935;
  --theme-muted: #c9b8c2;
  --theme-art-start: #533448;
  --theme-art-end: #2a1b25;
  --theme-glow: #5a374b;
}
body[data-theme="broadway"] {
  --paper: #171216;
  --ink: #f5eee6;
  --white: #302029;
  --gold: #e7b85c;
  --gold-dark: #d7a747;
  --line: #49333a;
  --on-gold: #241810;
  --muted: #c9b9bd;
  --theme-section: #100c10;
  --theme-section-soft: #26171e;
  --theme-card: #241a20;
  --theme-card-border: #49323a;
  --theme-field: #1c1419;
  --theme-border: #49323a;
  --theme-raised: #38252c;
  --theme-muted: #c8b7bc;
  --theme-art-start: #633b35;
  --theme-art-end: #21151b;
  --theme-glow: #6a3d3c;
}
body[data-theme="spotlight"] {
  --paper: #14141c;
  --ink: #f7f1e8;
  --white: #242331;
  --gold: #f5c45e;
  --gold-dark: #e2ad45;
  --line: #3a3848;
  --on-gold: #211b15;
  --muted: #c0bdca;
  --theme-section: #0e0e14;
  --theme-section-soft: #201e2b;
  --theme-card: #201f2a;
  --theme-card-border: #3d3a4b;
  --theme-field: #191821;
  --theme-border: #3d3a4b;
  --theme-raised: #302d3b;
  --theme-muted: #c1bdca;
  --theme-art-start: #665039;
  --theme-art-end: #1d1b27;
  --theme-glow: #4a3c4e;
}
body[data-theme="artdeco"] {
  --paper: #122323;
  --ink: #f3efe3;
  --white: #1d3331;
  --gold: #cfb477;
  --gold-dark: #cfb477;
  --line: #36504b;
  --on-gold: #202019;
  --muted: #bdc9c1;
  --theme-section: #0c1919;
  --theme-section-soft: #1a2e2c;
  --theme-card: #1b2b29;
  --theme-card-border: #39534d;
  --theme-field: #162725;
  --theme-border: #39534d;
  --theme-raised: #2a403b;
  --theme-muted: #bdc9c1;
  --theme-art-start: #3b5a50;
  --theme-art-end: #172725;
  --theme-glow: #36564d;
}
body[data-theme="neon"] {
  --paper: #111522;
  --ink: #f4f3fa;
  --white: #20243a;
  --gold: #ff58b2;
  --gold-dark: #f23c9a;
  --line: #38354d;
  --on-gold: #231322;
  --muted: #c0bfd0;
  --theme-section: #0c101b;
  --theme-section-soft: #1c2034;
  --theme-card: #1b2032;
  --theme-card-border: #383b54;
  --theme-field: #171b2a;
  --theme-border: #383b54;
  --theme-raised: #2a2b44;
  --theme-muted: #c0bfd0;
  --theme-art-start: #543052;
  --theme-art-end: #171b2c;
  --theme-glow: #422442;
}
body[data-theme="moulin"] {
  --paper: #241018;
  --ink: #f8eee5;
  --white: #351620;
  --gold: #e9b86f;
  --gold-dark: #e4435b;
  --line: #51303a;
  --on-gold: #2c1715;
  --muted: #d0b9b4;
  --theme-section: #190b12;
  --theme-section-soft: #2a111b;
  --theme-card: #30141e;
  --theme-card-border: #57313b;
  --theme-field: #29121b;
  --theme-border: #57313b;
  --theme-raised: #44202b;
  --theme-muted: #d0b9b4;
  --theme-art-start: #713044;
  --theme-art-end: #29121b;
  --theme-glow: #5b2639;
}
body[data-theme="fantasy"] {
  --paper: #171525;
  --ink: #f3efff;
  --white: #27243d;
  --gold: #bda7ff;
  --gold-dark: #aa91f2;
  --line: #3e3959;
  --on-gold: #221d34;
  --muted: #c5bfd9;
  --theme-section: #100f1c;
  --theme-section-soft: #211e34;
  --theme-card: #211f34;
  --theme-card-border: #433d61;
  --theme-field: #1b192b;
  --theme-border: #433d61;
  --theme-raised: #302b4a;
  --theme-muted: #c5bfd9;
  --theme-art-start: #453b70;
  --theme-art-end: #1c192e;
  --theme-glow: #41365b;
}

body { color: var(--ink); background: var(--paper); }
.news { color: var(--ink); background: var(--theme-section); }
.news-card, .shop-card { border-color: var(--theme-card-border); background: var(--theme-card); }
.product-art { background: linear-gradient(148deg, var(--theme-art-start), var(--theme-art-end) 72%); }
.product-options select, .customer-fields input, .shipping-fields input {
  border-color: var(--theme-border);
  color: var(--ink);
  background-color: var(--theme-field);
}
.choice-card, .stepper { border-color: var(--theme-border); }
.choice-card:has(input:checked) { border-color: var(--gold-dark); background: var(--theme-raised); }
.choice-icon { color: var(--gold); background: var(--theme-raised); }
.availability { border-color: var(--theme-border); background: var(--theme-card); }
.closing { background: radial-gradient(ellipse at 50% 112%, var(--theme-glow), var(--theme-section-soft) 41%, var(--theme-section) 73%); }
.site-footer { background: var(--theme-section); }
.primary-nav { color: var(--ink); }
.hero-intro, .about-copy, .ticket-intro, .shop-copy > p,
.hero-footnote, .stat-caption, .stats-note, .shop-label, .secure-note,
.product-date, .quantity-picker > span, .price-block > span,
.choice-card small, .shop-support, .privacy-note, .order-result > p,
.about-summary > p, .availability p, .palette-intro, .palette-description,
.palette-status { color: var(--theme-muted); }

@media (max-width: 760px) {
  .palette-lab { padding: 54px 22px; }
  .palette-options { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
}
@media (max-width: 380px) {
  .palette-lab { padding-right: 16px; padding-left: 16px; }
  .palette-option { padding: 10px; }
}

.public-event-catalog { display: grid; gap: 18px; }
.catalog-status { margin: 0; padding: 22px; color: var(--theme-muted); border: 1px solid var(--theme-border); background: var(--theme-card); font-size: 15px; }
.catalog-status-error { color: #efaaa8; }
.catalog-note { margin: 16px 0 0; color: var(--theme-muted); font-size: 14px; line-height: 1.75; }
.public-event-card { padding: clamp(24px, 4vw, 42px); border: 1px solid var(--theme-card-border); border-radius: 10px; background: var(--theme-card); }
.public-event-card.is-archive { opacity: .84; }
.public-event-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 20px; }
.public-event-kicker { margin: 0 0 12px; color: var(--gold); font-size: 12px; font-weight: 700; letter-spacing: .14em; }
.public-event-heading h3 { margin: 0; font-family: var(--serif); font-size: clamp(30px, 3.8vw, 42px); font-weight: 500; line-height: 1.2; }
.public-event-venue { margin: 10px 0 0; color: var(--theme-muted); font-size: 15px; }
.public-event-state, .public-past-label { padding: 7px 11px; color: var(--theme-muted); border: 1px solid var(--theme-border); border-radius: 4px; font-size: 12px; font-weight: 700; white-space: nowrap; }
.public-event-description { max-width: 820px; margin: 22px 0 0; color: var(--theme-muted); font-size: 16px; line-height: 1.8; }
.public-performance-list { display: grid; margin-top: 26px; gap: 14px; }
.public-performance { display: grid; grid-template-columns: minmax(240px, .7fr) minmax(0, 1.3fr); align-items: center; gap: 28px; padding: 22px 24px; border: 1px solid var(--theme-border); border-radius: 7px; }
.public-performance.is-past { opacity: .74; }
.public-performance-time { display: grid; align-content: start; gap: 6px; }
.public-performance-time time { color: var(--ink); font-size: 16px; font-weight: 700; line-height: 1.5; }
.public-performance-time > span { color: var(--theme-muted); font-size: 14px; }
.public-performance-tickets { min-width: 0; }
.public-ticket-note { margin: 0; color: var(--theme-muted); font-size: 14px; line-height: 1.7; }
.public-category-list { display: grid; margin: 0; padding: 0; list-style: none; }
.public-category-list li { display: flex; justify-content: space-between; gap: 18px; padding: 12px 0; border-top: 1px solid var(--theme-border); font-size: 15px; line-height: 1.5; }
.public-category-list li:first-child { border-top: 0; }
.public-category-list li > span:first-child { display: grid; min-width: 0; flex: 1; gap: 5px; }
.public-category-list strong { font-weight: 600; }
.public-category-list small { color: var(--theme-muted); font-size: 13px; }
.public-category-price { min-width: 115px; flex: 0 0 auto; color: var(--gold); font-size: 15px; text-align: right; white-space: nowrap; }
.public-category-price small { display: block; margin-top: 4px; font-size: 13px; }

@media (max-width: 600px) {
  .public-event-heading { flex-direction: column; }
  .public-event-card { padding: 22px 18px; }
  .public-event-description { font-size: 15px; }
  .public-performance { grid-template-columns: 1fr; gap: 12px; padding: 18px; }
  .public-performance-time time { font-size: 15px; }
  .public-category-list li { gap: 12px; font-size: 14px; }
  .public-category-price { min-width: 92px; font-size: 14px; }
  .public-category-list small, .public-category-price small { font-size: 13px; }
}

.seat-map-trigger { grid-column: 1 / -1; justify-self: start; }
.seat-map-root { grid-column: 1 / -1; display: grid; gap: 16px; margin-top: 4px; padding: clamp(16px, 3vw, 28px); border: 1px solid var(--theme-border); background: var(--theme-section); }
.seat-map-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; }
.seat-map-heading .eyebrow { margin: 0 0 5px; }
.seat-map-heading h4 { margin: 0; font-family: var(--serif); font-size: clamp(22px, 3vw, 30px); font-weight: 500; }
.seat-map-close { padding: 5px; color: var(--theme-muted); border: 0; background: transparent; cursor: pointer; }
.seat-map-screen { width: min(76%, 520px); margin: 4px auto 0; padding: 12px; color: var(--ink); background: linear-gradient(90deg, transparent, var(--gold), transparent); border-radius: 50% 50% 8px 8px / 100% 100% 8px 8px; font-size: 13px; font-weight: 700; letter-spacing: .16em; text-align: center; }
.seat-map-legend { display: flex; justify-content: center; flex-wrap: wrap; gap: 10px 20px; color: var(--theme-muted); font-size: 13px; }
.seat-map-legend span { display: inline-flex; align-items: center; gap: 6px; }
.seat-map-legend i { width: 10px; height: 10px; display: inline-block; border-radius: 50%; }
.seat-legend-free { background: #647d67; }
.seat-legend-selected { background: var(--gold); }
.seat-legend-unavailable { background: #48434c; }
.seat-plan-sections { display: flex; justify-content: center; flex-wrap: wrap; gap: 22px; }
.seat-plan-section { display: grid; min-width: 0; align-content: start; gap: 7px; padding: 12px; border: 1px solid var(--theme-border); background: var(--theme-card); }
.seat-plan-section h5 { margin: 0 0 4px; color: var(--gold); font-size: 14px; text-align: center; }
.seat-plan-row { display: grid; grid-template-columns: 58px minmax(0, 1fr); align-items: center; gap: 8px; }
.seat-row-label { color: var(--theme-muted); font-size: 13px; text-align: right; white-space: nowrap; }
.seat-row-buttons { display: flex; justify-content: center; flex-wrap: wrap; gap: 5px; }
.seat-button { min-width: 36px; min-height: 36px; padding: 4px; color: var(--ink); background: #425747; border: 1px solid #6f9576; border-radius: 7px 7px 4px 4px; font-size: 13px; cursor: pointer; }
.seat-button:hover { border-color: var(--gold); transform: translateY(-1px); }
.seat-button:focus-visible { outline: 2px solid var(--gold); outline-offset: 2px; }
.seat-button.is-selected { color: var(--on-gold); background: var(--gold); border-color: var(--gold); }
.seat-button:disabled { color: #b6b0ba; background: #45414a; border-color: #504b55; cursor: not-allowed; text-decoration: line-through; }
.seat-selection-summary { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 12px; padding-top: 14px; border-top: 1px solid var(--theme-border); }
.seat-selection-copy { display: grid; gap: 4px; }
.seat-selection-copy strong { color: var(--ink); font-size: 15px; }
.seat-selection-copy > span { max-width: 720px; color: var(--theme-muted); font-size: 13px; line-height: 1.6; }
.seat-selection-total { color: var(--gold); font-size: 18px; white-space: nowrap; }
.seat-checkout-trigger[disabled] { opacity: .48; cursor: not-allowed; }
.seat-checkout { padding: 18px; border: 1px solid var(--theme-border); background: var(--theme-card); }
.seat-checkout h5 { margin: 0 0 6px; font-family: var(--serif); font-size: 22px; font-weight: 500; }
.seat-checkout > p { color: var(--theme-muted); font-size: 14px; }
.seat-checkout form { display: grid; max-width: 460px; gap: 8px; }
.seat-checkout label { margin-top: 4px; color: var(--ink); font-size: 14px; font-weight: 600; }
.seat-checkout input { width: 100%; padding: 10px 12px; color: var(--ink); background: var(--theme-field); border: 1px solid var(--theme-border); border-radius: 5px; }
.seat-checkout input:focus-visible { outline: 2px solid var(--gold); outline-offset: 2px; }
.seat-checkout-note, .seat-order-result, .seat-map-status { margin: 5px 0 0; color: var(--theme-muted); font-size: 13px; line-height: 1.65; }
.seat-order-result:not(:empty) { padding: 10px; border: 1px solid var(--theme-border); }
.seat-checkout button { justify-self: start; }
@media (max-width: 600px) {
  .seat-map-trigger { justify-self: stretch; }
  .seat-map-root { padding: 14px 10px; }
  .seat-map-screen { width: 90%; }
  .seat-plan-sections { justify-content: stretch; }
  .seat-plan-section { width: 100%; padding: 9px 5px; }
  .seat-plan-row { grid-template-columns: 44px minmax(0, 1fr); gap: 4px; }
  .seat-row-buttons { gap: 3px; }
  .seat-button { min-width: 30px; min-height: 30px; }
  .seat-selection-summary { align-items: flex-start; }
  .seat-checkout-trigger { width: 100%; }
}

.club-content { display: grid; margin-top: 30px; gap: 20px; }
.club-story, .production-story { padding: clamp(20px, 3.5vw, 36px); border: 1px solid var(--theme-card-border); background: var(--theme-card); }
.club-story h3, .production-story h3 { margin: 0 0 14px; font-family: var(--serif); font-size: clamp(25px, 3vw, 34px); font-weight: 500; }
.club-story p:not(.eyebrow), .site-page-body p, .production-story-copy > p:not(.public-event-kicker) { color: var(--theme-muted); font-size: 15px; line-height: 1.8; }
.club-story .eyebrow { margin: 0 0 9px; }
.club-details { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.site-page-details { border: 1px solid var(--theme-border); background: var(--theme-card); }
.site-page-details > summary { display: flex; min-height: 58px; align-items: center; justify-content: space-between; gap: 12px; padding: 15px 18px; color: var(--ink); font-size: 15px; font-weight: 600; cursor: pointer; list-style: none; }
.site-page-details > summary::-webkit-details-marker { display: none; }
.site-page-details[open] > summary { border-bottom: 1px solid var(--theme-border); }
.site-page-details[open] > summary span { transform: rotate(45deg); }
.site-page-body { padding: 20px 22px; }
.site-page-body p { margin: 0 0 12px; }
.site-content-image { display: block; width: 100%; max-height: 620px; margin: 16px 0; object-fit: cover; }
.site-content-links { display: flex; flex-wrap: wrap; gap: 10px 18px; margin-top: 14px; }
.site-content-links a { color: var(--gold); font-size: 14px; }
.site-content-videos { display: flex; flex-wrap: wrap; gap: 9px; margin-top: 14px; }
.site-video-link { display: inline-flex; min-height: 44px; padding: 0 15px; align-items: center; gap: 9px; border: 1px solid var(--theme-border); color: var(--ink); font-size: 14px; font-weight: 600; }
.site-video-link:hover { border-color: var(--gold); color: var(--gold); }
.site-news-feed { display: grid; gap: 18px; margin-bottom: 24px; }
.site-news-card .news-photo { min-height: 270px; }
.production-archive { background: var(--theme-section); }
.production-archive .section-label { color: var(--gold); }
.site-production-archive { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.production-gallery { grid-column: 1 / -1; overflow: hidden; border: 1px solid var(--theme-card-border); background: var(--theme-card); }
.production-gallery-heading { padding: clamp(18px, 3vw, 28px) clamp(18px, 3vw, 28px) 8px; }
.production-gallery-heading .public-event-kicker { margin: 0 0 8px; }
.production-gallery-heading h3 { margin: 0; font-family: var(--serif); font-size: clamp(24px, 3vw, 34px); font-weight: 500; }
.production-gallery-images { display: grid; padding: 12px clamp(18px, 3vw, 28px) clamp(18px, 3vw, 28px); grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 9px; }
.production-gallery-images .site-content-image { width: 100%; height: 100%; max-height: 240px; margin: 0; aspect-ratio: 3 / 2; object-fit: cover; }
.production-story { min-width: 0; padding: 0; overflow: hidden; }
.production-story.has-artwork { display: grid; grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); }
.production-story > .site-content-image { width: 100%; height: 100%; max-height: none; min-height: 260px; margin: 0; object-fit: cover; }
.production-story-copy { min-width: 0; padding: clamp(18px, 3vw, 28px); }
.production-story-copy > .public-event-kicker { margin: 0 0 8px; }
.production-story-copy > p:not(.public-event-kicker) { font-size: 15px; }
.production-story .site-page-details { margin-top: 14px; }
.production-story .site-page-details > summary { padding: 13px 15px; font-size: 14px; }
.legal-content { display: grid; width: min(100%, 980px); gap: 12px; margin: 18px auto 0; }
.legal-content .site-page-body p { overflow-wrap: anywhere; font-size: 14px; }

@media (max-width: 760px) {
  .club-details, .site-production-archive { grid-template-columns: 1fr; }
  .legal-content .site-page-body { padding: 16px; }
  .production-gallery-images { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .production-story.has-artwork { grid-template-columns: 1fr; }
  .production-story > .site-content-image { min-height: auto; max-height: 360px; aspect-ratio: 1.6; }
  .site-news-card .news-photo { min-height: auto; aspect-ratio: 1.7; }
}

@media (max-width: 420px) {
  .catalog-note { font-size: 14px; }
  .public-event-card { padding: 20px 16px; }
  .public-performance { padding: 16px 14px; }
  .public-category-list li { align-items: flex-start; gap: 8px; }
  .public-category-price { min-width: 84px; }
  .site-page-body { padding: 16px; }
}

@media (max-width: 760px) {
  section.section-pad { padding-right: 22px; padding-left: 22px; }
  .public-event-card, .public-performance, .public-performance-tickets { min-width: 0; }
  .public-performance { grid-template-columns: minmax(0, 1fr); }
  .public-category-list li { display: grid; grid-template-columns: minmax(0, 1fr) auto; }
  .public-category-list li > span:first-child,
  .public-category-list strong,
  .public-category-list small { overflow-wrap: anywhere; }
}

@media (max-width: 420px) {
  section.section-pad { padding-right: 16px; padding-left: 16px; }
}
