/* HomeWok 家味 — landing & legal styles
   "目录 · The Cook's Index" — a warm Chinese cookbook's opening pages: ruled, indexed, sealed.
   Doctrine: warm paper everywhere (never pure white) · clay is scarce seal-red spot ink ·
   hairline rules instead of shadow-cards · a glaze edge gives every surface ceramic warmth ·
   editorial chapter numerals + mono ledger numbers. System fonts only (fast LCP, 0 web-font KB). */

:root {
  /* surfaces — warm uncoated book stock, never #FFF */
  --paper:       #F6F1E7;
  --paper-2:     #EFE8DA;
  --wash:        #F2E4DC;
  --card:        #FCF8F0;
  --card-rim:    #FFFDF8;
  /* ink */
  --ink:         #2A211A;
  --ink-2:       #6B5F55;
  --ink-3:       #9B8F84;
  --line:        #E3D9C9;
  --line-strong: #D6C8B2;
  /* clay = seal-red spot ink (scarce) */
  --clay:        #C2532F;
  --clay-deep:   #A0421F;   /* clay TEXT under 16px / on cards — AA safe */
  --clay-soft:   #DD7B53;   /* dark-band accent only */
  --seal:        #A8331F;   /* the 印章 chop */
  /* secondary accents (rationed) */
  --bamboo:      #5E7A52;   /* privacy/trust only */
  --honey:       #CF9A3A;   /* phone dot / rare flourish only */
  --danger:      #B3402E;

  --glaze: inset 0 1px 0 var(--card-rim);
  --shadow-phone: 0 1px 0 var(--card-rim) inset, 0 30px 60px rgba(120, 50, 28, .16);
  --shadow-cta: 0 6px 16px rgba(194, 83, 47, .26);

  --r-card: 12px;
  --r-ctrl: 14px;
  --r-seal: 10px;
  --r-panel: 20px;
  --control-h: 56px;

  --maxw: 1120px;
  --measure: 720px;     /* line-length governor for heads, statement, index */
  --wide: 960px;        /* multi-column sections */
  --nav-h: 64px;

  --sans: -apple-system, BlinkMacSystemFont, "PingFang SC", "Noto Sans SC",
          "Segoe UI", "Microsoft YaHei", "Helvetica Neue", Helvetica, Arial, sans-serif;
  --serif-zh: "Songti SC", "STSong", "Noto Serif SC", "Source Han Serif SC", "Songti TC", Georgia, serif;
  --serif-en: Georgia, "Times New Roman", "Songti SC", serif;   /* system-only; web font deferred */
  --serif: var(--serif-zh);   /* legacy alias for legal/thanks pages */
  --mono: ui-monospace, "SF Mono", "Menlo", "Cascadia Code", "Roboto Mono", monospace;
}

@media (prefers-color-scheme: dark) {
  :root {
    --paper: #16120E; --paper-2: #1D1813; --wash: #2A1E16; --card: #221B15;
    --card-rim: rgba(255, 240, 225, .05);
    --ink: #F1E9DF; --ink-2: #B4A89C; --ink-3: #7C7066; --line: #34291F; --line-strong: #473A2C;
    --clay: #DC7A53; --clay-deep: #C2663F; --clay-soft: #E89070; --seal: #E06A4F;
    --bamboo: #84A077; --honey: #DFB058; --danger: #E07258;
    --shadow-phone: 0 1px 0 var(--card-rim) inset, 0 30px 60px rgba(0, 0, 0, .5);
    --shadow-cta: 0 6px 16px rgba(0, 0, 0, .4);
  }
}

* { margin: 0; padding: 0; box-sizing: border-box; -webkit-tap-highlight-color: transparent; }
html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }

body {
  font-family: var(--sans);
  background: var(--paper);
  color: var(--ink);
  line-height: 1.6;
  font-size: 17px;
  font-variant-numeric: tabular-nums;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
  overflow-x: hidden;
}
a { color: inherit; text-decoration: none; }
img, svg { display: block; max-width: 100%; }
::selection { background: var(--wash); color: var(--clay-deep); }

/* display type — editorial serif, split by language */
.display { font-family: var(--serif-zh); font-weight: 700; }
html[lang^="en"] .display { font-family: var(--serif-en); }
html[lang^="zh"] .display { font-family: var(--serif-zh); }
.mono { font-family: var(--mono); font-variant-numeric: tabular-nums; }

