/* land-tokens.css — the brand truths, ported for the landing (LP1).
   SOURCE OF TRUTH: wishu repo, docs/ux/prototype-brand-slice/css/brand.css :root
   (mirrored by system/tokens.json — FROZEN S18). Values are VERBATIM; a value
   change happens in the product first, then re-ports here. This file carries
   NO layout law: 02-layout.md is the PHONE system and does not bind this site
   (DESIGN.md §not-ruled) — the landing layout system is minted in
   lab/landinglab.html and encoded in land.css once ruled. */

@import url('fonts.css');

:root {
  /* Shell — warm cream day */
  --shell: #EBE1D6;
  --paper: #FBF6EE;
  --ink: #26222B;
  --text-2: #6C6457;
  --text-3: #9A9083;
  --text-4: #C0B7A9;
  --line: rgba(38, 34, 43, 0.16);
  --line-soft: rgba(38, 34, 43, 0.09);
  --fill: #E3D8CB;
  --bg: var(--shell);
  --danger: #B3402F;

  /* Night stock — content material (never inverts) */
  --stock: #181C24;
  --bone: #F2E8DA;
  --bone-body: rgba(242, 232, 218, 0.92);
  --bone-line: rgba(242, 232, 218, 0.30);

  /* Accent grammar: madder = time/heat/identity · wine = commitment/money */
  --madder: #A0453F;
  --madder-lum: #D96A5B;
  --wine: #7A2238;
  --wine-ink: #F2E8DA;

  /* Pack identity — hot accents, art wash only (names stay bone) */
  --ember: #FF8A3D;
  --coral: #FF7A59;
  --rose: #FF5B72;
  --pink: #F5487C;
  --amber: #FFB13D;
  --magenta: #E93FB0;
  --blush: #FFB4A6;

  /* Free/locked chrome */
  --free: #E3D8CB;
  --free-ink: #6E6659;

  --serif: 'Bodoni Moda', Georgia, serif;
  --sans: 'Geist', -apple-system, sans-serif;
  --card-shadow: 0 2px 5px rgba(38, 34, 43, 0.10), 0 14px 34px rgba(38, 34, 43, 0.16);
  --stage-bg: #E0D5C7;

  /* Sans text registers (S18, D100 Phase 1) */
  --fs-eyebrow: 9.5px;
  --fs-label: 11px;
  --fs-meta: 12px;
  --fs-support: 13px;
  --fs-note: 14px;
  --fs-body: 15px;

  /* Sans specials */
  --fs-nav: 17px;
  --fs-btn: 16px;
  --fs-index: 18px;
  --fs-code: 19px;
  --fs-title-dlg: 20px;
  --fs-amount: 26px;
  --fs-amount-lg: 34px;
  --fs-reading: 16px;

  /* Serif display ladder (locked card faces excluded —
     wishcard.tokens.json owns 28/29/40 on the card) */
  --disp-s: 24px;
  --disp-m: 26px;
  --disp-title: 28px;
  --disp-shelf: 30px;
  --disp-l: 34px;
  --disp-name: 36px;
  --disp-wordmark: 36px;
  --disp-headline: 40px;
  --disp-xl: 44px;
  --disp-hero: 52px;
  /* Off-device extensions to this ladder are a LANDING decision —
     minted in landinglab, encoded in land.css, never back-ported. */

  /* Glyph family (hearts, arrows — drawn chrome, not type) */
  --glyph-s: 16px;
  --glyph-m: 18px;
  --glyph-l: 20px;
  --glyph-xl: 22px;

  /* Tracking */
  --track-caps: 0.22em;
  --track-caps-lg: 0.16em;
  --track-tight: -0.005em;
  --track-display: -0.01em;
  --track-amount: -0.02em;

  /* Line-height */
  --lh-solid: 1;
  --lh-headline: 1.14;
  --lh-support: 1.4;
  --lh-note: 1.45;
  --lh-body: 1.5;
  --lh-reading: 1.55;
  --lh-doc: 1.65;

  /* Radii */
  --r-card: 16px;
  --r-card-m: 20px;
  --r-card-f: 24px;
  --r-float: 18px;
  --r-object: 14px;
  --r-chip: 12px;
  --r-sheet-top: 22px;
  --r-pill: 100px;
  --r-circle: 50%;

  /* Elevation */
  --shadow-sm: 0 1px 6px rgba(38, 34, 43, 0.10);
  --shadow-float: 0 3px 6px rgba(38, 34, 43, 0.10), 0 18px 44px rgba(38, 34, 43, 0.18);
  --shadow-lift: 0 2px 4px rgba(38, 34, 43, 0.14), 0 10px 22px rgba(38, 34, 43, 0.20), 0 24px 50px rgba(38, 34, 43, 0.16);
  --shadow-lift-max: 0 6px 12px rgba(38, 34, 43, 0.12), 0 30px 64px rgba(38, 34, 43, 0.26);
  --shadow-night: inset 0 0 0 1px rgba(242, 232, 218, 0.16), 0 2px 4px rgba(0, 0, 0, 0.55), 0 8px 18px rgba(0, 0, 0, 0.42), 0 18px 44px rgba(38, 34, 43, 0.18);
  --shadow-night-sm: inset 0 0 0 1px color-mix(in srgb, var(--bone) 7%, transparent), 0 2px 7px rgba(0, 0, 0, 0.40);

  /* Motion */
  --t-tap: 80ms;
  --t-fast: 160ms;
  --t-quick: 240ms;
  --t-base: 300ms;
  --t-move: 460ms;
  --t-page: 560ms;
  --t-reveal: 620ms;   /* the signature beat */
  --t-grand: 700ms;
  --ease-out: cubic-bezier(0.32, 0.72, 0.24, 1);
  --ease-pop: cubic-bezier(0.2, 1.25, 0.35, 1);
  --ease-bounce: cubic-bezier(0.2, 1.6, 0.4, 1);

  /* Palette roles */
  --handle: rgba(38, 34, 43, 0.18);
  --scrim: rgba(38, 30, 24, 0.40);

  /* The serif's ONE optical cut (D119 → D127) */
  --opsz-text: 24;

  /* PRODUCT-LANE insets, carried for the card export only — these are
     phone screen law (02-layout.md), NOT the landing's gutters. The
     landing's own edges are a landinglab decision. */
  --edge-object: 16px;
  --edge-type: 22px;
}

/* Foundation — the landing page is the warm shell room */
*, *::before, *::after { box-sizing: border-box; }
body {
  font-family: var(--sans);
  background: var(--bg);
  color: var(--ink);
  margin: 0;
  -webkit-font-smoothing: antialiased;
}
