/* Layout concept: no divider lines between sections - rhythm comes from
   alternating soft background bands, generous consistent spacing, and one
   repeated card/shadow language throughout. Interactivity lives in three
   places: a looping live-demo widget in the hero, a clickable process
   stepper, and a before/after toggle with animated counting. */
:root{
  --bg:#F7F8FA;
  --band:#FFFFFF;
  --band-tint:#F1F6F4;
  --surface:#FFFFFF;
  --ink:#14181F;
  --ink-soft:#5B6472;
  --accent:#0E7C66;
  --accent-ink:#FFFFFF;
  --accent-soft:rgba(14,124,102,.10);
  --good:#0E7C66;
  --bad:#B3261E;
  --line:rgba(20,24,31,.09);
  --shadow:0 1px 2px rgba(20,24,31,.05), 0 14px 32px -16px rgba(20,24,31,.16);
  color-scheme:light;

  --font-display:'Fraunces',Georgia,serif;
  --font-body:'Manrope',system-ui,-apple-system,sans-serif;
  --font-mono:'IBM Plex Mono',ui-monospace,monospace;
}
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]){
    --bg:#0B0E13; --band:#0F131A; --band-tint:#0E1714;
    --surface:#141922; --ink:#F3F5F7; --ink-soft:#9AA4B2;
    --accent:#2DD4A8; --accent-ink:#06211A; --accent-soft:rgba(45,212,168,.14);
    --good:#2DD4A8; --bad:#FF8A7A;
    --line:rgba(243,245,247,.10);
    --shadow:0 1px 2px rgba(0,0,0,.4), 0 16px 34px -16px rgba(0,0,0,.6);
    color-scheme:dark;
  }
}
:root[data-theme="dark"]{
  --bg:#0B0E13; --band:#0F131A; --band-tint:#0E1714;
  --surface:#141922; --ink:#F3F5F7; --ink-soft:#9AA4B2;
  --accent:#2DD4A8; --accent-ink:#06211A; --accent-soft:rgba(45,212,168,.14);
  --good:#2DD4A8; --bad:#FF8A7A;
  --line:rgba(243,245,247,.10);
  --shadow:0 1px 2px rgba(0,0,0,.4), 0 16px 34px -16px rgba(0,0,0,.6);
  color-scheme:dark;
}

