/* JAM — Silaa HSR. Gig-poster energy, fixed left rail. */

:root{
  --void:#0A0A0B;
  --void-2:#111113;
  --void-3:#1A1A1D;
  --saffron:#F2A31B;
  --red:#C1272D;
  --cream:#FFF4E2;
  --cream-dim:#9A9488;
  --lime:#C8F04A;
  --line:rgba(255,244,226,.13);

  --display:"Bricolage Grotesque",Impact,sans-serif;
  --ui:"Space Grotesk",ui-monospace,monospace;

  --rail:19rem;
  --pad:clamp(1.25rem,3.2vw,3.5rem);
  --ease:cubic-bezier(.22,1,.36,1);
}

*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{
  margin:0;background:var(--void);color:var(--cream);
  font-family:var(--ui);font-weight:300;font-size:clamp(15px,.95vw,16.5px);
  line-height:1.65;-webkit-font-smoothing:antialiased;overflow-x:hidden;
}
body.is-locked{overflow:hidden}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer}
::selection{background:var(--saffron);color:var(--void)}

h1,h2,h3,h4{font-family:var(--display);font-weight:800;margin:0;line-height:.92;
  letter-spacing:-.035em;text-transform:uppercase}
.mega{font-size:clamp(3rem,9.5vw,9rem)}
.h1{font-size:clamp(2.3rem,5.4vw,5rem)}
.h2{font-size:clamp(1.8rem,3.6vw,3.2rem)}
.h3{font-size:clamp(1.15rem,1.7vw,1.6rem)}
p{margin:0 0 1.1em}
.lede{font-size:clamp(1rem,1.25vw,1.2rem);line-height:1.6;color:#D6D0C4;max-width:58ch}
.muted{color:var(--cream-dim)}
.saf{color:var(--saffron)}
.stroke{-webkit-text-stroke:1.5px var(--saffron);color:transparent}

.tag{
  display:inline-block;font-family:var(--ui);font-size:.64rem;font-weight:500;
  letter-spacing:.28em;text-transform:uppercase;color:var(--saffron);
}

/* ---------- fixed left rail ---------- */
.rail{
  position:fixed;inset:0 auto 0 0;width:var(--rail);z-index:500;
  background:var(--void-2);border-right:1px solid var(--line);
  display:flex;flex-direction:column;padding:1.6rem 1.4rem;gap:1.4rem;
}
.rail__mark{display:flex;align-items:center;gap:.6rem}
.rail__badge{
  width:3.3rem;height:3.3rem;border-radius:50%;background:var(--red);
  display:grid;place-items:center;flex:none;line-height:1;
  box-shadow:0 0 0 1px rgba(255,244,226,.18);
}
.rail__badge b{font-family:var(--display);font-size:1.7rem;font-weight:800;
  letter-spacing:-.04em;text-transform:lowercase;color:var(--cream)}
.rail__name{font-family:var(--display);font-size:1.35rem;font-weight:800;
  text-transform:lowercase;letter-spacing:-.04em;line-height:1}
.rail__sub{font-size:.56rem;letter-spacing:.24em;text-transform:uppercase;
  color:var(--saffron);margin-top:.2rem}

.rail__nav{display:flex;flex-direction:column;gap:.1rem;margin-top:.6rem}
.rail__nav a{
  display:flex;align-items:baseline;gap:.7rem;padding:.62rem .7rem;
  font-family:var(--display);font-size:1.32rem;font-weight:700;text-transform:uppercase;
  letter-spacing:-.02em;color:var(--cream-dim);border-radius:.35rem;
  transition:color .3s,background .3s,padding-left .3s var(--ease);
}
.rail__nav a i{font-family:var(--ui);font-size:.6rem;font-style:normal;
  color:var(--saffron);opacity:.55}
.rail__nav a:hover{color:var(--cream);background:var(--void-3);padding-left:1.1rem}
.rail__nav a[aria-current]{color:var(--void);background:var(--saffron)}
.rail__nav a[aria-current] i{color:var(--void);opacity:.6}

.rail__foot{margin-top:auto;display:grid;gap:.9rem}
.rail__phone{
  font-family:var(--display);font-size:1.5rem;font-weight:800;letter-spacing:-.03em;
  color:var(--cream);transition:color .3s;
}
.rail__phone:hover{color:var(--saffron)}
.rail__meta{font-size:.72rem;color:var(--cream-dim);line-height:1.5}
.rail__cta{
  display:block;text-align:center;padding:.85rem;background:var(--saffron);
  color:var(--void);font-weight:700;font-size:.74rem;letter-spacing:.18em;
  text-transform:uppercase;border-radius:.35rem;transition:.3s;
}
.rail__cta:hover{background:var(--lime)}

/* open chip */
.chip{
  display:inline-flex;align-items:center;gap:.5rem;padding:.4rem .75rem;
  border:1px solid var(--line);border-radius:.3rem;font-size:.66rem;font-weight:500;
  letter-spacing:.14em;text-transform:uppercase;
}
.chip i{width:6px;height:6px;border-radius:50%;background:var(--cream-dim);flex:none}
.chip[data-state=open] i{background:var(--lime);animation:blip 1.8s infinite}
.chip[data-state=shut] i{background:var(--red)}
.chip [data-open-note]{color:var(--cream-dim);text-transform:none;letter-spacing:.02em}
@keyframes blip{50%{opacity:.25}}

/* mobile bar + drawer */
.topbar{display:none}
.drawer-btn{display:none}

/* ---------- content column ---------- */
.shell{margin-left:var(--rail);min-width:0}
.wrap{padding-inline:var(--pad);max-width:100rem}
.section{padding-block:clamp(3.5rem,7vw,7rem)}
.rule{height:1px;background:var(--line);border:0;margin:0}

/* ---------- hero ---------- */
.hero{position:relative;padding:clamp(3rem,6vw,5.5rem) 0 0;overflow:hidden}
.hero__type{position:relative;z-index:2}
.hero__type .mega{margin:0}
/* slack below the baseline so the mask never shears a descender */
.hero__type .row{display:block;overflow:hidden;padding-bottom:.10em;margin-bottom:-.10em}
.hero__type .row>span{display:block}
/* CSS-driven, so the headline cannot stay hidden if a CDN or rAF stalls */
.js .hero__type .row>span{transform:translateY(118%);animation:rowUp 1.05s var(--ease) forwards}
.js .hero__type .row:nth-of-type(1)>span{animation-delay:.08s}
.js .hero__type .row:nth-of-type(2)>span{animation-delay:.19s}
.js .hero__type .row:nth-of-type(3)>span{animation-delay:.30s}
.no-motion .hero__type .row>span{transform:none;animation:none}
@keyframes rowUp{to{transform:translateY(0)}}
.hero__pic{
  position:relative;margin-top:clamp(1.5rem,3vw,2.5rem);aspect-ratio:16/7;
  overflow:hidden;border:1px solid var(--line);
}
.hero__pic img{width:100%;height:100%;object-fit:cover;filter:saturate(.75) contrast(1.12)}
.hero__pic::after{
  content:"";position:absolute;inset:0;pointer-events:none;
  background:
    linear-gradient(180deg,rgba(10,10,11,.5),transparent 40%,rgba(10,10,11,.7)),
    repeating-linear-gradient(0deg,rgba(10,10,11,.32) 0 1px,transparent 1px 3px);
}
.hero__badge{
  position:absolute;right:clamp(1rem,3vw,2.5rem);top:clamp(1rem,3vw,2.5rem);z-index:3;
  background:var(--red);border-radius:50%;width:clamp(6rem,10vw,9rem);aspect-ratio:1;
  display:grid;place-items:center;text-align:center;padding:1rem;
  transform:rotate(-11deg);
}
.hero__badge span{font-family:var(--display);font-weight:800;font-size:.78rem;
  letter-spacing:.06em;text-transform:uppercase;line-height:1.15}
.hero__sub{
  display:flex;flex-wrap:wrap;gap:1rem 2.4rem;align-items:center;
  margin-top:clamp(1.5rem,3vw,2.4rem);
}

.btn{
  display:inline-flex;align-items:center;gap:.55rem;padding:.9rem 1.6rem;
  border:1px solid var(--saffron);border-radius:.3rem;font-weight:500;font-size:.74rem;
  letter-spacing:.18em;text-transform:uppercase;transition:.3s;white-space:nowrap;
}
.btn:hover{background:var(--saffron);color:var(--void)}
.btn--solid{background:var(--saffron);color:var(--void);font-weight:700}
.btn--solid:hover{background:var(--lime)}
.btn--ghost{border-color:var(--line);color:var(--cream-dim)}
.btn--ghost:hover{background:var(--cream);color:var(--void);border-color:var(--cream)}

/* ---------- ticker ---------- */
.ticker{
  border-block:1px solid var(--line);background:var(--saffron);color:var(--void);
  overflow:hidden;display:flex;padding-block:.6rem;user-select:none;
}
.ticker__row{display:flex;gap:2.2rem;padding-right:2.2rem;flex:none;
  animation:roll 34s linear infinite;align-items:center}
.ticker span{font-family:var(--display);font-weight:800;font-size:1rem;
  letter-spacing:-.01em;text-transform:uppercase;white-space:nowrap}
.ticker span.dot{font-size:.7rem;opacity:.55}
@keyframes roll{to{transform:translateX(-100%)}}

/* ---------- physics pile ---------- */
.pile{position:relative;border:1px solid var(--line);background:var(--void-2);
  border-radius:.4rem;overflow:hidden}
.pile canvas{display:block;width:100%;height:100%}
.pile__hint{
  position:absolute;left:1rem;bottom:.9rem;font-size:.66rem;letter-spacing:.2em;
  text-transform:uppercase;color:var(--cream-dim);pointer-events:none;
}
.pile__fallback{display:flex;flex-wrap:wrap;gap:.5rem;padding:1.6rem}
.pile__fallback span{
  padding:.5rem 1rem;border:1px solid var(--saffron);border-radius:.3rem;
  font-size:.78rem;font-weight:500;color:var(--saffron);
}

/* ---------- lineup (menu) ---------- */
.lineup{border-top:1px solid var(--line)}
.lu{
  display:grid;grid-template-columns:4.5rem 1fr auto;gap:1rem 1.4rem;align-items:center;
  padding:1.15rem .6rem;border-bottom:1px solid var(--line);position:relative;
  transition:background .3s,padding-left .35s var(--ease);
}
.lu:hover{background:var(--void-2);padding-left:1.4rem}
.lu__n{font-family:var(--ui);font-size:.72rem;color:var(--saffron);font-weight:500}
.lu__n b{color:var(--cream-dim);font-weight:300}
.lu__t{font-family:var(--display);font-size:clamp(1.15rem,1.9vw,1.7rem);font-weight:700;
  text-transform:uppercase;letter-spacing:-.02em;line-height:1.05}
.lu__p{font-family:var(--display);font-size:clamp(1.05rem,1.6vw,1.5rem);font-weight:800;
  color:var(--saffron);font-variant-numeric:tabular-nums}
.lu__d{grid-column:2/-1;font-size:.85rem;color:var(--cream-dim);margin:0;max-width:76ch}
.lu__i{grid-column:2/-1;font-size:.72rem;color:var(--saffron);opacity:.72;margin:.25rem 0 0}
.lu--feature{background:rgba(242,163,27,.09);border-left:3px solid var(--saffron)}
.lu__flag{
  display:inline-block;margin-left:.6rem;padding:.15rem .5rem;background:var(--red);
  border-radius:.2rem;font-family:var(--ui);font-size:.55rem;font-weight:500;
  letter-spacing:.18em;vertical-align:middle;
}

/* section head */
.shead{
  display:flex;align-items:flex-end;justify-content:space-between;gap:1.5rem;
  flex-wrap:wrap;padding-top:clamp(2.4rem,5vw,4rem);margin-bottom:1.2rem;
}
.shead__k{font-size:.8rem;color:var(--cream-dim);max-width:36ch;margin:0}

/* menu chips nav */
.chips{
  position:sticky;top:0;z-index:400;background:rgba(10,10,11,.93);
  backdrop-filter:blur(14px);border-bottom:1px solid var(--line);
  display:flex;gap:.4rem;overflow-x:auto;padding:.8rem var(--pad);scrollbar-width:none;
}
.chips::-webkit-scrollbar{display:none}
.chips a{
  flex:none;padding:.45rem .9rem;border:1px solid var(--line);border-radius:.25rem;
  font-size:.68rem;font-weight:500;letter-spacing:.14em;text-transform:uppercase;
  color:var(--cream-dim);transition:.25s;
}
.chips a:hover{color:var(--cream);border-color:var(--cream-dim)}
.chips a.is-active{background:var(--saffron);color:var(--void);border-color:var(--saffron);
  font-weight:700}

/* ---------- poster grid ---------- */
.posters{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--line);
  border:1px solid var(--line)}
