
@import url('https://fonts.googleapis.com/css2?family=Archivo:wdth,wght@75..125,300..900&display=swap');
:root{--lime:#A1C62D;--ink:#0F1215;--graph:#2A2F36;--grey:#6D737B;--line:#E3E5E3;--mist:#F2F3F0;--bg:#fff;--pad:clamp(20px,5vw,80px);--w:1440px;--ease:cubic-bezier(.2,.8,.2,1)}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{font-family:'Archivo',system-ui,sans-serif;color:var(--ink);background:var(--bg);font-size:17px;line-height:1.55;-webkit-font-smoothing:antialiased}
body.reduce-motion *,body.reduce-motion *::before,body.reduce-motion *::after{animation:none!important;transition:none!important}
body.big-text{font-size:20px}
body.contrast{--grey:#2A2F36;--line:#8a8f96;--mist:#fff}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}
a{color:inherit}img{display:block;max-width:100%}
.wrap{max-width:var(--w);margin:0 auto;padding:0 var(--pad)}
h1,h2,h3,h4{font-weight:700;letter-spacing:-.025em;line-height:1.02;font-stretch:105%}
h1{font-size:clamp(44px,7vw,104px)}h2{font-size:clamp(32px,4.4vw,60px)}h3{font-size:clamp(22px,2.2vw,30px)}h4{font-size:18px}
p{max-width:62ch}.lede{font-size:clamp(18px,1.5vw,22px);line-height:1.5;max-width:46ch}
.eyebrow{font-size:14px;font-weight:600;color:var(--lime);margin-bottom:14px;letter-spacing:.02em}
.dark .eyebrow{color:var(--lime)}
:focus-visible{outline:3px solid var(--lime);outline-offset:3px}
.arrow{display:inline-block;width:.9em;height:.9em;vertical-align:-.1em;margin-left:.45em;transition:transform .25s var(--ease)}
a:hover .arrow,button:hover .arrow{transform:translateX(4px)}
.btn{display:inline-flex;align-items:center;text-decoration:none;font-weight:600;font-size:15px;padding:15px 22px;background:var(--lime);color:var(--ink);border:2px solid var(--lime);position:relative;overflow:hidden;isolation:isolate;min-height:48px}
.btn::before{content:"";position:absolute;inset:0;background:var(--ink);transform:scaleX(0);transform-origin:left;transition:transform .3s var(--ease);z-index:-1}
.btn:hover{color:#fff;border-color:var(--ink)}.btn:hover::before{transform:scaleX(1)}
.btn.ghost{background:transparent;color:var(--ink);border-color:var(--ink)}.btn.ghost:hover{color:#fff}
.dark .btn.ghost{color:#fff;border-color:#fff}.dark .btn.ghost::before{background:var(--lime)}.dark .btn.ghost:hover{color:var(--ink);border-color:var(--lime)}
.link{font-weight:600;text-decoration:none;font-size:15px}.link .arrow{color:var(--lime)}
.dark{background:var(--ink);color:#fff}.mist{background:var(--mist)}
section{padding:clamp(64px,8vw,128px) 0}
.sec-head{display:flex;justify-content:space-between;align-items:flex-end;gap:32px;margin-bottom:clamp(28px,4vw,56px)}
@media(max-width:760px){.sec-head{flex-direction:column;align-items:flex-start}}
/* reveal */
.rv{opacity:0;transform:translateY(22px);transition:opacity .7s var(--ease),transform .7s var(--ease)}
.rv.in{opacity:1;transform:none}
/* nav */
.nav{position:fixed;top:0;left:0;right:0;z-index:40;transition:background .3s,color .3s,box-shadow .3s;color:#fff}
.nav.solid,.nav.light{background:#fff;color:var(--ink);box-shadow:0 1px 0 var(--line)}
.nav .wrap{display:flex;align-items:center;justify-content:space-between;height:80px;gap:24px}
.brand img{height:40px;width:auto}
.nav .lw{display:block}.nav .lb{display:none}.nav.solid .lw,.nav.light .lw{display:none}.nav.solid .lb,.nav.light .lb{display:block}
.links{display:flex;gap:6px;list-style:none;align-items:center;margin-left:auto}
.links>li{position:relative}
.links>li>a,.links>li>button{display:block;text-decoration:none;font:inherit;font-size:15px;font-weight:500;padding:10px 14px;background:none;border:0;color:inherit;cursor:pointer;min-height:44px}
.links>li>a:hover,.links>li>button:hover,.links>li>a[aria-current]{box-shadow:inset 0 -2px 0 var(--lime)}
.links .cta{margin-left:10px}
.mega{position:absolute;top:100%;left:0;min-width:520px;background:#fff;color:var(--ink);border-top:3px solid var(--lime);box-shadow:0 20px 40px rgba(0,0,0,.15);display:grid;grid-template-columns:1fr 1fr;gap:0;opacity:0;visibility:hidden;transform:translateY(8px);transition:all .25s var(--ease)}
.links>li:hover .mega,.links>li:focus-within .mega{opacity:1;visibility:visible;transform:none}
.mega div{padding:24px}.mega div+div{border-left:1px solid var(--line)}
.mega h4{font-size:13px;color:var(--grey);font-weight:600;margin-bottom:12px}
.mega a{display:block;text-decoration:none;font-size:15px;padding:7px 0}.mega a:hover{color:var(--graph);text-decoration:underline;text-decoration-color:var(--lime);text-underline-offset:4px}
.burger{display:none;background:none;border:2px solid currentColor;color:inherit;padding:8px 12px;font:inherit;font-weight:600;cursor:pointer;min-height:44px}
.callbar{display:none}
@media(max-width:960px){
  .links{display:none;position:fixed;left:0;right:0;bottom:0;top:auto;max-height:80vh;overflow:auto;background:#fff;color:var(--ink);flex-direction:column;align-items:stretch;padding:12px var(--pad) 90px;border-top:3px solid var(--lime);border-radius:18px 18px 0 0;box-shadow:0 -20px 50px rgba(0,0,0,.25)}
  .links.open{display:flex}.links>li>a,.links>li>button{padding:16px 0;border-bottom:1px solid var(--line);font-size:18px;width:100%;text-align:left}
  .mega{position:static;opacity:1;visibility:visible;transform:none;box-shadow:none;border:0;grid-template-columns:1fr;min-width:0;display:none}.links>li.open .mega{display:block}
  .links .cta{margin:12px 0 0}.burger{display:block}
  .callbar{display:flex;position:fixed;bottom:0;left:0;right:0;z-index:39;background:var(--ink);color:#fff;font-weight:600;transform:translateY(100%);transition:transform .35s var(--ease)}
  .callbar.on{transform:none}
  .callbar a{flex:1;text-align:center;text-decoration:none;padding:16px;min-height:56px}.callbar a+a{background:var(--lime);color:var(--ink)}
  body{padding-bottom:56px}
}
/* hero */
.hero{position:relative;height:100svh;min-height:600px;color:#fff;display:flex;align-items:flex-end;overflow:hidden;background:var(--ink)}
.hero .bg{position:absolute;inset:-6%;width:112%;height:112%;object-fit:cover;will-change:transform}
.hero .vid{filter:grayscale(1) contrast(1.05)}
.hero .photo{opacity:0;transition:opacity 1.6s var(--ease);animation:kb 28s linear infinite alternate;animation-play-state:paused}
.hero.done .photo{opacity:1;animation-play-state:running}
body.reduce-motion .hero .vid{display:none}body.reduce-motion .hero .photo{opacity:1}
.hero-cap{font-size:13px;font-weight:600;color:var(--lime);margin-top:14px;letter-spacing:.04em}
@keyframes kb{from{transform:scale(1) translateX(0)}to{transform:scale(1.08) translateX(-2%)}}
.hero::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(15,18,21,.35) 0%,rgba(15,18,21,.15) 40%,rgba(15,18,21,.85) 100%)}
.hero .wrap{position:relative;z-index:1;width:100%;padding-bottom:clamp(48px,8vw,110px)}
.hero h1 b{color:var(--lime);font-weight:700}
.hero .lede{margin-top:24px;color:rgba(255,255,255,.88)}
.hero .btn{margin-top:32px}
.scroll{position:absolute;right:var(--pad);bottom:clamp(48px,8vw,110px);z-index:1;font-size:13px;font-weight:600;display:flex;flex-direction:column;align-items:center;gap:8px}
.scroll i{width:2px;height:44px;background:rgba(255,255,255,.4);position:relative;overflow:hidden}
.scroll i::after{content:"";position:absolute;left:0;top:-100%;width:100%;height:100%;background:var(--lime);animation:drop 1.8s var(--ease) infinite}
@keyframes drop{to{top:100%}}
@media(max-width:760px){.scroll{display:none}}
/* what do you want to build — expanding panels */
.panels{display:grid;grid-template-columns:1fr 1fr 1fr;height:min(72vh,640px);min-height:440px}
.panel{position:relative;overflow:hidden;color:#fff;text-decoration:none;display:flex;align-items:flex-end;padding:36px;border-left:1px solid rgba(255,255,255,.12);transition:flex .5s var(--ease)}
.panel img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .8s var(--ease),filter .5s}
.panel::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(15,18,21,.1),rgba(15,18,21,.85))}
.panel div{position:relative;z-index:1;max-width:36ch}
.panel h3{font-size:clamp(26px,3vw,40px)}
.panel p{margin-top:12px;color:rgba(255,255,255,.85);font-size:16px;max-height:0;opacity:0;overflow:hidden;transition:all .5s var(--ease)}
.panel span{display:inline-block;margin-top:14px;font-weight:600;font-size:15px}.panel span .arrow{color:var(--lime)}
.panel:hover img,.panel:focus img{transform:scale(1.06);filter:saturate(1.05)}
.panel:hover p,.panel:focus p{max-height:120px;opacity:1}
@media(min-width:900px){.panels{display:flex}.panel{flex:1}.panel:hover,.panel:focus{flex:1.8}}
@media(max-width:900px){.panels{grid-template-columns:1fr;height:auto}.panel{min-height:260px;border-left:0;border-top:1px solid rgba(255,255,255,.12)}.panel p{max-height:none;opacity:1}}
/* trust bar */
.trust{border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:26px 0;overflow:hidden}
.trust .wrap{display:flex;gap:56px;align-items:center;flex-wrap:wrap;justify-content:space-between}
.trust span{font-weight:700;font-stretch:110%;color:var(--grey);font-size:15px;white-space:nowrap;letter-spacing:-.01em}
.trust small{flex-basis:100%;font-size:13px;color:var(--grey)}
/* pillars */
.pillars{display:grid;grid-template-columns:repeat(3,1fr);gap:0;border-top:2px solid var(--ink)}
.pillar{padding:36px 32px 36px 0;border-right:1px solid var(--line)}.pillar:last-child{border-right:0}.pillar:not(:first-child){padding-left:32px}
.pillar svg{width:44px;height:44px;margin-bottom:22px;color:var(--lime)}
.pillar h3{font-size:24px;margin-bottom:12px}.pillar p{color:var(--grey);font-size:16px}
.pillar b{display:block;font-size:44px;letter-spacing:-.03em;line-height:1;margin:22px 0 6px;font-stretch:105%}
.pillar small{color:var(--grey);font-size:14px}
@media(max-width:860px){.pillars{grid-template-columns:1fr}.pillar{border-right:0;border-bottom:1px solid var(--line);padding-left:0!important}}
/* schedule board */
.board{border:2px solid var(--ink);background:#fff}
.board header{display:flex;justify-content:space-between;padding:14px 18px;border-bottom:2px solid var(--ink);font-size:14px;font-weight:600}
.board header span:last-child{color:var(--grey);font-weight:400}
.row{display:grid;grid-template-columns:170px 1fr;align-items:center;gap:14px;padding:12px 18px;border-bottom:1px solid var(--line)}.row:last-child{border-bottom:0}
.row .n{font-size:13px;line-height:1.25;font-weight:600}.row .n small{display:block;color:var(--grey);font-weight:400}
.track{position:relative;height:26px;background:repeating-linear-gradient(90deg,transparent 0 calc(100%/12 - 1px),var(--line) calc(100%/12 - 1px) calc(100%/12))}
.bar{position:absolute;top:4px;bottom:4px;left:0;background:var(--lime);width:0;transition:width 1.1s var(--ease)}
.bar.go{width:var(--w)}.bar::after{content:attr(data-l);position:absolute;left:100%;top:50%;transform:translateY(-50%);margin-left:8px;font-size:12px;font-weight:700;white-space:nowrap}
.bar.ref{background:var(--line);top:11px;bottom:11px}.bar.ref::after{color:var(--grey);font-weight:400}
.months{display:grid;grid-template-columns:repeat(12,1fr);padding:8px 18px 12px 202px;font-size:11px;color:var(--grey)}
@media(max-width:520px){.row{grid-template-columns:110px 1fr}.months{padding-left:142px}}
.split{display:grid;grid-template-columns:1fr 1fr;gap:clamp(32px,6vw,96px);align-items:center}
@media(max-width:900px){.split{grid-template-columns:1fr}}
/* featured asymmetric grid */
.fgrid{display:grid;grid-template-columns:2fr 1fr;grid-template-rows:1fr 1fr;gap:12px;height:min(80vh,720px);min-height:520px}
.fcard{position:relative;overflow:hidden;color:#fff;text-decoration:none;display:flex;align-items:flex-end;padding:28px;background:var(--graph)}
.fcard:first-child{grid-row:1/3}
.fcard img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .8s var(--ease)}
.fcard::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 40%,rgba(15,18,21,.9))}
.fcard div{position:relative;z-index:1;width:100%}
.fcard small{display:block;font-size:13px;color:var(--lime);font-weight:600;margin-bottom:6px}
.fcard h3{font-size:clamp(20px,2.2vw,32px)}
.fcard dl{display:grid;grid-template-columns:repeat(3,auto);gap:16px;margin-top:14px;font-size:13px;max-height:0;opacity:0;overflow:hidden;transition:all .45s var(--ease)}
.fcard dt{color:rgba(255,255,255,.6)}.fcard dd{font-weight:600}
.fcard:hover dl,.fcard:focus dl{max-height:80px;opacity:1}.fcard:hover img,.fcard:focus img{transform:scale(1.05)}
@media(max-width:860px){.fgrid{grid-template-columns:1fr;grid-template-rows:auto;height:auto}.fcard{min-height:280px}.fcard:first-child{grid-row:auto}.fcard dl{max-height:none;opacity:1}}
/* testimonials */
.quotes{position:relative}
.quote{display:none}.quote.on{display:block}
.quote blockquote{font-size:clamp(22px,2.6vw,36px);font-weight:500;line-height:1.25;letter-spacing:-.02em;max-width:26ch;font-stretch:100%}
.quote blockquote::before{content:"“";color:var(--lime)}
.quote cite{display:block;margin-top:22px;font-style:normal;font-size:15px;color:rgba(255,255,255,.7)}
.qnav{display:flex;gap:8px;margin-top:32px}
.qnav button{width:44px;height:44px;border:2px solid rgba(255,255,255,.3);background:none;color:#fff;cursor:pointer;font-size:18px}
.qnav button:hover{border-color:var(--lime)}
/* commitments accordion */
.acc{display:grid;grid-template-columns:380px 1fr;gap:clamp(24px,5vw,80px)}
.acc ul{list-style:none;border-top:1px solid var(--line)}
.acc li button{width:100%;text-align:left;font:inherit;background:none;border:0;border-bottom:1px solid var(--line);padding:18px 0;cursor:pointer;display:flex;gap:18px;align-items:baseline;font-size:20px;font-weight:600;color:var(--grey);transition:color .2s;min-height:48px}
.acc li button b{font-size:13px;font-weight:600;color:var(--lime);min-width:26px}
.acc li button[aria-expanded=true]{color:var(--ink)}
.acc .pane{display:none;grid-template-columns:1fr 1fr;gap:32px;align-items:center}.acc .pane.on{display:grid}
.acc .pane img{width:100%;aspect-ratio:4/3;object-fit:cover}
.acc .pane h3{margin-bottom:12px}.acc .pane p{color:var(--grey)}
@media(max-width:900px){.acc{grid-template-columns:1fr}.acc .pane{grid-template-columns:1fr}}
/* office */
.office{position:relative;color:#fff;min-height:420px;display:flex;align-items:center}
.office img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.office::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(15,18,21,.9),rgba(15,18,21,.4))}
.office .wrap{position:relative;z-index:1}
/* page head + banner */
.phead{padding:calc(80px + clamp(40px,6vw,88px)) 0 clamp(28px,4vw,56px)}
.phead .lede{margin-top:18px;color:var(--grey)}
.pban{position:relative;height:min(60vh,560px);min-height:320px;overflow:hidden;background:var(--ink)}
.pban img{width:100%;height:100%;object-fit:cover}
/* filters + grid */
.filters{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:36px}
.filters button{font:inherit;font-size:15px;font-weight:600;padding:11px 18px;border:2px solid var(--line);background:#fff;cursor:pointer;min-height:44px}
.filters button[aria-pressed=true]{background:var(--ink);color:#fff;border-color:var(--ink)}
.pgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:28px}
.pgrid a{text-decoration:none}.pgrid a[hidden]{display:none}
.pgrid img{aspect-ratio:4/3;object-fit:cover;width:100%;background:var(--mist);transition:transform .6s var(--ease)}
.pgrid figure{overflow:hidden}.pgrid a:hover img{transform:scale(1.04)}
.pgrid figcaption{padding-top:14px}
.pgrid small{display:block;color:var(--grey);font-size:14px}.pgrid b{display:block;font-size:19px;margin:4px 0 6px}
.pgrid p{font-size:15px;color:var(--grey)}
@media(max-width:1000px){.pgrid{grid-template-columns:1fr 1fr}}@media(max-width:620px){.pgrid{grid-template-columns:1fr}}
/* case study */
.case{display:grid;grid-template-columns:320px 1fr;gap:clamp(32px,6vw,96px)}
.case .facts dt{font-size:13px;color:var(--grey);margin-top:16px}.case .facts dd{font-weight:600}
.case .facts dt:first-child{margin-top:0}
.csr{border-top:2px solid var(--ink);padding:28px 0}.csr h3{margin-bottom:12px}.csr p{font-size:18px}
.csr.result{border-top:2px solid var(--lime)}.csr.result p{font-weight:600;font-size:22px;letter-spacing:-.01em}
.gallery{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:12px;margin-top:48px}
.gallery img{aspect-ratio:4/3;object-fit:cover;width:100%;background:var(--mist)}
.nextp{border-top:1px solid var(--line);padding:32px 0;display:flex;justify-content:space-between;gap:24px;flex-wrap:wrap}
@media(max-width:860px){.case{grid-template-columns:1fr}}
/* services */
.svc{display:grid;grid-template-columns:repeat(2,1fr);gap:0;border-top:2px solid var(--ink)}
.svc div{padding:32px 32px 32px 0;border-bottom:1px solid var(--line)}.svc div:nth-child(2n){padding-left:32px;border-left:1px solid var(--line)}
.svc h3{margin-bottom:10px}.svc p{color:var(--grey);font-size:16px}
@media(max-width:760px){.svc{grid-template-columns:1fr}.svc div{padding-left:0!important;border-left:0!important}}
/* team */
.team{display:grid;grid-template-columns:repeat(4,1fr);gap:24px}
.team div{border-top:2px solid var(--ink);padding-top:16px}
.team .ph{aspect-ratio:4/5;background:var(--mist);margin-bottom:14px;display:grid;place-items:center;color:var(--grey);font-size:13px}
.team b{display:block;font-size:18px}.team span{color:var(--grey);font-size:14px}
@media(max-width:900px){.team{grid-template-columns:1fr 1fr}}
.timeline{list-style:none;border-left:2px solid var(--line);margin-left:8px}
.timeline li{padding:0 0 28px 28px;position:relative}
.timeline li::before{content:"";position:absolute;left:-7px;top:6px;width:12px;height:12px;background:var(--lime);border-radius:50%}
.timeline b{display:block;font-size:14px;color:var(--grey)}
/* tables/forms */
.ttable{width:100%;border-collapse:collapse;font-size:16px}
.ttable th{text-align:left;font-size:13px;font-weight:600;padding:12px 12px 12px 0;border-bottom:2px solid var(--ink)}
.ttable td{padding:16px 12px 16px 0;border-bottom:1px solid var(--line)}
.empty{color:var(--grey);padding:36px 0}
form{display:grid;grid-template-columns:1fr 1fr;gap:18px}form .full{grid-column:1/-1}
label{display:block;font-size:14px;font-weight:600;margin-bottom:8px}
input,select,textarea{width:100%;font:inherit;font-size:16px;padding:14px 16px;border:2px solid var(--line);background:#fff;color:var(--ink);min-height:48px}
input:focus,select:focus,textarea:focus{outline:0;border-color:var(--lime)}textarea{min-height:150px;resize:vertical}
@media(max-width:600px){form{grid-template-columns:1fr}}
.dl dt{font-size:13px;color:var(--grey);margin-top:16px}.dl dd{font-weight:600}
.steps{counter-reset:s;list-style:none;display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.steps li{counter-increment:s;border-top:2px solid var(--ink);padding-top:16px}
.steps li::before{content:"0" counter(s);display:block;color:var(--lime);font-weight:700;font-size:14px;margin-bottom:8px}
.steps b{display:block;font-size:18px;margin-bottom:6px}.steps p{font-size:15px;color:var(--grey)}
@media(max-width:760px){.steps{grid-template-columns:1fr}}
/* CTA band */
.cta{position:relative;overflow:hidden}
.cta img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.3}
.cta .wrap{position:relative;z-index:1;display:flex;justify-content:space-between;align-items:center;gap:32px;flex-wrap:wrap}
.cta h2{max-width:18ch}
/* footer */
footer{background:var(--ink);color:#fff;padding:clamp(48px,6vw,88px) 0 32px;font-size:15px}
footer .grid{display:grid;grid-template-columns:1.6fr 1fr 1fr 1fr;gap:32px}
footer h4{font-size:13px;font-weight:600;color:rgba(255,255,255,.55);margin-bottom:14px}
footer ul{list-style:none}footer li{padding:5px 0}footer a{text-decoration:none}footer a:hover{text-decoration:underline;text-decoration-color:var(--lime);text-underline-offset:4px}
footer .brand img{height:38px}
footer .legal{margin-top:48px;padding-top:20px;border-top:1px solid rgba(255,255,255,.15);color:rgba(255,255,255,.55);font-size:13px;display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap}
@media(max-width:820px){footer .grid{grid-template-columns:1fr 1fr}}@media(max-width:520px){footer .grid{grid-template-columns:1fr}}
/* B&W -> colour */
main img:not(.nofx),.panel img,.fcard img{filter:grayscale(1);transition:filter .6s var(--ease),transform .8s var(--ease)}
a:hover img,a:focus img,figure:hover img,.pane:hover img,.split:hover img,.office:hover img,.pban:hover img,.hero:hover .photo,.cta:hover img,.gallery img:hover,.team div:hover img{filter:grayscale(0)}
.hero .vid{filter:grayscale(1) contrast(1.05)!important}
body.contrast main img{filter:none}
/* nav shrink */
.nav .wrap{transition:height .35s var(--ease)}
.brand img{transition:height .35s var(--ease)}
.nav.solid .wrap{height:60px}.nav.solid .brand img{height:28px}
.nav.light .wrap{height:72px}.nav.light.solid .wrap{height:60px}
.prog{position:fixed;top:0;left:0;height:3px;width:0;background:var(--lime);z-index:45;transition:width .1s linear}
/* back to top */
.top{position:fixed;right:18px;bottom:18px;z-index:50;width:52px;height:52px;border-radius:50%;background:var(--lime);color:var(--ink);border:0;cursor:pointer;display:grid;place-items:center;box-shadow:0 8px 24px rgba(0,0,0,.25);opacity:0;transform:translateY(16px);pointer-events:none;transition:opacity .3s,transform .3s var(--ease)}
.top.on{opacity:1;transform:none;pointer-events:auto}
.top:hover{background:var(--ink);color:#fff}.top svg{width:22px;height:22px}
@media(max-width:960px){.top{bottom:72px}}
/* heading underline draw */
.sec-head h2,.phead h1{position:relative;display:inline-block}
.sec-head h2::after{content:"";display:block;height:4px;width:0;background:var(--lime);margin-top:14px;transition:width .8s var(--ease) .2s}
.rv.in h2::after{width:72px}
/* marquee trust bar */
.trust .wrap{display:flex;flex-wrap:nowrap;justify-content:flex-start;gap:0;max-width:none;padding:0;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)}
.trust .track{display:flex;gap:64px;padding-right:64px;animation:mq 38s linear infinite;white-space:nowrap}
.trust:hover .track,body.reduce-motion .trust .track{animation-play-state:paused}
@keyframes mq{to{transform:translateX(-100%)}}
/* hero text stagger */
.hero h1,.hero .lede,.hero .btn,.hero-cap{opacity:0;transform:translateY(24px);animation:up .9s var(--ease) forwards}
.hero .lede{animation-delay:.25s}.hero-cap{animation-delay:.15s}.hero .btn{animation-delay:.4s}
@keyframes up{to{opacity:1;transform:none}}
body.reduce-motion .hero h1,body.reduce-motion .hero .lede,body.reduce-motion .hero .btn,body.reduce-motion .hero-cap{opacity:1;transform:none}
/* accessibility widget */
.a11y{position:fixed;left:18px;bottom:18px;z-index:50}
@media(max-width:960px){.a11y{bottom:72px}}
.a11y>button{width:52px;height:52px;border-radius:50%;background:var(--ink);color:#fff;border:2px solid var(--lime);cursor:pointer;display:grid;place-items:center;box-shadow:0 8px 24px rgba(0,0,0,.25)}
.a11y>button svg{width:26px;height:26px}
.a11y .menu{display:none;position:absolute;left:0;bottom:62px;background:#fff;color:var(--ink);border:2px solid var(--ink);padding:16px;width:260px;box-shadow:0 20px 40px rgba(0,0,0,.2)}
.a11y .menu.open{display:block}
.a11y .menu h4{font-size:14px;margin-bottom:10px}
.a11y .menu label{display:flex;align-items:center;gap:10px;font-weight:500;font-size:15px;padding:8px 0;cursor:pointer;margin:0}
.a11y .menu input{width:20px;height:20px;min-height:0;accent-color:var(--lime)}