/* hero stays a fixed dark band in both themes, by design */
:root{ --hero-bg:#0B1118; --hero-ink:#F7F8FA; --hero-soft:#9CA7B5; --hero-accent:#2DD4A8; }

*{box-sizing:border-box;}
html,body{margin:0;}
body{background:var(--bg);color:var(--ink);font-family:var(--font-body);line-height:1.55;-webkit-font-smoothing:antialiased;}
h1,h2,h3{font-family:var(--font-display);font-weight:600;letter-spacing:.1px;text-wrap:balance;margin:0;}
p{margin:0;}
img{max-width:100%;}
a{color:inherit;}
button{font:inherit;}
.mono{font-family:var(--font-mono);font-variant-numeric:tabular-nums;}
.wrap{max-width:1120px;margin:0 auto;padding-inline:24px;}
.band{padding-block:clamp(64px,9vw,104px);}
.band-tint{background:var(--band-tint);}
[id]{scroll-margin-top:84px;}
html{scroll-behavior:smooth;}
@media (prefers-reduced-motion: reduce){ *{animation-duration:.001ms !important; transition-duration:.001ms !important;} html{scroll-behavior:auto;} }

/* reveal-on-scroll */
.reveal{opacity:1; transform:none;}
.reveal.js-armed{opacity:0; transform:translateY(14px); transition:opacity .6s ease, transform .6s ease;}
.reveal.js-armed.in{opacity:1; transform:translateY(0);}

/* header */
header.site{
  position:sticky;top:0;z-index:40;
  background:rgba(247,248,250,.86);
  backdrop-filter:blur(10px);
}
@media (prefers-color-scheme: dark){ header.site{ background:rgba(11,14,19,.82); } }
:root[data-theme="dark"] header.site{ background:rgba(11,14,19,.82); }
.nav{display:flex;align-items:center;justify-content:space-between;gap:16px;padding-block:16px;}
.brand{display:flex;align-items:center;gap:9px;font-family:var(--font-display);font-weight:700;font-size:21px;text-decoration:none;}
.brand .dot{width:9px;height:9px;border-radius:50%;background:var(--accent);}
.navlinks{display:flex;align-items:center;gap:30px;font-size:14.5px;font-weight:600;}
.navlinks a.navlink{text-decoration:none;color:var(--ink-soft);position:relative;padding-bottom:4px;transition:color .2s ease;}
.navlinks a.navlink::after{content:"";position:absolute;left:0;right:100%;bottom:0;height:2px;background:var(--accent);transition:right .25s ease;}
.navlinks a.navlink.active{color:var(--ink);}
.navlinks a.navlink.active::after{right:0;}
@media (max-width:760px){ .navlinks .navlink{display:none;} }

.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:8px;
  font-family:var(--font-body);font-weight:700;font-size:15px;
  padding:13px 22px;border-radius:999px;text-decoration:none;
  border:1px solid transparent;cursor:pointer;white-space:nowrap;
  transition:transform .15s ease, box-shadow .15s ease, filter .15s ease, background .15s ease;
}
.btn-primary{background:var(--accent);color:var(--accent-ink);}
.btn-primary:hover{transform:translateY(-1px);box-shadow:0 10px 22px -8px var(--accent-soft);filter:brightness(1.04);}
.btn-primary:active{transform:translateY(0);}
.btn-ghost-dark{background:transparent;color:var(--hero-ink);border-color:rgba(247,248,250,.28);}
.btn-ghost-dark:hover{border-color:rgba(247,248,250,.55);transform:translateY(-1px);}
.btn-ghost{background:transparent;color:var(--ink);border-color:var(--line);}
.btn-ghost:hover{border-color:var(--ink-soft);transform:translateY(-1px);}
.btn-block{width:100%;}
.btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px;}

/* hero */
.hero{background:var(--hero-bg);color:var(--hero-ink);position:relative;overflow:hidden;}
.hero::before{
  content:"";position:absolute;inset:-20% -10% auto auto;width:60%;height:70%;z-index:0;
  background:radial-gradient(closest-side, var(--hero-accent) 0%, transparent 72%);
  opacity:.14;filter:blur(10px);pointer-events:none;
}
.hero-grid{position:relative;z-index:1;display:grid;grid-template-columns:1.1fr .9fr;gap:56px;align-items:center;padding-block:clamp(64px,10vw,116px);}
@media (max-width:860px){ .hero-grid{grid-template-columns:1fr;gap:48px;} }
.eyebrow{
  display:inline-flex;align-items:center;gap:8px;
  font-family:var(--font-mono);font-size:12px;font-weight:600;letter-spacing:1.4px;text-transform:uppercase;
  color:var(--hero-accent);margin-bottom:22px;
}
.eyebrow .dot{width:7px;height:7px;border-radius:50%;background:var(--hero-accent);}
.hero h1{font-size:clamp(34px,5.2vw,58px);line-height:1.08;max-width:15ch;}
.hero h1 .hl{color:var(--hero-accent);}
.hero .sub{margin-top:20px;max-width:46ch;font-size:clamp(16px,1.6vw,18.5px);color:var(--hero-soft);}
.hero .ctas{display:flex;flex-wrap:wrap;gap:14px;margin-top:34px;}

/* hero live-demo widget */
.demo-card{
  background:rgba(255,255,255,.04);border:1px solid rgba(247,248,250,.12);border-radius:18px;
  padding:22px;backdrop-filter:blur(6px);min-width:0;
}
.demo-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px;}
.demo-head .lbl{font-family:var(--font-mono);font-size:11.5px;letter-spacing:1.2px;text-transform:uppercase;color:var(--hero-soft);}
.demo-head .pulse{display:flex;align-items:center;gap:6px;font-size:11.5px;color:var(--hero-accent);font-weight:600;}
.pulse .ring{width:7px;height:7px;border-radius:50%;background:var(--hero-accent);box-shadow:0 0 0 0 rgba(45,212,168,.6);animation:ring 1.8s infinite;}
@keyframes ring{ 0%{box-shadow:0 0 0 0 rgba(45,212,168,.55);} 70%{box-shadow:0 0 0 7px rgba(45,212,168,0);} 100%{box-shadow:0 0 0 0 rgba(45,212,168,0);} }

