/* Scorpion Ai v7 "The Light Ribbon" */
@font-face{font-family:"Sora";src:url(../fonts/sora-latin.woff2) format("woff2");font-weight:100 800;font-display:swap}
@font-face{font-family:"Inter";src:url(../fonts/inter-latin.woff2) format("woff2");font-weight:100 900;font-display:swap}
:root{
  --bg:#05070A;--o:#FF8A1F;--o2:#FFB067;--g:#2BD98A;--gd:#0F6B4F;--w:#fff;--mut:#A7B0BA;--line:rgba(255,255,255,.08);
  --display:"Sora","Inter",system-ui,sans-serif;--sans:"Inter",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
  --side:clamp(20px,11.1vw,160px);--sec:clamp(110px,15vw,230px);
  --accent:linear-gradient(90deg,var(--o),var(--g));
  --ease:cubic-bezier(.22,.61,.2,1);
}
*,*::before,*::after{box-sizing:border-box}
html{background:var(--bg);color:var(--w);-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:96px}
body{margin:0;font:400 17px/1.6 var(--sans);background:var(--bg);overflow-x:hidden;position:relative;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer}
h1,h2,h3{font-family:var(--display);font-weight:700;margin:0;letter-spacing:-.035em;text-wrap:balance}
p{margin:0}
:focus-visible{outline:2px solid var(--o2);outline-offset:3px;border-radius:6px}
.skip{position:absolute;left:-999px;top:8px;z-index:100;background:#fff;color:#000;padding:8px 14px;border-radius:8px}
.skip:focus{left:8px}
.vh{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.wrap{max-width:1440px;margin:0 auto;padding:0 var(--side);position:relative;z-index:2}
.center{text-align:center;margin-left:auto;margin-right:auto}
.eyebrow{font:600 12px/1 var(--sans);letter-spacing:.28em;color:#d9dee3;text-transform:uppercase;margin-bottom:22px;display:flex;align-items:center;gap:12px}
.eyebrow.center{justify-content:center}
.eyebrow::before{content:"";width:22px;height:1px;background:var(--accent);opacity:.9}
.eyebrow.center::after{content:"";width:22px;height:1px;background:var(--accent);opacity:.9}
h2{font-size:clamp(40px,5.4vw,80px);line-height:1.02}

/* buttons */
.btn{--h:48px;display:inline-flex;align-items:center;justify-content:center;gap:10px;height:var(--h);padding:0 26px;border-radius:999px;font:600 15px/1 var(--sans);letter-spacing:-.005em;white-space:nowrap;position:relative;transition:transform .35s var(--ease),box-shadow .35s var(--ease),background .35s}
.btn-sm{--h:42px;padding:0 20px;font-size:14px}
.btn-lg{--h:56px;padding:0 30px;font-size:16px}
.btn-glow{background:rgba(10,12,16,.72);isolation:isolate}
.btn-glow::before{content:"";position:absolute;inset:0;border-radius:inherit;padding:1.2px;background:linear-gradient(90deg,var(--o),var(--o2) 35%,#e8fff4 50%,var(--g) 65%,var(--g));background-size:200% 100%;-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude;animation:border-flow 6s linear infinite;z-index:-1}
.btn-glow::after{content:"";position:absolute;inset:-1px;border-radius:inherit;box-shadow:-10px 0 26px -10px rgba(255,138,31,.55),10px 0 26px -10px rgba(43,217,138,.5);opacity:.75;transition:opacity .35s;z-index:-2}
.btn-glow:hover{transform:translateY(-2px)}
.btn-glow:hover::after{opacity:1}
.btn-ghost{border:1px solid rgba(255,255,255,.22);background:rgba(255,255,255,.02)}
.btn-ghost:hover{border-color:rgba(255,255,255,.5);background:rgba(255,255,255,.05)}
@keyframes border-flow{to{background-position:-200% 0}}

/* NAV */
.nav{position:fixed;inset:0 0 auto 0;z-index:50;transition:background .4s,backdrop-filter .4s,border-color .4s;border-bottom:1px solid transparent}
.nav.scrolled{background:rgba(5,7,10,.72);-webkit-backdrop-filter:blur(14px) saturate(140%);backdrop-filter:blur(14px) saturate(140%);border-bottom-color:var(--line)}
.nav-in{max-width:1600px;margin:0 auto;height:88px;padding:0 clamp(20px,3.3vw,48px);display:flex;align-items:center;gap:24px}
.brand{display:flex;align-items:center;gap:12px;font:700 25px/1 var(--display);letter-spacing:-.03em;flex:none}
.brand img{width:auto;height:46px}
.links{display:flex;gap:clamp(18px,2.2vw,34px);margin:0 auto;font-size:14.5px;color:#cfd5db}
.links a{position:relative;padding:8px 0;transition:color .25s}
.links a::after{content:"";position:absolute;left:0;right:0;bottom:2px;height:1px;background:var(--accent);transform:scaleX(0);transform-origin:left;transition:transform .35s var(--ease)}
.links a:hover{color:#fff}.links a:hover::after{transform:scaleX(1)}
.nav-r{display:flex;align-items:center;gap:14px;flex:none}
.toggle{display:flex;gap:6px;padding:4px;border-radius:999px;border:1px solid var(--line);background:rgba(255,255,255,.02)}
.toggle button{height:30px;padding:0 14px;border-radius:999px;font-size:13px;font-weight:600;border:1px solid transparent;transition:all .3s var(--ease)}
.t-law{color:var(--g);border-color:rgba(43,217,138,.45)!important}
.t-acc{color:var(--o);border-color:rgba(255,138,31,.45)!important}
.t-law[aria-pressed=true]{background:rgba(43,217,138,.16);box-shadow:0 0 18px -4px rgba(43,217,138,.7);color:#bff7dc}
.t-acc[aria-pressed=true]{background:rgba(255,138,31,.16);box-shadow:0 0 18px -4px rgba(255,138,31,.7);color:#ffd9b0}
.burger{display:none;width:44px;height:44px;border-radius:12px;position:relative}
.burger i{position:absolute;left:12px;right:12px;height:1.5px;background:#fff;border-radius:2px;transition:transform .35s var(--ease)}
.burger i:first-child{top:17px}.burger i:last-child{top:26px}
.burger[aria-expanded=true] i:first-child{transform:translateY(4.5px) rotate(45deg)}
.burger[aria-expanded=true] i:last-child{transform:translateY(-4.5px) rotate(-45deg)}
.mmenu{display:none}

/* background glows */
.bg-glows{position:absolute;inset:0;pointer-events:none;z-index:0;overflow:hidden}
.bg-glows .g{position:absolute;top:var(--t);left:var(--x);width:min(900px,70vw);aspect-ratio:1;background:url(../img/bg-glow-orange.webp) center/contain no-repeat;opacity:.32;animation:glow-drift 26s ease-in-out infinite alternate;will-change:transform}
.bg-glows .g-g{background-image:url(../img/bg-glow-green.webp);animation-duration:31s;animation-delay:-9s}
@keyframes glow-drift{0%{transform:translate3d(0,-40px,0) scale(1)}50%{transform:translate3d(30px,30px,0) scale(1.08)}100%{transform:translate3d(-20px,80px,0) scale(.96)}}

/* HERO */
.hero{position:relative;min-height:max(780px,100svh);display:flex;align-items:center;padding:120px 0 80px;overflow:hidden;z-index:1}
.hero::after{content:"";position:absolute;left:0;right:0;bottom:0;height:200px;background:linear-gradient(transparent,var(--bg));pointer-events:none;z-index:1}
.hero-art{position:absolute;inset:0;pointer-events:none;--px:0;--py:0;--sy:0}
.rb-stage{position:absolute;width:min(80vw,1500px);aspect-ratio:1536/1024;right:max(-17vw,-300px);top:50%;transform:translate3d(0,calc(-54% + var(--sy)*.22px),0) rotate(-9deg);transform-origin:60% 50%;-webkit-mask:linear-gradient(95deg,transparent 6%,#000 34%);mask:linear-gradient(95deg,transparent 6%,#000 34%)}
.rb-par,.rb-strands,.rb-sparks{position:absolute;inset:0;width:100%;height:100%}
.rb-par-back{transform:translate3d(calc(var(--px)*-14px),calc(var(--py)*-10px),0)}
.rb-par-front{transform:translate3d(calc(var(--px)*30px),calc(var(--py)*20px),0)}
.rb{position:absolute;inset:0;width:100%;height:100%;will-change:transform,opacity}
.rb-back{opacity:.8;animation:rb-back 17s ease-in-out infinite alternate}
.rb-front{animation:rb-front 12s ease-in-out infinite alternate}
@keyframes rb-back{0%{transform:translate3d(-2%,1.5%,0) scale(1.06) rotate(-2deg) skewX(-3deg);opacity:.55}50%{transform:translate3d(1.5%,-1%,0) scale(1.12) rotate(1deg) skewX(2deg);opacity:.9}100%{transform:translate3d(3%,2%,0) scale(1.04) rotate(2.5deg) skewX(-1deg);opacity:.65}}
@keyframes rb-front{0%{transform:translate3d(1%,-1%,0) scale(1) rotate(.5deg) skewY(-1.5deg);opacity:1}33%{transform:translate3d(-1.5%,1.2%,0) scale(1.035) rotate(-1.2deg) skewY(1deg);opacity:.86}66%{transform:translate3d(.8%,2%,0) scale(1.015) rotate(1.4deg) skewY(2deg);opacity:.97}100%{transform:translate3d(-1%,-.5%,0) scale(1.05) rotate(-.6deg) skewY(-.5deg);opacity:.9}}
.rb-sheen{position:absolute;inset:0;-webkit-mask:url(../img/hero-ribbon-front-1600.webp) center/100% 100% no-repeat;mask:url(../img/hero-ribbon-front-1600.webp) center/100% 100% no-repeat;mix-blend-mode:plus-lighter;overflow:hidden}
.rb-front img{position:absolute;inset:0;width:100%;height:100%}
picture{display:contents}
.rb-sheen i{position:absolute;top:-20%;bottom:-20%;left:0;width:34%;background:linear-gradient(90deg,transparent,rgba(255,240,215,.0) 20%,rgba(255,250,240,.75) 50%,rgba(220,255,240,.0) 80%,transparent);transform:translateX(-120%) skewX(-18deg);animation:sheen 7.5s cubic-bezier(.45,.05,.35,1) infinite}
@keyframes sheen{0%{transform:translateX(-120%) skewX(-18deg)}70%,100%{transform:translateX(330%) skewX(-18deg)}}
.m-stage{display:none}
.hero-copy{width:100%}
.hero-copy>*{max-width:660px}
.hero-copy h1{max-width:900px}
.hero h1{font-size:clamp(46px,5.6vw,84px);line-height:1.0;letter-spacing:-.045em;margin-bottom:28px}
.hero .sub{font-size:clamp(16px,1.3vw,19px);color:var(--mut);max-width:520px;margin-bottom:40px}
.ctas{display:flex;gap:14px;flex-wrap:wrap}

/* sections */
.sec{position:relative;padding:var(--sec) 0;z-index:1}
.sec h2.center{max-width:980px}

/* HOW */
.steps{position:relative;display:grid;grid-template-columns:repeat(3,1fr);margin-top:clamp(64px,8vw,120px)}
.rail{position:absolute;left:0;right:0;top:88px;height:1px;background:linear-gradient(90deg,transparent,rgba(255,255,255,.14) 10%,rgba(255,255,255,.14) 90%,transparent);container-type:inline-size;pointer-events:none}
.rail-dot{position:absolute;left:0;top:-3px;width:90px;height:7px;border-radius:9px;background:radial-gradient(closest-side,#fff,rgba(255,176,103,.9) 30%,transparent);filter:blur(.3px);animation:rail 7s cubic-bezier(.5,0,.5,1) infinite}
.rail-dot::after{content:"";position:absolute;right:30px;top:2px;width:160px;height:3px;background:linear-gradient(90deg,transparent,rgba(255,138,31,.6));border-radius:3px}
@keyframes rail{0%{transform:translateX(-120px);opacity:0;filter:hue-rotate(0)}8%{opacity:1}50%{filter:hue-rotate(0deg)}92%{opacity:1}100%{transform:translateX(100cqw);opacity:0}}
.step{padding:0 clamp(18px,3vw,48px);position:relative}
.step+.step{border-left:1px solid var(--line)}
.step:first-of-type{padding-left:0}
.step-top{display:flex;align-items:center;justify-content:space-between;height:176px;margin-bottom:26px}
.num{font:200 clamp(64px,7vw,104px)/1 var(--display);letter-spacing:-.04em;color:transparent;-webkit-text-stroke:1px rgba(255,255,255,.55);position:relative;z-index:1;padding-right:14px}
.step-top img{width:clamp(110px,11vw,160px);height:auto;filter:drop-shadow(0 18px 30px rgba(0,0,0,.6))}
.step h3{font-size:clamp(20px,1.7vw,24px);letter-spacing:-.02em;margin-bottom:10px}
.step p{color:var(--mut);font-size:16px}

/* floating objects */
.float{animation:float 7s ease-in-out infinite;will-change:transform}
.float.f2{animation-duration:8.5s;animation-delay:-2s}
.float.f3{animation-duration:7.8s;animation-delay:-4s}
.float-slow{animation:float-s 10s ease-in-out infinite}
@keyframes float{0%,100%{transform:translate3d(0,0,0) rotate(0)}50%{transform:translate3d(0,-12px,0) rotate(-2deg)}}
@keyframes float-s{0%,100%{transform:translate3d(0,0,0) rotateX(0) rotateY(0)}50%{transform:translate3d(0,-14px,0) rotateX(2deg) rotateY(-3deg)}}

/* SECTORS */
.cards{display:grid;grid-template-columns:1fr 1fr;gap:clamp(24px,3vw,48px);margin-top:clamp(64px,7vw,110px)}
.card{position:relative;min-height:380px;padding:clamp(32px,3.4vw,52px);border-radius:28px;background:linear-gradient(160deg,rgba(255,255,255,.035),rgba(255,255,255,.01) 40%,rgba(0,0,0,.2));border:1px solid var(--line);overflow:hidden;display:flex;isolation:isolate;transition:transform .5s var(--ease),border-color .5s}
.card::before{content:"";position:absolute;inset:0;border-radius:inherit;padding:1px;-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude;opacity:.55;animation:edge 6s ease-in-out infinite;z-index:1;pointer-events:none}
.card::after{content:"";position:absolute;width:60%;height:60%;border-radius:50%;filter:blur(80px);opacity:.1;z-index:-1;animation:blob 7s ease-in-out infinite;pointer-events:none}
@keyframes blob{0%,100%{opacity:.07;transform:translate3d(0,0,0)}50%{opacity:.14;transform:translate3d(6%,4%,0)}}
.card-acc::before{background:linear-gradient(135deg,var(--o),rgba(255,138,31,.15) 35%,transparent 60%,rgba(255,138,31,.25))}
.card-acc::after{background:var(--o);left:-20%;top:-25%}
.card-law::before{background:linear-gradient(225deg,var(--g),rgba(43,217,138,.15) 35%,transparent 60%,rgba(43,217,138,.25));animation-delay:-3s}
.card-law::after{background:var(--g);right:-20%;top:-25%;animation-delay:-3s}
@keyframes edge{0%,100%{opacity:.4}50%{opacity:.95}}
.card-copy{position:relative;z-index:2;max-width:56%;display:flex;flex-direction:column}
.label{font:600 12px/1 var(--sans);letter-spacing:.24em;margin-bottom:22px}
.card-acc .label,.card-acc .more{color:var(--o)}
.card-law .label,.card-law .more{color:var(--g)}
.card h3{font-size:clamp(28px,2.7vw,40px);line-height:1.05;margin-bottom:18px}
.card-copy>p:not(.label){color:var(--mut);font-size:16px;margin-bottom:28px}
.more{margin-top:auto;font-weight:600;font-size:15px;display:inline-flex;gap:8px;align-items:center;min-height:44px}
.more span{transition:transform .3s var(--ease)}
.more:hover span{transform:translateX(5px)}
.obj{position:absolute;right:-2%;bottom:6%;width:50%;height:auto;z-index:1;filter:drop-shadow(0 30px 40px rgba(0,0,0,.7))}
.card-law .obj{width:44%;right:2%}
.card.hl{transform:translateY(-6px)}
.card-acc.hl{border-color:rgba(255,138,31,.6)}
.card-law.hl{border-color:rgba(43,217,138,.6)}
.card.hl::before{opacity:1;animation:none}
html[data-sector=law] .card-acc,html[data-sector=accountancy] .card-law{opacity:.62}
.card{transition:transform .5s var(--ease),border-color .5s,opacity .5s}

/* split sections */
.split{display:grid;grid-template-columns:1fr 1fr;gap:clamp(40px,6vw,110px);align-items:center}
.split-copy h2{margin-bottom:34px;font-size:clamp(40px,4.6vw,68px)}
.split-copy .body{color:var(--mut);max-width:520px;margin-bottom:40px;font-size:18px}

/* SAFETY */
.split-rev{grid-template-columns:1.15fr 1fr}
.split-rev .tablet-wrap{order:0}
.tablet-wrap{perspective:1400px;margin-left:calc(var(--side)*-.5)}
.tablet{position:relative;transform-style:preserve-3d}
.tablet-img{width:100%;height:auto}
.screen{position:absolute;left:0;top:0;width:800px;height:480px;transform-origin:0 0;display:flex;flex-direction:column;justify-content:flex-end;gap:22px;padding:40px 56px 150px;visibility:hidden}
.screen.ready{visibility:visible}
.q{height:66px;border-radius:16px;border:1px solid rgba(255,255,255,.08);background:linear-gradient(90deg,rgba(255,255,255,.05),rgba(255,255,255,.02));display:flex;align-items:center;gap:18px;padding:0 22px;flex:none}
.q i{width:22px;height:22px;border-radius:50%;border:2px solid rgba(255,255,255,.25);flex:none}
.q b{height:9px;width:46%;border-radius:9px;background:rgba(255,255,255,.14)}
.q s{height:9px;width:18%;border-radius:9px;background:rgba(255,255,255,.08);margin-left:auto}
.q3{opacity:.42;transform:scale(.9);animation:qfade 6s ease-in-out infinite}
.q2{opacity:.72;transform:scale(.95);animation:qfade 6s ease-in-out infinite;animation-delay:-2s}
.q1{height:92px;border-color:rgba(255,138,31,.55);background:linear-gradient(90deg,rgba(255,138,31,.16),rgba(255,255,255,.03) 55%,rgba(43,217,138,.1));box-shadow:0 0 40px -10px rgba(255,138,31,.55),inset 0 1px 0 rgba(255,255,255,.08)}
.q1 i{border-color:var(--o);box-shadow:0 0 14px rgba(255,138,31,.8);animation:pulse 2.4s ease-in-out infinite}
.q-txt{font:600 30px/1 var(--sans);color:#fff;letter-spacing:-.01em}
.q-btn{margin-left:auto;font:700 24px/1 var(--sans);color:#d8ffee;padding:16px 26px;border-radius:999px;border:1.5px solid var(--g);background:rgba(43,217,138,.14);box-shadow:0 0 24px -2px rgba(43,217,138,.6);animation:approve 2.4s ease-in-out infinite}
@keyframes pulse{50%{box-shadow:0 0 26px 3px rgba(255,138,31,.9)}}
@keyframes approve{50%{box-shadow:0 0 38px 2px rgba(43,217,138,.85);background:rgba(43,217,138,.22)}}
@keyframes qfade{0%,100%{filter:brightness(1)}50%{filter:brightness(1.35)}}
.ring{position:absolute;inset:0;width:100%;height:100%;overflow:visible;pointer-events:none;mix-blend-mode:plus-lighter}
.ring ellipse{fill:none;stroke:url(#ringG);stroke-linecap:round}
.ring-a{stroke-width:5;stroke-dasharray:110 890;animation:ring 6s linear infinite;filter:drop-shadow(0 0 6px #fff)}
.ring-b{stroke-width:3;stroke-dasharray:60 940;stroke-dashoffset:500;animation:ring 6s linear infinite;animation-delay:-3s;opacity:.75}
@keyframes ring{from{stroke-dashoffset:1000}to{stroke-dashoffset:0}}
.dots{list-style:none;margin:0;padding:0;display:grid;gap:22px}
.dots li{display:flex;align-items:center;gap:18px;color:#dfe3e7;font-size:18px}
.dots i{width:9px;height:9px;border-radius:50%;flex:none;animation:dotp 3s ease-in-out infinite}
.d-o{background:var(--o);box-shadow:0 0 12px var(--o)}
.d-w{background:#fff;box-shadow:0 0 12px rgba(255,255,255,.8);animation-delay:-1s!important}
.d-g{background:var(--g);box-shadow:0 0 12px var(--g);animation-delay:-2s!important}
@keyframes dotp{50%{transform:scale(1.35);opacity:.75}}

/* AUDIT flow */
.flow{position:relative;aspect-ratio:640/440;width:100%;max-width:640px;margin-left:auto}
.flow-svg{position:absolute;inset:0;width:100%;height:100%;overflow:visible}
.fl-base{fill:none;stroke:url(#flowG);stroke-width:1.4;opacity:.55}
.fl-glow{fill:none;stroke:url(#flowG);stroke-width:7;opacity:.14;filter:blur(4px)}
.fl-comet{fill:none;stroke:url(#flowG);stroke-width:2.4;stroke-linecap:round;stroke-dasharray:70 930;animation:comet 5.2s linear infinite;filter:drop-shadow(0 0 5px rgba(255,255,255,.7))}
.fl-comet.c2{animation-delay:-2.6s}
@keyframes comet{from{stroke-dashoffset:1070}to{stroke-dashoffset:0}}
.panel{position:absolute;width:16.5%;aspect-ratio:360/646;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;animation:float 8s ease-in-out infinite}
.panel img{position:absolute;inset:0;width:100%;height:100%;z-index:-1}
.panel::before{content:"";position:absolute;inset:8% -10%;border-radius:20px;filter:blur(26px);opacity:.0;z-index:-2}
.p1{left:0;top:42%}.p2{left:27.8%;top:30%;animation-delay:-2s}.p3{left:55.6%;top:18%;animation-delay:-4s}.p4{left:83.4%;top:6%;animation-delay:-6s}
.p1::before{background:var(--o);opacity:.38;animation:edge 5s ease-in-out infinite}
.p4::before{background:var(--g);opacity:.38;animation:edge 5s ease-in-out infinite;animation-delay:-2.5s}
.p2::before{background:var(--o);opacity:.12}.p3::before{background:var(--g);opacity:.12}
.p-ic{width:44%;aspect-ratio:1;border-radius:12px;display:grid;place-items:center;background:linear-gradient(145deg,rgba(255,255,255,.16),rgba(255,255,255,.02));border:1px solid rgba(255,255,255,.16);box-shadow:inset 0 1px 0 rgba(255,255,255,.25)}
.p-ic svg{width:60%;height:60%;fill:none;stroke:#e9edf1;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;filter:drop-shadow(0 0 4px rgba(255,255,255,.35))}
.p1 .p-ic svg{stroke:#ffd2a6}.p4 .p-ic svg{stroke:#bff7dc}
.p-l{font:600 clamp(11px,1vw,14px)/1.15 var(--sans);text-align:center;color:#eef1f4;padding:0 6px}

/* FAQ */
.faq{overflow:hidden}
.faq-sparks{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:0}
.acc{max-width:760px;margin:clamp(56px,6vw,90px) auto 0;border-top:1px solid var(--line)}
.qa{border-bottom:1px solid var(--line)}
.qa h3{font:inherit;letter-spacing:0}
.qa button{width:100%;display:flex;align-items:center;justify-content:space-between;gap:24px;padding:26px 0;min-height:64px;text-align:left;font:600 clamp(17px,1.4vw,20px)/1.35 var(--display);letter-spacing:-.015em;transition:color .3s}
.qa button:hover{color:#fff}
.qa button i{position:relative;width:16px;height:16px;flex:none}
.qa button i::before,.qa button i::after{content:"";position:absolute;left:0;right:0;top:7.5px;height:1.5px;background:currentColor;transition:transform .45s var(--ease)}
.qa button i::after{transform:rotate(90deg)}
.qa.open button i::after{transform:rotate(0)}
.qa.open button{color:#fff}
.ans{display:grid;grid-template-rows:0fr;transition:grid-template-rows .55s var(--ease)}
.ans>div{overflow:hidden}
.ans p{color:var(--mut);padding:0 40px 28px 0;opacity:0;transform:translateY(-6px);transition:opacity .45s,transform .45s var(--ease)}
.qa.open .ans{grid-template-rows:1fr}
.qa.open .ans p{opacity:1;transform:none;transition-delay:.1s}
.qa.open{border-bottom-color:rgba(255,255,255,.14)}
.qa.open button{background:linear-gradient(90deg,rgba(255,138,31,.0),rgba(255,255,255,0))}

/* CTA */
.cta{position:relative;min-height:max(760px,100svh);display:flex;align-items:center;justify-content:center;text-align:center;overflow:hidden;z-index:1;padding:var(--sec) 0}
.cta::before{content:"";position:absolute;left:0;right:0;top:0;height:220px;background:linear-gradient(var(--bg),transparent);z-index:1;pointer-events:none}
.cta-art{position:absolute;inset:0;pointer-events:none;--sy:0}
.cta-stage{position:absolute;left:50%;top:56%;width:max(118vw,1100px);aspect-ratio:1642/958;transform:translate(-50%,calc(-50% + var(--sy)*.12px))}
.cta-stage .cw,.cta-sparks{position:absolute;inset:0;width:100%;height:100%}
.cw-back{opacity:.55;filter:blur(2px);animation:cw-back 16s ease-in-out infinite alternate;transform-origin:50% 80%}
.cw-front{animation:cw-front 11s ease-in-out infinite alternate;transform-origin:50% 75%}
@keyframes cw-back{0%{transform:scale(1.08,1.15) translate3d(-1.5%,2%,0) skewX(3deg)}100%{transform:scale(1.14,1.05) translate3d(1.5%,-1%,0) skewX(-3deg)}}
@keyframes cw-front{0%{transform:scale(1) translate3d(0,0,0) skewY(-1deg);opacity:.92}50%{transform:scale(1.04,1.09) translate3d(.6%,-1.6%,0) skewY(1.2deg);opacity:1}100%{transform:scale(1.02,.97) translate3d(-.6%,1%,0) skewY(-.4deg);opacity:.9}}
.m-cta-stage{display:none}
.cta-copy{position:relative;z-index:2}
.cta h2{font-size:clamp(46px,7vw,110px);line-height:.98;letter-spacing:-.045em;margin:0 auto 28px;max-width:1000px;text-shadow:0 4px 40px rgba(5,7,10,.8)}
.cta p{color:#d3d8dd;font-size:clamp(17px,1.5vw,21px);margin-bottom:40px;text-shadow:0 2px 20px rgba(5,7,10,.9)}

/* FOOTER */
.foot{position:relative;z-index:2;border-top:1px solid transparent;padding:34px 0 40px}
.foot::before{content:"";position:absolute;left:0;right:0;top:0;height:1px;background:linear-gradient(90deg,transparent,var(--o) 20%,var(--o2) 45%,var(--g) 60%,transparent 92%);opacity:.75}
.foot-in{display:flex;align-items:center;gap:24px;flex-wrap:wrap}
.brand-sm{font-size:18px;gap:10px}.brand-sm img{height:30px}
.foot-links{display:flex;flex-wrap:wrap;gap:8px 22px;margin:0 auto;font-size:13.5px;color:#aab2ba}
.foot-links a:hover{color:#fff}
.copy{font-size:13px;color:#8a929a}

/* reveal */
.js [data-reveal]{opacity:0;transform:translate3d(0,28px,0);transition:opacity 1s var(--ease),transform 1.1s var(--ease);transition-delay:var(--d,0s)}
.js [data-reveal].in{opacity:1;transform:none}

/* sector accent switch */
html[data-sector=law] .hero .btn-glow::after{box-shadow:0 0 30px -6px rgba(43,217,138,.75)}
html[data-sector=accountancy] .hero .btn-glow::after{box-shadow:0 0 30px -6px rgba(255,138,31,.8)}

/* ---------- responsive ---------- */
@media (max-width:1240px){
  .links{display:none}
  .nav-r{margin-left:auto}
}
@media (max-width:1024px){
  .card-copy{max-width:62%}
  .split{gap:48px}
}
@media (max-width:900px){
  .cards{grid-template-columns:1fr}
  .split,.split-rev{grid-template-columns:1fr}
  .tablet-wrap{margin:0 auto;max-width:620px}
  .flow{margin:0 auto}
}
@media (max-width:760px){
  :root{--side:22px;--sec:96px}
  body{font-size:16px}
  .nav-in{height:68px;padding:0 14px 0 20px;gap:10px}
  .brand{font-size:21px;gap:10px}.brand img{height:38px}
  .nav-r .toggle,.nav-r .btn{display:none}
  .burger{display:block}
  .mmenu:not([hidden]){display:flex;flex-direction:column;gap:4px;padding:8px 22px 28px;background:rgba(5,7,10,.96);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-bottom:1px solid var(--line);max-height:calc(100svh - 68px);overflow:auto}
  .mmenu>a:not(.btn){font:600 22px/1 var(--display);letter-spacing:-.02em;padding:16px 0;border-bottom:1px solid var(--line)}
  .toggle-m{align-self:flex-start;margin:22px 0 18px}
  .toggle-m button{height:40px;padding:0 20px;font-size:14px}
  .mmenu .btn{height:54px}
  .nav.open{background:rgba(5,7,10,.96)}
  .hero{min-height:auto;align-items:flex-start;padding:112px 0 0;display:block}
  .hero::after{height:120px}
  .rb-stage{display:none}
  .m-stage{display:block;position:absolute;left:0;right:0;top:var(--mtop,190px);aspect-ratio:920/1710;transform:translate3d(calc(var(--px)*10px),calc(var(--sy)*.18px),0)}
  .m-rb,.m-sparks{position:absolute;inset:0;width:100%;height:100%}
  .m-rb{animation:mrb 11s ease-in-out infinite alternate;transform-origin:70% 65%;will-change:transform,opacity}
  .m-rb-2{opacity:.38;animation:mrb2 15s ease-in-out infinite alternate}
  @keyframes mrb{0%{transform:translate3d(-2%,1%,0) scale(1.02) rotate(-1.5deg) skewY(-2deg)}50%{transform:translate3d(1.5%,-1.5%,0) scale(1.07) rotate(1deg) skewY(1.5deg)}100%{transform:translate3d(-1%,1.5%,0) scale(1.04) rotate(2deg) skewY(-1deg)}}
  @keyframes mrb2{0%{transform:translate3d(4%,-2%,0) scale(1.12) scaleX(-1)}100%{transform:translate3d(-3%,2%,0) scale(1.18) scaleX(-1) rotate(4deg)}}
  .hero-copy>*{max-width:none}
  .br-d{display:none}
  .btn-ghost{background:rgba(5,7,10,.7);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}
  .hero h1{text-wrap:wrap;font-size:clamp(38px,10.5vw,52px);line-height:1.02;margin-bottom:20px}
  .hero .sub{font-size:16px;margin-bottom:30px}
  .hero-copy{padding-bottom:var(--mpad,360px)}
  .ctas{flex-direction:column;gap:12px}
  .ctas .btn{width:100%}
  .eyebrow{font-size:11px;letter-spacing:.24em}
  h2{font-size:clamp(34px,9.6vw,44px);line-height:1.06}
  .steps{grid-template-columns:1fr;gap:0;margin-top:48px}
  .rail{left:-12px;right:auto;top:0;bottom:0;width:1px;height:auto;background:linear-gradient(transparent,rgba(255,255,255,.14) 8%,rgba(255,255,255,.14) 92%,transparent);container-type:size}
  .rail-dot{left:-3px;top:0;width:7px;height:90px;background:radial-gradient(closest-side,#fff,rgba(255,176,103,.9) 30%,transparent);animation:rail-v 7s cubic-bezier(.5,0,.5,1) infinite}
  .rail-dot::after{display:none}
  @keyframes rail-v{0%{transform:translateY(-100px);opacity:0}8%,92%{opacity:1}100%{transform:translateY(100cqh);opacity:0}}
  .step,.step:first-of-type{padding:0 0 44px 0}
  .step+.step{border-left:0;border-top:1px solid var(--line);padding-top:36px}
  .step-top{height:120px;margin-bottom:12px}
  .num{font-size:64px;padding:0 10px 0 0}
  .step-top img{width:118px}
  .cards{gap:22px;margin-top:48px}
  .card{min-height:0;flex-direction:column;padding:30px 26px 0;border-radius:22px}
  .card-copy{max-width:none}
  .card h3{font-size:30px}
  .obj,.card-law .obj{position:relative;right:auto;bottom:auto;width:72%;margin:8px -6px -4px auto}
  .split{gap:40px}
  .safety .split-rev .tablet-wrap{order:2}
  .tablet-wrap{margin:0 -12px}
  .split-copy h2{margin-bottom:26px}
  .dots li{font-size:17px}
  .flow{aspect-ratio:360/560;max-width:420px}
  .panel{width:27%}
  .p1{left:4%;top:0}.p2{left:62%;top:15%}.p3{left:4%;top:44%}.p4{left:62%;top:59%}
  .p-l{font-size:12.5px}
  .acc{margin-top:44px}
  .qa button{padding:22px 0;font-size:17px}
  .ans p{padding-right:8px}
  .cta{min-height:auto;padding:150px 0 calc(var(--sec) + 40px);align-items:flex-start}
  .cta-stage{display:none}
  .m-cta-stage{display:block;position:absolute;left:0;right:0;bottom:-6%;aspect-ratio:1007/1561}
  .m-cw{position:absolute;inset:0;width:100%;height:100%;animation:mrb 12s ease-in-out infinite alternate;transform-origin:50% 80%}
  .cta h2{font-size:clamp(44px,12vw,56px)}
  .cta-copy{padding-bottom:300px}
  .foot-in{flex-direction:column;align-items:flex-start;gap:22px}
  .foot-links{margin:0;gap:4px 22px}
  .foot-links a{padding:8px 0;display:inline-block}
}

@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation:none!important;transition-duration:.01ms!important}
  .js [data-reveal]{opacity:1;transform:none}
  .rail-dot{display:none}
}

/* hero copy animates in with pure CSS (no JS wait) */
.js .hero [data-reveal]{opacity:1;transform:none;transition:none;animation:hero-in 1.1s var(--ease) both;animation-delay:var(--d,0s)}
@keyframes hero-in{from{opacity:.01;transform:translate3d(0,26px,0)}to{opacity:1;transform:none}}
