:root{
  --navy:#14122E; --pink:#FF4D6D; --off:#FAFAF7;
  --bg:#FAFAF7; --card:#ffffff; --ink:#14122E; --muted:#6d6a85; --line:#e7e5ee;
  --hero-ink:#FAFAF7; --hero-muted:#a9a5c4;
}
@media (prefers-color-scheme: dark){
  :root{ --bg:#14122E; --card:#1d1a3e; --ink:#FAFAF7; --muted:#a9a5c4; --line:#2a2650; }
}
*{ margin:0; padding:0; box-sizing:border-box; }
body{
  background:var(--bg); color:var(--ink);
  font-family:"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
  line-height:1.5; -webkit-font-smoothing:antialiased;
}
.hero{ background:var(--navy); color:var(--hero-ink); }
.wrap{ max-width:720px; margin:0 auto; padding:0 24px; }
.hero .wrap{ padding-top:40px; padding-bottom:56px; }
.brand{ display:flex; align-items:center; gap:14px; }
.brand img{ width:52px; height:auto; }
.brand .n{ font-size:26px; letter-spacing:-.02em; font-weight:300; }
.brand .n b{ font-weight:800; }
.brand .tag{
  display:block; margin-top:2px; font-size:10px; font-weight:600;
  letter-spacing:.38em; color:var(--pink); text-transform:uppercase;
}
.hero h1{
  margin-top:48px; font-size:clamp(30px, 6vw, 46px); font-weight:800;
  letter-spacing:-.03em; line-height:1.08; text-wrap:balance;
}
.hero h1 .p{ color:var(--pink); }
.hero p.lede{ margin-top:14px; color:var(--hero-muted); font-size:17px; max-width:48ch; }
main{ padding:8px 0 40px; }
.section-label{
  margin:44px 0 14px; font-size:12px; font-weight:600; letter-spacing:.18em;
  text-transform:uppercase; color:var(--muted);
}
a.event{
  display:flex; align-items:center; justify-content:space-between; gap:16px;
  padding:20px 22px; margin-bottom:12px;
  border:1px solid var(--line); border-radius:14px;
  background:var(--card); color:inherit; text-decoration:none;
  transition:border-color .12s ease, transform .08s ease;
}
a.event:hover{ border-color:var(--pink); transform:translateY(-1px); }
a.event .t{ font-weight:700; font-size:17px; letter-spacing:-.01em; }
a.event .m{ display:block; margin-top:3px; color:var(--muted); font-size:14px; }
a.event .go{ flex:none; color:var(--pink); font-weight:800; font-size:18px; }
.empty{
  border:1px dashed var(--line); border-radius:14px; padding:34px 26px; text-align:center;
}
.empty .t{ font-weight:700; font-size:17px; }
.empty .m{ margin-top:6px; color:var(--muted); font-size:15px; }
footer{
  border-top:1px solid var(--line); margin-top:56px; padding:22px 0 40px;
  color:var(--muted); font-size:13px;
}
footer a{ color:inherit; text-decoration:underline; }
@media (prefers-reduced-motion: reduce){ a.event{ transition:none; } }
