html{scroll-behavior:smooth}
header{transition:box-shadow .3s,background .3s}header .nav{transition:height .3s}header .nav img{transition:height .3s}
header.shrink{box-shadow:0 6px 24px rgba(18,58,51,.10);background:rgba(244,247,245,.82)}header.shrink .nav{height:54px}header.shrink .nav img{height:34px}
.nav nav a{position:relative}.nav nav a:after{content:"";position:absolute;left:0;right:0;bottom:-4px;height:2px;background:var(--acc);transform:scaleX(0);transform-origin:left;transition:transform .3s}.nav nav a:hover:after,.nav nav a.on:after{transform:scaleX(1)}
/* hero */
.hero{position:relative;overflow:hidden;isolation:isolate}
.hero .blob{position:absolute;z-index:-1;border-radius:50%;filter:blur(60px);opacity:.45;pointer-events:none}
.hero .b1{width:520px;height:520px;background:radial-gradient(circle,#7fd3bd,transparent 70%);top:-160px;right:-120px;animation:float1 16s ease-in-out infinite}
.hero .b2{width:420px;height:420px;background:radial-gradient(circle,#28786A,transparent 70%);bottom:-200px;left:-120px;opacity:.25;animation:float2 20s ease-in-out infinite}
.hero .ring{position:absolute;z-index:-1;width:300px;height:300px;right:8%;top:18%;border:2px dashed rgba(40,120,106,.25);border-radius:50%;animation:spin 40s linear infinite}
@keyframes float1{50%{transform:translate(-80px,60px) scale(1.12)}}@keyframes float2{50%{transform:translate(90px,-50px) scale(.9)}}@keyframes spin{to{transform:rotate(360deg)}}
.w{display:inline-block;opacity:0;transform:translateY(.6em);animation:wordin .8s cubic-bezier(.2,.7,.2,1) forwards}
@keyframes wordin{to{opacity:1;transform:none}}
.hero .lead,.hero .ctas,.hero .eyebrow{animation:fadeup 1s .5s both}@keyframes fadeup{from{opacity:0;transform:translateY(24px)}}
/* reveal */
.rv{opacity:0;transition:opacity .9s ease,transform .9s cubic-bezier(.2,.7,.2,1);transition-delay:var(--d,0s)}
.rv.up{transform:translateY(60px)}.rv.left{transform:translateX(-60px)}.rv.right{transform:translateX(60px)}.rv.zoom{transform:scale(.9)}
.rv.in{opacity:1;transform:none}
/* hover */
.card{transition:transform .35s cubic-bezier(.2,.7,.2,1),box-shadow .35s,border-color .35s}
.card:hover{transform:translateY(-6px);box-shadow:0 18px 40px rgba(18,58,51,.12);border-color:#bfe0d7}
.big .card:hover{box-shadow:0 18px 40px rgba(0,0,0,.25)}
.btn{transition:transform .25s,box-shadow .25s,background .25s}.btn:hover{transform:translateY(-2px);box-shadow:0 10px 24px rgba(40,120,106,.35)}
.pulse{animation:pulse 2.4s ease-in-out infinite}@keyframes pulse{0%,100%{transform:scale(1)}50%{transform:scale(.94)}}
.logos img{transition:filter .3s,opacity .3s,transform .3s}.logos img:hover{filter:none;opacity:1;transform:scale(1.08)}
.person img{transition:transform .5s}.card:hover .person img,.person:hover img{transform:scale(1.05)}
/* marquee logos */
.marq{overflow:hidden;mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent)}.marq .logos{flex-wrap:nowrap;width:max-content;animation:marq 40s linear infinite}.marq:hover .logos{animation-play-state:paused}
@keyframes marq{to{transform:translateX(-50%)}}
/* review slider */
.slider{position:relative}.track{display:flex;gap:18px;overflow-x:auto;scroll-snap-type:x mandatory;scroll-behavior:smooth;padding:6px 2px 18px;scrollbar-width:none}.track::-webkit-scrollbar{display:none}
.track .rev{flex:0 0 min(420px,86%);scroll-snap-align:start;margin:0}
.sbtn{position:absolute;top:-58px;width:44px;height:44px;border-radius:50%;border:1.5px solid var(--ink);background:#fff;cursor:pointer;font-size:1.2rem}.sbtn.prev{right:56px}.sbtn.next{right:0}.sbtn:hover{background:var(--acc);color:#fff;border-color:var(--acc)}
/* burger */
.burger{display:none;width:44px;height:44px;border:0;background:transparent;cursor:pointer;position:relative}
.burger span{position:absolute;left:10px;right:10px;height:2px;background:var(--ink);transition:transform .3s,opacity .3s}.burger span:nth-child(1){top:15px}.burger span:nth-child(2){top:21px}.burger span:nth-child(3){top:27px}
.menu-open .burger span:nth-child(1){transform:translateY(6px) rotate(45deg)}.menu-open .burger span:nth-child(2){opacity:0}.menu-open .burger span:nth-child(3){transform:translateY(-6px) rotate(-45deg)}
@media(max-width:1350px){.burger{display:block}.nav .btn.s{margin-left:auto}
.nav nav{display:flex!important;position:fixed;top:66px;left:0;right:0;flex-direction:column;gap:0;background:#f4f7f5;box-shadow:0 20px 40px rgba(0,0,0,.12);padding:8px 20px 20px;border-bottom:1px solid var(--line);transform:translateY(-12px);opacity:0;pointer-events:none;transition:.3s}
.nav nav a{padding:14px 0;border-bottom:1px solid var(--line);font-size:1.05rem;color:var(--ink)}
.menu-open .nav nav{transform:none;opacity:1;pointer-events:auto}header.shrink .nav nav{top:54px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}.rv,.w{opacity:1!important;transform:none!important}}
