*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:#050505;color:#fff;font-family:Arial,Helvetica,sans-serif}a{color:inherit;text-decoration:none}button,input,textarea{font:inherit}.site-header{position:fixed;inset:0 0 auto;height:82px;display:flex;align-items:center;justify-content:space-between;padding:12px 5vw;z-index:50;background:linear-gradient(#050505e8,#05050500)}.logo{width:230px;max-width:55vw}.hamb{width:54px;height:54px;border:1px solid #d9ad39;border-radius:50%;background:#0b0b0be8;display:grid;place-items:center;cursor:pointer}.hamb span,.hamb:before,.hamb:after{content:"";display:block;width:24px;height:2px;background:#f4ca59;margin:4px auto}
.menu{position:fixed;inset:0;z-index:45;background:#050505f7;display:none;padding:118px 7vw 50px}.menu.open{display:grid;grid-template-columns:minmax(620px,820px) 1fr;gap:6vw;align-items:start}.menu nav{display:grid;gap:8px;width:max-content;max-width:100%}.menu nav a{font-size:clamp(34px,3vw,48px);line-height:1.08;font-weight:900;letter-spacing:-.035em;white-space:nowrap}.menu nav a:hover{color:#f3c64f}.menu-side{border-left:1px solid #302817;padding-left:4vw;color:#d7d0c2}.menu-side strong{color:#f3c64f}
.hero{min-height:92vh;display:flex;align-items:end;position:relative;overflow:hidden;background:#000}.hero:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,#030303e8 0%,#05050588 47%,#05050518 75%),linear-gradient(0deg,#050505 0%,transparent 38%)}
@media(max-width:800px){.hero:after{background:linear-gradient(90deg,#000 0%,#000 4%,rgba(0,0,0,.92) 8%,rgba(0,0,0,.58) 17%,rgba(0,0,0,.22) 26%,rgba(0,0,0,0) 34%),linear-gradient(180deg,rgba(0,0,0,.86) 0%,rgba(0,0,0,.64) 4%,rgba(0,0,0,.34) 8%,rgba(0,0,0,.12) 13%,rgba(0,0,0,0) 18%),linear-gradient(270deg,rgba(3,3,3,.16) 0%,rgba(5,5,5,0) 18%),linear-gradient(0deg,#050505 0%,transparent 38%)!important;}}.hero-inner{position:relative;z-index:2;width:min(1180px,90vw);margin:auto;padding:180px 0 90px}.eyebrow{color:#f4c64f;text-transform:uppercase;letter-spacing:.18em;font-weight:800;font-size:13px}.hero h1,.section h2{font-size:clamp(54px,8vw,108px);line-height:.9;letter-spacing:-.06em;margin:12px 0 24px}.hero p,.lead{font-size:clamp(19px,2vw,26px);line-height:1.45;max-width:760px;color:#ddd}.actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:30px}.btn{display:inline-flex;align-items:center;justify-content:center;min-height:54px;padding:0 24px;border:1px solid #f4c64f;font-weight:900;text-transform:uppercase;letter-spacing:.05em;background:transparent;color:#fff;cursor:pointer}.btn.gold{background:#f4c64f;color:#080808}
.strip{border-block:1px solid #302817;background:#0b0b0b}.strip-inner{width:min(1180px,90vw);margin:auto;display:grid;grid-template-columns:repeat(3,1fr)}.strip a{padding:24px;border-right:1px solid #302817}.strip strong{display:block;color:#f4c64f;font-size:13px;text-transform:uppercase;letter-spacing:.12em;margin-bottom:7px}.section{width:min(1180px,90vw);margin:auto;padding:95px 0}.section h2{font-size:clamp(42px,6vw,78px)}.week{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:#302817;border:1px solid #302817;margin-top:42px}.day{background:#0a0a0a;padding:28px;min-height:205px}.day .dow{color:#f4c64f;font-size:13px;font-weight:900;letter-spacing:.13em;text-transform:uppercase}.day h3{font-size:25px;margin:10px 0}.day p{color:#aaa;line-height:1.45}
.photo-break{height:62vh;min-height:500px;position:relative;overflow:hidden;background:#000}.photo-break:after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,#050505cc,#05050500 55%,#05050555)}.performer-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:38px}.performer{position:relative;min-height:360px;overflow:hidden;background:#111}.performer img{width:100%;height:100%;object-fit:cover;position:absolute;inset:0;filter:saturate(.82);transition:.3s}.performer:after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,#000 0%,transparent 60%)}.performer:hover img{transform:scale(1.025);filter:saturate(1)}.performer-copy{position:absolute;z-index:2;left:22px;bottom:20px}.performer-copy h3{font-size:28px;margin:0}.performer-copy span{color:#f4c64f;font-size:13px;font-weight:800}
.help{background:#e7b938;color:#080808}.help .section{display:grid;grid-template-columns:1.3fr .7fr;gap:50px;align-items:center}.help h2{color:#080808}.help p{color:#342b17}.help .btn{border-color:#080808;color:#080808}.faq-list{border-top:1px solid #302817;margin-top:38px}.faq-item{border-bottom:1px solid #302817}.faq-q{width:100%;background:none;color:#fff;border:0;text-align:left;padding:22px 0;font-weight:900;font-size:19px;display:flex;justify-content:space-between;cursor:pointer}.faq-a{display:none;padding:0 0 24px;color:#beb8ab;line-height:1.55;max-width:900px}.faq-item.open .faq-a{display:block}.footer{border-top:1px solid #302817;padding:48px 5vw 70px;color:#aaa}.footer-in{width:min(1180px,90vw);margin:auto;display:flex;justify-content:space-between;gap:30px;align-items:flex-end}.footer img{width:210px}
.bio-hero{padding:150px 0 70px;width:min(1100px,90vw);margin:auto;display:grid;grid-template-columns:360px 1fr;gap:55px}.bio-hero img{width:100%;aspect-ratio:5/4;object-fit:cover}.bio-hero h1,.contact-wrap h1{font-size:clamp(48px,7vw,78px);letter-spacing:-.05em;margin:0 0 12px}.bio-meta{color:#f4c64f;font-weight:800;margin-bottom:24px}.bio-copy{font-size:19px;line-height:1.65;color:#d3cec3}.contact-wrap{padding:150px 0 80px;width:min(900px,90vw);margin:auto}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:35px}.form-grid .full{grid-column:1/-1}.field label{display:block;color:#f4c64f;font-weight:800;font-size:13px;text-transform:uppercase;letter-spacing:.08em;margin-bottom:7px}.field input,.field textarea{width:100%;background:#0e0e0e;border:1px solid #3a3427;color:#fff;padding:14px}.field textarea{min-height:180px;resize:vertical}.notice{padding:14px 16px;margin:20px 0;background:#15120a;border:1px solid #7b6225}
.elton-float{position:fixed;right:18px;bottom:18px;z-index:40;background:#f4c64f;color:#050505;border:0;border-radius:999px;padding:15px 20px;font-weight:900;box-shadow:0 10px 30px #0008;cursor:pointer}.elton-panel{position:fixed;inset:0;z-index:80;background:#000c;display:none}.elton-panel.open{display:block}.elton-panel iframe{position:absolute;right:0;top:0;width:min(520px,100%);height:100%;border:0;background:#fff}.close-elton{position:absolute;right:min(530px,calc(100% - 52px));top:15px;z-index:81;border:1px solid #f4c64f;background:#111;color:#f4c64f;width:42px;height:42px;border-radius:50%;font-size:22px}
@media(max-width:800px){.site-header{height:72px}.logo{width:185px}.menu.open{grid-template-columns:1fr;padding-top:95px;overflow:auto}.menu-side{border:0;padding:20px 0}.hero{min-height:82vh}.hero-inner{padding:130px 0 65px}.hero h1{font-size:54px}.strip-inner,.week,.performer-grid{grid-template-columns:1fr}.strip a{border-right:0;border-bottom:1px solid #302817}.help .section,.bio-hero{grid-template-columns:1fr}.photo-break{height:48vh;min-height:360px}.performer{min-height:330px}.form-grid{grid-template-columns:1fr}.form-grid .full{grid-column:auto}.footer-in{display:block}.footer img{margin-bottom:20px}}
.event-reserve{display:inline-block;margin-top:14px;color:#f4c64f;font-weight:900;font-size:14px;line-height:1.3}.event-reserve:hover{text-decoration:underline}.day strong{color:#fff}

/* Elton attention prompt */
.elton-float{right:22px;bottom:22px;padding:17px 24px;font-size:16px;border:2px solid #ffe083;box-shadow:0 10px 30px #0009,0 0 0 0 rgba(244,198,79,.55);transition:transform .2s ease,box-shadow .2s ease}
.elton-float:hover{transform:translateY(-2px) scale(1.04);box-shadow:0 14px 36px #000a,0 0 0 5px rgba(244,198,79,.18)}
.elton-float.elton-bounce{animation:eltonBounce .72s ease 3,eltonPulse 1.4s ease 2}
.elton-greeting{position:fixed;right:24px;bottom:86px;z-index:41;max-width:310px;background:#fff;color:#111;border:2px solid #f4c64f;border-radius:18px 18px 4px 18px;padding:14px 17px;font-weight:800;font-size:16px;line-height:1.3;box-shadow:0 12px 34px #0009;opacity:0;transform:translateY(14px) scale(.94);pointer-events:none;transition:opacity .28s ease,transform .28s ease;cursor:pointer}
.elton-greeting.show{opacity:1;transform:translateY(0) scale(1);pointer-events:auto}
@keyframes eltonBounce{0%,100%{transform:translateY(0) scale(1)}35%{transform:translateY(-14px) scale(1.07)}60%{transform:translateY(2px) scale(.98)}}
@keyframes eltonPulse{0%,100%{box-shadow:0 10px 30px #0009,0 0 0 0 rgba(244,198,79,.55)}50%{box-shadow:0 12px 34px #0009,0 0 0 10px rgba(244,198,79,0)}}
@media(max-width:600px){.elton-greeting{left:18px;right:18px;bottom:84px;max-width:none}.elton-float{right:16px;bottom:16px}}
@media(prefers-reduced-motion:reduce){.elton-float.elton-bounce{animation:none}.elton-greeting{transition:none}}

/* Ken Burns photo sequences: fade fully to black between stills, never crossfade. */
.kb-stage{position:absolute;inset:0;overflow:hidden;background:#000;z-index:0}
.kb-stage img{position:absolute;inset:-4%;width:108%;height:108%;object-fit:cover;opacity:0;will-change:transform,opacity;transition:opacity .65s ease}
.kb-stage img.kb-visible{opacity:1}
.kb-stage img.kb-zoom-in{animation:kbZoomIn 8.5s linear forwards}
.kb-stage img.kb-zoom-out{animation:kbZoomOut 8.5s linear forwards}
.kb-stage img.kb-pan-left{animation:kbPanLeft 8.5s linear forwards}
.kb-stage img.kb-pan-right{animation:kbPanRight 8.5s linear forwards}
.kb-stage img.kb-pan-up{animation:kbPanUp 8.5s linear forwards}
@keyframes kbZoomIn{from{transform:scale(1.00)}to{transform:scale(1.11)}}
@keyframes kbZoomOut{from{transform:scale(1.12)}to{transform:scale(1.01)}}
@keyframes kbPanLeft{from{transform:scale(1.08) translateX(2.5%)}to{transform:scale(1.08) translateX(-2.5%)}}
@keyframes kbPanRight{from{transform:scale(1.08) translateX(-2.5%)}to{transform:scale(1.08) translateX(2.5%)}}
@keyframes kbPanUp{from{transform:scale(1.08) translateY(2.5%)}to{transform:scale(1.08) translateY(-2.5%)}}
.hero>.kb-stage{z-index:0}.hero:after{z-index:1}.hero-inner{z-index:2}
.photo-break>.kb-stage{z-index:0}.photo-break:after{z-index:1}
@media(prefers-reduced-motion:reduce){.kb-stage img{animation:none!important;transform:none!important}}

/* Hero text readability over slideshow */
.hero .eyebrow,
.hero h1,
.hero p{
  text-shadow:0 2px 6px rgba(0,0,0,.78),0 8px 24px rgba(0,0,0,.58);
}
.hero h1{
  text-shadow:0 3px 9px rgba(0,0,0,.88),0 12px 30px rgba(0,0,0,.68);
}

/* Hero headline transition synchronized with Ken Burns blackout */
.hero h1{transition:opacity .65s ease;opacity:1}
.hero h1.kb-headline-hidden{opacity:0}

/* Keep hero layout locked while rotating headlines */
.hero h1{min-height:1.8em;display:flex;align-items:flex-start;}
@media(max-width:800px){.hero h1{min-height:1.8em;}}

/* Mini equalizer menu icon */
.hamb{display:flex;align-items:center;justify-content:center;gap:4px;overflow:hidden}
.hamb:before,.hamb:after{display:none!important}
.hamb .eq-bar{display:block;width:3px;border-radius:3px;background:#f4ca59;transform-origin:center bottom}
.hamb .b1{height:14px}.hamb .b2{height:24px}.hamb .b3{height:18px}
.hamb.eq-wake .b1{animation:eqBounce1 .75s ease 1}
.hamb.eq-wake .b2{animation:eqBounce2 .75s ease .06s 1}
.hamb.eq-wake .b3{animation:eqBounce3 .75s ease .12s 1}
.hamb:hover .b1,.hamb:focus-visible .b1{animation:eqLoop1 .8s ease-in-out infinite}
.hamb:hover .b2,.hamb:focus-visible .b2{animation:eqLoop2 .8s ease-in-out .08s infinite}
.hamb:hover .b3,.hamb:focus-visible .b3{animation:eqLoop3 .8s ease-in-out .16s infinite}
@keyframes eqBounce1{0%,100%{transform:scaleY(1)}35%{transform:scaleY(1.8)}65%{transform:scaleY(.6)}}
@keyframes eqBounce2{0%,100%{transform:scaleY(1)}35%{transform:scaleY(.6)}65%{transform:scaleY(1.6)}}
@keyframes eqBounce3{0%,100%{transform:scaleY(1)}35%{transform:scaleY(1.5)}65%{transform:scaleY(.7)}}
@keyframes eqLoop1{0%,100%{transform:scaleY(.7)}50%{transform:scaleY(1.7)}}
@keyframes eqLoop2{0%,100%{transform:scaleY(1.5)}50%{transform:scaleY(.65)}}
@keyframes eqLoop3{0%,100%{transform:scaleY(.9)}50%{transform:scaleY(1.55)}}
@media(prefers-reduced-motion:reduce){.hamb .eq-bar{animation:none!important}}

/* Horizontal animated equalizer menu icon */
.hamb{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px}
.hamb:before,.hamb:after{display:none!important}
.hamb .eq-bar{display:block;height:4px;background:#f4c64f;border-radius:999px;transform-origin:center;transition:width .18s ease,transform .18s ease}
.hamb .b1{width:26px}.hamb .b2{width:20px}.hamb .b3{width:24px}
.hamb.eq-animate .b1,.hamb:hover .b1,.hamb:focus-visible .b1{animation:eqH1 .7s ease-in-out 3}
.hamb.eq-animate .b2,.hamb:hover .b2,.hamb:focus-visible .b2{animation:eqH2 .7s ease-in-out 3}
.hamb.eq-animate .b3,.hamb:hover .b3,.hamb:focus-visible .b3{animation:eqH3 .7s ease-in-out 3}
@keyframes eqH1{0%,100%{width:26px}50%{width:16px}}
@keyframes eqH2{0%,100%{width:20px}50%{width:30px}}
@keyframes eqH3{0%,100%{width:24px}50%{width:18px}}

/* Horizontal-only EQ motion override */
.hamb .eq-bar{transform:none!important;transform-origin:center!important;height:4px!important;}
.hamb.eq-animate .b1,.hamb:hover .b1,.hamb:focus-visible .b1{animation:eqH1Slow 2.1s ease-in-out 3!important}
.hamb.eq-animate .b2,.hamb:hover .b2,.hamb:focus-visible .b2{animation:eqH2Slow 2.1s ease-in-out 3!important}
.hamb.eq-animate .b3,.hamb:hover .b3,.hamb:focus-visible .b3{animation:eqH3Slow 2.1s ease-in-out 3!important}
@keyframes eqH1Slow{0%,100%{width:30px}25%{width:18px}50%{width:26px}75%{width:14px}}
@keyframes eqH2Slow{0%,100%{width:20px}25%{width:30px}50%{width:16px}75%{width:28px}}
@keyframes eqH3Slow{0%,100%{width:26px}25%{width:16px}50%{width:30px}75%{width:20px}}

/* Strong horizontal EQ motion */
.hamb .eq-bar{height:5px!important;transform:none!important;}
.hamb.eq-animate .b1,.hamb:hover .b1,.hamb:focus-visible .b1{animation:eqH1Strong 2.1s ease-in-out 3!important}
.hamb.eq-animate .b2,.hamb:hover .b2,.hamb:focus-visible .b2{animation:eqH2Strong 2.1s ease-in-out 3!important}
.hamb.eq-animate .b3,.hamb:hover .b3,.hamb:focus-visible .b3{animation:eqH3Strong 2.1s ease-in-out 3!important}
@keyframes eqH1Strong{0%,100%{width:32px}25%{width:14px}50%{width:28px}75%{width:18px}}
@keyframes eqH2Strong{0%,100%{width:18px}25%{width:30px}50%{width:14px}75%{width:32px}}
@keyframes eqH3Strong{0%,100%{width:26px}25%{width:16px}50%{width:32px}75%{width:12px}}

/* Equalizer alignment refinement: equal weight, left-anchored growth */
.hamb{align-items:flex-start!important;padding-left:12px!important;}
.hamb .eq-bar{height:4px!important;min-height:4px!important;max-height:4px!important;transform-origin:left center!important;margin-left:0!important;}
.hamb .b1,.hamb .b2,.hamb .b3{height:4px!important;}
@keyframes eqH1Strong{0%,100%{width:30px}25%{width:14px}50%{width:26px}75%{width:18px}}
@keyframes eqH2Strong{0%,100%{width:18px}25%{width:30px}50%{width:14px}75%{width:26px}}
@keyframes eqH3Strong{0%,100%{width:24px}25%{width:16px}50%{width:30px}75%{width:20px}}

/* Randomized independent horizontal menu bars */
.hamb .eq-bar{height:4px!important;min-height:4px!important;max-height:4px!important;transform-origin:left center!important;}

/* Fine-tune equalizer vertical spacing */
.hamb .b1{position:relative;top:5px}
.hamb .b3{position:relative;top:-5px}

/* Final hamburger settled proportions */
.hamb .b1{width:24px}
.hamb .b2{width:28px}
.hamb .b3{width:24px}

/* staged settle lock */
.hamb .eq-bar.eq-settled{animation:none!important;transition:width .35s ease!important;}

/* Definitive hamburger settle state */
.hamb .eq-bar{height:4px!important;min-height:4px!important;max-height:4px!important;transform:none!important;transform-origin:left center!important;}
.hamb .eq-bar.eq-settled{animation:none!important;transition:width .35s ease!important;}
.hamb .b1.eq-settled{width:30px!important}
.hamb .b2.eq-settled{width:34px!important}
.hamb .b3.eq-settled{width:30px!important}

/* Mobile hero headline: reserve three lines to prevent layout jump */
@media(max-width:800px){
  .hero h1{min-height:2.7em!important;}
}

/* Global logo vertical nudge */
.site-header .logo{position:relative;top:4px;}

/* Header refinement: more logo clearance + rounded-rectangle menu */
.site-header .logo{position:relative;top:15px!important;}
.hamb{width:56px!important;height:48px!important;border-radius:14px!important;padding-left:10px!important;padding-right:10px!important;}


/* Homepage logo splash */
.home-splash{position:fixed;inset:0;z-index:9999;background:#000;display:flex;align-items:center;justify-content:center;overflow:hidden;opacity:1;transition:opacity .7s ease;}
.home-splash-logo{display:block;width:min(420px,72vw);height:auto;opacity:0;transform:translateY(-70px) scale(.96);filter:drop-shadow(0 10px 32px rgba(0,0,0,.5));will-change:left,top,width,transform,opacity;}
.home-splash-logo.splash-enter{opacity:1;transform:translateY(0) scale(1);transition:opacity .8s ease,transform .8s cubic-bezier(.2,.8,.2,1);}
.home-splash.splash-out{opacity:0;pointer-events:none;}
.home-splash-pending>header,.home-splash-pending>.menu,.home-splash-pending>.hero,.home-splash-pending>.strip,.home-splash-pending>.section,.home-splash-pending>.photo-break,.home-splash-pending>.elton-greeting,.home-splash-pending>.elton-float,.home-splash-pending>.elton-panel,.home-splash-pending>.footer{visibility:hidden;}
.home-splash-pending .site-header .logo{opacity:0;}
@media(prefers-reduced-motion:reduce){
  .home-splash{display:none!important}
  .home-splash-pending>header,.home-splash-pending>.menu,.home-splash-pending>.hero,.home-splash-pending>.strip,.home-splash-pending>.section,.home-splash-pending>.photo-break,.home-splash-pending>.elton-greeting,.home-splash-pending>.elton-float,.home-splash-pending>.elton-panel,.home-splash-pending>.footer{visibility:visible!important}
  .home-splash-pending .site-header .logo{opacity:1!important}
}


/* Homepage splash refinements v2 */
.home-splash-logo{width:60vw!important;max-width:none!important;}
.home-splash-logo.splash-enter{transition:opacity 1.6s ease,transform 1.6s cubic-bezier(.2,.8,.2,1)!important;}
@media(max-width:800px){.home-splash-logo{width:80vw!important;}}

/* Earlier homepage reveal during splash fly-up */
.home-splash{transition:background .65s ease,opacity .3s ease!important;}
.home-splash.splash-reveal{background:rgba(0,0,0,0)!important;}

/* Explicit real-header-logo handoff during homepage splash */
.site-header .logo.splash-hidden-logo{opacity:0!important;}
.site-header .logo.splash-logo-reveal{opacity:0!important;transition:opacity .32s ease!important;}
.site-header .logo.splash-logo-reveal.show{opacity:1!important;}


/* Homepage splash v3: animate the actual header logo, never a duplicate */
.home-splash{position:fixed;inset:0;z-index:9998;background:#000;opacity:1;pointer-events:none;transition:background .65s ease,opacity .3s ease!important;}
.home-splash.splash-reveal{background:rgba(0,0,0,0)!important;}
.home-splash.splash-out{opacity:0!important;}
.site-header .logo.home-splash-live-logo{position:fixed!important;z-index:10000!important;max-width:none!important;margin:0!important;}
.home-splash-pending>.site-header{visibility:visible!important;}
.home-splash-pending>.site-header .hamb{visibility:hidden!important;}
.home-splash-pending>.site-header .logo{visibility:visible!important;}
@media(prefers-reduced-motion:reduce){.home-splash-pending>.site-header .hamb{visibility:visible!important;}}

/* splash stacking fix */
.home-splash{z-index:9999!important;}
.site-header .logo.home-splash-live-logo{z-index:10001!important;}

/* Splash visibility fix: parent header must remain visible so the real logo can animate above overlay */
.home-splash-pending>.site-header{visibility:visible!important;}
.home-splash-pending>.site-header .hamb{visibility:hidden!important;opacity:0!important;}
.home-splash-pending>.site-header>a{visibility:visible!important;}

/* Definitive splash stacking fix: header stacking context must sit above splash */
.home-splash-pending>.site-header{z-index:10002!important;background:transparent!important;}
.home-splash-pending>.site-header .hamb{visibility:hidden!important;opacity:0!important;}

/* Smooth homepage reveal underneath splash logo */
.home-splash-pending>.menu,
.home-splash-pending>.hero,
.home-splash-pending>.strip,
.home-splash-pending>.section,
.home-splash-pending>.photo-break,
.home-splash-pending>.elton-greeting,
.home-splash-pending>.elton-float,
.home-splash-pending>.elton-panel,
.home-splash-pending>.footer{
  visibility:visible!important;
  opacity:0!important;
  transition:opacity .8s ease!important;
}
.home-splash-pending.home-splash-page-reveal>.menu,
.home-splash-pending.home-splash-page-reveal>.hero,
.home-splash-pending.home-splash-page-reveal>.strip,
.home-splash-pending.home-splash-page-reveal>.section,
.home-splash-pending.home-splash-page-reveal>.photo-break,
.home-splash-pending.home-splash-page-reveal>.elton-greeting,
.home-splash-pending.home-splash-page-reveal>.elton-float,
.home-splash-pending.home-splash-page-reveal>.elton-panel,
.home-splash-pending.home-splash-page-reveal>.footer{opacity:1!important;}
.home-splash-pending.home-splash-page-reveal>.site-header .hamb{
  visibility:visible!important;
  opacity:1!important;
  transition:opacity .8s ease!important;
}

/* Homepage waterfall splash: real registered logo pieces */
.home-splash-build{position:fixed;left:50%;top:50%;aspect-ratio:2020/875;transform:translate(-50%,-50%);z-index:1;will-change:left,top,width,transform;}
.home-splash-build .home-splash-piece,.home-splash-build .home-splash-tagline{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;pointer-events:none;user-select:none;}
.home-splash-piece{opacity:0;transform:translate3d(0,-72vh,0);will-change:transform,opacity;}
.home-splash-build.run .home-splash-piece{animation:homeWaterfall .304s cubic-bezier(.18,.78,.22,1) var(--delay) forwards;}
@keyframes homeWaterfall{0%{opacity:0;transform:translate3d(0,-72vh,0)}16%{opacity:1}100%{opacity:1;transform:translate3d(0,0,0)}}
.home-splash-tagline{clip-path:inset(0 100% 0 0);will-change:clip-path;}
.home-splash-build.run .home-splash-tagline{animation:homeTagWipe .75s cubic-bezier(.35,0,.2,1) .3072s forwards;}
@keyframes homeTagWipe{from{clip-path:inset(0 100% 0 0)}to{clip-path:inset(0 0 0 0)}}
.home-splash-build.flying{transition:none!important;will-change:transform;backface-visibility:hidden;transform-origin:top left;}
@media(prefers-reduced-motion:reduce){.home-splash-build{display:none!important}}


/* Splash 21+ acknowledgement gate: the tap also unlocks audible intro playback. */
.home-splash.audio-gated{pointer-events:auto!important;}
.home-splash-gate{position:fixed;left:50%;top:50%;transform:translate(-50%,-50%);z-index:10005;width:min(88vw,560px);display:flex;flex-direction:column;align-items:center;gap:22px;text-align:center;opacity:0;visibility:hidden;transition:opacity .2s ease;}
.home-splash-gate.show{opacity:1;visibility:visible;}
.home-splash-gate-text{color:#fff;font:600 clamp(18px,2.2vw,28px)/1.25 Arial,Helvetica,sans-serif;letter-spacing:.01em;}
.home-splash-start{min-width:190px;border:1px solid rgba(255,255,255,.78);border-radius:999px;background:rgba(255,255,255,.08);color:#fff;padding:14px 24px;font:700 12px/1 Arial,Helvetica,sans-serif;letter-spacing:.14em;text-transform:uppercase;cursor:pointer;transition:background .18s ease,border-color .18s ease,transform .18s ease;}
.home-splash-start:hover{background:rgba(255,255,255,.15);border-color:#fff;}
.home-splash-start:active{transform:scale(.98);}
.home-splash-start:focus-visible{outline:3px solid #fff;outline-offset:4px;}
@media(max-width:700px){.home-splash-gate{width:88vw;gap:18px}.home-splash-start{min-width:180px;padding:13px 20px}}

/* Desktop/iPad hero photos: right-side image field with photo-only vignette */
@media (min-width:801px){
  .hero>.kb-stage{background:#000;}
  .hero>.kb-stage img{
    top:-3%;
    right:-2%;
    left:auto;
    width:76%;
    height:106%;
    object-fit:cover;
    object-position:center top;
    /* The vignette is part of the moving image so it follows every Ken Burns transform. */
    -webkit-mask-image:
      linear-gradient(90deg,transparent 0%,rgba(0,0,0,.10) 2%,rgba(0,0,0,.42) 5%,rgba(0,0,0,.78) 9%,#000 14%,#000 100%),
      radial-gradient(ellipse 94% 92% at 74% 50%,#000 50%,rgba(0,0,0,.94) 66%,rgba(0,0,0,.58) 82%,transparent 100%);
    mask-image:
      linear-gradient(90deg,transparent 0%,rgba(0,0,0,.10) 2%,rgba(0,0,0,.42) 5%,rgba(0,0,0,.78) 9%,#000 14%,#000 100%),
      radial-gradient(ellipse 94% 92% at 74% 50%,#000 50%,rgba(0,0,0,.94) 66%,rgba(0,0,0,.58) 82%,transparent 100%);
    -webkit-mask-repeat:no-repeat,no-repeat;
    mask-repeat:no-repeat,no-repeat;
    -webkit-mask-size:100% 100%,100% 100%;
    mask-size:100% 100%,100% 100%;
    -webkit-mask-composite:source-in;
    mask-composite:intersect;
  }
  /* No stationary photo vignette here: it caused a visible seam while the image moved. */
  .hero>.kb-stage:after{display:none;}
}


/* Hero4 desktop: actual vertical shift; object-position had no vertical effect because image fills height */
@media (min-width:801px){
  .kb-stage img.kb-hero4-lower{animation:kbHero4Lower 8.5s linear forwards;}
  @keyframes kbHero4Lower{
    from{transform:translate(0,6%) scale(1.20)}
    to{transform:translate(2.5%,6%) scale(1.20)}
  }
}

/* Hero5 desktop: move focal content upward while retaining coverage */
@media (min-width:801px){
  .kb-stage img.kb-hero5-upper{animation:kbHero5Upper 8.5s linear forwards;}
  @keyframes kbHero5Upper{
    from{transform:translate(0,-7%) scale(1.18)}
    to{transform:translate(0,-7%) scale(1.26)}
  }
}

/* Hero3 desktop: start shifted left while keeping coverage */
@media (min-width:801px){
  .kb-stage img.kb-hero3-left{animation:kbHero3Left 8.5s linear forwards;}
  @keyframes kbHero3Left{
    from{transform:translateX(-10%) scale(1.18)}
    to{transform:translateX(-13%) scale(1.24)}
  }
}


@keyframes kbMobileHero1Right{
  from{transform:translateX(15%) scale(1.18)}
  to{transform:translateX(15%) scale(1.26)}
}

/* Hero3 mobile: explicit pixel lift so the focal face moves upward visibly. */
@media (max-width:800px){
  .hero .kb-stage img.kb-hero3-left{
    top:-4%!important;
    bottom:auto!important;
    height:108%!important;
    object-position:100% top!important;
    animation:kbHero3MobileUp 8.5s linear forwards!important;
  }
  @keyframes kbHero3MobileUp{
    from{transform:translate(-5%,-95px) scale(1.18)}
    to{transform:translate(-5%,-95px) scale(1.25)}
  }
}


/* Hero5 mobile v1: piano player focal framing — way up and a bit left. */
@media (max-width:800px){
  .hero .kb-stage img.kb-hero5-upper{animation:kbHero5MobileV1 8.5s linear forwards!important;}
  @keyframes kbHero5MobileV1{
    from{transform:translate(-4%,-215px) scale(1.18)}
    to{transform:translate(-4%,-215px) scale(1.26)}
  }
}

/* Hero5 mobile v1: strengthen bottom fade so the lifted image blends into black instead of exposing a hard edge. */
@media (max-width:800px){
  .hero .kb-stage img.kb-hero5-upper{
    -webkit-mask-image:linear-gradient(180deg,#000 0%,#000 72%,rgba(0,0,0,.88) 82%,rgba(0,0,0,.48) 91%,transparent 100%)!important;
    mask-image:linear-gradient(180deg,#000 0%,#000 72%,rgba(0,0,0,.88) 82%,rgba(0,0,0,.48) 91%,transparent 100%)!important;
    -webkit-mask-repeat:no-repeat!important;
    mask-repeat:no-repeat!important;
    -webkit-mask-size:100% 100%!important;
    mask-size:100% 100%!important;
  }
}

/* Hero5 mobile v2: same photo, alternate framing on the guest on stage. */
@media (max-width:800px){
  .hero .kb-stage img.kb-hero5-v2{animation:kbHero5MobileV2 8.5s linear forwards!important;}
  @keyframes kbHero5MobileV2{
    from{transform:translate(12%,-95px) scale(1.18)}
    to{transform:translate(12%,-95px) scale(1.26)}
  }
}

/* Mobile hero eyebrow moved below CTA buttons. */
@media (max-width:800px){
  .hero .actions + .eyebrow{margin-top:14px;margin-bottom:0;}
}

/* Mobile hero headline: lock phrase box height so lower content never jumps between 2- and 3-line phrases. */
@media(max-width:800px){
  .hero h1{
    line-height:1.02!important;
    min-height:0!important;
    height:3.08em!important;
    margin-bottom:24px!important;
    overflow:visible;
  }
}

/* Hero4 mobile: preserve approved starting crop, then add subtle Ken Burns motion. */
@media(max-width:800px){
  .hero .kb-stage img.kb-hero4-lower{animation:kbHero4Mobile 8.5s linear forwards!important;}
  @keyframes kbHero4Mobile{
    from{transform:translate(0,-2%) scale(1.00)}
    to{transform:translate(1.5%,-3%) scale(1.08)}
  }
}

/* Desktop-only hero description break after “dinner”. */
.desktop-hero-break{display:none}
@media(min-width:801px){.desktop-hero-break{display:block}}

/* Lock hero description line breaks identically on desktop and mobile. */
.hero-copy-break{display:block!important;}

/* Desktop hero headline: prevent line overlap on multi-line phrases. */
@media(min-width:801px){
  .hero h1{line-height:1.02!important;}
}

/* Match hero CTA corner radius to the hamburger control on all breakpoints. */
.hero .actions .btn{border-radius:14px!important;}

/* Hero6: use the same global mobile vignette as all other heroes. */
.kb-stage img.kb-hero6-zoom{animation:kbZoomIn 8.5s linear forwards;}

/* Mobile hero: lighten left-edge vignette globally. */
@media (max-width:800px){
  .hero .kb-stage img{
    -webkit-mask-image:linear-gradient(90deg,transparent 0%,rgba(0,0,0,.35) 1%,rgba(0,0,0,.75) 2.5%,#000 5%,#000 100%)!important;
    mask-image:linear-gradient(90deg,transparent 0%,rgba(0,0,0,.35) 1%,rgba(0,0,0,.75) 2.5%,#000 5%,#000 100%)!important;
    -webkit-mask-repeat:no-repeat!important; mask-repeat:no-repeat!important;
    -webkit-mask-size:100% 100%!important; mask-size:100% 100%!important;
  }
}

/* Hero5 mobile v1: preserve approved bottom fade while using the lighter left edge. */
@media (max-width:800px){
  .hero .kb-stage img.kb-hero5-upper{
    -webkit-mask-image:linear-gradient(90deg,transparent 0%,rgba(0,0,0,.35) 1%,rgba(0,0,0,.75) 2.5%,#000 5%,#000 100%),linear-gradient(180deg,#000 0%,#000 72%,rgba(0,0,0,.88) 82%,rgba(0,0,0,.48) 91%,transparent 100%)!important;
    mask-image:linear-gradient(90deg,transparent 0%,rgba(0,0,0,.35) 1%,rgba(0,0,0,.75) 2.5%,#000 5%,#000 100%),linear-gradient(180deg,#000 0%,#000 72%,rgba(0,0,0,.88) 82%,rgba(0,0,0,.48) 91%,transparent 100%)!important;
    -webkit-mask-repeat:no-repeat,no-repeat!important; mask-repeat:no-repeat,no-repeat!important;
    -webkit-mask-size:100% 100%,100% 100%!important; mask-size:100% 100%,100% 100%!important;
    -webkit-mask-composite:source-in; mask-composite:intersect;
  }
}

/* Hero6 mobile: push framing further upward beyond object-position top. */
@media(max-width:800px){
  .hero .kb-stage img.kb-hero6-zoom{animation:kbHero6MobileUp 8.5s linear forwards!important;}
  @keyframes kbHero6MobileUp{
    from{transform:translateY(-55px) scale(.96)}
    to{transform:translateY(-55px) scale(1.06)}
  }
}

/* Mobile logo: slightly stronger shadow for separation over hero photography. */
@media(max-width:800px){
  .site-header .logo{filter:drop-shadow(0 3px 3px rgba(0,0,0,.90)) drop-shadow(0 7px 10px rgba(0,0,0,.62));}
}

/* Hero foreground separation: stronger shadows on phrase, description, eyebrow and CTAs — desktop + mobile. */
.hero h1{
  text-shadow:0 3px 7px rgba(0,0,0,.98),0 8px 18px rgba(0,0,0,.88),0 16px 34px rgba(0,0,0,.68)!important;
}
.hero p,.hero .eyebrow{
  text-shadow:0 2px 4px rgba(0,0,0,.98),0 6px 14px rgba(0,0,0,.82),0 10px 24px rgba(0,0,0,.58)!important;
}
.hero .actions .btn{
  box-shadow:0 5px 12px rgba(0,0,0,.68),0 12px 28px rgba(0,0,0,.48);
  text-shadow:0 2px 4px rgba(0,0,0,.58);
}
.hero .actions .btn.gold{
  text-shadow:none;
}

/* Sitewide UI rounding: buttons, form controls, cards and interactive fields. */
.btn,button:not(.hamb):not(.close-elton),input,textarea,select{border-radius:14px!important;}
.field input,.field textarea,.field select{border-radius:14px!important;}
.notice,.day,.performer,.week,.faq-item{border-radius:14px;}
.performer,.day,.notice{overflow:hidden;}

/* 21+ splash gate: larger and gold. */
.home-splash-gate-text{
  color:#f4c64f!important;
  font-size:clamp(36px,4.4vw,56px)!important;
  line-height:1.18!important;
  font-weight:700!important;
  text-shadow:0 4px 12px rgba(0,0,0,.88);
}
.home-splash-start{
  min-width:380px!important;
  padding:28px 48px!important;
  font-size:24px!important;
  border-color:#f4c64f!important;
  color:#f4c64f!important;
}
@media(max-width:700px){
  .home-splash-start{min-width:min(360px,88vw)!important;padding:26px 34px!important;font-size:22px!important;}
}

/* Hero content: lower foreground block to expose more photography. */
@media(max-width:800px){
  .hero-inner{transform:translateY(70px);}
}
@media(min-width:801px){
  .hero-inner{transform:translateY(45px);}
}

/* Hero eyebrow below CTAs on desktop too. */
@media(min-width:801px){.hero .actions + .eyebrow{margin-top:16px;margin-bottom:0;}}

/* Phrase-specific responsive break helpers. */
.mobile-only-break{display:none;}
.desktop-only-space{display:inline;}
@media(max-width:800px){.mobile-only-break{display:inline;}.desktop-only-space{display:none;}}

/* Explicit per-viewport phrase variants: avoid inline-break cascade ambiguity. */
.mobile-phrase{display:none!important;}
.desktop-phrase{display:inline!important;}
@media(max-width:800px){.mobile-phrase{display:inline!important;}.desktop-phrase{display:none!important;}}

/* Final header logo: subtle counter-clockwise tip toward upper-left. */
.site-header .logo{transform:rotate(-4deg);transform-origin:center center;}

/* Hero2 desktop: shift framing upward; mobile stays locked at approved framing. */
@media(min-width:801px){
  .hero .kb-stage img.kb-hero2-desktop-up{animation:kbHero2DesktopUp 8.5s linear forwards!important;}
  @keyframes kbHero2DesktopUp{from{transform:scale(1.08) translate(2.5%,-5%)}to{transform:scale(1.08) translate(-2.5%,-5%)}}
}
@media(max-width:800px){.hero .kb-stage img.kb-hero2-desktop-up{animation:kbPanLeft 8.5s linear forwards!important;}}

/* Hero1 desktop: lift framing; preserve approved mobile framing. */
@media(min-width:801px){
  .hero .kb-stage img.kb-hero1-desktop-up{animation:kbHero1DesktopUp 8.5s linear forwards!important;}
  @keyframes kbHero1DesktopUp{from{transform:translateY(-5%) scale(1.00)}to{transform:translateY(-5%) scale(1.11)}}
}
@media(max-width:800px){.hero .kb-stage img.kb-hero1-desktop-up{animation:kbZoomIn 8.5s linear forwards!important;}}


/* Desktop header logo: move into open upper-left hero area. */
@media(min-width:801px){
  .site-header .logo{left:190px!important;}
}

/* Desktop refinements: lift Hero6 and lower the entire hero foreground block. */
@media(min-width:801px){
  .hero-inner{transform:translateY(75px)!important;}
  .hero .kb-stage img.kb-hero6-zoom{animation:kbHero6DesktopUp 8.5s linear forwards!important;}
  @keyframes kbHero6DesktopUp{
    from{transform:translateY(-5%) scale(1.00)}
    to{transform:translateY(-5%) scale(1.11)}
  }
}

/* Live mobile feedback: natural responsive copy, smaller Ask Elton footprint. */
@media(max-width:800px){
  .hero p{font-size:clamp(16px,4.5vw,21px)!important;line-height:1.42!important;max-width:100%!important;}
  .hero-copy-break{display:none!important;}
  .elton-float{right:12px!important;bottom:12px!important;padding:11px 16px!important;font-size:14px!important;border-width:1px!important;}
  .elton-greeting{left:28px!important;right:28px!important;bottom:68px!important;padding:10px 13px!important;font-size:13px!important;line-height:1.22!important;border-width:1px!important;}
}
