/* ===== Motion (inspired by modern Framer health sites; all disabled for reduced motion) ===== */
:root{--ease-out:cubic-bezier(.16,1,.3,1);--ease-spring:cubic-bezier(.34,1.56,.64,1)}

/* Scroll reveal: rise with a touch of depth */
.reveal{opacity:0;transform:perspective(1200px) translateY(44px) scale(.985);transition:opacity .9s var(--ease-out),transform .9s var(--ease-out)}
.reveal.in{opacity:1;transform:none}

/* Load sequence (homepage hero + inner page headers) */
@keyframes nsg-rise{from{opacity:0;transform:translateY(28px)}to{opacity:1;transform:none}}
@keyframes nsg-word{from{opacity:0;transform:translateY(.55em);filter:blur(6px)}to{opacity:1;transform:none;filter:blur(0)}}
@keyframes nsg-photo{from{opacity:0;transform:rotate(1.2deg) scale(1.06);clip-path:inset(8% 8% 8% 8% round 28px)}to{opacity:1;transform:rotate(1.2deg) scale(1);clip-path:inset(0 0 0 0 round 28px)}}
@keyframes nsg-pop{from{opacity:0;transform:translateY(24px) scale(.92)}to{opacity:1;transform:none}}
.seq > *{animation:nsg-rise .9s var(--ease-out) both;animation-delay:calc(var(--i,0) * 90ms + 80ms)}
.seq > *:nth-child(1){--i:0}.seq > *:nth-child(2){--i:1}.seq > *:nth-child(3){--i:2}.seq > *:nth-child(4){--i:3}.seq > *:nth-child(5){--i:4}.seq > *:nth-child(6){--i:5}.seq > *:nth-child(7){--i:6}
.split .w{display:inline-block;white-space:nowrap}
.split .w > span{display:inline-block;animation:nsg-word .8s var(--ease-out) both;animation-delay:calc(var(--w) * 60ms + 200ms)}
.seq > .split{animation:none}
.hero-photo{animation:nsg-photo 1.2s var(--ease-out) .2s both}
.hero .float-card{animation:nsg-pop .8s var(--ease-spring) both, nsg-float 6s ease-in-out 1.6s infinite}
.hero .fc-1{animation-delay:.9s,1.7s}
.hero .fc-2{animation-delay:1.1s,2.4s}
@keyframes nsg-float{0%,100%{translate:0 0}50%{translate:0 -8px}}

/* Stat cards (count up) */
.stats{position:relative;z-index:2;margin-top:clamp(-56px,-4vw,-36px)}
.stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
.stat{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:22px 22px 20px;box-shadow:var(--shadow);display:flex;gap:16px;align-items:center}
.stat .ic{width:52px;height:52px;border-radius:16px;display:grid;place-items:center;background:linear-gradient(135deg,var(--soft),var(--soft-2));color:var(--link);flex:none}
.stat .ic svg{width:26px;height:26px}
.stat strong{display:block;font:800 clamp(1.6rem,2.6vw,2.1rem)/1 Montserrat,sans-serif;color:var(--heading);font-variant-numeric:tabular-nums;letter-spacing:-.02em}
.stat span{display:block;color:var(--muted);font-size:.9rem;margin-top:4px;line-height:1.35}
.stat:nth-child(2){transition-delay:.08s}.stat:nth-child(3){transition-delay:.16s}.stat:nth-child(4){transition-delay:.24s}
.hero{padding-bottom:clamp(96px,10vw,140px)}