/* i18n: both languages in DOM, toggle by <html data-lang> */
[data-i18n] { display: none; }
html[data-lang="zh"] [data-i18n="zh"] { display: revert; }
html[data-lang="en"] [data-i18n="en"] { display: revert; }

/* ---------- layout ---------- */
.container { width: 100%; max-width: var(--maxw); margin: 0 auto; padding: 0 24px; }
section { position: relative; }
.band { padding: clamp(72px, 9vw, 128px) 0; }

/* kicker / eyebrow — sans, ruled */
.eyebrow {
  display: inline-flex; align-items: center; gap: 11px;
  font-size: 12px; font-weight: 700; color: var(--clay-deep);
}
.eyebrow::before { content: ""; width: 24px; height: 1.5px; background: currentColor; opacity: .6; flex: none; }
html[lang^="en"] .eyebrow { letter-spacing: .22em; text-transform: uppercase; }
html[lang^="zh"] .eyebrow { letter-spacing: .14em; }

/* ---------- chapter header (left-aligned, ruled, oversized numeral) ---------- */
.chapter {
  max-width: var(--measure); margin: 0 auto clamp(40px, 5vw, 60px);
  border-top: 1px solid var(--line); padding-top: 22px;
  display: grid; grid-template-columns: auto 1fr; column-gap: clamp(20px, 4vw, 40px); align-items: start;
}
.chapter.wide { max-width: var(--wide); }
.chapter .ch-num {
  font-size: clamp(40px, 5vw, 68px); font-weight: 700; line-height: .9; color: var(--clay);
  font-variant-numeric: tabular-nums;
}
.chapter h2 { font-size: clamp(28px, 3.6vw, 42px); font-weight: 700; line-height: 1.16; margin-top: 12px; }
html[lang^="en"] .chapter h2 { letter-spacing: -.014em; text-wrap: balance; }
.chapter .sub { font-size: clamp(15.5px, 1.8vw, 18px); color: var(--ink-2); margin-top: 14px; line-height: 1.6; max-width: 52ch; text-wrap: pretty; }
.chapter .accent { color: var(--clay-deep); }

