/* Animations and the home-page hero. Switch them off by removing the <link> to this file in the pages. */
.js .rv{opacity:0;transform:translateY(26px);transition:opacity .9s cubic-bezier(.2,.7,.2,1),transform .9s cubic-bezier(.2,.7,.2,1)}
.js .rv.in{opacity:1;transform:none}
.js .pic.rv{opacity:1;transform:none;transition:none}
.pic img,.card .ph img{transition:transform 1.4s cubic-bezier(.2,.7,.2,1)}
.js .pic.rv img{transform:scale(1.14)}.js .pic.rv.in img{transform:none}
.card:hover .ph img,.ap:hover .pic img{transform:scale(1.06)}
.wd{display:inline-block;overflow:hidden;vertical-align:top;padding-bottom:.08em}
.wd>span{display:inline-block;transform:translateY(112%);animation:up 1s cubic-bezier(.2,.7,.2,1) forwards;animation-delay:calc(var(--i) * 80ms + 150ms)}
@keyframes up{to{transform:none}}
.prog{position:fixed;left:0;top:0;height:3px;width:100%;background:var(--accent);transform-origin:0 50%;transform:scaleX(0);z-index:60;pointer-events:none}
header nav,.logo img{transition:height .3s ease}header.sc{box-shadow:0 8px 28px rgba(15,42,51,.09)}header.sc nav{height:62px}header.sc .logo img{height:44px}
body{animation:pin .6s ease both}body.out{opacity:0;transition:opacity .25s ease}@keyframes pin{from{opacity:0}to{opacity:1}}
.wafab::before{content:"";position:absolute;inset:0;border-radius:inherit;border:2px solid #1fa855;animation:ring 2.6s ease-out infinite}
@keyframes ring{0%{transform:scale(1);opacity:.7}100%{transform:scale(1.5);opacity:0}}
/* home hero */
.hero2{position:relative;color:#fff;min-height:calc(100vh - 76px);display:grid;grid-template-rows:1fr auto;overflow:hidden;background:#0f2a33;isolation:isolate}
.slides,.slide{position:absolute;inset:0}.slides::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(8,20,24,.88) 0%,rgba(8,20,24,.55) 55%,rgba(8,20,24,.25) 100%)}
.slide{background:center/cover no-repeat;opacity:0;transition:opacity 1.6s ease;transform:scale(1.1)}.slide.on{opacity:1;animation:kb 9s ease-out forwards}
@keyframes kb{from{transform:scale(1.1)}to{transform:scale(1)}}
.hc{position:relative;z-index:1;align-self:center;padding-top:72px;padding-bottom:72px}
.hc h1{color:#fff;font-size:clamp(40px,6.4vw,84px);max-width:12ch;line-height:1.02}
.hc .lead{color:#d3e2e6;margin:26px 0 36px}.hc .btn.line{color:#fff;box-shadow:inset 0 0 0 1px rgba(255,255,255,.5)}.hc .btn.line:hover{box-shadow:inset 0 0 0 1px #fff}
.hstats{position:relative;z-index:1;background:rgba(8,17,15,.55);backdrop-filter:blur(10px);border-top:1px solid rgba(255,255,255,.14)}
.sg{display:grid;grid-template-columns:repeat(4,1fr)}.sg div{padding:24px;border-left:1px solid rgba(255,255,255,.14)}.sg div:first-child{padding-left:0;border-left:0}
.sg b{display:block;font:700 26px Sora,sans-serif;letter-spacing:-.02em;color:#fff}.sg span{color:#a9c1c7;font-size:13.5px}
.marq{overflow:hidden;border-bottom:1px solid var(--line);background:var(--bg);padding:22px 0}
.mt{display:flex;width:max-content;animation:mq 40s linear infinite}.marq:hover .mt{animation-play-state:paused}
.mt span{font:600 15px Sora,sans-serif;color:var(--muted);padding:0 30px;white-space:nowrap;position:relative}.mt span::after{content:"";position:absolute;right:-3px;top:50%;width:6px;height:6px;border-radius:50%;background:var(--accent);transform:translateY(-50%)}
@keyframes mq{to{transform:translateX(-50%)}}
@media (max-width:900px){.hero2{min-height:calc(100vh - 110px)}.sg{grid-template-columns:1fr 1fr}.sg div{padding:18px 16px}.sg div:nth-child(odd){padding-left:0;border-left:0}.sg div:nth-child(n+3){border-top:1px solid rgba(255,255,255,.14)}}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}.wd>span{transform:none}.js .rv{opacity:1;transform:none}.slide.on{transform:none}}

/* inner-page hero */
.phero{position:relative;overflow:hidden;color:#fff;background:linear-gradient(120deg,#0b1f26,#12404a 60%,#1f5f6b,#12404a);background-size:220% 220%;animation:gs 16s ease-in-out infinite alternate}
@keyframes gs{to{background-position:100% 50%}}
.phero::after{content:"";position:absolute;inset:0;pointer-events:none;background:radial-gradient(circle,#f2b632 0 5px,transparent 6px) 6% 24%/60px 60px no-repeat,radial-gradient(circle,#d9422b 0 4px,transparent 5px) 48% 12%/60px 60px no-repeat,radial-gradient(circle,#2e9b4f 0 6px,transparent 7px) 92% 78%/60px 60px no-repeat,radial-gradient(circle,#2f6fd6 0 4px,transparent 5px) 40% 86%/60px 60px no-repeat,radial-gradient(circle,#8a4fb8 0 5px,transparent 6px) 74% 16%/60px 60px no-repeat;animation:dr 9s ease-in-out infinite alternate}
@keyframes dr{to{transform:translate(16px,-14px)}}
.pg{position:relative;z-index:1;display:grid;grid-template-columns:1.1fr .9fr;gap:64px;align-items:center;padding-top:80px;padding-bottom:80px}
.phero h1{color:#fff;font-size:clamp(34px,4.8vw,60px);line-height:1.08;max-width:14ch}.phero .lead{color:#c3d6db;margin-top:22px}.phero .cta{margin-top:30px}
.pf{border-radius:var(--r);overflow:hidden;aspect-ratio:4/3;background:#fff;border:1px solid rgba(255,255,255,.18);box-shadow:0 30px 60px rgba(0,0,0,.35);animation:fl 7s ease-in-out infinite alternate}
.pf img{width:100%;height:100%;object-fit:cover}.pf.tall{aspect-ratio:3/4;max-width:300px;justify-self:center}
@keyframes fl{to{transform:translateY(-12px)}}
@media (max-width:900px){.pg{grid-template-columns:1fr;gap:36px;padding-top:48px;padding-bottom:56px}.pf.tall{max-width:220px}}
/* CTA band */
.ctab{padding:72px 0;background:linear-gradient(120deg,#0b1f26,#1f5f6b,#12404a);background-size:220% 220%;animation:gs 14s ease-in-out infinite alternate;color:#fff}
.ctab .w{display:flex;justify-content:space-between;align-items:center;gap:32px;flex-wrap:wrap}.ctab h2{color:#fff}.ctab p{color:#c3d6db;margin-top:10px}
/* application tiles: caption over photo */
.ap{position:relative;display:block}.ap span{position:absolute;left:0;right:0;bottom:0;margin:0;padding:44px 14px 14px;color:#fff;border-radius:0 0 12px 12px;background:linear-gradient(transparent,rgba(8,20,24,.88));transform:translateY(8px);transition:transform .4s ease}
.ap:hover span{transform:none;color:#fff}.ap .pic{aspect-ratio:4/5}
/* quality icons */
.card.txt .ic{margin-bottom:18px;transition:background .3s,color .3s}.card.txt:hover .ic{background:var(--teal);color:#fff}
/* about stats */
.sb{display:grid;grid-template-columns:repeat(4,1fr);margin-top:64px;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.sb div{padding:30px 24px;border-left:1px solid var(--line)}.sb div:first-child{padding-left:0;border-left:0}.sb b{display:block;font:700 32px Sora,sans-serif;letter-spacing:-.02em}.sb span{color:var(--muted);font-size:14px}.sb b span{font-size:inherit;color:inherit}
@media (max-width:900px){.sb{grid-template-columns:1fr 1fr}.sb div:nth-child(odd){padding-left:0;border-left:0}.sb div:nth-child(n+3){border-top:1px solid var(--line)}}
/* sample page */
.sx{display:grid;grid-template-columns:1.5fr .7fr;gap:56px;align-items:start}.sx .form{max-width:none}
.side{background:var(--dark);color:#fff;border-radius:var(--r);padding:32px;position:sticky;top:110px}.side h3{color:#fff}.side a{display:block;padding:16px 0;border-top:1px solid #1f383f;text-decoration:none;color:#fff;font-weight:600;transition:color .2s}.side a:hover{color:#f08350}.side small{display:block;color:#8aa3a9;font-weight:400;font-size:14px}
@media (max-width:900px){.sx{grid-template-columns:1fr}.side{position:static}}
