@import url('https://fonts.googleapis.com/css2?family=Barlow+Condensed:wght@600;700&family=Inter:wght@400;500;600;700&display=swap');

:root{
  --bg:#07090a;
  --panel:#0d1112;
  --line:#263238;
  --text:#f5f5f2;
  --muted:#9aa4a9;
  --blue:#59b8ff;
  --gold:#e9b949;
}

*{box-sizing:border-box}
html{background:var(--bg)}
body{
  margin:0;
  color:var(--text);
  background:
    radial-gradient(circle at 18% 0%,rgba(89,184,255,.08),transparent 28rem),
    var(--bg);
  font-family:Inter,system-ui,-apple-system,sans-serif;
}

.wrap{max-width:1450px;margin:0 auto;padding:46px 38px 80px}
.intro{margin-bottom:30px}
.eyebrow{
  margin:0 0 7px;
  color:var(--gold);
  font:700 13px/1 Inter,sans-serif;
  letter-spacing:.14em;
  text-transform:uppercase;
}
h1{
  margin:0;
  font:700 clamp(44px,6vw,78px)/.95 "Barlow Condensed",sans-serif;
  text-transform:uppercase;
}
.lede{max-width:780px;color:#c8ced1;font-size:17px;line-height:1.55}
.filters{display:flex;gap:10px;flex-wrap:wrap;margin-top:25px}
.filters input,.filters select{
  min-height:44px;
  border:1px solid #334047;
  border-radius:9px;
  background:#0b0f10;
  color:var(--text);
  padding:0 13px;
  font:500 14px Inter,sans-serif;
}
.filters input{min-width:310px;flex:1}
.filters select{min-width:190px}
.filters input:focus,.filters select:focus{outline:2px solid var(--blue);outline-offset:1px}
.summary{margin-top:12px;color:var(--muted);font-size:13px}

.ticket-grid{
  display:grid;
  grid-template-columns:repeat(auto-fill,minmax(310px,1fr));
  gap:22px;
}
.ticket-card{
  overflow:hidden;
  border:1px solid var(--line);
  border-radius:14px;
  background:linear-gradient(180deg,#101516,#0b0f10);
  box-shadow:0 14px 35px rgba(0,0,0,.18);
}
.ticket-card:hover{border-color:#465760;transform:translateY(-2px)}
.ticket-card,.ticket-card *{transition:.16s ease}

.ticket-open{
  all:unset;
  display:block;
  width:100%;
  cursor:pointer;
}
.ticket-image-wrap{
  position:relative;
  aspect-ratio:4/3;
  overflow:hidden;
  background:#151a1c;
  display:flex;
  align-items:center;
  justify-content:center;
}
.ticket-image-wrap img{
  width:100%;
  height:100%;
  object-fit:contain;
  padding:12px;
}
.ticket-card:hover img{transform:scale(1.015)}
.ticket-badge{
  position:absolute;
  right:12px;
  top:12px;
  padding:6px 8px;
  border-radius:999px;
  background:rgba(5,7,8,.82);
  border:1px solid rgba(233,185,73,.45);
  color:var(--gold);
  font:700 10px/1 Inter,sans-serif;
  letter-spacing:.08em;
}
.ticket-info{padding:18px 18px 19px}
.ticket-info h2{
  margin:0 0 9px;
  font-size:18px;
  line-height:1.25;
}
.ticket-info p{margin:4px 0}
.date{
  color:var(--blue);
  font:700 18px/1.2 "Barlow Condensed",sans-serif;
  text-transform:uppercase;
}
.venue{font-weight:600}
.extras{color:var(--muted);font-size:13px}
.empty,.load-error{
  padding:40px;
  text-align:center;
  color:var(--muted);
  border:1px dashed var(--line);
  border-radius:14px;
}

.ticket-dialog{
  width:min(1180px,94vw);
  max-height:92vh;
  border:1px solid #344148;
  border-radius:16px;
  padding:0;
  overflow:auto;
  background:#0a0e0f;
  color:var(--text);
  box-shadow:0 30px 90px rgba(0,0,0,.75);
}
.ticket-dialog::backdrop{background:rgba(0,0,0,.82)}
.close{
  position:sticky;
  float:right;
  z-index:10;
  top:12px;
  right:12px;
  margin:12px;
  width:38px;
  height:38px;
  border-radius:999px;
  border:1px solid #405057;
  background:#111718;
  color:#fff;
  font-size:25px;
  cursor:pointer;
}
.dialog-images{
  clear:both;
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:14px;
  padding:0 22px 18px;
}
.dialog-images figure{
  margin:0;
  border:1px solid #253136;
  background:#121718;
  border-radius:12px;
  overflow:hidden;
}
.dialog-images img{
  width:100%;
  max-height:54vh;
  object-fit:contain;
  display:block;
}
.dialog-images figcaption{
  padding:8px 12px;
  color:var(--muted);
  font-size:12px;
  text-transform:uppercase;
  letter-spacing:.1em;
}
.dialog-info{padding:4px 24px 28px}
.dialog-info h2{
  margin:3px 0 18px;
  font:700 38px/1 "Barlow Condensed",sans-serif;
  text-transform:uppercase;
}
.dialog-meta{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(190px,1fr));
  gap:10px;
}
.dialog-meta div{
  border:1px solid #253136;
  border-radius:9px;
  padding:11px 12px;
  background:#0d1213;
}
.dialog-meta span{display:block;color:var(--muted);font-size:11px;text-transform:uppercase;letter-spacing:.08em}
.dialog-meta strong{display:block;margin-top:4px;font-size:14px}
.dialog-note{color:#c6cdcf;line-height:1.5}

@media(max-width:720px){
  .wrap{padding:30px 16px 60px}
  .filters{display:grid}
  .filters input,.filters select{min-width:0;width:100%}
  .ticket-grid{grid-template-columns:1fr}
  .dialog-images{grid-template-columns:1fr}
}

.movie-link,
.movie-link:visited{
  color:inherit;
  text-decoration:none;
}
.ticket-info .movie-link:hover,
.dialog-info .movie-link:hover{
  color:var(--blue);
  text-decoration:underline;
  text-underline-offset:3px;
}

.cinema-link,
.cinema-link:visited{
  color:inherit;
  text-decoration:none;
}
.cinema-link:hover{
  color:var(--blue);
  text-decoration:underline;
  text-underline-offset:3px;
}
