/* ──────────────────────────────────────────────────────────────────────────
   PingCrood landing page — get.fawadiqbal.dev

   Organic tokens, transcribed 1:1 from app/lib/theme/organic.dart (the same
   table web/src/app/globals.css uses): light by default, dark under
   `prefers-color-scheme: dark` unless <html data-theme="light">, and
   forced by <html data-theme="dark">. The phone mockups further down are
   pictures of the app in its light theme, so they keep literal colours
   and do not flip with the page.
   ────────────────────────────────────────────────────────────────────────── */

/* ── Fonts: the web app's @fontsource files, self-hosted (assets/fonts) ── */
@font-face {
  font-family: "Figtree";
  font-style: normal;
  font-weight: 300 900;
  font-display: swap;
  src: url("assets/fonts/figtree-latin-ext-wght-normal.woff2") format("woff2");
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: "Figtree";
  font-style: normal;
  font-weight: 300 900;
  font-display: swap;
  src: url("assets/fonts/figtree-latin-wght-normal.woff2") format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: "Caprasimo";
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("assets/fonts/caprasimo-latin-ext-400-normal.woff2") format("woff2");
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: "Caprasimo";
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("assets/fonts/caprasimo-latin-400-normal.woff2") format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/* ── Tokens ─────────────────────────────────────────────────────────────── */
:root {
  color-scheme: light;

  --o-bg: #f5ead8;
  --o-surface: #ebddc5;
  --o-text: #201e1d;
  --o-accent: #c67139;
  --o-divider: rgb(32 30 29 / 0.16);

  --o-neutral-100: #f9f4ed;
  --o-neutral-300: #dcd3c4;
  --o-neutral-400: #c0b6a5;
  --o-neutral-600: #82796a;
  --o-neutral-700: #645c50;
  --o-neutral-800: #474238;
  --o-neutral-900: #2e2b25;

  --o-accent-100: #fff2eb;
  --o-accent-200: #ffe1d0;
  --o-accent-300: #ffc6a5;
  --o-accent-700: #8c491a;
  --o-accent-800: #643312;

  --o-accent2-200: #e1eecc;
  --o-accent2-300: #ccdbb2;
  --o-accent2-700: #56633f;
  --o-accent2-800: #3d472b;

  --o-on-accent-deep: #ffffff;
  --o-accent-ink: #643312;
  --o-outline: rgb(71 66 56 / 0.45);

  --o-shadow-sm: 0 1px 2px rgb(46 43 37 / 0.14);
  --o-shadow-md: 0 3px 10px rgb(46 43 37 / 0.16);
  --o-shadow-lg: 0 12px 32px rgb(46 43 37 / 0.22);

  --o-motion-fast: 150ms;
  --o-motion-base: 220ms;
  --o-ease: cubic-bezier(0.215, 0.61, 0.355, 1);

  --font-heading: "Caprasimo", ui-serif, Georgia, serif;
  --font-body: "Figtree", ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;

  --radius-sm: 8px;
  --radius-md: 16px;
  --radius-lg: 28px;
  --radius-pill: 999px;

  /* The CTA band and the primary button are clay in both themes. */
  --cta-bg: #8c491a;
  --cta-ink: #ffffff;
  --cta-sub: #ffe1d0;
}

@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) {
    color-scheme: dark;
    --o-bg: #1a1613;
    --o-surface: #26201b;
    --o-text: #f5ead8;
    --o-divider: #453a30;
    --o-neutral-100: #221d19;
    --o-neutral-300: #332b24;
    --o-neutral-400: #453a30;
    --o-neutral-600: #8a7a6a;
    --o-neutral-700: #b0a294;
    --o-neutral-800: #d3c8bb;
    --o-neutral-900: #f0e8dd;
    --o-accent-100: #2e2018;
    --o-accent-200: #3d2a1d;
    --o-accent-300: #513723;
    --o-accent-700: #cf7b3f;
    --o-accent-800: #e0a273;
    --o-accent2-200: #2c3020;
    --o-accent2-300: #3a4029;
    --o-accent2-700: #9aab7a;
    --o-accent2-800: #b6c79a;
    --o-on-accent-deep: #201e1d;
    --o-accent-ink: #f0c19b;
    --o-outline: rgb(211 200 187 / 0.45);
  }
}
:root[data-theme="dark"] {
  color-scheme: dark;
  --o-bg: #1a1613;
  --o-surface: #26201b;
  --o-text: #f5ead8;
  --o-divider: #453a30;
  --o-neutral-100: #221d19;
  --o-neutral-300: #332b24;
  --o-neutral-400: #453a30;
  --o-neutral-600: #8a7a6a;
  --o-neutral-700: #b0a294;
  --o-neutral-800: #d3c8bb;
  --o-neutral-900: #f0e8dd;
  --o-accent-100: #2e2018;
  --o-accent-200: #3d2a1d;
  --o-accent-300: #513723;
  --o-accent-700: #cf7b3f;
  --o-accent-800: #e0a273;
  --o-accent2-200: #2c3020;
  --o-accent2-300: #3a4029;
  --o-accent2-700: #9aab7a;
  --o-accent2-800: #b6c79a;
  --o-on-accent-deep: #201e1d;
  --o-accent-ink: #f0c19b;
  --o-outline: rgb(211 200 187 / 0.45);
}

/* ── Base ───────────────────────────────────────────────────────────────── */
*, *::before, *::after { box-sizing: border-box; }
html { background: var(--o-bg); color: var(--o-text); -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; text-rendering: optimizeLegibility; scroll-behavior: smooth; }
body { margin: 0; font-family: var(--font-body); font-size: 15px; line-height: 1.45; background: var(--o-bg); color: var(--o-text); overflow-x: hidden; }
h1, h2, h3 { font-family: var(--font-heading); font-weight: 400; margin: 0; text-wrap: balance; }
p { margin: 0; }
ul { margin: 0; padding: 0; list-style: none; }
a { color: var(--o-accent-ink); text-underline-offset: 3px; text-decoration-thickness: 1px; }
img, svg { display: block; }
button { font: inherit; cursor: pointer; }
:focus-visible { outline: 2px solid var(--o-accent-700); outline-offset: 2px; }
:focus:not(:focus-visible) { outline: none; }
::selection { background: var(--o-accent-300); color: var(--o-text); }

.wrap { width: min(1200px, 100% - 48px); margin-inline: auto; }
@media (max-width: 640px) { .wrap { width: min(1200px, 100% - 40px); } }

.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
.skip { position: absolute; left: 16px; top: -60px; padding: 10px 16px; border-radius: var(--radius-pill); background: var(--o-accent-700); color: var(--o-on-accent-deep); font-weight: 700; z-index: 100; text-decoration: none; }
.skip:focus { top: 12px; }

.ic { width: 20px; height: 20px; flex-shrink: 0; }
.ic-sm { width: 16px; height: 16px; flex-shrink: 0; }
.ic-xs { width: 13px; height: 13px; flex-shrink: 0; }
.ic-lg { width: 24px; height: 24px; flex-shrink: 0; }

