:root{
  --bg:#0A0A0B; --surface:#16161A; --border:#2A2A2E; --text:#F0EEE9;
  --muted:#918D86; --faint:#6A6A6E; --oxblood:#8E2D3C; --blue:#6E8FA8;
  --font-display:"Fraunces",Georgia,serif; --font-sans:"General Sans",-apple-system,sans-serif;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{background:var(--bg);color:var(--text);font-family:var(--font-sans);
  font-size:16px;line-height:1.6;-webkit-font-smoothing:antialiased}
.wrap{max-width:920px;margin:0 auto;padding:96px 24px 120px}
.wordmark{font-family:var(--font-display);font-weight:600;font-size:15px;
  letter-spacing:.18em;color:var(--muted);margin-bottom:28px}
.wordmark b{color:var(--oxblood);font-weight:600}
/* hero */
h1.display{font-family:var(--font-display);font-weight:600;font-size:clamp(34px,6vw,56px);
  line-height:1.08;letter-spacing:-.02em;margin-bottom:18px}
h1.display em{font-style:normal;color:var(--muted)}
.lede{color:var(--muted);font-size:18px;max-width:640px;margin-bottom:40px}
.meta{display:flex;flex-wrap:wrap;gap:8px 18px;color:var(--faint);font-size:13px;
  font-variant-numeric:tabular-nums;padding-top:18px;border-top:1px solid var(--border);margin-bottom:44px}
.meta b{color:var(--muted);font-weight:500}
/* form */
.form-card{background:var(--surface);border:1px solid var(--border);border-radius:14px;
  padding:30px 28px;margin-bottom:30px}
.form-card h2{font-family:var(--font-display);font-weight:500;font-size:21px;margin-bottom:6px}
.form-card .sub{color:var(--muted);font-size:14px;margin-bottom:22px}
.row{display:flex;flex-direction:column;gap:14px}
.row.two{flex-direction:row;gap:12px}
.field{flex:1;display:flex;flex-direction:column;gap:6px}
.field label{font-size:12px;color:var(--faint);font-weight:500}
.field input,.field select{background:var(--bg);border:1px solid var(--border);border-radius:9px;
  color:var(--text);padding:12px 14px;font-size:15px;font-family:var(--font-sans);outline:none;
  transition:border-color .15s}
.field input:focus,.field select:focus{border-color:var(--oxblood)}
.field select{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath fill='%23918D86' d='M6 8 0 0h12z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 14px center;padding-right:38px}
.honeypot{position:absolute;left:-9999px}
.cta{margin-top:18px;width:100%;background:var(--text);color:var(--bg);border:none;
  border-radius:10px;padding:15px;font-size:15px;font-weight:600;font-family:var(--font-sans);
  cursor:pointer;transition:transform .1s,opacity .15s;white-space:nowrap}
.cta:hover{opacity:.92}.cta:disabled{opacity:.5;cursor:default}
.disc{color:var(--faint);font-size:12px;margin-top:14px;line-height:1.5}
.disc a{color:var(--blue)}
.count{color:var(--faint);font-size:13px;margin-bottom:30px;font-variant-numeric:tabular-nums}
/* reveal */
.done{text-align:left;padding:8px 0 28px}
.done .check{width:38px;height:38px;border-radius:50%;background:var(--oxblood);
  display:flex;align-items:center;justify-content:center;font-size:18px;margin-bottom:18px}
.done h2{font-family:var(--font-display);font-weight:600;font-size:clamp(26px,5vw,40px);
  line-height:1.1;letter-spacing:-.02em;margin-bottom:10px}
.done p{color:var(--muted);font-size:16px;max-width:560px}
.dl-btn{display:inline-block;margin-top:22px;background:var(--oxblood);color:var(--text);
  text-decoration:none;border-radius:10px;padding:14px 20px;font-size:14px;font-weight:600;
  white-space:nowrap;transition:opacity .15s}
.dl-btn:hover{opacity:.9}
/* filter chips */
.chips{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:24px}
.chip{background:transparent;border:1px solid var(--border);color:var(--muted);
  padding:8px 14px;border-radius:999px;font-size:13px;font-family:var(--font-sans);cursor:pointer;
  transition:all .15s}
.chip:hover{border-color:var(--faint);color:var(--text)}
.chip.on{background:var(--text);color:var(--bg);border-color:var(--text)}
/* tool grid */
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:14px}
.card{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:20px}
.card .cat{font-size:11px;color:var(--faint);font-weight:600;letter-spacing:.06em;
  text-transform:uppercase;margin-bottom:8px}
.card .name{font-family:var(--font-display);font-weight:600;font-size:19px;margin-bottom:10px;letter-spacing:-.01em}
.card .what{color:var(--text);font-size:14px;margin-bottom:10px}
.card .best{color:var(--muted);font-size:13px;margin-bottom:8px}
.card .best b{color:var(--text);font-weight:500}
.card .price{color:var(--faint);font-size:12px;margin-bottom:14px}
.card .visit{display:inline-block;font-size:13px;color:var(--blue);text-decoration:none;
  white-space:nowrap;border-bottom:1px solid transparent;transition:border-color .15s}
.card .visit:hover{border-color:var(--blue)}
.err{color:var(--oxblood);font-size:13px;margin-top:12px}
