/* Dark and cinematic, per docs/DESIGN.md. The flame is the only accent that
   means "alive" — it is never used for decoration. */
:root {
  /* We own both themes — without this, browsers auto-darken the page on top of
     our dark theme and white out the text on the light buttons. */
  color-scheme: light dark;
  --bg:#0A0A0C; --surface:#141418; --raised:#1C1C22; --border:#26262E;
  --text:#FFFFFF; --muted:rgba(255,255,255,.58); --faint:rgba(255,255,255,.34);
  --flame:#FF7A1A; --flame-edge:#B34E06;
  --accent-from:#6B5CE7; --accent-to:#4FC3DC;
  --ink:#0A0A0C; --paper:#FFFFFF;
  --radius:24px; --radius-sm:14px;
}
@media (prefers-color-scheme: light) {
  :root {
    --bg:#F5F4F8; --surface:#FFFFFF; --raised:#ECEBF2; --border:#E4E3EB;
    --text:#17171C; --muted:rgba(23,23,28,.58); --faint:rgba(23,23,28,.38);
    --flame:#F26B0A;
    --accent-from:#5B4CE0; --accent-to:#2FA8C6;
    --ink:#FFFFFF; --paper:#17171C;
  }
}

*,*::before,*::after { box-sizing:border-box; }
html { -webkit-text-size-adjust:100%; scroll-behavior:smooth; }
body {
  margin:0; background:var(--bg); color:var(--text);
  font-family:ui-rounded,"SF Pro Rounded","Hiragino Maru Gothic ProN",
    "Segoe UI Variable Display","Segoe UI",Roboto,system-ui,-apple-system,sans-serif;
  font-size:17px; line-height:1.6; letter-spacing:-0.01em;
  -webkit-font-smoothing:antialiased;
}
img,svg { max-width:100%; }
a { color:inherit; }

.wrap { max-width:960px; margin:0 auto; padding:0 20px; }
section { padding:64px 0; }
h1,h2,h3 { letter-spacing:-0.03em; line-height:1.12; margin:0 0 14px; }
h1 { font-size:clamp(34px,6.4vw,54px); font-weight:800; }
h2 { font-size:clamp(26px,3.8vw,34px); font-weight:800; }
h3 { font-size:19px; font-weight:700; letter-spacing:-0.02em; }
p { margin:0 0 14px; }
.muted { color:var(--muted); }
.faint { color:var(--faint); font-size:14px; }
.lead { font-size:clamp(18px,2.3vw,21px); color:var(--muted); max-width:36em; }

/* ── header ── */
header.top {
  position:sticky; top:0; z-index:20; backdrop-filter:saturate(180%) blur(14px);
  background:color-mix(in srgb, var(--bg) 82%, transparent);
  border-bottom:1px solid var(--border);
}
.top .wrap { display:flex; align-items:center; justify-content:space-between; height:60px; gap:12px; }
.brand { display:flex; align-items:center; gap:9px; font-weight:800; text-decoration:none; letter-spacing:-0.02em; }
.brand picture { display:flex; }
.brand .mark { width:26px; height:26px; }
.top nav { display:flex; align-items:center; gap:16px; font-size:15px; }
.top nav a { color:var(--muted); text-decoration:none; }
.top nav a:hover { color:var(--text); }
/* The pill is inverted — beat .top nav a, or its label goes white on white. */
.top nav a.btn-primary, .top nav a.btn-primary:hover { color:var(--ink); }

/* ── hero ── */
.hero { position:relative; padding:72px 0 40px; text-align:center; overflow:hidden; }
.hero::before {
  content:""; position:absolute; inset:-40% 0 auto; height:520px; pointer-events:none;
  background:
    radial-gradient(52% 40% at 50% 42%, color-mix(in srgb, var(--flame) 26%, transparent), transparent 70%),
    radial-gradient(46% 34% at 70% 30%, color-mix(in srgb, var(--accent-from) 22%, transparent), transparent 72%);
  filter:blur(18px);
}
.hero > * { position:relative; }
.hero picture { display:block; }
.hero .logo { width:112px; height:112px; margin:0 auto 22px; display:block; }
.hero h1 { margin:0 auto 18px; max-width:16ch; }
.hero .lead { margin:0 auto 28px; }

.cta-row { display:flex; flex-wrap:wrap; gap:12px; justify-content:center; }
.btn {
  display:inline-flex; align-items:center; gap:10px; text-decoration:none;
  padding:14px 22px; border-radius:999px; font-weight:700; font-size:16px;
  border:1px solid transparent; transition:transform .12s ease, opacity .12s ease;
}
.btn:hover { transform:translateY(-1px); }
.btn:active { transform:translateY(0); opacity:.9; }
.btn-primary { background:var(--paper); color:var(--ink); }
.btn-primary svg { width:17px; height:19px; margin-top:-2px; }
.btn-secondary { background:var(--raised); color:var(--text); border-color:var(--border); }
.cta-note { margin-top:16px; font-size:14px; color:var(--faint); }

