/* ===== SELF-HOSTED FONTS (28 Jul 2026) =====
   Alfa Slab One and Merriweather are served from this site's own /fonts folder
   instead of fonts.googleapis.com. Loading them from Google sent every
   visitor's IP address to Google on page load... a third-party transfer we
   don't need, can't control and would otherwise have to justify. Now nothing
   leaves the reader's device except the request for this site itself.
   Files are the same Google woff2 subsets (latin + latin-ext), SIL Open Font
   Licence, redistribution allowed. ===== */
@font-face{
  font-family:'Alfa Slab One';font-style:normal;font-weight:400;font-display:swap;
  src:url('fonts/alfa-slab-one-400-normal-latin-ext.woff2') format('woff2');
  unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face{
  font-family:'Alfa Slab One';font-style:normal;font-weight:400;font-display:swap;
  src:url('fonts/alfa-slab-one-400-normal-latin.woff2') format('woff2');
  unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face{
  font-family:'Merriweather';font-style:italic;font-weight:400;font-display:swap;
  src:url('fonts/merriweather-400-italic-latin-ext.woff2') format('woff2');
  unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face{
  font-family:'Merriweather';font-style:italic;font-weight:400;font-display:swap;
  src:url('fonts/merriweather-400-italic-latin.woff2') format('woff2');
  unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face{
  font-family:'Merriweather';font-style:normal;font-weight:400;font-display:swap;
  src:url('fonts/merriweather-400-normal-latin-ext.woff2') format('woff2');
  unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face{
  font-family:'Merriweather';font-style:normal;font-weight:400;font-display:swap;
  src:url('fonts/merriweather-400-normal-latin.woff2') format('woff2');
  unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face{
  font-family:'Merriweather';font-style:normal;font-weight:700;font-display:swap;
  src:url('fonts/merriweather-700-normal-latin-ext.woff2') format('woff2');
  unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face{
  font-family:'Merriweather';font-style:normal;font-weight:700;font-display:swap;
  src:url('fonts/merriweather-700-normal-latin.woff2') format('woff2');
  unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/* ============================================================
   DEAD LEADS CPR... "defibrillator premium"
   Lucid X black theatre, EKG pulse motif, brand orange for money,
   amber for life. Alfa Slab One display / Merriweather body.
   Mobile-first, one-handed, sofa-at-9pm use.
   ============================================================ */

/* Lucid X brand palette, lifted from agency.lucidx.co.uk + casestudy.lucidx.co.uk
   (near-black base, #FF7A18 orange primary, amber secondary, 12px radius,
   Alfa Slab One headings / Merriweather body). Legacy var names kept below
   as aliases so nothing breaks; values are the brand's. */
:root{
  --base:#0A0A0A;
  --card-bg:#111111;
  --edge:#1F1F1F;
  --ink:#FFFFFF;
  --ink-dim:#8F8F8F;
  --orange:#FF7A18;
  --orange-deep:#E4650A;
  --amber:#FD9F08;
  --wa-green:#25D366;
  --wa-deep:#128C7E;
  --bubble-out:#1F5C46;
  --bubble-in:#1E1E1E;
  --danger:#E40014;
  --radius:12px;
  --shadow:0 10px 30px rgba(0,0,0,.5);
  /* legacy aliases */
  --navy-deep:var(--base);
  --navy-card:var(--card-bg);
  --navy-edge:var(--edge);
  --gold:var(--orange);
  --gold-deep:var(--orange-deep);
  --teal:var(--amber);
}

*{margin:0;padding:0;box-sizing:border-box;-webkit-tap-highlight-color:transparent}

/* Every Alfa Slab One heading: its true weight (400) and a hair of tracking
   so the heavy slabs never merge. Headings default to bold otherwise. */
.brand,.stage-h,.hero-h1,.card-h,.stepper input,.score-num,
.foot-logo,.biglist-head,.rule-big,.modal h3{
  font-weight:400;letter-spacing:.02em;
}

html{scroll-behavior:smooth}

body{
  font-family:'Merriweather',Georgia,serif;
  /* Alfa Slab One only ships one weight (400). Any bold request makes the
     browser fake it, smearing the letters together. Kill synthesis globally. */
  font-synthesis:none;
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
  background:
    radial-gradient(1200px 600px at 70% -10%, #1A130B 0%, transparent 60%),
    radial-gradient(900px 500px at -10% 40%, #141414 0%, transparent 55%),
    var(--navy-deep);
  color:var(--ink);
  line-height:1.6;
  min-height:100vh;
  padding-bottom:120px;
}

/* subtle grain so the dark isn't flat */
body::before{
  content:"";position:fixed;inset:0;pointer-events:none;opacity:.05;z-index:1;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cfilter id='n'%3E%3CfeTurbulence baseFrequency='.85' numOctaves='2'/%3E%3C/filter%3E%3Crect width='120' height='120' filter='url(%23n)' opacity='.6'/%3E%3C/svg%3E");
}

.noscript-note{padding:2rem;background:var(--navy-card);margin:1rem;border-radius:var(--radius)}

/* ---------- header ---------- */
.site-head{
  text-align:center;padding:1.6rem 1rem .6rem;position:relative;z-index:2;
}
.pulse-mark{width:130px;margin:0 auto .4rem;color:var(--teal)}
.pulse-mark svg{width:100%;height:22px}
.pulse-mark path{
  stroke-dasharray:220;stroke-dashoffset:220;
  animation:ekg 2.8s ease-out forwards, ekgGlow 3.5s ease-in-out 2.8s infinite;
}
@keyframes ekg{to{stroke-dashoffset:0}}
@keyframes ekgGlow{0%,100%{filter:drop-shadow(0 0 0px var(--teal))}50%{filter:drop-shadow(0 0 6px var(--teal))}}

.brand{
  font-family:'Alfa Slab One',serif;font-size:clamp(1.35rem,5vw,1.9rem);
  letter-spacing:.06em;color:var(--ink);
}
.brand span{color:var(--gold)}
.brand-tagline{
  margin-top:.25rem;font-size:.76rem;letter-spacing:.22em;text-transform:uppercase;
  color:var(--amber);
}

/* ---------- resume bar (returning visitors) ---------- */
.resume-bar{
  display:flex;flex-wrap:wrap;align-items:center;gap:.6rem;justify-content:space-between;
  padding:.7rem .9rem;margin-bottom:1.1rem;border:1px solid rgba(253,159,8,.4);
  border-radius:12px;background:rgba(253,159,8,.08);font-size:.9rem;
}
.resume-btn{
  background:var(--amber);color:var(--base);border:none;border-radius:8px;
  padding:.55rem .85rem;font-family:'Merriweather',Georgia,serif;font-weight:700;
  cursor:pointer;font-size:.85rem;min-height:40px;
}

/* ---------- The Golden Hour (sub-product lockup) ---------- */
.golden-hour{
  display:flex;align-items:center;gap:.8rem;margin-bottom:1.2rem;
  padding:.7rem .9rem;border:1px solid rgba(253,159,8,.4);border-radius:12px;
  background:linear-gradient(180deg, rgba(253,159,8,.1), rgba(253,159,8,.03));
}
.gh-clock{width:34px;height:34px;color:var(--amber);flex:0 0 auto}
.gh-title{font-family:'Alfa Slab One',serif;font-size:1.2rem;letter-spacing:.02em;color:var(--amber);line-height:1.1}
.gh-sub{font-size:.82rem;color:var(--ink-dim);margin-top:.15rem}
.head-tag{
  display:inline-block;margin-top:.45rem;font-size:.82rem;letter-spacing:.14em;
  text-transform:uppercase;color:var(--teal);border:1px solid rgba(253,159,8,.35);
  padding:.25rem .8rem;border-radius:99px;
}

/* ---------- layout ---------- */
main{position:relative;z-index:2;max-width:640px;margin:0 auto;padding:0 1rem}
.stage{padding:1rem 0 2rem}
.hidden{display:none !important}

.stage-head{margin:1.2rem 0 1rem}
.stage-h{font-family:'Alfa Slab One',serif;font-size:clamp(1.25rem,4.8vw,1.7rem);letter-spacing:.02em;line-height:1.15}
.stage-sub{color:var(--ink-dim);margin-top:.5rem}

/* ---------- hero ---------- */
.hero{text-align:left;padding:1.4rem 0 .6rem}
.eyebrow{
  font-size:.82rem;letter-spacing:.16em;text-transform:uppercase;color:var(--gold);
  margin-bottom:1.2rem;
}
.hero-h1{
  font-family:'Alfa Slab One',serif;font-size:clamp(1.4rem,5.4vw,2.1rem);
  line-height:1.18;letter-spacing:.01em;margin:1.3rem 0 .9rem;
}
.gold{color:var(--gold)}
.hero-sub{color:var(--ink-dim);margin-bottom:.8rem;font-size:1.02rem}
.hero-cred{
  margin-top:1rem;padding:.7rem .9rem;border-left:3px solid var(--teal);
  color:var(--ink-dim);font-size:.9rem;background:rgba(253,159,8,.05);border-radius:0 8px 8px 0;
}

/* staggered hero reveal */
.hero > *{opacity:0;transform:translateY(14px);animation:rise .7s cubic-bezier(.2,.7,.2,1) forwards}
.hero .golden-hour{animation-delay:.1s}
.hero .hero-h1{animation-delay:.3s}
.hero .hero-convo{animation-delay:.55s}
.hero .hero-sub{animation-delay:.8s}
.hero .hero-sub + .hero-sub{animation-delay:1s}
.hero .hero-cred{animation-delay:1.2s}
@keyframes rise{to{opacity:1;transform:none}}

/* ---------- interactive hero conversation ---------- */
.hero-convo{
  background:rgba(255,255,255,.02);border:1px solid rgba(160,160,160,.16);
  border-radius:16px;padding:.9rem;box-shadow:var(--shadow);
}
.convo-head{
  display:flex;flex-direction:column;gap:.1rem;margin-bottom:.7rem;
  padding-bottom:.6rem;border-bottom:1px solid rgba(160,160,160,.12);
}
.convo-title{font-weight:700;font-size:.92rem}
.convo-sub{font-size:.85rem;color:var(--ink-dim)}
.convo-thread{
  max-height:330px;overflow-y:auto;display:flex;flex-direction:column;gap:.4rem;
  scroll-behavior:smooth;-webkit-overflow-scrolling:touch;
}
.cv-row{display:flex;flex-direction:column}
.cv-out{align-items:flex-end}
.cv-in{align-items:flex-start}
.cv-row .chat-bubble{max-width:88%;margin:0}
.cv-sys{text-align:center;font-size:.82rem;color:var(--ink-dim);margin:.4rem 0 .1rem}
.reveal{animation:cvIn .35s ease-out}
@keyframes cvIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
.chat-bubble.typing{display:inline-flex;gap:5px;align-items:center;padding:.8rem .95rem}
.chat-bubble.typing span{width:7px;height:7px;border-radius:50%;background:var(--ink-dim);animation:cvDot 1s infinite}
.chat-bubble.typing span:nth-child(2){animation-delay:.15s}
.chat-bubble.typing span:nth-child(3){animation-delay:.3s}
@keyframes cvDot{0%,60%,100%{opacity:.3;transform:translateY(0)}30%{opacity:1;transform:translateY(-3px)}}
.convo-next{
  width:100%;margin-top:.8rem;padding:.75rem;border-radius:10px;border:1px dashed var(--orange);
  background:rgba(255,122,24,.06);color:var(--orange);font-family:'Merriweather',Georgia,serif;
  font-weight:700;font-size:.9rem;cursor:pointer;min-height:48px;animation:cvPulse 2.2s ease-in-out infinite;
}
.convo-next:active{transform:scale(.99)}
@keyframes cvPulse{0%,100%{background:rgba(255,122,24,.06)}50%{background:rgba(255,122,24,.15)}}
.convo-done{
  margin-top:.8rem;padding:.75rem .85rem;border-left:3px solid var(--orange);
  background:rgba(255,122,24,.06);font-size:.9rem;font-weight:700;border-radius:0 8px 8px 0;
}

/* ---------- chat bubbles ---------- */
.chat-bubble{
  max-width:85%;padding:.65rem .9rem;border-radius:16px;font-size:1rem;
  line-height:1.45;position:relative;word-wrap:break-word;
  font-family:system-ui,-apple-system,sans-serif; /* deliberately phone-native */
}
.chat-bubble.outgoing{
  background:var(--bubble-out);color:#E9FFF4;margin-left:auto;border-bottom-right-radius:5px;
}
.chat-bubble.incoming{
  background:var(--bubble-in);color:var(--ink);margin-right:auto;border-bottom-left-radius:5px;
}
.chat-meta{font-size:.8rem;color:var(--ink-dim);margin:.25rem .3rem .7rem;text-align:right}
.hero-bubble-wrap .chat-meta:nth-child(4){text-align:left}
.hero-bubble{box-shadow:var(--shadow)}

/* ---------- cards ---------- */
.card{
  background:linear-gradient(180deg, var(--navy-card) 0%, #0E0E0E 100%);
  border:1px solid rgba(160,160,160,.14);
  border-radius:var(--radius);padding:1.3rem;margin:1.4rem 0;box-shadow:var(--shadow);
}
.card-h{font-family:'Alfa Slab One',serif;font-size:1.05rem;letter-spacing:.01em;margin-bottom:.5rem}
.card-sub{color:var(--ink-dim);font-size:.92rem;margin-bottom:1rem}
.card p{margin-bottom:.7rem}
.card p:last-child{margin-bottom:0}

.preview-card{border:1px solid rgba(255,122,24,.35)}
.preview-card .cv-row{margin-top:.3rem}
.privacy-sub{color:var(--amber)}

/* ---------- trust: photo byline, testimonial, author, how-it-works ---------- */
.cred-photo{width:50px;height:50px;border-radius:50%;object-fit:cover;flex:0 0 auto;border:1.5px solid rgba(255,122,24,.45)}

.howto-card{border-left:3px solid var(--amber)}
.howto-steps{display:flex;flex-wrap:wrap;gap:.4rem;margin-top:.9rem}
.howto-step{flex:1 1 60px;display:flex;flex-direction:column;align-items:center;text-align:center;gap:.1rem;min-width:56px}
.howto-step .hs-icon{width:40px;height:40px;border-radius:50%;background:rgba(255,122,24,.1);color:var(--orange);display:flex;align-items:center;justify-content:center;margin-bottom:.25rem}
.howto-step .hs-icon svg{width:21px;height:21px}
.howto-step b{font-size:.82rem}
.howto-step em{font-size:.78rem;color:var(--ink-dim);font-style:normal;line-height:1.2}

.testimonial-card{border-left:3px solid var(--orange);background:rgba(255,122,24,.05)}
.testimonial-card blockquote{font-size:1.08rem;line-height:1.5;font-style:italic;position:relative;padding-left:1.3rem}
.testimonial-card blockquote::before{content:"\201C";position:absolute;left:-.15rem;top:-.5rem;font-family:'Alfa Slab One',serif;font-size:2.2rem;color:var(--orange);opacity:.55;line-height:1}
.author-row{display:flex;align-items:center;gap:.7rem;margin-top:1rem}
.author-initials{width:46px;height:46px;border-radius:50%;background:var(--orange);color:var(--base);display:flex;align-items:center;justify-content:center;font-family:'Alfa Slab One',serif;font-size:.95rem;flex:0 0 auto}
.author-meta{font-size:.86rem;color:var(--ink-dim);line-height:1.35}
.author-meta b{color:var(--ink)}

.author-card{display:flex;gap:1rem;align-items:flex-start}
.author-photo{width:76px;height:76px;border-radius:50%;object-fit:cover;flex:0 0 auto;border:1.5px solid rgba(255,122,24,.45)}
.author-card .author-name{font-weight:700;margin-bottom:.4rem}

.card-icon{display:inline-flex;vertical-align:-4px;color:var(--orange);margin-right:.45rem}
.card-icon svg{width:20px;height:20px}
.proof-card{border-left:3px solid var(--gold)}
.flip-card{border-left:3px solid var(--teal)}
.triage-card{border:1px dashed rgba(37,211,102,.5);background:rgba(37,211,102,.05)}
.guarantee-card{border-left:3px solid var(--gold)}
.harvest-card{border-left:3px solid var(--teal)}
.fortune-card{border-left:3px solid var(--amber)}
.ethics-card{opacity:.9}

/* ---------- calculator ---------- */
.calc-card{border:1px solid rgba(255,122,24,.35)}
.field-label{display:block;font-weight:700;font-size:.95rem;margin:.9rem 0 .45rem}
.field-hint{font-weight:400;color:var(--ink-dim);font-size:.85rem}
/* Marks a step the visitor cannot skip, so they find out before they tap. */
.req-tag{
  display:inline-block;font-weight:700;font-size:.72rem;letter-spacing:.05em;text-transform:uppercase;
  color:var(--amber);background:rgba(253,159,8,.1);border:1px solid rgba(253,159,8,.38);
  border-radius:5px;padding:.08rem .32rem;margin-left:.35rem;vertical-align:.08em;
}
.trade-note{font-size:.85rem;color:var(--amber);margin:.5rem 0 0}

.trade-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:.5rem}
.trade-btn{
  padding:.6rem .3rem;border-radius:10px;border:1px solid rgba(160,160,160,.25);
  background:rgba(160,160,160,.06);color:var(--ink);font-family:'Merriweather',Georgia,serif;
  font-size:.82rem;font-weight:500;cursor:pointer;min-height:48px;transition:all .15s;
}
.trade-btn .t-icon{display:flex;justify-content:center;margin-bottom:.3rem;color:var(--orange);transition:color .15s}
.trade-btn .t-icon svg{width:21px;height:21px}
.trade-btn.selected .t-icon{color:var(--orange)}
.trade-btn:active{transform:scale(.96)}
.trade-btn.selected{
  border-color:var(--gold);background:rgba(255,122,24,.14);color:var(--gold);
  box-shadow:0 0 0 1px var(--gold) inset;
}

.calc-row{display:grid;grid-template-columns:1fr 1fr;gap:.8rem;margin-top:.4rem;align-items:end}
/* flex column so both steppers sit on the same baseline even when one label
   wraps to more lines than the other */
.calc-field{display:flex;flex-direction:column;height:100%}
.calc-field .field-label{flex:1 0 auto;margin-bottom:.45rem}
.calc-field .stepper{margin-top:auto}
.stepper{display:flex;align-items:stretch;border:1px solid rgba(160,160,160,.25);border-radius:10px;overflow:hidden}
.stepper input{
  flex:1 1 auto;width:100%;min-width:0;background:transparent;border:none;color:var(--ink);
  text-align:center;font-family:'Alfa Slab One',serif;font-size:.92rem;letter-spacing:0;padding:0 .1rem;
  -webkit-appearance:none;-moz-appearance:textfield;appearance:textfield;
}
/* kill the browser's own up/down arrows... we have our own +/- buttons */
.stepper input::-webkit-outer-spin-button,
.stepper input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}
.stepper input:focus{outline:none;background:rgba(255,122,24,.08)}
.step-btn{
  flex:0 0 44px;width:44px;min-height:52px;background:rgba(160,160,160,.1);border:none;color:var(--ink);
  font-size:1.3rem;cursor:pointer;
}
.step-btn:active{background:rgba(255,122,24,.25)}

.calc-result{margin-top:1.2rem;padding-top:1rem;border-top:1px dashed rgba(160,160,160,.25)}
.calc-line{display:flex;justify-content:space-between;align-items:baseline;gap:1rem;margin-bottom:.6rem}
.calc-label{font-size:.9rem;color:var(--ink-dim);max-width:55%}
.calc-num{
  font-family:'Alfa Slab One',serif;font-size:clamp(1.15rem,5vw,1.7rem);letter-spacing:.01em;
  transition:transform .2s;
}
.calc-num.bump{transform:scale(1.12)}
.calc-burn{font-size:.82rem;color:var(--ink-dim);margin-top:.9rem;border-left:2px solid var(--danger);padding-left:.6rem}
.estimate-note{font-size:.85rem;color:var(--amber);margin-top:.5rem}
.working-title{font-size:.82rem;color:var(--ink-dim);margin-top:1rem;font-style:italic}
.calc-working{margin-top:.5rem;border:1px solid rgba(160,160,160,.16);border-radius:10px;overflow:hidden}
.work-step{display:flex;gap:.7rem;padding:.7rem .8rem;font-size:.85rem;line-height:1.45;border-bottom:1px solid rgba(160,160,160,.12)}
.work-step .ws-n{
  flex:0 0 auto;width:1.5rem;height:1.5rem;border-radius:50%;background:rgba(255,122,24,.14);
  color:var(--orange);font-weight:700;display:flex;align-items:center;justify-content:center;font-size:.8rem;
}
.work-step b{color:var(--ink)}
.work-step b.gold{color:var(--orange)}
.work-note{font-size:.85rem;color:var(--ink-dim);padding:.6rem .8rem;background:rgba(160,160,160,.04)}
.work-note a{color:var(--orange)}

/* ---------- inputs & buttons ---------- */
.text-input{
  width:100%;padding:.85rem .9rem;border-radius:10px;border:1px solid rgba(160,160,160,.25);
  background:rgba(10,10,10,.6);color:var(--ink);font-family:'Merriweather',Georgia,serif;font-size:1rem;
  margin-bottom:.6rem;
}
.text-input:focus{outline:2px solid var(--teal);outline-offset:0;border-color:transparent}
.text-input::placeholder{color:#6E6E6E}

.btn{
  display:inline-block;width:100%;text-align:center;padding:.95rem 1.1rem;border-radius:12px;
  border:none;font-family:'Merriweather',Georgia,serif;font-weight:700;font-size:1.05rem;cursor:pointer;
  text-decoration:none;transition:transform .12s, box-shadow .12s;min-height:52px;
}
.btn:active{transform:scale(.98)}
.btn-primary{
  background:linear-gradient(180deg,var(--gold) 0%,var(--gold-deep) 100%);color:#0A0A0A;
  box-shadow:0 6px 20px rgba(255,122,24,.25);
}
.btn-big{font-size:1.12rem;margin-top:1.1rem;animation:pulseGlow 2.6s ease-in-out infinite}
@keyframes pulseGlow{0%,100%{box-shadow:0 6px 20px rgba(255,122,24,.22)}50%{box-shadow:0 6px 30px rgba(255,122,24,.45)}}
/* A gated button has to LOOK gated... kill the pulse and the glow so it stops
   inviting a tap it is going to refuse. */
.btn:disabled{opacity:.4;cursor:not-allowed;animation:none;box-shadow:none}
.btn:disabled:active{transform:none}
.btn-secondary{background:rgba(160,160,160,.14);color:var(--ink);border:1px solid rgba(160,160,160,.3)}
.btn-whatsapp{background:linear-gradient(180deg,var(--wa-green),var(--wa-deep));color:#fff}
.btn-whatsapp-ghost{background:transparent;color:var(--wa-green);border:1.5px solid var(--wa-green)}
.btn-small{padding:.6rem .9rem;font-size:.92rem;min-height:44px;width:auto}
.btn-row{display:flex;gap:.6rem;margin-top:.8rem}
.btn-row .btn{flex:1}

.tiny-note{font-size:.85rem;color:var(--ink-dim);margin-top:.6rem;text-align:center}

/* ---------- plan stage ---------- */
.plan-list{list-style:none;counter-reset:plan;margin:1rem 0}
.plan-list li{
  counter-increment:plan;display:flex;flex-direction:column;gap:.15rem;
  padding:.9rem 1rem .9rem 3.2rem;position:relative;background:var(--navy-card);
  border:1px solid rgba(160,160,160,.14);border-radius:var(--radius);margin-bottom:.6rem;
}
.plan-list li::before{
  content:counter(plan);position:absolute;left:.9rem;top:50%;transform:translateY(-50%);
  width:1.7rem;height:1.7rem;border-radius:50%;background:var(--gold);color:#0A0A0A;
  font-family:'Alfa Slab One',serif;display:flex;align-items:center;justify-content:center;font-size:.95rem;
}
.plan-list li span{color:var(--ink-dim);font-size:.85rem}

.rule-card{
  border:1px solid rgba(255,122,24,.4);border-radius:var(--radius);padding:1.1rem;margin:1.2rem 0;
  background:rgba(255,122,24,.06);
}
.rule-big{font-family:'Alfa Slab One',serif;font-size:1.15rem;margin-bottom:.5rem;letter-spacing:.02em}
.rule-card p{color:var(--ink-dim)}
.rule-card p.rule-big{color:var(--gold)}

/* ---------- leads stage ---------- */
.disclosure{
  width:100%;text-align:left;background:none;border:none;color:var(--ink);font-family:'Merriweather',Georgia,serif;
  font-weight:700;font-size:1rem;cursor:pointer;padding:.2rem 0;min-height:44px;
}
.disclosure::after{content:" ▾";color:var(--ink-dim)}
.disclosure[aria-expanded="true"]::after{content:" ▴"}
.disclosure-body{padding-top:.6rem}
.disclosure-body p{margin-bottom:.55rem;font-size:.92rem}
.mono{font-family:ui-monospace,monospace;background:rgba(160,160,160,.12);padding:.1rem .35rem;border-radius:5px;font-size:.85em}

.trust-line{font-size:.85rem;color:var(--teal);margin-bottom:.9rem}
.comply-row{
  display:flex;gap:.6rem;align-items:flex-start;font-size:.82rem;line-height:1.4;
  padding:.75rem .8rem;margin-bottom:.9rem;border:1px solid rgba(255,122,24,.35);
  border-radius:10px;background:rgba(255,122,24,.05);color:var(--ink-dim);transition:border-color .15s;
}
.comply-row input{width:1.2rem;height:1.2rem;flex:0 0 auto;margin-top:.05rem;accent-color:var(--orange)}
.comply-row a{color:var(--orange)}
.comply-row.confirmed{border-color:rgba(37,211,102,.5);background:rgba(37,211,102,.05)}
.comply-row.nudge{animation:shake .4s}
@keyframes shake{0%,100%{transform:translateX(0)}25%{transform:translateX(-5px)}75%{transform:translateX(5px)}}
.lead-form input:disabled,.lead-form button:disabled{opacity:.45;cursor:not-allowed}
.lead-form{display:flex;flex-direction:column}
.check-row{display:flex;align-items:center;gap:.55rem;margin:.2rem 0 .8rem;font-size:.95rem;min-height:44px}
.check-row input{width:1.25rem;height:1.25rem;accent-color:var(--gold)}

.lead-count-line{margin:1rem 0 .5rem;font-weight:700;color:var(--gold);font-size:.98rem}
.lead-list{list-style:none}
.lead-list li{
  display:flex;align-items:center;gap:.7rem;padding:.7rem .2rem;
  border-bottom:1px solid rgba(160,160,160,.12);
}
.lead-list .l-info{flex:1;min-width:0}
.lead-list .l-name{font-weight:700}
.lead-list .l-job{color:var(--ink-dim);font-size:.85rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ghost-tag,.ghost-tag-inline{
  font-size:.72rem;letter-spacing:.06em;text-transform:uppercase;color:var(--gold);
  border:1px solid rgba(255,122,24,.5);padding:.12rem .45rem;border-radius:99px;white-space:nowrap;
}
.l-del{background:none;border:none;color:var(--ink-dim);font-size:1.1rem;cursor:pointer;padding:.5rem;min-height:44px}

/* ---------- send stage ---------- */
.rules-strip{display:flex;flex-direction:column;gap:.4rem;margin-bottom:1.1rem}
.rule-chip{
  font-size:.85rem;color:var(--ink-dim);background:rgba(160,160,160,.07);
  padding:.5rem .8rem;border-radius:9px;
}
.send-card{
  background:var(--navy-card);border:1px solid rgba(160,160,160,.14);border-radius:var(--radius);
  padding:1rem;margin-bottom:.9rem;transition:opacity .3s;
}
.send-card.sent{opacity:.55}
.send-card .s-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:.6rem}
.send-card .s-name{font-weight:700}
.send-card .s-actions{display:flex;gap:.5rem;margin-top:.7rem}
.send-card .s-actions .btn{flex:1;padding:.65rem;font-size:.9rem;min-height:46px}
.sent-stamp{color:var(--teal);font-size:.8rem;font-weight:700}

/* ---------- replies stage ---------- */
.reply-grid{display:grid;grid-template-columns:1fr 1fr;gap:.55rem;margin:1rem 0}
.reply-btn{
  padding:.8rem .6rem;border-radius:11px;border:1px solid rgba(160,160,160,.25);
  background:var(--navy-card);color:var(--ink);font-family:'Merriweather',Georgia,serif;font-size:.88rem;
  font-weight:500;cursor:pointer;text-align:left;min-height:64px;line-height:1.3;
}
.reply-btn b{display:block;font-size:1.05rem;margin-bottom:.15rem}
.reply-btn.selected{border-color:var(--teal);box-shadow:0 0 0 1px var(--teal) inset}
.reply-coach{font-size:.88rem;color:var(--ink-dim);margin:.7rem 0}
.reply-script-card .chat-bubble{margin-bottom:.5rem}

/* ---------- scoreboard ---------- */
.scoreboard{
  display:grid;grid-template-columns:repeat(2,1fr);gap:.6rem;margin:1rem 0 .6rem;
}
.score-cell{
  background:var(--navy-card);border:1px solid rgba(160,160,160,.14);border-radius:var(--radius);
  padding:1rem;text-align:center;
}
.score-money{grid-column:1 / -1;border-color:rgba(255,122,24,.45);background:rgba(255,122,24,.07)}
.score-num{font-family:'Alfa Slab One',serif;font-size:1.5rem;display:block}
.score-money .score-num{font-size:2rem}
.score-label{font-size:.82rem;color:var(--ink-dim);letter-spacing:.08em;text-transform:uppercase}
.loops-line{font-size:.85rem;color:var(--teal);margin-bottom:1rem;text-align:center}

.followup-card .chat-bubble{margin:.4rem 0 .9rem}

/* ---------- sticky nav ---------- */
.stage-nav{
  position:fixed;bottom:0;left:0;right:0;z-index:50;
  display:flex;justify-content:space-around;align-items:center;
  background:rgba(10,10,10,.92);backdrop-filter:blur(10px);
  border-top:1px solid rgba(160,160,160,.15);padding:.5rem .5rem calc(.5rem + env(safe-area-inset-bottom));
}
.nav-dot{
  background:none;border:none;padding:.4rem .8rem;border-radius:10px;
  cursor:pointer;opacity:.5;transition:all .15s;min-height:48px;
  display:flex;flex-direction:column;align-items:center;gap:.15rem;
  color:var(--ink);
}
.nav-dot svg{width:21px;height:21px}
.nav-dot span{
  font-family:'Merriweather',Georgia,serif;font-size:.7rem;letter-spacing:.1em;
  text-transform:uppercase;
}
.nav-dot.active{opacity:1;color:var(--orange);background:rgba(255,122,24,.1)}

/* ---------- big-list flag (calculator, 100+ quotes) ---------- */
.biglist-flag{
  margin-top:1rem;padding:1rem;border:1.5px solid var(--orange);border-radius:var(--radius);
  background:rgba(255,122,24,.08);
}
.biglist-head{
  font-family:'Alfa Slab One',serif;font-size:1rem;color:var(--orange);margin-bottom:.4rem;
}
.biglist-flag p{font-size:.92rem;margin-bottom:.7rem}
.biglist-flag .btn{margin-top:.2rem}

/* ---------- assistant card ---------- */
.assistant-card{border:1px solid rgba(255,122,24,.4)}
.assistant-row{display:flex;gap:.9rem;align-items:flex-start;margin-bottom:.9rem}
.assistant-glyph{
  flex:0 0 auto;width:44px;height:44px;border-radius:10px;color:var(--orange);
  background:rgba(255,122,24,.1);display:flex;align-items:center;justify-content:center;
}
.assistant-glyph svg{width:26px;height:26px}

/* ---------- footer branding ---------- */
.foot-logo{
  display:inline-block;font-family:'Alfa Slab One',serif;font-size:1.15rem;
  letter-spacing:.08em;color:var(--ink);text-decoration:none;margin-bottom:.7rem;
}
.foot-logo span{color:var(--orange)}
.foot-legal{font-size:.85rem;margin-top:.9rem}
.foot-legal a{color:var(--ink-dim)}

/* ---------- bait bar ---------- */
.bait-bar{
  max-width:640px;margin:1.5rem auto;padding:1.1rem;position:relative;z-index:2;
  border:1px dashed rgba(255,122,24,.5);border-radius:var(--radius);
  background:rgba(255,122,24,.05);margin-left:1rem;margin-right:1rem;
}
@media(min-width:672px){.bait-bar{margin-left:auto;margin-right:auto}}
.bait-bar p{font-size:.92rem;margin-bottom:.7rem}
.bait-bar .btn{width:auto}

/* ---------- footer ---------- */
.site-foot{
  text-align:center;padding:2rem 1.4rem 3rem;color:var(--ink-dim);font-size:.88rem;
  position:relative;z-index:2;max-width:640px;margin:0 auto;
}
.site-foot .pulse-mark{opacity:.5;margin-bottom:.8rem}
.site-foot .pulse-mark path{animation:none;stroke-dashoffset:0}
.site-foot p{margin-bottom:.6rem}

/* ---------- toast ---------- */
.toast{
  position:fixed;bottom:90px;left:50%;transform:translateX(-50%) translateY(20px);
  background:var(--teal);color:#06251F;font-weight:700;padding:.7rem 1.2rem;border-radius:99px;
  opacity:0;transition:all .25s;z-index:99;pointer-events:none;white-space:nowrap;
}
.toast.show{opacity:1;transform:translateX(-50%) translateY(0)}

/* ---------- modal ---------- */
.modal-back{
  position:fixed;inset:0;background:rgba(5,5,5,.75);z-index:80;display:flex;
  align-items:flex-end;justify-content:center;backdrop-filter:blur(4px);
}
.modal{
  background:var(--navy-card);border-radius:18px 18px 0 0;padding:1.4rem;width:100%;max-width:640px;
  border-top:2px solid var(--gold);
}
.modal h3{font-family:'Alfa Slab One',serif;margin-bottom:.8rem;letter-spacing:.02em}
.modal .btn{margin-top:.5rem}

@media(min-width:480px){
  .trade-grid{grid-template-columns:repeat(3,1fr)}
  .modal-back{align-items:center}
  .modal{border-radius:18px;border:1px solid rgba(255,122,24,.4)}
}

/* respect reduced motion */
@media (prefers-reduced-motion: reduce){
  *,*::before,*::after{animation-duration:.01ms !important;animation-iteration-count:1 !important;transition-duration:.01ms !important}
  .hero > *, .hero-bubble-wrap > *{opacity:1;transform:none}
}
