:root {
  --bg:#fff; --fg:#111; --muted:#555; --line:#e7e7e7; --soft:#f7f7f7;
  --wrap: 980px; --pad-x: 20px; --pad-y: 26px;
}

* { margin:0; padding:0; box-sizing:border-box; }
body { background:var(--bg); color:var(--fg);
  font:16px/1.55 -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Arial,sans-serif; }
a { color: inherit; }

.wrap { max-width: var(--wrap); margin: 0 auto; padding: var(--pad-y) var(--pad-x) 28px; }

header.site { padding: 18px 0 16px; border-bottom: 1px solid var(--line); }
header.site h1 { font-size: 28px; letter-spacing:.2px; font-weight: 700; }
header.site p {
  margin-top: 8px; color: var(--muted); font-size: 16px;
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}

footer.site {
  margin-top: 22px; padding-top: 14px; border-top: 1px solid var(--line);
  color: var(--muted); font-size: 13px; text-align: center;
}

.card { border:1px solid var(--line); border-radius:14px; padding:18px; background:#fff; }
.card.soft { background: var(--soft); }
.kicker { margin:0 0 10px 0; color:var(--muted); font-size:12px; text-transform:uppercase; letter-spacing:.10em; }
.small { font-size:14px; color:var(--muted); }
.row { display:flex; gap:10px; flex-wrap:wrap; align-items:center; margin-top:12px; }
.btn { display:inline-block; padding:10px 14px; border-radius:10px; border:1px solid #111; text-decoration:none; font-weight:650; }
.btn.secondary { border-color: var(--line); }
ul { margin: 10px 0 0 18px; }
li { margin: 7px 0; }

@media (max-width: 900px) {
  :root { --pad-x: 16px; }
  header.site p { white-space: normal; overflow: visible; text-overflow: clip; }
}