/* Type roles */
.eyebrow { font-size: 12.5px; font-weight: 700; letter-spacing: 1.4px; text-transform: uppercase; color: var(--o-accent-ink); }
.h1 { font-size: clamp(40px, 4.6vw, 66px); line-height: 1.02; letter-spacing: -0.5px; }
.h2 { font-size: clamp(30px, 3vw, 44px); line-height: 1.1; letter-spacing: -0.3px; }
.h3 { font-size: clamp(22px, 2.1vw, 30px); line-height: 1.15; letter-spacing: -0.2px; }
.lead { font-size: clamp(16px, 1.3vw, 19px); line-height: 1.5; color: var(--o-neutral-800); text-wrap: pretty; }
.body { font-size: 16px; line-height: 1.5; color: var(--o-neutral-800); text-wrap: pretty; }
.muted { color: var(--o-neutral-700); }
.mark-clay { color: var(--o-accent-700); }

/* Buttons (Button.tsx: pill, 44 / 56, clay fill or 1.5px outline) */
.btn { display: inline-flex; align-items: center; justify-content: center; gap: 10px; min-height: 44px; padding: 0 22px; border-radius: var(--radius-pill); font-size: 15px; font-weight: 700; text-decoration: none; white-space: nowrap; border: 0; transition: background-color var(--o-motion-fast) var(--o-ease), border-color var(--o-motion-fast) var(--o-ease), transform var(--o-motion-fast) var(--o-ease); }
.btn:active { transform: translateY(1px); }
.btn-primary { background: var(--o-accent-700); color: var(--o-on-accent-deep); box-shadow: var(--o-shadow-sm); }
.btn-primary:hover { background: var(--o-accent-800); }
.btn-outline { border: 1.5px solid var(--o-outline); color: var(--o-neutral-800); background: transparent; }
.btn-outline:hover { background: var(--o-neutral-100); border-color: var(--o-neutral-700); }
.btn-lg { min-height: 56px; padding: 0 28px; font-size: 16px; }
.btn-inverse { background: #f5ead8; color: #643312; box-shadow: var(--o-shadow-sm); }
.btn-inverse:hover { background: #ffffff; }
.btn-ghost-light { border: 1.5px solid rgb(245 234 216 / 0.6); color: #ffffff; background: transparent; }
.btn-ghost-light:hover { background: rgb(245 234 216 / 0.12); }

/* ── Nav ────────────────────────────────────────────────────────────────── */
.nav { position: sticky; top: 0; z-index: 50; background: color-mix(in srgb, var(--o-bg) 88%, transparent); backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px); border-bottom: 1px solid transparent; }
.nav.is-scrolled { border-bottom-color: var(--o-divider); }
.nav-inner { height: 76px; display: flex; align-items: center; justify-content: space-between; gap: 24px; }
.brand { display: inline-flex; align-items: center; gap: 10px; text-decoration: none; color: var(--o-text); }
.brand img { width: 40px; height: 40px; filter: drop-shadow(0 3px 10px rgb(46 43 37 / 0.16)); }
.brand-name { font-family: var(--font-heading); font-size: 22px; letter-spacing: -0.5px; line-height: 1; }
.nav-links { display: flex; align-items: center; gap: 32px; }
.nav-links a { font-size: 15px; font-weight: 600; color: var(--o-neutral-800); text-decoration: none; }
.nav-links a:hover { color: var(--o-text); }
.nav-actions { display: flex; align-items: center; gap: 10px; }
.nav-toggle { display: none; width: 44px; height: 44px; border-radius: 50%; border: 0; background: transparent; color: var(--o-neutral-800); align-items: center; justify-content: center; }
.nav-toggle svg { width: 24px; height: 24px; }
.nav-toggle .x { display: none; }
.nav.is-open .nav-toggle .bars { display: none; }
.nav.is-open .nav-toggle .x { display: block; }

@media (max-width: 1023px) {
  .nav-links { display: none; }
  .nav-actions .btn-outline { display: none; }
  .nav-toggle { display: inline-flex; }
  .nav.is-open .nav-links { display: flex; flex-direction: column; align-items: stretch; gap: 0; position: absolute; left: 0; right: 0; top: 76px; padding: 8px 20px 16px; background: var(--o-bg); border-bottom: 1px solid var(--o-divider); box-shadow: var(--o-shadow-md); }
  .nav.is-open .nav-links a { padding: 14px 4px; border-bottom: 1px solid var(--o-divider); font-size: 17px; }
  .nav.is-open .nav-links a:last-child { border-bottom: 0; }
}
@media (max-width: 640px) { .nav-inner { height: 68px; } .brand img { width: 36px; height: 36px; } .brand-name { font-size: 20px; } .nav-actions .btn { min-height: 40px; padding: 0 16px; font-size: 14px; } .nav.is-open .nav-links { top: 68px; } }

/* ── Sections ───────────────────────────────────────────────────────────── */
.section { padding-block: clamp(48px, 6vw, 88px); }
.section-head { display: flex; flex-direction: column; gap: 14px; max-width: 720px; }
.section-head-row { display: flex; align-items: flex-end; justify-content: space-between; gap: 40px; }
.section-head-row .lead { max-width: 440px; }
@media (max-width: 900px) { .section-head-row { flex-direction: column; align-items: flex-start; gap: 16px; } }

.split { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: clamp(32px, 5vw, 80px); align-items: center; }
.split .copy { display: flex; flex-direction: column; gap: 22px; max-width: 540px; }
.split.flip .copy { order: 1; }
.split.flip .art { order: 2; }
@media (max-width: 960px) {
  .split { grid-template-columns: minmax(0, 1fr); }
  .split .copy, .split.flip .copy { order: 1; max-width: 640px; }
  .split .art, .split.flip .art { order: 2; justify-self: center; }
}

.meta-row { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 22px; font-size: 14px; font-weight: 600; color: var(--o-neutral-700); }
.meta-row span { display: inline-flex; align-items: center; gap: 8px; }
.cta-row { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; padding-top: 4px; }
@media (max-width: 480px) { .cta-row { flex-direction: column; align-items: stretch; } .cta-row .btn { width: 100%; } }

.feature-list { display: flex; flex-direction: column; gap: 16px; padding-top: 4px; }
.feature-list li { display: flex; align-items: flex-start; gap: 14px; }
.feature-list .t { font-size: 17px; font-weight: 700; }
.feature-list .d { font-size: 15px; line-height: 1.5; color: var(--o-neutral-700); }
.feature-list li > span:last-child { display: flex; flex-direction: column; gap: 3px; }
.icon-chip { width: 44px; height: 44px; border-radius: 50%; background: var(--o-accent-200); color: var(--o-accent-ink); display: inline-flex; align-items: center; justify-content: center; flex-shrink: 0; }
.icon-chip.lg { width: 48px; height: 48px; }

.mini-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px 24px; padding-top: 4px; }
.mini-grid > div { display: flex; align-items: flex-start; gap: 10px; }
.mini-grid svg { color: var(--o-accent-700); }
.mini-grid .t { font-size: 15px; font-weight: 700; display: block; }
.mini-grid .d { font-size: 14px; line-height: 1.4; color: var(--o-neutral-700); display: block; margin-top: 2px; }
@media (max-width: 420px) { .mini-grid { grid-template-columns: minmax(0, 1fr); } }

/* Cards */
.card { background: var(--o-surface); border-radius: var(--radius-lg); padding: clamp(24px, 3vw, 40px); display: flex; flex-direction: column; gap: 16px; }
.card.tint { background: var(--o-accent-100); }
.card-grid-3 { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; }
.card-grid-2 { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; }
@media (max-width: 960px) { .card-grid-3 { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 640px) { .card-grid-3, .card-grid-2 { grid-template-columns: minmax(0, 1fr); } }
.tile-head { display: flex; align-items: center; gap: 12px; }
.tile-head h3 { font-size: 22px; line-height: 1.2; }

.chips { display: flex; flex-wrap: wrap; gap: 8px; }
.chip { padding: 6px 12px; border-radius: var(--radius-pill); background: var(--o-neutral-100); font-size: 13px; font-weight: 600; color: var(--o-neutral-800); }

/* ── Hero ───────────────────────────────────────────────────────────────── */
.hero { padding-block: clamp(32px, 4vw, 48px) clamp(40px, 6vw, 80px); }
.hero .split { align-items: center; }
.hero .copy { gap: 28px; max-width: 560px; }
@media (max-width: 960px) { .hero .copy { max-width: 640px; } .hero .art { margin-top: 8px; } }

/* Art compositions: authored at a fixed size, scaled as one picture. */
.art-box { position: relative; --w: 640; --h: 800; --s: 1; width: calc(var(--w) * 1px * var(--s)); height: calc(var(--h) * 1px * var(--s)); }
.art-box > .art-stage { position: absolute; left: 0; top: 0; width: calc(var(--w) * 1px); height: calc(var(--h) * 1px); transform: scale(var(--s)); transform-origin: top left; }
.art-box.hero-art { --w: 640; --h: 800; }
.art-box.single { --w: 540; --h: 700; }
@media (max-width: 1200px) { .art-box.hero-art { --s: 0.9; } .art-box.single { --s: 0.9; } }
@media (max-width: 960px) { .art-box.hero-art { --s: 0.85; } .art-box.single { --s: 0.85; } }
@media (max-width: 640px) { .art-box.hero-art { --s: 0.54; } .art-box.single { --s: 0.62; } }
@media (max-width: 400px) { .art-box.hero-art { --s: 0.49; } .art-box.single { --s: 0.58; } }

.blob { position: absolute; border-radius: 50%; }
.blob.sage { background: var(--o-accent2-300); }
.blob.clay { background: var(--o-accent-200); }

/* Floating cards beside the phones */
.float-card { position: absolute; padding: 14px 16px; border-radius: var(--radius-md); background: #f9f4ed; color: #201e1d; box-shadow: var(--o-shadow-md); display: flex; flex-direction: column; gap: 10px; }
.float-card.row { flex-direction: row; align-items: center; gap: 12px; }
.float-card .t { font-size: 14px; font-weight: 700; }
.float-card .d { font-size: 12.5px; color: #645c50; }
.float-card .stack { display: flex; flex-direction: column; gap: 2px; }
.float-card .btns { display: flex; gap: 8px; }
.float-card .btns span { flex: 1; display: inline-flex; align-items: center; justify-content: center; height: 36px; border-radius: 999px; font-size: 12.5px; font-weight: 700; }
.float-card .btns .fill { background: #8c491a; color: #fff; }
.float-card .btns .line { border: 1.5px solid rgb(71 66 56 / 0.45); color: #474238; }

/* ── Phone mockups (pictures of the app; literal light-theme colours) ──── */
.phone { position: absolute; width: 320px; height: 680px; border: 8px solid #2e2b25; border-radius: 44px; background: #f5ead8; color: #201e1d; box-shadow: var(--o-shadow-lg); overflow: hidden; display: flex; flex-direction: column; padding: 18px 12px 0; font-family: var(--font-body); font-size: 13.5px; line-height: 1.4; text-align: left; }
.phone.dark { background: #2e2b25; color: #f5ead8; }
.phone .cap { font-family: var(--font-heading); font-weight: 400; }
.phone .row { display: flex; align-items: center; gap: 10px; }
.phone .col { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.phone .grow { flex-grow: 1; }
.phone .ell { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.phone .ib { width: 30px; height: 30px; display: inline-flex; align-items: center; justify-content: center; color: #474238; flex-shrink: 0; }
.phone .ib-34 { width: 34px; height: 34px; }
.phone .av { border-radius: 50%; display: flex; align-items: center; justify-content: center; font-weight: 700; flex-shrink: 0; }
.phone .av-32 { width: 32px; height: 32px; font-size: 13px; }
.phone .av-38 { width: 38px; height: 38px; font-size: 15px; }
.phone .av-46 { width: 46px; height: 46px; }
.phone .sage { background: #aebf92; color: #272e1b; }
.phone .sage-2 { background: #ccdbb2; color: #272e1b; }
.phone .clay-2 { background: #ffe1d0; color: #643312; }
.phone .sand { background: #dcd3c4; color: #474238; }
.phone .online-wrap { position: relative; flex-shrink: 0; }
.phone .dot { position: absolute; right: 0; bottom: 0; width: 12px; height: 12px; border-radius: 50%; background: #56633f; border: 2px solid #f5ead8; }
.phone .dot.sm { width: 11px; height: 11px; }
.phone .dot.on-tint { border-color: #f9f4ed; }

.phone .title { font-size: 24px; line-height: 1; letter-spacing: -0.5px; }
.phone .sub-online { display: inline-flex; align-items: center; gap: 6px; font-size: 11.5px; font-weight: 600; color: #3d472b; }
.phone .sub-online i { width: 7px; height: 7px; border-radius: 50%; background: #56633f; }
.phone .search { margin-top: 12px; display: flex; align-items: center; gap: 8px; height: 42px; padding: 0 14px; border-radius: 999px; background: #ebddc5; color: #645c50; }
.phone .pills { margin-top: 10px; display: flex; gap: 6px; }
.phone .pill { display: inline-flex; align-items: center; gap: 6px; height: 34px; padding: 0 12px; border-radius: 999px; background: #ebddc5; color: #474238; font-size: 12.5px; font-weight: 700; }
.phone .pill.on { background: #8c491a; color: #fff; padding: 0 14px; }
.phone .count { min-width: 16px; height: 16px; padding: 0 4px; border-radius: 999px; background: #8c491a; color: #fff; font-size: 10px; display: inline-flex; align-items: center; justify-content: center; }
.phone .match-card { margin-top: 10px; display: flex; align-items: center; gap: 10px; padding: 9px 8px 9px 10px; border-radius: 28px; background: #fff2eb; }
.phone .match-card .icon { width: 40px; height: 40px; border-radius: 50%; background: #ffe1d0; color: #643312; display: inline-flex; align-items: center; justify-content: center; flex-shrink: 0; }
.phone .match-card .name { font-size: 14.5px; line-height: 1.1; }
.phone .match-card .desc { font-size: 11.5px; color: #645c50; }
.phone .start { display: inline-flex; align-items: center; height: 32px; padding: 0 14px; border-radius: 999px; background: #8c491a; color: #fff; font-size: 12.5px; font-weight: 700; }
.phone .list { margin-top: 8px; display: flex; flex-direction: column; gap: 2px; }
.phone .item { display: flex; align-items: center; gap: 10px; padding: 8px 10px; border-radius: 16px; }
.phone .item.unread { background: #f9f4ed; }
.phone .item .name { font-size: 14px; font-weight: 700; }
.phone .item .prev { font-size: 12.5px; color: #645c50; display: inline-flex; align-items: center; gap: 4px; }
.phone .item .prev.typing { color: #402310; font-weight: 600; }
.phone .item .right { display: flex; flex-direction: column; align-items: flex-end; gap: 5px; align-self: flex-start; padding-top: 2px; }
.phone .item .time { font-size: 10.5px; color: #645c50; font-weight: 600; white-space: nowrap; }
.phone .badge { min-width: 18px; height: 18px; padding: 0 5px; border-radius: 999px; background: #8c491a; color: #fff; font-size: 10.5px; font-weight: 700; display: inline-flex; align-items: center; justify-content: center; }
.phone .tabbar { margin-top: auto; margin-bottom: 6px; height: 66px; padding: 0 6px; border-radius: 999px; background: #ebddc5; box-shadow: 0 1px 2px rgb(46 43 37 / 0.14); display: flex; align-items: center; }
.phone .tab { flex: 1; display: flex; flex-direction: column; align-items: center; gap: 3px; font-size: 10.5px; font-weight: 600; color: #474238; }
.phone .tab .ico { position: relative; width: 26px; height: 26px; display: inline-flex; align-items: center; justify-content: center; color: #474238; }
.phone .tab .ico svg { width: 17px; height: 17px; }
.phone .tab.on { font-weight: 700; color: #201e1d; }
.phone .tab.on .ico { width: 40px; border-radius: 999px; background: #c67139; color: #fff; }
.phone .tab .n { position: absolute; top: -7px; right: -7px; min-width: 17px; height: 17px; padding: 0 4px; border-radius: 999px; background: #8c491a; color: #fff; font-size: 10px; font-weight: 700; display: inline-flex; align-items: center; justify-content: center; border: 2px solid #ebddc5; }

/* Conversation */
.phone .head-name { font-size: 14.5px; line-height: 1.1; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.phone .ib.back { width: 24px; }
.phone .head-sub { font-size: 11.5px; color: #645c50; }
.phone .head-sub.on { color: #3d472b; font-weight: 600; }
.phone .pinned { margin-top: 10px; display: flex; align-items: center; gap: 6px; padding: 7px 12px; border-radius: 12px; background: #ebddc5; font-size: 11.5px; color: #474238; white-space: nowrap; overflow: hidden; }
.phone .pinned b { color: #643312; }
.phone .msgs { flex-grow: 1; display: flex; flex-direction: column; gap: 8px; justify-content: flex-end; padding: 10px 2px 8px; }
.phone .day { align-self: center; padding: 3px 10px; border-radius: 999px; background: #ebddc5; color: #645c50; font-size: 11px; font-weight: 600; }
.phone .b { max-width: 230px; padding: 9px 12px; font-size: 13.5px; line-height: 1.4; }
.phone .b.in { align-self: flex-start; border-radius: 16px 16px 16px 6px; background: #ebddc5; }
.phone .b.out { align-self: flex-end; border-radius: 16px 16px 6px 16px; background: #8c491a; color: #fff; display: flex; flex-direction: column; gap: 4px; }
.phone .b .meta { display: inline-flex; align-items: center; justify-content: flex-end; gap: 4px; font-size: 10px; font-weight: 600; color: rgb(255 255 255 / 0.8); }
.phone .grp { align-self: flex-start; max-width: 230px; display: flex; flex-direction: column; gap: 2px; }
.phone .grp .who { font-size: 11px; font-weight: 700; padding-left: 4px; }
.phone .quote { border-left: 3px solid #8c491a; padding: 4px 8px; border-radius: 4px; background: #f5ead8; font-size: 12px; color: #645c50; display: flex; flex-direction: column; gap: 1px; margin-bottom: 6px; }
.phone .quote b { color: #56633f; }
.phone .mention { color: #8c491a; font-weight: 700; }
.phone .voice { display: flex; align-items: center; gap: 10px; width: 210px; }
.phone .play { width: 32px; height: 32px; border-radius: 50%; background: #8c491a; color: #fff; display: inline-flex; align-items: center; justify-content: center; flex-shrink: 0; }
.phone .wave { flex-grow: 1; display: flex; align-items: center; gap: 3px; height: 22px; }
.phone .wave i { width: 3px; border-radius: 2px; background: #c0b6a5; }
.phone .wave i.p { background: #8c491a; }
.phone .react { display: inline-flex; align-items: center; gap: 4px; padding: 2px 7px; border-radius: 999px; background: #f9f4ed; border: 1px solid rgb(32 30 29 / 0.16); font-size: 11px; align-self: flex-start; margin-left: 8px; margin-top: -12px; color: #201e1d; }
.phone .react.r { align-self: flex-end; margin-left: 0; margin-right: 8px; margin-top: -14px; }
.phone .photo { width: 200px; height: 130px; border-radius: 16px 16px 6px 16px; background: #ccdbb2; overflow: hidden; position: relative; align-self: flex-end; }
.phone .photo i { position: absolute; border-radius: 50%; }
.phone .photo .stamp { position: absolute; right: 8px; bottom: 6px; display: inline-flex; align-items: center; gap: 4px; padding: 2px 8px; border-radius: 999px; background: rgb(32 30 29 / 0.55); color: #fff; font-size: 10px; font-weight: 600; }
.phone .loc { align-items: center; gap: 10px; flex-direction: row; }
.phone .loc .tile { width: 40px; height: 40px; border-radius: 10px; background: #ffc6a5; display: inline-flex; align-items: center; justify-content: center; color: #643312; flex-shrink: 0; }
.phone .loc .col span:last-child { font-size: 11px; color: rgb(255 255 255 / 0.8); }
.phone .once { display: flex; align-items: center; gap: 10px; color: #474238; font-size: 13px; }
.phone .once .ring { width: 34px; height: 34px; border-radius: 50%; border: 2px dashed #8c491a; display: inline-flex; align-items: center; justify-content: center; color: #643312; font-weight: 800; font-size: 12px; flex-shrink: 0; }
.phone .once b { color: #201e1d; display: block; }
.phone .once small { font-size: 11.5px; }
.phone .dots3 { align-self: flex-start; padding: 10px 12px; border-radius: 16px 16px 16px 6px; background: #ebddc5; display: flex; align-items: center; gap: 5px; }
.phone .dots3 i { width: 6px; height: 6px; border-radius: 50%; background: #82796a; }
.phone .dots3 i:nth-child(2) { background: #a19786; }
.phone .dots3 i:nth-child(3) { background: #c0b6a5; }
.phone .composer { display: flex; align-items: center; gap: 6px; padding: 0 0 14px; }
.phone .composer .ib { width: 40px; height: 40px; }
.phone .field { flex-grow: 1; display: flex; align-items: center; min-height: 42px; padding: 0 16px; border-radius: 999px; background: #ebddc5; color: #645c50; font-size: 13.5px; }
.phone .field.typed { color: #201e1d; }
.phone .send { width: 42px; height: 42px; border-radius: 50%; background: #8c491a; color: #fff; display: inline-flex; align-items: center; justify-content: center; flex-shrink: 0; }

/* Group call */
.phone .call-head { display: flex; flex-direction: column; align-items: center; gap: 3px; padding: 4px 0 12px; }
.phone .call-head .cap { font-size: 17px; line-height: 1.1; }
.phone .call-head span { font-size: 12px; color: #d3c8bb; }
.phone .tiles { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; flex-grow: 1; align-content: start; }
.phone .tile-v { position: relative; height: 210px; border-radius: 16px; overflow: hidden; display: flex; align-items: center; justify-content: center; }
.phone .tile-v .cap { font-size: 44px; }
.phone .tile-v .nm { position: absolute; left: 8px; bottom: 8px; padding: 3px 8px; border-radius: 999px; background: rgb(26 22 19 / 0.7); color: #f5ead8; font-size: 11px; font-weight: 700; }
.phone .tile-v .mute { position: absolute; right: 8px; top: 8px; width: 24px; height: 24px; border-radius: 50%; background: rgb(26 22 19 / 0.7); display: inline-flex; align-items: center; justify-content: center; color: #f5ead8; }
.phone .tile-v.you { background: #ebddc5; border: 2px solid #aebf92; }
.phone .tile-v.you .nm { background: #201e1d; }
.phone .controls { display: flex; align-items: center; justify-content: center; gap: 14px; padding: 14px 0 18px; }
.phone .ctl { width: 48px; height: 48px; border-radius: 50%; background: #474238; color: #f5ead8; display: inline-flex; align-items: center; justify-content: center; }
.phone .ctl.lit { background: #f5ead8; color: #201e1d; }
.phone .ctl.end { background: #e8907f; color: #1a1613; }

/* In a match */
.phone.match { padding: 0; }
.phone.match .haze { position: absolute; border-radius: 50%; background: #474238; opacity: 0.55; }
.phone.match .top { position: relative; display: flex; align-items: flex-start; justify-content: space-between; gap: 8px; padding: 16px 12px 0; }
.phone .partner { width: 196px; padding: 12px; border-radius: 16px; background: rgb(26 22 19 / 0.88); display: flex; flex-direction: column; gap: 8px; }
.phone .partner .nm { font-size: 14px; line-height: 1.1; }
.phone .partner .city { font-size: 11px; color: #d3c8bb; }
.phone .partner .matched { display: inline-flex; align-items: center; gap: 5px; align-self: flex-start; padding: 4px 8px 4px 6px; border-radius: 999px; background: #f0c19b; color: #402310; font-size: 11px; font-weight: 700; }
.phone .partner .tags { display: flex; flex-wrap: wrap; gap: 5px; }
.phone .partner .tags span { padding: 3px 8px; border-radius: 999px; background: #332b24; color: #d3c8bb; font-size: 11px; font-weight: 600; }
.phone .partner .tags span.hit { background: #3a4029; color: #cdd9b5; }
.phone .partner .obs { font-size: 11px; color: #b0a294; }
.phone .partner .obs b { color: #f5ead8; font-weight: 600; }
.phone .self { display: flex; flex-direction: column; align-items: flex-end; gap: 8px; }
.phone .self .pip { width: 78px; height: 104px; border-radius: 12px; background: #ebddc5; border: 2px solid #aebf92; display: flex; align-items: flex-end; padding: 5px; }
.phone .self .pip span, .phone .tile-v.you .you-tag { padding: 1px 6px; border-radius: 999px; background: #201e1d; color: #f5ead8; font-size: 10px; font-weight: 700; }
.phone .safety { display: inline-flex; align-items: center; gap: 5px; height: 32px; padding: 0 10px; border-radius: 999px; background: #f5ead8; color: #201e1d; font-size: 11.5px; font-weight: 700; }
.phone.match .bottom { position: relative; margin-top: auto; display: flex; flex-direction: column; gap: 10px; padding: 0 12px 18px; }
.phone .mb { max-width: 200px; padding: 7px 11px; font-size: 12.5px; line-height: 1.35; }
.phone .mb.me { align-self: flex-end; border-radius: 14px 14px 4px 14px; background: #d67f48; color: #201e1d; }
.phone .mb.them { align-self: flex-start; border-radius: 14px 14px 14px 4px; background: rgb(26 22 19 / 0.88); color: #f5ead8; }
.phone .say { display: flex; align-items: center; gap: 6px; }
.phone .say .field { min-height: 40px; height: 40px; background: rgb(26 22 19 / 0.88); color: #b0a294; font-size: 12.5px; padding: 0 14px; }
.phone .say .send { width: 40px; height: 40px; background: #f5ead8; color: #201e1d; }
.phone .next { display: inline-flex; align-items: center; justify-content: center; gap: 6px; height: 48px; border-radius: 999px; background: #d67f48; color: #201e1d; font-size: 14.5px; font-weight: 700; }
.phone .dock { display: flex; align-items: center; justify-content: center; gap: 12px; padding: 10px 16px; border-radius: 999px; background: rgb(26 22 19 / 0.88); }
.phone .dock .ctl { width: 42px; height: 42px; background: #332b24; }
.phone .dock .ctl.lit { background: #f5ead8; color: #201e1d; }
.phone .dock .ctl.end { background: #e8907f; color: #1a1613; }

/* Status rings + friend request (inside cards) */
.rings { margin-top: auto; display: flex; align-items: flex-end; gap: 18px; padding: 0 8px; flex-wrap: wrap; }
.ring { display: flex; flex-direction: column; align-items: center; gap: 8px; width: 72px; }
.ring .o { width: 64px; height: 64px; border-radius: 50%; border: 3px solid var(--o-accent-700); padding: 3px; }
.ring .o.seen { border-color: var(--o-neutral-400); }
.ring .o > span { width: 100%; height: 100%; border-radius: 50%; display: flex; align-items: center; justify-content: center; font-weight: 700; }
.ring .add { position: relative; width: 64px; height: 64px; border-radius: 50%; border: 2px dashed var(--o-neutral-600); display: flex; align-items: center; justify-content: center; background: var(--o-neutral-100); color: var(--o-neutral-800); font-weight: 700; }
.ring .add i { position: absolute; right: -2px; bottom: -2px; width: 24px; height: 24px; border-radius: 50%; background: var(--o-accent-700); color: var(--o-on-accent-deep); display: inline-flex; align-items: center; justify-content: center; border: 2px solid var(--o-surface); box-sizing: content-box; }
.ring .lbl { font-size: 12.5px; font-weight: 600; color: var(--o-neutral-800); }
.ring .lbl.seen { color: var(--o-neutral-700); }
@media (max-width: 420px) { .rings { gap: 10px; } .ring { width: 60px; } .ring .o, .ring .add { width: 56px; height: 56px; } }

.req { margin-top: auto; display: flex; flex-direction: column; gap: 10px; }
.req-row { display: flex; align-items: center; gap: 14px; padding: 14px 16px; border-radius: var(--radius-md); background: var(--o-neutral-100); }
.req-row.raised { box-shadow: var(--o-shadow-md); }
.req-row .av { width: 48px; height: 48px; border-radius: 50%; display: flex; align-items: center; justify-content: center; font-weight: 700; font-size: 17px; flex-shrink: 0; background: var(--o-accent2-300); color: #272e1b; }
.req-row .col { display: flex; flex-direction: column; gap: 3px; flex-grow: 1; min-width: 0; }
.req-row .nm { font-size: 16px; font-weight: 700; }
.req-row .nm small { font-weight: 500; color: var(--o-neutral-700); font-size: 14px; }
.req-row .mut { font-size: 13px; color: var(--o-accent2-800); font-weight: 600; display: inline-flex; align-items: center; gap: 6px; }
.req-row .accept { display: inline-flex; align-items: center; justify-content: center; height: 40px; padding: 0 16px; border-radius: var(--radius-pill); border: 0; background: var(--o-accent2-700); color: #ffffff; font-size: 13.5px; font-weight: 700; flex-shrink: 0; }
.req-row .decline { width: 40px; height: 40px; border-radius: 50%; border: 1.5px solid var(--o-outline); background: transparent; color: var(--o-neutral-800); display: inline-flex; align-items: center; justify-content: center; flex-shrink: 0; }
.req-row .qr { width: 44px; height: 44px; border-radius: 12px; background: var(--o-accent-200); color: var(--o-accent-ink); display: inline-flex; align-items: center; justify-content: center; flex-shrink: 0; }
.req-row .t { font-size: 15px; font-weight: 700; }
.req-row .d { font-size: 13px; color: var(--o-neutral-700); }
@media (max-width: 480px) { .req-row .decline { display: none; } .req-row .nm small { display: none; } }

/* Web + dark cards */
.web-dark { display: grid; grid-template-columns: minmax(0, 1.35fr) minmax(0, 1fr); gap: 24px; }
@media (max-width: 960px) { .web-dark { grid-template-columns: minmax(0, 1fr); } }
.card.web, .card.darkmode { padding-bottom: 0; overflow: hidden; }
.card.darkmode { background: #26201b; color: #f5ead8; }
.card.darkmode .eyebrow { color: #f0c19b; }
.card.darkmode .body { color: #d3c8bb; }
.browser { margin-top: auto; border-radius: 16px 16px 0 0; background: var(--o-neutral-100); border: 1px solid var(--o-divider); border-bottom: 0; box-shadow: var(--o-shadow-lg); overflow: hidden; display: flex; flex-direction: column; }
.browser .bar { height: 40px; padding: 0 14px; display: flex; align-items: center; gap: 12px; background: var(--o-surface); border-bottom: 1px solid var(--o-divider); }
.browser .dots { display: flex; gap: 6px; }
.browser .dots i { width: 10px; height: 10px; border-radius: 50%; background: var(--o-neutral-400); }
.browser .url { flex-grow: 1; display: flex; justify-content: center; }
.browser .url span { display: inline-flex; align-items: center; gap: 6px; min-width: min(240px, 60%); justify-content: center; padding: 4px 12px; border-radius: 999px; background: var(--o-neutral-100); font-size: 12px; color: var(--o-neutral-700); font-weight: 600; }
.browser img { width: 140%; max-width: none; height: 250px; object-fit: cover; object-position: top left; }
@media (max-width: 640px) { .browser img { height: 200px; } }

.dark-phone { margin: auto auto 0; width: 280px; border: 8px solid #0f0d0b; border-bottom: 0; border-radius: 40px 40px 0 0; background: #1a1613; color: #f5ead8; display: flex; flex-direction: column; padding: 18px 12px 0; height: 300px; overflow: hidden; font-size: 13px; }
.dark-phone .row { display: flex; align-items: center; gap: 10px; }
.dark-phone .cap { font-family: var(--font-heading); }
.dark-phone .title { font-size: 22px; line-height: 1; letter-spacing: -0.5px; }
.dark-phone .sub { display: inline-flex; align-items: center; gap: 6px; font-size: 11px; font-weight: 600; color: #b6c79a; }
.dark-phone .sub i { width: 7px; height: 7px; border-radius: 50%; background: #9aab7a; }
.dark-phone .search { margin-top: 10px; display: flex; align-items: center; gap: 8px; height: 38px; padding: 0 14px; border-radius: 999px; background: #26201b; color: #b0a294; font-size: 12.5px; }
.dark-phone .pills { margin-top: 8px; display: flex; gap: 6px; }
.dark-phone .pill { display: inline-flex; align-items: center; height: 30px; padding: 0 12px; border-radius: 999px; background: #26201b; color: #d3c8bb; font-size: 11.5px; font-weight: 700; }
.dark-phone .pill.on { background: #cf7b3f; color: #201e1d; }
.dark-phone .match-card { margin-top: 8px; display: flex; align-items: center; gap: 10px; padding: 8px 8px 8px 10px; border-radius: 28px; background: #2e2018; }
.dark-phone .match-card .icon { width: 36px; height: 36px; border-radius: 50%; background: #3d2a1d; color: #f0c19b; display: inline-flex; align-items: center; justify-content: center; flex-shrink: 0; }
.dark-phone .match-card .col { display: flex; flex-direction: column; gap: 2px; flex-grow: 1; min-width: 0; }
.dark-phone .match-card .name { font-size: 13.5px; line-height: 1.1; }
.dark-phone .match-card .desc { font-size: 11px; color: #b0a294; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.dark-phone .item { margin-top: 8px; display: flex; align-items: center; gap: 10px; padding: 8px 10px; border-radius: 16px; background: #221d19; }
.dark-phone .av { width: 42px; height: 42px; border-radius: 50%; background: #aebf92; color: #272e1b; display: flex; align-items: center; justify-content: center; font-weight: 700; flex-shrink: 0; }
.dark-phone .av.sm { width: 30px; height: 30px; font-size: 12px; }
.dark-phone .item .col { display: flex; flex-direction: column; gap: 3px; flex-grow: 1; min-width: 0; }
.dark-phone .item .name { font-size: 13.5px; font-weight: 700; }
.dark-phone .item .prev { font-size: 12px; color: #b0a294; }
.dark-phone .item .right { display: flex; flex-direction: column; align-items: flex-end; gap: 5px; }
.dark-phone .item .time { font-size: 10px; color: #b0a294; font-weight: 600; }
.dark-phone .badge { min-width: 18px; height: 18px; padding: 0 5px; border-radius: 999px; background: #cf7b3f; color: #201e1d; font-size: 10.5px; font-weight: 700; display: inline-flex; align-items: center; justify-content: center; }
.dark-phone .ib { width: 30px; height: 30px; display: inline-flex; align-items: center; justify-content: center; color: #d3c8bb; }
@media (max-width: 360px) { .dark-phone { width: 100%; } }

/* ── Privacy band ───────────────────────────────────────────────────────── */
.band { background: var(--o-surface); }
.privacy-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 24px; margin-top: 44px; }
.privacy-grid > div { display: flex; flex-direction: column; gap: 14px; }
.privacy-grid h3 { font-size: 22px; line-height: 1.2; }
.privacy-grid p { font-size: 15px; line-height: 1.5; color: var(--o-neutral-800); }
.privacy-grid .icon-chip { background: var(--o-neutral-100); }
@media (max-width: 960px) { .privacy-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 560px) { .privacy-grid { grid-template-columns: minmax(0, 1fr); margin-top: 28px; } }

/* ── FAQ ────────────────────────────────────────────────────────────────── */
.faq-wrap { display: grid; grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.4fr); gap: clamp(24px, 4vw, 64px); align-items: start; }
@media (max-width: 900px) { .faq-wrap { grid-template-columns: minmax(0, 1fr); } }
.faq { display: flex; flex-direction: column; gap: 10px; }
.faq details { background: var(--o-surface); border-radius: var(--radius-md); overflow: hidden; }
.faq summary { list-style: none; cursor: pointer; display: flex; align-items: center; justify-content: space-between; gap: 16px; min-height: 60px; padding: 16px 20px; font-size: 17px; font-weight: 700; color: var(--o-text); }
.faq summary::-webkit-details-marker { display: none; }
.faq summary svg { color: var(--o-accent-ink); transition: transform var(--o-motion-base) var(--o-ease); }
.faq details[open] summary svg { transform: rotate(180deg); }
.faq summary:hover { background: color-mix(in srgb, var(--o-surface) 70%, var(--o-neutral-100)); }
.faq details p { padding: 0 20px 18px; font-size: 15.5px; line-height: 1.55; color: var(--o-neutral-800); max-width: 68ch; }
.faq details a { color: var(--o-accent-ink); }

/* ── 404 ────────────────────────────────────────────────────────────────── */
.err { min-height: calc(100vh - 76px); display: flex; align-items: center; }
.err .copy { display: flex; flex-direction: column; gap: 20px; max-width: 560px; padding-block: 64px; }
.err .code { font-family: var(--font-heading); font-size: 96px; line-height: 1; color: var(--o-accent-700); letter-spacing: -1px; }

/* ── CTA band ───────────────────────────────────────────────────────────── */
.cta-band { position: relative; padding: clamp(32px, 4.5vw, 64px); border-radius: var(--radius-lg); background: var(--cta-bg); color: #f5ead8; overflow: hidden; box-shadow: var(--o-shadow-lg); display: flex; align-items: center; justify-content: space-between; gap: 40px; min-height: 320px; }
.cta-band .copy { position: relative; display: flex; flex-direction: column; gap: 22px; max-width: 640px; }
.cta-band h2 { color: var(--cta-ink); font-size: clamp(34px, 3.4vw, 48px); line-height: 1.08; letter-spacing: -0.3px; }
.cta-band p { font-size: clamp(16px, 1.25vw, 18px); line-height: 1.5; color: var(--cta-sub); text-wrap: pretty; }
.cta-band .mark-deco { position: absolute; right: -60px; top: -100px; width: 520px; height: 520px; opacity: 0.95; }
@media (max-width: 960px) { .cta-band .mark-deco { width: 380px; height: 380px; right: -120px; top: -140px; opacity: 0.6; } }
@media (max-width: 640px) { .cta-band { min-height: 0; } .cta-band .mark-deco { width: 300px; height: 300px; right: -110px; top: -120px; opacity: 0.55; } }

/* ── Footer ─────────────────────────────────────────────────────────────── */
.footer { border-top: 1px solid var(--o-divider); padding: 56px 0 40px; display: flex; flex-direction: column; gap: 40px; }
.footer-top { display: flex; justify-content: space-between; gap: 40px; }
.footer-brand { display: flex; flex-direction: column; gap: 14px; max-width: 320px; }
.footer-brand .brand img { width: 36px; height: 36px; }
.footer-brand .brand-name { font-size: 20px; }
.footer-brand .tag { font-size: 10px; font-weight: 700; letter-spacing: 1.4px; color: var(--o-accent-ink); }
.footer-brand p { font-size: 14px; line-height: 1.5; color: var(--o-neutral-700); }
.footer-cols { display: grid; grid-template-columns: repeat(3, 180px); gap: 24px; }
.footer-cols > div { display: flex; flex-direction: column; gap: 12px; }
.footer-cols a { font-size: 15px; color: var(--o-neutral-800); text-decoration: none; }
.footer-cols a:hover { color: var(--o-text); text-decoration: underline; }
.footer-bottom { display: flex; align-items: center; justify-content: space-between; gap: 24px; font-size: 13px; color: var(--o-neutral-700); }
@media (max-width: 900px) { .footer-top { flex-direction: column; } .footer-cols { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 560px) { .footer-cols { grid-template-columns: repeat(2, minmax(0, 1fr)); } .footer-bottom { flex-direction: column; align-items: flex-start; gap: 6px; } }

/* ── Document pages (About, Guidelines, Privacy, Terms) ─────────────────── */
.doc-hero { padding: clamp(40px, 5vw, 72px) 0 clamp(28px, 3vw, 40px); border-bottom: 1px solid var(--o-divider); }
.doc-hero .crumbs { display: flex; align-items: center; gap: 8px; font-size: 13.5px; font-weight: 600; color: var(--o-neutral-700); margin-bottom: 18px; }
.doc-hero .crumbs a { color: var(--o-neutral-700); text-decoration: none; }
.doc-hero .crumbs a:hover { color: var(--o-text); text-decoration: underline; }
.doc-hero .crumbs svg { width: 14px; height: 14px; }
.doc-hero h1 { font-size: clamp(36px, 4vw, 56px); line-height: 1.04; letter-spacing: -0.5px; max-width: 18ch; }
.doc-hero .lead { margin-top: 18px; max-width: 62ch; }
.doc-meta { margin-top: 18px; display: flex; flex-wrap: wrap; gap: 8px 18px; font-size: 13.5px; font-weight: 600; color: var(--o-neutral-700); }
.doc-meta span { display: inline-flex; align-items: center; gap: 6px; }

.doc { display: grid; grid-template-columns: 240px minmax(0, 1fr); gap: clamp(32px, 5vw, 80px); padding: clamp(32px, 4vw, 56px) 0 clamp(56px, 6vw, 88px); align-items: start; }
@media (max-width: 900px) { .doc { grid-template-columns: minmax(0, 1fr); } }
.toc { position: sticky; top: 96px; display: flex; flex-direction: column; gap: 4px; }
.toc .eyebrow { margin-bottom: 8px; }
.toc a { display: block; padding: 7px 12px; border-radius: var(--radius-sm); font-size: 14px; font-weight: 600; color: var(--o-neutral-800); text-decoration: none; }
.toc a:hover { background: var(--o-surface); color: var(--o-text); }
@media (max-width: 900px) { .toc { position: static; padding: 16px 18px; border-radius: var(--radius-md); background: var(--o-surface); } .toc a:hover { background: var(--o-neutral-100); } }

.prose { max-width: 72ch; font-size: 16.5px; line-height: 1.6; color: var(--o-neutral-800); }
.prose > * + * { margin-top: 1em; }
.prose h2 { font-size: clamp(24px, 2.4vw, 30px); line-height: 1.15; letter-spacing: -0.2px; color: var(--o-text); margin-top: 2.2em; scroll-margin-top: 96px; }
.prose h2:first-child { margin-top: 0; }
.prose h3 { font-size: 19px; line-height: 1.25; color: var(--o-text); margin-top: 1.6em; font-family: var(--font-body); font-weight: 700; }
.prose p { text-wrap: pretty; }
.prose ul, .prose ol { padding-left: 1.3em; display: flex; flex-direction: column; gap: 0.45em; }
.prose ul { list-style: disc; }
.prose ol { list-style: decimal; }
.prose li::marker { color: var(--o-accent-700); }
.prose strong { color: var(--o-text); font-weight: 700; }
.prose a { color: var(--o-accent-ink); font-weight: 600; }
.prose a:hover { color: var(--o-text); }
.prose .callout { padding: 18px 20px; border-radius: var(--radius-md); background: var(--o-surface); color: var(--o-neutral-800); font-size: 15.5px; display: flex; gap: 12px; align-items: flex-start; }
.prose .callout svg { color: var(--o-accent-ink); flex-shrink: 0; margin-top: 2px; }
.prose .callout.warm { background: var(--o-accent-100); }
.prose table { width: 100%; border-collapse: collapse; font-size: 15px; }
.prose th, .prose td { text-align: left; padding: 10px 12px; border-bottom: 1px solid var(--o-divider); vertical-align: top; }
.prose th { font-size: 12.5px; font-weight: 700; letter-spacing: 1px; text-transform: uppercase; color: var(--o-accent-ink); }
@media (max-width: 640px) {
  .prose table, .prose tbody, .prose tr, .prose td { display: block; width: 100%; }
  .prose thead { display: none; }
  .prose tr { padding: 12px 0 14px; border-bottom: 1px solid var(--o-divider); }
  .prose td { padding: 2px 0; border: 0; }
  .prose td:first-child { padding-bottom: 6px; }
  .prose td:first-child strong { font-size: 16px; }
}
.prose ul.rule-list, .prose ul.stats, .prose ul.stack { display: grid; padding: 0; list-style: none; }
.prose .rule-list { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.prose .rule-list li { padding: 16px 18px; border-radius: var(--radius-md); background: var(--o-surface); display: flex; flex-direction: column; gap: 6px; }
.prose .rule-list b { color: var(--o-text); font-size: 16px; }
.prose .rule-list span { font-size: 14.5px; line-height: 1.5; }
@media (max-width: 560px) { .prose .rule-list { grid-template-columns: minmax(0, 1fr); } }

/* About: stat tiles + stack list */
.stats { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; margin: 8px 0 0; padding: 0; list-style: none; }
.stats li { padding: 20px 22px; border-radius: var(--radius-md); background: var(--o-surface); display: flex; flex-direction: column; gap: 6px; }
.stats b { font-family: var(--font-heading); font-weight: 400; font-size: 30px; line-height: 1; color: var(--o-accent-700); }
.stats span { font-size: 14px; color: var(--o-neutral-800); font-weight: 600; }
@media (max-width: 900px) { .stats { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.stack { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; padding: 0; list-style: none; }
.stack li { padding: 16px 18px; border-radius: var(--radius-md); background: var(--o-surface); display: flex; gap: 12px; align-items: flex-start; }
.stack li .icon-chip { width: 40px; height: 40px; }
.stack li > div > b { display: block; color: var(--o-text); font-size: 16px; }
.stack li > div > span { display: block; font-size: 14.5px; line-height: 1.5; }
@media (max-width: 560px) { .stack { grid-template-columns: minmax(0, 1fr); } }
.doc-cta { margin-top: 2.5em; padding: 28px; border-radius: var(--radius-lg); background: var(--cta-bg); color: #f5ead8; display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 18px; }
.doc-cta h3 { font-family: var(--font-heading); font-weight: 400; font-size: 26px; color: #ffffff; margin: 0; }
.doc-cta p { color: var(--cta-sub); font-size: 15px; margin: 4px 0 0; }
.prose .doc-cta a.btn-inverse, .prose .doc-cta a.btn-inverse:hover { color: #643312; }
.prose .doc-cta a.btn-ghost-light, .prose .doc-cta a.btn-ghost-light:hover { color: #ffffff; }

/* ── Book-style text ────────────────────────────────────────────────────── */
/* Running text is fully justified with the last line ragged, as in a book.
   Automatic hyphenation (the page is lang="en") is what keeps justified
   lines from opening into rivers on narrow columns; `text-wrap: pretty`
   avoids orphans. Short labels, lists of features and the footer stay
   left-aligned — justification only reads well on real paragraphs. */
.prose p, .prose li, .prose td, .prose .callout span,
.doc-hero .lead, .hero .lead, .section-head-row .lead, .split .copy .lead,
.card .body, .faq details p, .cta-band p, .err .lead {
  text-align: justify;
  text-align-last: left;
  hyphens: auto;
  -webkit-hyphens: auto;
  hyphenate-limit-chars: 7 3 3;
  text-wrap: pretty;
}
.prose .rule-list span, .prose .stack li > div > span, .stats span { text-align: left; hyphens: manual; }
@media (max-width: 480px) {
  /* On the narrowest screens even hyphenated justification gaps; fall back
     to ragged-right for the multi-column card bodies. */
  .card .body { text-align: left; }
}

/* ── Motion ─────────────────────────────────────────────────────────────── */
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { transition-duration: 0.001ms !important; animation-duration: 0.001ms !important; }
}