.poster{
  background:var(--void);padding:clamp(1.3rem,2.2vw,2rem);display:grid;gap:.6rem;
  align-content:start;position:relative;overflow:hidden;transition:background .35s;
}
.poster:hover{background:var(--void-3)}
.poster__n{font-family:var(--display);font-size:3.4rem;font-weight:800;color:var(--void-3);
  line-height:.8;position:absolute;right:.6rem;top:.2rem}
.poster__c{font-size:.64rem;letter-spacing:.26em;text-transform:uppercase;color:var(--red);
  font-weight:500}
.poster__d{font-family:var(--display);font-size:1.35rem;font-weight:700;text-transform:uppercase;
  letter-spacing:-.02em;line-height:1.05;position:relative;z-index:1}
.poster__p{font-size:.82rem;color:var(--cream-dim);margin:0;position:relative;z-index:1}

/* ---------- stats ---------- */
.figs{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--line);
  border-block:1px solid var(--line)}
.fig{background:var(--void);padding:clamp(1.4rem,2.6vw,2.4rem) 1.2rem}
.fig__v{font-family:var(--display);font-size:clamp(2.4rem,4.4vw,4rem);font-weight:800;
  color:var(--saffron);line-height:.9;letter-spacing:-.04em}
.fig__l{font-size:.7rem;letter-spacing:.22em;text-transform:uppercase;margin-top:.6rem;
  font-weight:500}
