@font-face {
  font-family: "Open Sans Display";
  src: url("assets/open-sans-extrabold.woff") format("woff");
  font-style: normal;
  font-weight: 800;
  font-display: swap;
}

:root {
  color-scheme: dark;
  --background: #0b0809;
  --cream: #faf4ee;
  --muted: #c4b4b4;
  --accent: #ff5265;
  --line: #352629;
  --display: "Open Sans Display", system-ui, sans-serif;
  --mono: ui-monospace, "Cascadia Mono", "Liberation Mono", monospace;
}

*, *::before, *::after { box-sizing: border-box; }
body { margin: 0; background: var(--background); color: var(--cream); font: 16px/1.5 system-ui, sans-serif; }
h1, h2, p { margin: 0; }
a { color: inherit; text-decoration: none; }
a, button { -webkit-tap-highlight-color: transparent; }
a:focus-visible, button:focus-visible { outline: 2px solid var(--cream); outline-offset: 5px; }
img { display: block; max-width: 100%; height: auto; }
[hidden] { display: none !important; }
.wrap { width: min(calc(100% - 100px), 1240px); margin-inline: auto; }
.symbols { position: absolute; width: 0; height: 0; overflow: hidden; }
.icon { flex: none; width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
.skip { position: absolute; top: 10px; left: 10px; z-index: 2; padding: 12px; background: var(--cream); color: var(--background); transform: translateY(-160%); }
.skip:focus { transform: none; }

.header { border-bottom: 1px solid var(--line); }
.header-inner, .header nav { display: flex; align-items: center; justify-content: space-between; }
.header-inner { min-height: 81px; }
.header nav { gap: 29px; }
.brand { display: inline-flex; align-items: center; min-height: 44px; width: 98px; }
.sister-link, .text-link { display: inline-flex; align-items: center; gap: 7px; min-height: 44px; color: var(--muted); font-size: 13px; font-weight: 650; }
.sister-link:hover, .text-link:hover { color: var(--cream); }
.sister-link .icon, .text-link .icon { width: 15px; height: 15px; }
.button { display: inline-flex; align-items: center; justify-content: center; gap: 14px; min-height: 51px; padding: 0 19px; border: 1px solid transparent; border-radius: 5px; font-size: 14px; font-weight: 800; white-space: nowrap; transition: background-color .18s, border-color .18s; }
.button-small { min-height: 44px; padding-inline: 14px; gap: 9px; font-size: 13px; }
.button-outline { border-color: #604047; }
.button-outline:hover { background: #2e1419; border-color: var(--accent); }
.button-primary { background: var(--accent); color: #16090b; }
.button-primary:hover { background: #ff7c8b; }

.hero { display: grid; grid-template-columns: 1fr 1.1fr; align-items: stretch; gap: 38px; padding-block: 49px; }
.hero-content { align-self: center; position: relative; z-index: 1; padding-block: 14px; }
.eyebrow, .art-tag, .art-date { font: 700 11px/1.4 var(--mono); letter-spacing: .18em; text-transform: uppercase; }
.eyebrow { display: flex; align-items: center; gap: 11px; color: #ff9ea9; }
.live-dot { flex: none; width: 7px; height: 7px; border-radius: 50%; background: var(--accent); box-shadow: 0 0 12px #ff52659c; }
.hero h1 { margin-block: 15px 21px; font: 800 clamp(65px, 8.15vw, 127px)/.88 var(--display); letter-spacing: -.081em; }
.hero h1 span { color: var(--accent); }
.hero-details { display: grid; gap: 4px; color: var(--muted); font-size: 16px; }
.hero-details time { color: var(--cream); font-size: clamp(17px, 2vw, 21px); font-weight: 750; }
.separator { display: inline-block; width: 4px; height: 4px; margin-inline: 7px; vertical-align: middle; border-radius: 50%; background: var(--accent); }
.hero-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 21px; margin-top: 25px; }

.hero-art { position: relative; isolation: isolate; display: grid; place-items: center; min-height: 440px; overflow: hidden; border: 1px solid #3c272a; border-radius: 7px; background: #060304; }
.hero-art::before { content: ""; position: absolute; z-index: -1; inset: 16px; border: 1px solid #281b1e; border-radius: 3px; }
.hero-art::after { content: ""; position: absolute; z-index: -1; inset: 0; background: radial-gradient(ellipse at 50% 48%, #67111c 0%, #1e080d 40%, transparent 76%); opacity: .52; }
.ornament { width: min(96%, 650px); mix-blend-mode: lighten; transform: translateY(-1%); }
.art-tag, .art-date { position: absolute; z-index: 1; left: 30px; color: #bfa6a9; }
.art-tag { top: 29px; }
.art-date { bottom: 28px; }

.countdown { border-block: 1px solid #54272e; background: #1d0e12; }
.countdown-inner { display: grid; grid-template-columns: 1fr minmax(360px, 1.1fr); align-items: center; min-height: 108px; gap: 38px; padding-block: 16px; }
.countdown-label { display: flex; align-items: center; gap: 14px; }
.countdown-label h2 { font: 750 16px/1.35 system-ui, sans-serif; }
.countdown-label p { margin-top: 3px; color: var(--muted); font-size: 13px; }
.clock { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); text-align: center; }
.clock > div { display: grid; gap: 3px; color: var(--muted); font: 650 10px/1.4 var(--mono); text-transform: uppercase; letter-spacing: .09em; }
.clock > div + div { border-left: 1px solid #532f37; }
.clock span { display: block; color: var(--cream); font: 800 clamp(25px, 3.1vw, 40px)/1 var(--display); font-variant-numeric: tabular-nums; letter-spacing: -.045em; }
.clock-status { color: #ff9ea9; font-weight: 750; text-align: center; }

.ticket-section { background: radial-gradient(ellipse at 95% 110%, #2f1018, transparent 56%), var(--background); }
.ticket-inner { display: flex; justify-content: space-between; align-items: center; gap: 24px; padding-block: 52px; }
.ticket-inner h2 { margin-top: 8px; font: 800 clamp(38px, 5.1vw, 63px)/1.05 var(--display); letter-spacing: -.065em; }
.collaboration { max-width: 51ch; margin-top: 13px; font-size: 16px; }
.venue { margin-top: 9px; color: var(--muted); font-size: 14px; }

.footer { border-top: 1px solid var(--line); }
.footer-inner, .footer-brand, .footer-links { display: flex; align-items: center; gap: 21px; }
.footer-inner { justify-content: space-between; min-height: 94px; padding-block: 13px; }
.footer .brand { width: 75px; }
.footer p { color: var(--muted); font-size: 12px; }
.footer .sister-link { gap: 6px; }
.footer .sister-link strong { display: inline-flex; align-items: center; gap: 5px; color: var(--cream); }
.social, .icon-button { display: inline-grid; place-items: center; width: 44px; height: 44px; flex: none; border: 1px solid #604047; border-radius: 5px; background: #180d10; color: var(--cream); }
.social:hover, .icon-button:hover { background: #2e1419; border-color: var(--accent); }

.dialog { width: min(94%, 550px); max-height: calc(100dvh - 32px); padding: 0; overflow: auto; border: 1px solid #604047; border-radius: 10px; background: #190f12; color: var(--cream); }
.dialog::backdrop { background: #050304d9; }
body:has(dialog[open]) { overflow: hidden; }
.dialog-body { position: relative; display: grid; justify-items: start; gap: 14px; padding: 25px; }
.dialog h2 { max-width: 92%; font: 800 clamp(24px, 5vw, 35px)/1.1 var(--display); letter-spacing: -.05em; }
.dialog p:not(.eyebrow) { color: var(--muted); }
.dialog form { position: absolute; top: 14px; right: 14px; }
.icon-button { cursor: pointer; }
#checkout { width: 100%; }
#checkout iframe { display: block; width: 100%; min-height: 480px; border: 1px solid #604047; border-radius: 7px; background: white; }
.flyer-dialog { width: fit-content; max-width: 94vw; }
.flyer-dialog .dialog-body { padding: 15px; }
.flyer-dialog h2 { padding-right: 48px; }
.flyer-dialog img { width: auto; max-width: 100%; max-height: calc(100dvh - 130px); border-radius: 3px; }

@media (max-width: 900px) {
  .wrap { width: calc(100% - 64px); }
  .hero { gap: 22px; }
  .hero-art { min-height: 380px; }
  .countdown-inner { gap: 22px; }
}

@media (max-width: 700px) {
  .wrap { width: calc(100% - 38px); }
  .header-inner { min-height: 67px; }
  .header nav { gap: 12px; }
  .header .brand { width: 78px; }
  .header .sister-link { gap: 3px; }
  .button-small { padding-inline: 10px; gap: 6px; }
  .button-small .icon { width: 14px; height: 14px; }
  .hero { grid-template-columns: 1fr; gap: 24px; padding-block: 25px; }
  .hero-content { padding-block: 6px 0; }
  .hero h1 { font-size: clamp(57px, 15.3vw, 104px); }
  .hero-art { min-height: 0; aspect-ratio: 1.42; }
  .hero-art::before { inset: 10px; }
  .art-tag, .art-date { left: 19px; font-size: 9px; }
  .art-tag { top: 17px; }
  .art-date { bottom: 17px; }
  .ornament { width: 89%; }
  .countdown-inner { grid-template-columns: 1fr; gap: 14px; padding-block: 16px 19px; }
  .clock > div { font-size: 9px; }
  .clock span { font-size: 28px; }
  .ticket-inner { align-items: flex-start; flex-direction: column; padding-block: 36px; gap: 18px; }
  .footer-inner { flex-wrap: wrap; gap: 3px 12px; }
  .footer-brand, .footer-links { gap: 10px; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { transition: none !important; }
}
