/* ============================================================
   COIN & PULSE — STORYBOOK THEME (Spiced Amber)
   Drop-in replacement for the quest <style> block.
   Re-skins existing class names. No HTML or JS changes needed.
   Responsive: phone (stack) · tablet/desktop (wide page + side-by-side choices)
   ============================================================ */
:root{
  --paper:#f4ecdb; --paper-edge:#ece2cf; --card:#fef9ef;
  --ink:#33271d; --text:#33271d; --text2:#6a5746; --ink-faint:#9c8870;
  --primary:#ef4444; --primary-deep:#b91c1c; --primary-soft:#fecaca;
  --leaf:#2f6b62; --leaf-soft:#cfe2dd; --gold:#d39a2a; --gold-soft:#f5e6bd;
  --line:#e4d7bf;
  /* legacy variable names from the old engine, remapped to new palette */
  --bg:#f4ecdb; --surface:#fef9ef; --surface-low:#f4ecdb;
  --em:#2f6b62; --go:#ef4444; --te:#2f6b62; --accent:#ef4444;
  --heading:'Fraunces',Georgia,serif; --body:'Nunito Sans',sans-serif;
  --r-card:1.4rem; --r-btn:1.1rem; --r-pill:999px; --read:680px;
}
*{box-sizing:border-box;margin:0;padding:0;}
html{font-size:18px;}
body{font-family:var(--body);background:var(--paper);color:var(--ink);-webkit-font-smoothing:antialiased;display:flex;justify-content:center;align-items:flex-start;min-height:100vh;min-height:100dvh;}
.material-symbols-rounded{font-variation-settings:'FILL' 0,'wght' 400,'GRAD' 0,'opsz' 24;}
body::before{content:'';position:fixed;inset:0;pointer-events:none;z-index:0;opacity:.5;background-image:radial-gradient(rgba(120,90,50,.045) 1px,transparent 1px);background-size:4px 4px;}
@media(min-width:760px){body{background:radial-gradient(ellipse at top,#ece2cf,#e2d6bd 65%,#d6c8a9);padding:40px 20px;align-items:flex-start;}}

/* ── FRAME ── */
.frame{width:100%;max-width:480px;min-height:100vh;min-height:100dvh;background:var(--paper);position:relative;overflow:hidden;padding-bottom:0;}
@media(min-width:760px){
  .frame{max-width:880px;min-height:auto;border-radius:22px;box-shadow:0 36px 90px -34px rgba(70,40,15,.6);padding-bottom:0;margin:0 auto;}
}
.frame.rep-wide{max-width:480px;}
@media(min-width:760px){.frame.rep-wide{max-width:980px;}}

/* ── TOP BAR ── */
.topbar{position:sticky;top:0;z-index:20;background:var(--paper);padding:16px 22px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);}
@media(min-width:760px){.topbar{position:relative;padding:18px 34px;border-radius:22px 22px 0 0;}}
.logo{font-family:var(--heading);font-weight:600;font-size:1.05rem;color:var(--ink);}
.logo span{color:#ef4444;}
.heart-pill{background:var(--gold-soft);border-radius:var(--r-pill);padding:7px 15px;font-family:var(--body);font-weight:700;font-size:.92rem;color:var(--primary-deep);display:flex;align-items:center;gap:5px;border:1px solid rgba(211,154,42,.35);}
.heart-pill.pulse{animation:hb .4s ease;}
@keyframes hb{0%,100%{transform:scale(1)}30%{transform:scale(1.28)}60%{transform:scale(1.12)}}
@keyframes hsh{0%,100%{transform:scale(1) translateX(0)}15%{transform:scale(1.18) translateX(-5px)}30%{transform:scale(1.18) translateX(5px)}45%{transform:scale(1.12) translateX(-3px)}65%{transform:scale(1.08) translateX(2px)}}
.heart-pill.loss{animation:hsh .6s ease;background:var(--primary-soft)!important;border-color:rgba(194,84,31,.5)!important;}

/* ── PROGRESS TRAIL ── */
.trail{display:flex;align-items:center;justify-content:center;padding:20px 26px 10px;gap:0;}
@media(min-width:760px){.trail{padding:26px 34px 8px;}}
.tdot{width:30px;height:30px;border-radius:50%;border:2px solid var(--line);background:var(--card);display:flex;align-items:center;justify-content:center;font-size:.66rem;font-family:var(--heading);font-weight:600;color:var(--ink-faint);position:relative;z-index:1;flex-shrink:0;}
.tdot.done{background:var(--leaf);border-color:var(--leaf);color:#fff;}
.tdot.active{background:var(--primary);border-color:var(--primary);color:#fff;box-shadow:0 0 0 4px var(--primary-soft);}
.tline{height:2.5px;flex:1;background:var(--line);margin:0 -1px;border-radius:2px;}
.tline.done{background:var(--leaf);}

/* ── SCREENS ── */
.screen{display:none;flex-direction:column;min-height:100vh;min-height:100dvh;padding-bottom:calc(80px + env(safe-area-inset-bottom,0px));}
@media(min-width:760px){.screen{min-height:auto;padding-bottom:88px;}}
.screen.active{display:flex;animation:screenIn .4s ease;}@keyframes screenIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}
@keyframes fade{from{opacity:0}to{opacity:1}}

/* ── ART / BANNER (landscape, same image every device) ── */
.art{width:100%;overflow:hidden;flex-shrink:0;padding:22px 22px 0;background:none;border:none;}
@media(min-width:760px){.art{padding:30px 34px 0;}}
.art img{display:block;width:100%;aspect-ratio:16/9;object-fit:cover;border-radius:30px 44px 32px 40px;border:3px solid var(--card);box-shadow:0 18px 40px -18px rgba(70,40,15,.5);}
.art svg{display:block;width:100%;border-radius:30px 44px 32px 40px;border:3px solid var(--card);}

/* start screen art (full-bleed banner) */
.start-art{padding:22px 22px 0!important;background:none!important;border:none!important;display:block!important;}
@media(min-width:760px){.start-art{padding:30px 34px 0!important;}}
.start-art img{display:block;width:100%;aspect-ratio:16/9;object-fit:cover;border-radius:30px 44px 32px 40px;border:3px solid var(--card);box-shadow:0 18px 40px -18px rgba(70,40,15,.5);}

/* ── SCENE CARD (the story text block) ── */
.scene-card{background:none;border-radius:0;padding:26px 26px 6px;max-width:var(--read);margin:0 auto;width:100%;}
@media(min-width:760px){.scene-card{padding:30px 34px 6px;}}
.stag{font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-faint);margin-bottom:12px;font-weight:700;}
.stitle{font-family:var(--heading);font-weight:600;font-size:1.95rem;line-height:1.1;margin-bottom:16px;color:var(--ink);}
@media(min-width:760px){.stitle{font-size:2.4rem;}}
.btext{font-style:normal;color:var(--text2);font-size:1.04rem;line-height:1.78;}
@media(min-width:760px){.btext{font-size:1.1rem;}}
.btext strong{color:var(--primary-deep);font-weight:700;}

/* ── START INNER ── */
.start-inner{padding:30px 26px 0;display:flex;flex-direction:column;gap:18px;max-width:var(--read);margin:0 auto;width:100%;}
@media(min-width:760px){.start-inner{padding:34px 34px 0;align-items:center;text-align:center;}}
.start-quest-num{display:inline-flex;align-items:center;gap:7px;font-size:.74rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--primary);}
.start-title{font-family:var(--heading);font-weight:600;font-size:2.6rem;line-height:1.03;color:var(--ink);letter-spacing:-.01em;}
@media(min-width:760px){.start-title{font-size:3.5rem;}}
.start-title span{color:var(--primary);font-style:italic;}
.start-topic{font-size:.88rem;color:var(--leaf);font-weight:700;letter-spacing:.04em;}
.irow{display:flex;align-items:flex-start;gap:12px;font-size:1.04rem;line-height:1.7;color:var(--text2);}
@media(min-width:760px){.irow{font-size:1.12rem;max-width:580px;text-align:left;}}
.name-inp{background:var(--card);border:1.5px solid var(--line);border-radius:16px;padding:16px 18px;width:100%;max-width:440px;color:var(--ink);font-family:var(--body);font-size:1rem;transition:border-color .15s,box-shadow .15s;}
@media(min-width:760px){.name-inp{text-align:center;}}
.name-inp:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 4px var(--primary-soft);}
.name-inp::placeholder{color:var(--ink-faint);opacity:.7;}
.home-link{font-size:.9rem;color:var(--ink-faint);text-align:center;font-weight:600;text-decoration:none;display:flex;align-items:center;justify-content:center;gap:6px;}
.home-link:hover{color:var(--primary);}

/* ── BUTTONS ── */
.btn{display:flex;align-items:center;justify-content:center;gap:10px;width:100%;max-width:440px;font-family:var(--heading);font-weight:600;font-size:1.15rem;padding:17px;border:none;border-radius:var(--r-btn);cursor:pointer;text-align:center;transition:background .15s,transform .12s,box-shadow .2s;margin-left:auto;margin-right:auto;}
.btn:active{transform:scale(.98);}
.btn-pulse{background:var(--primary);color:#fff;box-shadow:0 12px 24px -10px rgba(194,84,31,.7);}
.btn-pulse:hover{background:var(--primary-deep);}
.btn-em{background:var(--leaf);color:#fff;box-shadow:0 12px 24px -10px rgba(47,107,98,.6);}
.btn-em:hover{filter:brightness(1.05);}
.btn-dk{background:var(--card);color:var(--text2);border:1.5px solid var(--line);}
.btn-dk:hover{border-color:var(--primary);color:var(--primary);}

/* ── CHOICES (stack on phone, row on desktop) ── */
.choices{display:flex;flex-direction:column;gap:14px;padding:22px 22px 24px;max-width:var(--read);margin:0 auto;width:100%;}
@media(min-width:760px){
  .choices{flex-direction:row;max-width:none;gap:16px;padding:24px 34px 0;align-items:stretch;}
}
.choice-card{background:var(--card);border:1.5px solid var(--line);border-radius:22px;padding:20px;cursor:pointer;transition:border-color .15s,transform .12s,box-shadow .2s;-webkit-tap-highlight-color:transparent;}
@media(min-width:760px){.choice-card{flex:1;display:flex;flex-direction:column;}}
.choice-card:hover{border-color:var(--primary);transform:translateY(-2px);box-shadow:0 14px 30px -16px rgba(194,84,31,.5);}
/* a11y: no hover-lift on touch devices (prevents sticky tap feel) */
@media (hover:none){.choice-card:hover{transform:none;box-shadow:none;}}
/* a11y: calmer motion when the user requests reduced motion */
@media (prefers-reduced-motion:reduce){.screen.active{animation:fade .3s ease;}.heart-pill.pulse,.heart-pill.loss,.coin-pill.pulse,.coin-pill.loss{animation:none;}}
.choice-card:active{transform:scale(.99);}
.clabel{font-size:.68rem;letter-spacing:.08em;text-transform:uppercase;color:var(--primary);margin-bottom:8px;font-weight:700;}
.ctext{font-family:var(--heading);font-weight:600;font-size:1.05rem;color:var(--ink);line-height:1.3;margin-bottom:9px;}
.csub{font-size:.88rem;color:var(--text2);line-height:1.55;}
.ctag{font-family:var(--body);font-weight:700;font-size:.7rem;display:inline-block;padding:4px 11px;border-radius:var(--r-pill);margin-top:12px;}
.ctag.earn{background:var(--leaf-soft);color:var(--leaf);}
.ctag.spend{background:var(--primary-soft);color:var(--primary-deep);}
.ctag.neu{background:var(--gold-soft);color:var(--primary-deep);}

/* ── FEEDBACK OVERLAY ── */
.fover{position:fixed;top:0;left:50%;transform:translateX(-50%);width:100%;max-width:480px;height:100%;background:rgba(244,236,219,.97);z-index:50;display:none;flex-direction:column;align-items:center;justify-content:center;padding:28px 24px;text-align:center;gap:14px;}
@media(min-width:760px){.fover{max-width:560px;border-radius:22px;height:auto;top:50%;transform:translate(-50%,-50%);box-shadow:0 40px 90px -30px rgba(70,40,15,.7);}}
.fover.show{display:flex;animation:fade .28s ease;}
.fover-companion{width:150px;height:150px;object-fit:contain;filter:drop-shadow(0 8px 18px rgba(70,40,15,.3));mask-image:radial-gradient(ellipse 85% 85% at 50% 50%,black 38%,transparent 74%);-webkit-mask-image:radial-gradient(ellipse 85% 85% at 50% 50%,black 38%,transparent 74%);}
.fover-title{font-family:var(--heading);font-weight:600;font-size:1.7rem;color:var(--ink);}
.fover-text{font-size:.92rem;color:var(--text2);line-height:1.65;max-width:320px;}
.fover-lesson{font-size:.86rem;color:var(--ink);line-height:1.6;max-width:330px;background:var(--leaf-soft);border:1px solid rgba(47,107,98,.25);border-radius:16px;padding:14px 18px;}
.fpill{font-family:var(--heading);font-weight:600;font-size:.92rem;padding:8px 22px;border-radius:var(--r-pill);}
.fpill.gain{background:var(--leaf-soft);color:var(--leaf);}
.fpill.drain{background:var(--primary-soft);color:var(--primary-deep);}
.fpill.neu{background:var(--gold-soft);color:var(--primary-deep);}

/* ── RESULT / WIN / LOSE OVERLAYS ── */
.rover{position:fixed;top:0;left:50%;transform:translateX(-50%);width:100%;max-width:480px;height:100%;z-index:60;display:none;flex-direction:column;align-items:center;justify-content:center;padding:32px 24px;text-align:center;gap:14px;}
@media(min-width:760px){.rover{max-width:560px;border-radius:22px;height:auto;top:50%;transform:translate(-50%,-50%);box-shadow:0 40px 90px -30px rgba(70,40,15,.7);max-height:92vh;overflow-y:auto;}}
.rover.show{display:flex;animation:fade .35s ease;}
.win-bg{background:linear-gradient(165deg,#fdf6e8,#f3e3c4);}
.lose-bg{background:linear-gradient(165deg,#f6ece0,#ecdcc6);}
.rover-em{font-size:3.6rem;}
.rover-title{font-family:var(--heading);font-weight:600;font-size:2rem;color:var(--ink);}
.rover-sub{font-size:.94rem;color:var(--text2);line-height:1.65;max-width:320px;}
.rover-hearts{font-family:var(--heading);font-weight:600;font-size:2.4rem;color:var(--primary);}
.rover-hearts .rc-label{font-size:.85rem;color:var(--text2);display:block;margin-bottom:2px;font-family:var(--body);}
.rover-companion{display:none;flex-direction:column;align-items:center;gap:10px;background:var(--card);border:1px solid var(--line);border-radius:18px;padding:18px 20px 16px;max-width:300px;}
.rover-companion.show{display:flex;}
.rover-companion-img{width:100px;height:100px;object-fit:contain;filter:drop-shadow(0 6px 16px rgba(70,40,15,.3));mask-image:radial-gradient(ellipse 82% 82% at 50% 50%,black 38%,transparent 74%);-webkit-mask-image:radial-gradient(ellipse 82% 82% at 50% 50%,black 38%,transparent 74%);}
.rover-companion-name{font-family:var(--heading);font-weight:600;font-size:1.05rem;color:var(--leaf);margin-bottom:2px;}
.rover-companion-line{font-size:.78rem;color:var(--text2);line-height:1.4;}

/* ── REPORT ── */
.rep-header{background:var(--card);border-bottom:1px solid var(--line);padding:22px 26px 18px;display:flex;align-items:center;gap:12px;}
@media(min-width:760px){.rep-header{border-radius:22px 22px 0 0;padding:22px 34px;}}
.rep-icon{font-size:2.1rem;}
.rep-header-title{font-family:var(--heading);font-weight:600;font-size:1.05rem;color:var(--primary);}
.rep-header-sub{font-size:.86rem;color:var(--text2);margin-top:2px;}
.rep-body{padding:20px;display:flex;flex-direction:column;gap:14px;}
@media(min-width:760px){.rep-body{padding:26px 34px;}}
.rep-cols{display:flex;flex-direction:column;gap:14px;}
@media(min-width:760px){.rep-cols{flex-direction:row;align-items:flex-start;gap:20px;}.rep-col-left{flex:0 0 44%;}.rep-col-right{flex:1;min-width:0;}.rep-col-left,.rep-col-right{display:flex;flex-direction:column;gap:14px;}}
.rcard{background:var(--card);border:1px solid var(--line);border-radius:var(--r-card);padding:18px 20px;}
.rcard-title{font-family:var(--heading);font-weight:600;font-size:.82rem;letter-spacing:.08em;text-transform:uppercase;color:var(--primary);margin-bottom:12px;}
.rchild-name{font-family:var(--heading);font-weight:600;font-size:1.7rem;color:var(--ink);line-height:1.1;}
.rquest-name{font-size:1rem;color:var(--leaf);margin-top:3px;font-weight:600;}
.rdate{font-size:.85rem;color:var(--ink-faint);margin-top:4px;}
.rep-stats-grid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:8px;}
.stat-cell{text-align:center;}
.stat-val{font-family:var(--heading);font-weight:600;font-size:1.35rem;color:var(--ink);line-height:1.1;}
.stat-val.cave-win{color:var(--leaf);}
.stat-val.cave-try{color:var(--primary);}
.stat-lbl{font-size:.74rem;color:var(--text2);margin-top:4px;}
.rep-companion{background:var(--card);border:1px solid var(--line);border-radius:var(--r-card);padding:26px 18px 22px;display:none;flex-direction:column;align-items:center;text-align:center;margin-bottom:0;position:relative;overflow:hidden;}
.rep-companion.show{display:flex;}
.rep-companion-img{width:180px;height:180px;object-fit:contain;filter:drop-shadow(0 10px 26px rgba(70,40,15,.4));margin-bottom:14px;mask-image:radial-gradient(ellipse 82% 82% at 50% 50%,black 38%,transparent 74%);-webkit-mask-image:radial-gradient(ellipse 82% 82% at 50% 50%,black 38%,transparent 74%);}
.rep-companion-stage{font-size:.62rem;letter-spacing:.16em;text-transform:uppercase;color:var(--leaf);margin-bottom:5px;font-weight:700;}
.rep-companion-name{font-family:var(--heading);font-weight:600;font-size:1.55rem;color:var(--primary);margin-bottom:7px;}
.rep-companion-ember{font-size:.84rem;color:var(--text2);line-height:1.55;font-style:italic;}
.share-card{background:linear-gradient(150deg,#fdf6e8,#f3e6cd);border:1px solid var(--line);border-radius:var(--r-card);padding:28px 22px 22px;text-align:center;position:relative;overflow:hidden;}
.share-ks{font-size:.6rem;letter-spacing:.16em;text-transform:uppercase;color:var(--leaf);opacity:.8;margin-bottom:16px;font-weight:700;}
.share-name{font-family:var(--heading);font-weight:600;font-size:2rem;color:var(--ink);line-height:1.1;margin-bottom:6px;}
.share-trait{font-family:var(--heading);font-weight:600;font-size:.95rem;color:var(--primary);margin-bottom:14px;}
.share-headline{font-size:.84rem;color:var(--text2);font-style:italic;line-height:1.65;border-top:1px solid var(--line);padding-top:14px;}
.share-snap{font-size:.6rem;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-faint);opacity:.5;margin-top:12px;}
.arc-card{background:var(--card);border:1px solid var(--line);border-radius:var(--r-card);padding:16px 18px;display:none;}
.arc-card.visible{display:block;}
.arc-title{font-family:var(--heading);font-weight:600;font-size:.82rem;letter-spacing:.08em;text-transform:uppercase;color:var(--leaf);margin-bottom:14px;}
.arc-row{display:flex;align-items:center;gap:8px;margin-bottom:8px;}
.arc-qlabel{font-size:.72rem;color:var(--text2);width:60px;flex-shrink:0;}
.arc-track{flex:1;height:6px;background:var(--paper-edge);border-radius:999px;overflow:hidden;}
.arc-fill{height:100%;border-radius:999px;background:var(--leaf);width:0%;transition:width .8s ease;}
.arc-fill.now{background:var(--primary);}
.arc-pct{font-family:var(--heading);font-weight:600;font-size:.72rem;color:var(--text2);width:34px;text-align:right;flex-shrink:0;}
.arc-delta{font-size:.78rem;font-family:var(--heading);font-weight:600;text-align:center;margin-top:10px;}
.arc-delta.up{color:var(--leaf);}
.arc-delta.same{color:var(--text2);}
.arc-delta.down{color:var(--primary);}
.spec-wrap{margin-bottom:16px;}
.spec-lbl-row{display:flex;justify-content:space-between;margin-bottom:4px;}
.spec-lbl{font-size:.6rem;color:var(--ink-faint);font-family:var(--body);font-weight:600;letter-spacing:.02em;}
.spec-name{font-size:.74rem;font-family:var(--heading);font-weight:600;color:var(--ink);margin-bottom:6px;}
.spec-track{background:var(--paper-edge);border-radius:999px;height:8px;position:relative;margin-bottom:4px;}
.spec-dot{width:14px;height:14px;border-radius:50%;background:var(--primary);position:absolute;top:-3px;transform:translateX(-50%);transition:left .8s ease;box-shadow:0 0 0 2px var(--card);}
.spec-desc{font-size:.7rem;color:var(--text2);line-height:1.55;}
.today-card{background:var(--leaf-soft);border:1.5px solid rgba(47,107,98,.28);border-radius:var(--r-card);padding:20px;}
.today-label{font-size:.6rem;letter-spacing:.14em;text-transform:uppercase;color:var(--leaf);margin-bottom:12px;font-weight:700;}
.today-title{font-family:var(--heading);font-weight:600;font-size:1.08rem;color:var(--ink);margin-bottom:10px;line-height:1.3;}
.today-body{font-size:.92rem;color:var(--text2);line-height:1.65;}
.conv-box{background:var(--gold-soft);border:1px solid rgba(211,154,42,.3);border-radius:var(--r-card);padding:16px 18px;}
.conv-title{font-family:var(--heading);font-weight:600;font-size:.95rem;color:var(--primary-deep);letter-spacing:.04em;text-transform:uppercase;margin-bottom:6px;}
.conv-sub{font-size:.92rem;color:var(--text2);margin-bottom:12px;}
.conv-quote{font-size:.98rem;color:var(--primary-deep);font-style:italic;line-height:1.6;}
.rep-gate{background:linear-gradient(135deg,var(--leaf-soft),var(--gold-soft));border:1.5px solid rgba(47,107,98,.35);border-radius:var(--r-card);padding:24px 20px 20px;text-align:center;margin:4px 0;}
.rep-gate-icon{font-size:1.6rem;margin-bottom:10px;}
.rep-gate-title{font-family:var(--heading);font-weight:600;font-size:1.08rem;color:var(--ink);margin-bottom:6px;}
.rep-gate-sub{font-size:.82rem;color:var(--text2);line-height:1.6;margin-bottom:16px;}
.rep-gate-form{display:flex;gap:10px;flex-wrap:wrap;}
.email-inp{background:var(--card);border:1.5px solid var(--line);border-radius:14px;padding:14px 16px;color:var(--ink);font-family:var(--body);font-size:.95rem;}
.email-inp:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-soft);}
.rep-locked-zone{transition:filter .4s ease;border-radius:var(--r-card);overflow:hidden;}
.rep-locked-zone.locked{filter:blur(6px);pointer-events:none;user-select:none;}
.rep-traits-card{position:relative;overflow:hidden;}
.rep-resend{background:var(--gold-soft);border:1px solid rgba(211,154,42,.25);border-radius:var(--r-card);padding:18px 20px;margin:4px 0;}
.rep-resend-title{font-size:.84rem;color:var(--text2);margin-bottom:10px;text-align:center;font-weight:600;}
.rep-resend-form{display:flex;gap:10px;flex-wrap:wrap;}
.rep-resend-done{font-size:.86rem;color:var(--leaf);text-align:center;display:none;padding:4px 0;font-weight:600;}
.next-cta{background:linear-gradient(135deg,var(--primary-soft),var(--gold-soft));border:2px solid var(--primary);border-radius:var(--r-card);padding:28px 22px;text-align:center;display:flex;flex-direction:column;gap:14px;align-items:center;}
.next-cta-label{font-size:.74rem;letter-spacing:.12em;text-transform:uppercase;color:var(--primary);font-weight:700;}
.next-cta-emoji{font-size:3rem;}
.next-cta-title{font-family:var(--heading);font-weight:600;font-size:1.45rem;color:var(--ink);line-height:1.2;}
.next-cta-sub{font-size:.9rem;color:var(--text2);line-height:1.6;}
.rep-footer{font-size:.75rem;color:var(--ink-faint);opacity:.6;text-align:center;padding:4px 0;}

/* ── COMPANION GROWTH / EVOLUTION ── */
.cgrow{display:none;flex-direction:column;align-items:center;text-align:center;padding:36px 24px 32px;background:linear-gradient(165deg,#fdf6e8,#f3e6cd);border-top:1px solid var(--line);border-bottom:1px solid var(--line);position:relative;overflow:hidden;border-radius:var(--r-card);}
.cgrow.show{display:flex;}
.cgrow-label{font-size:.58rem;letter-spacing:.2em;text-transform:uppercase;color:var(--ink-faint);margin-bottom:20px;font-weight:700;}
.cgrow-spark{font-size:.7rem;letter-spacing:.14em;text-transform:uppercase;color:var(--primary);margin-bottom:16px;font-weight:700;}
.cgrow-img{width:150px;height:150px;object-fit:contain;border-radius:1.25rem;filter:drop-shadow(0 10px 28px rgba(70,40,15,.4));margin-bottom:20px;}
.cgrow-stage-new{font-size:.6rem;letter-spacing:.18em;text-transform:uppercase;color:var(--leaf);margin-bottom:6px;font-weight:700;}
.cgrow-name{font-family:var(--heading);font-weight:600;font-size:2rem;color:var(--primary);line-height:1;margin-bottom:12px;}
.cgrow-ember{font-size:.88rem;color:var(--text2);line-height:1.6;font-style:italic;max-width:280px;}
.cgrow-img-quiet{width:90px;height:90px;object-fit:contain;border-radius:1rem;filter:drop-shadow(0 6px 18px rgba(70,40,15,.3));margin-bottom:12px;}
.cgrow-name-quiet{font-family:var(--heading);font-weight:600;font-size:1.3rem;color:var(--primary);margin-bottom:6px;}
.cgrow-ember-quiet{font-size:.82rem;color:var(--text2);line-height:1.55;font-style:italic;max-width:260px;}
.evo-ov{position:fixed;inset:0;z-index:9999;background:linear-gradient(165deg,#fdf6e8,#ecdcc0);display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:32px 24px;opacity:0;transition:opacity .5s ease;pointer-events:none;}
.evo-ov.show{opacity:1;pointer-events:all;}
.evo-spark{font-size:.65rem;letter-spacing:.22em;text-transform:uppercase;color:var(--primary);margin-bottom:28px;font-weight:700;}
.evo-img{width:220px;height:220px;object-fit:contain;filter:drop-shadow(0 16px 44px rgba(70,40,15,.5));margin-bottom:24px;mask-image:radial-gradient(ellipse 88% 88% at 50% 50%,black 35%,transparent 76%);-webkit-mask-image:radial-gradient(ellipse 88% 88% at 50% 50%,black 35%,transparent 76%);}
.evo-stage{font-size:.58rem;letter-spacing:.22em;text-transform:uppercase;color:var(--leaf);margin-bottom:8px;font-weight:700;}
.evo-name{font-family:var(--heading);font-weight:600;font-size:2.6rem;color:var(--primary);line-height:1;margin-bottom:16px;}
.evo-line{font-size:.9rem;color:var(--text2);line-height:1.65;font-style:italic;max-width:280px;margin-bottom:36px;}
.evo-btn{background:var(--primary);color:#fff;font-family:var(--heading);font-weight:600;font-size:1rem;border:none;border-radius:999px;padding:14px 32px;cursor:pointer;}

/* ── EMAIL OVERLAY ── */
.email-overlay{position:fixed;top:0;left:50%;transform:translateX(-50%);width:100%;max-width:480px;height:100%;background:rgba(244,236,219,.98);z-index:70;display:none;flex-direction:column;align-items:center;justify-content:center;padding:36px 28px;text-align:center;gap:20px;}
@media(min-width:760px){.email-overlay{max-width:540px;border-radius:22px;height:auto;top:50%;transform:translate(-50%,-50%);box-shadow:0 40px 90px -30px rgba(70,40,15,.7);}}
.email-overlay.show{display:flex;animation:fade .28s ease;}
.email-overlay-emoji{font-size:3.5rem;}
.email-overlay-title{font-family:var(--heading);font-weight:600;font-size:1.6rem;color:var(--ink);line-height:1.2;}
.email-overlay-sub{font-size:.92rem;color:var(--text2);line-height:1.65;max-width:340px;}
.email-overlay .email-inp{width:100%;text-align:center;}
.email-sending{font-size:.85rem;color:var(--text2);display:none;}

/* ── QUIZ ── */
.quiz-ov{position:fixed;top:0;left:50%;transform:translateX(-50%);width:100%;max-width:480px;height:100%;background:linear-gradient(165deg,#fdf6e8,#efe2c8);z-index:75;display:none;overflow-y:auto;}
@media(min-width:760px){.quiz-ov{max-width:560px;border-radius:22px;height:auto;max-height:92vh;top:50%;transform:translate(-50%,-50%);box-shadow:0 40px 90px -30px rgba(0,0,0,.8);}}
.quiz-ov.show{display:block;animation:fade .28s ease;}
.qz-inner{width:100%;padding:36px 26px 48px;display:flex;flex-direction:column;align-items:center;position:relative;}
.quiz-close{position:absolute;top:14px;right:14px;background:none;border:none;color:var(--ink-faint);font-size:1.3rem;cursor:pointer;line-height:1;padding:10px;margin:-10px;z-index:2;}
.quiz-close:hover{color:var(--ink);}
.qz-theme{font-size:3rem;margin-bottom:6px;text-align:center;}
.qz-eyebrow{font-family:var(--heading);font-weight:600;font-size:.72rem;letter-spacing:.18em;text-transform:uppercase;color:var(--leaf);margin-bottom:6px;text-align:center;}
.qz-title{font-family:var(--heading);font-weight:600;font-size:1.6rem;color:var(--ink);margin-bottom:8px;text-align:center;line-height:1.2;}
.qz-sub{font-size:.88rem;color:var(--text2);line-height:1.65;text-align:center;margin-bottom:24px;max-width:320px;}
.qz-age-prompt{font-family:var(--heading);font-weight:600;font-size:.95rem;color:var(--ink);margin-bottom:14px;text-align:center;}
.qz-age-row{display:grid;grid-template-columns:1fr 1fr;gap:12px;width:100%;margin-bottom:24px;}
.qz-age-btn{background:var(--card);border:1.5px solid var(--line);border-radius:18px;padding:18px 10px;font-family:var(--heading);font-weight:600;font-size:.9rem;color:var(--text2);cursor:pointer;transition:.15s;text-align:center;line-height:1.45;display:flex;flex-direction:column;align-items:center;justify-content:center;}
.qz-age-btn:hover{border-color:var(--leaf);color:var(--ink);}
.qz-age-btn.selected{border-color:var(--leaf);background:var(--leaf-soft);color:var(--leaf);}
.qz-progress{display:flex;gap:10px;margin-bottom:20px;align-self:center;}
.qz-pdot{width:11px;height:11px;border-radius:50%;background:var(--line);transition:.3s;}
.qz-pdot.done{background:var(--leaf);}
.qz-pdot.active{background:var(--primary);transform:scale(1.35);}
.qz-q-num{font-family:var(--heading);font-weight:600;font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:var(--primary);margin-bottom:8px;align-self:center;text-align:center;}
.qz-q-text{font-family:var(--heading);font-weight:600;font-size:1.15rem;color:var(--ink);line-height:1.42;margin-bottom:20px;align-self:center;text-align:center;}
.qz-choices{display:flex;flex-direction:column;gap:10px;width:100%;margin-bottom:16px;}
.qz-choice{background:var(--card);border:1.5px solid var(--line);border-radius:16px;padding:15px 16px;font-family:var(--body);font-weight:600;font-size:.9rem;color:var(--ink);cursor:pointer;text-align:left;transition:.15s;line-height:1.4;width:100%;}
.qz-choice:hover:not(:disabled){border-color:var(--primary);background:var(--primary-soft);}
.qz-choice.qz-correct{border-color:var(--leaf)!important;background:var(--leaf-soft)!important;color:var(--leaf)!important;}
.qz-choice.qz-wrong{border-color:var(--primary)!important;background:var(--primary-soft)!important;color:var(--primary-deep)!important;}
.qz-feedback{font-size:.88rem;line-height:1.6;text-align:center;padding:12px 16px;border-radius:16px;margin-bottom:14px;display:none;}
.qz-feedback.qzf-ok{display:block;background:var(--leaf-soft);color:var(--leaf);}
.qz-feedback.qzf-tip{display:block;background:var(--gold-soft);color:var(--primary-deep);}
.qz-text-wrap{width:100%;margin-bottom:12px;}
.qz-text-inp{background:var(--card);border:1.5px solid var(--line);border-radius:16px;padding:16px;width:100%;color:var(--ink);font-family:var(--body);font-size:.95rem;}
.qz-text-inp:focus{outline:none;border-color:var(--primary);}
.qz-result-emoji{font-size:3.8rem;margin-bottom:6px;}
.qz-result-stars{font-size:1.9rem;margin:8px 0 12px;text-align:center;}
.qz-result-title{font-family:var(--heading);font-weight:600;font-size:1.5rem;color:var(--ink);margin-bottom:10px;text-align:center;}
.qz-result-sub{font-size:.88rem;color:var(--text2);line-height:1.65;text-align:center;margin-bottom:26px;max-width:320px;}

/* ── SHOW-PARENT OVERLAY ── */
#show-parent-ov{background:linear-gradient(165deg,#fdf6e8,#ecdcc0)!important;}
#show-parent-ov *{color:inherit;}
#sp-result-label{color:var(--leaf)!important;}
#sp-name{color:var(--ink)!important;}
#sp-trait{color:var(--ink)!important;}
#sp-score{color:var(--primary)!important;}

/* ── HEART / MAP / CONFIRM SHEETS ── */
.heart-overlay,.map-overlay{position:fixed;inset:0;z-index:50;background:rgba(50,35,15,.62);display:flex;align-items:flex-end;justify-content:center;opacity:0;pointer-events:none;transition:opacity .2s ease;will-change:opacity;}
.heart-overlay.open,.map-overlay.open{opacity:1;pointer-events:all;}
.heart-sheet,.map-sheet{width:100%;max-width:480px;background:var(--card);border-radius:1.5rem 1.5rem 0 0;padding:20px 22px calc(28px + env(safe-area-inset-bottom,0px));max-height:80vh;overflow-y:auto;transform:translateY(40px);transition:transform .25s ease;will-change:transform;}
@media(min-width:760px){.heart-sheet,.map-sheet{border-radius:1.5rem;margin-bottom:5vh;}}
.heart-overlay.open .heart-sheet,.map-overlay.open .map-sheet{transform:translateY(0);}
.map-handle{width:40px;height:4px;background:var(--line);border-radius:999px;margin:0 auto 20px;}
.map-head{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:18px;}
.map-title{font-family:var(--heading);font-weight:600;font-size:1.05rem;color:var(--ink);}
.map-sub{font-size:.8rem;color:var(--text2);margin-top:2px;}
.map-close{background:none;border:none;color:var(--ink-faint);font-size:1.3rem;cursor:pointer;line-height:1;padding:10px;margin:-10px;}
.map-close:hover{color:var(--ink);}
.heart-total-wrap{text-align:center;padding:12px 0 16px;}
.heart-num{font-family:var(--heading);font-weight:600;font-size:4rem;color:var(--primary);line-height:1;}
.heart-denom{font-size:.78rem;color:var(--text2);margin-top:2px;}
.heart-bar-bg{background:var(--paper-edge);border-radius:999px;height:9px;overflow:hidden;margin-bottom:20px;}
.heart-bar-fill{height:100%;border-radius:999px;background:var(--primary);transition:width .6s ease;}
.heart-row{display:flex;align-items:center;gap:12px;padding:12px 0;border-bottom:1px solid var(--line);}
.heart-row:last-child{border-bottom:none;}
.heart-row-sc{font-family:var(--heading);font-weight:600;font-size:.72rem;color:var(--text2);width:20px;text-align:center;flex-shrink:0;}
.heart-row-loc{flex:1;font-size:.84rem;color:var(--text2);line-height:1.3;}
.heart-row-tag{font-family:var(--heading);font-weight:600;font-size:.66rem;padding:3px 10px;border-radius:999px;flex-shrink:0;}
.heart-row-tag.gain{background:var(--leaf-soft);color:var(--leaf);}
.heart-row-tag.drain{background:var(--primary-soft);color:var(--primary-deep);}
.heart-row-tag.neu{background:var(--gold-soft);color:var(--primary-deep);}
.heart-empty{text-align:center;padding:20px 0;font-size:.84rem;color:var(--ink-faint);}
.map-path{display:flex;flex-direction:column;}
.map-node{display:flex;gap:14px;position:relative;padding-bottom:20px;}
.map-node:last-child{padding-bottom:0;}
.map-node::before{content:'';position:absolute;left:15px;top:32px;bottom:0;width:2px;background:var(--line);}
.map-node:last-child::before{display:none;}
.map-dot{width:32px;height:32px;min-width:32px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-family:var(--heading);font-weight:600;font-size:.8rem;border:2px solid var(--line);background:var(--card);color:var(--text2);}
.map-dot.done{background:var(--leaf);border-color:var(--leaf);color:#fff;}
.map-dot.now{background:var(--primary);border-color:var(--primary);color:#fff;box-shadow:0 0 0 3px var(--primary-soft);}
.map-dot.locked{opacity:.4;}
.map-info{flex:1;padding-top:5px;}
.map-loc{font-family:var(--heading);font-weight:600;font-size:.88rem;color:var(--ink);margin-bottom:3px;}
.map-choice{font-size:.76rem;color:var(--text2);line-height:1.45;margin-bottom:4px;}
.map-heart-tag{font-family:var(--heading);font-weight:600;font-size:.62rem;padding:2px 9px;border-radius:999px;display:inline-block;}
.map-heart-tag.gain{background:var(--leaf-soft);color:var(--leaf);}
.map-heart-tag.drain{background:var(--primary-soft);color:var(--primary-deep);}
.map-heart-tag.neu{background:var(--gold-soft);color:var(--primary-deep);}
.confirm-overlay{position:fixed;inset:0;z-index:60;background:rgba(50,35,15,.6);display:flex;align-items:center;justify-content:center;padding:24px;opacity:0;pointer-events:none;transition:opacity .2s;}
.confirm-overlay.open{opacity:1;pointer-events:all;}
.confirm-box{background:var(--card);border:1px solid var(--line);border-radius:1.25rem;padding:28px 24px;max-width:340px;width:100%;text-align:center;}
.confirm-title{font-family:var(--heading);font-weight:600;font-size:1.1rem;color:var(--ink);margin-bottom:8px;}
.confirm-body{font-size:.86rem;color:var(--text2);line-height:1.6;margin-bottom:20px;}
.confirm-btns{display:flex;gap:10px;}
.confirm-stay{flex:1;background:var(--primary);border:none;border-radius:var(--r-btn);padding:13px;font-family:var(--heading);font-weight:600;font-size:.9rem;color:#fff;cursor:pointer;}
.confirm-leave{flex:1;background:transparent;border:1px solid var(--line);border-radius:var(--r-btn);padding:13px;font-family:var(--heading);font-weight:600;font-size:.9rem;color:var(--text2);cursor:pointer;}

/* ── BOTTOM NAV ── */
.bottom-nav{position:fixed;bottom:0;left:50%;transform:translateX(-50%);width:100%;max-width:480px;background:var(--card);border-top:1px solid var(--line);display:flex;justify-content:space-around;padding:10px 0 calc(14px + env(safe-area-inset-bottom,0px));z-index:30;box-shadow:0 -8px 24px -16px rgba(70,40,15,.3);}
@media(min-width:760px){.bottom-nav{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);max-width:560px;border:1px solid var(--line);border-radius:999px;padding:12px 10px;justify-content:center;gap:44px;box-shadow:0 16px 40px -16px rgba(70,40,15,.45);}}
.ntab{display:flex;flex-direction:column;align-items:center;gap:3px;opacity:1;cursor:pointer;position:relative;color:var(--ink-faint);}
.ntab svg{width:21px;height:21px;}
.ntab svg *{stroke:var(--ink-faint);}
.ntab.active svg *{stroke:var(--primary);}
.nlabel{font-family:var(--heading);font-weight:600;font-size:.62rem;color:var(--ink-faint);letter-spacing:.03em;}
.ntab.active .nlabel{color:var(--primary);}
.ntab.report-unlocked svg *{stroke:var(--primary);}
.ntab.report-unlocked .nlabel{color:var(--primary);}
.ntab.tab-locked{opacity:.3;cursor:not-allowed;pointer-events:none;}
.ntab .rbadge{width:7px;height:7px;background:var(--primary);border-radius:50%;position:absolute;top:-2px;right:6px;display:none;}
.ntab.report-unlocked .rbadge{display:block;}
@media(min-width:760px){.ntab{flex-direction:row;gap:8px;}.nlabel{font-size:.85rem;}}

@media(prefers-reduced-motion:reduce){*{animation-duration:.01ms!important;transition-duration:.01ms!important;}.heart-sheet,.map-sheet{transform:none!important;}}