.fig__s{font-size:.74rem;color:var(--cream-dim)}

/* ---------- waveform ---------- */
.wave{display:flex;align-items:flex-end;gap:3px;height:2.6rem}
.wave i{display:block;width:4px;background:var(--saffron);border-radius:1px;
  animation:bounce 1.1s ease-in-out infinite}
@keyframes bounce{0%,100%{height:18%}50%{height:100%}}

/* ---------- split ---------- */
.split{display:grid;grid-template-columns:1fr 1fr;gap:clamp(1.5rem,3.5vw,3.5rem);
  align-items:center}
.split--flip>*:first-child{order:2}
.pic{position:relative;overflow:hidden;border:1px solid var(--line)}
.pic img{width:100%;aspect-ratio:4/3;object-fit:cover;filter:saturate(.8) contrast(1.08)}
.pic figcaption{
  position:absolute;left:0;bottom:0;padding:.4rem .7rem;font-size:.58rem;
  letter-spacing:.14em;text-transform:uppercase;color:var(--cream-dim);
  background:rgba(10,10,11,.8);
}

/* ---------- gallery ---------- */
.grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);
  border:1px solid var(--line)}
.grid figure{margin:0;position:relative;overflow:hidden;background:var(--void)}
.grid img{width:100%;aspect-ratio:1;object-fit:cover;filter:saturate(.75) contrast(1.1);
  transition:transform .7s var(--ease),filter .4s}
