:root {
  color-scheme: light dark;
  --bg: #ffffff;
  --fg: #1d1d1f;
  --muted: #6e6e73;
  --body: #3a3a3c;
  --line: #e5e5ea;
  --accent: #0071e3;
  --card: #f5f5f7;
}
@media (prefers-color-scheme: dark) {
  :root {
    --bg: #000000; --fg: #f5f5f7; --muted: #98989d; --body: #c7c7cc;
    --line: #2c2c2e; --accent: #2997ff; --card: #1c1c1e;
  }
}

* { box-sizing: border-box; }
body {
  margin: 0;
  font: 17px/1.65 -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
  color: var(--body);
  background: var(--bg);
  -webkit-font-smoothing: antialiased;
}
.wrap { max-width: 46rem; margin: 0 auto; padding: 0 1.25rem; }

nav {
  border-bottom: 1px solid var(--line);
  font-size: .95rem;
}
nav .wrap { display: flex; gap: 1.25rem; align-items: center; padding-top: .9rem; padding-bottom: .9rem; }
nav a { color: var(--muted); text-decoration: none; }
nav a:hover { color: var(--fg); }
nav .brand { font-weight: 600; color: var(--fg); margin-right: auto; }

h1 {
  font-size: clamp(2rem, 5vw, 2.9rem);
  line-height: 1.12;
  letter-spacing: -.025em;
  color: var(--fg);
  margin: 2.5rem 0 1rem;
}
h2 {
  font-size: 1.5rem; letter-spacing: -.015em; color: var(--fg);
  margin: 3rem 0 .75rem;
}
h3 { font-size: 1.1rem; color: var(--fg); margin: 2rem 0 .4rem; }
p { margin: 0 0 1.1rem; }
strong { color: var(--fg); }
a { color: var(--accent); }

.lead { font-size: 1.2rem; color: var(--muted); margin-bottom: 2rem; }

.cta {
  display: inline-block; background: var(--accent); color: #fff;
  padding: .85rem 1.6rem; border-radius: 980px; text-decoration: none;
  font-weight: 600; font-size: 1.02rem;
}
.cta:hover { filter: brightness(1.08); }
.cta-note { font-size: .92rem; color: var(--muted); margin-top: .8rem; }
.soon {
  display: inline-block; border: 1px solid var(--accent); color: var(--accent);
  padding: .85rem 1.6rem; border-radius: 980px; font-weight: 600;
}

figure { margin: 2.5rem 0; }
figure img {
  width: 100%; height: auto; display: block;
  border-radius: 12px; border: 1px solid var(--line);
}
figcaption { font-size: .9rem; color: var(--muted); margin-top: .6rem; text-align: center; }

ul { padding-left: 1.15rem; }
li { margin-bottom: .5rem; }

.table-scroll { overflow-x: auto; margin: 1.5rem 0; }
table { border-collapse: collapse; width: 100%; font-size: .96rem; min-width: 34rem; }
th, td { text-align: left; padding: .7rem .8rem; border-bottom: 1px solid var(--line); vertical-align: top; }
th { color: var(--fg); font-weight: 600; }

.card {
  background: var(--card); border-radius: 14px; padding: 1.3rem 1.5rem; margin: 2rem 0;
}
.card h2, .card h3 { margin-top: 0; }

.faq dt { color: var(--fg); font-weight: 600; margin-top: 1.4rem; }
.faq dd { margin: .35rem 0 0; }

footer {
  border-top: 1px solid var(--line); margin-top: 4rem; padding: 2rem 0 3rem;
  font-size: .92rem; color: var(--muted);
}
footer a { color: var(--muted); }
footer .wrap > p { margin-bottom: .5rem; }

/* --- contact form --- */
form.contact { display: grid; gap: .8rem; margin-top: .5rem; }
form.contact label { font-size: .92rem; color: var(--muted); display: block; margin-bottom: .25rem; }
form.contact input, form.contact textarea {
  width: 100%; font: inherit; color: var(--fg);
  background: var(--bg); border: 1px solid var(--line); border-radius: 8px;
  padding: .6rem .75rem;
}
form.contact textarea { min-height: 7.5rem; resize: vertical; }
form.contact button {
  justify-self: start; font: inherit; font-weight: 600; color: #fff;
  background: var(--accent); border: 0; border-radius: 980px;
  padding: .7rem 1.5rem; cursor: pointer;
}
form.contact button:disabled { opacity: .55; cursor: default; }
.hp { position: absolute; left: -9999px; top: -9999px; height: 0; overflow: hidden; }
#cstatus { font-size: .95rem; margin: 0; }
#cstatus.ok { color: #2e9e44; }
#cstatus.err { color: #d33; }
