:root{
  --bg:#ffffff;
  --text:#111827;
  --muted:#4b5563;
  --border:#e5e7eb;
  --card:#ffffff;
  --shadow: 0 10px 30px rgba(0,0,0,0.06);
  --accent:#2563eb;
  --accent2:#16a34a;
  --maxw: 1080px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  font-family: ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, "Apple Color Emoji","Segoe UI Emoji";
  color:var(--text);
  background:var(--bg);
  line-height:1.55;
}
a{color:var(--accent); text-decoration:none}
a:hover{text-decoration:underline}
.container{max-width:var(--maxw); margin:0 auto; padding:0 18px}
.nav{
  position:sticky; top:0; z-index:20;
  background:rgba(255,255,255,0.92);
  backdrop-filter:saturate(180%) blur(10px);
  border-bottom:1px solid var(--border);
}
.nav-inner{
  display:flex; align-items:center; justify-content:space-between;
  gap:16px; padding:10px 0;
}
.brand{
  display:flex; align-items:center; gap:10px; font-weight:800;
  letter-spacing:0.2px;
}
.badge{
  font-size:12px; padding:3px 8px; border:1px solid var(--border);
  border-radius:999px; color:var(--muted);
}
.nav-links{
  display:flex; flex-wrap:wrap; gap:12px;
  font-size:14px;
}
.nav-links a{color:var(--muted)}
.nav-links a:hover{color:var(--text)}
.hero{padding:34px 0 20px;}
.kicker{
  color:var(--muted);
  font-weight:600;
  text-transform:uppercase;
  letter-spacing:0.14em;
  font-size:12px;
}
h1{
  margin:10px 0 10px;
  font-size:40px;
  line-height:1.12;
  letter-spacing:-0.02em;
}
.subhead{color:var(--muted); font-size:16px; max-width:850px;}
.meta{margin-top:14px; display:flex; flex-wrap:wrap; gap:10px; color:var(--muted); font-size:14px;}
.pills{margin-top:18px; display:flex; flex-wrap:wrap; gap:10px;}
.btn{
  display:inline-flex; align-items:center; justify-content:center;
  padding:10px 14px;
  border-radius:12px;
  border:1px solid var(--border);
  font-weight:600;
  font-size:14px;
  background:var(--card);
}
.btn.primary{background:var(--accent); border-color:var(--accent); color:white;}
.btn.good{background:var(--accent2); border-color:var(--accent2); color:white;}
.btn:hover{filter:brightness(0.98); text-decoration:none}
.grid{display:grid; gap:14px;}
@media (min-width: 900px){
  .grid-2{grid-template-columns: 1fr 1fr;}
  .grid-3{grid-template-columns: 1fr 1fr 1fr;}
}
.card{
  border:1px solid var(--border);
  border-radius:16px;
  background:var(--card);
  box-shadow: var(--shadow);
  padding:16px;
}
.section{padding:22px 0;}
.section h2{margin:0 0 8px; font-size:22px; letter-spacing:-0.01em;}
.section p{margin:0.25em 0}
.small{font-size:13px; color:var(--muted);}
.hr{height:1px; background:var(--border); margin:18px 0;}
.figure{border:1px solid var(--border); border-radius:16px; overflow:hidden; background:#fafafa;}
.figure img{width:100%; display:block}
.caption{padding:10px 14px; font-size:13px; color:var(--muted); border-top:1px solid var(--border);}
.list-tight{margin:8px 0 0; padding-left:18px}
.list-tight li{margin:6px 0}
.table{width:100%; border-collapse:collapse; font-size:14px;}
.table th,.table td{padding:10px 10px; border-bottom:1px solid var(--border); vertical-align:top;}
.table th{color:var(--muted); font-weight:700; text-align:left}
.tagrow{display:flex; flex-wrap:wrap; gap:8px; margin-top:10px;}
.tag{font-size:12px; padding:4px 10px; border-radius:999px; border:1px solid var(--border); color:var(--muted);}
.people{display:grid; gap:12px;}
@media (min-width: 700px){.people{grid-template-columns: 1fr 1fr;}}
.person{display:flex; gap:12px; align-items:center; padding:12px; border:1px solid var(--border); border-radius:14px; background:var(--card);}
.avatar{
  width:46px; height:46px; border-radius:999px;
  background:linear-gradient(135deg, #e5e7eb, #f3f4f6);
  display:flex; align-items:center; justify-content:center;
  font-weight:800; color:#374151; flex:0 0 auto;
  overflow:hidden; border:1px solid var(--border);
}
.avatar img{width:100%; height:100%; object-fit:cover; display:block}
.person .name{font-weight:800; line-height:1.2}
.person .aff{color:var(--muted); font-size:13px}
.status{
  margin-left:auto;
  font-size:12px; padding:4px 10px;
  border-radius:999px; border:1px solid var(--border);
  color:var(--muted); white-space:nowrap;
}
.status.confirmed{border-color:#bbf7d0; color:#166534; background:#f0fdf4}
.status.invited{border-color:#bfdbfe; color:#1d4ed8; background:#eff6ff}
.footer{padding:26px 0 36px; color:var(--muted); font-size:13px;}
.notice{border-left:4px solid var(--accent); padding:10px 12px; background:#f8fafc; border-radius:12px; border:1px solid var(--border);}