.grid figure:hover img{transform:scale(1.06);filter:saturate(1) contrast(1)}
.grid figcaption{
  position:absolute;inset:auto 0 0;padding:1.4rem .8rem .6rem;font-size:.62rem;
  letter-spacing:.1em;color:var(--cream);
  background:linear-gradient(180deg,transparent,rgba(10,10,11,.92));
  opacity:0;transition:opacity .35s;
}
.grid figure:hover figcaption{opacity:1}

/* ---------- info blocks ---------- */
.info{display:grid;grid-template-columns:repeat(auto-fit,minmax(14rem,1fr));gap:1px;
  background:var(--line);border:1px solid var(--line)}
.info>div{background:var(--void);padding:1.4rem}
.info__l{font-size:.62rem;letter-spacing:.24em;text-transform:uppercase;color:var(--saffron);
  margin-bottom:.5rem;font-weight:500}
.info__v{font-family:var(--display);font-size:1.15rem;font-weight:700;line-height:1.3;
  text-transform:none;letter-spacing:-.01em}
.info__v a:hover{color:var(--saffron)}

.hours{width:100%;border-collapse:collapse}
.hours td{padding:.7rem 0;border-bottom:1px solid var(--line);font-size:.88rem}
.hours td:last-child{text-align:right;color:var(--cream-dim);font-variant-numeric:tabular-nums}
.hours tr.is-today td{color:var(--saffron);font-weight:500}

