/* ============================================================
   BAILA NEW YORK — minimalist premium design system
   Site by oxvelo · typography-led · monochrome + one accent
   ============================================================ */
:root{
  --bg:#fffdf8;              /* page background */
  --bg-alt:#fdf3e9;          /* card / quiet fills */
  --ink:#1d1d1f;             /* body text */
  --ink-2:#6e6e73;           /* secondary text */
  --hairline:#d2d2d7;        /* light hairlines */
  --noir:#190a21;               /* dark sections */
  --noir-card:#251232;       /* raised dark surface */
  --noir-ink:#f5f5f7;        /* text on dark */
  --noir-ink-2:#a1a1a6;      /* secondary on dark */
  --noir-hairline:#3d2a49;   /* dark hairlines */
  --accent:#ff375f;          /* primary accent */
  --mango:#ff9f0a;           /* festive secondary */
  --violet:#bf5af2;          /* festive tertiary */
  --mint:#2bd4bd;            /* festive quaternary */
  --grad:linear-gradient(96deg,#ff375f 0%,#ff9f0a 100%);
  --display:"Inter",system-ui,-apple-system,"Helvetica Neue",sans-serif;
  --body:"Inter",system-ui,-apple-system,"Helvetica Neue",sans-serif;
  --mono:"Inter",system-ui,-apple-system,"Helvetica Neue",sans-serif;
  --maxw:1160px;
  --radius:20px;
  --glass:rgba(251,251,253,.8);
  --shadow-pop:0 20px 60px rgba(0,0,0,.12);
  --shadow-card:0 12px 32px rgba(0,0,0,.08);
}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
body{
  margin:0;font-family:var(--body);color:var(--ink);background:var(--bg);
  line-height:1.6;font-size:1.0625rem;-webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}
img{max-width:100%;height:auto;display:block}
a{color:inherit}
main a:not(.btn):not(.card a):not(.oxvelo-badge){text-decoration-color:var(--hairline);text-underline-offset:3px}
main p a:not(.btn){color:var(--accent);text-decoration:none}
main p a:not(.btn):hover{text-decoration:underline}
:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:4px}
::selection{background:var(--accent);color:#fff}

/* ---- skip link ---- */
.skip-link{
  position:absolute;left:1rem;top:-4rem;z-index:1100;background:var(--ink);
  color:#fff;padding:.7rem 1.2rem;border-radius:999px;font-weight:600;font-size:.85rem;
  text-decoration:none;transition:top .2s;box-shadow:var(--shadow-pop);
}
.skip-link:focus{top:1rem}

/* ---- type ---- */
h1,h2,h3,h4{
  font-family:var(--display);font-weight:700;line-height:1.08;margin:0 0 .55em;
  letter-spacing:-.015em;text-transform:none;
}
h1{font-size:clamp(2.6rem,6vw,4.75rem)}
h2{font-size:clamp(1.9rem,3.5vw,2.75rem);letter-spacing:-.01em}
h3{font-size:1.35rem;font-weight:600;letter-spacing:-.005em}
/* the JS "flourish" wrapper: neutralised — pure inheritance, no script face */
.flourish{font:inherit;color:inherit;text-shadow:none;display:inline;padding:0;line-height:inherit}
.kicker{
  font-family:var(--body);font-size:12px;font-weight:600;letter-spacing:.06em;
  text-transform:uppercase;color:var(--ink-2);margin:0 0 .9rem;
}
.lede{font-size:1.25rem;line-height:1.5;color:var(--ink-2);max-width:60ch;font-weight:400}
.mono{font-family:var(--mono)}

/* centered section heads where they sit directly in a wrap */
.band .wrap>.kicker,.band .wrap>h2{text-align:center}
.band .wrap>.lede{margin-left:auto;margin-right:auto;text-align:center}
.band .wrap>.btn-row{justify-content:center}

/* ---- bands: alternating light and pure black ---- */
.band{padding:clamp(4rem,9vw,7rem) 1.25rem;position:relative}
.band--cream{background:var(--bg);color:var(--ink)}
.band--noir{background:var(--noir);color:var(--noir-ink-2)}
.band--noir h1,.band--noir h2,.band--noir h3,.band--noir h4{color:var(--noir-ink)}
.band--noir .kicker{color:var(--noir-ink-2)}
.band--noir .lede{color:var(--noir-ink-2)}
.band--papaya{background:var(--noir);color:var(--noir-ink-2)}
.band--papaya h1,.band--papaya h2,.band--papaya h3{color:var(--noir-ink)}
.band--papaya .kicker{color:var(--noir-ink-2)}
.band--papaya .lede{color:var(--noir-ink-2)}
.wrap{max-width:var(--maxw);margin:0 auto}
.stripes{display:none}

/* ---- header: 48px glass bar ---- */
.site-header{
  position:sticky;top:0;z-index:100;color:var(--ink);
  background:var(--glass);
  
  
  border-bottom:1px solid rgba(0,0,0,.08);
background:transparent;isolation:isolate;}.site-header::before{content:"";position:absolute;inset:0;z-index:-1;background:rgba(251,251,253,.86);backdrop-filter:blur(20px) saturate(1.8);-webkit-backdrop-filter:blur(20px) saturate(1.8);}
.header-inner{
  max-width:var(--maxw);margin:0 auto;display:flex;align-items:center;
  justify-content:space-between;gap:1rem;padding:0 1.25rem;min-height:48px;
}
.brand{
  display:flex;align-items:center;gap:.55rem;text-decoration:none;color:var(--ink);
  font-family:var(--body);font-weight:600;font-size:16px;letter-spacing:-.01em;
  white-space:nowrap;line-height:1;
}
.brand .bmark{
  width:24px;height:24px;border-radius:7px;background:var(--ink);color:#fff;
  display:grid;place-items:center;font-weight:600;font-size:14px;transform:none;
  box-shadow:none;transition:none;
}
.brand:hover .bmark{transform:none}
.brand .dates{display:none}
.nav-toggle{
  display:none;background:none;border:1px solid var(--hairline);color:var(--ink);
  border-radius:999px;padding:.35rem .8rem;font-family:var(--body);font-size:12px;
  font-weight:600;letter-spacing:.06em;cursor:pointer;
}
.nav-toggle[aria-expanded="true"]{border-color:var(--ink);color:var(--ink);box-shadow:none}
.site-nav ul{list-style:none;margin:0;padding:0;display:flex;gap:.35rem;align-items:center;flex-wrap:wrap}
.site-nav a{
  display:block;padding:.6rem .55rem;text-decoration:none;font-weight:500;font-size:14px;
  white-space:nowrap;border-radius:999px;color:var(--ink);opacity:.88;
  transition:opacity .15s ease,color .15s ease;
}
.site-nav a:hover{opacity:1;color:var(--ink);text-shadow:none}
.site-nav a[aria-current="page"]{color:var(--accent);opacity:1;box-shadow:none}
.site-nav .cta a{
  background:var(--accent);color:#fff;font-weight:600;opacity:1;
  padding:.35rem .85rem;box-shadow:none;display:inline-flex;align-items:center;
}
.site-nav .cta a:hover{background:#e42f56;color:#fff;box-shadow:none}
.site-nav .cta a[aria-current="page"]{box-shadow:none;color:#fff}
/* decorative EQ bars from site.js: retired */
.eq{display:none}
.has-sub{position:relative;display:flex;align-items:center;flex-wrap:nowrap}
.sub-toggle{
  background:none;border:0;color:var(--ink-2);cursor:pointer;padding:.35rem .2rem;
  font-size:.6rem;line-height:1;border-radius:6px;
}
.sub-toggle:hover{color:var(--ink)}
.sub-toggle::after{content:"▾"}
.sub-toggle[aria-expanded="true"]::after{content:"▴"}
/* dropdown: white glass panel */
.sub-menu{
  display:none;position:absolute;top:calc(100% + .7rem);left:0;min-width:14rem;
  background:rgba(255,255,255,.92);
  -webkit-backdrop-filter:blur(20px) saturate(1.8);
  backdrop-filter:blur(20px) saturate(1.8);
  border:1px solid rgba(0,0,0,.06);border-radius:18px;padding:.5rem !important;
  flex-direction:column;align-items:stretch;gap:0 !important;z-index:120;text-align:left;
  box-shadow:var(--shadow-pop);
}
.sub-menu::before{display:none}
.site-nav ul.sub-menu{display:none;align-items:stretch}
.has-sub.open .sub-menu,.site-nav .has-sub.open ul.sub-menu{display:flex}
.sub-menu a{font-size:14px;font-weight:500;padding:.55rem .85rem;text-align:left;border-radius:10px;opacity:1}
.sub-menu a:hover{background:var(--bg-alt);color:var(--ink)}
.lang-switch{font-family:var(--body);font-size:11px;letter-spacing:.03em;color:var(--ink-2)}

/* language switcher — must out-rank the per-page inline <style> fallback */
.site-header nav.bny-ls{display:inline-flex;gap:.3rem;align-items:center;margin-left:.4rem;flex:0 0 auto}
.site-header nav.bny-ls a{
  font-family:var(--body) !important;font-size:11px !important;font-weight:500;
  letter-spacing:.04em;text-decoration:none;
  color:var(--ink-2) !important;opacity:1 !important;padding:.25rem .25rem;
  border-bottom:0 !important;box-shadow:none !important;
}
.site-header nav.bny-ls a:hover{color:var(--ink) !important}
.site-header nav.bny-ls a[aria-current="true"]{
  color:var(--accent) !important;font-weight:600;border-bottom:0 !important;
}

@media (max-width:1120px){
  .nav-toggle{display:block}
  .site-nav{display:none;position:absolute;top:100%;left:0;right:0;
    background:#fbfbfd;
    border-bottom:1px solid var(--hairline);
    padding:1rem 1.25rem 1.75rem;max-height:calc(100vh - 4rem);overflow:auto;
    box-shadow:var(--shadow-pop)}
  .site-nav.open{display:block}
  .site-nav ul{flex-direction:column;align-items:stretch;gap:.1rem}
  .site-nav a{font-size:17px;font-weight:500;padding:.6rem .55rem;opacity:1}
  .site-nav .cta a{display:inline-flex;padding:.5rem 1.1rem}
  .has-sub{flex-direction:column;align-items:stretch}
  .sub-menu,.site-nav ul.sub-menu{display:flex;position:static;border:0;background:none;box-shadow:none;align-items:stretch;
    -webkit-backdrop-filter:none;backdrop-filter:none;
    border-left:1px solid var(--hairline);border-radius:0;margin-left:.75rem;flex-direction:column;padding:.2rem 0 .2rem .4rem !important}
  .sub-menu a{font-size:14px;flex:0 1 auto}
}

/* ---- hero: light, centered headline, image as rounded figure below ---- */
.hero,.hero.band--noir{background:var(--bg);color:var(--ink);overflow:visible;display:flex;flex-direction:column}
.hero .wrap{position:relative;z-index:2;order:1;padding:clamp(3rem,7vw,5.5rem) 0 0;text-align:center;width:100%}
.hero-img{
  position:static;inset:auto;z-index:auto;order:2;
  width:100%;max-width:var(--maxw);margin:clamp(2.2rem,5vw,3.5rem) auto 0;
  border-radius:24px;overflow:hidden;box-shadow:var(--shadow-card);
}
.hero-img img{width:100%;height:auto;object-fit:cover;opacity:1;filter:none}
.hero-scrim{display:none}
.hero::after{content:none}
.hero h1,.hero.band--noir h1{color:var(--ink);max-width:16em;margin-left:auto;margin-right:auto;text-shadow:none}
.hero .lede,.hero.band--noir .lede{color:var(--ink-2);margin-left:auto;margin-right:auto}
.hero .dates-line,.hero.band--noir .dates-line{
  font-family:var(--body);color:var(--ink-2);letter-spacing:.06em;font-weight:600;
  font-size:12px;text-transform:uppercase;margin-bottom:1.1rem;text-shadow:none;
}
.hero .btn-row{justify-content:center}

/* ---- buttons ---- */
.btn{
  display:inline-block;padding:.8rem 1.55rem;border-radius:999px;font-weight:600;
  text-decoration:none;font-family:var(--body);font-size:17px;letter-spacing:0;
  border:0;transition:transform .18s ease,box-shadow .18s ease,background .18s ease,color .18s ease;
}
.btn--primary{background:var(--accent);color:#fff;box-shadow:none}
.btn--primary:hover{background:#e42f56;color:#fff;transform:none;box-shadow:none}
/* secondary = quiet accent text link with chevron */
.btn--ghost{background:none;border:0;color:var(--accent);padding:.8rem .35rem}
.btn--ghost::after{content:"\00a0›";font-weight:600}
.btn--ghost:hover{transform:none;box-shadow:none;text-decoration:underline;text-underline-offset:3px}
.band--noir .btn--ghost:hover,.band--papaya .btn--ghost:hover{color:var(--accent)}
.band--cream .btn--ghost:hover{color:var(--accent)}
.btn-row{display:flex;gap:1.1rem;flex-wrap:wrap;margin-top:1.8rem;align-items:center}

/* ---- marquee: retired ---- */
.marquee{display:none}
.marquee-track{animation:none}

/* ---- chips: quiet neutral pills ---- */
.chip-row{display:flex;flex-wrap:wrap;align-items:center}
.chip,.chip:nth-child(2n),.chip:nth-child(3n){
  display:inline-block;font-family:var(--body);font-size:12px;font-weight:500;
  letter-spacing:.01em;padding:.28rem .7rem;border-radius:999px;
  background:#e8e8ed;color:var(--ink);transform:none;
  margin:.18rem .3rem .18rem 0;box-shadow:none;
}
.band--noir .chip,.band--noir .chip:nth-child(2n),.band--noir .chip:nth-child(3n){background:#2c2c2e;color:var(--noir-ink)}
.chip--plain{background:#e8e8ed;color:var(--ink)}

/* ---- card grids: soft fills, no borders, hover lift ---- */
.grid{display:grid;gap:1.4rem;margin-top:2.5rem}
.grid--2{grid-template-columns:repeat(auto-fit,minmax(min(100%,22rem),1fr))}
.grid--3{grid-template-columns:repeat(auto-fit,minmax(min(100%,17rem),1fr))}
.grid--4{grid-template-columns:repeat(auto-fit,minmax(min(100%,14rem),1fr))}
.card{
  background:var(--bg-alt);border:0;border-radius:var(--radius);
  padding:clamp(2rem,3vw,2.5rem);position:relative;box-shadow:none;
  transition:transform .3s ease,box-shadow .3s ease;
}
.card:hover{transform:translateY(-2px);box-shadow:var(--shadow-card)}
.band--noir .card{background:var(--noir-card);color:var(--noir-ink-2);box-shadow:none}
.band--noir .card:hover{box-shadow:0 12px 32px rgba(0,0,0,.5)}
.card h3 a{text-decoration:none}
.card h3 a:hover{color:var(--accent)}
.band--noir .card h3 a:hover{color:var(--accent)}
.card .mono-line{
  font-family:var(--body);font-size:12px;font-weight:600;letter-spacing:.06em;
  text-transform:uppercase;color:var(--ink-2);margin:.2rem 0 .7rem;
}
.band--noir .card .mono-line{color:var(--noir-ink-2)}
.card--accent,.card--gold,.card--teal{box-shadow:none}
.card--accent:hover,.card--gold:hover,.card--teal:hover{box-shadow:var(--shadow-card)}

/* ---- schedule: day headers as small caps ---- */
.day-block{margin-top:3.2rem}
.day-block h3{
  display:flex;justify-content:space-between;align-items:baseline;flex-wrap:wrap;gap:.6rem;
  border-bottom:1px solid var(--hairline);padding-bottom:.6rem;
  text-transform:uppercase;font-size:12px;font-weight:600;letter-spacing:.06em;
  color:var(--ink-2);
}
.band--noir .day-block h3{border-bottom-color:var(--noir-hairline);color:var(--noir-ink-2)}
.day-block h3 .mono{
  font-size:12px;font-weight:600;letter-spacing:.06em;align-self:baseline;
  background:none;color:var(--ink-2);padding:0;border-radius:0;
  transform:none;box-shadow:none;
}
.band--cream .day-block h3 .mono{background:none;color:var(--ink-2);box-shadow:none}
.band--noir .day-block h3 .mono{color:var(--noir-ink-2)}
.sess-day{margin-top:1.4rem;color:var(--ink-2)}

/* ---- session rows: airy hairline list ---- */
.sess{
  display:grid;grid-template-columns:7.5rem 1fr;gap:1.25rem;align-items:baseline;
  background:none;border-radius:0;margin:0;padding:1.05rem .25rem;
  border:0;border-top:1px solid var(--hairline);box-shadow:none;position:relative;overflow:visible;
}
.sess::before{content:none}
.sess time,.sess .t{
  font-family:var(--body);font-size:15px;color:var(--accent);font-weight:600;white-space:nowrap;
  display:block;padding:0;background:none;border:0;margin-left:0;
}
.sess .what{padding:0}
.sess .what strong{font-family:var(--body);font-weight:600;font-size:17px;letter-spacing:-.005em;color:var(--ink)}
.sess .meta{font-family:var(--body);font-size:13px;color:var(--ink-2);letter-spacing:0;display:block;margin-top:.3rem}
.band--noir .sess{background:none;border-top-color:var(--noir-hairline);box-shadow:none}
.band--noir .sess time,.band--noir .sess .t{color:var(--accent);background:none;border:0}
.band--noir .sess .what strong{color:var(--noir-ink)}
.band--noir .sess .meta{color:var(--noir-ink-2)}
/* tags: quiet neutral micro-pills */
.sess .tag,
.sess .tag[data-type="concert"],
.sess .tag[data-type="party"],.sess .tag[data-type="social"],
.sess .tag[data-type="bootcamp"]{
  display:inline-block;font-family:var(--body);font-size:11px;text-transform:uppercase;
  letter-spacing:.06em;padding:.18rem .6rem;border-radius:999px;margin-left:.55rem;
  vertical-align:middle;font-weight:600;border:0;transform:none;
  background:#e8e8ed;color:var(--ink-2);
}
.band--noir .sess .tag,
.band--noir .sess .tag[data-type="concert"],
.band--noir .sess .tag[data-type="party"],.band--noir .sess .tag[data-type="social"],
.band--noir .sess .tag[data-type="bootcamp"]{background:#2c2c2e;color:var(--noir-ink-2);border:0}
@media (max-width:640px){
  .sess{grid-template-columns:1fr;gap:.25rem}
  .sess time,.sess .t{border:0;padding:0}
  .band--noir .sess time,.band--noir .sess .t{border:0}
}

/* ---- filters ---- */
.filters{display:flex;flex-wrap:wrap;gap:1rem;margin:2rem 0 1rem;align-items:end}
.filters label{
  display:block;font-family:var(--body);font-size:12px;letter-spacing:.06em;
  text-transform:uppercase;margin-bottom:.35rem;font-weight:600;color:var(--ink-2);
}
.filters select{
  font-family:var(--body);font-size:.95rem;padding:.6rem .8rem;border:1px solid var(--hairline);
  border-radius:12px;background:#fff;color:var(--ink);min-width:9rem;
}
.filters select:hover{border-color:var(--ink-2)}
.filter-pills{display:flex;flex-wrap:wrap;gap:.5rem;margin:1.6rem 0}
.filter-pills button{
  font-family:var(--body);font-size:13px;letter-spacing:0;padding:.5rem 1.05rem;border-radius:999px;
  border:1px solid var(--hairline);background:transparent;color:var(--ink);cursor:pointer;font-weight:500;
  transition:background .15s ease,color .15s ease,border-color .15s ease;
}
.filter-pills button:hover{transform:none;box-shadow:none;border-color:var(--ink-2)}
.band--noir .filter-pills button{border-color:var(--noir-hairline);color:var(--noir-ink)}
.filter-pills button[aria-pressed="true"]{
  background:var(--accent);border-color:var(--accent);color:#fff;box-shadow:none;font-weight:600;
}
.result-count{font-family:var(--body);font-size:12px;color:var(--ink-2);margin:.5rem 0 0}
.band--noir .result-count{color:var(--noir-ink-2)}

/* ---- artist cards ---- */
.artist-card{overflow:hidden;padding:0;text-align:left}
.artist-card .ph,
.artist-card:nth-child(3n) .ph,
.artist-card:nth-child(3n+1) .ph{
  aspect-ratio:4/3;display:grid;place-items:center;font-family:var(--body);font-weight:600;
  font-size:2.2rem;letter-spacing:.02em;color:var(--ink-2);text-shadow:none;
  background:#e8e8ed;
}
.band--noir .artist-card .ph,
.band--noir .artist-card:nth-child(3n) .ph,
.band--noir .artist-card:nth-child(3n+1) .ph{background:#2c2c2e;color:var(--noir-ink-2)}
.artist-card .body{padding:1.4rem 1.6rem 1.7rem}
.artist-card .role{
  font-family:var(--body);font-size:12px;text-transform:uppercase;letter-spacing:.06em;
  font-weight:600;color:var(--ink-2);
}
.band--noir .artist-card .role{color:var(--noir-ink-2)}

/* ---- notes / callouts ---- */
.note{
  border:0;border-radius:18px;padding:1.2rem 1.5rem;margin:1.8rem 0;
  font-size:.95rem;background:var(--bg-alt);
}
.band--noir .note{background:var(--noir-card);border:0}
.note .mono{color:var(--ink);font-weight:600}
.band--noir .note .mono{color:var(--noir-ink)}

/* ---- forms ---- */
.form-grid{display:grid;gap:1.15rem;max-width:38rem;margin-top:1.6rem}
.form-grid label{
  font-family:var(--body);font-size:12px;letter-spacing:.06em;text-transform:uppercase;
  font-weight:600;display:block;margin-bottom:.35rem;color:var(--ink-2);
}
.form-grid input,.form-grid textarea,.form-grid select{
  width:100%;padding:.75rem .9rem;border:1px solid var(--hairline);border-radius:12px;
  font-family:var(--body);font-size:1rem;background:#fff;color:var(--ink);
}
.form-grid input:focus-visible,.form-grid textarea:focus-visible,.form-grid select:focus-visible{
  outline-offset:1px;border-color:var(--accent);
}
.form-grid .check{display:flex;gap:.6rem;align-items:flex-start}
.form-grid .check input{width:auto;margin-top:.3rem}
.form-grid .check label{text-transform:none;letter-spacing:0;font-family:var(--body);font-weight:400;font-size:.9rem;color:var(--ink)}

/* ---- gallery ---- */
.gal-grid{display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(min(100%,16rem),1fr));margin:1.6rem 0}
.gal-grid img{border-radius:18px;width:100%;height:100%;object-fit:cover;aspect-ratio:3/2;box-shadow:none}

/* ---- footer: quiet light gray ---- */
.site-footer{
  background:var(--bg-alt);color:var(--ink-2);padding:3.5rem 1.25rem 5rem;
  border-top:1px solid var(--hairline);box-shadow:none;font-size:12px;
}
.site-footer .wrap{display:grid;gap:2.2rem;grid-template-columns:repeat(auto-fit,minmax(min(100%,15rem),1fr))}
.site-footer h2{
  font-size:12px;color:var(--ink);letter-spacing:.06em;font-family:var(--body);
  text-transform:uppercase;font-weight:600;margin-bottom:.9em;text-align:left;
}
.site-footer p{font-size:12px;line-height:1.6}
.site-footer a{color:var(--ink-2);text-decoration:none}
.site-footer a:hover{color:var(--ink);text-decoration:underline;text-shadow:none}
.site-footer ul{list-style:none;margin:0;padding:0;display:grid;gap:.5rem;font-size:12px}
.footer-legal{
  max-width:var(--maxw);margin:2.5rem auto 0;padding-top:1.4rem;border-top:1px solid var(--hairline);
  font-size:11px;font-family:var(--body);display:flex;flex-wrap:wrap;gap:1rem;justify-content:space-between;
  color:var(--ink-2);
}
.footer-legal a{color:var(--ink-2)}
.footer-legal a:hover{color:var(--ink)}

/* ---- oxvelo badge: light glass pill ---- */
.oxvelo-badge{
  position:fixed;right:.9rem;bottom:.9rem;z-index:90;color:var(--ink-2);
  background:rgba(255,255,255,.92);
  -webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);
  border:1px solid var(--hairline);border-radius:999px;padding:.42rem .9rem;
  font-family:var(--body);font-size:11px;font-weight:500;letter-spacing:.03em;
  text-decoration:none;display:flex;gap:.45rem;align-items:center;
  box-shadow:0 4px 18px rgba(0,0,0,.08);transition:bottom .2s ease,box-shadow .2s ease;
}
.oxvelo-badge:hover{box-shadow:0 6px 22px rgba(0,0,0,.12)}
.oxvelo-badge span{color:var(--ink-2)}
.oxvelo-badge .plat{color:var(--accent) !important;font-weight:700}

/* ---- sticky mobile ticket bar (injected by site.js) ---- */
.bny-ticketbar{display:none}
@media (max-width:700px){
  .bny-ticketbar{
    position:fixed;left:0;right:0;bottom:0;z-index:95;display:flex;gap:.6rem;align-items:center;
    padding:.6rem .8rem calc(.6rem + env(safe-area-inset-bottom,0px));
    background:rgba(251,251,253,.85);
    -webkit-backdrop-filter:blur(20px) saturate(1.8);backdrop-filter:blur(20px) saturate(1.8);
    border-top:1px solid var(--hairline);box-shadow:none;
  }
  .bny-ticketbar .bny-tb-link{
    flex:1;text-align:center;text-decoration:none;font-weight:600;font-family:var(--body);
    font-size:17px;padding:.7rem 1rem;border-radius:999px;color:#fff;
    background:var(--accent);box-shadow:none;
  }
  .bny-ticketbar .bny-tb-close{
    flex:0 0 auto;width:2.2rem;height:2.2rem;border-radius:50%;cursor:pointer;
    background:none;border:1px solid var(--hairline);color:var(--ink-2);
    font-size:1.1rem;line-height:1;display:grid;place-items:center;font-family:var(--body);
  }
  body.bny-has-ticketbar .oxvelo-badge{bottom:4.7rem}
  body.bny-has-ticketbar .site-footer{padding-bottom:8.5rem}
}

/* ---- reveal: gentle fade-up only ---- */
.reveal{opacity:0;transform:translateY(12px);transition:opacity .5s ease-out,transform .5s ease-out}
.reveal.in{opacity:1;transform:none}

/* ---- misc ---- */
.stat-row{display:flex;gap:3rem;flex-wrap:wrap;margin-top:2.5rem;justify-content:center}
.stat-row .stat{text-align:center}
.stat-row .stat b{
  display:block;font-family:var(--body);font-size:clamp(2.2rem,4vw,3rem);font-weight:700;
  line-height:1.1;letter-spacing:-.015em;color:var(--ink);
}
.band--noir .stat-row .stat b,.band--papaya .stat-row .stat b{color:var(--noir-ink);text-shadow:none}
.stat-row .stat span{
  font-family:var(--body);font-size:12px;font-weight:600;letter-spacing:.06em;
  text-transform:uppercase;color:var(--ink-2);
}
.band--noir .stat-row .stat span{color:var(--noir-ink-2)}
.theme-card .dress{font-family:var(--body);font-size:13px;color:var(--ink-2);font-weight:500}
.band--noir .theme-card .dress{color:var(--noir-ink-2)}
.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* ---- reduced motion ---- */
@media (prefers-reduced-motion:reduce){
  .reveal{opacity:1;transform:none;transition:none}
  .btn,.filter-pills button,.card{transition:none}
  .card:hover{transform:none}
}

/* ---- video figures: same rounded-24px language as .hero-img ---- */
.hero-video{display:block;width:100%;height:auto;object-fit:cover;background:#000}
.media-figure{
  margin:2.5rem auto 0;border-radius:24px;overflow:hidden;
  box-shadow:var(--shadow-card);background:#000;max-width:var(--maxw);
}
.media-figure video{display:block;width:100%;height:auto;object-fit:cover}
.film-figure{
  margin:2.4rem auto 0;max-width:920px;border-radius:24px;overflow:hidden;
  box-shadow:var(--shadow-pop);background:#000;
}
.film-figure video{display:block;width:100%;height:auto;aspect-ratio:16/9;background:#000}
.split--video{
  display:grid;grid-template-columns:1.15fr .85fr;
  gap:clamp(2rem,5vw,4rem);align-items:center;
}
.split--video .split-copy>.kicker,.split--video .split-copy>h1,
.split--video .split-copy>h2,.split--video .split-copy>.lede{text-align:left}
.vertical-video{margin:0;justify-self:center}
.vertical-video video{
  display:block;width:auto;max-width:100%;height:auto;max-height:640px;
  aspect-ratio:608/1080;border-radius:24px;box-shadow:var(--shadow-card);
  object-fit:cover;background:#000;
}
@media (max-width:840px){
  .split--video{grid-template-columns:1fr}
  .vertical-video{justify-self:center;margin-top:1.6rem}
}

/* ---- festive layer on the minimalist frame ---- */
.hero h1,.hero.band--noir h1{background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent}
.btn,.site-nav .cta a{background:var(--grad) !important;color:#fff !important;border:0}
.btn:hover,.site-nav .cta a:hover{filter:brightness(1.06)}
.sess .tag{background:var(--bg-alt);color:var(--ink)}
.sess .tag[data-type="concert"]{background:var(--accent);color:#fff}
.sess .tag[data-type="party"],.sess .tag[data-type="social"]{background:var(--mango);color:#3a2400}
.sess .tag[data-type="workshops"]{background:var(--mint);color:#00332c}
.sess .tag[data-type="bootcamp"]{background:transparent;color:var(--violet);box-shadow:inset 0 0 0 1.5px var(--violet)}
.sess .tag[data-type="show"]{background:var(--violet);color:#fff}
.site-header{border-bottom:1px solid transparent;border-image:linear-gradient(90deg,#ff375f,#ff9f0a,#2bd4bd) 1}

.site-header nav.bny-ls a{font-size:11px !important;padding:6px 4px !important;}

.brand img.bmark-img{width:2.4rem;height:2.4rem;object-fit:cover;border-radius:9px;background:none;transform:none;padding:0;display:block;box-shadow:0 1px 4px rgba(0,0,0,.18);}

.hero-logo{display:block;margin:0 auto 1.6rem;width:clamp(96px,11vw,148px);height:auto;border-radius:18px;box-shadow:0 10px 30px rgba(0,0,0,.18);}
@media (max-width:640px){.hero-logo{width:104px;}}
