/* ============================================================
   DJ VOCKA — SEE ME LIVE
   Not a calendar. A wall of nights that actually happened.
   ============================================================ */
.lv-main{ position:relative; z-index:2; }

/* ── opening ── */
.lv-hero{
  position:relative; min-height:88svh; display:grid; align-content:center; gap:clamp(16px,2.6vh,30px);
  padding:calc(var(--gut) + 6rem) var(--gut) clamp(40px,7vh,90px);
}
.lv-hero::before{
  content:''; position:absolute; inset:0; z-index:-1; pointer-events:none;
  background:radial-gradient(80% 60% at 22% 40%, color-mix(in srgb,var(--accent) 12%,transparent), transparent 68%);
}
.lv-title{
  font-family:var(--f-display); font-variation-settings:'wdth' 136,'wght' 900;
  font-size:clamp(46px,12.5vw,190px); line-height:.82; text-transform:uppercase; letter-spacing:-.045em;
}
body.lang-km .lv-title{ font-family:var(--f-khmer); font-weight:700; text-transform:none;
  letter-spacing:0; line-height:1.24; font-size:clamp(30px,7.4vw,110px); }
.lv-sub{ display:flex; flex-wrap:wrap; gap:.7rem 2rem; align-items:baseline;
  border-top:1px solid rgba(244,241,235,.14); padding-top:1.1rem; }
.lv-count{ font-family:var(--f-mono); font-size:clamp(12px,1.3vw,15px); color:var(--accent); }
.lv-lede{ font-size:clamp(13px,1.15vw,15.5px); color:var(--bone-dim); max-width:44ch; }
body.lang-km .lv-lede{ font-family:var(--f-khmer); line-height:1.85; }

.lv-next{
  position:relative; margin-top:clamp(20px,3.4vh,36px); padding:clamp(20px,2.6vw,30px);
  background:rgba(12,12,18,.6); box-shadow:inset 0 0 0 1px var(--ink-3);
  display:grid; gap:.8rem; max-width:min(100%, 620px); overflow:hidden;
}
.lv-next::before{ content:''; position:absolute; left:0; top:0; bottom:0; width:2px;
  background:var(--accent); box-shadow:0 0 20px var(--glow); }
.lv-next .k{ font-size:9.5px; letter-spacing:.24em; text-transform:uppercase; color:var(--accent); }
body.lang-km .lv-next .k{ letter-spacing:0; text-transform:none; font-size:11.5px; }
.lv-next .v{ font-family:var(--f-edit); font-weight:700; font-size:clamp(19px,2.3vw,30px); line-height:1.22; }
body.lang-km .lv-next .v{ font-family:var(--f-khmer); line-height:1.55; }
.lv-next .s{ font-size:12.5px; color:var(--bone-dim); }
.lv-next .row{ display:flex; flex-wrap:wrap; gap:12px; margin-top:.4rem; }

/* ── the archive: alternating date/poster bands ── */
.lv-archive{ padding-block:clamp(40px,7vh,90px) clamp(70px,11vh,150px); }
.lv-secthead{ display:flex; align-items:baseline; gap:1rem; padding-inline:var(--gut);
  border-bottom:1px solid rgba(244,241,235,.12); padding-bottom:1rem; margin-bottom:clamp(24px,4vh,50px); }
.lv-secthead h2{ font-family:var(--f-display); font-variation-settings:'wdth' 118,'wght' 800;
  font-size:clamp(20px,3.2vw,42px); text-transform:uppercase; letter-spacing:-.02em; }
body.lang-km .lv-secthead h2{ font-family:var(--f-khmer); font-weight:700; text-transform:none; letter-spacing:0; }
.lv-secthead .n{ font-family:var(--f-mono); font-size:11px; color:var(--accent); }

.night{
  position:relative; display:grid; gap:clamp(18px,3vw,52px); align-items:center;
  padding:clamp(26px,4.6vh,58px) var(--gut);
  border-bottom:1px solid rgba(244,241,235,.08);
}
@media(min-width:900px){
  .night{ grid-template-columns:minmax(0,.36fr) minmax(0,.30fr) minmax(0,.34fr); }
  .night:nth-child(even){ direction:rtl; }
  .night:nth-child(even) > *{ direction:ltr; }
}
.night-date{ display:grid; gap:.1rem; }
.night-day{
  font-family:var(--f-display); font-variation-settings:'wdth' 96,'wght' 900;
  font-size:clamp(60px,9.5vw,140px); line-height:.8; letter-spacing:-.05em;
  color:transparent; -webkit-text-stroke:1.4px var(--bone);
  transition:color .6s var(--e-out), -webkit-text-stroke-color .6s var(--e-out);
}
.night:hover .night-day{ color:var(--accent); -webkit-text-stroke-color:transparent; }
.night-mon{ font-family:var(--f-mono); font-size:clamp(12px,1.3vw,16px); letter-spacing:.24em;
  text-transform:uppercase; color:var(--bone-dim); }
