
  :root{
    --bg-dark:#0F211C;
    --bg-dark-alt:#16302A;
    --cream:#F4EFE4;
    --cream-soft:#C9CDBF;
    --gold:#D9A73B;
    --coral:#E8654A;
    --paper:#F7F5EF;
    --ink:#16211D;
    --ink-soft:#5B6560;
    --line-dark:rgba(244,239,228,0.14);
    --line-light:#E3DFD2;
    --white:#FFFFFF;
  }
  *{box-sizing:border-box;}
  html{scroll-behavior:smooth;}
  body{ margin:0; background:var(--paper); color:var(--ink); font-family:'Inter',sans-serif; line-height:1.55; -webkit-font-smoothing:antialiased; }
  h1,h2,h3{ font-family:'Fraunces',serif; margin:0; letter-spacing:-0.01em; }
  .mono{ font-family:'IBM Plex Mono', monospace; }
  a{ color:inherit; }
  :focus-visible{ outline:2px solid var(--gold); outline-offset:3px; }
  .wrap{ max-width:1140px; margin:0 auto; padding:0 28px; }

  /* DARK SECTIONS */
  .dark{ background:var(--bg-dark); color:var(--cream); }
  .dark h1, .dark h2, .dark h3{ color:var(--cream); }
  .dark p{ color:var(--cream-soft); }
  .dark-alt{ background:var(--bg-dark-alt); }

  header.nav{ width:100%; }
  .nav-inner{ display:flex; align-items:center; justify-content:space-between; padding:24px 28px; }
  .brand{ display:flex; align-items:center; gap:10px; font-family:'Fraunces',serif; font-weight:600; font-size:1.2rem; color:var(--cream); }
  .brand-mark{ width:12px; height:12px; border-radius:50%; background:var(--gold); flex:none; }
  .nav-right{ display:flex; align-items:center; gap:16px; }
  .menu-toggle{
    display:flex; flex-direction:column; justify-content:center; gap:5px;
    width:30px; height:30px; background:none; border:none; cursor:pointer; padding:0; flex:none;
  }
  .menu-toggle span{ display:block; width:100%; height:2px; background:var(--cream); border-radius:2px; }
  .menu-backdrop{
    display:none; position:fixed; inset:0; background:rgba(15,33,28,0.6); z-index:998;
    opacity:0; transition:opacity 0.25s ease;
  }
  .menu-backdrop.open{ display:block; opacity:1; }
  .mobile-menu{
    display:flex; flex-direction:column; position:fixed; top:0; right:0; height:100vh;
    width:min(78vw, 300px); background:var(--bg-dark-alt); border-left:1px solid var(--line-dark);
    padding-top:90px; z-index:999; transform:translateX(100%); transition:transform 0.3s ease;
    pointer-events:none; box-shadow:-24px 0 60px -24px rgba(0,0,0,0.5);
  }
  .mobile-menu.open{ transform:translateX(0); pointer-events:auto; }
  .mobile-menu a{
    padding:16px 28px; color:var(--cream); text-decoration:none; font-size:1rem;
    font-family:'Inter',sans-serif; border-bottom:1px solid var(--line-dark);
  }
  .mobile-menu a:hover{ color:var(--gold); }
  .menu-close{
    position:absolute; top:26px; right:26px; width:30px; height:30px; padding:0;
    background:none; border:none; cursor:pointer;
  }
  .menu-close span{
    position:absolute; top:50%; left:50%; width:20px; height:2px; background:var(--cream);
  }
  .menu-close span:first-child{ transform:translate(-50%,-50%) rotate(45deg); }
  .menu-close span:last-child{ transform:translate(-50%,-50%) rotate(-45deg); }
  .nav-cta{ font-size:0.86rem; font-weight:600; padding:10px 20px; border-radius:999px; background:var(--coral); color:#fff; text-decoration:none; }

  @media (max-width: 860px){
    .nav-inner .nav-cta{ display:none; }
  }

  .hero{ padding:85px 0; }
  .hero-grid{ display:grid; grid-template-columns:1.05fr 0.95fr; gap:60px; align-items:center; }
  .eyebrow{
    display:inline-flex; align-items:center; gap:8px; font-family:'IBM Plex Mono',monospace;
    font-size:0.75rem; letter-spacing:0.08em; text-transform:uppercase; color:var(--gold);
    border:1px solid rgba(217,167,59,0.4); padding:6px 12px; border-radius:999px; margin-bottom:26px;
    text-align:center;
  }
  .hero h1{ font-size:clamp(2.3rem, 4.4vw, 3.5rem); font-weight:600; line-height:1.08; }
  .hero h1 em{ font-style:italic; color:var(--gold); }
  .hero p.sub{ margin-top:22px; font-size:1.14rem; max-width:46ch; }
  .hero-form{ margin-top:32px; display:flex; gap:10px; max-width:460px; flex-wrap:wrap; }
  .hero-form input{
    flex:1 1 220px; min-width:0; padding:14px 16px; border-radius:10px; border:1.5px solid rgba(244,239,228,0.22);
    font-size:0.98rem; font-family:'Inter',sans-serif; background:rgba(244,239,228,0.06); color:var(--cream);
  }
  .hero-form input::placeholder{ color:var(--cream-soft); }
  .hero-form input:focus{ border-color:var(--gold); background:rgba(244,239,228,0.1); }
  .btn{
    padding:14px 24px; border-radius:10px; border:none; cursor:pointer; font-family:'Inter',sans-serif;
    font-weight:600; font-size:0.98rem; background:var(--coral); color:#fff; white-space:nowrap;
    transition:transform .12s ease, background .12s ease;
  }
  .btn:hover{ background:#D2543C; transform:translateY(-1px); }
  .hero-note{ margin-top:14px; font-size:0.82rem; color:var(--cream-soft); }

  /* SIGNATURE: floating gauge card */
  .gauge-card{
    background:var(--bg-dark-alt); color:var(--cream); border-radius:20px; padding:32px 30px;
    border:1px solid var(--line-dark);
    box-shadow:0 40px 80px -30px rgba(0,0,0,0.6);
  }
  .gauge-label{ font-family:'IBM Plex Mono',monospace; font-size:0.72rem; text-transform:uppercase; letter-spacing:0.08em; color:var(--cream-soft); margin-bottom:18px; }
  .gauge-wrap{ display:flex; flex-direction:column; align-items:center; }
  .gauge-num{ font-family:'Fraunces',serif; font-size:3rem; font-weight:600; margin-top:-72px; color:var(--cream); }
  .gauge-num .of5{ font-size:1.2rem; color:var(--cream-soft); font-weight:500; }
  .gauge-caption{ text-align:center; font-size:0.86rem; color:var(--cream-soft); margin-top:6px; max-width:26ch; }
  .gauge-footnote{ text-align:center; font-size:0.72rem; color:var(--cream-soft); margin-top:14px; font-family:'IBM Plex Mono',monospace; opacity:0.8; }
  .arc-bg{ stroke:var(--line-dark); }
  .arc-fill{
    stroke:var(--gold); stroke-linecap:round; fill:none;
    stroke-dasharray:326; stroke-dashoffset:326;
    animation:fillArc 1.8s 0.3s cubic-bezier(.2,.8,.2,1) forwards;
  }
  @keyframes fillArc{ to{ stroke-dashoffset:52; } }
  @media (prefers-reduced-motion: reduce){ .arc-fill{ animation:none; stroke-dashoffset:52; } }

  section{ padding:76px 0; }
  .light-sec{ border-top:1px solid var(--line-light); }
  .dark-sec{ border-top:1px solid var(--line-dark); }
  .section-head{ max-width:600px; margin-bottom:46px; }
  .section-head .eyebrow{ margin-bottom:16px; color:var(--coral); border-color:rgba(232,101,74,0.35); }
  .dark .section-head .eyebrow{ color:var(--gold); border-color:rgba(217,167,59,0.4); }
  .section-head h2{ font-size:clamp(1.7rem,2.8vw,2.3rem); font-weight:600; }
  .section-head p{ margin-top:14px; font-size:1.02rem; }
  .light-sec .section-head p{ color:var(--ink-soft); }

  /* HORIZONTAL TIMELINE */
  .timeline{ position:relative; display:grid; grid-template-columns:repeat(3,1fr); gap:34px; }
  .timeline::before{
    content:""; position:absolute; top:17px; left:5%; right:5%; height:2px;
    background-image:linear-gradient(to right, var(--ink-soft) 40%, transparent 40%);
    background-size:12px 2px; background-repeat:repeat-x; opacity:0.35;
  }
  .tl-item{ position:relative; }
  .tl-dot{
    width:36px; height:36px; border-radius:50%; background:var(--paper); border:2px solid var(--coral);
    display:flex; align-items:center; justify-content:center; font-family:'IBM Plex Mono',monospace;
    font-weight:600; color:var(--coral); margin-bottom:20px; position:relative; z-index:1;
  }
  .tl-item h3{ font-family:'Inter',sans-serif; font-size:1.06rem; font-weight:600; margin-bottom:9px; }
  .tl-item p{ color:var(--ink-soft); font-size:0.94rem; margin:0; }

  /* SERVICES */
  .services{ display:grid; grid-template-columns:1fr 1fr; gap:24px; }
  .service-card{
    background:rgba(244,239,228,0.04); border:1px solid var(--line-dark); border-radius:18px; padding:34px;
  }
  .service-card .tag{ font-family:'IBM Plex Mono',monospace; font-size:0.72rem; text-transform:uppercase; letter-spacing:0.07em; color:var(--gold); }
  .service-card h3{ font-size:1.5rem; margin:16px 0 12px; font-weight:600; }
  .service-card p{ font-size:0.96rem; margin:0 0 18px; }
  .service-card ul{ margin:0; padding-left:18px; font-size:0.92rem; color:var(--cream-soft); }
  .service-card li{ margin-bottom:7px; }

  /* PRICING */
  .pricing-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:24px; align-items:stretch; }
  .pricing-card{
    background:rgba(244,239,228,0.04); border:1px solid var(--line-dark); border-radius:18px; padding:34px;
    display:flex; flex-direction:column;
  }
  .pricing-card.featured{ border-color:var(--gold); background:rgba(217,167,59,0.07); }
  .pricing-card .tag{ font-family:'IBM Plex Mono',monospace; font-size:0.72rem; text-transform:uppercase; letter-spacing:0.07em; color:var(--gold); }
  .pricing-card h3{ font-size:1.3rem; margin:16px 0 2px; font-weight:600; }
  .pricing-card .price{ font-family:'Fraunces',serif; font-size:2.4rem; font-weight:600; color:var(--cream); margin:14px 0 2px; line-height:1; }
  .pricing-card .price .unit{ font-size:0.95rem; color:var(--cream-soft); font-weight:500; font-family:'Inter',sans-serif; }
  .pricing-card .price-note{ font-size:0.82rem; color:var(--cream-soft); margin-bottom:18px; font-family:'IBM Plex Mono',monospace; }
  .pricing-card .desc{ font-size:0.94rem; color:var(--cream-soft); margin:0 0 20px; }
  .pricing-card ul{ margin:0 0 26px; padding-left:18px; font-size:0.92rem; color:var(--cream-soft); flex:1; }
  .pricing-card li{ margin-bottom:7px; }
  .pricing-card .btn{ align-self:flex-start; text-decoration:none; display:inline-block; }

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

  /* COMPLIANCE - outlined card on light bg */
  .compliance{
    border:1.5px solid var(--line-light); border-radius:18px; padding:38px 40px;
    display:grid; grid-template-columns:auto 1fr; gap:26px; align-items:center;
  }
  .compliance .mark{ font-size:1.8rem; color:var(--coral); }
  .compliance h3{ font-size:1.12rem; margin-bottom:8px; font-family:'Inter',sans-serif; font-weight:600; color:var(--ink); }
  .compliance p{ margin:0; font-size:0.93rem; color:var(--ink-soft); }

  .final{ text-align:center; padding:100px 0; }
  .final h2{ font-size:clamp(2rem,3.6vw,2.8rem); max-width:18ch; margin:0 auto 20px; }
  .final p{ max-width:44ch; margin:0 auto 30px; }
  .final .hero-form{ margin:0 auto; justify-content:center; }

  footer{ background:var(--bg-dark); border-top:1px solid var(--line-dark); padding:30px 0; }
  .foot-row{ display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:12px; }
  .foot-row p{ margin:0; font-size:0.84rem; color:var(--cream-soft); }
  .foot-links{ display:flex; gap:18px; font-size:0.84rem; color:var(--cream-soft); }
  .foot-links a{ text-decoration:none; }
  .foot-links a:hover{ color:var(--cream); }

  .success-msg{ display:none; margin-top:14px; font-size:0.9rem; color:var(--gold); font-family:'IBM Plex Mono',monospace; }
  .success-msg.show{ display:block; }
  .hp-field{ position:absolute; left:-9999px; top:-9999px; }

  @media (max-width: 860px){
    .hero-grid{ grid-template-columns:1fr; }
    .gauge-card{ order:-1; margin-bottom:6px; }
    .timeline{ grid-template-columns:1fr; }
    .timeline::before{ display:none; }
    .services{ grid-template-columns:1fr; }
    .compliance{ grid-template-columns:1fr; text-align:left; }
  }

  /* PAGE HEADER (privacy / terms) */
  .page-hero{ padding:85px 0 8px; }
  .page-hero .eyebrow{ color:var(--coral); border-color:rgba(232,101,74,0.35); }
  .page-hero h1{ font-size:clamp(2rem,4vw,2.6rem); font-weight:600; }
  .page-hero .updated{ margin-top:14px; font-size:0.86rem; color:var(--ink-soft); font-family:'IBM Plex Mono',monospace; }

  /* LEGAL BODY COPY */
  .legal-body{ max-width:720px; padding:24px 28px 77px; }
  .legal-body h2{ font-size:1.28rem; font-weight:600; margin:44px 0 14px; color:var(--ink); font-family:'Fraunces',serif; }
  .legal-body h2:first-child{ margin-top:0; }
  .legal-body p{ color:var(--ink-soft); font-size:0.98rem; margin:0 0 16px; }
  .legal-body ul{ color:var(--ink-soft); font-size:0.98rem; margin:0 0 16px; padding-left:20px; }
  .legal-body li{ margin-bottom:8px; }
  .legal-body a{ color:var(--coral); text-decoration:underline; }
  .legal-body strong{ color:var(--ink); }

  /* CONTACT PAGE */
  .contact-hero{ padding:85px 0; }
  .contact-grid{ display:grid; grid-template-columns:1.05fr 0.95fr; gap:60px; align-items:start; }
  .contact-info h3{ font-family:'Inter',sans-serif; font-size:0.98rem; font-weight:600; color:var(--cream); margin:32px 0 6px; }
  .contact-info h3:first-of-type{ margin-top:36px; }
  .contact-info p{ margin:0 0 6px; }
  .contact-info a{ color:var(--gold); text-decoration:none; }
  .contact-info a:hover{ text-decoration:underline; }
  .contact-form{ display:flex; flex-direction:column; gap:14px; }
  .contact-form input, .contact-form textarea{
    width:100%; padding:14px 16px; border-radius:10px; border:1.5px solid rgba(244,239,228,0.22);
    font-size:0.98rem; font-family:'Inter',sans-serif; background:rgba(244,239,228,0.06); color:var(--cream);
  }
  .contact-form textarea{ resize:vertical; min-height:130px; }
  .contact-form input::placeholder, .contact-form textarea::placeholder{ color:var(--cream-soft); }
  .contact-form input:focus, .contact-form textarea:focus{ border-color:var(--gold); background:rgba(244,239,228,0.1); outline:none; }
  .contact-form .btn{ align-self:flex-start; }

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