/* BiG Impact Group site mockup — shared resets + CSS-only motion (progressive enhancement).
   Brand per rebrand brief (overrides DS Rajdhani/Mulish): Poppins headlines, Inter body,
   teal #31BAAE, coral #DB4F3C CTAs, amber #F5A623 + purple #8B80E0 minor accents.
   All content exists in raw HTML; motion never gates readability. */
html{scroll-behavior:smooth}
body{margin:0;background:#F3F2ED;color:#272525;font-family:Inter,system-ui,sans-serif;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
a{color:#1E7A72}a:hover{color:#155E57}
:focus-visible{outline:3px solid rgba(49,186,174,0.55);outline-offset:2px;border-radius:4px}
#mnav{display:none;position:relative}
#mnav summary{list-style:none;cursor:pointer;display:flex;align-items:center;justify-content:center;width:42px;height:42px;border-radius:12px;border:1.5px solid rgba(39,37,37,0.16);background:#FFFFFF}
#mnav summary::-webkit-details-marker{display:none}
@media (max-width:1149px){#dnav{display:none}#mnav{display:block}}
@media (min-width:1150px){#dnav{display:flex}}
/* !important because the CTA's inline display:inline-flex otherwise wins and
   forces a 483px min header width, pushing the menu off-screen on phones */
@media (max-width:620px){#hcta{display:none!important}}
@media (prefers-reduced-motion:no-preference){
  [data-load]{animation:om-fadeup 0.7s cubic-bezier(0.2,0.7,0.3,1) both}
  [data-load="2"]{animation-delay:0.14s}
  #hero-draw path{stroke-dasharray:340;stroke-dashoffset:340;animation:om-draw 1.5s cubic-bezier(0.65,0,0.35,1) 0.55s forwards}
  @supports (animation-timeline: view()){
    [data-reveal]{animation:om-rise both;animation-timeline:view();animation-range:entry 0% entry 36%}
    [data-reveal="2"]{animation-range:entry 8% entry 46%}
    [data-reveal="3"]{animation-range:entry 16% entry 56%}
    [data-sweep]{animation:om-sweep both;animation-timeline:view();animation-range:entry 20% entry 85%}
  }
}
@keyframes om-fadeup{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}
@keyframes om-draw{to{stroke-dashoffset:0}}
/* transform only: a scroll-linked animation can rest at any progress, so
   animating opacity leaves real text below AA contrast mid-scroll. */
@keyframes om-rise{from{transform:translateY(20px)}to{transform:none}}
@keyframes om-sweep{from{background-size:0% 0.12em}to{background-size:100% 0.12em}}
