:root{
  --bg:#08090d; --surf:#101219; --surf2:#171a23; --line:#232733;
  --tx:#eef0f5; --mut:#878ea0; --dim:#5b6274;
  --ac:#7f6bff; --ac2:#22d3a5;
  --luma:#a78bfa; --eb:#fb7185; --mu:#f87171; --pt:#fbbf24;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;background:var(--bg);color:var(--tx);
  font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Hiragino Sans GB",sans-serif;
  line-height:1.55;-webkit-font-smoothing:antialiased;
}
a{color:inherit}

/* header */
.hdr{position:sticky;top:0;z-index:40;background:rgba(8,9,13,.86);backdrop-filter:blur(14px);border-bottom:1px solid var(--line)}
.hdr-in{max-width:1000px;margin:0 auto;padding:.7rem 1.25rem;display:flex;align-items:center;gap:1rem}
.brand{font-weight:680;letter-spacing:-.02em;display:flex;align-items:center;gap:.4rem;white-space:nowrap}
.logo{color:var(--ac)}
.cities{display:flex;gap:.3rem;flex:1;overflow-x:auto;scrollbar-width:none}
.cities::-webkit-scrollbar{display:none}
.ctab{
  background:transparent;border:1px solid transparent;color:var(--mut);
  font:inherit;font-size:.85rem;padding:.3rem .7rem;border-radius:8px;cursor:pointer;
  white-space:nowrap;transition:.15s;display:flex;gap:.35rem;align-items:baseline;
}
.ctab:hover{color:var(--tx);background:var(--surf)}
.ctab.on{background:var(--surf2);border-color:var(--line);color:var(--tx)}
.ctab i{font-style:normal;font-size:.72rem;color:var(--dim);font-variant-numeric:tabular-nums}
.ctab.on i{color:var(--ac)}

main{max-width:1000px;margin:0 auto;padding:0 1.25rem 4rem}

/* lede */
.lede{padding:3rem 0 1.5rem}
.lede h1{font-size:2.1rem;line-height:1.18;letter-spacing:-.03em;margin:0 0 .55rem;font-weight:700}
.hl{background:linear-gradient(100deg,var(--ac),var(--ac2));-webkit-background-clip:text;background-clip:text;color:transparent}
.lede p{color:var(--mut);margin:0;max-width:60ch;font-size:.97rem}

/* stat strip */
.statstrip{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:.6rem;margin-bottom:1.75rem}
.stat{background:var(--surf);border:1px solid var(--line);border-radius:10px;padding:.8rem .9rem}
.stat b{display:block;font-size:1.35rem;font-weight:680;letter-spacing:-.025em;line-height:1.15;font-variant-numeric:tabular-nums}
.stat span{font-size:.75rem;color:var(--mut)}
.stat.accent b{color:var(--ac2)}

/* filters */
.filters{display:flex;flex-direction:column;gap:.6rem;margin-bottom:1rem}
.q{
  background:var(--surf);border:1px solid var(--line);color:var(--tx);font:inherit;font-size:.9rem;
  padding:.6rem .85rem;border-radius:10px;width:100%;
}
.q::placeholder{color:var(--dim)}
.q:focus{outline:none;border-color:var(--ac)}
.chipset{display:flex;gap:.35rem;flex-wrap:wrap}
.chip{
  background:var(--surf);border:1px solid var(--line);color:var(--mut);font:inherit;font-size:.79rem;
  padding:.28rem .68rem;border-radius:999px;cursor:pointer;transition:.15s;display:flex;gap:.3rem;align-items:baseline;
}
.chip:hover{color:var(--tx);border-color:#333947}
.chip.active{background:var(--surf2);border-color:var(--ac);color:var(--tx)}
.chip i{font-style:normal;font-size:.68rem;color:var(--dim);font-variant-numeric:tabular-nums}
.chip.active i{color:var(--ac)}

.resultbar{display:flex;align-items:center;gap:.75rem;margin:1.25rem 0 .6rem;font-size:.83rem;color:var(--mut)}
.linkbtn{background:none;border:0;color:var(--ac);font:inherit;font-size:.83rem;cursor:pointer;padding:0}
.linkbtn:hover{text-decoration:underline}

/* list */
.list{display:flex;flex-direction:column;gap:.5rem}
.msep{font-size:.72rem;text-transform:uppercase;letter-spacing:.1em;color:var(--dim);font-weight:650;margin:1.5rem 0 .35rem}
.msep:first-child{margin-top:0}

.ev{display:flex;gap:.95rem;background:var(--surf);border:1px solid var(--line);border-radius:11px;padding:.85rem 1rem;transition:.14s;text-decoration:none}
.ev:hover{background:var(--surf2);border-color:#31374a;transform:translateY(-1px)}
.dt{flex-shrink:0;width:46px;text-align:center;border-right:1px solid var(--line);padding-right:.85rem}
.dt .d{font-size:1.3rem;font-weight:680;line-height:1.05;letter-spacing:-.03em}
.dt .m{font-size:.66rem;color:var(--mut);text-transform:uppercase;letter-spacing:.06em}
.dt .h{font-size:.66rem;color:var(--dim);margin-top:.15rem;font-variant-numeric:tabular-nums}
.eb{flex:1;min-width:0}
.ev h3{margin:0 0 .35rem;font-size:.94rem;font-weight:600;letter-spacing:-.005em;line-height:1.35}
.tags{display:flex;gap:.3rem;flex-wrap:wrap;align-items:center}
.t{font-size:.685rem;padding:.1rem .45rem;border-radius:5px;background:var(--surf2);color:var(--mut);border:1px solid var(--line);white-space:nowrap}
.t.p-luma{color:var(--luma);border-color:rgba(167,139,250,.32)}
.t.p-eventbrite{color:var(--eb);border-color:rgba(251,113,133,.28)}
.t.p-meetup{color:var(--mu);border-color:rgba(248,113,113,.26)}
.t.p-partiful{color:var(--pt);border-color:rgba(251,191,36,.28)}
.t.loc{color:var(--dim)}
.go{flex-shrink:0;align-self:center;color:var(--dim);font-size:1rem;transition:.15s}
.ev:hover .go{color:var(--ac);transform:translateX(2px)}

.empty{text-align:center;padding:4rem 1rem;color:var(--mut)}
.empty b{display:block;color:var(--tx);font-size:1.02rem;margin-bottom:.3rem;font-weight:600}

.morewrap{display:flex;justify-content:center;margin-top:1.5rem}
.more{background:var(--surf);border:1px solid var(--line);color:var(--tx);font:inherit;font-size:.85rem;padding:.6rem 1.4rem;border-radius:9px;cursor:pointer;transition:.15s}
.more:hover{background:var(--surf2);border-color:#333947}

@media(max-width:620px){
  .lede{padding:2rem 0 1.2rem}
  .lede h1{font-size:1.55rem}
  .hdr-in{flex-wrap:wrap;gap:.5rem}
  .cities{order:3;width:100%;flex:none}
  .ev{gap:.7rem;padding:.75rem .85rem}
  .dt{width:40px;padding-right:.7rem}
  .go{display:none}
}
