/* ==========================================================================
   Wildwatch marketing — shared design system
   Editorial · warm · data-legible · trustworthy. One stylesheet, all pages.
   Approved Claude Design direction: Source Serif 4 / Inter / JetBrains Mono,
   bone + beige + deep-forest + tan-gold. Class vocabulary is stable across
   pages so markup restyles from tokens alone.
   ========================================================================== */

:root {
  /* ── Brand palette ── */
  --forest:        #0D1C14;   /* night woods / brand ground */
  --forest-2:      #15261B;   /* raised surface on dark */
  --forest-deep:   #08110C;   /* footer / deepest night */
  --forest-line:   #243E30;   /* border on dark */
  --forest-line-2: #1A3226;   /* faint divider on dark */
  --forest-edge:   #3A5646;   /* outline on dark */

  --bone:          #EDE9E0;   /* field paper, not dashboard white */
  --canvas:        #DDD8CC;   /* deepest light canvas */
  --beige:         #D8D3C6;   /* olive-dust section */
  --sand:          #C9C3B4;   /* inset media placeholder */
  --line:          #D4CFC2;   /* hairline on field paper */
  --line-2:        #C9C3B5;   /* border on field paper */
  --line-strong:   #B5AFA0;   /* stronger field border */

  --gold:          #C49A6C;   /* accent — CTA fill on dark, accent rules, badges, focus */
  --gold-hover:    #D8B183;   /* accent hover (fills on dark) — v2 */
  --gold-ink:      #B08A55;   /* v2 gold-on-light; decorative mono labels/accents only */
  --gold-ink-aa:   #7A5D33;   /* AA-safe gold tone for small functional text on light */

  --ir:            #6FBF4A;   /* night-vision / trail-cam green */
  --ir-hot:        #9AE86A;
  --ir-dim:        #3D7A38;

  /* ── Ink ── */
  --ink:        #0D1C14;      /* headings on light */
  --body:       #4F544A;      /* body copy on light (~7:1 on bone) */
  --muted:      #5C6157;      /* secondary text / eyebrows on light (AA) */
  --faint:      #8A8F82;      /* decorative labels (non-essential) */

  --on-dark:        #F7F5F0;  /* text on forest */
  --on-dark-muted:  #C9D0C3;  /* secondary text on forest */
  --on-dark-faint:  #8FA394;  /* mono labels on forest */

  --focus:      #0D1C14;      /* focus ring on light */

  /* ── Type ── */
  --font-display: 'Source Serif 4', Georgia, 'Times New Roman', serif;
  --font-body:    'Inter', system-ui, -apple-system, 'Segoe UI', sans-serif;
  --font-mono:    'JetBrains Mono', ui-monospace, 'SFMono-Regular', Menlo, monospace;

  /* ── Form ── */
  --radius:    6px;
  --radius-sm: 4px;
  --radius-xs: 3px;
  --maxw:      1160px;
  --shadow-sm: 0 1px 2px rgba(16,34,23,0.06);
  --shadow:    0 14px 40px rgba(16,34,23,0.16);
}

*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; overflow-x: clip; }
body { overflow-x: clip; }
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after {
    animation-duration: 0.001ms !important; animation-iteration-count: 1 !important;
    transition-duration: 0.001ms !important; scroll-behavior: auto !important;
  }
}
body {
  font-family: var(--font-body);
  color: var(--ink);
  background: var(--bone);
  line-height: 1.65;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}
img, svg { max-width: 100%; display: block; }
a { color: inherit; }

/* Accessibility: skip link + focus */
.skip-link {
  position: absolute; left: 12px; top: -60px; z-index: 200;
  background: var(--bone); color: var(--forest);
  padding: 0.6rem 1rem; border-radius: var(--radius-sm); font-weight: 600;
  transition: top 0.15s ease;
}
.skip-link:focus { top: 12px; }
:focus-visible {
  outline: 3px solid var(--focus);
  outline-offset: 2px;
  border-radius: 3px;
}
.bg-forest :focus-visible, .bg-teal :focus-visible,
.nav :focus-visible, .footer :focus-visible, .hero :focus-visible {
  outline-color: var(--gold);
}

/* ── Layout ── */
.container { width: 100%; max-width: var(--maxw); margin: 0 auto; padding: 0 1.75rem; }
.section { padding: 5.25rem 0; }  /* tighter, less SaaS whitespace */
.section--tight { padding: 4rem 0; }
.bg-forest { background: var(--forest); color: var(--on-dark); }
.bg-teal   { background: var(--forest-deep); color: var(--on-dark); }
.bg-sage   { background: var(--beige); }
.bg-surface{ background: var(--bone); }
.text-center { text-align: center; }
.measure      { max-width: 640px; }
.measure-wide { max-width: 780px; }
.mx-auto { margin-left: auto; margin-right: auto; }

/* ── Type ── */
h1, h2, h3, h4 {
  font-family: var(--font-display); font-weight: 700; line-height: 1.1;
  letter-spacing: -0.01em; color: var(--ink); overflow-wrap: break-word; text-wrap: balance;
}
.bg-forest h1, .bg-forest h2, .bg-forest h3, .bg-forest h4,
.bg-teal h1, .bg-teal h2, .bg-teal h3, .bg-teal h4 { color: var(--on-dark); }
h1 { font-size: clamp(2.3rem, 5.6vw, 4.35rem); line-height: 1.03; }
h2 { font-size: clamp(1.85rem, 3.4vw, 2.55rem); line-height: 1.12; margin-bottom: 0.75rem; }
h3 { font-size: 1.22rem; line-height: 1.25; }
h4 { font-size: 1rem; }
p { font-size: 1rem; }
.lead { font-size: clamp(1.08rem, 1.6vw, 1.22rem); line-height: 1.66; text-wrap: pretty; }
.eyebrow {
  font-family: var(--font-mono); font-size: 0.72rem; font-weight: 400;
  text-transform: uppercase; letter-spacing: 0.16em; color: var(--muted);
  margin-bottom: 0.95rem;
}
.bg-forest .eyebrow, .bg-teal .eyebrow { color: var(--gold); }
.muted { color: var(--muted); }
.bg-forest .muted, .bg-teal .muted { color: var(--on-dark-muted); }

/* ── Buttons / CTA hierarchy ──
   Primary is forest on light grounds, and gold on dark grounds (hero/forest). */
.btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 0.5rem;
  font-family: var(--font-body); font-size: 0.98rem; font-weight: 600;
  padding: 0.82rem 1.6rem; border-radius: var(--radius-sm); border: 1.5px solid transparent;
  text-decoration: none; cursor: pointer; white-space: nowrap;
  transition: background 0.18s, border-color 0.18s, color 0.18s, transform 0.1s;
  min-height: 48px;
}
.btn:hover { transform: translateY(-1px); }
.btn-primary { background: var(--forest); color: var(--bone); }
.btn-primary:hover { background: var(--forest-2); color: var(--bone); }
.bg-forest .btn-primary, .bg-teal .btn-primary, .hero .btn-primary, .home-hero .btn-primary {
  background: var(--gold); color: var(--forest);
}
.bg-forest .btn-primary:hover, .bg-teal .btn-primary:hover, .hero .btn-primary:hover, .home-hero .btn-primary:hover {
  background: var(--gold-hover); color: var(--forest);
}
.btn-secondary { background: transparent; color: var(--ink); border-color: var(--line-strong); }
.btn-secondary:hover { border-color: var(--forest); color: var(--forest); }
.bg-forest .btn-secondary, .bg-teal .btn-secondary, .hero .btn-secondary, .home-hero .btn-secondary {
  color: var(--on-dark); border-color: rgba(247,245,240,0.45);
}
.bg-forest .btn-secondary:hover, .bg-teal .btn-secondary:hover, .hero .btn-secondary:hover, .home-hero .btn-secondary:hover {
  border-color: var(--on-dark);
}
.btn-ghost { background: transparent; color: var(--gold-ink-aa); padding: 0.5rem 0.25rem; min-height: 44px; font-weight: 600; }
.bg-forest .btn-ghost, .bg-teal .btn-ghost, .hero .btn-ghost { color: var(--gold); }
.btn-lg { padding: 0.95rem 2rem; font-size: 1.02rem; }
.btn-block { width: 100%; }