/* Marquee strips */
.marquee{overflow:hidden;-webkit-mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent);mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent)}
.marquee-track{display:flex;width:max-content;animation:nsg-marquee var(--dur,40s) linear infinite}
.marquee:hover .marquee-track,.marquee:focus-within .marquee-track{animation-play-state:paused}
@keyframes nsg-marquee{to{transform:translateX(-50%)}}
.funds .marquee{flex:1;min-width:0;width:100%}
.funds .funds-list{flex-wrap:nowrap;justify-content:flex-start;gap:56px;padding-right:56px;flex:none}
.ticker{background:var(--deep);color:#e6f5f0;padding:18px 0;border-block:1px solid rgb(255 255 255 / .06)}
.ticker .marquee-track{--dur:55s}
.ticker ul{display:flex;align-items:center;gap:0;list-style:none;margin:0;padding:0}
.ticker li{display:flex;align-items:center;gap:28px;padding-right:28px;font:700 clamp(1.05rem,1.6vw,1.35rem) Montserrat,sans-serif;white-space:nowrap;letter-spacing:-.01em}
.ticker li::after{content:"";width:10px;height:10px;border-radius:50%;background:linear-gradient(135deg,var(--mint-500),var(--lime-400));flex:none}
.ticker a{color:inherit;text-decoration:none}
.ticker a:hover{color:var(--lime-400)}

/* Numbered service cards */
.svc .num{position:absolute;right:24px;bottom:18px;font:800 3.4rem/1 Montserrat,sans-serif;color:var(--heading);opacity:.06;pointer-events:none;transition:opacity .3s,transform .5s var(--ease-out)}
.svc:hover .num{opacity:.12;transform:translateY(-6px)}
.svc .badge + .ic,.svc .ic{transition:transform .5s var(--ease-spring),background .3s}
.svc:hover .ic{transform:rotate(-6deg) scale(1.08)}

/* Button text roll (hover) */
.btn .roll{position:relative;display:inline-block;overflow:hidden;vertical-align:top;line-height:1.2}
.btn .roll > span{display:block;transition:transform .45s var(--ease-out)}
.btn .roll > span + span{position:absolute;inset:0;transform:translateY(110%)}
.btn:hover .roll > span:first-child{transform:translateY(-110%)}
.btn:hover .roll > span + span{transform:none}
.btn svg{transition:transform .35s var(--ease-out)}
.btn:hover svg:last-child{transform:translateX(2px)}

/* Header shrink */
.header .container{transition:min-height .3s var(--ease-out)}
.header.scrolled .container{min-height:64px}
.brand img{transition:height .3s var(--ease-out)}
.header.scrolled .brand img{height:42px}

/* Inner page header: drifting colour */
@keyframes nsg-drift{0%,100%{background-position:0% 0%,100% 100%,0 0}50%{background-position:8% 6%,92% 94%,0 0}}
.page-hero{background-size:120% 120%,120% 120%,100% 100%;animation:nsg-drift 18s ease-in-out infinite}

/* Doctor cards: lift + image zoom already; add soft sheen */
.doc{position:relative}
.doc::after{content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;background:linear-gradient(120deg,transparent 40%,rgb(255 255 255 / .18) 50%,transparent 60%);background-size:250% 100%;background-position:120% 0;transition:background-position .9s var(--ease-out)}
.doc:hover::after{background-position:-20% 0}

/* Parallax targets get GPU hints */
[data-parallax]{will-change:transform}

@media (max-width:1080px){.stats-grid{grid-template-columns:repeat(2,1fr)}}
@media (max-width:640px){
  .stats-grid{grid-template-columns:1fr 1fr;gap:10px}
  .stat{padding:16px;gap:12px;flex-direction:column;align-items:flex-start}
  .stat .ic{width:42px;height:42px}
  .funds .funds-list{gap:36px;padding-right:36px}
}

@media (prefers-reduced-motion:reduce){
  .reveal,.reveal.in{opacity:1;transform:none;transition:none}
  .seq > *,.split .w > span,.hero-photo,.hero .float-card,.page-hero{animation:none!important}
  .marquee-track{animation:none;flex-wrap:wrap;width:auto}
  .marquee-track > [aria-hidden="true"]{display:none}
  .marquee{-webkit-mask-image:none;mask-image:none}
  .btn .roll > span + span{display:none}
  .btn:hover .roll > span:first-child{transform:none}
  [data-parallax]{transform:none!important}
}

/* ===== Thank-you page ===== */
.thanks{padding:clamp(56px,8vw,110px) 0;background:
  radial-gradient(700px 380px at 90% -10%,rgb(188 211 78 / .22),transparent 60%),
  radial-gradient(600px 380px at -10% 110%,rgb(34 176 127 / .18),transparent 60%),
  linear-gradient(180deg,var(--bg),var(--surface))}
.thanks-card{max-width:760px;margin-inline:auto;text-align:center;background:var(--card);border:1px solid var(--line);border-radius:var(--radius-lg);padding:clamp(28px,5vw,56px);box-shadow:var(--shadow-lg)}
.thanks-card h1{font-size:clamp(1.9rem,4vw,2.8rem);font-weight:800;color:var(--heading);margin:.8rem 0 .9rem}
.thanks-card .lead{color:var(--text-2);font-size:1.08rem;max-width:560px;margin:0 auto}
.thanks-tick{width:88px;height:88px;margin:0 auto 18px;border-radius:50%;display:grid;place-items:center;background:linear-gradient(135deg,var(--soft),var(--soft-2))}
.thanks-tick svg{width:58px;height:58px;fill:none;stroke:var(--link);stroke-width:3.2;stroke-linecap:round;stroke-linejoin:round}
.thanks-tick circle{stroke-dasharray:151;stroke-dashoffset:151;animation:nsg-draw .9s var(--ease-out) .25s forwards}
.thanks-tick path{stroke-dasharray:36;stroke-dashoffset:36;animation:nsg-draw .5s var(--ease-out) 1s forwards}
.thanks-tick{animation:nsg-pop .7s var(--ease-spring) both}
@keyframes nsg-draw{to{stroke-dashoffset:0}}
.thanks-steps{list-style:none;padding:0;margin:2rem 0 0;display:grid;gap:12px;text-align:left}
.thanks-steps li{display:flex;gap:14px;align-items:flex-start;padding:16px 18px;border-radius:16px;background:var(--surface);border:1px solid var(--line)}
.thanks-steps .ic{width:42px;height:42px;border-radius:12px;display:grid;place-items:center;background:var(--primary);color:#fff;flex:none}
.thanks-steps .ic svg{width:20px;height:20px}
.thanks-steps strong{display:block;font:700 1rem Montserrat,sans-serif;color:var(--heading)}
.thanks-steps span{color:var(--muted);font-size:.94rem}
.thanks-extra{text-align:left;margin:1.6rem auto 0}
.thanks-note{text-align:left;margin:1.6rem 0 0}
.thanks-note a{color:inherit;font-weight:700}
.thanks-actions{justify-content:center}
@media (prefers-reduced-motion:reduce){
  .thanks-tick,.thanks-tick circle,.thanks-tick path{animation:none!important;stroke-dashoffset:0}
}