.pills{display:flex;flex-wrap:wrap;gap:.4rem}
.pill{padding:.42rem .85rem;border:1px solid var(--line);border-radius:.25rem;
  font-size:.7rem;color:#CFC8BA}
.pill--off{opacity:.38;text-decoration:line-through}

/* ---------- faq ---------- */
.faq details{border-bottom:1px solid var(--line)}
.faq summary{
  list-style:none;cursor:pointer;padding:1.15rem 0;display:flex;gap:1.5rem;
  justify-content:space-between;align-items:center;font-family:var(--display);
  font-weight:700;font-size:clamp(1rem,1.5vw,1.3rem);text-transform:uppercase;
  letter-spacing:-.01em;transition:color .25s;
}
.faq summary::-webkit-details-marker{display:none}
.faq summary:hover{color:var(--saffron)}
.faq summary::after{content:"+";color:var(--saffron);font-size:1.4rem;flex:none;
  transition:transform .3s}
.faq details[open] summary::after{transform:rotate(45deg)}
.faq p{padding-bottom:1.2rem;margin:0;color:var(--cream-dim);max-width:70ch}

/* ---------- outlets ---------- */
.outs{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);
  border:1px solid var(--line)}
.out{background:var(--void);padding:clamp(1.3rem,2.2vw,2rem);display:grid;gap:.6rem;
  align-content:start}
.out--here{background:var(--void-3);border-left:3px solid var(--saffron)}
.out__c{font-size:.62rem;letter-spacing:.26em;text-transform:uppercase;color:var(--cream-dim)}
.out__n{font-family:var(--display);font-size:1.6rem;font-weight:800;text-transform:uppercase;
  letter-spacing:-.03em;line-height:1}
.out__x{font-size:.82rem;color:var(--cream-dim);margin:0}
.out__links{display:flex;gap:.8rem;flex-wrap:wrap;margin-top:.3rem}
.out__links a{font-size:.68rem;letter-spacing:.14em;text-transform:uppercase;
  color:var(--saffron);border-bottom:1px solid rgba(242,163,27,.4);padding-bottom:.1rem}
.out__links a:hover{border-color:var(--saffron)}

/* ---------- cta ---------- */
.cta{background:var(--saffron);color:var(--void);padding-block:clamp(3rem,6vw,5.5rem)}
.cta h2{color:var(--void)}
.cta .btn{border-color:var(--void);color:var(--void)}
.cta .btn:hover{background:var(--void);color:var(--saffron)}
.cta .btn--solid{background:var(--void);color:var(--saffron)}
.cta .btn--solid:hover{background:var(--red);color:var(--cream)}