.demo-lead{display:flex;align-items:center;justify-content:space-between;background:rgba(255,255,255,.05);border-radius:12px;padding:14px 16px;margin-bottom:14px;}
.demo-lead .who{font-weight:700;font-size:15px;}
.demo-lead .src{font-size:12.5px;color:var(--hero-soft);margin-top:2px;}
.demo-badge{font-family:var(--font-mono);font-size:11px;font-weight:600;letter-spacing:.5px;color:var(--hero-accent);background:rgba(45,212,168,.12);border-radius:999px;padding:4px 10px;white-space:nowrap;}

.demo-timer{display:flex;align-items:baseline;gap:10px;padding:18px 4px 6px;}
.demo-timer .t{font-family:var(--font-mono);font-size:44px;font-weight:600;letter-spacing:-.5px;}
.demo-timer .t-lbl{font-size:13px;color:var(--hero-soft);}
.demo-status{min-height:24px;font-size:14.5px;font-weight:600;display:flex;align-items:center;gap:8px;transition:opacity .25s ease;}
.demo-status.ok{color:var(--hero-accent);}
.demo-status .chk{display:inline-flex;width:17px;height:17px;border-radius:50%;background:var(--hero-accent);color:#06211A;align-items:center;justify-content:center;font-size:11px;}

/* kicker + section head */
.kicker{font-family:var(--font-mono);font-size:12px;font-weight:600;letter-spacing:1.3px;text-transform:uppercase;color:var(--accent);}
.section-head{max-width:54ch;margin-bottom:44px;}
.section-head h2{font-size:clamp(26px,3.4vw,36px);margin-top:12px;color:var(--ink);}
.section-head .dek{margin-top:14px;color:var(--ink-soft);font-size:16px;}

/* problem cards */
.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;}
@media (max-width:860px){ .grid-3{grid-template-columns:1fr;} }
.card{
  background:var(--surface);border-radius:16px;box-shadow:var(--shadow);
  padding:28px 26px;min-width:0;transition:transform .2s ease, box-shadow .2s ease;
}
.card:hover{transform:translateY(-3px);}
.icon-badge{width:42px;height:42px;border-radius:12px;background:var(--accent-soft);color:var(--accent);display:flex;align-items:center;justify-content:center;}
.card h3{font-size:19px;margin-top:16px;font-family:var(--font-body);font-weight:700;color:var(--ink);}
.card p{margin-top:10px;color:var(--ink-soft);font-size:15px;}

/* system list */
.sys-list{display:flex;flex-direction:column;gap:26px;}
.sys-item{display:flex;gap:18px;align-items:flex-start;}
.sys-item .icon-badge{flex:none;width:38px;height:38px;border-radius:10px;}
.sys-item p{font-size:16.5px;color:var(--ink);padding-top:6px;max-width:58ch;}
.sys-item strong{font-weight:700;}