/* ── Brand wordmark ── (v2: ONE color, ONE word; reads as a single unit.
   The two-tone WILD/WATCH lockup is reserved for the logo sheet + app icon,
   never navigation. Gold lives in the deer/data mark, not the wordmark.) */
.brand-mark { height: 32px; width: auto; }
.wordmark {
  font-family: var(--font-display); font-weight: 700; font-size: 1.25rem;
  letter-spacing: 0.07em; text-transform: uppercase; color: var(--on-dark); line-height: 1;
}

/* ── Nav ── (solid forest; scroll hook ready for a transparent hero overlay) */
.nav { position: sticky; top: 0; z-index: 100; background: var(--forest); border-bottom: 1px solid var(--forest-line-2); transition: background 0.2s ease, box-shadow 0.2s ease; }
.nav.is-scrolled { box-shadow: 0 6px 24px rgba(16,34,23,0.28); }
.nav-inner { max-width: var(--maxw); margin: 0 auto; padding: 0 1.75rem; height: 78px; display: flex; align-items: center; justify-content: space-between; gap: 1rem; }
.nav-brand { display: inline-flex; align-items: center; gap: 0.6rem; text-decoration: none; }
.nav-menu { display: flex; align-items: center; gap: 1.55rem; }
.nav-menu a { color: #D6DAD1; text-decoration: none; font-size: 0.9rem; font-weight: 500; padding: 0.4rem 0; transition: color 0.15s; }
.nav-menu a:hover, .nav-menu a[aria-current="page"] { color: var(--on-dark); }
.nav-actions { display: flex; align-items: center; gap: 0.9rem; }
.nav-divider { width: 1px; height: 18px; background: var(--forest-line); }
.nav-signin { color: #D6DAD1; text-decoration: none; font-size: 0.9rem; font-weight: 600; }
.nav-signin:hover { color: var(--on-dark); }
.nav-cta { background: var(--gold); color: var(--forest); padding: 0.5rem 1.05rem; border-radius: var(--radius-sm); font-size: 0.9rem; font-weight: 600; text-decoration: none; min-height: 40px; display: inline-flex; align-items: center; transition: background 0.15s; }
.nav-cta:hover { background: var(--gold-hover); }
.nav-toggle { display: none; background: none; border: 1px solid var(--forest-line); color: var(--on-dark); cursor: pointer; padding: 0.4rem; border-radius: var(--radius-sm); }
.nav-toggle svg { width: 24px; height: 24px; }

/* ── Capability labels ── (mono, bordered, warm) */
.tag {
  display: inline-flex; align-items: center; gap: 0.4rem;
  font-family: var(--font-mono); font-size: 0.66rem; font-weight: 500;
  text-transform: uppercase; letter-spacing: 0.08em;
  padding: 0.24rem 0.6rem; border-radius: var(--radius-xs);
  border: 1px solid var(--line-strong); color: var(--muted); background: transparent; white-space: nowrap;
}
.tag::before { content: ''; width: 6px; height: 6px; border-radius: 50%; background: currentColor; flex-shrink: 0; }
.tag--available { color: #2C5A38; border-color: rgba(44,90,56,0.35); background: rgba(44,90,56,0.07); }
.tag--web      { color: #2C5A38; border-color: rgba(44,90,56,0.35); background: rgba(44,90,56,0.07); }
.tag--mobile   { color: var(--gold-ink-aa); border-color: rgba(154,118,68,0.4); background: rgba(196,154,108,0.1); }
.tag--testing  { color: var(--gold-ink-aa); border-color: rgba(154,118,68,0.4); background: rgba(196,154,108,0.1); }
.tag--dev      { color: var(--muted); border-color: var(--line-strong); background: rgba(92,97,87,0.06); }
.tag--imgdep   { color: #47606F; border-color: rgba(71,96,111,0.35); background: rgba(71,96,111,0.07); }
.tag--review   { color: #8A3A20; border-color: rgba(138,58,32,0.35); background: rgba(138,58,32,0.07); }
.bg-forest .tag, .bg-teal .tag { color: var(--on-dark-muted); border-color: var(--forest-edge); background: transparent; }
.bg-forest .tag--available, .bg-teal .tag--available, .bg-forest .tag--web, .bg-teal .tag--web { color: #9FD07F; border-color: rgba(159,208,127,0.4); }
.bg-forest .tag--mobile, .bg-teal .tag--mobile, .bg-forest .tag--testing, .bg-teal .tag--testing { color: var(--gold); border-color: rgba(196,154,108,0.5); }

/* ── Cards / grids ── */
.grid { display: grid; gap: 1.25rem; }
.grid-2 { grid-template-columns: repeat(2, 1fr); }
.grid-3 { grid-template-columns: repeat(3, 1fr); }
.grid-4 { grid-template-columns: repeat(4, 1fr); }
.card { background: #FFFFFF; border: 1px solid var(--line); border-radius: 5px; padding: 1.65rem; }
.card h3 { margin-bottom: 0.5rem; }
.card p { color: var(--muted); font-size: 0.94rem; }
.bg-forest .card, .bg-teal .card { background: var(--forest-2); border-color: var(--forest-line); }
.bg-forest .card p, .bg-teal .card p { color: var(--on-dark-muted); }
.card-list { list-style: none; margin-top: 0.75rem; }
.card-list li { display: flex; gap: 0.55rem; align-items: flex-start; padding: 0.32rem 0; font-size: 0.94rem; color: var(--muted); }
.bg-forest .card-list li, .bg-teal .card-list li { color: var(--on-dark-muted); }
.card-list li::before { content: '—'; color: var(--gold-ink); font-weight: 700; flex-shrink: 0; }
.bg-forest .card-list li::before, .bg-teal .card-list li::before { color: var(--gold); }

/* ── Numbered mini-cards (problem grid etc.) ── */
.mini-card { background: #FFFFFF; border: 1px solid var(--line); border-radius: var(--radius-sm); padding: 1.25rem; display: flex; flex-direction: column; gap: 0.45rem; }
.mini-card .idx { font-family: var(--font-mono); font-size: 0.72rem; color: var(--faint); }
.mini-card h3 { font-family: var(--font-body); font-size: 0.95rem; font-weight: 600; }
.mini-card p { font-size: 0.9rem; color: var(--muted); line-height: 1.55; }

/* ── Product-proof visual ── */
.proof-frame {
  background: var(--forest); color: var(--on-dark);
  border: 1px solid var(--forest-line); border-radius: var(--radius);
  padding: 1.25rem; position: relative; overflow: hidden;
}
.proof-caption { font-size: 0.74rem; color: var(--on-dark-faint); margin-top: 0.65rem; display: flex; align-items: center; gap: 0.45rem; font-family: var(--font-mono); letter-spacing: 0.04em; }
.proof-caption .tag { font-size: 0.6rem; }

/* Data / score chip (monospace, forest-on-gold or gold-on-forest) */
.score-chip { display: inline-flex; align-items: center; gap: 0.4rem; font-family: var(--font-mono); font-size: 0.72rem; font-weight: 700; letter-spacing: 0.04em; padding: 0.28rem 0.55rem; border-radius: var(--radius-xs); background: var(--gold); color: var(--forest); }
.score-chip--ghost { background: transparent; border: 1px solid var(--forest-edge); color: var(--on-dark-muted); font-weight: 400; }

/* Illustrative / status corner label */
.illus-label { font-family: var(--font-mono); font-size: 0.62rem; letter-spacing: 0.1em; text-transform: uppercase; color: var(--on-dark); background: rgba(20,48,31,0.72); padding: 0.3rem 0.55rem; border-radius: var(--radius-xs); }
.illus-label--light { color: var(--forest); background: rgba(247,245,240,0.9); }

/* Image treatments — every slot is a drop target: add <img class="media__img" src>
   inside to fill; it covers the placeholder with no markup change elsewhere. */
.media { position: relative; border-radius: var(--radius); overflow: hidden; background: var(--sand); border: 1px solid var(--line-2); }
.media img, .media__img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; display: block; }
.media--ratio { aspect-ratio: 16 / 10; }
.media__placeholder { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; font-family: var(--font-mono); font-size: 0.74rem; letter-spacing: 0.08em; color: var(--faint); text-align: center; padding: 1.5rem; }
.media--dark { background: var(--forest); border-color: var(--forest-line); }
.media--dark .media__placeholder { color: var(--on-dark-faint); }
.media__label { position: absolute; right: 0.9rem; top: 0.9rem; z-index: 3; }
.media__scrim { position: absolute; inset: 0; pointer-events: none; }

/* Pipeline / flow */
.flow { display: grid; grid-template-columns: repeat(5, 1fr); gap: 1.25rem; align-items: stretch; }
.flow-node { display: flex; flex-direction: column; gap: 0.5rem; border-top: 2px solid var(--forest); padding-top: 1.25rem; }
.flow-node--gold { border-top-color: var(--gold); }  /* v2: step 04 rule is gold */
.bg-forest .flow-node, .bg-teal .flow-node { border-top-color: var(--on-dark); }
.bg-forest .flow-node--gold, .bg-teal .flow-node--gold { border-top-color: var(--gold); }
.flow-node .n { font-family: var(--font-mono); font-size: 0.72rem; letter-spacing: 0.12em; color: var(--gold-ink-aa); }
.bg-forest .flow-node .n, .bg-teal .flow-node .n { color: var(--gold); }
.flow-node h3 { font-family: var(--font-display); font-size: 1.05rem; font-weight: 600; color: var(--ink); }
.bg-forest .flow-node h3, .bg-teal .flow-node h3 { color: var(--on-dark); }
.flow-node p { font-size: 0.85rem; color: var(--muted); line-height: 1.55; }
.bg-forest .flow-node p, .bg-teal .flow-node p { color: var(--on-dark-muted); }

/* Confidence chips */
.conf-chip { display: inline-flex; align-items: center; gap: 0.4rem; font-family: var(--font-mono); font-size: 0.72rem; font-weight: 500; padding: 0.28rem 0.6rem; border-radius: var(--radius-xs); border: 1px solid transparent; }
.conf-high    { background: rgba(44,90,56,0.14); color: #2C5A38; border-color: rgba(44,90,56,0.28); }
.conf-med     { background: rgba(196,154,108,0.16); color: var(--gold-ink); border-color: rgba(154,118,68,0.34); }
.conf-low     { background: rgba(138,58,32,0.12); color: #8A3A20; border-color: rgba(138,58,32,0.28); }
.conf-unknown { background: rgba(92,97,87,0.12); color: var(--muted); border-color: rgba(92,97,87,0.28); }
.bg-forest .conf-high, .bg-teal .conf-high { background: rgba(159,208,127,0.14); color: #9FD07F; border-color: rgba(159,208,127,0.3); }
.bg-forest .conf-med, .bg-teal .conf-med { background: rgba(196,154,108,0.16); color: var(--gold); border-color: rgba(196,154,108,0.4); }
.bg-forest .conf-unknown, .bg-teal .conf-unknown { background: rgba(255,255,255,0.06); color: var(--on-dark-muted); border-color: var(--forest-edge); }

/* ── Forms ── */
.form-field { margin-bottom: 1rem; text-align: left; }
.form-field label { display: block; font-size: 0.85rem; font-weight: 600; margin-bottom: 0.35rem; }
.form-field input, .form-field select {
  width: 100%; padding: 0.75rem 0.9rem; border-radius: var(--radius-sm);
  border: 1.5px solid var(--line-strong); background: #FFFFFF; color: var(--ink);
  font-family: var(--font-body); font-size: 1rem; min-height: 48px;
}
.bg-forest .form-field label, .bg-teal .form-field label { color: var(--on-dark); }
.bg-forest .form-field input, .bg-forest .form-field select,
.bg-teal .form-field input, .bg-teal .form-field select {
  background: rgba(255,255,255,0.06); border-color: var(--forest-edge); color: var(--on-dark);
}
.form-field input:focus, .form-field select:focus { border-color: var(--gold-ink); outline: none; }
.form-hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; }
.form-note { font-size: 0.8rem; color: var(--muted); }
.bg-forest .form-note, .bg-teal .form-note { color: var(--on-dark-muted); }
.form-status { border-radius: var(--radius-sm); padding: 0.85rem 1rem; font-size: 0.95rem; font-weight: 600; margin-top: 0.5rem; }
.form-status--ok { background: rgba(44,90,56,0.14); color: #2C5A38; }
.form-status--err { background: rgba(138,58,32,0.12); color: #9A3320; }
.bg-forest .form-status--ok, .bg-teal .form-status--ok { background: rgba(159,208,127,0.18); color: #9FD07F; }

/* ── Hero (shell default; homepage hero is built in Increment 2) ── */
.hero { background: var(--forest); color: var(--on-dark); position: relative; overflow: hidden; padding: 4.5rem 0 5rem; }
.hero h1 { margin-bottom: 1.1rem; }
.hero p.lead { color: var(--on-dark-muted); margin-bottom: 1.6rem; max-width: 36ch; }
.hero-actions { display: flex; gap: 0.85rem; flex-wrap: wrap; align-items: center; }
.hero-availability { margin-top: 1.4rem; font-family: var(--font-mono); font-size: 0.72rem; letter-spacing: 0.08em; text-transform: uppercase; color: var(--on-dark-faint); display: flex; align-items: center; gap: 0.5rem; }

/* ── Steps / how it works ── */
.steps { display: grid; gap: 2rem; }
.step { display: grid; grid-template-columns: 64px 1fr; gap: 1.5rem; align-items: start; }
.step .num { font-family: var(--font-display); font-size: 2.5rem; color: rgba(196,154,108,0.5); line-height: 1; }
.bg-forest .step .num, .bg-teal .step .num { color: rgba(196,154,108,0.65); }
.step h3 { margin-bottom: 0.4rem; }
.step p { color: var(--muted); }
.bg-forest .step p, .bg-teal .step p { color: var(--on-dark-muted); }

/* ── Pricing ── */
.price-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.25rem; align-items: start; }
.price-card { background: #FFFFFF; border: 1px solid var(--line); border-radius: var(--radius); padding: 2rem 1.75rem; position: relative; }
.price-card.is-featured { border: 2px solid var(--forest); box-shadow: var(--shadow); }
.price-tier { font-family: var(--font-mono); font-size: 0.72rem; font-weight: 500; text-transform: uppercase; letter-spacing: 0.1em; color: var(--gold-ink); }
.price-amt { font-family: var(--font-display); font-size: 1.7rem; font-weight: 700; margin: 0.5rem 0; }
.price-card p { color: var(--muted); font-size: 0.92rem; }
.price-badge { position: absolute; top: -0.7rem; left: 1.75rem; font-family: var(--font-mono); font-size: 0.64rem; letter-spacing: 0.08em; text-transform: uppercase; background: var(--forest); color: var(--bone); padding: 0.25rem 0.6rem; border-radius: var(--radius-xs); }

/* ── FAQ / prose ── */
.faq-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 1.5rem 2.5rem; }
.faq h3 { font-size: 1.02rem; margin-bottom: 0.35rem; }
.faq p { color: var(--muted); font-size: 0.92rem; }
.prose { max-width: 720px; margin: 0 auto; }
.prose h2 { margin-top: 2.5rem; }
.prose h3 { margin-top: 1.75rem; margin-bottom: 0.4rem; }
.prose p, .prose li { color: var(--body); margin-bottom: 0.9rem; }
.prose ul, .prose ol { padding-left: 1.25rem; margin-bottom: 0.9rem; }
.prose a { color: var(--forest); text-decoration: underline; text-underline-offset: 2px; }
.prose .updated { color: var(--muted); font-size: 0.9rem; }
.callout { background: var(--beige); border-left: 3px solid var(--gold); border-radius: var(--radius-sm); padding: 1rem 1.25rem; margin: 1.25rem 0; }
.callout p { margin: 0; }

/* ── Footer ── */
.footer { background: var(--forest-deep); color: rgba(247,245,240,0.66); padding: 3rem 0 2rem; font-size: 0.88rem; }
.footer .wordmark { font-size: 1.1rem; }
.footer-top { display: grid; grid-template-columns: 1.4fr repeat(3, 1fr); gap: 2rem; margin-bottom: 2rem; }
.footer-brand .nav-brand { margin-bottom: 0.7rem; }
.footer-brand p { color: rgba(247,245,240,0.55); font-size: 0.85rem; max-width: 34ch; }
.footer h3 { font-family: var(--font-mono); font-size: 0.68rem; font-weight: 500; text-transform: uppercase; letter-spacing: 0.1em; color: rgba(247,245,240,0.5); margin-bottom: 0.75rem; }
.footer ul { list-style: none; }
.footer li { margin-bottom: 0.5rem; }
.footer a { color: rgba(247,245,240,0.72); text-decoration: none; }
.footer a:hover { color: var(--on-dark); text-decoration: underline; }
.footer-bottom a { text-decoration: underline; text-underline-offset: 2px; }
.footer-bottom { border-top: 1px solid var(--forest-line-2); padding-top: 1.25rem; display: flex; justify-content: space-between; gap: 1rem; flex-wrap: wrap; color: rgba(247,245,240,0.5); font-size: 0.8rem; }

/* ── Reveal (respects reduced motion via the block near the top) ── */
.reveal { opacity: 0; transform: translateY(14px); transition: opacity 0.5s ease, transform 0.5s ease; }
.reveal.is-in { opacity: 1; transform: none; }

/* ── Utilities ── */
.stack > * + * { margin-top: 1rem; }
.split { display: grid; grid-template-columns: 1fr 1fr; gap: 3rem; align-items: center; }
.pill-row { display: flex; flex-wrap: wrap; gap: 0.5rem; }

/* ── Responsive ── */
@media (max-width: 960px) {
  .hero .container, .split { grid-template-columns: 1fr; gap: 2rem; }
  .grid-4 { grid-template-columns: repeat(2, 1fr); }
  .flow { grid-template-columns: 1fr 1fr; }
  .price-grid { grid-template-columns: 1fr; max-width: 460px; margin: 0 auto; }
  .footer-top { grid-template-columns: 1fr 1fr; }
}
/* Nav collapses to the hamburger sheet below tablet width — the full horizontal
   nav (brand + 6 links + Sign In + CTA) does not fit under ~900px and would
   overlap the wordmark. Content grids keep stacking at their own breakpoints. */
@media (max-width: 900px) {
  .nav-inner { height: 64px; }
  .brand-mark { height: 26px; }
  .nav-menu, .nav-signin, .nav-divider { display: none; }
  .nav-toggle { display: inline-flex; }
  .nav-actions .nav-cta:not(.nav-cta--sheet) { display: none; }
  .nav[data-open="true"] .nav-menu {
    display: flex; position: absolute; top: 64px; left: 0; right: 0;
    flex-direction: column; align-items: flex-start; gap: 0.25rem;
    background: var(--forest); padding: 1rem 1.25rem 1.5rem; border-bottom: 1px solid var(--forest-line-2);
  }
  .nav[data-open="true"] .nav-menu a { padding: 0.85rem 0; width: 100%; font-size: 1.15rem; }
  .nav[data-open="true"] .nav-signin { display: block; padding: 0.85rem 0; }
  .nav[data-open="true"] .nav-cta--sheet { display: inline-flex; width: 100%; justify-content: center; margin-top: 0.75rem; padding: 0.85rem; font-size: 1rem; min-height: 48px; }
}
@media (max-width: 720px) {
  .container { padding: 0 1.25rem; }  /* v2: 20px mobile gutter */
  .grid-2, .grid-3, .grid-4 { grid-template-columns: 1fr; }
  .flow { grid-template-columns: 1fr; }
  .faq-grid { grid-template-columns: 1fr; }
  .form-row { grid-template-columns: 1fr; }
  .footer-top { grid-template-columns: 1fr; gap: 1.5rem; }
  .section { padding: 3rem 0; }  /* v2: 48px mobile */
  .step { grid-template-columns: 44px 1fr; gap: 1rem; }
}
@media (max-width: 360px) {
  .container { padding: 0 1.15rem; }
  .hero-actions { flex-direction: column; align-items: stretch; }
  .hero-actions .btn { width: 100%; }
}

/* ==========================================================================
   Homepage storytelling (Increment 2) — built from the approved v2 homepage
   mock (frames 2a desktop / 2b mobile) + HANDOFF sections 2-5. Section
   primitives reused from above; the rules below add the pieces unique to the
   homepage narrative. Reference package only — no design runtime is shipped.
   ========================================================================== */

/* Overlay nav: fixed over the hero photo. Default is SOLID (no-JS safe, readable
   on every background). JS adds .is-top while at the top of the page to make it
   transparent over the hero; removed after 80px of scroll. */
.page-home .nav { position: fixed; left: 0; right: 0; }
.page-home .nav.is-top { background: transparent; border-bottom-color: transparent; box-shadow: none; }

/* ── Hero (IR trail-cam still, bottom-anchored headline) ── */
.home-hero { position: relative; min-height: 760px; display: flex; background: var(--forest); color: var(--on-dark); overflow: hidden; }
.home-hero__media { position: absolute; inset: 0; background: var(--forest); border: 0; border-radius: 0; }
.home-hero__scrim { position: absolute; inset: 0; pointer-events: none;
  background: linear-gradient(180deg, rgba(10,24,16,0.78) 0%, rgba(10,24,16,0.12) 32%, rgba(10,24,16,0.9) 100%); }
.home-hero__inner { position: relative; z-index: 2; width: 100%; max-width: var(--maxw); margin: 0 auto;
  padding: 8.75rem 1.75rem 5.25rem; display: flex; align-items: flex-end; }
.home-hero__content { max-width: 800px; display: flex; flex-direction: column; gap: 1.375rem; }
.home-hero h1 { color: var(--on-dark); font-size: clamp(2.75rem, 7vw, 5.125rem); line-height: 0.97; margin: 0; }
.home-hero .lead { color: #DDE2D8; max-width: 600px; margin: 0; }

.hero-brands { font-size: 0.88rem; color: var(--on-dark-muted); max-width: 560px; line-height: 1.55; }
.hero-chrome {
  position: absolute; inset: 0;
  display: flex; flex-direction: column;
  opacity: 0.34;
  pointer-events: none;
  padding: 6.5rem 6% 3rem 46%;
}
.hero-chrome__bar {
  display: flex; align-items: center; gap: 0.5rem;
  padding: 0.7rem 1rem;
  background: var(--forest-2);
  border: 1px solid var(--forest-line);
  border-radius: 8px 8px 0 0;
}
.hero-chrome__url {
  margin-left: 0.5rem;
  font-family: var(--font-mono);
  font-size: 0.68rem;
  letter-spacing: 0.02em;
  color: var(--on-dark-faint);
}
.hero-chrome__body {
  flex: 1;
  background: var(--forest-deep);
  border: 1px solid var(--forest-line);
  border-top: 0;
  border-radius: 0 0 8px 8px;
  padding: 1rem;
  display: flex;
  flex-direction: column;
  gap: 0.65rem;
  overflow: hidden;
}
.hero-chrome .sight { flex-direction: row; align-items: center; gap: 0.75rem; min-height: 0; }
.hero-chrome .sight__thumb { width: 72px; height: 48px; flex-shrink: 0; }
.hero-chrome--proof {
  position: absolute; inset: 0;
  opacity: 1;
  padding: 3.25rem 1.5rem 1.5rem;
}
.hero-chrome--proof .hero-chrome__body { border-radius: 6px; border-top: 1px solid var(--forest-line); }
@media (max-width: 860px) {
  .hero-chrome { display: none; }
  .hero-chrome--proof { display: flex; }
}
.hero-bracket { position: absolute; z-index: 2; right: 1.75rem; top: 7.4rem; width: 236px; height: 158px;
  border: 2px solid rgba(196,154,108,0.85); border-radius: 3px; pointer-events: none; }

/* ── Product-proof browser frame ── */
.browser { border: 1px solid var(--forest-line); border-radius: 8px; overflow: hidden; background: var(--forest-deep); }
.browser__bar { display: flex; align-items: center; gap: 0.625rem; padding: 0.75rem 1rem; background: var(--forest-2); border-bottom: 1px solid var(--forest-line); }
.browser__dot { width: 9px; height: 9px; border-radius: 50%; background: #3E5A49; }
.browser__url { margin-left: 0.75rem; font-family: var(--font-mono); font-size: 0.7rem; letter-spacing: 0.02em; color: var(--on-dark-faint); }
.browser__shot { height: 600px; border: 0; border-radius: 0; }
.proof-head { display: flex; justify-content: space-between; align-items: flex-end; gap: 2.5rem; flex-wrap: wrap; }
.proof-head .lead { max-width: 400px; }
.proof-cols { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.75rem; }
.proof-col { border-top: 1px solid var(--forest-line); padding-top: 1.15rem; display: flex; flex-direction: column; gap: 0.5rem; }
.proof-col h3 { font-size: 1.25rem; font-weight: 600; color: var(--on-dark); }
.proof-col p { font-size: 0.9rem; color: var(--on-dark-muted); }

/* ── Tile grids (1px inner rule) ── */
.tile-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1px; background: var(--line-2); border: 1px solid var(--line-2); }
.tile { background: #FFFFFF; padding: 1.6rem; display: flex; flex-direction: column; gap: 0.5rem; }
.tile h3 { font-family: var(--font-body); font-size: 0.95rem; font-weight: 600; color: var(--ink); }
.tile p { font-size: 0.85rem; line-height: 1.6; color: var(--muted); }
.tile-grid--dark { background: var(--forest-line); border-color: var(--forest-line); }
.tile-grid--dark .tile { background: var(--forest); }
.tile-grid--dark .tile h3 { font-family: var(--font-display); font-size: 1.375rem; font-weight: 600; color: var(--on-dark); }
.tile-grid--dark .tile p { color: var(--on-dark-muted); }

/* ── Now / next notes ── */
.now-next { display: grid; grid-template-columns: 1fr 1fr; gap: 1.25rem; }
.note-card { background: var(--beige); border: 1px solid var(--line-2); border-radius: 5px; padding: 1.75rem; display: flex; flex-direction: column; gap: 0.75rem; }
.note-card--dev { border: 1px dashed var(--gold); }
.note-flag { display: flex; align-items: center; gap: 0.6rem; font-family: var(--font-mono); font-size: 0.72rem; letter-spacing: 0.14em; text-transform: uppercase; color: var(--forest); }
.note-card--dev .note-flag { color: var(--gold-ink-aa); }
.note-dot { width: 7px; height: 7px; border-radius: 50%; background: var(--forest); flex-shrink: 0; }
.note-card--dev .note-dot { background: var(--gold); }
.note-card p { font-size: 0.9rem; line-height: 1.7; color: var(--body); }
.note-card small { font-size: 0.85rem; color: var(--muted); }

/* ── Transformation (before/after wipe via clip-path) ── */
.xform { position: relative; height: 470px; border: 1px solid var(--line-2); border-radius: 6px; overflow: hidden; background: var(--sand); }
.xform__raw { position: absolute; inset: 0; display: grid; grid-template-columns: repeat(6, 1fr); grid-auto-rows: 1fr; gap: 4px; padding: 4px; }
.xtile { position: relative; background: #C9C4B7; border-radius: 2px; overflow: hidden; }
.xtile img, .xtile .media__img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; display: block; }
.xtile--night { background: #2A3630; }
.xtile--dim { background: #B6B1A3; }
.xtile__tag { position: absolute; left: 4px; bottom: 4px; font-family: var(--font-mono); font-size: 0.55rem; letter-spacing: 0.04em; color: #4F544A; background: rgba(247,245,240,0.82); padding: 1px 4px; border-radius: 2px; }
.xtile--night .xtile__tag { color: #C9D0C3; background: rgba(15,37,23,0.7); }
.xform__after { position: absolute; inset: 0; background: var(--forest); overflow: hidden;
  clip-path: inset(0 calc(100% - var(--split, 50%)) 0 0); }
.xform__after-inner { position: absolute; inset: 0; width: 100%; padding: 1.6rem 1.75rem; display: flex; flex-direction: column; gap: 1.1rem; overflow: hidden; }
.xform__divider { position: absolute; top: 0; bottom: 0; left: var(--split, 50%); width: 2px; background: var(--gold); transform: translateX(-1px); z-index: 3; pointer-events: none; }
.xform__grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 0.75rem; }
.sight { background: var(--forest-2); border: 1px solid var(--forest-line); border-radius: 5px; padding: 0.875rem; display: flex; flex-direction: column; gap: 0.5rem; min-width: 0; }
.sight__thumb { height: 74px; border-radius: 3px; background: #24463360; border: 1px solid var(--forest-line); position: relative; overflow: hidden; }
.sight__thumb img { width: 100%; height: 100%; object-fit: cover; display: block; }
.sight__name { font-size: 0.85rem; font-weight: 600; color: var(--on-dark); }
.sight__meta { font-family: var(--font-mono); font-size: 0.62rem; letter-spacing: 0.04em; color: var(--on-dark-faint); }
.xform__range { position: absolute; left: 0; right: 0; bottom: 14px; width: 100%; margin: 0; z-index: 4; accent-color: var(--gold); cursor: ew-resize; }
.xform-mobile { display: none; }

/* ── State chip (illustrative sighting states — never a score number) ── */
.state { align-self: flex-start; font-family: var(--font-mono); font-size: 0.62rem; font-weight: 600; letter-spacing: 0.02em; padding: 0.2rem 0.45rem; border-radius: 3px; }
.state--eligible { background: var(--gold); color: var(--forest); }
.state--sighting { border: 1px solid var(--forest-edge); color: var(--on-dark-muted); }
.state--abstained { border: 1px solid var(--gold); color: var(--gold); }
.state--empty { border: 1px solid var(--forest-edge); color: var(--on-dark-faint); }

/* ── Confidence states (homepage forest list) ── */
.state-row { background: var(--forest-2); border: 1px solid var(--forest-line); border-radius: 5px; padding: 1.15rem 1.25rem; display: flex; align-items: center; justify-content: space-between; gap: 1rem; }
.state-row--flag { border-color: var(--gold); }
.state-row__label { font-size: 0.94rem; font-weight: 600; color: var(--on-dark); }
.state-row__sub { font-family: var(--font-mono); font-size: 0.64rem; letter-spacing: 0.04em; color: var(--on-dark-faint); margin-top: 0.3rem; }

/* ── Trust rows ── */
.trust-rows { display: flex; flex-direction: column; gap: 1px; background: var(--line-2); border: 1px solid var(--line-2); }
.trust-row { background: #FFFFFF; padding: 1.5rem 1.6rem; display: flex; gap: 1.25rem; align-items: baseline; }
.trust-row .idx { font-family: var(--font-mono); font-size: 0.72rem; color: var(--gold-ink-aa); white-space: nowrap; }
.trust-row h3 { font-family: var(--font-body); font-size: 0.95rem; font-weight: 600; color: var(--ink); }
.trust-row p { font-size: 0.88rem; line-height: 1.6; color: var(--muted); }

/* ── Pricing preview (non-transactable) ── */
.pp-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.25rem; }
.pp-card { background: var(--bone); border: 1px solid var(--line-2); border-radius: 6px; padding: 2rem; display: flex; flex-direction: column; gap: 0.9rem; position: relative; }
.pp-card--featured { background: var(--forest); border-color: var(--forest); color: var(--on-dark); }
.pp-name { font-family: var(--font-display); font-size: 1.625rem; font-weight: 700; color: var(--ink); }
.pp-card--featured .pp-name { color: var(--on-dark); }
.pp-price { font-family: var(--font-mono); font-size: 1.75rem; color: var(--ink); }
.pp-price span { font-size: 0.85rem; color: var(--muted); }
.pp-card--featured .pp-price { color: var(--gold); }
.pp-card--featured .pp-price span { color: var(--on-dark-faint); }
.pp-desc { font-size: 0.92rem; line-height: 1.65; color: var(--muted); }
.pp-card--featured .pp-desc { color: var(--on-dark-muted); }
.pp-badge { position: absolute; top: -0.7rem; left: 2rem; font-family: var(--font-mono); font-size: 0.62rem; letter-spacing: 0.1em; text-transform: uppercase; background: var(--gold); color: var(--forest); padding: 0.22rem 0.6rem; border-radius: 3px; }
.pp-foot { display: flex; align-items: center; justify-content: space-between; gap: 1.5rem; flex-wrap: wrap; }
.pp-trial { font-size: 0.88rem; color: var(--muted); }
.link-underline { font-weight: 600; color: var(--ink); text-decoration: none; border-bottom: 1px solid var(--gold); padding-bottom: 2px; }

/* ── Final CTA band ── */
.cta-photo { position: relative; min-height: 440px; display: flex; align-items: center; justify-content: center; text-align: center; background: var(--forest); color: var(--on-dark); overflow: hidden; }
.cta-photo__media { position: absolute; inset: 0; background: var(--forest); border: 0; border-radius: 0; }
.cta-photo__scrim { position: absolute; inset: 0; pointer-events: none; background: linear-gradient(180deg, rgba(10,24,16,0.5), rgba(10,24,16,0.88)); }
.cta-photo__inner { position: relative; z-index: 2; padding: 3rem 1.75rem; display: flex; flex-direction: column; align-items: center; gap: 1.3rem; max-width: 760px; }
.cta-photo h2 { color: var(--on-dark); font-size: clamp(2rem, 4vw, 3.25rem); }
.cta-photo .lead { color: #DDE2D8; max-width: 520px; }

/* Section split variants used on the homepage */
.split--proof { display: grid; grid-template-columns: minmax(0,1.05fr) minmax(0,1fr); gap: 4.5rem; align-items: center; }
.split--trust { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1.1fr); gap: 4.5rem; align-items: flex-start; }
.split--wm { display: grid; grid-template-columns: minmax(0,1fr) 320px; gap: 5rem; align-items: center; }
.phone-mock { width: 284px; height: 560px; border-radius: 34px; border: 9px solid var(--forest); overflow: hidden; justify-self: center; box-shadow: var(--shadow); background: var(--forest); }
.section-head { display: flex; justify-content: space-between; align-items: flex-end; gap: 2.5rem; flex-wrap: wrap; }

/* ── Homepage responsive ── */
@media (max-width: 1023px) {
  .hero-bracket { display: none; }
  .proof-cols { grid-template-columns: 1fr; gap: 1rem; }
  .split--proof, .split--trust, .split--wm { grid-template-columns: 1fr; gap: 2.5rem; }
  .tile-grid { grid-template-columns: repeat(2, 1fr); }
  .xform__grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 720px) {
  .home-hero { min-height: 600px; }
  .home-hero__inner { padding: 6rem 1.25rem 2.5rem; }
  .home-hero__scrim { background: linear-gradient(180deg, rgba(10,24,16,0.8) 0%, rgba(10,24,16,0.1) 30%, rgba(10,24,16,0.92) 100%); }
  .browser__shot { height: 240px; }
  .tile-grid { display: flex; flex-direction: column; }
  .now-next { grid-template-columns: 1fr; }
  .xform { display: none; }
  .xform-mobile { display: block; }
  .pp-grid { display: flex; overflow-x: auto; scroll-snap-type: x mandatory; gap: 0.75rem; padding-bottom: 0.4rem;
    scrollbar-width: none; -webkit-overflow-scrolling: touch; }
  .pp-grid::-webkit-scrollbar { display: none; }
  .pp-card { flex: 0 0 260px; scroll-snap-align: start; }
  .phone-mock { width: 100%; max-width: 300px; height: auto; aspect-ratio: 9 / 16; }
  .cta-photo { min-height: 400px; }
}

/* ── Mobile transformation: segmented tap toggle ── */
.seg { display: flex; border: 1px solid var(--line-2); border-radius: 5px; overflow: hidden; }
.seg button { flex: 1; border: 0; padding: 0.85rem; font-family: var(--font-body); font-size: 0.85rem; font-weight: 600; cursor: pointer; background: #FFFFFF; color: var(--body); min-height: 48px; }
.seg button[aria-selected="true"] { background: var(--forest); color: var(--on-dark); }
.seg-panel { border: 1px solid var(--line-2); border-radius: 5px; overflow: hidden; margin-top: 0.9rem; }
.seg-panel[data-seg-raw] { background: var(--sand); padding: 3px; }
.seg-panel[data-seg-raw] .xform__raw { position: static; grid-template-columns: repeat(3, 1fr); }
.seg-panel[data-seg-sorted] { background: var(--forest); padding: 0.75rem; display: flex; flex-direction: column; gap: 0.625rem; }
.seg-panel .sight { flex-direction: row; align-items: center; gap: 0.75rem; }
.seg-panel .sight__thumb { width: 64px; height: 52px; flex: 0 0 64px; }

/* ── Small-screen hardening (≤400px): prevent horizontal overflow ── */
.hero-availability { flex-wrap: wrap; }
.browser__bar { min-width: 0; }
.browser__url { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.state-row > div { min-width: 0; }
.state-row__sub { overflow-wrap: anywhere; }
@media (max-width: 400px) {
  .home-hero h1 { font-size: 2rem; line-height: 1.02; }
  .home-hero__inner { padding: 5.5rem 1.15rem 2.25rem; }
  .cta-photo h2 { font-size: 1.85rem; }
  .pp-card { flex-basis: 240px; }
}

/* Lower the hero headline floor so it never overruns a narrow phone, independent
   of the exact breakpoint. Desktop size (clamp max) is unchanged. */
.home-hero h1 { font-size: clamp(2.15rem, 6.4vw, 5.125rem); }
@media (max-width: 480px) {
  .home-hero h1 { font-size: 2rem; line-height: 1.02; }
  .home-hero__inner { padding: 5.5rem 1.15rem 2.25rem; }
  .cta-photo h2 { font-size: 1.85rem; }
}

/* ==========================================================================
   Increment 3 — pricing + supporting pages (v2 pricing mock 2c/2d + HANDOFF §3).
   ========================================================================== */

/* Mobile nav: per the v2 mock the top bar is logo + hamburger only; Get Started
   moves into the opened sheet (avoids the brand/CTA collision at ≤360). */
.nav-cta--sheet { display: none; }
/* nav-collapse + sheet CTA behavior now lives in the ≤900px block above. */

/* Page hero (bone, no photograph) — supporting pages + pricing header */
.page-hero { background: var(--bone); padding: 6.5rem 0 3.5rem; }
.page-hero .container { display: flex; flex-direction: column; gap: 1.2rem; align-items: flex-start; }
.page-hero h1 { font-size: clamp(2.35rem, 5vw, 3.75rem); line-height: 1.03; max-width: 20ch; }
.page-hero .lead { color: var(--body); max-width: 40rem; }
.page-hero--forest { background: var(--forest); }
.page-hero--forest h1 { color: var(--on-dark); }
.page-hero--forest .lead { color: var(--on-dark-muted); }
.mono-note { display: inline-flex; align-items: center; gap: 0.5rem; font-family: var(--font-mono); font-size: 0.72rem; letter-spacing: 0.1em; text-transform: uppercase; color: var(--muted); }
.mono-note::before { content: ''; width: 6px; height: 6px; border-radius: 50%; background: var(--gold); }
.page-hero--forest .mono-note { color: var(--on-dark-faint); }

/* Pricing tiers (inversion-emphasised Property; identical capacity table per column) */
.tier-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.375rem; align-items: start; }
.tier { background: #FFFFFF; border: 1px solid var(--line-2); border-radius: 6px; padding: 2.25rem 2rem; display: flex; flex-direction: column; gap: 1.375rem; position: relative; }
.tier--featured { background: var(--forest); border-color: var(--forest); color: var(--on-dark); box-shadow: var(--shadow); }
.tier__name { font-family: var(--font-display); font-size: 1.875rem; font-weight: 700; color: var(--ink); }
.tier--featured .tier__name { color: var(--on-dark); }
.tier__desc { font-size: 0.9rem; line-height: 1.6; color: var(--muted); }
.tier--featured .tier__desc { color: var(--on-dark-muted); }
.tier__price { display: flex; align-items: baseline; gap: 0.4rem; }
.tier__price b { font-family: var(--font-mono); font-size: 2.35rem; font-weight: 400; color: var(--ink); }
.tier--featured .tier__price b { color: var(--gold); }
.tier__price span { font-size: 0.85rem; color: var(--muted); }
.tier--featured .tier__price span { color: var(--on-dark-faint); }
.tier__badge { position: absolute; top: -0.72rem; left: 2rem; font-family: var(--font-mono); font-size: 0.64rem; letter-spacing: 0.12em; text-transform: uppercase; background: var(--gold); color: var(--forest); padding: 0.28rem 0.65rem; border-radius: 3px; }
.tier__table { display: flex; flex-direction: column; }
.tier__table .row { display: flex; justify-content: space-between; align-items: center; padding: 0.7rem 0; font-size: 0.9rem; border-bottom: 1px solid var(--line); }
.tier--featured .tier__table .row { border-bottom-color: var(--forest-line); }
.tier__table .row span:first-child { color: var(--muted); }
.tier--featured .tier__table .row span:first-child { color: var(--on-dark-faint); }
.tier__table .row span:last-child { font-family: var(--font-mono); color: var(--ink); }
.tier--featured .tier__table .row span:last-child { color: var(--on-dark); }
.tier__list { list-style: none; display: flex; flex-direction: column; gap: 0.6rem; }
.tier__list li { display: flex; gap: 0.6rem; font-size: 0.9rem; line-height: 1.55; color: var(--body); }
.tier--featured .tier__list li { color: var(--on-dark-muted); }
.tier__list li::before { content: '—'; color: var(--gold-ink); font-family: var(--font-mono); flex-shrink: 0; }
.tier--featured .tier__list li::before { color: var(--gold); }

/* Capacity table (forest) */
.capacity-list { display: flex; flex-direction: column; gap: 1px; background: var(--forest-line); border: 1px solid var(--forest-line); border-radius: 5px; overflow: hidden; }
.capacity-list .head { background: var(--forest-2); padding: 1rem 1.4rem; display: flex; justify-content: space-between; font-family: var(--font-mono); font-size: 0.66rem; letter-spacing: 0.14em; color: var(--on-dark-faint); }
.capacity-list .row { background: var(--forest); padding: 1.25rem 1.4rem; display: flex; justify-content: space-between; align-items: baseline; }
.capacity-list .row span:first-child { font-size: 1rem; color: var(--on-dark); }
.capacity-list .row b { font-family: var(--font-mono); font-size: 1.35rem; font-weight: 400; color: var(--gold); }

/* FAQ accordion (accessible <button> per row) */
.faq-list { display: flex; flex-direction: column; }
.faq-item { border-top: 1px solid var(--line-2); }
.faq-item:last-child { border-bottom: 1px solid var(--line-2); }
.faq-q { width: 100%; background: none; border: 0; padding: 1.4rem 0; display: flex; justify-content: space-between; align-items: center; gap: 1.5rem; cursor: pointer; text-align: left; font-family: var(--font-body); min-height: 48px; }
.faq-q span { font-size: 1.02rem; font-weight: 600; color: var(--ink); }
.faq-q .sign { font-family: var(--font-mono); font-size: 1.1rem; color: var(--gold-ink); flex-shrink: 0; transition: transform 0.18s ease; }
.faq-q[aria-expanded="true"] .sign { transform: rotate(45deg); }
.faq-a { display: none; padding: 0 0 1.5rem; max-width: 42rem; }
.faq-a p { font-size: 0.96rem; line-height: 1.7; color: var(--body); }
.faq-item.is-open .faq-a { display: block; }
.faq-split { display: grid; grid-template-columns: 320px minmax(0,1fr); gap: 4.5rem; align-items: start; }

/* Two-up "in every plan / not yet" */
.plan-notes { display: grid; grid-template-columns: 1fr 1fr; gap: 1.375rem; }

/* Feature rows (product / how-it-works numbered workflow) */
.workflow { display: flex; flex-direction: column; gap: 1px; background: var(--line-2); border: 1px solid var(--line-2); }
.workflow .step-row { background: #FFFFFF; padding: 1.75rem; display: grid; grid-template-columns: 3.5rem 1fr; gap: 1.25rem; align-items: baseline; }
.workflow .step-row .n { font-family: var(--font-mono); font-size: 0.8rem; letter-spacing: 0.1em; color: var(--gold-ink-aa); }
.workflow .step-row h3 { font-family: var(--font-display); font-size: 1.25rem; font-weight: 600; margin-bottom: 0.35rem; }
.workflow .step-row p { font-size: 0.94rem; color: var(--muted); line-height: 1.6; }

/* Definition rows (species capabilities, data-security) */
.def-rows { display: flex; flex-direction: column; gap: 1px; background: var(--line-2); border: 1px solid var(--line-2); }
.def-row { background: #FFFFFF; padding: 1.5rem 1.6rem; display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 1rem 1.5rem; align-items: center; }
.def-row h3 { font-family: var(--font-body); font-size: 0.98rem; font-weight: 600; }
.def-row p { font-size: 0.9rem; color: var(--muted); line-height: 1.6; margin-top: 0.2rem; }

@media (max-width: 960px) {
  .tier-grid { grid-template-columns: 1fr; max-width: 30rem; margin: 0 auto; }
  .faq-split { grid-template-columns: 1fr; gap: 1.5rem; }
  .plan-notes { grid-template-columns: 1fr; }
}
@media (max-width: 720px) {
  .page-hero { padding: 5rem 0 2.5rem; }
  .capacity-list .head { display: none; }
  .def-row { grid-template-columns: 1fr; }
  .workflow .step-row { grid-template-columns: 2.5rem 1fr; gap: 0.85rem; padding: 1.35rem; }
}

/* FAQ progressive enhancement: answers are open by default (readable with JS
   off); JS adds .faq--js to enable collapse/expand. */
.faq-a { display: block; }
.faq--js .faq-a { display: none; }
.faq--js .faq-item.is-open .faq-a { display: block; }

/* ========================================================================== */
/* ==========================================================================
   Hunting voice — IR night still + intelligence overlay (not SaaS chrome,
   not camo-cosplay, not stand-pin folklore).
   ========================================================================== */

.home-hero { background: #050c08; }
.home-hero__media { background: #050c08; }
.home-hero__scrim {
  background:
    linear-gradient(90deg, rgba(5,12,8,0.82) 0%, rgba(5,12,8,0.28) 42%, rgba(5,12,8,0.08) 68%, rgba(5,12,8,0.55) 100%),
    linear-gradient(180deg, rgba(5,12,8,0.42) 0%, rgba(5,12,8,0.08) 34%, rgba(5,12,8,0.92) 100%);
}
.ir-hero { position: absolute; inset: 0; }
.ir-hero img, .ir-hero svg, .ir-hero__scene {
  position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: 58% 55%; display: block;
}
.ir-hero__scan {
  position: absolute; inset: 0; pointer-events: none; z-index: 1;
  background: repeating-linear-gradient(0deg, transparent, transparent 2px, rgba(124,255,138,0.035) 2px, rgba(124,255,138,0.035) 3px);
  animation: ir-scan 7s linear infinite;
}
@keyframes ir-scan { from { background-position: 0 0; } to { background-position: 0 12px; } }
.ir-hero__stamp {
  position: absolute; left: 1.1rem; bottom: 1.1rem; right: 1.1rem; z-index: 2;
  display: flex; justify-content: space-between; gap: 1rem; flex-wrap: wrap;
  font-family: var(--font-mono); font-size: 0.72rem; letter-spacing: 0.12em;
  text-transform: uppercase; color: var(--ir-hot);
  text-shadow: 0 0 10px rgba(111,191,74,0.45);
}
.ir-hero .illus-label { position: absolute; top: 6.4rem; right: 1.1rem; z-index: 3; background: rgba(8,17,12,0.72); color: var(--ir-hot); }
.hero-chrome { display: none; }
.hero-bracket { display: none; }

.ir-hud {
  position: absolute; inset: 0; z-index: 2; pointer-events: none;
}
.ir-hud__box {
  position: absolute; left: 46%; top: 32%; width: 34%; height: 42%;
  border: 1.5px solid rgba(154,232,106,0.85);
  box-shadow: 0 0 0 1px rgba(4,18,8,0.45);
}
.ir-hud__box::before, .ir-hud__box::after {
  content: ""; position: absolute; width: 18px; height: 18px; border: 2px solid var(--ir-hot);
}
.ir-hud__box::before { top: -2px; left: -2px; border-right: 0; border-bottom: 0; }
.ir-hud__box::after { bottom: -2px; right: -2px; border-left: 0; border-top: 0; }
.ir-hud__tag {
  position: absolute; left: -1px; top: -1.55rem;
  font-family: var(--font-mono); font-size: 0.64rem; letter-spacing: 0.14em;
  text-transform: uppercase; color: var(--ir-hot);
  background: rgba(4,18,8,0.82); padding: 0.22rem 0.5rem;
  border: 1px solid rgba(111,191,74,0.55);
}
.ir-hud__readout {
  position: absolute; right: 1.35rem; top: 28%;
  width: min(280px, 28vw);
  background: rgba(4,18,8,0.78);
  border: 1px solid var(--forest-line);
  border-left: 3px solid var(--ir);
  padding: 0.95rem 1rem 1.05rem;
  backdrop-filter: blur(6px);
}
.ir-hud__kicker {
  font-family: var(--font-mono); font-size: 0.64rem; letter-spacing: 0.16em;
  text-transform: uppercase; color: var(--ir); margin: 0 0 0.7rem;
}
.ir-hud__readout dl { display: flex; flex-direction: column; gap: 0.55rem; margin: 0; }
.ir-hud__readout dt {
  font-family: var(--font-mono); font-size: 0.6rem; letter-spacing: 0.14em;
  text-transform: uppercase; color: var(--on-dark-faint); margin: 0;
}
.ir-hud__readout dd {
  font-family: var(--font-mono); font-size: 0.86rem; color: var(--on-dark); margin: 0.12rem 0 0;
}

.intel-stage {
  display: grid; grid-template-columns: 1.35fr 1fr; gap: 1.5rem; align-items: stretch;
}
.intel-stage__frame {
  position: relative; min-height: 420px; overflow: hidden;
  border: 1px solid var(--forest-line); background: #050c08;
}
.intel-stage__frame img {
  position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: 70% 45%;
}
.intel-stage__frame .illus-label { position: absolute; top: 0.7rem; left: 0.7rem; z-index: 2; }
.intel-cards { display: flex; flex-direction: column; gap: 1px; background: var(--forest-line); border: 1px solid var(--forest-line); }
.intel-card { background: var(--forest-2); padding: 1.35rem 1.4rem; display: flex; flex-direction: column; gap: 0.4rem; flex: 1; }
.intel-card .n { font-family: var(--font-mono); font-size: 0.68rem; letter-spacing: 0.14em; color: var(--ir); }
.intel-card h3 { font-size: 1.28rem; color: var(--on-dark); margin: 0; }
.intel-card p { font-size: 0.92rem; color: var(--on-dark-muted); margin: 0; }

.versus {
  display: grid; grid-template-columns: 1fr auto 1fr; gap: 1.5rem; align-items: start;
  border-top: 1px solid var(--forest-line); padding-top: 1.75rem;
}
.versus__rule { width: 1px; background: var(--forest-line); align-self: stretch; }
.versus__col ul { list-style: none; display: flex; flex-direction: column; gap: 0.55rem; margin-top: 0.35rem; }
.versus__col li {
  font-family: var(--font-display); font-size: 1.35rem; font-weight: 600; line-height: 1.2;
}
.versus__col--old li { color: var(--on-dark-faint); text-decoration: line-through; text-decoration-color: rgba(143,163,148,0.45); }
.versus__col--new li { color: var(--on-dark); }
.versus__col--new .eyebrow { color: var(--ir); }

.hero-scout { display: none; }

@media (max-width: 960px) {
  .intel-stage { grid-template-columns: 1fr; }
  .intel-stage__frame { min-height: 280px; }
  .versus { grid-template-columns: 1fr; }
  .versus__rule { width: 100%; height: 1px; }
  .ir-hud__readout { display: none; }
  .ir-hud__box { left: 38%; width: 48%; top: 30%; height: 40%; }
}
@media (max-width: 720px) {
  .ir-hero .illus-label { top: 5.2rem; }
  .ir-hud__box { display: none; }
  .home-hero__scrim {
    background: linear-gradient(180deg, rgba(5,12,8,0.72) 0%, rgba(5,12,8,0.18) 32%, rgba(5,12,8,0.94) 100%);
  }
}

.page-hero--woods { background: var(--forest); }
.page-hero--woods h1 { color: var(--on-dark); }
.page-hero--woods .lead { color: var(--on-dark-muted); }
.page-hero--woods .eyebrow { color: var(--gold); }
.page-hero--woods .mono-note { color: var(--on-dark-faint); }

.ranch-caption { font-family: var(--font-mono); font-size: 0.68rem; letter-spacing: 0.08em; text-transform: uppercase; color: var(--muted); }
.bg-sage .ranch-caption { color: var(--forest); }
.bg-forest .ranch-caption { color: var(--on-dark-muted); }
