/* Steadyroo — quiz + offer (mobile-first). Visual modeled on the reference funnel: light grey canvas, white cards, deep green CTA. */
:root{
  --green:#3a7968; --green-d:#306859; --green-l:#eaf4e9; --green-xl:#f2f8f4;
  --bg:#f6f7f9; --card:#fff; --ink:#2b2a3d; --ink-2:#5c5b6e; --muted:#8e8fa3; --line:#e6e9f2;
  --orange:#ff9d00; --orange-l:#fff4df; --red:#ba4949; --red-l:#f8d7ce; --yellow-l:#fff6dc; --yellow-b:#f5d27a;
  --radius:16px; --shadow:0 2px 10px rgba(30,35,60,.06);
  --font:"Inter",system-ui,-apple-system,Segoe UI,Roboto,sans-serif; --head:"Rubik","Inter",system-ui,sans-serif;
}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html,body{margin:0;padding:0}
body{background:var(--bg);color:var(--ink);font-family:var(--font);font-size:16px;line-height:1.45;min-height:100vh;min-height:100dvh}
img{max-width:100%;display:block}
button{font-family:inherit}
a{color:var(--green)}
.wrap{max-width:480px;margin:0 auto;padding:0 16px}
.hidden{display:none!important}

/* top bar + progress */
.topbar{position:sticky;top:0;z-index:20;background:var(--bg);padding:10px 0 6px}
.topbar .row{display:flex;align-items:center;justify-content:center;position:relative;height:32px}
.back{position:absolute;left:0;top:0;width:32px;height:32px;border:0;background:none;color:var(--ink-2);font-size:22px;cursor:pointer;border-radius:8px}
.back:disabled{opacity:0}
.block-name{font-size:12px;font-weight:600;color:var(--ink-2)}
.logo{font-family:var(--head);font-weight:700;font-size:22px;color:var(--green);letter-spacing:-.3px;display:flex;align-items:center;gap:6px}
.logo svg{width:24px;height:24px}
.segs{display:grid;grid-template-columns:repeat(5,1fr);gap:6px;margin-top:8px}
.seg{height:4px;border-radius:4px;background:#dfe3ea;overflow:hidden}
.seg i{display:block;height:100%;width:0;background:var(--green);transition:width .3s}

/* screens */
.screen{padding:12px 0 120px;animation:fade .25s ease}
@keyframes fade{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
h1.q{font-family:var(--head);font-size:24px;line-height:1.25;font-weight:600;text-align:center;margin:18px 0 8px}
p.sub{text-align:center;color:var(--ink-2);margin:0 0 20px;font-size:15px}
.opts{display:flex;flex-direction:column;gap:12px;margin-top:18px}
.opt{display:flex;align-items:center;gap:14px;background:var(--card);border:2px solid transparent;border-radius:var(--radius);padding:16px;font-size:16px;text-align:left;color:var(--ink);cursor:pointer;box-shadow:var(--shadow);width:100%;transition:border-color .15s,background .15s}
.opt:hover{border-color:#cfe2d8}
.opt.sel{border-color:var(--green);background:var(--green-xl)}
.opt .emo{font-size:26px;line-height:1;width:30px;text-align:center}
.opt .box{margin-left:auto;width:22px;height:22px;border:2px solid #b9bfcc;border-radius:6px;flex:none;display:grid;place-items:center}
.opt.sel .box{background:var(--green);border-color:var(--green)}
.opt.sel .box::after{content:"";width:6px;height:11px;border:solid #fff;border-width:0 2px 2px 0;transform:rotate(45deg) translate(-1px,-1px)}

/* intro */
.intro h1{font-family:var(--head);text-transform:uppercase;text-align:center;font-size:26px;line-height:1.2;margin:18px 0 12px;font-weight:700}
.intro .lead{text-align:center;text-transform:uppercase;font-size:17px;line-height:1.55;color:var(--ink-2);margin:0 0 24px}
.intro .lead b{color:var(--ink)}
.intro .ask{text-align:center;color:var(--muted);font-weight:600;font-size:15px;margin-bottom:20px}
.kid-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.kid{border:0;padding:0;border-radius:var(--radius);overflow:hidden;background:#d9e5e1;cursor:pointer;display:flex;flex-direction:column;box-shadow:var(--shadow)}
.kid .ph{aspect-ratio:1/0.75;background:#d9e5e1 center/cover no-repeat;display:grid;place-items:end center;font-size:70px}
.kid .ph img{width:100%;height:100%;object-fit:cover}
.kid span{background:var(--green);color:#fff;font-weight:600;font-size:17px;padding:12px;display:flex;justify-content:center;gap:10px}
.legal{font-size:12px;color:var(--muted);text-align:center;margin-top:22px}
.legal a{color:#2a7bd8}

/* info screens */
.info .art{margin:8px auto 16px;border-radius:var(--radius);overflow:hidden;background:var(--green-l);aspect-ratio:4/3;display:grid;place-items:center;font-size:72px}
.info .art img{width:100%;height:100%;object-fit:cover}
.info .art.small{aspect-ratio:auto;max-width:180px;background:none}
.info h2{font-family:var(--head);font-size:24px;line-height:1.25;margin:10px 0 12px;font-weight:600}
.info .accent{color:var(--green)}
.info p{margin:0 0 14px;font-size:16px;color:var(--ink)}
.info .contrast{color:var(--green);font-weight:700}
.chart-card{background:var(--card);border-radius:var(--radius);padding:16px;box-shadow:var(--shadow);margin:6px 0 16px}
.chart-note{font-size:11px;color:var(--muted);margin-top:8px;text-align:center}

/* profile summary */
.report{background:var(--card);border-radius:var(--radius);padding:16px;box-shadow:var(--shadow)}
.report .lbl{font-size:13px;font-weight:600;margin-bottom:22px}
.scale{position:relative;height:6px;border-radius:6px;background:linear-gradient(90deg,#e86a5f,#f2b84b 50%,#52a173);margin:30px 6px 8px}
.scale .dot{position:absolute;top:50%;width:18px;height:18px;border-radius:50%;background:#fff;border:3px solid var(--orange);transform:translate(-50%,-50%)}
.scale .tag{position:absolute;bottom:14px;transform:translateX(-50%);background:var(--orange-l);color:#8f5a00;font-size:11px;font-weight:600;padding:3px 8px;border-radius:6px;white-space:nowrap}
.scale-l{display:flex;justify-content:space-between;font-size:11px;color:var(--muted);text-transform:uppercase}
.scale-l .on{color:var(--orange);font-weight:700}
.warn{background:var(--yellow-l);border:1px solid var(--yellow-b);border-radius:12px;padding:12px 12px 12px 34px;margin:16px 0;position:relative;font-size:13px}
.warn::before{content:"!";position:absolute;left:12px;top:10px;color:var(--orange);font-weight:800;font-size:18px}
.warn b{display:block;margin-bottom:4px}
.facts{display:grid;grid-template-columns:1fr 120px;gap:8px;align-items:end}
.fact{margin-bottom:10px}
.fact small{display:block;color:var(--muted);font-size:11px}
.fact div{font-weight:600;font-size:14px;display:flex;gap:6px;align-items:center}
.facts .kidimg{border-radius:12px;overflow:hidden;background:var(--green-l);aspect-ratio:3/4;display:grid;place-items:center;font-size:56px}
.facts .kidimg img{width:100%;height:100%;object-fit:cover}

/* curve chart */
.curve-date{font-family:var(--head);color:var(--green);font-size:22px;font-weight:700;text-align:center;margin:4px 0 14px}

/* loader */
.loader h1{margin-top:30px}
.lrow{margin:18px 0}
.lrow .t{display:flex;justify-content:space-between;font-size:14px;font-weight:600;margin-bottom:6px}
.lrow .bar{height:6px;background:#e3e7ee;border-radius:6px;overflow:hidden}
.lrow .bar i{display:block;height:100%;width:0;background:var(--green);transition:width .2s linear}
.lrow.wait{opacity:.45}
.modal-bg{position:fixed;inset:0;background:rgba(20,22,35,.55);z-index:60;display:grid;place-items:center;padding:16px}
.modal{background:#fff;border-radius:18px;max-width:420px;width:100%;padding:22px;box-shadow:0 20px 50px rgba(0,0,0,.25);position:relative;max-height:92vh;overflow:auto}
.modal h3{font-family:var(--head);text-align:center;font-size:20px;margin:6px 0 18px;font-weight:600}
.yn{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.x{position:absolute;right:10px;top:8px;border:0;background:none;font-size:26px;color:var(--muted);cursor:pointer;line-height:1;padding:4px 8px}

/* inputs */
.field{width:100%;padding:16px;border-radius:12px;border:2px solid var(--line);font-size:16px;background:#fff;font-family:inherit;color:var(--ink)}
.field:focus{outline:0;border-color:var(--green)}
.err{color:var(--red);font-size:13px;margin-top:6px;min-height:18px}
.privacy{display:flex;gap:10px;font-size:13px;color:var(--ink-2);margin-top:16px;align-items:flex-start}
.privacy i{font-style:normal;font-size:18px}
.decline{display:block;text-align:center;margin-top:14px;color:var(--muted);font-size:14px;background:none;border:0;cursor:pointer;text-decoration:underline;width:100%}

/* buttons */
.cta-bar{position:fixed;left:0;right:0;bottom:0;padding:12px 16px calc(14px + env(safe-area-inset-bottom));background:linear-gradient(transparent,var(--bg) 30%);z-index:30}
.cta-bar .wrap{padding:0}
.btn{display:block;width:100%;border:0;border-radius:14px;background:var(--green);color:#fff;font-weight:700;font-size:17px;padding:17px;cursor:pointer;text-align:center;text-decoration:none;transition:background .15s,transform .1s}
.btn:hover{background:var(--green-d)}
.btn:active{transform:scale(.99)}
.btn:disabled{background:#d6e0dc;color:#94a59e;cursor:default}
.btn.light{background:var(--green-l);color:var(--green)}

/* footer */
.foot{font-size:12px;color:var(--muted);text-align:center;padding:24px 16px 40px;line-height:1.6}
.foot a{color:var(--muted);margin:0 6px}
.disclaimer{font-size:12px;color:var(--muted);margin:14px 0}

/* ---- Chart & screen animations (timings modeled on the reference funnel) ---- */
@keyframes ckGrow{0%{opacity:0;stroke-dashoffset:500}50%{opacity:1}to{opacity:1;stroke-dashoffset:0}}
@keyframes ckCurveFast{0%{opacity:0;stroke-dashoffset:500}12%{opacity:1}to{opacity:1;stroke-dashoffset:0}}
@keyframes ckFade{from{opacity:0}to{opacity:1}}
@keyframes ckFadeUp{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
@keyframes ckPop{from{opacity:0;transform:translateY(6px) scale(.96)}to{opacity:1;transform:none}}
@keyframes ckLTR{from{-webkit-mask-position:200% 0;mask-position:200% 0}to{-webkit-mask-position:0 0;mask-position:0 0}}
@keyframes ckTTB{from{-webkit-mask-position:0 200%;mask-position:0 200%}to{-webkit-mask-position:0 0;mask-position:0 0}}
@keyframes ckBar{from{transform:scaleY(0)}to{transform:scaleY(1)}}
@keyframes ckWidth{from{width:0}}
@keyframes ckPulse{0%{box-shadow:0 0 0 0 rgba(58,121,104,.55)}to{box-shadow:0 0 0 10px rgba(58,121,104,0)}}
@keyframes ckBlink{0%,to{opacity:.25}50%{opacity:1}}
@keyframes ckSlide{from{left:6%}}
.screen h1.q,.screen h2,.screen p,.screen .opt,.screen .chart-card,.screen .report,.screen .art{animation:ckFadeUp .35s ease both}
.opts .opt:nth-child(2){animation-delay:.04s}.opts .opt:nth-child(3){animation-delay:.08s}.opts .opt:nth-child(4){animation-delay:.12s}.opts .opt:nth-child(5){animation-delay:.16s}.opts .opt:nth-child(6){animation-delay:.2s}
/* "plan built around your answers" curve: slow draw */
.ck-chart .curve{stroke-dasharray:500;stroke-dashoffset:500;opacity:0;animation:ckGrow 4.6s 1.5s forwards}
.ck-chart .area{opacity:0;animation:ckFade 5s .5s forwards}
.ck-chart .pts,.ck-chart .lbl{opacity:0;animation:ckFade 1s 2.8s forwards}
.ck-chart .xl{-webkit-mask:linear-gradient(90deg,#000 50%,transparent) 200% 0/200% 100% no-repeat;mask:linear-gradient(90deg,#000 50%,transparent) 200% 0/200% 100% no-repeat;animation:ckLTR 2.5s 2s forwards}
.ck-chart .axis{-webkit-mask:linear-gradient(#000 50%,transparent) 0 200%/100% 200% no-repeat;mask:linear-gradient(#000 50%,transparent) 0 200%/100% 200% no-repeat;animation:ckTTB 3s forwards}
/* "plan is ready" 4-week curve: faster draw + milestones */
.ck-chart.fast .curve{animation:ckCurveFast 2.6s .3s forwards}
.ck-chart.fast .area{animation:ckFade 1.4s 1.4s forwards}
.ck-chart.fast .axis,.ck-chart.fast .xl{-webkit-mask:none;mask:none;opacity:0;animation:ckFade .7s .2s forwards}
.ck-chart.fast .pts,.ck-chart.fast .lbl{animation:ckFade .8s 2.2s forwards}
.miles{display:flex;justify-content:space-between;gap:6px;margin-top:10px}
.miles span{flex:1;background:var(--green-xl);border-radius:8px;padding:7px 4px;font-size:10px;font-weight:600;text-align:center;opacity:0;animation:ckPop .5s ease-out forwards}
.miles span:nth-child(1){animation-delay:2.4s}.miles span:nth-child(2){animation-delay:2.6s}.miles span:nth-child(3){animation-delay:2.8s}.miles span:nth-child(4){animation-delay:3s}
/* bars */
.ck-bars .bar{transform-box:fill-box;transform-origin:50% 100%;transform:scaleY(0);animation:ckBar 1s cubic-bezier(.25,.8,.25,1) .4s forwards}
.ck-bars .bar.b2{animation-delay:.9s;animation-duration:1.4s}
.ck-bars .t{opacity:0;animation:ckFade .6s 1.9s forwards}
/* profile scale + warning */
.scale .dot,.scale .tag{animation:ckSlide 1.6s cubic-bezier(.25,.8,.25,1) .3s both}
.warn::before{animation:ckBlink 1.6s ease-in-out infinite}
/* loader list */
.loader .chart-card li{opacity:0;animation:ckFadeUp .7s forwards}
.loader .chart-card li:nth-child(1){animation-delay:.3s}.loader .chart-card li:nth-child(2){animation-delay:1.1s}.loader .chart-card li:nth-child(3){animation-delay:1.9s}.loader .chart-card li:nth-child(4){animation-delay:2.7s}
/* pulsing main CTA */
.btn.pulse{animation:ckPulse 1.5s cubic-bezier(.25,0,0,1) infinite}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms!important;animation-delay:0s!important;animation-iteration-count:1!important;transition-duration:.01ms!important}
  .ck-chart .curve{stroke-dashoffset:0!important;opacity:1!important}
}