body.lang-km .night-mon{ letter-spacing:0; text-transform:none; }

.night-poster{ position:relative; }
.night-poster img{
  width:100%; height:auto; display:block;
  box-shadow:0 30px 70px rgba(0,0,0,.8);
  filter:saturate(.62) brightness(.74) contrast(1.06);
  transform:rotate(var(--rz,-1.4deg)) scale(.985);
  transition:filter .8s var(--e-out), transform .9s var(--e-out);
}
.night:hover .night-poster img{ filter:saturate(1.04) brightness(1) contrast(1.02);
  transform:rotate(0deg) scale(1); }
/* archival: printed, taped, slightly foxed */
.night-poster::after{
  content:''; position:absolute; inset:0; pointer-events:none;
  box-shadow:inset 0 0 0 1px rgba(244,241,235,.12);
  background:linear-gradient(160deg, rgba(244,241,235,.07), transparent 42%);
  transform:rotate(var(--rz,-1.4deg)) scale(.985);
  transition:transform .9s var(--e-out), opacity .6s;
}
.night:hover .night-poster::after{ transform:rotate(0deg) scale(1); }

.night-info{ display:grid; gap:.55rem; align-content:center; }
.night-venue{
  font-family:var(--f-display); font-variation-settings:'wdth' 112,'wght' 800;
  font-size:clamp(22px,3.4vw,44px); line-height:1; text-transform:uppercase; letter-spacing:-.02em;
  transition:transform .55s var(--e-out);
}
.night:hover .night-venue{ transform:translateX(clamp(4px,.8vw,12px)); }
.night-venue .tag{ color:var(--accent); font-size:.52em; letter-spacing:.02em; }
.night-meta{ display:grid; gap:.3rem; font-size:11.5px; letter-spacing:.14em;
  text-transform:uppercase; color:var(--bone-dim); }
body.lang-km .night-meta{ letter-spacing:0; text-transform:none; font-size:12.5px; }
.night-meta .tel{ font-family:var(--f-mono); letter-spacing:.06em; color:var(--bone); }

/* ── the flyer wall closes the page ── */
.lv-wall{ padding:clamp(50px,8vh,110px) var(--gut) clamp(30px,5vh,60px); }
.wall-grid{ display:grid; gap:clamp(8px,1vw,16px); grid-template-columns:repeat(2,minmax(0,1fr)); }
@media(min-width:760px){ .wall-grid{ grid-template-columns:repeat(3,minmax(0,1fr)); } }
@media(min-width:1200px){ .wall-grid{ grid-template-columns:repeat(6,minmax(0,1fr)); } }
.wall-grid a{ position:relative; overflow:hidden; display:block; }
.wall-grid img{ width:100%; height:100%; object-fit:cover; aspect-ratio:1;
  filter:saturate(.5) brightness(.6); transition:filter .6s var(--e-out), transform 1s var(--e-out); }
.wall-grid a:hover img{ filter:saturate(1.05) brightness(1); transform:scale(1.05); }
.wall-grid a::after{ content:''; position:absolute; inset:0;
  box-shadow:inset 0 0 0 1px rgba(244,241,235,.10); transition:box-shadow .4s; }
.wall-grid a:hover::after{ box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--accent) 70%,transparent); }

.lv-close{ padding:clamp(50px,9vh,120px) var(--gut) clamp(60px,10vh,120px); display:grid; gap:1.4rem; justify-items:start; }
.lv-close h2{ font-family:var(--f-display); font-variation-settings:'wdth' 132,'wght' 900;
  font-size:clamp(34px,8vw,110px); line-height:.86; text-transform:uppercase; letter-spacing:-.04em; }
body.lang-km .lv-close h2{ font-family:var(--f-khmer); font-weight:700; text-transform:none;
  letter-spacing:0; line-height:1.3; font-size:clamp(24px,5.2vw,68px); }
.lv-close .row{ display:flex; flex-wrap:wrap; gap:13px; }