/* stepper */
.stepper{margin-top:60px;}
.step-rail{display:flex;align-items:center;gap:0;margin-bottom:28px;}
.step-dot-wrap{display:flex;align-items:center;flex:none;}
.step-dot{
  width:40px;height:40px;border-radius:50%;border:none;cursor:pointer;
  font-family:var(--font-mono);font-weight:600;font-size:14px;
  background:var(--surface);color:var(--ink-soft);box-shadow:var(--shadow);
  display:flex;align-items:center;justify-content:center;transition:background .2s ease,color .2s ease,transform .2s ease;flex:none;
}
.step-dot.active{background:var(--accent);color:var(--accent-ink);transform:scale(1.08);}
.step-line{flex:1;height:2px;background:var(--line);margin-inline:8px;position:relative;overflow:hidden;min-width:16px;}
.step-line::after{content:"";position:absolute;inset:0;background:var(--accent);width:0%;transition:width .3s ease;}
.step-line.filled::after{width:100%;}
@media (max-width:640px){ .step-rail{display:none;} }
.step-panel{background:var(--surface);border-radius:16px;box-shadow:var(--shadow);padding:30px 32px;min-height:124px;}
.step-panel .n{font-family:var(--font-mono);color:var(--accent);font-size:13px;font-weight:600;letter-spacing:1px;}
.step-panel h4{font-size:21px;font-family:var(--font-body);font-weight:700;color:var(--ink);margin-top:8px;}
.step-panel p{margin-top:10px;color:var(--ink-soft);font-size:15.5px;max-width:60ch;}
.step-tabs-mobile{display:none;flex-wrap:wrap;gap:8px;margin-bottom:16px;}
@media (max-width:640px){ .step-tabs-mobile{display:flex;} }
.step-chip{font-size:13px;font-weight:600;padding:8px 14px;border-radius:999px;background:var(--surface);box-shadow:var(--shadow);color:var(--ink-soft);border:none;cursor:pointer;}
.step-chip.active{background:var(--accent);color:var(--accent-ink);}

/* before / after toggle */
.toggle-row{display:flex;align-items:center;gap:16px;margin-bottom:28px;flex-wrap:wrap;}
.toggle{display:inline-flex;background:var(--surface);box-shadow:var(--shadow);border-radius:999px;padding:4px;position:relative;}
.toggle button{position:relative;z-index:1;border:none;background:transparent;padding:9px 20px;border-radius:999px;font-weight:700;font-size:14px;color:var(--ink-soft);cursor:pointer;transition:color .2s ease;}
.toggle button.active{color:var(--accent-ink);}
.toggle .thumb{position:absolute;top:4px;bottom:4px;left:4px;width:calc(50% - 4px);background:var(--accent);border-radius:999px;transition:transform .3s cubic-bezier(.4,0,.2,1);z-index:0;}
.toggle.after .thumb{transform:translateX(100%);}
.compare-wrap{background:var(--surface);border-radius:16px;box-shadow:var(--shadow);overflow:hidden;}
.compare-row{display:grid;grid-template-columns:1fr 1.4fr;align-items:center;padding:18px 26px;}
.compare-row + .compare-row{border-top:1px solid var(--line);}
.compare-row .lbl{font-size:14.5px;font-weight:600;color:var(--ink-soft);}
.compare-val{font-size:16px;font-weight:600;position:relative;min-width:0;}
.compare-val .state{display:block;}
.compare-val .state.before{color:var(--bad);}
.compare-val .state.after{color:var(--good);display:none;}
.compare-wrap.after .state.before{display:none;}
.compare-wrap.after .state.after{display:block;}
.compare-val .state::before{font-family:var(--font-mono);margin-right:8px;font-size:13px;}
.compare-val .state.before::before{content:"\2715";}
.compare-val .state.after::before{content:"\2713";}
.proof-note{margin-top:18px;font-size:14px;color:var(--ink-soft);}

/* about */
.about-card{background:var(--surface);border-radius:20px;box-shadow:var(--shadow);padding:clamp(28px,4vw,44px);display:grid;grid-template-columns:110px 1fr;gap:30px;align-items:flex-start;}
@media (max-width:600px){ .about-card{grid-template-columns:1fr;} }
.avatar{
  width:88px;height:88px;border-radius:50%;background:var(--accent-soft);color:var(--accent);
  display:flex;align-items:center;justify-content:center;font-family:var(--font-display);
  font-size:34px;font-weight:700;
}
.about blockquote{font-size:19px;line-height:1.55;margin:0;max-width:58ch;color:var(--ink);font-family:var(--font-display);font-weight:500;}
.about .who{margin-top:18px;font-size:14.5px;color:var(--ink-soft);}
.about .who strong{color:var(--ink);}
.chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:20px;}
.chip{font-size:13px;font-weight:600;color:var(--accent);background:var(--accent-soft);border-radius:999px;padding:6px 13px;}