/* ── the question ── */
.question { text-align:center; }
.question h2 { color:var(--flame); }
.question p { margin:0 auto; max-width:38em; color:var(--muted); }

/* ── cards ── */
.grid { display:grid; gap:14px; }
.grid-3 { grid-template-columns:repeat(3,1fr); }
.grid-2 { grid-template-columns:repeat(2,1fr); }
@media (max-width:760px) { .grid-3,.grid-2 { grid-template-columns:1fr; } }
.card {
  background:var(--surface); border:1px solid var(--border);
  border-radius:var(--radius); padding:22px;
}
.card p { margin:0; color:var(--muted); font-size:16px; }
.card .emoji { font-size:26px; line-height:1; display:block; margin-bottom:12px; }
.step-n {
  display:inline-flex; align-items:center; justify-content:center;
  width:28px; height:28px; border-radius:999px; margin-bottom:12px;
  background:linear-gradient(135deg,var(--accent-from),var(--accent-to));
  color:#fff; font-weight:800; font-size:14px;
}

/* ── manifesto ── */
.manifesto { background:var(--surface); border-top:1px solid var(--border); border-bottom:1px solid var(--border); }
.manifesto .wrap { max-width:640px; }
.manifesto h2 { text-align:center; margin-bottom:26px; }
.manifesto p { font-size:18px; line-height:1.66; }
.manifesto blockquote {
  margin:22px 0; padding:16px 20px; border-radius:var(--radius-sm);
  background:color-mix(in srgb, var(--flame) 8%, transparent);
  font-style:italic;
}
.beliefs-title {
  text-align:center; margin:44px 0 0; font-size:14px; font-weight:700;
  text-transform:uppercase; letter-spacing:.09em; color:var(--faint);
}
.beliefs { list-style:none; margin:16px 0 0; padding:0; display:grid; gap:10px; }
.beliefs li { padding-left:28px; position:relative; color:var(--muted); }
.beliefs li::before { content:"🔥"; position:absolute; left:0; top:0; font-size:14px; }

/* ── pricing ── */
.plans { display:flex; gap:12px; flex-wrap:wrap; }
.plan {
  flex:1 1 180px; background:var(--surface); border:1px solid var(--border);
  border-radius:var(--radius); padding:20px; text-align:center;
}
.plan.best { border-color:var(--flame); box-shadow:0 0 0 1px var(--flame) inset; }
.plan .price { font-size:32px; font-weight:800; letter-spacing:-0.03em; display:block; }
.plan .name { color:var(--muted); font-size:15px; }
.plan .note { color:var(--flame); font-size:13px; font-weight:700; margin-top:6px; display:block; }

/* ── closing ── */
.closing { text-align:center; }
.closing h2 { max-width:20ch; margin-inline:auto; }
.closing p { color:var(--muted); margin-bottom:26px; }

/* ── legal pages ── */
.doc { max-width:720px; }
.doc h1 { margin-bottom:6px; }
.doc .updated { color:var(--faint); font-size:14px; margin-bottom:26px; }
.doc .intro { font-size:18px; color:var(--muted); margin-bottom:34px; }
.doc h2 { font-size:22px; margin:34px 0 12px; }
.doc ul { margin:0 0 14px; padding-left:20px; color:var(--muted); }
.doc li { margin-bottom:8px; }
.doc p { color:var(--muted); }

/* ── footer ── */
footer { border-top:1px solid var(--border); padding:34px 0 46px; }
footer .wrap { display:flex; flex-wrap:wrap; gap:16px; align-items:center; justify-content:space-between; }
footer nav { display:flex; gap:16px; flex-wrap:wrap; font-size:15px; }
footer a { color:var(--muted); text-decoration:none; }
footer a:hover { color:var(--text); }
.copy { color:var(--faint); font-size:14px; }

/* Zero-JS language switcher. */
details.lang { position:relative; }
details.lang summary {
  list-style:none; cursor:pointer; color:var(--muted); font-size:15px;
  display:inline-flex; align-items:center; gap:6px;
}
details.lang summary::-webkit-details-marker { display:none; }
details.lang summary::after { content:"▾"; font-size:11px; }
details.lang .menu {
  position:absolute; right:0; bottom:calc(100% + 8px); min-width:150px; z-index:30;
  background:var(--raised); border:1px solid var(--border); border-radius:var(--radius-sm);
  padding:6px; display:grid; gap:2px;
}
details.lang .menu a { display:block; padding:8px 10px; border-radius:9px; text-decoration:none; font-size:15px; }
details.lang .menu a:hover { background:var(--surface); }
details.lang .menu a[aria-current="true"] { color:var(--flame); font-weight:700; }
header details.lang .menu { top:calc(100% + 8px); bottom:auto; }

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior:auto; }
  .btn { transition:none; }
}
