:root {
	--ink: #071c35;
	--blue: #0c4f9c;
	--ice: #eaf5fc;
	--orange: #f36b32;
	--white: #fff;
	--line: rgba(7, 28, 53, .15);
	--display: 'Barlow Condensed', Impact, sans-serif;
	--body: 'DM Sans', sans-serif;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; color: var(--ink); background: #f8fbfd; font-family: var(--body); }
a { color: inherit; text-decoration: none; }
.site-header { height: 76px; padding: 0 5vw; display: flex; align-items: center; justify-content: space-between; background: var(--white); border-bottom: 1px solid var(--line); position: relative; z-index: 2; }
.brand { display: flex; align-items: center; gap: 11px; font-weight: 700; letter-spacing: -.03em; }
.brand-logo { display: block; width: 127px; height: 60px; object-fit: contain; object-position: left center; }
.main-nav { display: flex; gap: 31px; font-size: 13px; font-weight: 600; }
.main-nav a, .home-link, .text-link { transition: color .2s ease; }
.main-nav a:hover, .home-link:hover, .text-link:hover { color: var(--orange); }
.home-link { color: var(--blue); font-size: 13px; font-weight: 700; }
.hero { min-height: 680px; padding: 70px 10vw 80px; display: grid; grid-template-columns: minmax(280px, .75fr) minmax(320px, 1fr); align-items: center; gap: 7vw; overflow: hidden; background: var(--ink); color: var(--white); position: relative; }
.hero:before { content: ''; position: absolute; inset: 0; opacity: .18; background-image: radial-gradient(#9cd8fa 1px, transparent 1px); background-size: 19px 19px; mask-image: linear-gradient(110deg, transparent, #000 50%, transparent); }
.hero-copy, .poster-frame { position: relative; z-index: 1; }
.hero-emblem { display: block; width: 108px; height: 108px; margin: 0 0 25px; object-fit: contain; filter: invert(1); opacity: .95; }
.eyebrow, .card-kicker { margin: 0 0 15px; color: var(--orange); text-transform: uppercase; letter-spacing: .16em; font-size: 11px; font-weight: 700; }
h1, h2, h3, .hero-title { font-family: var(--display); text-transform: uppercase; }
h1 { margin: 0; font-size: clamp(68px, 7.4vw, 122px); line-height: .78; letter-spacing: -.02em; }
h1 em { color: #6fc6ef; font-style: normal; }
.hero-title { margin: 15px 0 22px; color: #6fc6ef; font-size: clamp(29px, 4vw, 56px); line-height: 1; font-weight: 700; letter-spacing: .02em; }
.hero-intro { max-width: 360px; margin: 0 0 30px; color: #c5d5e4; font-size: 16px; line-height: 1.6; }
.button { display: inline-flex; align-items: center; gap: 19px; padding: 14px 18px; font-size: 13px; font-weight: 700; }
.button-orange { color: var(--white); background: var(--orange); }
.button-orange:hover { background: #ff8757; }
.poster-frame { max-width: 510px; width: 100%; justify-self: center; padding: 13px; background: var(--white); box-shadow: 20px 22px 0 rgba(64, 165, 218, .25); transform: rotate(2deg); }
.poster-frame img { display: block; width: 100%; height: auto; }
.curtain-overlay { position: absolute; inset: 13px; overflow: hidden; pointer-events: none; }
.curtain { position: absolute; top: 0; bottom: 0; width: 58%; background: linear-gradient(90deg, #450009 0%, #a30e1d 16%, #6c0712 34%, #c51b2c 49%, #69050e 66%, #990b18 84%, #3c0007 100%); box-shadow: inset 0 0 18px rgba(20, 0, 3, .6), 0 0 16px rgba(20, 0, 3, .45); transition: transform 1.15s cubic-bezier(.77, 0, .18, 1); }
.curtain:after { content: ''; position: absolute; inset: 0; opacity: .3; background: repeating-linear-gradient(90deg, transparent 0 9px, rgba(255, 119, 119, .24) 10px 12px, transparent 13px 22px); }
.curtain-left { left: 0; transform-origin: left center; }.curtain-right { right: 0; transform-origin: right center; }
.curtain-pull { position: absolute; top: 50%; left: 50%; padding: 7px 10px; color: #ffe6a8; border: 1px solid rgba(255, 230, 168, .75); border-radius: 50%; font-family: var(--display); font-size: 13px; text-transform: uppercase; transform: translate(-50%, -50%); transition: opacity .25s ease; }
.poster-frame:hover .curtain-left, .poster-frame.is-open .curtain-left { transform: translateX(-98%); }.poster-frame:hover .curtain-right, .poster-frame.is-open .curtain-right { transform: translateX(98%); }.poster-frame:hover .curtain-pull, .poster-frame.is-open .curtain-pull { opacity: 0; }
.poster-label { position: absolute; top: -23px; right: 11px; padding: 8px 12px; color: var(--ink); background: #b9e643; font-family: var(--display); font-size: 15px; font-weight: 700; text-transform: uppercase; transform: rotate(-4deg); }
.facts { padding: 31px 10vw; display: grid; grid-template-columns: repeat(3, 1fr); gap: 35px; background: var(--white); border-bottom: 1px solid var(--line); }
.fact { display: flex; align-items: center; gap: 14px; border-right: 1px solid var(--line); }.fact:last-child { border: 0; }
.fact-icon { width: 40px; height: 40px; display: grid; place-items: center; flex: 0 0 auto; color: var(--blue); border: 2px solid var(--blue); border-radius: 50%; font-size: 21px; }
.fact small { display: block; margin-bottom: 3px; color: #6b7d8f; font-size: 10px; text-transform: uppercase; letter-spacing: .15em; }.fact strong { font-size: 14px; }
.details-section, .food-section, .coming-soon, .sponsor-section { padding: 105px 10vw; }
.details-section { background: var(--ice); }.section-heading { margin-bottom: 42px; } h2 { margin: 0; font-size: clamp(48px, 5.6vw, 82px); line-height: .83; letter-spacing: -.015em; } h2 span { color: var(--blue); }
.details-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 17px; }.info-card { min-height: 305px; padding: 28px; position: relative; }.info-card h3 { margin: 0 0 29px; font-size: 40px; line-height: .87; }.ticket-card { background: var(--orange); color: var(--white); }.ticket-card .card-kicker { color: #ffe0d2; }.price-row { display: flex; justify-content: space-between; padding: 14px 0; border-top: 1px solid rgba(255,255,255,.35); font-size: 14px; }.price-row strong { font-size: 18px; }.card-note { margin-top: 20px; font-size: 12px; opacity: .8; }.schedule-card { background: var(--blue); color: var(--white); }.schedule-card .card-kicker { color: #a8def6; }.show-time { display: flex; align-items: baseline; gap: 13px; padding: 10px 0; border-top: 1px solid rgba(255,255,255,.3); }.show-time strong { font-family: var(--display); font-size: 31px; }.show-time span { color: #d2e8f5; font-size: 12px; }.bar-card { background: #b9e643; }.bar-card .card-kicker { color: #395200; }.bar-card p:not(.card-kicker) { max-width: 220px; font-size: 15px; line-height: 1.55; }.spark { position: absolute; right: 27px; bottom: 21px; color: #557900; font-size: 47px; }
.food-section { display: grid; grid-template-columns: 1fr 1fr; gap: 70px; align-items: end; background: var(--white); }.food-section > p { max-width: 430px; margin: 0; font-size: 17px; line-height: 1.65; }.food-section .text-link { grid-column: 2; margin-top: -50px; color: var(--orange); font-size: 13px; font-weight: 700; }
.coming-soon { display: grid; grid-template-columns: 1fr 1fr auto; gap: 40px; align-items: center; background: #d9edf7; }.coming-soon > p { margin: 0; max-width: 410px; color: #486277; line-height: 1.6; }.coming-badge { padding: 10px 13px; color: var(--blue); border: 1px solid var(--blue); font-size: 11px; font-weight: 700; text-transform: uppercase; white-space: nowrap; }
.sponsor-section { display: flex; justify-content: space-between; align-items: center; gap: 50px; background: var(--white); }.sponsor-copy { color: #607588; }.sponsor-logo { width: 155px; height: 155px; display: grid; place-items: center; border: 1px solid var(--line); }.sponsor-logo img { width: 125px; height: auto; }.site-footer { padding: 25px 10vw; display: flex; justify-content: space-between; color: #abc1d2; background: var(--ink); font-size: 11px; }.site-footer a { color: #75c6ec; }
@media (max-width: 760px) { .site-header { height: auto; min-height: 70px; padding: 16px 6vw; flex-wrap: wrap; gap: 16px; }.brand-logo { width: 125px; }.main-nav { order: 3; width: 100%; justify-content: space-between; gap: 8px; }.home-link { font-size: 11px; }.hero { padding: 64px 7vw 80px; grid-template-columns: minmax(0, 1fr); justify-items: center; gap: 60px; }.hero-copy, .poster-frame { width: 100%; justify-self: center; }.hero-copy { display: flex; flex-direction: column; align-items: center; text-align: center; }.hero-emblem { margin-left: auto; margin-right: auto; }.hero-intro { margin-left: auto; margin-right: auto; }.poster-frame { width: min(100%, 420px); margin-left: auto; margin-right: auto; transform: translateX(-10px) rotate(1deg); }.facts { padding: 25px 7vw; grid-template-columns: 1fr; gap: 18px; }.fact { border-right: 0; border-bottom: 1px solid var(--line); padding-bottom: 17px; }.fact:last-child { padding-bottom: 0; }.details-section, .food-section, .coming-soon, .sponsor-section { padding: 70px 7vw; }.details-grid { grid-template-columns: 1fr; }.info-card { min-height: 245px; }.food-section, .coming-soon { grid-template-columns: 1fr; gap: 28px; }.food-section .text-link { grid-column: auto; margin-top: -10px; }.coming-badge { justify-self: start; }.sponsor-section { display: grid; }.sponsor-logo { justify-self: start; }.site-footer { padding: 22px 7vw; flex-direction: column; gap: 8px; } }