/* ---------- footer ---------- */
.foot{border-top:1px solid var(--line);padding-block:clamp(2.5rem,5vw,4rem) 1.5rem}
.foot__g{display:grid;grid-template-columns:1.5fr 1fr 1fr;gap:2rem}
.foot__h{font-size:.62rem;letter-spacing:.24em;text-transform:uppercase;color:var(--saffron);
  margin-bottom:.8rem;font-weight:500}
.foot__l{list-style:none;margin:0;padding:0;display:grid;gap:.45rem;font-size:.85rem;
  color:var(--cream-dim)}
.foot__l a:hover{color:var(--saffron)}
.foot__b{display:flex;justify-content:space-between;gap:1.5rem;flex-wrap:wrap;
  margin-top:2.5rem;padding-top:1.2rem;border-top:1px solid var(--line);
  font-size:.72rem;color:var(--cream-dim)}

/* ---------- anim base ---------- */
/* hidden only when JS is confirmed alive; revealed by a CSS transition */
.js .rise{opacity:0;transform:translateY(22px);
  transition:opacity .8s var(--ease),transform .8s var(--ease)}
.js .rise.is-in{opacity:1;transform:none}
.no-motion .rise{opacity:1!important;transform:none!important}

/* ---------- responsive ---------- */
@media (max-width:1180px){
  .posters{grid-template-columns:repeat(2,1fr)}
  .figs{grid-template-columns:repeat(2,1fr)}
  .outs{grid-template-columns:1fr}
}
@media (max-width:1000px){
  :root{--rail:0px}
  .rail{
    inset:0 0 auto 0;width:100%;height:auto;flex-direction:row;align-items:center;
    padding:.8rem var(--pad);gap:1rem;border-right:0;border-bottom:1px solid var(--line);
  }
  .rail__nav,.rail__foot{display:none}
  .drawer-btn{
    display:grid;place-items:center;gap:4px;margin-left:auto;width:2.7rem;height:2.7rem;
    border:1px solid var(--line);border-radius:.3rem;
  }
  .drawer-btn span{display:block;width:15px;height:1.5px;background:var(--cream);
    transition:transform .35s var(--ease)}
  .drawer-btn.is-open span:first-child{transform:translateY(2.75px) rotate(45deg)}
  .drawer-btn.is-open span:last-child{transform:translateY(-2.75px) rotate(-45deg)}
  .shell{margin-left:0;padding-top:4.4rem}
  .drawer{
    position:fixed;inset:4.4rem 0 auto;z-index:490;background:var(--void-2);
    border-bottom:1px solid var(--line);padding:1rem var(--pad) 1.6rem;
    display:grid;gap:.1rem;transform:translateY(-115%);transition:transform .45s var(--ease);
  }
  .drawer.is-open{transform:translateY(0)}
  .drawer a{
    padding:.7rem .4rem;font-family:var(--display);font-size:1.5rem;font-weight:700;
    text-transform:uppercase;border-bottom:1px solid var(--line);
  }
  .drawer a[aria-current]{color:var(--saffron)}
  .drawer__foot{display:flex;gap:.7rem;flex-wrap:wrap;margin-top:1rem}
  .split{grid-template-columns:1fr}
  .split--flip>*:first-child{order:0}
  .grid{grid-template-columns:repeat(2,1fr)}
  .foot__g{grid-template-columns:1fr 1fr}
}
@media (min-width:1001px){.drawer{display:none}}
@media (max-width:620px){
  .posters,.figs{grid-template-columns:1fr}
  .grid{grid-template-columns:1fr}
  .foot__g{grid-template-columns:1fr}
  .lu{grid-template-columns:2.6rem 1fr;row-gap:.3rem}
  .lu__p{grid-column:2;justify-self:start}
  .lu__d,.lu__i{grid-column:2}
}
@media (prefers-reduced-motion:reduce){
  *{animation-duration:.01ms!important;animation-iteration-count:1!important;
    transition-duration:.01ms!important}
  .rise{opacity:1;transform:none}
}