/* contact */
.contact-grid{display:grid;grid-template-columns:1.15fr 1fr;gap:28px;align-items:start;}
@media (max-width:800px){ .contact-grid{grid-template-columns:1fr;} }
.form-card{background:var(--surface);border-radius:20px;box-shadow:var(--shadow);padding:clamp(24px,3vw,34px);min-width:0;}
.field{display:flex;flex-direction:column;gap:7px;margin-bottom:17px;}
.field label{font-size:13px;font-weight:700;color:var(--ink-soft);}
.field input{
  font-family:var(--font-body);font-size:15px;padding:12px 14px;border-radius:10px;
  border:1px solid var(--line);background:var(--bg);color:var(--ink);
  transition:border-color .2s ease, box-shadow .2s ease;
}
.field input:focus-visible{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft);}
.two-col{display:grid;grid-template-columns:1fr 1fr;gap:14px;}
@media (max-width:420px){ .two-col{grid-template-columns:1fr;} }
.fine{font-size:12.5px;color:var(--ink-soft);margin-top:12px;}
.thanks{display:flex;flex-direction:column;gap:10px;align-items:flex-start;}
.thanks .big{font-family:var(--font-display);font-size:24px;font-weight:700;color:var(--ink);}
.thanks .chk-big{width:46px;height:46px;border-radius:50%;background:var(--accent-soft);color:var(--accent);display:flex;align-items:center;justify-content:center;font-size:20px;margin-bottom:6px;}

.side-card{background:var(--surface);border-radius:20px;box-shadow:var(--shadow);padding:clamp(24px,3vw,32px);}
.side-card h3{font-size:19px;font-family:var(--font-body);font-weight:700;color:var(--ink);}
.side-card p{margin-top:10px;color:var(--ink-soft);font-size:15px;max-width:40ch;}
.side-card .btn{margin-top:20px;}

/* package tiers */
.package-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;align-items:stretch;}
@media (max-width:900px){ .package-grid{grid-template-columns:1fr;} }
.package-card{
  background:var(--surface);border-radius:16px;box-shadow:var(--shadow);
  padding:28px 26px;display:flex;flex-direction:column;gap:16px;min-width:0;position:relative;
}
.package-card.featured{box-shadow:0 0 0 2px var(--accent), var(--shadow);}
.package-card .badge{
  align-self:flex-start;font-family:var(--font-mono);font-size:11px;font-weight:600;letter-spacing:.8px;
  text-transform:uppercase;color:var(--accent-ink);background:var(--accent);border-radius:999px;padding:4px 11px;
}
.package-card h3{font-size:20px;font-family:var(--font-body);font-weight:700;color:var(--ink);}
.package-card .best-for{font-size:14px;color:var(--ink-soft);margin-top:-8px;}
.package-card .pick{font-size:13.5px;color:var(--ink-soft);margin-top:auto;padding-top:14px;border-top:1px solid var(--line);}
.package-card .pick strong{color:var(--ink);font-weight:700;}

/* shared checkmark list, used by package cards and service cards */
.check-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:9px;}
.check-list li{font-size:14.5px;color:var(--ink);padding-left:22px;position:relative;}
.check-list li::before{content:"\2713";position:absolute;left:0;top:1px;color:var(--accent);font-family:var(--font-mono);font-size:12px;}

/* core service cards */
.service-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;}
@media (max-width:980px){ .service-grid{grid-template-columns:repeat(2,1fr);} }
@media (max-width:620px){ .service-grid{grid-template-columns:1fr;} }
.service-card{
  background:var(--surface);border-radius:16px;box-shadow:var(--shadow);
  padding:26px 24px;min-width:0;display:flex;flex-direction:column;gap:14px;
  transition:transform .2s ease;
}
.service-card:hover{transform:translateY(-3px);}
.service-card h3{font-size:18.5px;font-family:var(--font-body);font-weight:700;color:var(--ink);}
.service-card > p{color:var(--ink-soft);font-size:14.5px;margin-top:-4px;}

/* custom-build statement */
.statement{
  font-family:var(--font-display);font-weight:500;color:var(--ink);
  font-size:clamp(21px,2.8vw,30px);line-height:1.4;max-width:50ch;text-wrap:balance;
}
.statement-wrap{display:flex;gap:28px;align-items:flex-start;flex-wrap:wrap;}
.statement-wrap .sig{flex:none;font-family:var(--font-mono);font-size:13px;color:var(--ink-soft);max-width:22ch;padding-top:6px;}

