/* Real equipment, real parties. Reuse the site's logo, lights and photo viewer. */
.site-nav a[aria-current="page"] { color: #ffc16a; }
.party-hero.hero { min-height: 0; padding: 52px clamp(22px,6vw,94px) 64px; text-align: left; }
.party-hero__layout { position: relative; z-index: 4; display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1fr); align-items: center; gap: clamp(30px,5vw,76px); width: min(1280px,100%); }
.party-hero__copy { min-width: 0; }
.party-hero .hero-stage { max-width: 420px; margin-bottom: 26px; }
.party-hero .hero-logo-frame { width: 100%; }
.party-hero .hero-tagline { display: block; width: fit-content; margin: 20px auto 36px; font-size: clamp(40px,4.5vw,63px); text-align: center; }
.party-hero .hero-tagline::after { height: 12px; bottom: -15px; border-top-width: 3px; }
.party-hero .party-title { display: block; margin: 0 0 21px; color: #fff; font: 900 clamp(58px,6.7vw,92px)/.88 var(--display); letter-spacing: -.015em; text-transform: uppercase; text-shadow: none; transform: none; animation: none; }
.party-hero .party-title::after { content: none; }
.party-hero .party-title em { color: #ffb74f; font-style: normal; text-shadow: 0 0 22px #b551323b; }
.party-deck { max-width: 540px; color: #f0e1f5; font: 500 clamp(22px,2.2vw,27px)/1.35 var(--body); }
.party-hero .hero-actions { justify-content: flex-start; margin-top: 25px; }
.party-hero .stage-toggle { margin: 24px 0 7px; }
.party-hero .stage-sound { margin: 8px 0 0; text-align: left; }
.party-hero .stage-sound__message { max-width: 420px; }
.party-photo { --accent: #cf77ff; margin: 0; min-width: 0; }
.party-photo .venue-photo { width: 100%; border: 1px solid #cf77ff; border-radius: 16px; }
.party-photo .venue-photo img { width: 100%; height: auto; object-fit: contain; }
.party-photo .venue-photo:hover img { transform: none; filter: brightness(1.06); }
.party-photo figcaption { margin: 14px 2px 0; color: #d4c0de; font: 500 17px/1.35 var(--body); }
.party-hero__photo { padding: 10px; border: 1px solid #6f387f; border-radius: 24px; background: #130b20; box-shadow: 0 0 42px #8c28cd2e; }
.party-hero__photo figcaption { padding: 0 10px 8px; }
.party-facts { display: flex; justify-content: center; flex-wrap: wrap; gap: 18px 50px; padding: 24px; color: #e5d4ed; background: #180b23; border-block: 1px solid #67347a; font: 700 19px/1.2 var(--display); text-transform: uppercase; letter-spacing: .05em; }
.party-facts strong { color: #ffbb59; font-size: 1.35em; margin-right: 8px; }
.party-section { max-width: 1468px; margin: auto; }
.party-section h2,.party-contact h2 { margin: 0 0 22px; font: 900 clamp(43px,5.5vw,74px)/.95 var(--display); text-transform: uppercase; }
.party-section h2 em,.party-contact h2 em { color: #ffb74f; font-style: normal; }
.party-section__intro { max-width: 730px; margin-bottom: 36px; color: #e6d7ed; font-size: 23px; line-height: 1.4; }
.party-kit { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 22px; }
.party-kit article { position: relative; padding: 28px 30px; border: 1px solid #654377; border-radius: 14px; background: linear-gradient(130deg,#21132d,#100a19); }
.party-kit__label { display: flex; align-items: center; gap: 12px; margin-bottom: 22px; color: #c592ee; font: 800 16px/1 var(--display); letter-spacing: .14em; text-transform: uppercase; }
.party-kit__label svg { width: 33px; height: 33px; fill: none; stroke: #ffbd66; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
.party-kit h3 { margin: 0 0 12px; font: 800 32px/1 var(--display); }
.party-kit p { margin: 0; color: #e4d2ed; font: 500 21px/1.35 var(--body); }
.party-kit .party-kit__model { margin: 0 0 15px; color: #ffc678; font-size: 18px; }
.party-scene { display: grid; grid-template-columns: minmax(0,1.15fr) minmax(0,.85fr); gap: clamp(30px,6vw,86px); align-items: center; padding-top: 22px; }
.party-scene--tv { grid-template-columns: minmax(0,.8fr) minmax(0,1.2fr); }
.party-scene--tv .party-photo { max-width: 440px; }
.party-scene__copy > p:not(.eyebrow) { color: #e4d2ed; font: 500 23px/1.4 var(--body); }
.party-scene__copy .party-small { font-size: 18px !important; color: #cbb2d5 !important; }
.party-checks { margin: 25px 0 0; padding: 0; list-style: none; }
.party-checks li { margin-bottom: 15px; padding-left: 28px; position: relative; font: 600 22px/1.25 var(--body); }
.party-checks li::before { content: '✦'; position: absolute; left: 0; color: #ffba50; }
.party-optional { display: inline-block; padding: 7px 12px; border: 1px solid #b879dc; border-radius: 999px; color: #e3b5ff; font: 700 16px/1 var(--display); letter-spacing: .1em; }
.party-contact { padding-block: 75px; text-align: center; background: radial-gradient(ellipse at center,#3e144c,transparent 70%),#100818; border-top: 1px solid #633476; }
.party-contact > p:not(.eyebrow) { max-width: 650px; margin: 0 auto 25px; color: #f0e1f5; font: 500 24px/1.4 var(--body); }
.party-contact .hero-actions { margin-top: 24px; }
.party-contact__email { display: inline-block; margin-top: 25px; font-size: 21px; text-decoration: underline; text-underline-offset: 5px; overflow-wrap: anywhere; }
@media(max-width: 950px) { .party-hero__layout { grid-template-columns: 1fr; max-width: 700px; }.party-hero .hero-stage { margin-inline: auto; }.party-hero__copy { text-align: center; }.party-hero .party-title { font-size: clamp(58px,10vw,84px); }.party-deck { margin-inline: auto; }.party-hero .hero-actions { justify-content: center; }.party-hero .stage-toggle { margin-inline: auto; }.party-hero .stage-sound { text-align: center; }.party-hero .stage-sound__message { margin-inline: auto; }.party-hero__photo { max-width: 620px; margin: auto; }.party-scene,.party-scene--tv { grid-template-columns: 1fr; }.party-scene--tv .party-photo { max-width: 480px; margin: auto; }.party-scene--tv .party-scene__copy { grid-row: 1; } }
@media(max-width: 600px) { .party-hero.hero { padding-top: 30px; }.party-hero .hero-stage { max-width: 330px; }.party-hero .hero-tagline { font-size: 48px; }.party-kit { grid-template-columns: 1fr; }.party-kit article { padding: 25px; }.party-facts { gap: 14px 23px; font-size: 16px; }.party-section { padding-block: 55px; }.party-scene { padding-top: 15px; }.party-hero .eyebrow { font-size: 14px; letter-spacing: .12em; }.party-photo figcaption { font-size: 16px; } }
@media(prefers-reduced-motion: reduce) { .party-photo .venue-photo img { transition: none; } }
