/* Quick Momentum Check hero funnel (v1.6.6). Shared file; markup lives in momentum-check/index.html.
   Reserved box: aspect-ratio 460/500 so nothing shifts. */
.hfn { --drop:#ECB4B1; position:relative; justify-self:end; width:100%; max-width:460px; aspect-ratio:460 / 500; z-index:3; }
.hfn[hidden] { display:none !important; }
.hero-mc .hero-grid:has(> .hfn:not([hidden])) { grid-template-columns:minmax(0,1fr) clamp(280px,36vw,460px); }
.hfn-pz { position:absolute; right:2px; bottom:2px; width:36px; height:36px; padding:0; border-radius:50%; border:1px solid rgba(255,255,255,.45); background:rgba(0,0,0,.35); color:#fff; font-size:13px; line-height:1; cursor:pointer; display:flex; align-items:center; justify-content:center; z-index:2; }
.hfn-pz:hover { background:rgba(255,255,255,.18); }
.hfn-pz:focus-visible { outline:3px solid #D44040; outline-offset:2px; }
.hfn.paused .an { animation-play-state:paused; }
@media (max-width:1023px) { .hfn { max-width:340px; } .hero-mc .hero-grid:has(> .hfn:not([hidden])) { grid-template-columns:minmax(0,1fr) clamp(240px,34vw,340px); } }
/* phones: funnel is hidden so the headline and the 1st question stay above the fold (see report) */
@media (max-width:820px) { .hfn { display:none !important; } .hero-mc .hero-grid:has(> .hfn:not([hidden])) { grid-template-columns:minmax(0,1fr); } }
.hfn .funnel { width:100%; height:100%; display:block; overflow:visible; }
.hfn .bn { font-weight:700; font-size:16px; fill:#fff; }
.hfn .num { fill:#fff; stroke:#7A272A; stroke-width:1.5; stroke-dasharray:3 2; }
.hfn .numt { font:700 11px "Source Sans 3", sans-serif; fill:#7A272A; text-anchor:middle; }
.hfn .lab { font:500 12.5px "Source Sans 3", system-ui, sans-serif; fill:#fff; }
.hfn .chip { fill:#F2F4F4; }
.hfn .bi { font-size:18px; text-anchor:middle; }
.hfn .edge { stroke:#61B89B; stroke-width:1.2; stroke-opacity:.55; }
.hfn .people circle, .hfn .people path { fill:#C2C2D6; }
.hfn .drop { fill:var(--drop); }
.hfn .coin circle { fill:#9AD2BD; stroke:#19A07E; stroke-width:1.2; }
.hfn .coin text { font:700 12px "Source Sans 3", sans-serif; fill:#015541; text-anchor:middle; }
.hfn .bill rect { fill:#9AD2BD; stroke:#19A07E; stroke-width:1.2; } .hfn .bill circle { fill:none; stroke:#015541; stroke-width:1; }
.hfn .bill text { font:700 7px "Source Sans 3", sans-serif; fill:#015541; text-anchor:middle; }
.hfn .pbody { fill:#6E6558; stroke:#ADA396; stroke-width:1.5; } .hfn .pneck { fill:#4F463B; stroke:#ADA396; stroke-width:1.2; }
.hfn .pd { font:800 26px "Source Sans 3", sans-serif; fill:#fff; text-anchor:middle; }
.hfn .pouch { transform-box:fill-box; transform-origin:50% 100%; }
.hfn .an { opacity:0; transform-box:fill-box; transform-origin:center; }
.hfn .drop { animation:drip 3.4s ease-in infinite; }
@keyframes drip { 0% { opacity:0; transform:translate(0,0) scale(.55); } 14% { opacity:.95; } 70% { opacity:.8; } 100% { opacity:0; transform:translate(var(--dx),48px) scale(1.05); } }
.hfn .person { animation:walk 4.8s ease-in infinite; }
@keyframes walk { 0% { opacity:0; transform:translate(0,0); } 6% { opacity:.95; } 34% { opacity:.95; transform:translate(var(--px),var(--sy)); } 40%,100% { opacity:0; transform:translate(calc(var(--px)*1.1),calc(var(--sy) + 14px)); } }
.hfn .bill { animation:fall 4.8s ease-in infinite; }
@keyframes fall { 0% { opacity:0; transform:translate(0,0); } 4% { opacity:1; } 24% { opacity:1; } 30%,100% { opacity:0; transform:translate(var(--bx),var(--sy)); } }
.hfn .pouch { opacity:1; animation:bounce 1.6s ease-out infinite; }
@keyframes bounce { 0%,76%,100% { transform:scale(1,1); } 84% { transform:scale(1.05,.93); } 92% { transform:scale(.98,1.03); } }
.hfn .shim { animation:shimmer 5.2s linear infinite; opacity:1; }
@keyframes shimmer { from { transform:translateY(0); } to { transform:translateY(520px); } }
@media (prefers-reduced-motion:reduce) {
.hfn .an { animation:none !important; }
.hfn .drop { opacity:.9; transform:translate(var(--dx),var(--sy)); }
.hfn .person { opacity:.95; transform:translate(var(--px),var(--sy)); }
.hfn .bill { opacity:1; transform:translate(var(--bx),calc(var(--sy) / 2)); }
.hfn .shim { opacity:0; } .hfn .hfn-pz { display:none; }
}