/* add-ons */
.addon-groups{display:grid;grid-template-columns:repeat(3,1fr);gap:30px;}
@media (max-width:860px){ .addon-groups{grid-template-columns:1fr;} }
.addon-group h4{font-family:var(--font-mono);font-size:12.5px;letter-spacing:1px;text-transform:uppercase;color:var(--accent);margin-bottom:16px;}
.addon-item{margin-bottom:16px;}
.addon-item:last-child{margin-bottom:0;}
.addon-item strong{display:block;font-size:15px;color:var(--ink);font-weight:700;}
.addon-item span{display:block;font-size:13.5px;color:var(--ink-soft);margin-top:3px;}

/* research stat tiles */
.stat-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;}
@media (max-width:860px){ .stat-grid{grid-template-columns:repeat(2,1fr);} }
@media (max-width:460px){ .stat-grid{grid-template-columns:1fr;} }
.stat-tile{background:var(--surface);border-radius:16px;box-shadow:var(--shadow);padding:26px 22px;min-width:0;}
.stat-tile .big{font-size:clamp(32px,4.2vw,46px);font-weight:600;color:var(--accent);line-height:1;}
.stat-tile .cap{margin-top:12px;font-size:14px;color:var(--ink-soft);line-height:1.5;}
.callout{background:var(--accent-soft);border-radius:16px;padding:26px 28px;}
.callout p{font-size:16px;color:var(--ink);line-height:1.6;}
.callout strong{color:var(--accent);}
.stat-source{margin-top:20px;font-size:12.5px;color:var(--ink-soft);line-height:1.6;max-width:72ch;}

/* sub-page intro band (every page except home) */
.page-head{background:var(--band-tint);padding-block:clamp(52px,8vw,84px) clamp(40px,6vw,60px);}
.page-head .kicker{margin-bottom:2px;}
.page-head h1{font-size:clamp(28px,4vw,44px);margin-top:12px;max-width:20ch;}
.page-head .sub{margin-top:16px;max-width:52ch;color:var(--ink-soft);font-size:16.5px;}

/* homepage hub grid linking out to the other pages */
.hub-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;}
@media (max-width:900px){ .hub-grid{grid-template-columns:repeat(2,1fr);} }
@media (max-width:520px){ .hub-grid{grid-template-columns:1fr;} }
.hub-card{
  background:var(--surface);border-radius:16px;box-shadow:var(--shadow);
  padding:24px 22px;text-decoration:none;color:var(--ink);display:block;min-width:0;
  transition:transform .2s ease;
}
.hub-card:hover{transform:translateY(-3px);}
.hub-card .hub-kicker{font-family:var(--font-mono);font-size:11px;letter-spacing:1.1px;text-transform:uppercase;color:var(--accent);}
.hub-card h3{font-size:18px;margin-top:10px;font-family:var(--font-body);font-weight:700;}
.hub-card p{margin-top:8px;color:var(--ink-soft);font-size:14px;}
.hub-card .arrow{margin-top:14px;font-family:var(--font-mono);font-size:13px;color:var(--accent);}

/* end-of-page CTA band, used on every content page */
.cta-band{background:var(--surface);border-radius:20px;box-shadow:var(--shadow);padding:clamp(28px,4vw,44px);text-align:left;display:flex;flex-wrap:wrap;gap:20px;align-items:center;justify-content:space-between;}
.cta-band h3{font-size:22px;font-family:var(--font-display);font-weight:600;max-width:32ch;}
.cta-band .ctas{display:flex;gap:12px;flex-wrap:wrap;}

footer{padding-block:34px;}
.foot-row{display:flex;flex-wrap:wrap;justify-content:space-between;gap:16px;align-items:center;font-size:13.5px;color:var(--ink-soft);}
.foot-brand{display:flex;align-items:center;gap:8px;font-family:var(--font-display);font-weight:700;color:var(--ink);font-size:15.5px;}
.foot-brand .dot{width:7px;height:7px;border-radius:50%;background:var(--accent);}
