/* Unpublished BPM type experiment; remove this stylesheet to restore the spacing-review design. */
@font-face { font-family: "BPM Oxanium"; src: url("fonts/oxanium-600.ttf") format("truetype"); font-style: normal; font-weight: 600; font-display: swap; }
@font-face { font-family: "BPM Oxanium"; src: url("fonts/oxanium-800.ttf") format("truetype"); font-style: normal; font-weight: 800; font-display: swap; }
@font-face { font-family: "BPM Manrope"; src: url("fonts/manrope-400.ttf") format("truetype"); font-style: normal; font-weight: 400; font-display: swap; }
@font-face { font-family: "BPM Manrope"; src: url("fonts/manrope-700.ttf") format("truetype"); font-style: normal; font-weight: 700; font-display: swap; }
:root { --font-display: "BPM Oxanium", "Arial Rounded MT Bold", Arial, sans-serif; --font-support: "BPM Manrope", "Helvetica Neue", Arial, sans-serif; }
body { font-family: var(--font-support); font-synthesis: none; }
.hero h1, .archive-heading h2, .upcoming h2 { font-family: var(--font-display); font-weight: 800; letter-spacing: -.045em; line-height: .98; }
.hero h1 { font-size: clamp(3rem, 8.4vw, 7rem); }
.hero h1 em, .archive-heading h2 em { -webkit-text-stroke-width: 2px; }
.archive-heading h2 { font-size: clamp(3rem, 6.7vw, 5.7rem); }
.partners h3 { font-family: var(--font-display); font-weight: 800; font-size: clamp(1.8rem, 3.1vw, 2.6rem); letter-spacing: -.035em; line-height: 1.08; text-align: center; }
nav a, .button, .kicker, .section-label p, .status, .ticket-section h4 { font-family: var(--font-display); font-weight: 600; letter-spacing: .07em; }
nav a { font-size: .75rem; }
.button { font-size: .78rem; letter-spacing: .06em; }
.ticket-heading h3 { font-family: var(--font-display); font-weight: 600; font-size: clamp(1.35rem, 2.5vw, 1.85rem); line-height: 1.15; letter-spacing: -.025em; }
.hero-copy, .ticket-heading p, .ticket-note, .archive-heading > p, footer { font-family: var(--font-support); font-weight: 400; }
.hero-festival, .event-details time, .event-details address, .ticket-outlet strong, .outlet-locations strong, .countdown-clock strong { font-weight: 700; }
.countdown-clock strong { letter-spacing: -.035em; }
@media (max-width: 760px) {
 .hero h1 { font-size: clamp(2rem, 12.6vw, 5rem); }
 .archive-heading h2 { font-size: clamp(2.6rem, 12.8vw, 4.5rem); }
 nav { gap: 14px; }
 nav a { font-size: .8rem; letter-spacing: .02em; }
 .button { font-size: .875rem; letter-spacing: .025em; }
 .partners h3 { font-size: clamp(1.6rem, 7vw, 2.2rem); max-width: 310px; }
 .kicker { letter-spacing: .09em; }
}
@media (max-width: 360px) {
 nav { gap: 10px; }
 nav a { font-size: .7rem; }
 nav .nav-tickets { padding: 10px; }
 .button { font-size: .8rem; }
 .partners h3 { font-size: 1.55rem; }
}

/* Text visibility audit: protect ink edges and keep the complete hero phrase together. */
.hero h1 { line-height: 1.08; }
.hero h1 em {
 display: inline-block;
 white-space: nowrap;
 color: rgba(5, 7, 8, .88);
 -webkit-text-stroke: 2.5px #ff444d;
}
.hero h1, .archive-heading h2, .partners h3 { overflow: visible; }
.button { padding-top: 12px; padding-bottom: 12px; line-height: 1.4; text-align: center; }
.site-header { flex-wrap: wrap; gap: 12px; }
nav { flex-wrap: wrap; }
.countdown-clock { grid-template-columns: repeat(auto-fit, minmax(min(100%, 3.5em), 1fr)); }
@media (max-width: 760px) {
 .hero h1 { font-size: min(12.6vw, 5rem); }
 .hero h1 em { -webkit-text-stroke-width: 2px; }
 .archive-heading h2 { font-size: min(12.8vw, 4.5rem); }
}

html { scroll-padding-top: max(100px, 7rem); }

/* Container-relative card labels also fit when supporting text is enlarged. */
.event-card { container-type: inline-size; }
.event-meta strong { font-size: min(clamp(2rem, 4vw, 4.2rem), 10cqw); line-height: 1.15; }
.hero { padding-top: max(170px, 7rem); }
@media (max-width: 760px) { .hero { padding-top: max(148px, 7rem); } }

/* Clip decorative bars without creating a nested scroll container for ticket anchors. */
.upcoming-card { overflow: clip; }