/* ---------- buttons ---------- */
.btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 8px;
  min-height: var(--control-h); box-sizing: border-box;
  font-family: var(--sans); font-size: 16px; font-weight: 600; line-height: 1;
  padding: 0 26px; border-radius: var(--r-ctrl); border: 1.5px solid transparent;
  cursor: pointer; transition: transform .15s ease, box-shadow .2s ease, background .2s ease, border-color .2s ease;
  white-space: nowrap;
}
.btn-primary { background: var(--clay); color: #fff; box-shadow: var(--shadow-cta); }
.btn-primary:hover { background: var(--clay-deep); transform: translateY(-2px); }
.btn-ghost { background: transparent; color: var(--ink); border-color: var(--line-strong); }
.btn-ghost:hover { border-color: var(--clay); color: var(--clay-deep); transform: translateY(-2px); }

/* ---------- the seal (印章) — the brand chop ---------- */
.seal { display: block; }
.seal .bg { fill: var(--seal); }
.seal .ch { fill: var(--card); font-family: var(--serif-zh); font-weight: 700; }
.seal-ghost { position: absolute; pointer-events: none; opacity: .06; z-index: 0; }

/* ---------- nav (printed masthead) ---------- */
.nav {
  position: sticky; top: 0; z-index: 100; height: var(--nav-h);
  display: flex; align-items: center;
  background: color-mix(in srgb, var(--paper) 78%, transparent);
  backdrop-filter: saturate(180%) blur(16px); -webkit-backdrop-filter: saturate(180%) blur(16px);
  border-bottom: 1px solid transparent; transition: border-color .25s ease;
}
.nav.scrolled { border-bottom-color: var(--line); }
.nav .container { display: flex; align-items: center; justify-content: space-between; gap: 16px; }
.brand { display: inline-flex; align-items: center; gap: 10px; }
.brand .mark { width: 30px; height: 30px; flex: none; }
.brand .lockup { display: flex; flex-direction: column; line-height: 1; }
.brand .zh { font-family: var(--serif-zh); font-size: 19px; font-weight: 700; letter-spacing: .12em; color: var(--ink); }
.brand .en { font-size: 9.5px; font-weight: 600; letter-spacing: .26em; color: var(--ink-3); margin-top: 3px; }
.nav-links { display: flex; align-items: center; gap: 30px; }
.nav-links a { position: relative; font-size: 15px; font-weight: 500; color: var(--ink-2); transition: color .15s ease; }
.nav-links a::after {
  content: ""; position: absolute; left: 0; right: 0; bottom: -6px; height: 1.5px; background: var(--clay);
  transform: scaleX(0); transform-origin: left; transition: transform .2s ease;
}
.nav-links a:hover { color: var(--clay-deep); }
.nav-links a:hover::after { transform: scaleX(1); }
.nav-right { display: flex; align-items: center; gap: 14px; }

/* flat text language toggle (no filled pill) */
.lang-toggle { display: inline-flex; align-items: center; gap: 2px; font-size: 13px; font-weight: 600; }
.lang-toggle .sep { width: 1px; height: 14px; background: var(--line-strong); margin: 0 6px; }
.lang-toggle button {
  font-family: var(--sans); font-size: 13px; font-weight: 600; color: var(--ink-3);
  background: none; border: none; cursor: pointer; padding: 4px 2px; position: relative; transition: color .15s ease;
}
.lang-toggle button::after {
  content: ""; position: absolute; left: 2px; right: 2px; bottom: -2px; height: 2px; background: var(--clay);
  transform: scaleX(0); transition: transform .18s ease;
}
.lang-toggle button:hover { color: var(--ink); }
html[data-lang="zh"] .lang-toggle button[data-set="zh"],
html[data-lang="en"] .lang-toggle button[data-set="en"] { color: var(--clay-deep); }
html[data-lang="zh"] .lang-toggle button[data-set="zh"]::after,
html[data-lang="en"] .lang-toggle button[data-set="en"]::after { transform: scaleX(1); }

/* ---------- hero ---------- */
.hero { padding: clamp(48px, 7vw, 96px) 0 clamp(56px, 8vw, 96px); overflow: hidden; }
.hero::before {
  content: ""; position: absolute; inset: 0; z-index: 0; pointer-events: none;
  background: radial-gradient(40% 46% at 88% -2%, rgba(220, 123, 83, .14), transparent 72%);
}
.hero .container { position: relative; z-index: 1; display: grid; grid-template-columns: 1.05fr .95fr; gap: 56px; align-items: center; }
.hero-copy { position: relative; max-width: 580px; padding-left: 26px; }
.hero-copy::before { content: ""; position: absolute; left: 0; top: 4px; bottom: 4px; width: 1px; background: var(--line-strong); }
.hero-copy > * { position: relative; z-index: 1; }   /* real content above the faint seal */
.hero .seal-ghost { top: -16px; left: 8px; width: 132px; height: 132px; z-index: 0; }
.hero h1 {
  position: relative; font-size: clamp(40px, 5.6vw, 64px); font-weight: 700; line-height: 1.12; margin-top: 20px; color: var(--ink);
}
html[lang^="en"] .hero h1 { letter-spacing: -.018em; text-wrap: balance; }
html[lang^="zh"] .hero h1 { letter-spacing: .01em; }
.hero h1 .accent { color: var(--clay-deep); }
.hero .lede { font-size: clamp(17px, 2vw, 20px); color: var(--ink-2); margin-top: 22px; line-height: 1.62; max-width: 44ch; text-wrap: pretty; }
.hero .micro { margin-top: 18px; font-size: 13px; color: var(--ink-3); }

/* waitlist form — the single primary CTA */
.waitlist-wrap { margin-top: 32px; max-width: 520px; }
.waitlist-form { display: flex; gap: 12px; }
.waitlist-input {
  flex: 1 1 auto; min-width: 0; min-height: var(--control-h); box-sizing: border-box;
  font-family: var(--sans); font-size: 16px; color: var(--ink);
  background: var(--card); border: 1.5px solid var(--line-strong); border-radius: var(--r-ctrl);
  box-shadow: var(--glaze); padding: 0 22px; transition: border-color .15s ease, box-shadow .15s ease;
}
.waitlist-input::placeholder { color: var(--ink-3); }
.waitlist-input:focus { outline: none; border-color: var(--clay); box-shadow: 0 0 0 3px var(--wash); }
.waitlist-form .btn { flex: none; }
.waitlist-msg { margin-top: 12px; font-size: 14px; font-weight: 500; color: var(--bamboo); padding-left: 4px; }
.waitlist-msg.err { color: var(--danger); }

/* secondary line under the form */
.cta-meta { display: flex; align-items: center; flex-wrap: wrap; gap: 10px 20px; margin-top: 18px; font-size: 14.5px; }
.appstore-mini { display: inline-flex; align-items: center; gap: 8px; font-weight: 600; color: var(--ink); }
.appstore-mini svg { width: 17px; height: 17px; flex: none; fill: currentColor; }
.soon-pill { font-size: 11px; font-weight: 700; letter-spacing: .03em; color: var(--clay-deep); border: 1px solid var(--line-strong); padding: 2px 9px; border-radius: 999px; }
.link-arrow { display: inline-flex; align-items: center; gap: 6px; font-weight: 600; color: var(--clay-deep); }
.link-arrow:hover { text-decoration: underline; }

/* ---------- phone mockup ---------- */
.phone-stage { position: relative; display: flex; justify-content: center; align-items: center; }
.phone-stage .wash {
  position: absolute; width: 96%; aspect-ratio: 1; border-radius: 50%; z-index: 0;
  background: radial-gradient(circle at 50% 44%, color-mix(in srgb, var(--clay) 14%, transparent), transparent 64%);
}
.phone {
  position: relative; z-index: 1; width: min(310px, 78vw); aspect-ratio: 310 / 640;
  background: var(--card); border-radius: 40px; padding: 12px; box-shadow: var(--shadow-phone);
  border: 1px solid var(--line); transform: rotate(-2deg);
}
.phone .screen {
  width: 100%; height: 100%; border-radius: 30px; overflow: hidden; position: relative;
  background: linear-gradient(180deg, var(--paper) 0%, var(--paper-2) 100%); border: 1px solid var(--line);
}
.phone .notch { position: absolute; top: 10px; left: 50%; transform: translateX(-50%); width: 96px; height: 26px; background: var(--ink); border-radius: 999px; z-index: 3; opacity: .9; }
.phone .seal { position: absolute; right: 14px; top: 34px; width: 24px; height: 24px; z-index: 3; opacity: .9; }
.scr { position: absolute; inset: 0; padding: 40px 16px 16px; display: flex; flex-direction: column; gap: 12px; }
.scr-eyebrow { font-family: var(--mono); font-size: 10.5px; font-weight: 500; color: var(--clay-deep); letter-spacing: .06em; }
.scr-title { font-family: var(--serif-zh); font-size: 20px; font-weight: 700; color: var(--ink); line-height: 1.2; }
.scr-card { background: var(--card); border: 1px solid var(--line); border-radius: 14px; box-shadow: var(--glaze); padding: 13px 14px; }
.scr-row { display: flex; align-items: center; gap: 10px; }
.scr-row + .scr-row { margin-top: 11px; padding-top: 11px; border-top: 1px solid var(--line); }
.scr-dot { width: 9px; height: 9px; border-radius: 50%; flex: none; margin: 0 4px; }
.scr-dot.clay { background: var(--clay); } .scr-dot.bamboo { background: var(--bamboo); } .scr-dot.honey { background: var(--honey); }
.scr-line-1 { font-size: 13.5px; font-weight: 600; color: var(--ink); }
.scr-line-2 { font-size: 11px; color: var(--ink-2); margin-top: 1px; }
.scr-qty { margin-left: auto; font-family: var(--mono); font-size: 12.5px; font-weight: 500; color: var(--clay-deep); white-space: nowrap; }
.scr-timer { margin-top: auto; background: var(--clay); color: #fff; border-radius: 14px; padding: 14px 16px; display: flex; align-items: center; justify-content: space-between; }
.scr-timer .big { font-family: var(--mono); font-size: 30px; font-weight: 600; letter-spacing: .02em; }
.scr-timer .lbl { font-size: 12px; opacity: .9; }
.scr-heat { display: inline-flex; align-items: center; gap: 5px; font-size: 12px; font-weight: 700; }
.scr-heat .flame { width: 8px; height: 8px; border-radius: 50%; background: #fff; box-shadow: 0 0 0 3px rgba(255,255,255,.25); }

/* ---------- contrast band (dark editorial spread) ---------- */
.contrast { background: var(--ink); color: var(--paper); }
.contrast .container { padding-top: clamp(64px, 8vw, 104px); padding-bottom: clamp(64px, 8vw, 104px); }
.contrast .chapter { border-top-color: rgba(241, 233, 223, .16); }
.contrast .eyebrow { color: var(--clay-soft); }
.contrast .ch-num { color: #F1E9DF; opacity: .9; }
.contrast h2 { font-size: clamp(24px, 3.2vw, 38px); font-weight: 700; line-height: 1.34; }
.contrast h2 .hl { color: var(--clay-soft); }
.vs-grid { max-width: var(--measure); margin: clamp(36px, 4vw, 48px) auto 0; display: grid; grid-template-columns: repeat(3, 1fr); }
.vs-card { padding: 4px 24px; border-left: 1px solid rgba(241, 233, 223, .16); }
.vs-card:first-child { padding-left: 0; border-left: none; }
.vs-card .who { font-size: 13.5px; font-weight: 700; color: var(--clay-soft); }
.vs-card .gap { font-size: 15.5px; color: rgba(241, 233, 223, .82); margin-top: 10px; line-height: 1.55; }

/* ---------- features = ruled table-of-contents index ---------- */
.features { background: var(--paper-2); }
.index { max-width: var(--measure); margin: 0 auto; border-top: 1px solid var(--line-strong); }
.entry {
  display: grid; grid-template-columns: 46px 1fr auto; column-gap: 20px; align-items: baseline;
  padding: 28px 6px; border-bottom: 1px solid var(--line); position: relative; transition: background .2s ease;
}
.entry .num { font-family: var(--mono); font-size: 22px; color: var(--ink-3); letter-spacing: .04em; }
.entry .e-body { min-width: 0; }
.entry h3 { font-family: var(--serif-zh); font-size: 20px; font-weight: 600; display: flex; align-items: baseline; gap: 11px; line-height: 1.25; }
html[lang^="en"] .entry h3 { font-family: var(--serif-en); }
.entry h3 .dingbat { width: 18px; height: 18px; flex: none; stroke: var(--clay); fill: none; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; transform: translateY(2px); }
.entry p { font-size: 15.5px; color: var(--ink-2); margin-top: 7px; max-width: 46ch; line-height: 1.6; }
.entry .tag { display: inline-block; margin-top: 12px; font-size: 12px; font-weight: 700; color: var(--bamboo); background: color-mix(in srgb, var(--bamboo) 12%, transparent); padding: 3px 10px; border-radius: 999px; }
.entry .leader { align-self: center; color: var(--ink-3); font-size: 18px; transition: transform .2s ease, color .2s ease; }
.entry:hover { background: color-mix(in srgb, var(--clay) 5%, transparent); }
.entry:hover .num { color: var(--clay-deep); }
.entry:hover h3 { transform: translateX(2px); }
.entry:hover .leader { transform: translateX(4px); color: var(--clay); }

/* ---------- how it works (cookbook method steps, un-boxed) ---------- */
.steps { max-width: var(--wide); margin: 0 auto; display: grid; grid-template-columns: repeat(3, 1fr); }
.step { padding: 4px clamp(20px, 3vw, 32px); border-left: 1px solid var(--line); }
.step:first-child { padding-left: 0; border-left: none; }
.step .num { font-family: var(--serif-zh); font-size: clamp(40px, 5vw, 60px); font-weight: 700; line-height: .9; color: var(--clay); }
.step h3 { font-family: var(--serif-zh); font-size: 20px; font-weight: 600; margin-top: 16px; }
html[lang^="en"] .step h3, html[lang^="en"] .step .num { font-family: var(--serif-en); }
.step p { font-size: 15.5px; color: var(--ink-2); margin-top: 10px; line-height: 1.6; }
.step .cap { font-family: var(--mono); font-size: 11.5px; color: var(--ink-3); margin-top: 12px; letter-spacing: .02em; }

/* ---------- trust / privacy (warmest band, bamboo accent) ---------- */
.trust { background: var(--wash); }
.trust .eyebrow, .trust .ch-num { color: var(--bamboo); }
.trust-grid { max-width: var(--wide); margin: 0 auto; display: grid; grid-template-columns: repeat(4, 1fr); }
.trust-card { padding: 4px clamp(16px, 2.4vw, 26px); border-left: 1px solid var(--line-strong); }
.trust-card:first-child { padding-left: 0; border-left: none; }
.trust-card .ti svg { width: 24px; height: 24px; stroke: var(--bamboo); fill: none; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.trust-card h3 { font-family: var(--serif-zh); font-size: 16px; font-weight: 600; margin-top: 16px; }
html[lang^="en"] .trust-card h3 { font-family: var(--serif-en); }
.trust-card p { font-size: 13.5px; color: var(--ink-2); margin-top: 8px; line-height: 1.55; }
.trust-card .chk { display: inline-flex; align-items: center; gap: 5px; margin-top: 10px; font-size: 11px; font-weight: 700; color: var(--bamboo); }

/* ---------- final CTA (the back cover — earned clay block) ---------- */
.final { text-align: center; }
.final-card {
  position: relative; overflow: hidden; background: var(--clay); border-radius: var(--r-panel);
  padding: clamp(48px, 7vw, 84px) 24px; color: #fff; box-shadow: var(--shadow-cta);
}
.final-card .seal-ghost { opacity: .12; right: -24px; bottom: -30px; width: 220px; height: 220px; }
.final-card .seal-ghost .ch { fill: #fff; } .final-card .seal-ghost .bg { fill: rgba(255,255,255,.0); }
.final-card h2 { position: relative; z-index: 1; font-size: clamp(28px, 4vw, 46px); font-weight: 700; line-height: 1.16; }
.final-card p { position: relative; z-index: 1; font-size: clamp(16px, 2vw, 19px); opacity: .94; margin-top: 16px; max-width: 40ch; margin-left: auto; margin-right: auto; }
.final-card .waitlist-wrap { position: relative; z-index: 1; margin: 28px auto 0; }
.on-clay .waitlist-input { background: rgba(255, 255, 255, .96); border-color: transparent; color: #2A211A; box-shadow: none; }
.on-clay .waitlist-input::placeholder { color: #9B8F84; }
.on-clay .waitlist-input:focus { box-shadow: 0 0 0 3px rgba(255, 255, 255, .45); }
.on-clay .waitlist-form .btn { background: var(--ink); color: #fff; }
.on-clay .waitlist-form .btn:hover { background: #1a130d; }
.on-clay .waitlist-msg { color: #fff; opacity: .95; }
.on-clay .waitlist-msg.err { color: #FFE0D6; }

/* ---------- footer (printed colophon) ---------- */
.footer { background: var(--paper); border-top: 1px solid var(--line); padding: 56px 0 40px; }
.footer .container { display: grid; grid-template-columns: 1.4fr 1fr 1fr; gap: 32px; }
.footer .f-brand .brand { margin-bottom: 14px; }
.footer .f-brand p { font-size: 14px; color: var(--ink-2); max-width: 320px; line-height: 1.6; }
.footer .f-col h4 { font-size: 12px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--ink-3); margin-bottom: 14px; }
.footer .f-col a { display: block; font-size: 15px; color: var(--ink-2); margin-bottom: 11px; transition: color .15s ease; }
.footer .f-col a:hover { color: var(--clay-deep); }
.footer .f-bottom {
  max-width: var(--maxw); margin: 40px auto 0; padding: 22px 24px 0; border-top: 1px solid var(--line);
  display: flex; align-items: center; justify-content: space-between; gap: 16px; flex-wrap: wrap;
  font-size: 13px; color: var(--ink-3);
}
.footer .f-bottom .colophon { display: inline-flex; align-items: center; gap: 8px; }
.footer .f-bottom .seal { width: 18px; height: 18px; opacity: .85; }

/* ---------- reveal (staggered) ---------- */
.reveal { opacity: 0; transform: translateY(16px); transition: opacity .6s cubic-bezier(.22,.61,.36,1), transform .6s cubic-bezier(.22,.61,.36,1); transition-delay: calc(var(--i, 0) * 60ms); }
.reveal.in { opacity: 1; transform: none; }
@media (prefers-reduced-motion: reduce) { .reveal { opacity: 1; transform: none; transition: none; } }

@keyframes floaty { 0%,100% { transform: rotate(-2deg) translateY(0); } 50% { transform: rotate(-2deg) translateY(-10px); } }
@media (prefers-reduced-motion: no-preference) { .phone { animation: floaty 6s ease-in-out infinite; } }

/* ---------- legal / prose ---------- */
.legal { max-width: 760px; margin: 0 auto; padding: clamp(40px, 6vw, 72px) 24px 96px; }
.legal .back { display: inline-flex; align-items: center; gap: 6px; font-size: 14px; color: var(--ink-2); margin-bottom: 28px; }
.legal .back:hover { color: var(--clay-deep); }
.legal h1 { font-family: var(--serif); font-size: clamp(31px, 5vw, 44px); font-weight: 700; }
html[lang^="en"] .legal h1 { font-family: var(--serif-en); letter-spacing: -.01em; }
.legal .updated { font-size: 14px; color: var(--ink-3); margin-top: 10px; }
.legal .intro { font-size: 17px; color: var(--ink-2); margin-top: 20px; line-height: 1.7; }
.legal h2 { font-family: var(--serif); font-size: 21px; font-weight: 700; margin-top: 40px; }
html[lang^="en"] .legal h2 { font-family: var(--serif-en); }
.legal h3 { font-size: 17px; font-weight: 700; margin-top: 24px; }
.legal p { margin-top: 14px; color: var(--ink-2); line-height: 1.75; }
.legal ul { margin: 14px 0 0 4px; padding-left: 22px; }
.legal li { margin-top: 9px; color: var(--ink-2); line-height: 1.7; }
.legal a.inline { color: var(--clay-deep); font-weight: 600; }
.legal a.inline:hover { text-decoration: underline; }
.legal strong { color: var(--ink); font-weight: 700; }
.legal .callout { margin-top: 18px; background: var(--wash); border: 1px solid var(--line); border-radius: var(--r-card); box-shadow: var(--glaze); padding: 16px 18px; font-size: 15px; color: var(--ink-2); line-height: 1.65; }

/* ---------- responsive ---------- */
@media (max-width: 900px) {
  .hero .container { grid-template-columns: 1fr; gap: 40px; }
  .phone-stage { order: -1; }
  .vs-grid { grid-template-columns: 1fr; }
  .vs-card { padding: 22px 0; border-left: none; border-top: 1px solid rgba(241,233,223,.16); }
  .vs-card:first-child { border-top: none; padding-top: 4px; }
  .steps { grid-template-columns: 1fr; }
  .step { padding: 24px 0; border-left: none; border-top: 1px solid var(--line); display: grid; grid-template-columns: auto 1fr; column-gap: 20px; align-items: baseline; }
  .step:first-child { border-top: none; padding-top: 4px; }
  .step .num { margin-top: 0; }
  .step .h-body { grid-column: 2; }
  .trust-grid { grid-template-columns: 1fr 1fr; gap: 8px 0; }
  .trust-card { padding: 22px 0; border-left: none; }
  .trust-card:nth-child(odd) { padding-right: 22px; }
  .trust-card:nth-child(even) { padding-left: 22px; border-left: 1px solid var(--line-strong); }
  .footer .container { grid-template-columns: 1fr 1fr; }
  .footer .f-brand { grid-column: 1 / -1; }
}
@media (max-width: 600px) {
  /* stack the chapter numeral above its heading — avoids a cramped grid column */
  .chapter { grid-template-columns: 1fr; row-gap: 2px; }
  .chapter .ch-num { font-size: 34px; }
  .chapter h2 { margin-top: 8px; }
}
@media (max-width: 560px) {
  .waitlist-form { flex-direction: column; }
  .waitlist-form .btn { width: 100%; }
  .hero .cta-meta { justify-content: flex-start; }
}
@media (max-width: 480px) {
  .nav-links { display: none; }
  .brand .en { display: none; }
  .entry { grid-template-columns: 30px 1fr; column-gap: 14px; padding: 22px 2px; }
  .entry .num { font-size: 16px; }
  .entry .leader { display: none; }
  .trust-grid { grid-template-columns: 1fr; }
  .trust-card, .trust-card:nth-child(even) { padding: 20px 0; border-left: none; border-top: 1px solid var(--line-strong); }
  .trust-card:first-child { border-top: none; }
  .footer .container { grid-template-columns: 1fr; }
}
