    :root {
      --primary:      #c2410c;
      --primary-dk:   #9a3412;
      --primary-lt:   #fff7ed;
      --primary-faint:#ffedd5;
      --primary-mid:  #ea580c;
      --bg:           #f5f5f4;
      --panel:        #ffffff;
      --ink:          #1c1917;
      --muted:        #78716c;
      --line:         #e7e5e4;
      --good:         #16a34a;
      --warn:         #b45309;
      --shadow:       0 2px 12px rgba(100,40,0,.08);
      --shadow-lg:    0 8px 24px rgba(100,40,0,.13);
      --r:            12px;
      --r-sm:         8px;
    }

    * { box-sizing: border-box; margin: 0; padding: 0; }

    body {
      font-family: "Space Grotesk", "Segoe UI", sans-serif;
      color: var(--ink);
      background: var(--bg);
      min-height: 100vh;
    }

    /* ── Topbar ── */
    .topbar {
      background: linear-gradient(135deg, #3d1002 0%, #7c2d12 55%, #c2410c 100%);
      color: #fff;
      height: 54px;
      padding: 0 24px;
      display: flex;
      align-items: center;
      justify-content: space-between;
      position: sticky;
      top: 0;
      z-index: 200;
      box-shadow: 0 2px 16px rgba(120,50,0,.28);
    }

    .topbar-brand {
      display: flex;
      align-items: center;
      gap: 9px;
      font-size: 17px;
      font-weight: 800;
      letter-spacing: -.2px;
      color: #fff;
      text-decoration: none;
    }

    .topbar-brand:hover { color: #fff; text-decoration: none; }

    .topbar-icon { font-size: 22px; }

    .topbar-link {
      background: rgba(255,255,255,.15);
      border: 1px solid rgba(255,255,255,.3);
      border-radius: 999px;
      padding: 6px 16px;
      color: #fff;
      font-size: .82rem;
      font-weight: 700;
      text-decoration: none;
      display: inline-flex;
      align-items: center;
      gap: 6px;
      transition: background .15s;
    }

    .topbar-link:hover { background: rgba(255,255,255,.28); }

    /* ── Hero ── */
    .hero {
      background: linear-gradient(155deg, #3d1002 0%, #7c2d12 45%, #c2410c 100%);
      color: #fff;
      padding: 68px 24px 60px;
      text-align: center;
    }

    .hero-icon {
      font-size: 64px;
      margin-bottom: 18px;
      display: block;
      filter: drop-shadow(0 4px 14px rgba(0,0,0,.35));
    }

    .hero h1 {
      font-size: clamp(2rem, 5vw, 3rem);
      font-weight: 800;
      letter-spacing: -.5px;
      line-height: 1.1;
      margin-bottom: 14px;
    }

    .hero p {
      font-size: 1.05rem;
      opacity: .88;
      max-width: 58ch;
      margin: 0 auto 28px;
      line-height: 1.65;
    }

    .btn-hero {
      display: inline-flex;
      align-items: center;
      gap: 9px;
      background: #fff;
      color: var(--primary-dk);
      font-family: inherit;
      font-size: 1rem;
      font-weight: 800;
      padding: 13px 28px;
      border-radius: 999px;
      text-decoration: none;
      box-shadow: 0 6px 24px rgba(0,0,0,.22);
      transition: transform .15s, box-shadow .15s;
      border: 0;
      cursor: pointer;
    }

    .btn-hero:hover {
      transform: translateY(-2px);
      box-shadow: 0 10px 32px rgba(0,0,0,.28);
    }

    .btn-hero i { font-size: 1.1rem; }

    /* ── Wrapper ── */
    .wrap { max-width: 1060px; margin: 0 auto; padding: 44px 20px 60px; }

    /* ── Section heading ── */
    .section-heading {
      display: flex;
      align-items: center;
      gap: 10px;
      margin-bottom: 22px;
    }

    .section-heading h2 {
      font-size: 1.35rem;
      font-weight: 800;
      color: var(--primary-dk);
    }

    .section-heading .sh-icon {
      width: 38px;
      height: 38px;
      border-radius: 10px;
      background: var(--primary-faint);
      color: var(--primary);
      display: flex;
      align-items: center;
      justify-content: center;
      font-size: 18px;
      flex-shrink: 0;
    }

    /* ── Feature grid ── */
    .feat-grid {
      display: grid;
      grid-template-columns: repeat(auto-fit, minmax(265px, 1fr));
      gap: 16px;
      margin-bottom: 44px;
    }

    .feat-card {
      background: var(--panel);
      border: 1px solid var(--line);
      border-radius: var(--r);
      box-shadow: var(--shadow);
      padding: 20px 18px;
      display: flex;
      gap: 14px;
    }

    .feat-card-icon {
      width: 46px;
      height: 46px;
      border-radius: 12px;
      background: var(--primary-faint);
      color: var(--primary);
      display: flex;
      align-items: center;
      justify-content: center;
      font-size: 22px;
      flex-shrink: 0;
    }

    .feat-card-icon.green  { background: #f0fdf4; color: #16a34a; }
    .feat-card-icon.blue   { background: #eff6ff; color: #2563eb; }
    .feat-card-icon.amber  { background: #fefce8; color: #b45309; }
    .feat-card-icon.violet { background: #f5f3ff; color: #7c3aed; }
    .feat-card-icon.rose   { background: #fff1f2; color: #be123c; }
    .feat-card-icon.teal   { background: #f0fdfa; color: #0f766e; }

    .feat-card h3 {
      font-size: .95rem;
      font-weight: 800;
      margin-bottom: 5px;
      color: var(--ink);
    }

    .feat-card p {
      font-size: .84rem;
      color: var(--muted);
      line-height: 1.55;
    }

    /* ── How it works ── */
    .steps {
      background: var(--panel);
      border: 1px solid var(--line);
      border-radius: var(--r);
      box-shadow: var(--shadow);
      padding: 24px 22px;
      margin-bottom: 44px;
    }

    .step-list { list-style: none; display: grid; gap: 16px; }

    .step-item {
      display: flex;
      gap: 14px;
      align-items: flex-start;
    }

    .step-num {
      width: 34px;
      height: 34px;
      border-radius: 50%;
      background: linear-gradient(135deg, var(--primary-mid), var(--primary-dk));
      color: #fff;
      font-size: .82rem;
      font-weight: 800;
      display: flex;
      align-items: center;
      justify-content: center;
      flex-shrink: 0;
      box-shadow: 0 3px 10px rgba(194,65,12,.3);
    }

    .step-content h4 {
      font-size: .93rem;
      font-weight: 800;
      margin-bottom: 3px;
    }

    .step-content p {
      font-size: .82rem;
      color: var(--muted);
      line-height: 1.55;
    }

    /* ── Tech stack ── */
    .tech-grid {
      display: grid;
      grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
      gap: 12px;
      margin-bottom: 44px;
    }

    .tech-card {
      background: var(--panel);
      border: 1px solid var(--line);
      border-left: 3px solid var(--primary);
      border-radius: var(--r-sm);
      box-shadow: var(--shadow);
      padding: 14px 14px;
      display: flex;
      align-items: center;
      gap: 12px;
    }

    .tech-card i { font-size: 22px; color: var(--primary); flex-shrink: 0; }
    .tech-card .tc-label { font-size: .8rem; color: var(--muted); margin-bottom: 2px; font-weight: 600; }
    .tech-card .tc-val   { font-size: .93rem; font-weight: 800; }

    /* ── Detailed budget explainer ── */
    .budget-explainer {
      margin-bottom: 44px;
    }

    .be-grid {
      display: grid;
      grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
      gap: 12px;
    }

    .be-card {
      background: var(--panel);
      border: 1px solid var(--line);
      border-radius: var(--r);
      box-shadow: var(--shadow);
      padding: 16px;
    }

    .be-card h3 {
      font-size: .98rem;
      color: var(--primary-dk);
      display: flex;
      align-items: center;
      gap: 8px;
      margin-bottom: 8px;
    }

    .be-card p {
      font-size: .86rem;
      line-height: 1.6;
      color: var(--muted);
      margin-bottom: 8px;
    }

    .be-card ul {
      margin-left: 16px;
      display: grid;
      gap: 6px;
      color: var(--ink);
      font-size: .83rem;
      line-height: 1.55;
    }

    /* ── Support ── */
    .support-grid {
      display: grid;
      grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
      gap: 12px;
      margin-bottom: 44px;
    }

    .support-card {
      background: var(--panel);
      border: 1px solid var(--line);
      border-radius: var(--r);
      box-shadow: var(--shadow);
      padding: 18px 16px;
    }

    .support-card h3 {
      font-size: 1rem;
      color: var(--primary-dk);
      margin-bottom: 8px;
      display: flex;
      align-items: center;
      gap: 8px;
    }

    .support-card p,
    .support-card li {
      font-size: .86rem;
      color: var(--muted);
      line-height: 1.6;
    }

    .support-card ul {
      margin-left: 17px;
      display: grid;
      gap: 6px;
    }

    .btn-support {
      margin-top: 12px;
      display: inline-flex;
      align-items: center;
      gap: 8px;
      text-decoration: none;
      font-weight: 800;
      font-size: .87rem;
      color: #fff;
      background: linear-gradient(135deg, #ea580c, #9a3412);
      padding: 10px 16px;
      border-radius: 999px;
      box-shadow: 0 6px 18px rgba(154,52,18,.28);
    }

    /* ── Contact form ── */
    .contact-wrap {
      background: var(--panel);
      border: 1px solid var(--line);
      border-radius: var(--r);
      box-shadow: var(--shadow);
      padding: 20px 18px;
      margin-bottom: 44px;
    }

    .contact-wrap > p {
      font-size: .88rem;
      color: var(--muted);
      margin-bottom: 12px;
    }

    .contact-status {
      padding: 9px 12px;
      border-radius: 10px;
      font-size: .84rem;
      font-weight: 700;
      margin-bottom: 12px;
      border: 1px solid transparent;
    }

    .contact-status.ok {
      background: #f0fdf4;
      color: #166534;
      border-color: #86efac;
    }

    .contact-status.bad {
      background: #fef2f2;
      color: #991b1b;
      border-color: #fca5a5;
    }

    .contact-form {
      display: grid;
      gap: 10px;
    }

    .form-row {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 10px;
    }

    .field {
      display: grid;
      gap: 5px;
    }

    .field label {
      font-size: .78rem;
      color: var(--muted);
      font-weight: 700;
      text-transform: uppercase;
      letter-spacing: .3px;
    }

    .field input,
    .field textarea {
      width: 100%;
      border: 1px solid #d6d3d1;
      border-radius: 10px;
      font: inherit;
      font-size: .9rem;
      color: var(--ink);
      background: #fff;
      padding: 10px 11px;
      outline: none;
      transition: border-color .15s, box-shadow .15s;
    }

    .field input:focus,
    .field textarea:focus {
      border-color: #fb923c;
      box-shadow: 0 0 0 3px rgba(251,146,60,.18);
    }

    .field textarea {
      resize: vertical;
      min-height: 130px;
    }

    .contact-actions {
      margin-top: 4px;
    }

    /* ── DB schema ── */
    .schema-grid {
      display: grid;
      grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
      gap: 12px;
      margin-bottom: 44px;
    }

    .schema-card {
      background: var(--panel);
      border: 1px solid var(--line);
      border-radius: var(--r);
      box-shadow: var(--shadow);
      overflow: hidden;
    }

    .schema-head {
      background: var(--primary-lt);
      border-bottom: 1px solid #fde0c0;
      padding: 9px 13px;
      display: flex;
      align-items: center;
      gap: 8px;
      font-weight: 800;
      font-size: .88rem;
      color: var(--primary-dk);
    }

    .schema-head i { font-size: 15px; }

    .schema-body { padding: 10px 13px; }

    .schema-field {
      font-size: .8rem;
      padding: 4px 0;
      border-bottom: 1px solid #f0ede9;
      color: var(--muted);
      display: flex;
      gap: 6px;
    }

    .schema-field:last-child { border-bottom: 0; }
    .schema-field code { color: var(--ink); font-weight: 700; font-size: .78rem; }

    /* ── API reference ── */
    .api-list { display: grid; gap: 10px; margin-bottom: 44px; }

    .api-row {
      background: var(--panel);
      border: 1px solid var(--line);
      border-radius: var(--r-sm);
      box-shadow: var(--shadow);
      padding: 12px 14px;
      display: flex;
      align-items: flex-start;
      gap: 12px;
      flex-wrap: wrap;
    }

    .api-method {
      font-size: .72rem;
      font-weight: 800;
      padding: 3px 9px;
      border-radius: 999px;
      white-space: nowrap;
      flex-shrink: 0;
      margin-top: 2px;
    }

    .get  { background: #dbeafe; color: #1d4ed8; }
    .post { background: #dcfce7; color: #15803d; }

    .api-action {
      font-family: monospace;
      font-size: .88rem;
      font-weight: 700;
      color: var(--primary-dk);
      white-space: nowrap;
      flex-shrink: 0;
    }

    .api-desc {
      font-size: .83rem;
      color: var(--muted);
      line-height: 1.5;
      flex: 1 1 200px;
    }

    /* ── CTA ── */
    .cta {
      background: linear-gradient(135deg, #3d1002 0%, #7c2d12 55%, #c2410c 100%);
      border-radius: 16px;
      padding: 40px 28px;
      text-align: center;
      color: #fff;
      box-shadow: var(--shadow-lg);
    }

    .cta h2 { font-size: 1.6rem; font-weight: 800; margin-bottom: 10px; }
    .cta p  { opacity: .88; font-size: .95rem; margin-bottom: 22px; max-width: 50ch; margin-left: auto; margin-right: auto; }

    /* ── Topbar nav ── */
    .topbar-nav {
      display: flex;
      align-items: center;
      gap: 2px;
    }
    .topbar-nav-link {
      color: rgba(255,255,255,.82);
      font-size: .78rem;
      font-weight: 700;
      text-decoration: none;
      padding: 5px 11px;
      border-radius: 999px;
      transition: background .15s, color .15s;
    }
    .topbar-nav-link:hover {
      background: rgba(255,255,255,.18);
      color: #fff;
    }

    /* ── Hero badge + dual CTAs ── */
    .hero-badge {
      display: inline-flex;
      align-items: center;
      gap: 6px;
      background: rgba(255,255,255,.15);
      border: 1px solid rgba(255,255,255,.3);
      border-radius: 999px;
      padding: 5px 14px;
      font-size: .78rem;
      font-weight: 700;
      margin-bottom: 20px;
      color: rgba(255,255,255,.92);
    }

    .hero-actions {
      display: flex;
      align-items: center;
      justify-content: center;
      gap: 12px;
      flex-wrap: wrap;
    }

    .btn-hero-outline {
      display: inline-flex;
      align-items: center;
      gap: 9px;
      background: transparent;
      color: #fff;
      font-family: inherit;
      font-size: 1rem;
      font-weight: 800;
      padding: 13px 26px;
      border-radius: 999px;
      text-decoration: none;
      border: 2px solid rgba(255,255,255,.55);
      transition: background .15s, border-color .15s;
    }
    .btn-hero-outline:hover {
      background: rgba(255,255,255,.12);
      border-color: rgba(255,255,255,.85);
    }

    /* ── Stats strip ── */
    .stats-strip {
      background: #fff;
      border-top: 1px solid var(--line);
      border-bottom: 1px solid var(--line);
      display: flex;
      align-items: center;
      justify-content: center;
      flex-wrap: wrap;
    }
    .stat-item {
      display: flex;
      align-items: center;
      gap: 8px;
      padding: 14px 20px;
    }
    .stat-icon {
      font-size: 19px;
      color: var(--primary);
    }
    .stat-label {
      font-size: .83rem;
      font-weight: 700;
      color: var(--ink);
      white-space: nowrap;
    }
    .stat-divider {
      width: 1px;
      height: 28px;
      background: var(--line);
      flex-shrink: 0;
    }

    /* ── Household intro / admin intro ── */
    .household-intro,
    .admin-intro {
      background: var(--primary-lt);
      border: 1px solid #fde0c0;
      border-radius: var(--r-sm);
      padding: 14px 18px;
      font-size: .9rem;
      color: var(--ink);
      line-height: 1.65;
      margin-bottom: 18px;
    }
    .admin-intro code {
      background: var(--primary-faint);
      color: var(--primary-dk);
      border-radius: 5px;
      padding: 1px 5px;
      font-size: .85rem;
    }

    /* ── Requirements grid ── */
    .requirements-grid {
      display: grid;
      grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
      gap: 12px;
      margin-bottom: 44px;
    }
    .req-card {
      background: var(--panel);
      border: 1px solid var(--line);
      border-radius: var(--r);
      box-shadow: var(--shadow);
      padding: 16px;
      display: flex;
      gap: 14px;
      align-items: flex-start;
    }
    .req-icon {
      width: 44px;
      height: 44px;
      border-radius: 12px;
      background: var(--primary-faint);
      color: var(--primary);
      display: flex;
      align-items: center;
      justify-content: center;
      font-size: 20px;
      flex-shrink: 0;
    }
    .req-body h4 {
      font-size: .9rem;
      font-weight: 800;
      margin-bottom: 4px;
      color: var(--ink);
    }
    .req-body p {
      font-size: .82rem;
      color: var(--muted);
      line-height: 1.55;
    }
    .req-body code {
      background: var(--primary-faint);
      color: var(--primary-dk);
      border-radius: 5px;
      padding: 1px 5px;
      font-size: .8rem;
    }
    .be-card code {
      background: var(--primary-faint);
      color: var(--primary-dk);
      border-radius: 5px;
      padding: 1px 5px;
      font-size: .78rem;
    }

    /* Screenshots */
    .screenshots-grid {
      display: grid;
      grid-template-columns: repeat(2, 1fr);
      gap: 28px;
      margin-bottom: 44px;
    }
    .screenshot-card {
      margin: 0;
      background: var(--card-bg);
      border: 1px solid var(--border);
      border-radius: 18px;
      overflow: hidden;
      box-shadow: 0 2px 12px rgba(0,0,0,.06);
      display: flex;
      flex-direction: column;
    }
    .screenshot-card img {
      width: 100%;
      height: auto;
      display: block;
      border-bottom: 1px solid var(--border);
    }
    .zoomable-image {
      cursor: zoom-in;
      transition: transform .2s ease, filter .2s ease;
    }
    .zoomable-image:hover,
    .zoomable-image:focus-visible {
      transform: scale(1.015);
      filter: brightness(1.02);
      outline: none;
    }
    .screenshot-card figcaption {
      padding: 18px 20px 20px;
    }
    .screenshot-card figcaption h3 {
      font-size: 1rem;
      font-weight: 600;
      margin: 0 0 8px;
      color: var(--text);
      display: flex;
      align-items: center;
      gap: 7px;
    }
    .screenshot-card figcaption h3 i {
      color: var(--primary);
    }
    .screenshot-card figcaption p {
      font-size: .88rem;
      color: var(--muted);
      line-height: 1.6;
      margin: 0;
    }

    .lightbox-open {
      overflow: hidden;
    }
    .image-lightbox {
      position: fixed;
      inset: 0;
      background: rgba(0,0,0,.82);
      display: flex;
      align-items: center;
      justify-content: center;
      padding: 22px;
      opacity: 0;
      visibility: hidden;
      pointer-events: none;
      transition: opacity .22s ease, visibility .22s ease;
      z-index: 9999;
    }
    .image-lightbox.is-open {
      opacity: 1;
      visibility: visible;
      pointer-events: auto;
    }
    .image-lightbox img {
      max-width: min(1200px, 95vw);
      max-height: 90vh;
      width: auto;
      height: auto;
      border-radius: 12px;
      box-shadow: 0 12px 50px rgba(0,0,0,.5);
    }
    .lightbox-close {
      position: absolute;
      top: 14px;
      right: 14px;
      width: 44px;
      height: 44px;
      border-radius: 999px;
      border: 1px solid rgba(255,255,255,.35);
      background: rgba(0,0,0,.38);
      color: #fff;
      display: inline-flex;
      align-items: center;
      justify-content: center;
      font-size: 1rem;
      cursor: pointer;
    }
    .lightbox-close:hover,
    .lightbox-close:focus-visible {
      background: rgba(0,0,0,.6);
      border-color: rgba(255,255,255,.55);
      outline: none;
    }

    @media (max-width: 860px) {
      .screenshots-grid { grid-template-columns: 1fr; }
    }

    @media (max-width: 640px) {
      .hero { padding: 44px 18px 40px; }
      .hero h1 { font-size: 1.7rem; }
      .wrap { padding: 28px 14px 44px; }
      .form-row { grid-template-columns: 1fr; }
      .topbar-nav { display: none; }
      .stat-divider { display: none; }
      .stat-item { padding: 10px 12px; }
      .stat-label { font-size: .78rem; }
    }
