/* Consumer fest preview — tickets / expect / FAQ / mobile nav only.
   Do not edit deck.css; this file layers on top. */

:root{--hh:64px}

/* denser sticky nav — keep all links on one row (no wrap) */
.site-header .bar{gap:10px}
.site-header .brand{flex:0 0 auto}
.site-header .brand img{height:32px}
.site-header .nav{flex:1 1 auto;min-width:0}
.nav ul{display:flex;flex-wrap:nowrap;gap:8px;justify-content:flex-end;align-items:center;margin:0;padding:0;list-style:none}
.nav li{flex:0 0 auto}
.nav a{font-size:.68rem;letter-spacing:.04em;white-space:nowrap;padding:6px 0}
.site-header .btn-sm{flex:0 0 auto;white-space:nowrap;padding:10px 14px;font-size:.72rem}
@media(min-width:1200px){
  .site-header .brand img{height:38px}
  .nav ul{gap:14px}
  .nav a{font-size:.8rem;letter-spacing:.06em}
  .site-header .btn-sm{padding:11px 18px;font-size:.82rem}
}
@media(min-width:1400px){
  .nav ul{gap:18px}
  .nav a{font-size:.85rem;letter-spacing:.08em}
}

/* mobile menu */
.nav-toggle{display:inline-flex;align-items:center;justify-content:center;width:42px;height:42px;padding:0;border:1px solid rgba(189,160,58,.55);background:transparent;color:var(--gold-l);border-radius:2px;cursor:pointer}
.nav-toggle svg{width:22px;height:22px;fill:currentColor}
.nav-toggle[aria-expanded="true"]{background:var(--gold);color:#12100a}
@media(min-width:1100px){.nav-toggle{display:none}.nav{display:block}}
@media(max-width:1099px){
  .nav{display:none;position:absolute;left:0;right:0;top:var(--hh);background:rgba(13,12,10,.98);border-bottom:1px solid rgba(189,160,58,.45);padding:12px 20px 18px}
  .nav.is-open{display:block}
  .nav ul{flex-direction:column;gap:0;align-items:stretch}
  .nav a{display:block;padding:12px 4px;border-bottom:1px solid rgba(189,160,58,.18)}
  .bar{position:relative}
  .bar .btn-sm{margin-left:auto}
}

/* expect cards */
.expect-grid{display:grid;gap:22px;grid-template-columns:1fr}
@media(min-width:640px){.expect-grid{grid-template-columns:repeat(2,1fr)}}
@media(min-width:1000px){.expect-grid{grid-template-columns:repeat(3,1fr)}}
.expect-card{background:var(--panel);border:1px solid rgba(189,160,58,.45);padding:28px 22px;border-radius:2px;text-align:center}
.expect-card img{width:120px;height:120px;border-radius:50%;object-fit:cover;margin:0 auto 16px;border:2px solid var(--gold);padding:4px;background:var(--bg)}
.expect-card h3{margin-bottom:10px}
.expect-card p{color:var(--mute);font-size:1rem;line-height:1.6}
.expect-card:nth-child(4),.expect-card:nth-child(5){/* span nicely on 3-col */}
@media(min-width:1000px){
  .expect-grid{grid-template-columns:repeat(6,1fr)}
  .expect-card{grid-column:span 2}
  .expect-card:nth-child(4){grid-column:2 / span 2}
  .expect-card:nth-child(5){grid-column:4 / span 2}
}

/* ticket cards — benefits only, no dollar amounts */
.ticket-note{text-align:center;color:var(--mute);max-width:40em;margin:0 auto 28px}
.cards.tickets .card .btn{margin-top:auto}
.cards.tickets .prices{display:none} /* no dollar tier prices */
.cards.tickets .tag{margin-top:4px}

/* about prose */
.prose p{margin-bottom:16px;color:var(--text);font-size:1.05rem;line-height:1.7}
.prose p:last-child{margin-bottom:0}

/* charity logo tile */
.charity-logo{max-width:320px;margin:28px auto 0;background:var(--cream);padding:28px 32px;border-radius:3px;display:flex;align-items:center;justify-content:center}
.charity-logo img{max-height:90px;width:auto;max-width:100%}

/* brands → exhibitor CTA */
.brands-cta{text-align:center;margin-top:36px}

/* venue maps link */
.maps-link{text-align:center;margin-top:28px}

/* FAQ accordion */
.faq{max-width:820px;margin:0 auto;border-top:1px solid rgba(189,160,58,.35)}
.faq details{border-bottom:1px solid rgba(189,160,58,.35)}
.faq summary{cursor:pointer;list-style:none;padding:18px 40px 18px 4px;font:600 1.05rem/1.4 var(--serif);color:var(--gold-l);position:relative}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";position:absolute;right:8px;top:50%;transform:translateY(-50%);color:var(--gold);font-weight:600;font-size:1.4rem;line-height:1}
.faq details[open] summary::after{content:"–"}
.faq .faq-a{padding:0 4px 20px;color:var(--text);line-height:1.65}
.faq .faq-a p+p,.faq .faq-a ol{margin-top:10px}
.faq .faq-a ol{list-style:decimal;padding-left:1.4em}
.faq .faq-a li{margin-bottom:6px}
.faq-contact{text-align:center;margin-top:36px;color:var(--mute)}
.faq-contact a{font-weight:600}

/* preview banner (private) */
.preview-banner{background:#3a2e0a;border-bottom:1px solid var(--gold);color:var(--gold-l);text-align:center;padding:8px 16px;font-size:.85rem;letter-spacing:.04em}
.preview-banner strong{color:var(--cream)}

/* hero consumer headline */
.hero h1{font:600 clamp(1.45rem,3.8vw,1.95rem)/1.25 var(--serif);color:var(--gold-l);margin:0 auto 14px;max-width:20em}
@media(min-width:900px){.hero h1{margin-left:0}}

/* logo grids: solid cell borders (no 1px-gap seams) */
.brand-grid{gap:0;background:transparent;border:0;border-top:1px solid rgba(189,160,58,.32);border-left:1px solid rgba(189,160,58,.32)}
.brand-grid li{border-right:1px solid rgba(189,160,58,.32);border-bottom:1px solid rgba(189,160,58,.32)}

/* 2026 exhibitors: 20 logos = full rows at 2 / 4 / 5 columns (overrides the 15-logo rules in deck.css). 2026-10-08: NAFTA, First Round Collective, Rockwood removed; 5 logos added at the end */
@media(max-width:639px){#brands .brand-grid li:last-child{grid-column:auto}#brands .brand-grid li:last-child img{max-width:100%}}
@media(min-width:640px){#brands .brand-grid{grid-template-columns:repeat(4,1fr)}#brands .brand-grid li{padding:22px 10px}}
@media(min-width:960px){#brands .brand-grid{grid-template-columns:repeat(5,1fr)}}
#brands .brand-grid li:nth-child(5) img{max-width:100%}
#brands .brand-grid li:nth-child(5){--h:72px}
#brands .brand-grid li:nth-child(6){--h:92px}
#brands .brand-grid li:nth-child(7){--h:92px}
#brands .brand-grid li:nth-child(8){--h:80px}
#brands .brand-grid li:nth-child(9){--h:44px}
#brands .brand-grid li:nth-child(10){--h:92px}
#brands .brand-grid li:nth-child(11){--h:58px}
#brands .brand-grid li:nth-child(12){--h:44px}
#brands .brand-grid li:nth-child(13){--h:62px}
#brands .brand-grid li:nth-child(14){--h:52px}
#brands .brand-grid li:nth-child(15){--h:30px}
#brands .brand-grid li:nth-child(16){--h:80px}
#brands .brand-grid li:nth-child(17){--h:52px}
#brands .brand-grid li:nth-child(18){--h:60px}
#brands .brand-grid li:nth-child(19){--h:66px}
#brands .brand-grid li:nth-child(20){--h:68px}
@media(max-width:639px){#brands .brand-grid li:nth-child(5){--h:63px}#brands .brand-grid li:nth-child(6){--h:81px}#brands .brand-grid li:nth-child(7){--h:81px}#brands .brand-grid li:nth-child(8){--h:70px}#brands .brand-grid li:nth-child(9){--h:44px}#brands .brand-grid li:nth-child(10){--h:81px}#brands .brand-grid li:nth-child(11){--h:51px}#brands .brand-grid li:nth-child(12){--h:44px}#brands .brand-grid li:nth-child(13){--h:54px}#brands .brand-grid li:nth-child(14){--h:46px}#brands .brand-grid li:nth-child(15){--h:30px}#brands .brand-grid li:nth-child(16){--h:70px}#brands .brand-grid li:nth-child(17){--h:46px}#brands .brand-grid li:nth-child(18){--h:52px}#brands .brand-grid li:nth-child(19){--h:58px}#brands .brand-grid li:nth-child(20){--h:60px}}

/* ===== refs v8: Boomball-style ticket pill ===== */
.pill{display:inline-flex;align-items:center;justify-content:center;gap:.55em;min-height:46px;padding:12px 26px;border-radius:100px;background:#cdb468;color:#14110a;border:0;font:700 .9rem/1 var(--sans);letter-spacing:.08em;text-transform:uppercase;text-decoration:none;white-space:nowrap;box-shadow:0 2px 0 rgba(0,0,0,.25);transition:transform .3s cubic-bezier(.42,0,0,1),box-shadow .3s cubic-bezier(.42,0,0,1),background-color .25s}
.pill-arr{display:inline-block;transition:transform .3s cubic-bezier(.42,0,0,1);font-family:system-ui,sans-serif}
.pill:hover{background:#dcc583;color:#000;transform:translateY(-2px);box-shadow:0 8px 22px rgba(205,180,104,.28)}
.pill:hover .pill-arr{transform:translateX(5px)}
.pill:focus-visible{outline:3px solid #fff;outline-offset:3px;box-shadow:0 0 0 7px var(--gold-d)}
.card .pill{margin-top:auto}
.site-header .pill-hdr{flex:0 0 auto;min-height:44px;padding:10px 18px;font-size:.74rem}
@media(min-width:1200px){.site-header .pill-hdr{padding:11px 22px;font-size:.8rem}}

/* mobile sticky ticket bar */
.tix-bar{display:none}
@media(max-width:1099px){
  .tix-bar{display:flex;justify-content:center;position:fixed;left:0;right:0;bottom:0;z-index:60;padding:10px 16px calc(10px + env(safe-area-inset-bottom));background:linear-gradient(to top,rgba(13,12,10,.97) 60%,rgba(13,12,10,0));transform:translateY(110%);transition:transform .45s cubic-bezier(.42,0,0,1);pointer-events:none}
  .tix-bar.show{transform:none;pointer-events:auto}
  .tix-bar .pill{width:100%;max-width:420px;min-height:50px}
  body{padding-bottom:78px}
  .site-header .pill-hdr{padding:10px 14px;font-size:.7rem}
}

/* ===== refs v8: gold street map ===== */
.venue-map{position:relative;display:block;margin:34px auto 0;aspect-ratio:16/9;max-width:1100px;overflow:hidden;background:#0d0c0a;border:1px solid rgba(189,160,58,.3);text-decoration:none;color:inherit}
.venue-map:focus-visible{outline:3px solid #fff;outline-offset:3px}
.map-svg{position:absolute;inset:0;width:100%;height:100%;-webkit-mask-image:radial-gradient(ellipse 62% 70% at 50% 50%,#000 35%,transparent 100%);mask-image:radial-gradient(ellipse 62% 70% at 50% 50%,#000 35%,transparent 100%)}
.map-svg .st{fill:none;stroke:#c9ad5a;stroke-linecap:round;stroke-linejoin:round}
.st-minor{stroke-width:.6;opacity:.42}.st-mid{stroke-width:1.1;opacity:.7}.st-major{stroke-width:1.9;opacity:.9}
.js-anim .venue-map .st{stroke-dasharray:1;stroke-dashoffset:1;transition:stroke-dashoffset 3.6s cubic-bezier(.33,0,.2,1)}
/* 2026-10-08: slower, staged build-out (was 1.8s, all at once): freeways/major roads first, then mid, then minor streets */
.js-anim .venue-map .st-mid{transition-delay:.25s}.js-anim .venue-map .st-minor{transition-delay:.5s}
.js-anim .venue-map.drawn .st{stroke-dashoffset:0}
.map-pin{position:absolute;left:50%;top:50%;width:16px;height:16px;margin:-8px 0 0 -8px;border-radius:50%;background:#e8cf7a;box-shadow:0 0 0 3px rgba(13,12,10,.9),0 0 18px rgba(232,207,122,.8)}
.map-pin i{position:absolute;inset:-8px;border-radius:50%;border:2px solid #e8cf7a;animation:pinPulse 2.2s cubic-bezier(.42,0,0,1) infinite}
@keyframes pinPulse{0%{transform:scale(.4);opacity:.9}100%{transform:scale(2.6);opacity:0}}
.map-label{position:absolute;left:calc(50% + 22px);top:50%;transform:translateY(-50%);padding:10px 14px;background:rgba(13,12,10,.82);border-left:1px solid var(--gold);font:400 .78rem/1.5 var(--serif);letter-spacing:.14em;text-transform:uppercase;color:var(--text)}
.map-label b{display:block;font-weight:600;font-size:1.05rem;letter-spacing:.16em;color:var(--gold-l);margin-bottom:2px}
.map-credit{position:absolute;right:8px;bottom:6px;font:.62rem/1 system-ui,sans-serif;color:rgba(236,230,214,.55)}
.venue-map:hover .map-label{border-color:var(--gold-l)}
@media(max-width:640px){.venue-map{aspect-ratio:4/5}.map-label{left:50%;top:calc(50% + 24px);transform:translateX(-50%);text-align:center;border-left:0;border-top:1px solid var(--gold);white-space:nowrap;font-size:.66rem}.map-label b{font-size:.92rem}}

/* ===== refs v8: arch hero + parallax + reveals ===== */
.px-box{overflow:hidden}
[data-px]{transform:translate3d(0,var(--py,0px),0) scale(1.14);will-change:transform}
.js-anim .rv{transform:translateY(34px);transition:opacity .7s cubic-bezier(.42,0,0,1),transform .7s cubic-bezier(.42,0,0,1);transition-delay:var(--d,0s)}
@media(prefers-reduced-motion:reduce){
  .pill,.pill-arr,.tix-bar{transition:none}.pill:hover,.pill:hover .pill-arr{transform:none}
  .map-pin i{animation:none;opacity:.5;transform:scale(1.6)}
  .js-anim .venue-map .st{stroke-dashoffset:0;transition:none}
  [data-px]{transform:none!important}
}
@media(max-width:560px){.site-header .pill-hdr{display:none}}

/* ===== v10: Boomball-style photo reveal (scroll-scrubbed side clip + pop) ===== */
/* v11: double-hairline gold frame that opens with the reveal. Frame lines are pseudo-elements inset by --bi, so they follow the clip edge; outer shadow comes from the parent's drop-shadow filter (follows the clipped shape). */
.hero-media,.boom-wrap{filter:drop-shadow(0 22px 34px rgba(0,0,0,.6)) drop-shadow(0 0 22px rgba(189,160,58,.13))}
.boom-frame{position:relative;display:block;padding:14px;background:linear-gradient(160deg,#1a1711,#100e0a);border-radius:10px}
.hero-media .video-open.boom-frame{border:0;padding:14px;max-width:350px;margin:0 auto;border-radius:10px;background:linear-gradient(160deg,#1a1711,#100e0a)}
.boom-frame img,.split-media .boom-frame img{display:block;width:100%;height:auto;border:0;padding:0;background:none;border-radius:3px}
.boom-frame::before,.boom-frame::after{content:"";position:absolute;pointer-events:none;top:0;bottom:0;left:var(--bi,0px);right:var(--bi,0px);border-radius:10px;border:1px solid rgba(214,189,98,.55);box-shadow:inset 0 0 18px rgba(189,160,58,.12)}
.boom-frame::after{top:7px;bottom:7px;left:calc(var(--bi,0px) + 7px);right:calc(var(--bi,0px) + 7px);border-radius:5px;border-color:rgba(189,160,58,.32);box-shadow:none;z-index:1}
[data-boom]{clip-path:inset(0 var(--bi,0px) round 10px);will-change:clip-path,opacity,transform}
[data-boom].boom-pop{animation:boomPop .7s both}
@keyframes boomPop{0%{transform:scale(1)}38%{transform:scale(1.018);animation-timing-function:cubic-bezier(.45,0,.25,1)}100%{transform:scale(1)}}
@media(prefers-reduced-motion:reduce){[data-boom]{clip-path:none!important;opacity:1!important;animation:none!important}.boom-frame::before,.boom-frame::after{left:0!important;right:0!important}.boom-frame::after{left:7px!important;right:7px!important}}
