/* Jovvy site. Tokens mirror app/lib/config/tokens.dart and the brand palette. */
:root {
  --paper: #fbf8f3;
  --surface: #ffffff;
  --ink: #1f1b16;
  --muted: #645d54;
  --line: #e8e2d8;
  --accent: #a8502f;
  --tint: #f6e9e2;
  --deep: #5e2b18;
  --display: "Fraunces", Georgia, "Times New Roman", serif;
  --text: "Inter", -apple-system, "Segoe UI", Roboto, sans-serif;
}

* { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body {
  margin: 0;
  background: var(--paper);
  color: var(--ink);
  font-family: var(--text);
  font-size: 17px;
  line-height: 1.5;
}
.wrap {
  max-width: 640px;
  margin: 0 auto;
  padding-inline: 24px;
  padding-block: 48px 64px;
  display: flex;
  flex-direction: column;
  gap: 32px;
  min-height: 100svh;
}
.brand {
  font-family: var(--display);
  font-weight: 500;
  font-size: 34px;
  letter-spacing: -0.02em;
  color: var(--accent);
  text-decoration: none;
}
h1 {
  font-family: var(--display);
  font-weight: 500;
  font-size: clamp(36px, 9vw, 54px);
  line-height: 1.05;
  letter-spacing: -0.02em;
  margin: 0;
  text-wrap: balance;
}
p { margin: 0; }
.lede { color: var(--muted); font-size: 19px; max-width: 34em; }
.eyebrow { font-size: 13px; font-weight: 600; letter-spacing: 0.1em; text-transform: uppercase; color: var(--muted); }

.points { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 18px; }
.points li { display: flex; gap: 16px; align-items: flex-start; }
.points .dot { flex: none; width: 44px; height: 44px; border-radius: 50%; background: var(--tint); color: var(--deep); display: grid; place-items: center; }
.points strong { display: block; font-weight: 600; }
.points span { color: var(--muted); font-size: 15px; }

.card { background: var(--tint); border-radius: 22px; padding: 28px 24px; display: flex; flex-direction: column; gap: 14px; }
.card.plain { background: var(--surface); border: 1px solid var(--line); }
.code {
  font-family: var(--display);
  font-size: clamp(40px, 13vw, 60px);
  letter-spacing: 0.14em;
  color: var(--deep);
  line-height: 1;
  user-select: all;
  overflow-wrap: anywhere;
}
.btn {
  appearance: none;
  border: 0;
  border-radius: 14px;
  background: var(--accent);
  color: #fff;
  font: 600 16px var(--text);
  padding: 15px 22px;
  min-height: 52px;
  cursor: pointer;
  align-self: flex-start;
}
.btn.quiet { background: var(--surface); color: var(--ink); border: 1.5px solid var(--line); }
.btn:focus-visible, a:focus-visible { outline: 2px solid var(--accent); outline-offset: 3px; }

.steps { margin: 0; padding-left: 1.3em; display: flex; flex-direction: column; gap: 10px; }
.note { color: var(--muted); font-size: 15px; }
footer { margin-top: auto; color: var(--muted); font-size: 14px; border-top: 1px solid var(--line); padding-top: 20px; }
[hidden] { display: none !important; }
