/* 408-FARMERS / CoverageFit Motion System — Sprint 1.3A */
:root{
  --cf-motion-fast:180ms;
  --cf-motion-base:520ms;
  --cf-motion-slow:900ms;
  --cf-motion-ease:cubic-bezier(.22,1,.36,1);
  --cf-scroll-progress:0;
  --cf-hero-shift:0px;
  --cf-visual-shift:0px;
  --cf-hero-scale:1;
}

.cf-scroll-progress{position:fixed;inset:0 0 auto;z-index:120;height:3px;pointer-events:none;background:transparent}
.cf-scroll-progress span{display:block;height:100%;width:calc(var(--cf-scroll-progress) * 100%);background:linear-gradient(90deg,var(--green),#86d35d);box-shadow:0 0 14px rgba(91,173,44,.42);transform-origin:left center;transition:width 80ms linear}

.score-copy[data-parallax="copy"]{transform:translate3d(0,var(--cf-hero-shift),0);will-change:transform}
.score-visual[data-parallax="visual"]{transform:translate3d(0,var(--cf-visual-shift),0) scale(var(--cf-hero-scale));transform-origin:center;will-change:transform}
.hero-glow{will-change:transform;animation:cfGlowDrift 12s ease-in-out infinite alternate}
.hero-glow-two{animation-delay:-5s;animation-duration:15s}
@keyframes cfGlowDrift{from{transform:translate3d(-8px,-6px,0) scale(.98)}to{transform:translate3d(12px,10px,0) scale(1.05)}}

.score-gauge{animation:cfGaugeEnter .95s var(--cf-motion-ease) both}
.gauge-dash{stroke-dasharray:18 14;stroke-dashoffset:520;animation:cfGaugeDraw 1.55s var(--cf-motion-ease) .18s forwards,spinDash 14s linear 1.75s infinite}
.gauge-value strong{opacity:0;transform:scale(.72);animation:cfQuestionEnter .65s var(--cf-motion-ease) .72s forwards}
.score-gauge:hover{filter:drop-shadow(0 18px 40px rgba(63,141,24,.18))}
.score-gauge:active{animation:cfGaugeTap .32s var(--cf-motion-ease)}
@keyframes cfGaugeEnter{from{opacity:0;transform:scale(.86) rotate(-4deg)}to{opacity:1;transform:none}}
@keyframes cfGaugeDraw{to{stroke-dashoffset:0}}
@keyframes cfQuestionEnter{to{opacity:1;transform:scale(1)}}
@keyframes cfGaugeTap{50%{transform:scale(.97)}}

.cf-stagger>*{--cf-stagger-index:0;transition-delay:calc(var(--cf-stagger-index) * 110ms)!important}
.score-chips.cf-stagger span{opacity:0;transform:translateY(10px) scale(.96);transition:opacity var(--cf-motion-base) var(--cf-motion-ease),transform var(--cf-motion-base) var(--cf-motion-ease)}
.score-chips.cf-stagger.is-sequenced span{opacity:1;transform:none}
.score-card-grid.cf-stagger>.reveal,.process-grid.cf-stagger>.reveal{transition-delay:calc(var(--cf-stagger-index) * 120ms)}

.cf-timeline{position:relative}
.cf-timeline:before{content:"";position:absolute;z-index:0;background:linear-gradient(90deg,var(--green),rgba(91,173,44,.2));transform-origin:left center;transform:scaleX(var(--cf-timeline-progress,0));transition:transform 1.1s var(--cf-motion-ease)}
.cf-timeline.is-active{--cf-timeline-progress:1}
.cf-timeline article{position:relative;z-index:1}
.cf-timeline article>span{box-shadow:0 0 0 8px var(--soft),0 8px 24px rgba(63,141,24,.18);transform:scale(.78);transition:transform .5s var(--cf-motion-ease),box-shadow .5s ease}
.cf-timeline article.is-visible>span{transform:scale(1)}

.cf-agent-motion>img{transition:opacity .8s var(--cf-motion-ease),transform .8s var(--cf-motion-ease)}
.cf-agent-motion:not(.is-visible)>img{opacity:0;transform:translate3d(-26px,22px,0) scale(.96)}
.cf-agent-motion>div:nth-child(2){transition:opacity .8s var(--cf-motion-ease) .12s,transform .8s var(--cf-motion-ease) .12s}
.cf-agent-motion:not(.is-visible)>div:nth-child(2){opacity:0;transform:translate3d(0,24px,0)}
.cf-agent-motion .agent-carrier{transition:opacity .8s var(--cf-motion-ease) .24s,transform .8s var(--cf-motion-ease) .24s}
.cf-agent-motion:not(.is-visible) .agent-carrier{opacity:0;transform:translate3d(24px,18px,0)}

.cf-btn,.cf-link-button{position:relative;overflow:hidden;isolation:isolate;transition:transform var(--cf-motion-fast) ease,box-shadow var(--cf-motion-fast) ease,filter var(--cf-motion-fast) ease}
.cf-btn:hover,.cf-link-button:hover{transform:translateY(-2px);box-shadow:0 14px 32px rgba(4,26,59,.16)}
.cf-btn:active,.cf-link-button:active{transform:translateY(0) scale(.985)}
.cf-btn .cf-ripple{position:absolute;border-radius:50%;background:rgba(255,255,255,.34);transform:scale(0);animation:cfRipple .58s ease-out;pointer-events:none;z-index:-1}
@keyframes cfRipple{to{transform:scale(3.8);opacity:0}}

.cf-cta-activate{background-size:180% 180%;animation:cfPanelBreath 10s ease-in-out infinite alternate}
.cf-cta-activate.is-visible .cf-btn{animation:cfCtaReady .62s var(--cf-motion-ease) .24s both}
@keyframes cfPanelBreath{from{background-position:0% 50%}to{background-position:100% 50%}}
@keyframes cfCtaReady{from{opacity:0;transform:translateY(12px) scale(.98)}to{opacity:1;transform:none}}

.reveal{transition-timing-function:var(--cf-motion-ease)!important}

@media(min-width:981px){
  .cf-timeline:before{left:7%;right:7%;top:50px;height:3px}
}
@media(max-width:980px){
  .score-copy[data-parallax="copy"],.score-visual[data-parallax="visual"]{transform:none}
}
@media(max-width:700px){
  .cf-scroll-progress{height:2px}
  .cf-timeline:before{left:21px;top:42px;bottom:42px;width:3px;height:auto;background:linear-gradient(var(--green),rgba(91,173,44,.2));transform-origin:center top;transform:scaleY(var(--cf-timeline-progress,0))}
  .process-grid.cf-timeline{gap:18px}
  .cf-btn:hover,.cf-link-button:hover{transform:none;box-shadow:inherit}
}
@media(prefers-reduced-motion:reduce){
  :root{--cf-hero-shift:0px!important;--cf-visual-shift:0px!important;--cf-hero-scale:1!important}
  .cf-scroll-progress span,.hero-glow,.score-gauge,.gauge-dash,.gauge-value strong,.cf-cta-activate,.cf-cta-activate.is-visible .cf-btn{animation:none!important;transition:none!important}
  .gauge-value strong,.score-chips.cf-stagger span{opacity:1!important;transform:none!important}
  .cf-timeline:before{transform:none!important}
  .score-copy[data-parallax="copy"],.score-visual[data-parallax="visual"]{transform:none!important}
}
