/* Warm paper / clay-coral palette, mirrored from the app's theme engine.
       Self-contained on purpose: this is a static marketing page with no
       build step and no dependencies.

       The app is light-only, so this page is locked to light too: color-scheme
       pins UA surfaces (scrollbars, form controls) to light, and we no longer
       auto-switch on prefers-color-scheme. The dark palette is kept below for
       reference / future opt-in (apply data-theme="dark" on <html>), but it
       never activates from the system preference. */
    :root {
      color-scheme: light;
      --bg: #F7F5EE;        /* warm paper */
      --fg: #1A1915;        /* ink */
      --muted: #57544D;     /* warm gray */
      --faint: #7C7870;
      --card: #FFFFFD;
      --border: #E4E0D6;
      --accent: #C15F3C;    /* clay / coral */
      --accent-hover: #A94E2E;
      --ring: #C15F3C;
    }
    /* Dark palette retained but no longer auto-applied — opt-in only. */
    :root[data-theme="dark"] {
      color-scheme: dark;
      --bg: #2D2B25;
      --fg: #EEECE5;
      --muted: #B4B0A6;
      --faint: #98948A;
      --card: #3A3730;
      --border: #4A453C;
      --accent: #D4795A;
      --accent-hover: #E0876B;
      --ring: #D4795A;
    }

    * { box-sizing: border-box; }
    html, body { margin: 0; padding: 0; }
    body {
      background: var(--bg);
      color: var(--fg);
      font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", system-ui, sans-serif;
      -webkit-font-smoothing: antialiased;
      line-height: 1.55;
      min-height: 100vh;
      display: flex;
      flex-direction: column;
    }

    .wrap {
      flex: 1;
      width: 100%;
      max-width: 600px;
      margin: 0 auto;
      padding: 5vh 24px 48px;
      display: flex;
      flex-direction: column;
    }

    .topbar {
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 12px;
      margin-bottom: clamp(28px, 7vh, 80px);
    }
    .brand {
      display: flex;
      align-items: center;
      gap: 10px;
    }
    /* compact header login — sized to match the 30px logo mark.
       (.cta.cta-sm so it beats .cta regardless of source order) */
    .cta.cta-sm { padding: 6px 13px; font-size: 13px; gap: 6px; }
    .cta.cta-sm svg { width: 13px; height: 13px; }
    /* Header actions: a quiet "Log in" beside the primary "Get started". */
    .actions { display: flex; align-items: center; gap: 14px; }
    .login-link {
      color: var(--muted);
      text-decoration: none;
      font-size: 13px;
      font-weight: 600;
      white-space: nowrap;
    }
    .login-link:hover { color: var(--fg); }
    .mark {
      width: 30px; height: 30px;
      border-radius: 8px;
      background: var(--accent);
      display: inline-flex;
      align-items: center;
      justify-content: center;
      flex: none;
    }
    .mark svg { display: block; }
    .wordmark {
      font-size: 18px;
      font-weight: 650;
      letter-spacing: -0.01em;
    }

    h1 {
      font-size: clamp(2rem, 7vw, 3rem);
      line-height: 1.08;
      letter-spacing: -0.025em;
      font-weight: 680;
      margin: 0 0 18px;
    }
    .lede {
      font-size: clamp(1.05rem, 3.5vw, 1.2rem);
      color: var(--muted);
      margin: 0 0 36px;
      max-width: 46ch;
    }

    .cta {
      display: inline-flex;
      align-items: center;
      gap: 8px;
      background: var(--accent);
      color: #fff;
      text-decoration: none;
      font-weight: 600;
      font-size: 15px;
      padding: 12px 22px;
      border-radius: 10px;
      width: fit-content;
      transition: background 140ms ease;
    }
    .cta:hover { background: var(--accent-hover); }
    .cta:focus-visible { outline: 2px solid var(--ring); outline-offset: 3px; }
    .cta svg { transition: transform 140ms ease; }
    .cta:hover svg { transform: translateX(2px); }

    /* Hero call-to-action: primary button + a quiet line for returning users. */
    .hero-cta { margin: 0; }
    /* Row holding the primary "Get started" CTA beside the App Store button;
       wraps to stacked on narrow screens. */
    .cta-row { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; }

    /* App Store button — Apple's black badge look, rebuilt inline (no external
       image) so the page stays self-contained. Sized to sit level with .cta. */
    .appstore-btn {
      display: inline-flex;
      align-items: center;
      gap: 9px;
      background: #000;
      color: #fff;
      text-decoration: none;
      padding: 8px 15px;
      border-radius: 10px;
      width: fit-content;
      transition: opacity 140ms ease;
    }
    .appstore-btn:hover { opacity: 0.85; }
    .appstore-btn:focus-visible { outline: 2px solid var(--ring); outline-offset: 3px; }
    .appstore-logo { width: 22px; height: 22px; flex: none; }
    .appstore-txt { display: flex; flex-direction: column; line-height: 1.12; }
    .appstore-txt small { font-size: 10px; font-weight: 500; letter-spacing: 0.01em; }
    .appstore-txt strong { font-size: 17px; font-weight: 600; letter-spacing: -0.01em; }
    .hero-cta-note {
      margin: 14px 0 0;
      font-size: 13px;
      color: var(--faint);
    }
    .hero-cta-note a { color: var(--accent); text-decoration: none; }
    .hero-cta-note a:hover { text-decoration: underline; }

    /* Hero clip — a real phone capture, framed like a device. */
    .hero {
      margin: 36px 0 4px;
      display: flex;
      flex-direction: column;
      align-items: center;
    }
    /* iPhone-style device frame: dark titanium bezel, rounded screen. */
    .hero .device {
      position: relative;
      width: 100%;
      max-width: 250px;
      padding: 9px;
      background: linear-gradient(150deg, #34343a, #161618);
      border-radius: 46px;
      box-shadow: 0 20px 46px rgba(0, 0, 0, 0.26),
                  inset 0 0 0 1.5px rgba(255, 255, 255, 0.06);
    }
    /* side buttons */
    .hero .device::before {
      content: ""; position: absolute; right: -2px; top: 30%;
      width: 3px; height: 58px; border-radius: 2px; background: #0d0d0f;
    }
    .hero .device::after {
      content: ""; position: absolute; left: -2px; top: 26%;
      width: 3px; height: 30px; border-radius: 2px; background: #0d0d0f;
      box-shadow: 0 42px 0 #0d0d0f;
    }
    .hero .device video, .hero .device img {
      display: block;
      width: 100%;
      height: auto;
      border-radius: 38px;
      background: #000;
    }
    .hero figcaption {
      margin-top: 14px;
      font-size: 13px;
      line-height: 1.45;
      color: var(--muted);
      text-align: center;
      max-width: 34ch;
    }
    .hero-copy { min-width: 0; }

    /* The hero spans the full width; the reading sections stay calm + centered. */
    .features, .shots, .faq { width: 100%; max-width: 600px; align-self: center; }

    /* Desktop: text + phone side by side. */
    @media (min-width: 680px) {
      .hero-section {
        display: grid;
        grid-template-columns: 1fr minmax(176px, 200px);
        gap: 32px;
        align-items: center;
        margin-bottom: 8px;
      }
      .hero { margin: 0; }
      .hero figcaption { text-align: left; max-width: 26ch; }
    }

    .features {
      margin-top: 56px;
      padding-top: 32px;
      border-top: 1px solid var(--border);
      display: grid;
      gap: 22px;
    }
    .feature h3 {
      margin: 0 0 4px;
      font-size: 15px;
      font-weight: 640;
    }
    .feature p {
      margin: 0;
      color: var(--muted);
      font-size: 14.5px;
    }
    .features-lead {
      margin: 0 0 6px;
      font-size: 15px;
      font-weight: 560;
      color: var(--fg);
    }

    /* Screenshot gallery — real surfaces, mobile shots in light theme. */
    .shots {
      margin-top: 56px;
      padding-top: 32px;
      border-top: 1px solid var(--border);
    }
    .shots h2 {
      margin: 0 0 20px;
      font-size: 15px;
      font-weight: 640;
    }
    .shot-row {
      display: grid;
      grid-template-columns: repeat(2, minmax(0, 1fr));
      gap: 26px 16px;
      max-width: 384px;
      margin: 0 auto;
    }
    .shot { margin: 0; display: flex; flex-direction: column; align-items: center; }
    /* odd number of tiles → center the lone last one across both columns */
    .shot:last-child:nth-child(odd) { grid-column: 1 / -1; justify-self: center; }
    .shot img, .shot video {
      width: 100%;
      max-width: 176px;
      height: auto;
      display: block;
      border-radius: 16px;
      border: 1px solid var(--border);
      box-shadow: 0 10px 30px rgba(0, 0, 0, 0.12);
      background: var(--card);
    }
    .shot figcaption {
      margin-top: 10px;
      font-size: 12.5px;
      line-height: 1.4;
      color: var(--muted);
      text-align: center;
    }

    /* FAQ — native <details> accordion, no JS. */
    .faq {
      margin-top: 56px;
      padding-top: 32px;
      border-top: 1px solid var(--border);
    }
    .faq h2 {
      margin: 0 0 8px;
      font-size: 15px;
      font-weight: 640;
    }
    .faq details {
      border-bottom: 1px solid var(--border);
      padding: 14px 0;
    }
    .faq summary {
      cursor: pointer;
      font-size: 14.5px;
      font-weight: 560;
      list-style: none;
      display: flex;
      justify-content: space-between;
      align-items: center;
      gap: 12px;
    }
    .faq summary::-webkit-details-marker { display: none; }
    .faq summary::after {
      content: "+";
      color: var(--faint);
      font-size: 18px;
      line-height: 1;
      flex: none;
    }
    .faq details[open] summary::after { content: "\2013"; }
    .faq details p {
      margin: 10px 0 2px;
      color: var(--muted);
      font-size: 14px;
      line-height: 1.55;
    }
    .faq details ol {
      margin: 8px 0 2px;
      padding-left: 20px;
      color: var(--muted);
      font-size: 14px;
      line-height: 1.55;
    }
    .faq details ol li { margin: 4px 0; }
    .faq details a { color: var(--accent); text-decoration: none; }
    .faq details a:hover { text-decoration: underline; }

    footer {
      width: 100%;
      max-width: 600px;
      margin: 0 auto;
      padding: 28px 24px 40px;
      color: var(--faint);
      font-size: 13px;
      display: flex;
      justify-content: space-between;
      gap: 12px;
      flex-wrap: wrap;
    }
    footer a { color: var(--faint); text-decoration: none; }
    footer a:hover { color: var(--fg); }

    /* ---------------------------------------------------------------
       Legal pages (/pp, /tos) — long-form prose on the same warm-paper
       palette. They reuse the topbar and footer; these rules just give
       the document a calm, readable type scale. */
    .legal { width: 100%; }
    .legal h1 {
      font-size: clamp(1.7rem, 5vw, 2.2rem);
      line-height: 1.15;
      letter-spacing: -0.02em;
      font-weight: 680;
      margin: 0 0 6px;
    }
    .legal .updated {
      margin: 0 0 28px;
      color: var(--faint);
      font-size: 13.5px;
    }
    .legal h2 {
      margin: 34px 0 10px;
      font-size: 1.1rem;
      font-weight: 650;
      letter-spacing: -0.01em;
    }
    .legal p {
      margin: 0 0 14px;
      color: var(--muted);
      font-size: 15px;
    }
    .legal ul {
      margin: 0 0 14px;
      padding-left: 20px;
      color: var(--muted);
      font-size: 15px;
    }
    .legal li { margin: 6px 0; }
    .legal strong { color: var(--fg); font-weight: 600; }
    .legal a { color: var(--accent); text-decoration: none; }
    .legal a:hover { text-decoration: underline; }
