:root {
  --c-primary: #008580;
  --c-dark: #005753;
  --c-light: #C6E8E5;
  --c-bg: #EDF5F3;
  --c-white: #FFFFFF;
  --c-text: #171D1C;
  --c-text2: #3D4948;
  --c-muted: #6D7A78;
  --c-faint: #A0ACAA;
  --c-amber: #FCC900;
  --c-coral: #F99F80;
  --c-navy: #305B80;
  --c-border: #E4E9E8;
  --c-track: #DBE5E0;
  --c-hover: #F0FBF7;
  --grad-primary: linear-gradient(135deg, #3DC0A1, #008580);
  --grad-teal: linear-gradient(160deg, #005753, #1B9282, #3DC0A1);
  --shadow-card: 0 4px 16px rgba(0,108,88,0.10);
}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{font-family:'Plus Jakarta Sans',sans-serif;color:var(--c-text);background:var(--c-bg);overflow-x:hidden;min-height:100vh;width:100%;margin:0;padding:0}

/* ── NAVBAR ── */
.nav{position:fixed;top:0;left:0;right:0;height:64px;background:rgba(237,245,243,.92);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-bottom:1px solid rgba(228,233,232,.5);z-index:900;display:flex;align-items:center}
.nav-inner{max-width:1200px;width:100%;margin:0 auto;padding:0 40px;display:flex;align-items:center;justify-content:space-between}
.nav-logo{display:flex;align-items:center;gap:10px;text-decoration:none;cursor:pointer}
.logo-circle{width:32px;height:32px;border-radius:50%;background:linear-gradient(135deg,#3DC0A1,#1B9282);display:flex;align-items:center;justify-content:center;flex-shrink:0}
.logo-circle svg{width:18px;height:18px}
.logo-word{font-size:18px;font-weight:800;color:var(--c-text)}
.nav-qcount{font-size:13px;font-weight:600;color:var(--c-muted);transition:opacity .3s}
.nav-qcount.hidden{opacity:0;pointer-events:none}
.nav-left{display:flex;align-items:center;gap:4px}
.nav-back{background:transparent;border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;width:44px;height:44px;min-width:44px;border-radius:50%;padding:8px;transition:background .15s;flex-shrink:0;-webkit-tap-highlight-color:transparent}
.nav-back:hover{background:rgba(0,108,88,.08)}
.nav-back:active{background:rgba(0,108,88,.14)}
.nav-back.hidden{display:none}

/* ── Q1 INTRO SPLASH — full-screen teal overlay, hides the rest of the UI ── */
.quiz-header-subtext{
  position:fixed;top:0;left:0;width:100%;height:100%;
  background:#1B9282;z-index:1000;
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  padding:0 24px;box-sizing:border-box;
  animation:qhsFadeOut 0.5s ease forwards;animation-delay:3400ms;
}
.quiz-header-subtext.hidden{display:none}
.qhs-line1{font-size:20px;color:#FFFFFF;font-weight:700;text-align:center;text-shadow:0 2px 12px rgba(0,0,0,.15);line-height:1.6}
.qhs-line2{font-size:14px;color:rgba(255,255,255,.85);font-weight:400;text-align:center;line-height:1.6;margin-top:4px}

/* Q1 kinetic reveal — subtext words slide up + fade in, hold so it's readable, fade out, then question/answers fade in */
@keyframes wordReveal{from{opacity:0;transform:translateY(16px);filter:blur(2px)}to{opacity:1;transform:translateY(0);filter:blur(0)}}
.word-reveal{display:inline-block;opacity:0;animation:wordReveal 0.4s ease forwards}
@keyframes qhsFadeOut{from{opacity:1}to{opacity:0}}
@keyframes q1FadeIn{from{opacity:0}to{opacity:1}}
.q1-reveal{opacity:0;animation:q1FadeIn 0.5s ease forwards;animation-delay:3900ms}

/* Reduced-motion: drop the kinetic reveal and collapse the ~3.9s gate so the
   splash is effectively skipped. Keep tiny opacity fades (which still fire
   animationend, so JS completion runs) but remove the slide/blur motion. */
@media (prefers-reduced-motion: reduce){
  .word-reveal{opacity:1;animation:none}
  .quiz-header-subtext{animation:qhsFadeOut 0.2s ease forwards;animation-delay:600ms}
  .q1-reveal{animation:q1FadeIn 0.2s ease forwards;animation-delay:800ms}
}

/* ── PROGRESS BAR ── */
.pbar{position:fixed;top:64px;left:0;right:0;height:5px;background:var(--c-track);z-index:899;transition:opacity .3s}
.pbar.hidden{opacity:0;pointer-events:none}
.pbar-fill{height:100%;background:linear-gradient(90deg,#3DC0A1,#008580);width:0%;transition:width .45s cubic-bezier(.4,0,.2,1)}

/* ── SCREEN ── */
.screen{display:none;min-height:100vh;padding-top:64px;width:100%;box-sizing:border-box}
.screen.active{display:block}

/* ── TWO-COL LAYOUT ── */
.twocol{display:flex;min-height:calc(100vh - 64px)}
.col-l{width:45%;background:var(--grad-teal);display:flex;flex-direction:column;align-items:center;justify-content:center;padding:40px;position:relative;overflow:hidden;cursor:pointer}
.col-r{width:55%;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:64px}
.col-r.bg-white{background:var(--c-white)}
.col-r.bg-bg{background:var(--c-bg)}
.col-r-inner{width:100%;max-width:480px}

/* ── BUTTONS ── */
.btn{display:block;width:100%;padding:18px 24px;border:none;border-radius:999px;font-family:inherit;font-size:16px;font-weight:700;cursor:pointer;text-align:center;transition:transform .18s,box-shadow .18s,opacity .18s;line-height:1}
.btn-primary{background:var(--grad-primary);color:#fff;box-shadow:0 4px 16px rgba(0,133,128,.28)}
.btn-primary:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 8px 24px rgba(0,133,128,.38)}
.btn-primary:disabled{background:var(--c-track);color:var(--c-faint);cursor:not-allowed;box-shadow:none}
.btn-primary.lg{font-size:18px;padding:20px 24px}
.btn-primary.md{font-size:17px;padding:20px 24px}
.btn-secondary{background:#fff;border:1.5px solid var(--c-border);color:var(--c-text2);padding:16px 24px}
.btn-secondary:hover{border-color:var(--c-primary)}
.btn-link{background:none;border:none;color:var(--c-muted);font-size:14px;font-weight:600;cursor:pointer;font-family:inherit;padding:8px 0;display:block;text-align:center;width:100%;transition:color .18s}
.btn-link:hover{color:var(--c-primary)}

/* ── ANSWER CARDS ── */
.answer-wrap{margin-bottom:12px}
.answer{width:100%;padding:16px 20px;background:#fff;border:1.5px solid #E4E8F0;border-radius:14px;display:flex;align-items:center;cursor:pointer;transition:border-color 150ms,background 150ms,opacity 200ms;text-align:left;box-shadow:0 1px 3px rgba(0,0,0,.04)}
.answer:hover{border-color:#1B9282;background:#F0FAF8}
.answer.sel{border:2px solid #006C58!important;background:#E8F7F4;animation:answerBounce 200ms ease forwards}
.answer.sel .opt-text{color:#006C58}
.answer.unsel{opacity:.6}
@keyframes answerBounce{0%{transform:scale(1)}50%{transform:scale(1.02)}100%{transform:scale(1)}}
.opt-letter{display:none}
.opt-text{font-size:15px;font-weight:500;color:#1A1A1A;line-height:1.4}
@keyframes slideOutLeft{from{transform:translateX(0);opacity:1}to{transform:translateX(-30px);opacity:0}}
@keyframes slideInRight{from{transform:translateX(30px);opacity:0}to{transform:translateX(0);opacity:1}}
.quiz-slide-out{animation:slideOutLeft 200ms cubic-bezier(.4,0,.2,1) forwards;pointer-events:none}
.quiz-slide-in{animation:slideInRight 250ms cubic-bezier(.4,0,.2,1) forwards}

/* ── INPUTS ── */
.form-group{margin-bottom:18px}
.form-label{display:block;font-size:13px;font-weight:700;color:var(--c-text);margin-bottom:8px}
.form-label span{color:var(--c-muted);font-weight:400}
.form-input{width:100%;padding:16px 20px;border:1.5px solid var(--c-border);border-radius:14px;font-family:inherit;font-size:16px;color:var(--c-text);outline:none;transition:border-color .18s,box-shadow .18s;background:#fff}
.form-input:focus{border-color:var(--c-primary);box-shadow:0 0 0 3px rgba(0,133,128,.12)}
.form-input::placeholder{color:var(--c-faint)}

/* ── PILL ── */
.pill{display:inline-flex;align-items:center;border-radius:999px;font-weight:700;line-height:1}
.pill-teal{background:var(--c-light);color:var(--c-dark);padding:8px 20px;font-size:13px}
.pill-white{background:#fff;color:var(--c-primary);padding:8px 20px;font-size:13px}
.pill-glass{background:rgba(255,255,255,.2);color:#fff;padding:6px 14px;font-size:12px}

/* ── STEP DOTS ── */
.step-dots{display:flex;gap:8px;justify-content:center;margin-top:16px}
.sdot{width:8px;height:8px;border-radius:50%;background:rgba(255,255,255,.3);transition:all .3s}
.sdot.active{width:10px;height:10px;background:#fff}

/* ── STICKY BAR ── */
.sticky-bar{position:fixed;bottom:0;left:0;right:0;background:#fff;border-top:1px solid var(--c-border);padding:12px 40px;display:flex;align-items:center;justify-content:space-between;z-index:800}
.sticky-text{font-size:12px;color:var(--c-muted)}
.sticky-stores{display:flex;gap:8px}
.store-btn{background:var(--c-text);color:#fff;border-radius:999px;padding:8px 16px;font-size:12px;font-weight:700;cursor:pointer;border:none;font-family:inherit;display:inline-flex;align-items:center;gap:5px;text-decoration:none;line-height:1}

/* ── COLOR PICKER ── */
.color-picker{display:flex;gap:12px;flex-wrap:wrap}
.cswatch{width:48px;height:48px;border-radius:50%;cursor:pointer;position:relative;transition:transform .18s;flex-shrink:0}
.cswatch:hover{transform:scale(1.1)}
.cswatch.active{outline:3px solid #fff;outline-offset:3px;box-shadow:0 0 0 5px var(--swatch-color, #008580)}
.cswatch.disabled{opacity:.3;cursor:not-allowed}
.cswatch.disabled::after{content:'✕';position:absolute;inset:0;display:flex;align-items:center;justify-content:center;color:#fff;font-size:18px;font-weight:700}

/* ── ROLE ROW ── */
.role-row{display:flex;align-items:center;gap:12px;margin-top:16px;padding:14px 0;border-top:1px solid var(--c-border)}
.role-label-txt{font-size:13px;font-weight:700;color:var(--c-muted);text-transform:uppercase;letter-spacing:1px;flex:1}

/* ── FEATURE CARDS ── */
.feat-card{background:#fff;border:1px solid var(--c-border);border-radius:16px;padding:18px;display:flex;align-items:flex-start;gap:14px;margin-bottom:12px;transition:transform .18s;cursor:default}
.feat-card:hover{transform:translateY(-2px)}
.feat-icon{width:48px;height:48px;min-width:48px;background:var(--c-light);border-radius:14px;display:flex;align-items:center;justify-content:center;font-size:22px}
.feat-title{font-size:15px;font-weight:700;color:var(--c-text);margin-bottom:4px}
.feat-sub{font-size:13px;color:var(--c-muted);line-height:1.4}

/* ── INSIGHT BLOCK ── */
.insight{border-left:4px solid var(--c-primary);background:var(--c-bg);border-radius:0 14px 14px 0;padding:16px 20px;margin-bottom:16px}
.insight-txt{font-size:16px;font-weight:700;color:var(--c-text);line-height:1.5}

/* ── SOCIAL PROOF ── */
.social-block{background:var(--c-bg);border-radius:16px;padding:20px;margin-top:4px}
.social-quote{font-size:15px;color:var(--c-text2);font-style:italic;margin-top:8px;line-height:1.5}
.social-attr{font-size:13px;font-weight:700;color:var(--c-text);margin-top:8px}

/* ── PLAN CARDS ── */
.plan-card{border:1.5px solid var(--c-border);border-radius:18px;padding:20px;margin-bottom:14px;cursor:pointer;transition:border-color .18s;position:relative}
.plan-card:hover{border-color:var(--c-primary)}
.plan-card.prem{border:2px solid var(--c-primary);background:#F0FBF8}
.best-badge{position:absolute;top:-12px;right:20px;background:var(--c-light);color:var(--c-dark);border-radius:999px;padding:4px 14px;font-size:11px;font-weight:800}
.plan-lbl{font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:1.5px;color:var(--c-muted)}
.plan-lbl.p{color:var(--c-primary)}
.plan-price{font-size:22px;font-weight:800;color:var(--c-text);margin-top:4px}
.plan-price.lg{font-size:26px}
.plan-sub{font-size:14px;color:var(--c-muted);margin-left:8px}
.plan-feats{font-size:13px;color:var(--c-text2);margin-top:8px;line-height:1.6}

/* ── MODAL ── */
.modal-bg{position:fixed;inset:0;background:rgba(0,0,0,.4);z-index:1000;display:flex;align-items:center;justify-content:center;padding:20px;opacity:0;pointer-events:none;transition:opacity .25s}
.modal-bg.open{opacity:1;pointer-events:all}
.modal-card{background:#fff;border-radius:24px;padding:32px;max-width:380px;width:100%;box-shadow:0 24px 80px rgba(0,0,0,.2);transform:translateY(20px);transition:transform .25s}
.modal-bg.open .modal-card{transform:translateY(0)}

/* ── CHILD CARD ── */
.child-card{background:#fff;border:1.5px solid var(--c-border);border-radius:16px;padding:20px;margin-bottom:12px}
.child-lbl{font-size:12px;font-weight:700;color:var(--c-muted);text-transform:uppercase;letter-spacing:1px;margin-bottom:14px}
.add-child-btn{color:var(--c-primary);font-size:14px;font-weight:700;cursor:pointer;background:none;border:none;font-family:inherit;padding:6px 0;display:flex;align-items:center;gap:6px}

/* ── GOOGLE BTN ── */
.google-btn{width:100%;background:#fff;border:1.5px solid var(--c-border);border-radius:999px;padding:18px;display:flex;align-items:center;justify-content:center;gap:12px;font-family:inherit;font-size:16px;font-weight:700;color:var(--c-text);cursor:pointer;transition:border-color .18s,box-shadow .18s;box-shadow:0 2px 8px rgba(0,0,0,.06)}
.google-btn:hover{border-color:var(--c-primary);box-shadow:0 4px 12px rgba(0,133,128,.12)}

/* ── DIVIDER ── */
.divider{display:flex;align-items:center;gap:12px;margin:24px 0}
.div-line{flex:1;height:1px;background:var(--c-border)}
.div-txt{font-size:13px;color:var(--c-faint)}

/* ── LOADING ── */
.load-track{max-width:360px;width:100%;height:8px;background:var(--c-track);border-radius:999px;overflow:hidden}
.load-fill{height:100%;background:var(--grad-primary);border-radius:999px;width:0%;transition:width .12s linear}
.checklist{max-width:360px;width:100%;margin:0 auto;text-align:left}
.chk-item{display:flex;align-items:center;gap:12px;margin-bottom:14px;opacity:0;transform:translateY(12px);transition:opacity .35s,transform .35s}
.chk-item.show{opacity:1;transform:translateY(0)}
.chk-circle{width:28px;height:28px;min-width:28px;background:var(--c-light);color:var(--c-dark);border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:800}
.chk-txt{font-size:15px;color:var(--c-text2)}

/* ── CONFETTI ── */
.confetti-wrap{position:absolute;inset:0;overflow:hidden;pointer-events:none}
.conf{position:absolute;width:10px;height:10px;border-radius:50%;animation:confFall 2.8s ease-in infinite}

/* ── ANIMATIONS ── */
@keyframes fadeUp{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}
@keyframes popIn{0%{opacity:0;transform:scale(.75)}70%{transform:scale(1.08)}100%{opacity:1;transform:scale(1)}}
@keyframes confFall{0%{transform:translateY(-10px) rotate(0deg);opacity:1}100%{transform:translateY(130px) rotate(720deg);opacity:0}}
@keyframes windowOn{0%{opacity:.25;fill:rgba(255,255,255,.25)}100%{opacity:1;fill:rgba(255,252,220,.9)}}
@keyframes avatarPop{0%{opacity:0;transform:scale(0) translateY(8px)}70%{transform:scale(1.1) translateY(-2px)}100%{opacity:1;transform:scale(1) translateY(0)}}
@keyframes slideLeft{from{opacity:0;transform:translateX(18px)}to{opacity:1;transform:translateX(0)}}
@keyframes pulse{0%,100%{transform:scale(1)}50%{transform:scale(1.04)}}

.anim-fadeup{animation:fadeUp .5s ease both}
.anim-popin{animation:popIn .55s ease both}
.d1{animation-delay:.05s}.d2{animation-delay:.15s}.d3{animation-delay:.25s}.d4{animation-delay:.35s}.d5{animation-delay:.45s}.d6{animation-delay:.55s}

/* ── RESPONSIVE ── */
@media(max-width:1199px){
  .twocol{flex-direction:column;min-height:auto}
  .col-l{width:100%;height:280px;min-height:280px;cursor:default}
  .col-l.half{height:200px;min-height:200px}
  .col-r{width:100%;padding:40px;justify-content:flex-start;align-items:flex-start}
  .col-r-inner{max-width:600px;margin:0 auto;width:100%}
  .sticky-bar{padding:12px 24px}
  .screen.quiz-screen{padding-bottom:80px}
}
@media(max-width:767px){
  /* ── (5) NAVBAR MOBILE ── */
  .nav{height:56px}
  .pbar{top:56px}
  .screen{padding-top:56px}
  .nav-inner{padding:0 16px}
  .nav-logo img{width:28px!important;height:28px!important}
  .logo-word{font-size:16px!important}
  .nav-qcount{font-size:12px!important}

  /* ── LAYOUT ── */
  .col-l{height:240px;min-height:240px}
  .col-l.half{height:210px;min-height:210px}
  .col-r{padding:24px 20px}
  .btn{font-size:15px}
  .btn.lg{font-size:17px}
  .break-headline{font-size:28px!important}
  .result-name{font-size:26px!important}
  .intro-headline{font-size:32px!important}

  /* ── (1) REMOVE DUPLICATE COUNTER inside content ── */
  .quiz-counter{display:none}

  /* ── (2) REMOVE TEAL LEFT PANEL on quiz screen ── */
  #screen-quiz .col-l{display:none!important}
  #screen-quiz .col-r{width:100%!important;min-height:0!important;align-items:flex-start!important;justify-content:flex-start!important}

  /* ── (3) FIT QUIZ ON ONE SCREEN — compact spacing ── */
  #screen-quiz .col-r{padding:16px 0 0!important}
  .quiz-q{font-size:clamp(18px,5vw,22px)!important;font-weight:700!important;line-height:1.35!important;margin:0!important;padding:16px 20px 24px!important;max-height:28vh;overflow:hidden;flex-shrink:0;text-align:left!important;}
  .quiz-framing{text-align:left!important;padding:10px 20px 2px!important;margin:0!important;flex-shrink:0;}
  #quizCounter{display:none!important;}
  #navQCount{display:none!important;}
  .answer-wrap{margin-bottom:0!important}
  .opt-text{font-size:15px!important}
  .quiz-next-wrap{margin-top:0!important;padding-bottom:max(14px,env(safe-area-inset-bottom))!important;position:static!important;padding-left:16px!important;padding-right:16px!important}
  #quizNext{padding:14px!important;font-size:15px!important;position:static!important}

  /* ── (4) REMOVE STICKY BOTTOM BAR on mobile ── */
  .sticky-bar{display:none!important}
  .quiz-screen{padding-bottom:0!important}

  /* ── (5) NO EMPTY SPACE — content height fits content ── */
  #screen-quiz{min-height:0!important;}
  body{background:#fff}

  /* ── (6) BACKGROUND ── */
  #screen-quiz.active{background:#E8F7F4!important}
  .quiz-deco{display:none}

}

/* ════════════════════════════════════════════════
   MOBILE LAYOUT FIXES
   ════════════════════════════════════════════════ */

/* Fix 1 — Break & That's OK: fill remaining viewport, button pinned to bottom */
@media(max-width:767px){
  #screen-break .twocol,
  #screen-thatsok .twocol{min-height:calc(100vh - 56px);display:flex;flex-direction:column}
  #screen-break .col-l{height:38vh;min-height:200px;flex-shrink:0;position:relative;overflow:hidden;width:100%}
  #screen-break .col-r,
  #screen-thatsok .col-r{flex:1;justify-content:flex-start!important;padding-bottom:0!important}
  #screen-break .break-btn-wrap,
  #screen-thatsok .break-btn-wrap{margin-top:auto!important;max-width:none!important;padding:0 0 max(32px, calc(env(safe-area-inset-bottom) + 16px))!important}
}

/* Fix 2+3 — Quiz: full-viewport flex layout, in-flow Next button */
@media(max-width:767px){
  #screen-quiz.active{
    height:100dvh!important;overflow:hidden!important;
    display:flex!important;flex-direction:column!important;
    padding-top:56px!important;position:relative!important;
  }
  #screen-quiz .twocol{flex:1!important;min-height:0!important;display:flex!important;flex-direction:column!important}
  #screen-quiz .col-r{
    flex:1!important;min-height:0!important;
    display:flex!important;flex-direction:column!important;
    padding:0!important;position:relative!important;z-index:1!important;
  }
  #screen-quiz .col-r-inner{
    flex:1!important;min-height:0!important;
    display:flex!important;flex-direction:column!important;
    padding-bottom:0!important;overflow:hidden!important;
    position:relative!important;z-index:1!important;
  }

  /* quizCounter pill */
  #quizCounter{padding:0 16px 4px!important;flex-shrink:0}

  /* quizQuestion */
  #quizQuestion{flex-shrink:0!important;}

  /* quizAnswers: common */
  #quizAnswers{flex:0 0 auto;display:flex;flex-direction:column;overflow:visible}

  #screen-quiz .col-r-inner{justify-content:flex-start!important;padding-top:8px!important;}

  /* Pattern 3: text options */
  #quizAnswers:has(.answer-wrap){
    justify-content:flex-start;overflow:visible;
    gap:clamp(8px,1.8vh,14px);
    padding:0 16px;
  }
  #quizAnswers:has(.answer-wrap) .answer-wrap{
    flex:none;display:flex;
  }
  #quizAnswers:has(.answer-wrap) .answer{
    min-height:52px;height:auto;
    display:flex;align-items:center;justify-content:flex-start;
    padding:14px 16px!important;box-sizing:border-box;width:100%;
    text-align:left;
  }
  #quizAnswers .answer.sel{border-color:#5BB8A0!important;box-shadow:none!important;background:#F0FAF7!important;}

  /* Pattern 1: image grid fills remaining space */
  #quizAnswers .img-grid{
    flex:1;min-height:0;width:100%;max-width:none!important;
    display:grid!important;grid-template-columns:1fr 1fr;grid-template-rows:1fr 1fr;
    gap:8px!important;padding:8px 16px!important;margin-bottom:0!important;
    height:auto!important;
  }
  #quizAnswers .img-card{height:100%!important;min-height:0!important;aspect-ratio:unset!important}

  /* Next button: in-flow */
  .quiz-next-wrap{
    position:static!important;flex-shrink:0!important;
    background:transparent!important;border-top:none!important;
    padding:8px 16px max(20px,calc(env(safe-area-inset-bottom) + 10px))!important;
    margin-top:0!important;max-width:none!important;z-index:auto;
  }
  #quizNext{padding:14px!important;font-size:15px!important;font-weight:700!important}

  /* Break screen — fit 1 screen */
  #screen-break.active{
    height:100vh!important;overflow:hidden!important;
    display:flex!important;flex-direction:column!important;padding-top:0!important;
  }
  #screen-break .twocol{flex:1!important;min-height:0!important;display:flex!important;flex-direction:column!important;height:100%!important}
  #screen-break .col-l{height:35vh!important;flex-shrink:0!important}
  #screen-break .col-r{flex:1!important;min-height:0!important;overflow:hidden!important;padding:16px 20px 0!important}
  #screen-break .break-sub{
    display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;
  }
}

/* ════════════════════════════════════════════════
   PATTERN 4 — SWIPE CARD (tinder-style, single card)
   ════════════════════════════════════════════════ */
.swipe4-container{
  flex:1;min-height:0;
  display:flex;flex-direction:column;
  align-items:stretch;gap:10px;
}
.swipe4-stage{flex:none;width:calc(100% - 32px);height:55vh;min-height:300px;margin:0 auto;position:relative;overflow:hidden;border-radius:16px}
.swipe4-card{
  position:absolute;inset:0;border-radius:16px;overflow:hidden;
  cursor:grab;user-select:none;touch-action:none;will-change:transform;
  background:linear-gradient(135deg,#C6E8E5,#E8F7F4);
}
.swipe4-card.snap{transition:transform .26s cubic-bezier(.25,.46,.45,.94),opacity .26s}
.swipe4-card img{width:100%;height:100%;object-fit:cover;display:block;pointer-events:none}
.swipe4-overlay{
  position:absolute;inset:0;pointer-events:none;
  /* Only a subtle vignette at very edges — doesn't cover the subject */
  background:linear-gradient(to top,rgba(0,0,0,.28) 0%,transparent 22%),
             linear-gradient(to bottom,rgba(0,0,0,.14) 0%,transparent 18%);
}
.swipe4-pill{
  position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);
  background:rgba(0,0,0,.45);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);
  border:1px solid rgba(255,255,255,.25);border-radius:50px;
  padding:10px 20px;font-size:15px;font-weight:700;color:#fff;
  white-space:nowrap;display:flex;align-items:center;gap:8px;
  pointer-events:none;max-width:calc(100% - 32px);text-align:center;
}
.swipe4-label{display:none}
.swipe4-badge-like{
  position:absolute;top:22px;left:18px;
  background:#1B9282;color:#fff;border-radius:8px;
  padding:6px 14px;font-size:14px;font-weight:800;border:3px solid #fff;
  opacity:0;transform:rotate(-15deg);transition:opacity .1s;pointer-events:none;
}
.swipe4-badge-nope{
  position:absolute;top:22px;right:18px;
  background:#E53935;color:#fff;border-radius:8px;
  padding:6px 14px;font-size:14px;font-weight:800;border:3px solid #fff;
  opacity:0;transform:rotate(15deg);transition:opacity .1s;pointer-events:none;
}
.swipe4-actions{
  display:flex;align-items:center;justify-content:center;gap:32px;flex-shrink:0;padding:2px 0;
}
.swipe4-btn{
  width:58px;height:58px;border-radius:50%;border:none;
  display:flex;align-items:center;justify-content:center;
  font-size:24px;cursor:pointer;-webkit-tap-highlight-color:transparent;transition:transform .12s;
}
.swipe4-btn:active{transform:scale(.88)}
.swipe4-nope{background:#fff;border:2px solid #E0E0E0!important;color:#666;box-shadow:0 2px 8px rgba(0,0,0,.1)}
.swipe4-like{background:#1B9282;color:#fff;box-shadow:0 4px 18px rgba(27,146,130,.38)}
.swipe4-dots{
  display:flex;align-items:center;justify-content:center;gap:6px;flex-shrink:0;padding-bottom:2px;
}
.sdot4{height:8px;border-radius:4px;background:#E0E0E0;width:8px;transition:all .25s}
.sdot4.on{background:var(--c-primary);width:20px}
.sdot4.sdot4-like{background:var(--c-primary);opacity:.55;width:8px}
.sdot4.sdot4-skip{background:#C0C8C6;width:8px}
.swipe4-counter{
  text-align:center;font-size:13px;font-weight:700;
  color:var(--c-muted);flex-shrink:0;letter-spacing:.3px;
  transition:color .2s;
}
.swipe4-counter.done{color:var(--c-primary)}

/* ── SAFE AREA — bottom buttons (all screens) ── */
@media(max-width:767px){
  /* Pattern 4 swipe card: pad the base of the flex container
     so ❌/❤️ buttons sit above the home indicator */
  .swipe4-container{padding-bottom:max(32px, calc(env(safe-area-inset-bottom) + 8px))!important}
  .swipe4-actions{padding-bottom:0!important}

  /* Setup screens: last button in col-r-inner */
  #screen-setup1 .col-r-inner,
  #screen-setup2 .col-r-inner,
  #screen-setup3 .col-r-inner,
  #screen-setup4 .col-r-inner{padding-bottom:max(32px, calc(env(safe-area-inset-bottom) + 16px))!important}

  /* Paywall v3: safe area handled by pw3-body padding */
}

/* ════════════════════════════════════════════════
   SCREEN — REGISTER (hero image + form)
   ════════════════════════════════════════════════ */
#screen-register.active{
  display:block!important;
  min-height:100vh;padding-top:0!important;background:#fff;
  overflow-y:auto;
}
body:has(#screen-register.active) .nav,
body:has(#screen-register.active) .pbar{display:none!important}
body:has(#screen-result.active) .nav,
body:has(#screen-paywall.active) .nav,
body:has(#screen-download.active) .nav,
body:has(#screen-result.active) .pbar,
body:has(#screen-paywall.active) .pbar,
body:has(#screen-download.active) .pbar{display:none!important}

/* Hero image section */
.reg-hero{
  position:relative;
  width:100%;height:46vh;min-height:260px;max-height:420px;
  overflow:hidden;flex-shrink:0;
}
.reg-hero img{
  width:100%;height:100%;
  object-fit:cover;object-position:center 30%;
  display:block;
}
/* Warm golden overlay — gives the "golden hour" feel */
.reg-hero::before{
  content:'';position:absolute;inset:0;
  background:linear-gradient(135deg, rgba(252,201,0,.18) 0%, rgba(180,100,20,.22) 100%);
  mix-blend-mode:multiply;pointer-events:none;z-index:1;
}
/* Gradient fade to white at the bottom */
.reg-hero::after{
  content:'';position:absolute;bottom:0;left:0;right:0;
  height:50%;
  background:linear-gradient(to bottom, transparent 0%, rgba(255,255,255,0.97) 100%);
  pointer-events:none;z-index:2;
}
/* Back button — top-left over image */
.reg-back-btn{
  position:absolute;top:16px;left:16px;z-index:10;
  background:rgba(255,255,255,0.82);backdrop-filter:blur(8px);
  border:none;border-radius:999px;
  display:flex;align-items:center;gap:5px;
  font-size:13px;font-weight:700;color:var(--c-text2);
  padding:8px 14px 8px 10px;cursor:pointer;
  font-family:inherit;
  box-shadow:0 2px 8px rgba(0,0,0,.10);
  transition:background .15s,transform .12s;
}
.reg-back-btn:active{transform:scale(.97)}
/* Fami badge over image, bottom-left */
.reg-hero-badge{
  position:absolute;bottom:20px;left:50%;transform:translateX(-50%);
  z-index:5;
  display:flex;align-items:center;gap:8px;
  background:rgba(255,255,255,0.90);backdrop-filter:blur(10px);
  border-radius:999px;padding:8px 18px 8px 10px;
  box-shadow:0 4px 16px rgba(0,133,128,.18);
}
.reg-hero-badge .logo-circle{width:30px;height:30px}
.reg-hero-badge .logo-word{font-size:16px}

/* Form section */
.signin-outer{
  width:100%;max-width:480px;
  margin:0 auto;
  padding:8px 32px max(44px, calc(env(safe-area-inset-bottom) + 28px));
  display:flex;flex-direction:column;align-items:stretch;
}
.signin-title{font-size:30px;font-weight:800;color:var(--c-text);margin-bottom:6px;line-height:1.15}
.signin-sub{font-size:15px;color:var(--c-muted);margin-bottom:24px;line-height:1.5}
.auth-btn{
  width:100%;height:56px;border-radius:999px;
  display:flex;align-items:center;justify-content:center;gap:12px;
  font-family:inherit;font-size:16px;font-weight:700;cursor:pointer;
  margin-bottom:12px;transition:opacity .15s,transform .12s;
  border:none;letter-spacing:-.1px;
}
.auth-btn:active{transform:scale(.98)}
.auth-apple{background:#000;color:#fff}
.auth-google{background:#fff;color:#3C4043;border:1.5px solid #DADCE0!important;box-shadow:0 1px 4px rgba(0,0,0,.06)}
.signin-alt{font-size:14px;color:var(--c-muted);text-align:center;margin-top:20px}
.signin-alt span{color:var(--c-primary);cursor:pointer;font-weight:700}
.signin-terms{font-size:12px;color:var(--c-faint);text-align:center;margin-top:12px}
.signin-terms a{color:var(--c-faint);text-decoration:none}
.signin-terms a:hover{color:var(--c-primary)}
@media(max-width:767px){
  .reg-hero{height:42vh;min-height:220px}
  .signin-outer{padding:4px 20px max(36px, calc(env(safe-area-inset-bottom) + 20px))}
  .signin-title{font-size:26px}
  .signin-sub{font-size:14px;margin-bottom:20px}
}
/* Desktop: constrain hero width to match form */
@media(min-width:768px){
  #screen-register.active{
    display:flex!important;flex-direction:column;
    align-items:center;justify-content:flex-start;
  }
  .reg-hero{max-width:480px;width:100%;border-radius:0 0 24px 24px;max-height:380px}
  .reg-hero::after{height:40%}
}

/* ════════════════════════════════
   SCREEN 1 — INTRO
   ════════════════════════════════ */
.intro-headline{font-size:42px;font-weight:800;color:var(--c-text);text-align:center;line-height:1.1}
.intro-sub{font-size:18px;color:var(--c-text2);text-align:center;max-width:400px;margin:16px auto 0;line-height:1.6}
.social-proof{font-size:14px;color:var(--c-muted);text-align:center;margin-top:20px}
.intro-btn-wrap{max-width:360px;width:100%;margin:32px auto 0}
.intro-hint{font-size:13px;color:var(--c-faint);text-align:center;margin-top:12px}
.feat-pills-row{display:flex;gap:8px;justify-content:center;flex-wrap:wrap;margin-top:24px}
.intro-logo-big{display:flex;flex-direction:column;align-items:center;margin-bottom:40px}
.logo-circle-lg{width:64px;height:64px;border-radius:50%;background:linear-gradient(135deg,#3DC0A1,#1B9282);display:flex;align-items:center;justify-content:center}
.logo-circle-lg svg{width:34px;height:34px}

/* ════════════════════════════════
   SCREEN 2 — QUIZ
   ════════════════════════════════ */
.quiz-section-icon{width:100px;height:100px;background:rgba(255,255,255,.15);border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:48px;flex-shrink:0}
@media(max-width:767px){.quiz-section-icon{width:72px;height:72px;font-size:34px}}
.quiz-counter{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:1.5px;color:var(--c-muted);margin-bottom:12px}
.quiz-framing{font-size:13px;color:var(--c-faint);margin-bottom:8px;line-height:1.4}
.quiz-q{font-size:28px;font-weight:800;color:var(--c-text);line-height:1.3;max-width:480px;margin-bottom:28px}
.quiz-next-wrap{max-width:480px;margin-top:24px;padding-bottom:90px}
.quiz-screen{padding-bottom:72px}

/* ════════════════════════════════
   PATTERN 1 — IMAGE GRID
   ════════════════════════════════ */
.img-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:20px;max-width:480px}
.img-card{position:relative;border-radius:14px;overflow:hidden;cursor:pointer;border:2.5px solid var(--c-border);transition:border-color .15s,transform .15s;aspect-ratio:13/10;-webkit-tap-highlight-color:transparent;user-select:none}
.img-card:active{transform:scale(.97)}
.img-card.sel{border-color:var(--c-primary)}
.img-card img{width:100%;height:100%;object-fit:cover;display:block;pointer-events:none}
/* Label is a small frosted pill at bottom-left — doesn't cover the subject */
.img-card-label{
  position:absolute;bottom:8px;left:8px;right:8px;
  background:rgba(0,0,0,.54);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);
  color:#fff;font-size:11px;font-weight:700;line-height:1.25;
  border-radius:8px;padding:5px 9px;pointer-events:none;
  /* Constrain to text width — don't span full card */
  display:inline-block;align-self:flex-start;max-width:calc(100% - 16px);
  box-sizing:border-box;
}
.img-card-check{position:absolute;top:8px;right:8px;width:24px;height:24px;border-radius:50%;background:var(--c-primary);display:none;align-items:center;justify-content:center;font-size:12px;color:#fff;font-weight:800;pointer-events:none}
.img-card.sel .img-card-check{display:flex}
@media(max-width:767px){
  .img-grid{gap:8px}
  .img-card-label{font-size:12px;padding:5px 9px;bottom:7px;left:7px;right:7px}
}

/* ════════════════════════════════
   PATTERN 5 — EMOJI GRID
   ════════════════════════════════ */
.emoji-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:20px;max-width:480px}
.emoji-card{position:relative;border:none;border-radius:16px;overflow:hidden;padding:20px 12px;height:clamp(120px,24vh,155px);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;cursor:pointer;transition:all 150ms ease;text-align:center;-webkit-tap-highlight-color:transparent;user-select:none}
.emoji-card:hover{filter:brightness(0.97)}
.emoji-card.sel{box-shadow:0 0 0 2.5px #006C58, 0 6px 16px rgba(0,108,88,0.2)!important;transform:scale(1.03)!important}
.emoji-circle{width:72px;height:72px;border-radius:50%;background:radial-gradient(circle at 35% 35%,rgba(255,255,255,0.6) 0%,rgba(255,255,255,0.1) 100%);box-shadow:0 8px 20px rgba(0,0,0,0.12),0 2px 6px rgba(0,0,0,0.08),inset 0 1px 2px rgba(255,255,255,0.8);display:flex;align-items:center;justify-content:center;flex-shrink:0}
.emoji-card .emoji-icon{font-size:40px;line-height:1}
.emoji-card .emoji-label{font-size:13px;font-weight:600;color:#1A1A1A;text-align:center;line-height:1.3;padding:0 8px}
.emoji-card .img-card-check{position:absolute;top:8px;right:8px}
@media(max-width:767px){
  .emoji-grid{gap:8px}
  .emoji-circle{width:58px;height:58px}
  .emoji-card .emoji-icon{font-size:30px}
  .emoji-card{padding:16px 8px 12px;gap:10px}
  /* Emoji cards fill available height like text answers */
  #quizAnswers:has(.emoji-grid){justify-content:center;overflow:hidden;padding:0 16px}
  #quizAnswers:has(.emoji-grid) .emoji-grid{flex:1;min-height:0;width:100%;max-width:none!important;display:grid!important;grid-template-columns:1fr 1fr;grid-template-rows:1fr 1fr;gap:8px!important;padding:8px 0!important;margin-bottom:0!important;height:auto!important}
  #quizAnswers:has(.emoji-grid) .emoji-card{height:100%!important;min-height:0!important;justify-content:center}
}

/* ════════════════════════════════
   PATTERN 2 — COLLAGE SWIPE
   ════════════════════════════════ */
.swipe-outer{margin-bottom:20px;max-width:480px}
.swipe-scroll{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;gap:12px;scrollbar-width:none;-ms-overflow-style:none;-webkit-overflow-scrolling:touch;padding:4px 2px 8px;cursor:grab}
.swipe-scroll::-webkit-scrollbar{display:none}
.swipe-card{flex-shrink:0;width:260px;scroll-snap-align:start;border-radius:18px;overflow:hidden;border:2.5px solid var(--c-border);cursor:pointer;position:relative;transition:border-color .2s,transform .15s;-webkit-tap-highlight-color:transparent}
.swipe-card:active{transform:scale(.97)}
.swipe-card.sel{border-color:var(--c-primary)}
.collage{display:grid;grid-template-columns:1fr 1fr;gap:2px}
.collage img{width:100%;aspect-ratio:1;object-fit:cover;display:block;pointer-events:none}
.swipe-pill{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);background:rgba(0,0,0,.45);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border:1px solid rgba(255,255,255,.25);border-radius:50px;padding:10px 20px;font-size:15px;font-weight:700;color:#fff;white-space:nowrap;pointer-events:none;text-align:center;max-width:calc(100% - 32px)}
.swipe-check{position:absolute;top:8px;right:8px;width:26px;height:26px;border-radius:50%;background:var(--c-primary);display:none;align-items:center;justify-content:center;font-size:13px;color:#fff;font-weight:800;pointer-events:none}
.swipe-card.sel .swipe-check{display:flex}
.swipe-dots{display:flex;justify-content:center;gap:6px;margin-top:4px}
.swipe-dot{width:6px;height:6px;border-radius:50%;background:var(--c-track);transition:background .2s,width .2s}
.swipe-dot.active{background:var(--c-primary);width:16px;border-radius:3px}
@media(max-width:767px){
  .swipe-card{width:calc(100vw - 72px)}
}

/* ════════════════════════════════
   SCREEN 3 — THAT'S OK
   ════════════════════════════════ */
.check-circle-lg{width:72px;height:72px;background:var(--c-light);color:var(--c-dark);border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:32px;margin:0 auto 24px}
.thatsok-headline{font-size:36px;font-weight:800;color:var(--c-text);text-align:center}
.thatsok-stat{font-size:18px;color:var(--c-text2);text-align:center;margin-top:12px}
.thatsok-msg{font-size:16px;color:var(--c-muted);text-align:center;max-width:380px;margin:16px auto 0;line-height:1.6}
.break-btn-wrap{max-width:360px;width:100%;margin:32px auto 0}
.tap-hint{font-size:12px;color:var(--c-faint);text-align:center;margin-top:12px}

/* ════════════════════════════════
   SCREEN 4 — BREAK
   ════════════════════════════════ */
.break-headline{font-size:38px;font-weight:800;color:var(--c-text);text-align:center}
.break-sub{font-size:18px;color:var(--c-text2);text-align:center;max-width:420px;margin:16px auto 0;line-height:1.6}

/* ════════════════════════════════
   SCREEN 5 — LOADING (redesigned)
   ════════════════════════════════ */
#screen-loading.active{display:flex!important;flex-direction:column;height:100vh;overflow:hidden;padding-top:0!important;background:#EDF5F3;}

/* Hero section */
.ld-hero{position:relative;flex-shrink:0;height:45vh;overflow:hidden;}
.ld-hero-img{width:100%;height:100%;object-fit:cover;object-position:center 30%;}
.ld-hero-overlay{position:absolute;inset:0;background:linear-gradient(to bottom,rgba(0,0,0,0.05),rgba(0,0,0,0.38));pointer-events:none;}

/* Puzzle container */
.ld-puzzle{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;}

/* Puzzle pieces */
.ld-piece{position:absolute;width:36px;height:36px;border-radius:10px;background:rgba(255,255,255,0.92);box-shadow:0 4px 12px rgba(0,0,0,0.25);display:flex;align-items:center;justify-content:center;font-size:20px;opacity:0;will-change:transform,opacity;}

/* Merged family circle */
.ld-merged{position:absolute;width:72px;height:72px;border-radius:50%;background:rgba(255,255,255,0.96);box-shadow:0 8px 32px rgba(0,0,0,0.22);display:flex;align-items:center;justify-content:center;font-size:36px;opacity:0;transform:scale(0.5);will-change:transform,opacity;}
@keyframes ld-pulse{0%,100%{transform:scale(1.0);}50%{transform:scale(1.05);}}

/* Bottom content */
.ld-content{flex:1;background:#F8FDFC;padding:24px 20px max(24px,calc(env(safe-area-inset-bottom)));display:flex;flex-direction:column;align-items:center;overflow:hidden;}
.ld-heading{font-size:28px;font-weight:700;color:#171D1C;text-align:center;margin:0 0 8px;line-height:1.2;}
.ld-sub{font-size:15px;color:#6D7A78;text-align:center;margin:0 0 20px;line-height:1.5;max-width:300px;}
.ld-track-wrap{max-width:320px;width:100%;margin-bottom:20px;}
.ld-track{width:100%;height:6px;background:#E8F7F4;border-radius:4px;overflow:hidden;}
.ld-fill{height:100%;background:#3DC0A1;border-radius:4px;width:0%;transition:width .12s linear;}
.ld-checklist{max-width:320px;width:100%;}

/* Override checklist styles for new loading screen */
#screen-loading .chk-item{display:flex;align-items:center;gap:10px;margin-bottom:10px;opacity:0;transform:translateY(8px);transition:opacity .35s,transform .35s;}
#screen-loading .chk-item.show{opacity:1;transform:translateY(0);}
#screen-loading .chk-circle{width:24px;height:24px;min-width:24px;background:#C6E8E5;color:#3DC0A1;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:800;}
#screen-loading .chk-txt{font-size:14px;color:#3D4948;}

/* Loading — Phase 2 insight items */
.ld-insights{display:flex;flex-direction:column;gap:10px;width:100%;}
.ld-insight{display:flex;align-items:center;gap:8px;opacity:0;transform:translateY(6px);transition:opacity .35s ease,transform .35s ease;}
.ld-insight.show{opacity:1;transform:translateY(0);}
.ld-insight-icon{width:20px;height:20px;min-width:20px;background:#E8F7F4;border-radius:50%;color:#006C58;font-size:12px;font-weight:800;display:flex;align-items:center;justify-content:center;flex-shrink:0;}
.ld-insight-txt{font-size:14px;color:#1A1A1A;font-weight:500;}

/* ════════════════════════════════
   SCREEN 6 — RESULT (Spotify Wrapped style reveal)
   ════════════════════════════════ */
#screen-result.active{display:block!important;padding-top:0!important;height:100vh;overflow:hidden;position:relative;}

/* Desktop: center as mobile card */
@media(min-width:768px){
  #screen-result.active{display:flex!important;justify-content:center;background:#EDF5F3;}
  .rv-scene{max-width:480px;box-shadow:0 0 80px rgba(0,0,0,0.12);}
}

/* Scene container */
.rv-scene{position:relative;width:100%;height:100vh;overflow:hidden;background:#fff;}

/* Blurred BG */
.rv-bg{position:absolute;inset:0;z-index:0;overflow:hidden;}
.rv-bg-img{width:100%;height:100%;object-fit:cover;object-position:center 20%;filter:blur(32px) brightness(0.6);transform:scale(1.12);opacity:0;}
#screen-result.rv-active .rv-bg-img{animation:rv-bg-in 0.9s 0.05s ease forwards;}
@keyframes rv-bg-in{to{opacity:0.55;}}

/* Hero photo */
.rv-photo{position:absolute;top:0;left:0;right:0;height:38vh;z-index:1;overflow:hidden;}
.rv-photo-img{width:100%;height:100%;object-fit:cover;object-position:center 20%;opacity:0;filter:blur(18px);transform:scale(1.07);}
#screen-result.rv-active .rv-photo-img{animation:rv-photo-in 0.95s 0.2s cubic-bezier(0.16,1,0.3,1) forwards;}
@keyframes rv-photo-in{to{opacity:1;filter:blur(0);transform:scale(1);}}
.rv-photo-fade{position:absolute;bottom:0;left:0;right:0;height:120px;background:linear-gradient(transparent,rgba(255,255,255,0.6) 50%,#fff 100%);pointer-events:none;}

/* Scrollable card slides up */
.rv-card{
  position:absolute;left:0;right:0;bottom:0;top:30vh;
  background:#fff;border-radius:24px 24px 0 0;
  padding:12px 0 max(32px,calc(env(safe-area-inset-bottom)+16px));
  overflow-y:auto;z-index:2;
  box-shadow:0 -2px 20px rgba(0,0,0,0.06);
  transform:translateY(100%);
}
#screen-result.rv-active .rv-card{animation:rv-card-up 0.7s 0.55s cubic-bezier(0.16,1,0.3,1) forwards;}
@keyframes rv-card-up{to{transform:translateY(0);}}

/* Handle */
.rv-handle{width:32px;height:4px;background:#E4E9E8;border-radius:2px;margin:0 auto 12px;}

/* Badge pill */
.rv-badge-wrap{display:flex;justify-content:center;margin-bottom:10px;opacity:0;}
#screen-result.rv-active .rv-badge-wrap{animation:rv-pop 0.55s 1.1s cubic-bezier(0.34,1.56,0.64,1) forwards;}
.rv-badge{background:linear-gradient(135deg,#3DC0A1,#006C58);color:#fff;font-size:10px;font-weight:800;letter-spacing:1.5px;text-transform:uppercase;padding:5px 14px;border-radius:999px;box-shadow:0 3px 10px rgba(0,108,88,0.3);}

/* Title */
.rv-title{font-size:26px;font-weight:900;color:#171D1C;text-align:center;line-height:1.15;margin:4px 0 10px;padding:0 20px;opacity:0;letter-spacing:-0.3px;}
#screen-result.rv-active .rv-title{animation:rv-fadeup 0.5s 1.28s ease forwards;}

/* Desc */
.rv-desc{font-size:14px;color:#4D5A58;text-align:center;line-height:1.65;margin:0 0 16px;padding:0 24px;opacity:0;}
#screen-result.rv-active .rv-desc{animation:rv-fadeup 0.5s 1.42s ease forwards;}

/* Stats row */
.rv-stat-row{display:grid;grid-template-columns:1fr 1fr 1fr;gap:10px;margin:16px 20px;opacity:0;}
.key-insight{background:#FFF8ED;border-left:3px solid #B25F00;border-radius:0 10px 10px 0;padding:12px 14px;font-size:13px;color:#633806;line-height:1.5;margin:12px 20px;opacity:0;}
#screen-result.rv-active .key-insight{animation:rv-fadeup 0.5s 1.49s ease forwards;}
.rv-encouragement{font-size:12px;color:#006C58;font-style:italic;text-align:center;padding:0 24px;margin:2px 0 8px;opacity:0;}
#screen-result.rv-active .rv-encouragement{animation:rv-fadeup 0.4s 1.74s ease forwards;}
#screen-result.rv-active .rv-stat-row{animation:rv-fadeup 0.5s 1.56s ease forwards;}
.rv-stat-box{background:#F8FDFB;border:1.5px solid #E0F0ED;border-radius:10px;padding:10px 8px;text-align:center;}
.rv-stat-num{font-size:20px;font-weight:800;color:#008580;line-height:1;}
.rv-stat-lbl{font-size:11px;color:#6D7A78;font-weight:600;margin-top:3px;line-height:1.3;}

/* Feature pills */
.rv-pills{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;padding:0 20px;margin-bottom:12px;opacity:0;}
#screen-result.rv-active .rv-pills{animation:rv-fadeup 0.5s 1.68s ease forwards;}
.rv-pill{background:#E8F7F4;color:#006C58;font-size:12px;font-weight:700;padding:5px 12px;border-radius:20px;border:1.5px solid #9FE1CB;}

/* Social proof */
.rv-social{background:#F8FDFB;border-radius:10px;padding:12px 14px;margin:12px 20px;border:1px solid #E0F0ED;opacity:0;}
#screen-result.rv-active .rv-social{animation:rv-fadeup 0.5s 1.8s ease forwards;}
.rv-stars{font-size:12px;margin-bottom:4px;}
.rv-quote{font-size:12px;color:#3D4948;line-height:1.5;font-style:italic;margin-bottom:4px;}
.rv-attr{font-size:11px;color:#6D7A78;font-weight:600;}

/* CTA button */
.rv-cta{width:calc(100% - 40px);background:linear-gradient(135deg,#3DC0A1,#008580);color:#fff;border:none;border-radius:999px;padding:14px;font-size:15px;font-weight:700;font-family:inherit;cursor:pointer;display:block;margin:16px 20px;box-sizing:border-box;opacity:0;transition:transform 0.18s,box-shadow 0.18s;}
#screen-result.rv-active .rv-cta{animation:rv-fadeup 0.5s 1.95s ease forwards;}
.rv-cta:hover{transform:translateY(-2px);box-shadow:0 8px 24px rgba(0,133,128,0.35);}
.rv-cta:active{transform:scale(0.98);}

.rv-footnote{text-align:center;font-size:12px;color:#A0ACAA;margin-bottom:max(16px,env(safe-area-inset-bottom));opacity:0;}
#screen-result.rv-active .rv-footnote{animation:rv-fadeup 0.4s 2.08s ease forwards;}

@keyframes rv-pop{0%{opacity:0;transform:scale(0.6);}to{opacity:1;transform:scale(1);}}
@keyframes rv-fadeup{0%{opacity:0;transform:translateY(14px);}to{opacity:1;transform:translateY(0);}}

/* ════════════════════════════════
   SCREEN — PAYWALL
   ════════════════════════════════ */
#screen-paywall.active{display:flex!important;flex-direction:column;padding-top:0!important;background:#fff;overflow:hidden;height:100dvh;max-height:100dvh;min-height:unset!important;width:100%;box-sizing:border-box;position:fixed;top:0;left:0;right:0;bottom:0;}
#screen-paywall .pw3-body{flex:1;min-height:0;overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch;max-width:100%;margin:0;display:block;}
.pw3-bottom{flex-shrink:0;width:100%;background:rgba(255,255,255,0.82);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);box-shadow:0 -1px 0 rgba(0,0,0,0.06);padding:12px 20px max(20px,env(safe-area-inset-bottom));box-sizing:border-box;z-index:10;}

/* Hero */
.pw3-hero{position:relative;height:32vh;min-height:170px;overflow:hidden;flex-shrink:0;}
.pw3-hero-img{width:100%;height:100%;object-fit:cover;object-position:center 35%;display:block;margin:0;border-radius:0;transform:scale(1.05);animation:pw3-zoom 7s ease-out forwards;}
@keyframes pw3-zoom{to{transform:scale(1);}}
.pw3-hero-fade{position:absolute;inset:0;background:linear-gradient(to bottom,rgba(0,0,0,0) 30%,rgba(255,255,255,0.85) 75%,rgba(255,255,255,1) 90%);pointer-events:none;}

/* Body */
.pw3-body{flex:1;display:flex;flex-direction:column;padding:0;max-width:480px;margin:0 auto;box-sizing:border-box;width:100%;overflow-x:hidden;}

/* Headline */
.pw3-headline{font-size:20px;font-weight:700;color:#1A1A1A;text-align:center;line-height:1.25;margin:14px 0 16px;padding:0 20px;opacity:0;animation:pw3-up 0.6s 0.2s ease forwards;}

/* Feature pills grid */
.pw3-feat-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:0 20px 16px;opacity:0;animation:pw3-up 0.4s 0.4s ease forwards;}
.pw3-feat-pill{background:#E8F7F4;border-radius:20px;padding:6px 12px;font-size:13px;color:#006C58;font-weight:500;display:flex;align-items:center;justify-content:center;gap:5px;}

/* Testimonial */
.pw3-testimonial{margin:0 20px 16px;padding:10px 0;opacity:0;animation:pw3-up 0.5s 0.56s ease forwards;text-align:center;}
.pw3-quote{font-size:13px;color:#555;font-style:italic;line-height:1.5;margin:0;}

/* Plan cards */
.pw3-plans{display:flex;flex-direction:row;gap:10px;margin:0 16px 16px;box-sizing:border-box;overflow:visible;}
.pw3-plan{flex:1;min-width:0;overflow:visible;box-sizing:border-box;border-radius:16px;padding:14px 10px 12px;cursor:pointer;position:relative;border:2px solid #E5E5E5;background:#fff;
  transition:all 0.25s cubic-bezier(0.34,1.56,0.64,1);
  text-align:center;word-break:break-word;overflow-wrap:break-word;}
#pw3Annual{padding-top:14px;}
.pw3-plan-sel{border-color:#006C58!important;border-width:2.5px!important;background:linear-gradient(160deg,#F0FAF7 0%,#fff 100%)!important;box-shadow:0 8px 24px rgba(0,108,88,0.15)!important;}
.pw3-plan-unsel{border-color:#E5E5E5!important;border-width:2px!important;background:#fff!important;box-shadow:none!important;opacity:0.75!important;}

/* Badge on top of card */
.pw3-best-badge{position:absolute;top:-13px;left:50%;transform:translateX(-50%);
  background:linear-gradient(90deg,#008580,#006C58);color:#fff;font-size:10px;font-weight:700;
  padding:4px 12px;border-radius:20px;white-space:nowrap;letter-spacing:0.3px;
  animation:pw3-badge-pulse 2.5s 3s ease-in-out infinite;}
@keyframes pw3-badge-pulse{0%,100%{transform:translateX(-50%) scale(1);}50%{transform:translateX(-50%) scale(1.07);}}

.pw3-plan-label{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:0.8px;color:#B0B0B0;margin-bottom:4px;}
.pw3-plan-sel .pw3-plan-label{color:#008580!important;}
.pw3-plan-price{font-size:26px;font-weight:800;color:#1A1A1A;line-height:1;margin-bottom:2px;}
.pw3-plan-price span{font-size:12px;font-weight:500;color:#999;}
.pw3-plan-billing{font-size:11px;color:#999;}
.pw3-plan-save{font-size:11px;font-weight:700;color:#fff;background:#E8544A;border-radius:6px;padding:2px 7px;display:inline-block;margin-top:5px;}
.pw3-plan-sel .pw3-plan-price{color:#006C58!important;}

/* Trust badges */
.pw3-trust{display:flex;justify-content:center;gap:16px;margin:0 20px 14px;opacity:0;animation:pw3-up 0.4s 1.2s ease forwards;}
.pw3-badge-item{display:flex;align-items:center;gap:5px;font-size:12px;color:#666;}

/* Primary CTA */
.pw3-cta-primary{width:calc(100% - 40px);background:linear-gradient(135deg,#3DC0A1,#1B9282);color:#fff;border:none;border-radius:50px;
  padding:13px;font-size:15px;font-weight:700;font-family:inherit;cursor:pointer;display:block;margin:0 20px 10px;box-sizing:border-box;
  opacity:0;animation:pw3-up 0.5s 1.35s ease forwards,pw3-breathe 2.8s 2.8s ease-in-out infinite;
  transition:transform 0.18s;}
.pw3-cta-primary:active{transform:scale(0.98);}
@keyframes pw3-breathe{0%,100%{box-shadow:0 6px 20px rgba(0,108,88,0.28);}50%{box-shadow:0 12px 32px rgba(0,108,88,0.45);}}

/* Billing note */
.pw3-billing-note{font-size:12px;color:#999;text-align:center;padding:0;margin:0 0 4px;}

/* Sticky footer */
.pw3-bottom .pw3-cta-primary{opacity:1;animation:none;margin:0 0 10px;width:100%;box-sizing:border-box;}
.pw3-bottom .pw3-free-link{margin:0;text-align:center;}
.pw3-bottom .pw3-free-link span{text-decoration:underline;cursor:pointer;}
.pw3-sticky-footer .pw3-billing-note{margin:0 0 4px;}

/* Continue free */
.pw3-cta-secondary{display:none;}
.pw3-free-link{font-size:13px;color:#999;text-align:center;margin:12px 0 24px;cursor:pointer;}

/* Legal / Terms */
.pw3-terms{font-size:10px;color:#BBB;text-align:center;margin:0 0 10px;padding:0 20px;opacity:0;animation:pw3-up 0.4s 1.75s ease forwards;}
.pw3-legal{font-size:10px;color:#BBB;text-align:center;margin:0 0 12px;padding:0 20px;line-height:1.5;opacity:0;animation:pw3-up 0.4s 1.55s ease forwards;}
.pw3-legal a{color:#BBB;text-decoration:underline;}

/* Review cards — horizontal scroll */
.pw3-reviews-wrap{overflow:visible;margin:0 0 16px;opacity:0;animation:pw3-up 0.5s 0.5s ease forwards;flex-shrink:0;}
.pw3-reviews-scroll{display:flex;gap:10px;overflow-x:auto;padding:4px 20px 8px;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;scrollbar-width:none;box-sizing:border-box;}
.pw3-review-card:first-child{margin-left:0;}
.pw3-review-card:last-child{margin-right:0;}
.pw3-reviews-scroll::-webkit-scrollbar{display:none;}
.pw3-review-card{flex:0 0 75%;min-width:0;scroll-snap-align:start;background:#F8FFFE;border:1.5px solid #E0F2EE;border-radius:14px;padding:13px 14px;box-sizing:border-box;overflow:hidden;word-break:break-word;}
.pw3-rc-top{display:flex;align-items:center;gap:10px;margin-bottom:8px;}
.pw3-rc-avatar{width:40px;height:40px;border-radius:50%;object-fit:cover;flex-shrink:0;background:#eee;}
.pw3-rc-name{font-size:13px;font-weight:700;color:#1A1A1A;line-height:1.2;}
.pw3-rc-loc{font-size:11px;color:#888;margin-top:1px;}
.pw3-rc-stars{font-size:12px;color:#F4A020;letter-spacing:1px;margin-top:2px;}
.pw3-rc-title{font-size:13px;font-weight:700;color:#1A1A1A;margin-bottom:5px;line-height:1.35;}
.pw3-rc-body{font-size:12px;color:#555;line-height:1.5;margin-bottom:8px;}
.pw3-rc-badge{font-size:11px;color:#2A9B6F;font-weight:600;}

/* Best Value ribbon on Annual card */
.pw3-best-ribbon{position:absolute;top:0;right:0;background:linear-gradient(135deg,#E8544A,#c0392b);color:#fff;font-size:9px;font-weight:800;letter-spacing:0.5px;text-transform:uppercase;padding:5px 10px;border-radius:0 14px 0 12px;line-height:1;}

/* Payment method icons */
.pw3-pay-methods{display:flex;flex-direction:column;align-items:center;gap:6px;margin:0 20px 14px;opacity:0;animation:pw3-up 0.4s 1.2s ease forwards;}
.pw3-pay-store-row{display:flex;align-items:center;justify-content:center;gap:16px;}
.pw3-pay-store-btn{display:flex;align-items:center;gap:5px;font-size:12px;font-weight:600;color:#444;background:#F5F5F5;border-radius:8px;padding:5px 12px;border:1px solid #E0E0E0;}
.pw3-pay-card-row{display:flex;align-items:center;justify-content:center;gap:8px;font-size:12px;color:#666;}
.pw3-pay-card-stars{color:#F4A020;font-size:11px;letter-spacing:1px;}

@keyframes pw3-up{0%{opacity:0;transform:translateY(14px);}to{opacity:1;transform:translateY(0);}}
@keyframes pw3-fadein{to{opacity:1;}}

/* ════════════════════════════════
   EMAIL CAPTURE SHEET
   ════════════════════════════════ */
#ec-backdrop{position:fixed;inset:0;z-index:200;background:rgba(0,0,0,0);pointer-events:none;transition:background 300ms ease;}
#ec-backdrop.ec-show{background:rgba(0,0,0,0.3);pointer-events:all;}
#ec-sheet{position:fixed;bottom:0;left:0;right:0;z-index:201;background:#fff;border-radius:24px 24px 0 0;padding:0 24px max(32px,env(safe-area-inset-bottom));box-shadow:0 -4px 40px rgba(0,0,0,0.12);transform:translateY(100%);transition:transform 400ms cubic-bezier(0.34,1.56,0.64,1);will-change:transform;}
#ec-sheet.ec-show{transform:translateY(0);}
.ec-handle{width:36px;height:4px;background:#E0E0E0;border-radius:2px;margin:12px auto 20px;}
.ec-emoji{font-size:40px;text-align:center;margin-bottom:12px;}
.ec-heading{font-size:20px;font-weight:700;color:#1A1A1A;text-align:center;margin:0 0 8px;}
.ec-sub{font-size:14px;color:#666;text-align:center;line-height:1.5;margin:0 0 20px;}
.ec-input{width:100%;box-sizing:border-box;padding:14px 16px;font-size:16px;border:1.5px solid #E8E8E8;border-radius:12px;background:#FAFAFA;font-family:inherit;outline:none;transition:border-color 200ms,background 200ms,box-shadow 200ms;}
.ec-input:focus{border-color:#3DC0A1;background:#fff;box-shadow:0 0 0 3px rgba(61,192,161,0.1);}
.ec-input::placeholder{color:#CCC;}
.ec-btn{width:100%;padding:15px;background:#1B9282;color:#fff;font-size:15px;font-weight:600;border-radius:50px;border:none;margin-top:12px;font-family:inherit;cursor:pointer;transition:background 200ms,color 200ms;}
.ec-btn:disabled{background:#E8F7F4;color:#9FE1CB;cursor:default;}
.ec-skip{font-size:14px;color:#999;text-align:center;margin-top:14px;cursor:pointer;}
.ec-trust{font-size:11px;color:#BBB;text-align:center;margin-top:10px;}
.ec-error{font-size:13px;color:#E53935;text-align:center;line-height:1.45;margin-top:12px;display:none;}
.ec-error.show{display:block;}
.ec-input.ec-input-error{border-color:#E53935;background:#FFF5F5;}

/* ════════════════════════════════
   SCREEN — DOWNLOAD
   ════════════════════════════════ */
#screen-download.active{display:flex!important;flex-direction:column!important;background:linear-gradient(180deg,#E8F7F4 0%,#FFFFFF 50%)!important;overflow:hidden;position:relative;padding-top:0!important;}
.dl-hero{position:relative;width:100%;height:35vh;min-height:180px;flex-shrink:0;overflow:hidden;}
.dl-hero img{width:100%;height:100%;object-fit:cover;object-position:center 30%;display:block;}
.dl-hero-fade{position:absolute;inset:0;background:linear-gradient(to bottom,rgba(0,0,0,0) 40%,rgba(255,255,255,0.8) 80%,rgba(255,255,255,1) 95%);}
.dl-content{display:flex;flex-direction:column;align-items:center;padding:20px 24px max(32px,calc(env(safe-area-inset-bottom)+16px));text-align:center;flex:1;}
.dl-stat-pills{display:none;}
/* Paywall stat cards */
.pw3-stat-row{display:flex;gap:10px;margin:0 20px 20px;}
.pw3-stat-card{flex:1;background:#F4FBF8;border-radius:14px;padding:14px 8px;display:flex;flex-direction:column;align-items:center;gap:4px;text-align:center;}
.pw3-stat-card .psc-num{font-size:22px;font-weight:800;color:#006C58;line-height:1;}
.pw3-stat-card .psc-lbl{font-size:11px;font-weight:500;color:#5A6C69;line-height:1.3;}
.dl-btn{display:flex;align-items:center;justify-content:center;gap:12px;width:100%;background:#171D1C;color:#fff;border-radius:14px;padding:14px 20px;text-decoration:none;cursor:pointer;transition:transform .14s ease,opacity .14s ease;box-sizing:border-box;}
.dl-btn:active{transform:scale(.97);}
.confetti-wrap{position:absolute;inset:0;pointer-events:none;overflow:hidden;z-index:10;}

/* ════════════════════════════════
   SCREEN 7 — REGISTER
   ════════════════════════════════ */
.benefit-pills{display:flex;flex-direction:column;gap:8px;margin-top:24px;align-items:center}

/* ════════════════════════════════
   SCREENS 8–11 — SETUP
   ════════════════════════════════ */
.setup-icon-wrap{width:100px;height:100px;background:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:44px}

/* ════════════════════════════════
   SCREEN 12 — PAYWALL
   ════════════════════════════════ */
.paywall-goal-card{background:rgba(255,255,255,.2);border-radius:14px;padding:12px 20px;color:#fff;font-size:15px;font-weight:600;text-align:center;margin-top:20px;max-width:280px}
.paywall-benefits{display:flex;flex-direction:column;gap:8px;margin-top:20px;align-items:flex-start}
.paywall-benefit{color:#fff;font-size:14px}
.trial-pill{background:var(--c-light);color:var(--c-dark);border-radius:999px;padding:5px 14px;font-size:12px;font-weight:700;display:inline-block;margin-top:8px}

/* ── BACKGROUND IMAGE HELPERS ── */
.col-bg-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center center;z-index:0}
.col-overlay{position:absolute;inset:0;background:linear-gradient(160deg,rgba(0,87,83,0.62),rgba(27,146,130,0.52),rgba(61,192,161,0.38));z-index:1}
.break-overlay{position:absolute;inset:0;background:linear-gradient(to bottom,rgba(0,0,0,0.1) 0%,rgba(0,0,0,0.55) 100%);z-index:1}
/* Intro overlay — lighter top, darker bottom so pills stay readable */
.intro-overlay{background:linear-gradient(180deg,rgba(0,87,83,0.30) 0%,rgba(0,87,83,0.20) 50%,rgba(0,55,50,0.72) 100%)}
.col-content{position:relative;z-index:2;display:flex;flex-direction:column;align-items:center;justify-content:center;width:100%;padding:40px}
.col-l{position:relative}
/* Intro col taller on mobile to showcase the house photo */
@media(max-width:1199px){.intro-col-l{height:320px!important;min-height:320px!important}}
@media(max-width:767px){.intro-col-l{height:300px!important;min-height:300px!important}}

/* ════════════════════════════════════════════
   SCREEN 1 — PREMIUM INTRO (full-viewport)
   ════════════════════════════════════════════ */
#screen-intro{
  position:fixed!important;inset:0;z-index:950;
  padding-top:0!important;min-height:0!important;
  background:#040f0d;overflow:hidden;
}
.pi-photo{
  position:absolute;inset:0;width:100%;height:100%;
  object-fit:cover;object-position:center center;z-index:0;
}
.pi-ov-vignette{
  position:absolute;inset:0;z-index:1;pointer-events:none;
  background:radial-gradient(ellipse 90% 70% at 50% 38%,transparent 45%,rgba(2,10,9,.55) 100%);
}
.pi-ov-top{
  position:absolute;top:0;left:0;right:0;height:160px;z-index:2;pointer-events:none;
  background:linear-gradient(to bottom,rgba(2,10,9,.52) 0%,rgba(2,10,9,.10) 60%,transparent 100%);
}
.pi-ov-main{
  position:absolute;inset:0;z-index:3;pointer-events:none;
  background:linear-gradient(to bottom,rgba(0,0,0,0) 25%,rgba(0,0,0,0.8) 100%);
}
.pi-ov-grain{
  position:absolute;inset:0;z-index:4;pointer-events:none;opacity:.028;
  background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noise)'/%3E%3C/svg%3E");
  background-size:200px 200px;
}
.pi-logo-bar{
  position:absolute;top:60px;left:0;right:0;z-index:20;
  display:flex;align-items:center;justify-content:flex-start;gap:9px;
  padding-left:24px;
  animation:pi-descend 1s cubic-bezier(.34,1.4,.64,1) both;
}
.pi-logo-img{
  width:40px;height:40px;border-radius:12px;object-fit:cover;
  box-shadow:0 0 0 1px rgba(255,255,255,.18),0 6px 22px rgba(0,0,0,.55),0 2px 8px rgba(0,133,128,.4);
}
.pi-logo-word{
  font-size:23px;font-weight:800;color:#fff;letter-spacing:-.5px;
  text-shadow:0 2px 16px rgba(0,0,0,.5);
}
.pi-trust{
  position:absolute;top:50%;left:50%;
  transform:translate(-50%,-50%);
  z-index:15;pointer-events:none;
  animation:pi-emerge 1.1s .15s cubic-bezier(.22,1,.36,1) both;
}
.pi-badge-pill{
  display:inline-flex;align-items:center;gap:7px;
  background:rgba(255,255,255,.10);border:1px solid rgba(255,255,255,.18);
  backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);
  border-radius:999px;padding:8px 18px;
  font-size:13px;font-weight:600;color:rgba(255,255,255,.88);
}
.pi-badge-dot{
  width:7px;height:7px;border-radius:50%;
  background:#5DCEAE;box-shadow:0 0 8px #5DCEAE;
  animation:pi-pulse-dot 2s ease infinite;
}
.pi-content{
  position:absolute;bottom:0;left:0;right:0;
  padding:0 26px 44px;z-index:20;
  display:flex;flex-direction:column;
}
.pi-proof{
  display:flex;align-items:center;gap:9px;margin-bottom:18px;
  animation:pi-rise .7s .12s ease both;
}
.pi-stars{display:flex;gap:2px;}
.pi-star{font-size:13px;color:#FCC900;line-height:1;}
.pi-proof-text{font-size:13px;font-weight:500;color:rgba(255,255,255,.45);}
.pi-proof-text strong{font-weight:700;color:rgba(255,255,255,.72);}
.pi-headline{
  font-size:43px;font-weight:800;color:#fff;
  line-height:1.05;letter-spacing:-1.8px;margin-bottom:14px;
  animation:pi-rise .7s .20s ease both;
}
.pi-hl-em{
  background:linear-gradient(110deg,#5DCEAE,#3DC0A1);
  -webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;
}
.pi-sub{
  font-size:15.5px;font-weight:400;line-height:1.62;
  color:rgba(255,255,255,.50);margin-bottom:22px;max-width:286px;
  animation:pi-rise .7s .28s ease both;
}
.pi-chips{display:flex;gap:7px;margin-bottom:28px;animation:pi-rise .7s .36s ease both;}
.pi-chip{
  display:inline-flex;align-items:center;gap:5px;
  background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.11);
  border-radius:999px;padding:8px 14px;
  font-size:12.5px;font-weight:600;color:rgba(255,255,255,.65);
  backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);white-space:nowrap;
}
.pi-btn-cta{
  width:100%;height:62px;border:none;border-radius:999px;
  background:linear-gradient(135deg,#3DC0A1 0%,#00948A 55%,#006e66 100%);
  font-family:inherit;font-size:17px;font-weight:700;color:#fff;
  letter-spacing:-.2px;cursor:pointer;position:relative;overflow:hidden;
  display:flex;align-items:center;justify-content:center;gap:8px;
  box-shadow:inset 0 1.5px 0 rgba(255,255,255,.22),inset 0 -1px 0 rgba(0,0,0,.18),0 14px 44px rgba(0,148,138,.55),0 4px 12px rgba(0,0,0,.35);
  transition:transform .14s ease,box-shadow .14s ease;
  animation:pi-rise .7s .44s ease both;-webkit-appearance:none;
}
.pi-btn-cta::after{
  content:'';position:absolute;top:0;left:0;right:0;height:52%;
  border-radius:999px 999px 60% 60%;
  background:linear-gradient(to bottom,rgba(255,255,255,.16),transparent);
  pointer-events:none;
}
.pi-btn-cta::before{
  content:'';position:absolute;top:0;bottom:0;left:-60%;width:50%;
  background:linear-gradient(90deg,transparent,rgba(255,255,255,.22),transparent);
  transform:skewX(-18deg);
  animation:pi-shimmer 3.5s 1.8s ease-in-out infinite;pointer-events:none;
}
.pi-btn-cta:active{transform:scale(.968);}
.pi-btn-arrow{font-size:20px;opacity:.80;line-height:1;}
.pi-cta-hint{
  text-align:center;margin:10px auto 0;max-width:280px;
  font-size:13px;font-weight:400;line-height:1.5;color:rgba(255,255,255,.65);
  text-shadow:0 1px 3px rgba(0,0,0,.35);
  animation:pi-rise .7s .52s ease both;
}
.pi-link-row{
  text-align:center;margin-top:14px;
  font-size:13px;font-weight:500;color:rgba(255,255,255,.36);
  animation:pi-rise .7s .52s ease both;
}
@keyframes pi-rise{from{opacity:0;transform:translateY(22px)}to{opacity:1;transform:translateY(0)}}
@keyframes pi-descend{from{opacity:0;transform:translateY(-14px) scale(.9)}to{opacity:1;transform:translateY(0) scale(1)}}
@keyframes pi-emerge{from{opacity:0;transform:translate(-50%,calc(-50% + 10px)) scale(.96)}to{opacity:1;transform:translate(-50%,-50%) scale(1)}}
@keyframes pi-pulse-dot{0%,100%{opacity:1;transform:scale(1)}50%{opacity:.6;transform:scale(.75)}}
@keyframes pi-shimmer{0%{left:-60%;opacity:0}10%{opacity:1}90%{opacity:1}100%{left:160%;opacity:0}}
@media(max-width:767px){
  /* INTRO — true full-screen: image covers entire viewport, content overlaid */
  #screen-intro{
    position:fixed!important;inset:0!important;
    background:#040f0d;overflow:hidden;
  }
  #screen-intro.active{
    display:block!important;
  }
  .pi-photo{
    position:absolute!important;inset:0!important;
    width:100%!important;height:100%!important;
    object-fit:cover!important;object-position:center center!important;
  }
  .pi-ov-top{height:120px!important;}
  .pi-ov-vignette{display:none!important;}
  .pi-ov-grain{display:none!important;}
  .pi-ov-main{
    height:100%!important;position:absolute!important;inset:0!important;
    background:linear-gradient(to bottom,rgba(0,0,0,0) 0%,rgba(0,0,0,.2) 40%,rgba(0,0,0,.85) 100%)!important;
  }
  .pi-logo-bar{top:18px!important;padding-left:20px!important;}
  .pi-trust{display:none!important;}
  .pi-content{
    position:absolute!important;
    bottom:0!important;left:0!important;right:0!important;
    bottom:env(safe-area-inset-bottom,0px)!important;
    padding:0 22px calc(env(safe-area-inset-bottom,0px) + 36px)!important;
    display:flex!important;flex-direction:column!important;
    align-items:flex-start!important;
    z-index:20;
  }
  .pi-proof{margin-bottom:8px!important;gap:6px!important;}
  .pi-proof-text{font-size:12px!important;color:rgba(255,255,255,.75)!important;}
  .pi-headline{font-size:36px!important;letter-spacing:-1.2px!important;line-height:1.06!important;margin-bottom:10px!important;}
  .pi-sub{font-size:14.5px!important;line-height:1.52!important;margin-bottom:16px!important;max-width:100%!important;color:rgba(255,255,255,.65)!important;}
  .pi-chips{gap:6px!important;margin-bottom:22px!important;flex-wrap:wrap!important;}
  .pi-chip{
    background:rgba(255,255,255,.12)!important;border:1px solid rgba(255,255,255,.20)!important;
    color:rgba(255,255,255,.88)!important;font-size:12px!important;font-weight:600!important;
    padding:7px 13px!important;backdrop-filter:blur(8px)!important;-webkit-backdrop-filter:blur(8px)!important;
  }
  .pi-btn-cta{width:100%!important;height:58px!important;font-size:16.5px!important;}
  .pi-cta-hint{font-size:12px!important;max-width:100%!important;}
  .pi-link-row{font-size:12px!important;color:rgba(255,255,255,.5)!important;margin-top:12px!important;width:100%!important;text-align:center!important;}
}
/* ══ COOKIE CONSENT (Consent Mode v2) ══ */
#cc-banner{
  position:fixed;right:16px;bottom:16px;left:auto;z-index:2000;
  width:min(280px,calc(100vw - 32px));
  padding:16px;
  background:var(--c-white);border-radius:16px;border:1px solid var(--c-border);
  box-shadow:0 8px 40px rgba(0,87,83,.18),0 2px 10px rgba(0,0,0,.08);
  opacity:0;pointer-events:none;transform:translateY(20px);
  transition:opacity .35s ease,transform .4s cubic-bezier(.34,1.4,.64,1);}
#cc-banner.cc-show{opacity:1;pointer-events:auto;transform:translateY(0);}
/* Slide intro CTA above the toast so it stays fully visible */
body:has(#cc-banner.cc-show) .pi-content{
  padding-bottom:200px;
  transition:padding-bottom .4s ease;}
.cc-inner{display:flex;flex-direction:column;gap:12px;}
.cc-text{font-size:13px;line-height:1.5;color:var(--c-text2);}
.cc-text strong{color:var(--c-text);font-weight:700;}
.cc-text a{color:var(--c-primary);font-weight:600;text-decoration:underline;}
.cc-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap;}
.cc-btn{border:none;border-radius:999px;font-family:inherit;font-size:13px;font-weight:700;
  cursor:pointer;padding:10px 18px;line-height:1;transition:transform .15s,box-shadow .15s,background .15s;-webkit-tap-highlight-color:transparent;}
.cc-btn:active{transform:translateY(1px);}
.cc-accept{background:var(--grad-primary);color:#fff;box-shadow:0 4px 14px rgba(0,133,128,.28);}
.cc-accept:hover{box-shadow:0 8px 20px rgba(0,133,128,.36);}
.cc-reject{background:var(--c-bg);color:var(--c-text2);}
.cc-reject:hover{background:var(--c-track);}
.cc-custom{background:transparent;color:var(--c-muted);padding:10px 8px;font-size:12px;text-decoration:underline;}
.cc-custom:hover{color:var(--c-primary);}

/* settings modal */
#cc-modal{position:fixed;inset:0;z-index:2001;display:none;align-items:center;justify-content:center;
  padding:20px;background:rgba(0,0,0,.45);opacity:0;transition:opacity .25s;}
#cc-modal.cc-show{display:flex;opacity:1;}
.cc-card{background:var(--c-white);border-radius:20px;max-width:440px;width:100%;
  padding:26px 24px;box-shadow:0 20px 60px rgba(0,0,0,.3);max-height:90vh;overflow-y:auto;}
.cc-card h3{font-size:19px;font-weight:800;color:var(--c-text);margin-bottom:6px;}
.cc-card>p{font-size:13px;color:var(--c-muted);line-height:1.5;margin-bottom:18px;}
.cc-row{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;
  padding:14px 0;border-top:1px solid var(--c-border);}
.cc-row-txt h4{font-size:14.5px;font-weight:700;color:var(--c-text);margin-bottom:3px;}
.cc-row-txt p{font-size:12.5px;color:var(--c-muted);line-height:1.45;}
.cc-toggle{position:relative;width:44px;height:26px;flex-shrink:0;margin-top:2px;}
.cc-toggle input{opacity:0;width:0;height:0;position:absolute;}
.cc-track2{position:absolute;inset:0;background:var(--c-track);border-radius:999px;transition:background .2s;cursor:pointer;}
.cc-track2::before{content:"";position:absolute;left:3px;top:3px;width:20px;height:20px;background:#fff;border-radius:50%;transition:transform .2s;box-shadow:0 1px 3px rgba(0,0,0,.2);}
.cc-toggle input:checked + .cc-track2{background:var(--c-primary);}
.cc-toggle input:checked + .cc-track2::before{transform:translateX(18px);}
.cc-toggle input:disabled + .cc-track2{background:var(--c-primary);opacity:.45;cursor:not-allowed;}
.cc-modal-actions{display:flex;gap:10px;margin-top:22px;}
.cc-modal-actions .cc-btn{flex:1;}

/* ══════════════════════════════════════════
   SCREEN 1 (VARIANT B) — APP STORE PRODUCT PAGE
   Native App Store visual spec: iOS system colors/type,
   mobile-first (375px base), 480px centered on desktop.
   ══════════════════════════════════════════ */
.as-page{
  --ios-divider:#E5E5EA;--ios-card-bg:#F2F2F7;
  --ios-text-1:#000000;--ios-text-2:#3C3C43;--ios-text-3:#8E8E93;--ios-link:#007AFF;
  --ios-star-on:#FF9500;--ios-star-off:#D1D1D6;--ios-bar-on:#3C3C43;--ios-bar-off:#E5E5EA;
  --ios-chevron:#C7C7CC;
  max-width:480px;margin:0 auto;padding:20px 16px calc(24px + env(safe-area-inset-bottom));box-sizing:border-box;
  font-family:-apple-system,BlinkMacSystemFont,'SF Pro Text','Segoe UI',Roboto,sans-serif;
  color:var(--ios-text-1);
}
.as-divider{height:.5px;background:var(--ios-divider);margin:0 0 20px;border:none;}

/* 1. Header: icon, name, tagline, GET button */
.as-header{display:flex;align-items:flex-start;gap:12px;margin-bottom:20px;}
.as-icon{width:100px;height:100px;border-radius:22px;object-fit:cover;flex-shrink:0;box-shadow:0 2px 8px rgba(0,0,0,.12);}
.as-header-info{flex:1;min-width:0;padding-top:2px;}
.as-app-name{font-size:22px;font-weight:700;color:var(--ios-text-1);line-height:1.2;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;}
.as-tagline{font-size:15px;font-weight:400;color:var(--ios-text-3);margin-top:3px;line-height:1.3;}
.as-get-wrap{display:flex;flex-direction:column;align-items:center;gap:4px;margin-top:4px;flex-shrink:0;}
.as-get-btn{background:var(--ios-link);color:#fff;font-size:17px;font-weight:600;border:none;border-radius:999px;padding:10px 24px;min-height:44px;cursor:pointer;font-family:inherit;box-sizing:border-box;}
.as-get-btn:active{opacity:.75;}
.as-iap-label{font-size:11px;font-weight:400;color:var(--ios-text-3);text-align:center;max-width:80px;line-height:1.2;}

/* 2. Stats row */
.as-stats{display:flex;align-items:center;padding:14px 0;margin-bottom:20px;}
.as-stat{flex:1;min-width:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;text-align:center;padding:0 4px;}
.as-stat-divider{align-self:center;width:.5px;height:32px;background:var(--ios-divider);}
.as-stat-label{font-size:10px;font-weight:600;color:var(--ios-text-3);letter-spacing:.5px;text-transform:uppercase;white-space:nowrap;}
.as-stat-value{font-size:22px;font-weight:700;color:var(--ios-text-1);}
.as-stat-sub{font-size:11px;font-weight:400;color:var(--ios-text-3);}
.as-stat-sub-trunc{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%;}
.as-stat-stars{font-size:11px;color:var(--ios-star-on);letter-spacing:1px;}
.as-stat-icon{font-size:20px;line-height:1;}
.as-stat-dev-icon{width:22px;height:22px;border-radius:5px;object-fit:cover;}

/* 3. Screenshot carousel — 82% viewport width, next card peeks, 12px gap */
.as-shots-scroll{display:flex;gap:12px;overflow-x:auto;padding:2px 16px 10px;margin:0 -16px 14px;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;scrollbar-width:none;cursor:pointer;}
.as-shots-scroll::-webkit-scrollbar{display:none;}
.as-shot-card{flex:0 0 82%;min-width:0;scroll-snap-align:start;background:var(--ios-card-bg);border-radius:16px;padding:14px 14px 0;box-sizing:border-box;}
.as-shot-headline{font-size:20px;font-weight:700;color:var(--ios-text-1);line-height:1.2;margin-bottom:10px;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;}
.as-shot-pill{display:inline-block;font-size:13px;font-weight:600;color:#fff;padding:4px 10px;border-radius:999px;margin-bottom:12px;}
.as-shot-frame{border-radius:24px;border:1px solid rgba(0,0,0,.12);box-shadow:0 4px 12px rgba(0,0,0,.15);overflow:hidden;background:#fff;}
.as-shot-img{width:100%;display:block;}

/* 4. Compatibility tag */
.as-compat-tag{display:inline-flex;align-items:center;gap:5px;font-size:12px;font-weight:600;color:var(--ios-text-3);background:var(--ios-card-bg);padding:5px 10px;border-radius:8px;margin-bottom:20px;}

/* 5. Description */
.as-desc{font-size:15px;font-weight:400;color:var(--ios-text-2);line-height:1.4;margin-bottom:6px;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;}
.as-desc-more{font-size:15px;font-weight:600;color:var(--ios-link);background:none;border:none;padding:0;font-family:inherit;cursor:pointer;margin-bottom:16px;display:inline-block;min-height:44px;line-height:44px;}

/* 6. Developer row */
.as-dev-row{display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:44px;padding:12px 0;border-top:.5px solid var(--ios-divider);border-bottom:.5px solid var(--ios-divider);margin-bottom:24px;cursor:pointer;}
.as-dev-name{font-size:17px;font-weight:400;color:var(--ios-text-1);line-height:1.3;}
.as-dev-label{font-size:13px;font-weight:400;color:var(--ios-text-3);margin-top:2px;}
.as-chevron{font-size:18px;color:var(--ios-chevron);flex-shrink:0;}

/* Ratings & Reviews */
.as-section-header{display:flex;align-items:baseline;justify-content:space-between;min-height:44px;margin-bottom:12px;}
.as-section-title{font-size:20px;font-weight:700;color:var(--ios-text-1);}
.as-see-all{font-size:15px;font-weight:400;color:var(--ios-link);}
.as-ratings-summary{display:flex;align-items:center;gap:22px;margin-bottom:6px;}
.as-ratings-big{flex-shrink:0;text-align:center;}
.as-ratings-num{font-size:48px;font-weight:700;color:var(--ios-text-1);line-height:1;}
.as-ratings-outof{font-size:13px;font-weight:400;color:var(--ios-text-3);margin-top:4px;}
.as-ratings-bars{flex:1;display:flex;flex-direction:column;gap:4px;}
.as-bar-row{display:flex;align-items:center;gap:8px;}
.as-bar-star{display:flex;align-items:center;gap:2px;font-size:10px;color:var(--ios-text-3);width:20px;flex-shrink:0;}
.as-bar-star-ico{color:var(--ios-star-on);font-size:9px;}
.as-bar-track{flex:1;height:5px;border-radius:3px;background:var(--ios-bar-off);overflow:hidden;}
.as-bar-fill{height:100%;background:var(--ios-bar-on);border-radius:3px;}
.as-ratings-count{text-align:right;font-size:13px;font-weight:400;color:var(--ios-text-3);margin-bottom:22px;}

.as-review-card{background:var(--ios-card-bg);border-radius:16px;padding:18px 18px 20px;margin-bottom:28px;}
.as-review-top{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;margin-bottom:8px;}
.as-review-title{font-size:16px;font-weight:700;color:var(--ios-text-1);line-height:1.3;}
.as-review-meta{text-align:right;flex-shrink:0;}
.as-review-date{font-size:13px;font-weight:400;color:var(--ios-text-3);}
.as-review-user{font-size:13px;font-weight:400;color:var(--ios-text-3);margin-top:2px;}
.as-review-stars{font-size:13px;color:var(--ios-star-on);letter-spacing:2px;margin-bottom:10px;}
.as-review-body{font-size:14px;font-weight:400;color:var(--ios-text-2);line-height:1.4;}

/* App Privacy */
.as-privacy-intro{font-size:15px;font-weight:400;color:var(--ios-text-2);line-height:1.4;margin-bottom:16px;}
.as-privacy-intro a{color:var(--ios-link);text-decoration:none;}
.as-privacy-cards{display:flex;gap:12px;margin-bottom:16px;}
.as-privacy-card{flex:1;min-width:0;background:var(--ios-card-bg);border-radius:16px;padding:18px 14px;text-align:center;}
.as-privacy-icon{width:30px;height:30px;margin:0 auto 10px;}
.as-privacy-card-title{font-size:15px;font-weight:600;color:var(--ios-text-1);line-height:1.3;margin-bottom:6px;}
.as-privacy-card-body{font-size:13px;font-weight:400;color:var(--ios-text-3);line-height:1.4;margin-bottom:12px;}
.as-privacy-tags{display:flex;flex-direction:column;gap:6px;align-items:center;}
.as-privacy-tag{display:flex;align-items:center;gap:5px;font-size:12px;font-weight:400;color:var(--ios-text-1);}
.as-privacy-tag-dot{width:6px;height:6px;border-radius:50%;background:var(--ios-link);flex-shrink:0;}
.as-learn-more{display:inline-block;font-size:15px;font-weight:400;color:var(--ios-link);min-height:44px;line-height:44px;margin-bottom:8px;}

/* Information table */
.as-info-table{margin-bottom:24px;}
.as-info-row{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:44px;padding:10px 0;border-bottom:.5px solid var(--ios-divider);}
.as-info-row:first-child{border-top:.5px solid var(--ios-divider);}
.as-info-label{font-size:15px;font-weight:400;color:var(--ios-text-3);flex-shrink:0;}
.as-info-value{font-size:15px;font-weight:400;color:var(--ios-text-1);text-align:right;}

.as-footer-link{display:block;text-align:center;font-size:14px;font-weight:400;color:var(--ios-link);text-decoration:none;padding:10px 0;min-height:44px;line-height:24px;}

@media (max-width:400px){
  .as-icon{width:84px;height:84px;border-radius:19px;}
  .as-app-name{font-size:19px;}
  .as-ratings-num{font-size:40px;}
  .as-stat-label{font-size:9px;}
  .as-privacy-cards{flex-direction:column;}
}

/* ══════════════════════════════════════════
   SCREEN-1 VARIANT SWITCH
   Hero (default): dark, fixed, no scroll.
   App Store (body.v-appstore): white, internal scroll.
   ══════════════════════════════════════════ */
body.v-appstore #screen-intro{background:#FFFFFF;overflow-x:visible;overflow-y:auto;-webkit-overflow-scrolling:touch;}
@media(max-width:767px){
  body.v-appstore #screen-intro{background:#FFFFFF;overflow-x:visible;overflow-y:auto!important;}
}

/* ══════════════════════════════════════════
   HERO ADAPTIVE QUIZ (gate → feature-select → adaptive quiz)
   Gate screen reuses #screen-intro (see #screen-intro rules above — fixed,
   full-viewport, z-index:950, already covers the shared navbar). Feature
   selection reuses the plain .screen convention (navbar visible). Quiz
   question / break screens reuse app.js's existing #screen-quiz /
   #screen-break markup — no new CSS needed for those, driven by
   hero-quiz.js only.
   ══════════════════════════════════════════ */
.gate-screen{
  height:100%;width:100%;box-sizing:border-box;
  background:linear-gradient(160deg,#EEEDFE 0%,#E1F5EE 45%,#FAEEDA 100%);
  display:flex;flex-direction:column;align-items:center;
  overflow-y:auto;-webkit-overflow-scrolling:touch;
}

/* Top bar — same logo/wordmark proportions as the shared navbar (.nav-logo/.logo-word) elsewhere */
.gate-topbar{width:100%;display:flex;align-items:center;gap:10px;padding:14px 16px;box-sizing:border-box;}
.gate-logo-icon{width:32px;height:32px;border-radius:10px;object-fit:cover;display:block;}
.gate-topbar-word{font-size:18px;font-weight:800;color:var(--c-text);}

/* Hero section */
.gate-hero{
  width:100%;box-sizing:border-box;text-align:center;
  padding:16px 20px 28px;
  display:flex;flex-direction:column;align-items:center;
}
.gate-badge{
  display:inline-block;background:rgba(83,74,183,.12);border:0.5px solid rgba(83,74,183,.2);
  color:#3C3489;font-size:13px;font-weight:600;border-radius:20px;padding:5px 14px;
}
.gate-headline{font-size:21px;font-weight:500;color:#1a1a2e;line-height:1.25;max-width:380px;margin:10px 0 0;}
.gate-sub{font-size:13px;color:#444;line-height:1.5;max-width:340px;margin:6px 0 0;}

/* Feature cards */
.gate-cards{width:100%;box-sizing:border-box;display:flex;flex-direction:column;gap:10px;padding:18px 16px;}
.gate-card{
  display:flex;align-items:center;gap:12px;
  background:#fff;border:0.5px solid var(--c-border);border-radius:14px;padding:12px 14px;
  box-shadow:0 2px 8px rgba(0,50,45,.05);text-align:left;
}
.gate-card-icon{width:38px;height:38px;border-radius:11px;flex-shrink:0;display:flex;align-items:center;justify-content:center;font-size:18px;}
.gate-card-txt{flex:1;}
.gate-card-title{font-size:14px;font-weight:700;color:var(--c-text);}
.gate-card-desc{font-size:12.5px;color:var(--c-muted);margin-top:2px;line-height:1.4;}

.gate-btns{width:100%;max-width:360px;box-sizing:border-box;display:flex;flex-direction:column;gap:12px;padding:8px 16px 24px;}
.gate-btn-primary{background:var(--grad-primary);color:#fff;box-shadow:0 4px 16px rgba(0,133,128,.28);}
.gate-btn-primary:hover{transform:translateY(-2px);box-shadow:0 8px 24px rgba(0,133,128,.38);}

/* ── Feature Selection screen ── */
#screen-features{background:var(--c-bg);}
.hq-fs-wrap{max-width:480px;margin:0 auto;padding:24px 24px 40px;}
.hq-fs-title{font-size:13px;font-weight:700;color:var(--c-muted);text-transform:uppercase;letter-spacing:.04em;}
.hq-fs-instruction{font-size:13px;color:var(--c-muted);line-height:1.5;margin:8px 0 20px;}
.hq-fs-list{display:flex;flex-direction:column;gap:12px;}
.hq-card{
  position:relative;display:flex;align-items:flex-start;gap:14px;
  padding:16px;border:1.5px solid var(--c-border);border-radius:14px;
  background:#fff;cursor:pointer;transition:border-color 150ms,background 150ms;
}
.hq-card:hover{border-color:var(--c-primary);}
.hq-card.sel{border:1.5px solid var(--c-primary);background:var(--c-hover);}
.hq-card-emoji{font-size:24px;line-height:1;flex-shrink:0;}
.hq-card-txt{flex:1;}
.hq-card-title{font-size:15px;font-weight:700;color:var(--c-text);}
.hq-card-sub{font-size:13px;color:var(--c-muted);margin-top:3px;line-height:1.4;}
.hq-card-check{
  position:absolute;top:12px;right:12px;width:20px;height:20px;border-radius:50%;
  background:var(--c-primary);color:#fff;font-size:12px;line-height:20px;text-align:center;
  opacity:0;transform:scale(.6);transition:opacity 150ms,transform 150ms;
}
.hq-card.sel .hq-card-check{opacity:1;transform:scale(1);}
.hq-select-all{
  display:block;text-align:center;font-size:14px;font-weight:700;color:var(--c-primary);
  text-decoration:underline;text-underline-offset:3px;
  background:none;border:none;cursor:pointer;font-family:inherit;padding:16px 0 4px;width:100%;
}
.hq-fs-cta-wrap{margin-top:24px;}
.hq-btn-primary{background:var(--grad-primary);color:#fff;box-shadow:0 4px 16px rgba(0,133,128,.28);}
.hq-btn-primary:disabled{background:var(--c-track);color:var(--c-faint);cursor:not-allowed;box-shadow:none;}
.hq-fs-cta-sub{font-size:12px;color:var(--c-muted);text-align:center;margin-top:10px;}

/* ── Email capture sheet for the adaptive quiz (own ids — see index.html
      comment; visual rules copied from #ec-backdrop/#ec-sheet above) ── */
#hq-ec-backdrop{position:fixed;inset:0;z-index:200;background:rgba(0,0,0,0);pointer-events:none;transition:background 300ms ease;}
#hq-ec-backdrop.ec-show{background:rgba(0,0,0,0.3);pointer-events:all;}
#hq-ec-sheet{position:fixed;bottom:0;left:0;right:0;z-index:201;background:#fff;border-radius:24px 24px 0 0;padding:0 24px max(32px,env(safe-area-inset-bottom));box-shadow:0 -4px 40px rgba(0,0,0,0.12);transform:translateY(100%);transition:transform 400ms cubic-bezier(0.34,1.56,0.64,1);will-change:transform;}
#hq-ec-sheet.ec-show{transform:translateY(0);}
