/* CPT Clean v4 — electric blue · violet · neon pulse */
:root{--ink:#070a2e;--ink2:#11153f;--paper:#fff;--grey:#5f5b6e;--mist:#e3e1ee;--fog:#bdbad0;--blue:#0019ff;--violet:#8c52ff;--violet-d:#6c34f0;--pink:#ff17e9;
--lilac:#f5f2ff;--sky:#eef1ff;--g:linear-gradient(115deg,#0019ff 0%,#8c52ff 55%,#ff17e9 100%);--g-btn:linear-gradient(115deg,#0019ff,#6c34f0);
--f:"Helvetica Neue",Inter,Helvetica,Arial,system-ui,sans-serif;--max:1200px;--gap:96px;--r:20px;--pill:64px;--ease:cubic-bezier(.2,.7,.2,1)}
*,*::before,*::after{box-sizing:border-box}
@view-transition{navigation:auto}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:90px}
body{margin:0;background:var(--paper);color:var(--ink);font:400 16px/1.5 var(--f);letter-spacing:-.01em;-webkit-font-smoothing:antialiased;overflow-x:clip}
img{max-width:100%;height:auto;display:block}
a{color:inherit}
h1,h2,h3,p,ul,ol{margin:0}
h1,h2,h3,h4{font-weight:400}
b,strong{font-weight:500}
.wrap{max-width:var(--max);margin:0 auto;padding:0 24px;position:relative}
.narrow{max-width:820px}
.sr{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.skip{position:absolute;left:-9999px}.skip:focus{left:16px;top:16px;z-index:100;background:#000;color:#fff;padding:8px 16px;border-radius:8px}
:focus-visible{outline:2px solid var(--violet);outline-offset:3px}
::selection{background:var(--violet);color:#fff}

/* type */
.disp{font-size:clamp(44px,6.4vw,84px);line-height:.95;letter-spacing:-.05em}
.disp.xl{font-size:clamp(50px,7.6vw,108px);line-height:.9}
.disp.sm{font-size:clamp(38px,5vw,64px);margin:16px 0 20px}
.h2{font-size:clamp(30px,3.8vw,52px);line-height:1.05;letter-spacing:-.035em;margin:16px 0 28px}
.h3{font-size:24px;letter-spacing:-.01em;margin:40px 0 16px}.h3.nm{margin:0 0 8px}
.lead{font-size:clamp(17px,1.6vw,20px);line-height:1.45;color:var(--grey);max-width:40em}
.muted{color:var(--grey);font-size:18px;line-height:1.5;max-width:36em}.muted.sm{font-size:15px;margin-bottom:16px}
.lbl{font-size:12px;line-height:1.6;letter-spacing:.08em;text-transform:uppercase;color:var(--grey);font-weight:400}
.grad-t{background:var(--g);-webkit-background-clip:text;background-clip:text;color:transparent;background-size:200% 100%;animation:sheen 8s ease-in-out infinite alternate;padding-right:.04em}
@keyframes sheen{to{background-position:100% 0}}
.tag{display:inline-flex;align-items:center;gap:8px;border:1px solid transparent;border-radius:100px;padding:6px 14px;font-size:12px;letter-spacing:.08em;text-transform:uppercase;line-height:1.4;
 background:linear-gradient(#fff,#fff) padding-box,var(--g) border-box}
.tag.inv{color:#fff;background:linear-gradient(var(--ink),var(--ink)) padding-box,var(--g) border-box}
.tag.live b{width:8px;height:8px;border-radius:50%;background:#16d17a;box-shadow:0 0 0 0 rgba(22,209,122,.6);animation:ping 2s infinite}
@keyframes ping{70%{box-shadow:0 0 0 8px rgba(22,209,122,0)}100%{box-shadow:0 0 0 0 rgba(22,209,122,0)}}
.mt{margin-top:32px}.opt{color:var(--fog)}

/* buttons */
.btn{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:8px;background:var(--ink);color:#fff;border:1px solid var(--ink);border-radius:var(--pill);padding:15px 26px;font:400 16px/1 var(--f);letter-spacing:-.01em;text-decoration:none;cursor:pointer;transition:transform .2s var(--ease),box-shadow .2s,background .2s,color .2s;min-height:48px;white-space:nowrap;overflow:hidden;isolation:isolate}
.btn:hover{transform:translateY(-2px)}
.btn.grad{background:var(--g-btn);border-color:transparent;box-shadow:0 10px 30px -10px rgba(76,40,255,.65)}
.btn.grad::after{content:"";position:absolute;inset:0;background:linear-gradient(100deg,transparent 30%,rgba(255,255,255,.35) 50%,transparent 70%);transform:translateX(-120%);transition:transform .7s var(--ease);z-index:-1}
.btn.grad:hover::after{transform:translateX(120%)}
.btn.grad:hover{box-shadow:0 16px 40px -12px rgba(140,82,255,.8)}
.btn.ghost{background:rgba(255,255,255,.6);color:var(--ink);border-color:var(--ink)}
.btn.ghost:hover{background:var(--ink);color:#fff}
.btn.sm{padding:11px 18px;min-height:42px;font-size:15px}
.btn.lg{padding:18px 30px;min-height:56px;font-size:17px}
.btn.inv{background:#fff;color:var(--ink);border-color:#fff}
.btn.inv-g{background:transparent;color:#fff;border-color:rgba(255,255,255,.7)}.btn.inv-g:hover{background:#fff;color:var(--ink)}
.arr-i{display:inline-block;transition:transform .25s var(--ease)}.btn:hover .arr-i,.hc-check:hover .arr-i{transform:translateX(4px)}
.ui-i{width:18px;height:18px;flex:none}
.row{display:flex;flex-wrap:wrap;gap:12px;margin-top:28px}

/* header */
.hdr{position:sticky;top:0;z-index:50;background:rgba(255,255,255,.82);backdrop-filter:saturate(1.6) blur(14px);-webkit-backdrop-filter:saturate(1.6) blur(14px);border-bottom:1px solid rgba(227,225,238,.8);transition:box-shadow .3s}
.hdr.up{box-shadow:rgba(7,10,46,.12) 0 12px 60px 0}
.hdr-in{display:flex;align-items:center;justify-content:space-between;gap:24px;padding-top:10px;padding-bottom:10px}
.logo img{height:48px;width:auto}
.nav{display:flex;gap:4px}
.nav a{position:relative;text-decoration:none;font-size:15px;padding:8px 12px;border-radius:100px;transition:background .2s}
.nav a:hover{background:var(--lilac)}
.nav a[aria-current]::after{content:"";position:absolute;left:12px;right:12px;bottom:2px;height:2px;border-radius:2px;background:var(--g)}
.nav-quote{display:none}
.hdr-act{display:flex;align-items:center;gap:8px}
.menu{display:none;width:44px;height:44px;border:1px solid var(--mist);border-radius:50%;background:#fff;cursor:pointer;flex-direction:column;align-items:center;justify-content:center;gap:5px}
.menu span{display:block;width:16px;height:1.5px;background:#000;transition:transform .2s}
.menu[aria-expanded=true] span:first-child{transform:translateY(3px) rotate(45deg)}
.menu[aria-expanded=true] span:last-child{transform:translateY(-3px) rotate(-45deg)}

/* hero + aurora */
.hero{position:relative;padding:80px 0 72px;overflow:hidden;background:linear-gradient(180deg,#fbfaff 0%,#fff 100%)}
.aurora{position:absolute;inset:-20% -10% auto;height:120%;pointer-events:none;filter:blur(70px);opacity:.55}
.aurora i{position:absolute;border-radius:50%;mix-blend-mode:multiply;animation:float 18s ease-in-out infinite alternate}
.aurora i:nth-child(1){width:44vw;height:44vw;max-width:620px;max-height:620px;left:48%;top:-6%;background:radial-gradient(circle,#8c52ff 0,transparent 65%)}
.aurora i:nth-child(2){width:38vw;height:38vw;max-width:540px;max-height:540px;left:66%;top:28%;background:radial-gradient(circle,#ff17e9 0,transparent 62%);animation-duration:22s;animation-delay:-6s;opacity:.7}
.aurora i:nth-child(3){width:40vw;height:40vw;max-width:560px;max-height:560px;left:34%;top:34%;background:radial-gradient(circle,#0019ff 0,transparent 62%);animation-duration:26s;animation-delay:-12s;opacity:.55}
@keyframes float{0%{transform:translate(0,0) scale(1)}50%{transform:translate(-6%,8%) scale(1.12)}100%{transform:translate(6%,-4%) scale(.95)}}
.hero-in{display:grid;grid-template-columns:1.15fr .85fr;gap:56px;align-items:center}
.hero .disp{margin:24px 0 16px}
.roll-line{font-size:clamp(22px,2.4vw,30px);letter-spacing:-.02em;margin-bottom:20px;display:flex;gap:.35em;align-items:baseline}
.roll{position:relative;display:inline-grid;height:1.25em;overflow:hidden;vertical-align:bottom;min-width:7em}
.roll span{grid-area:1/1;color:var(--violet-d);transform:translateY(110%);opacity:0;transition:transform .6s var(--ease),opacity .6s,filter .6s;filter:blur(4px)}
.roll span.on{transform:none;opacity:1;filter:none}
.roll span.out{transform:translateY(-110%);opacity:0}
.no-js .roll span:first-child,html:not(.js) .roll span:first-child{transform:none;opacity:1;filter:none}
.mini-trust{display:flex;flex-wrap:wrap;gap:8px 20px;list-style:none;padding:0;margin-top:28px;font-size:14px;color:var(--grey)}
.mini-trust li{display:flex;align-items:center;gap:8px}
.mini-trust li::before{content:"";width:16px;height:16px;border-radius:50%;background:var(--g);-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M8 0a8 8 0 1 0 0 16A8 8 0 0 0 8 0zm3.6 5.8-4.2 4.6a.7.7 0 0 1-1 0L4.4 8.4l1-1 1.5 1.5 3.7-4.1z'/%3E%3C/svg%3E") center/contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M8 0a8 8 0 1 0 0 16A8 8 0 0 0 8 0zm3.6 5.8-4.2 4.6a.7.7 0 0 1-1 0L4.4 8.4l1-1 1.5 1.5 3.7-4.1z'/%3E%3C/svg%3E") center/contain no-repeat}
.hero-card{position:relative;background:var(--ink);color:#fff;border-radius:36px;padding:36px;box-shadow:0 40px 80px -30px rgba(7,10,46,.55);isolation:isolate}
.hero-card::before{content:"";position:absolute;inset:0;border-radius:inherit;padding:1.5px;background:var(--g);-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude;z-index:-1}
.hero-card::after{content:"";position:absolute;width:260px;height:260px;right:-60px;top:-80px;background:radial-gradient(circle,rgba(140,82,255,.55),transparent 65%);z-index:-1;filter:blur(10px)}
.hc-top{display:flex;justify-content:space-between;align-items:center}.hero-card .lbl{color:var(--fog)}
.hc-dot{width:10px;height:10px;border-radius:50%;background:var(--g)}
.hc-t{font-size:34px;letter-spacing:-.035em;line-height:1.05;margin:10px 0 22px}
.qpills{display:flex;flex-wrap:wrap;gap:8px}
.qpill{display:inline-flex;align-items:center;gap:8px;border:1px solid #2a2e63;background:rgba(255,255,255,.03);border-radius:100px;padding:8px 14px 8px 8px;font-size:14px;text-decoration:none;transition:border-color .2s,background .2s,transform .2s}
.qpill:hover{border-color:var(--violet);background:rgba(140,82,255,.14);transform:translateY(-2px)}
.hc-check{display:flex;align-items:center;gap:10px;margin-top:22px;padding:14px 16px;border-radius:16px;background:rgba(255,255,255,.06);text-decoration:none;font-size:14px;color:#d8d6ec}
.hc-check b{color:#fff;font-weight:400;text-decoration:underline;text-decoration-color:var(--pink);text-underline-offset:3px}
.hc-check .arr-i{margin-left:auto}

/* icons */
.ico{display:inline-grid;place-items:center;width:64px;height:64px;border-radius:18px;background:linear-gradient(#fff,#fff) padding-box,linear-gradient(135deg,rgba(0,25,255,.25),rgba(255,23,233,.25)) border-box;border:1px solid transparent}
.ico svg{width:40px;height:40px;overflow:visible}
.ico.xs{width:30px;height:30px;border-radius:50%;background:#fff}.ico.xs svg{width:20px;height:20px}
.ico.lg{width:96px;height:96px;border-radius:26px}.ico.lg svg{width:60px;height:60px}
.js .ico path,.js .ico circle,.js .ico rect{stroke-dasharray:1;stroke-dashoffset:1;transition:stroke-dashoffset 1.1s var(--ease)}
.js .in .ico path,.js .in .ico circle,.js .in .ico rect,.js .in.ico path,.js .ico.xs path,.js .ico.xs circle,.js .ico.xs rect,.js .ico.lg path,.js .ico.lg circle,.js .ico.lg rect{stroke-dashoffset:0}
.in .ico svg>*:nth-child(2){transition-delay:.15s}.in .ico svg>*:nth-child(3){transition-delay:.3s}.in .ico svg>*:nth-child(4){transition-delay:.45s}
.i-sun{transform-origin:38px 11px}.i-sq{transform-origin:36px 25px}.i-tw{transform-origin:center;transform-box:fill-box}
.svc:hover .i-sun,.qpill:hover .i-sun,.ico.lg .i-sun{animation:spin 6s linear infinite}
.svc:hover .i-sq,.qpill:hover .i-sq,.ico.lg .i-sq{animation:wipe 1.4s var(--ease) infinite}
.svc:hover .i-tw,.qpill:hover .i-tw,.ico.lg .i-tw{animation:twinkle 1.2s ease-in-out infinite}
.svc:hover .i-sp,.qpill:hover .i-sp,.ico.lg .i-sp{animation:puff 1s ease-in-out infinite}
.svc:hover .i-mv,.qpill:hover .i-mv,.ico.lg .i-mv{animation:nudge 1s ease-in-out infinite}
@keyframes spin{to{transform:rotate(360deg)}}
@keyframes wipe{0%,100%{transform:translate(0,0)}50%{transform:translate(-8px,-10px)}}
@keyframes twinkle{0%,100%{transform:scale(1);opacity:1}50%{transform:scale(1.5);opacity:.55}}
@keyframes puff{0%,100%{opacity:1;transform:translateX(0)}50%{opacity:.35;transform:translateX(3px)}}
@keyframes nudge{0%,100%{transform:translateX(0)}50%{transform:translateX(4px)}}

/* marquee */
.marquee{background:var(--ink);color:#fff;overflow:hidden;padding:18px 0;border-block:1px solid #1d2156;mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent)}
.mq-track{display:flex;gap:28px;width:max-content;animation:mq 50s linear infinite;font-size:clamp(20px,2.4vw,28px);letter-spacing:-.02em}
.mq-track i{font-style:normal;background:var(--g);-webkit-background-clip:text;background-clip:text;color:transparent}
.marquee:hover .mq-track{animation-play-state:paused}
@keyframes mq{to{transform:translateX(-50%)}}

/* stats */
.stats{padding:72px 0}
.stats-in{display:grid;grid-template-columns:repeat(4,1fr);gap:24px}
.num{display:block;font-size:clamp(84px,13vw,200px);line-height:.8;letter-spacing:-.06em;background:linear-gradient(180deg,var(--ink) 40%,#5b4bd8 100%);-webkit-background-clip:text;background-clip:text;color:transparent;font-variant-numeric:tabular-nums}
.cap{display:block;margin-top:16px;font-size:14px;color:var(--grey)}

/* sections */
.sec{padding:var(--gap) 0;position:relative}
.sec.top{padding-top:48px}
.sec.lv{background:linear-gradient(180deg,var(--lilac),#fff)}
.bt{border-top:1px solid var(--mist)}
.band{position:relative;background:var(--ink);color:#fff;padding:var(--gap) 0;overflow:hidden}
.band-glow{position:absolute;inset:auto -20% -60% -20%;height:90%;background:radial-gradient(ellipse at 30% 30%,rgba(0,25,255,.55),transparent 60%),radial-gradient(ellipse at 75% 40%,rgba(255,23,233,.35),transparent 55%);filter:blur(30px);pointer-events:none}
.h2.inv{color:#fff}
.split{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:start}
.split.q{grid-template-columns:1.3fr .7fr}
.sec-head{display:flex;justify-content:space-between;align-items:end;gap:24px;flex-wrap:wrap;margin-bottom:8px}
.sec-head .h2{margin-bottom:12px}
@supports (content-visibility:auto){.sec:not(.top):not(.area-sec),.band:not(.cta){content-visibility:auto;contain-intrinsic-size:auto 900px}}

/* reveal */
.js [data-reveal]{opacity:0;transform:translateY(28px);transition:opacity .8s var(--ease),transform .8s var(--ease);transition-delay:calc(var(--i,0)*90ms)}
.js [data-reveal].in{opacity:1;transform:none}
.js .steps[data-reveal]{opacity:1;transform:none}
.js .steps[data-reveal] li{opacity:0;transform:translateY(20px);transition:opacity .7s var(--ease),transform .7s var(--ease);transition-delay:calc(var(--i)*160ms + 200ms)}
.js .steps[data-reveal].in li{opacity:1;transform:none}

/* cards */
.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:16px;margin-top:16px}
.svc-grid{grid-template-columns:repeat(3,1fr)}
.card{position:relative;display:block;border:1px solid var(--mist);border-radius:var(--r);padding:28px 28px 60px;text-decoration:none;background:#fff;transition:border-color .3s,transform .4s var(--ease),box-shadow .4s;isolation:isolate;overflow:hidden}
.card::before{content:"";position:absolute;inset:0;background:radial-gradient(420px circle at var(--mx,50%) var(--my,0%),rgba(140,82,255,.14),transparent 45%);opacity:0;transition:opacity .3s;z-index:-1}
.card:hover{border-color:transparent;transform:translateY(-6px);box-shadow:0 30px 60px -30px rgba(76,40,255,.45),0 0 0 1px rgba(140,82,255,.45)}
.card:hover::before{opacity:1}
.card .ico{display:grid;margin-bottom:20px}
.card h3{font-size:24px;letter-spacing:-.015em;line-height:1.2;margin:8px 0}
.card p{color:var(--grey);font-size:15px}
.card .arr{position:absolute;left:28px;bottom:22px;font-size:20px;transition:transform .3s var(--ease)}
.card:hover .arr{transform:translateX(6px);color:var(--violet-d)}
.card.dk{background:rgba(255,255,255,.04);border-color:rgba(255,255,255,.1);color:#fff;padding-bottom:28px;backdrop-filter:blur(6px)}
.card.dk .lbl,.card.dk p{color:var(--fog)}
.card.dk:hover{box-shadow:0 30px 60px -30px rgba(0,0,0,.6),0 0 0 1px rgba(255,23,233,.4)}
.card.dk h3{font-size:30px}
.line-home h3{color:#8ea0ff}.line-shortlet h3{color:#c4a6ff}.line-commercial h3{color:#ff8df2}.line-specialist h3{color:#fff}
.dk-list{list-style:none;padding:0;margin-top:16px}
.dk-list li{border-top:1px solid rgba(255,255,255,.1)}
.dk-list a{display:block;padding:12px 0;text-decoration:none;font-size:17px;transition:padding .2s,color .2s}
.dk-list a:hover{color:#ff8df2;padding-left:6px}
.cards.scroll{grid-template-columns:repeat(4,1fr)}

.panel{border:1px solid var(--mist);border-radius:var(--r);padding:32px;background:#fff}
.panel.glass{background:rgba(255,255,255,.75);backdrop-filter:blur(14px);border-color:rgba(255,255,255,.9);box-shadow:0 30px 70px -40px rgba(76,40,255,.5)}
.panel.sticky{position:sticky;top:100px}
.panel .ico.lg{margin-bottom:20px}
.check{list-style:none;padding:0;margin-top:16px}
.check li{position:relative;padding:12px 0 12px 28px;border-top:1px solid var(--mist);font-size:17px}
.check li:first-child{border-top:0}
.check li::before{content:"";position:absolute;left:2px;top:21px;width:8px;height:8px;border-radius:50%;background:var(--g)}
.check.sm li{font-size:15px;padding:8px 0 8px 24px}.check.sm li::before{top:15px}
.check.big li{font-size:19px;padding:16px 0 16px 28px}.check.big li::before{top:26px}
.cols{columns:2;padding-left:18px;margin-top:16px;line-height:1.9;color:var(--grey)}
.big{font-size:22px;letter-spacing:-.01em}

.trust{list-style:none;padding:0;display:grid;gap:0}
.trust li{display:flex;gap:16px;align-items:center;padding:18px 0;border-top:1px solid var(--mist);color:var(--grey)}
.trust li:first-child{border-top:0}
.trust .tag{color:var(--ink);min-width:124px;justify-content:center}

/* steps */
.steps{list-style:none;padding:0;display:grid;grid-template-columns:repeat(3,1fr);gap:32px;margin-top:16px;position:relative}
.steps::before{content:"";position:absolute;left:0;right:0;top:34px;height:2px;background:var(--g);transform:scaleX(0);transform-origin:left;transition:transform 1.4s var(--ease) .2s;z-index:-1;opacity:.35}
.steps.in::before{transform:scaleX(1)}
.step-n{display:inline-grid;place-items:center;width:68px;height:68px;border-radius:50%;font-size:24px;letter-spacing:-.03em;color:#fff;background:var(--g);box-shadow:0 12px 30px -10px rgba(140,82,255,.7)}
.steps h3{font-size:24px;margin:20px 0 8px}
.steps p{color:var(--grey)}

/* regions, pills */
.regions{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:24px}
.reg a{display:block;font-size:20px;letter-spacing:-.01em;padding:10px 0;border-top:1px solid var(--mist);text-decoration:none;transition:color .2s,padding .2s}
.reg a:hover{color:var(--violet-d);padding-left:6px}
.reg h3{margin-bottom:8px}
.reg-block{margin-top:48px}
.pills{display:flex;flex-wrap:wrap;gap:8px;margin-top:16px}
.pill{border:1px solid var(--mist);border-radius:24px;padding:10px 16px;text-decoration:none;font-size:15px;background:#fff;transition:border-color .2s,transform .2s}
.pill:hover{border-color:var(--violet);transform:translateY(-2px)}
.pill.pk{background:linear-gradient(#fff,#fff) padding-box,var(--g) border-box;border-color:transparent}

.bc{font-size:13px;color:var(--grey);margin-bottom:20px;display:flex;flex-wrap:wrap;gap:8px}
.bc a{text-decoration:none}.bc a:hover{color:var(--ink)}
.bc .sep{color:var(--fog)}

/* area checker */
.sec.area-sec{background:linear-gradient(160deg,#eef1ff 0%,#f5f2ff 45%,#fff0fd 100%);overflow:hidden}
.check-glow{position:absolute;width:640px;height:640px;right:-200px;top:-220px;background:radial-gradient(circle,rgba(140,82,255,.35),transparent 65%);filter:blur(20px);pointer-events:none}
.pc{margin-top:28px;max-width:560px}
.pc-row{display:flex;align-items:center;gap:8px;background:#fff;border-radius:100px;padding:6px 6px 6px 18px;box-shadow:0 20px 50px -25px rgba(76,40,255,.5);border:1px solid transparent;background:linear-gradient(#fff,#fff) padding-box,var(--g) border-box}
.pc-pin{color:var(--violet-d);display:flex}
.pc-row input{border:0;margin:0;padding:12px 4px;font-size:18px;background:transparent;border-radius:0;min-width:0;flex:1}
.pc-row input:focus{outline:none}
.pc-out{margin-top:20px;min-height:40px;max-width:560px}
.pc-res{display:flex;gap:16px;align-items:flex-start;padding:20px;border-radius:20px;background:#fff;border:1px solid var(--mist);animation:pop .5s var(--ease)}
.pc-res.ok{border-color:rgba(22,209,122,.4);box-shadow:0 16px 40px -24px rgba(22,209,122,.6)}
.pc-badge{flex:none;width:40px;height:40px;border-radius:50%;display:grid;place-items:center;color:#fff;background:#16b46c;font-size:20px}
.pc-res.no .pc-badge{background:var(--violet-d)}
.pc-res h4{margin:0 0 4px;font-size:20px;font-weight:400;letter-spacing:-.01em}
.pc-res p{color:var(--grey);font-size:15px}
.pc-res .row{margin-top:14px}
@keyframes pop{from{opacity:0;transform:translateY(10px) scale(.98)}}
.pc-ok{margin-top:12px;color:#0f8a54}

/* faq */
.faq{border-top:1px solid var(--ink);max-width:880px}
.faq details{border-bottom:1px solid var(--mist)}
.faq summary{list-style:none;cursor:pointer;padding:22px 44px 22px 0;font-size:20px;letter-spacing:-.01em;position:relative;transition:color .2s}
.faq summary:hover{color:var(--violet-d)}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";position:absolute;right:4px;top:16px;width:30px;height:30px;border-radius:50%;display:grid;place-items:center;font-size:22px;transition:transform .3s var(--ease),background .3s,color .3s}
.faq details[open] summary::after{transform:rotate(45deg);background:var(--g);color:#fff}
.faq details p{padding:0 0 22px;color:var(--grey);font-size:17px;max-width:44em}

/* cta */
.band.cta{background:#0b0f8f}
.cta-mesh{position:absolute;inset:0;background:radial-gradient(60% 80% at 10% 10%,#0019ff 0,transparent 60%),radial-gradient(50% 70% at 90% 20%,#ff17e9 0,transparent 60%),radial-gradient(70% 90% at 60% 100%,#8c52ff 0,transparent 60%);animation:mesh 16s ease-in-out infinite alternate;opacity:.95}
@keyframes mesh{to{filter:hue-rotate(-25deg);transform:scale(1.08)}}
.cta-in{position:relative}
.cta-in .disp{max-width:14em}
.cta p{color:rgba(255,255,255,.82);font-size:18px;margin-top:20px}

/* prose */
.prose p{font-size:18px;line-height:1.6;margin:0 0 18px;color:#1a1a33}
.prose h2{font-size:32px;letter-spacing:-.03em;line-height:1.13;margin:48px 0 16px}
.prose ul{padding-left:20px;margin:0 0 20px}.prose li{font-size:18px;line-height:1.6;margin:6px 0}
.prose li::marker{color:var(--violet)}
.prose a{text-decoration-color:var(--pink);text-underline-offset:3px}
.prose strong{font-weight:400;background:linear-gradient(transparent 62%,rgba(140,82,255,.25) 0)}

/* blog */
.posts{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:24px}
.post-card{position:relative;display:flex;flex-direction:column;border:1px solid var(--mist);border-radius:var(--r);padding:28px;text-decoration:none;min-height:250px;background:#fff;transition:transform .4s var(--ease),box-shadow .4s,border-color .3s;overflow:hidden}
.post-card::after{content:"";position:absolute;left:0;right:0;top:0;height:4px;background:var(--g);transform:scaleX(0);transform-origin:left;transition:transform .5s var(--ease)}
.post-card:hover{transform:translateY(-6px);box-shadow:0 30px 60px -30px rgba(76,40,255,.45);border-color:transparent}
.post-card:hover::after{transform:scaleX(1)}
.post-card h3{font-size:22px;line-height:1.2;letter-spacing:-.01em;margin:12px 0}
.post-card p{color:var(--grey);font-size:15px;margin-top:auto}
.post-meta{font-size:13px;color:var(--grey);display:flex;gap:12px;flex-wrap:wrap;margin:8px 0 32px}
.article{max-width:760px}
.big404{font-size:clamp(120px,22vw,200px);line-height:.8;letter-spacing:-.05em;display:block;background:var(--g);-webkit-background-clip:text;background-clip:text;color:transparent}

/* forms */
.qform{margin-top:32px}.qform.compact{margin-top:8px}
fieldset{border:0;padding:0;margin:0 0 32px}
legend{font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--grey);margin-bottom:16px;padding:0}
.qform label{display:block;font-size:14px;margin-bottom:16px}
.two{display:grid;grid-template-columns:1fr 1fr;gap:16px}
input,select,textarea{display:block;width:100%;margin-top:6px;background:#fff;border:1px solid var(--mist);border-radius:16px;padding:15px 16px;font:400 16px/1.3 var(--f);color:var(--ink);-webkit-appearance:none;appearance:none;transition:border-color .2s,box-shadow .2s}
select{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%23070a2e' fill='none'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 16px center;padding-right:40px}
input::placeholder,textarea::placeholder{color:var(--fog)}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--violet);box-shadow:0 0 0 4px rgba(140,82,255,.15)}
.qform .bad{border-color:var(--pink);border-style:dashed}
.chk{display:flex!important;gap:12px;align-items:flex-start;font-size:14px;color:var(--grey)}
.chk input{width:20px;height:20px;margin:2px 0 0;flex:none;border-radius:6px;padding:0}
.chk input:checked{background:var(--violet-d) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='10' viewBox='0 0 12 10'%3E%3Cpath d='M1 5l3.5 3.5L11 1' stroke='%23fff' stroke-width='1.6' fill='none'/%3E%3C/svg%3E") center no-repeat;border-color:var(--violet-d)}
.hp{position:absolute!important;left:-9999px!important;height:0;overflow:hidden}
.ferr{border:1px solid var(--pink);border-radius:16px;padding:14px 16px;margin-bottom:16px;font-size:15px;background:#fff5fe}
.mini{padding-left:20px;line-height:1.7;color:var(--grey);margin-top:12px}
ol.mini{padding-left:20px}

/* footer */
.ftr{position:relative;border-top:1px solid var(--mist);padding:72px 0 32px;overflow:hidden;background:linear-gradient(180deg,#fff,#f7f5ff)}
.ftr-glow{position:absolute;left:50%;bottom:-320px;width:900px;height:480px;transform:translateX(-50%);background:radial-gradient(ellipse,rgba(140,82,255,.22),transparent 65%);pointer-events:none}
.ftr-top{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:32px}
.ftr-brand img{width:166px;margin-bottom:16px}
.ftr-brand p{color:var(--grey);font-size:14px;margin-bottom:12px;max-width:28em}
.ftr ul{list-style:none;padding:0;margin-top:12px}
.ftr li a{display:block;padding:4px 0;font-size:14px;text-decoration:none;transition:color .2s}
.ftr li a:hover{color:var(--violet-d)}
.ftr-bot .credit{text-decoration:none;background:var(--g);-webkit-background-clip:text;background-clip:text;color:transparent}.ftr-bot .credit:hover{text-decoration:underline;text-decoration-color:var(--violet)}
.ftr-bot{display:flex;justify-content:space-between;flex-wrap:wrap;gap:12px;border-top:1px solid var(--mist);margin-top:48px;padding-top:24px;font-size:13px;color:var(--grey)}

/* quick actions: back to top (left) + contact pop-out (right) */
.quick{position:fixed;inset:auto 0 0 0;z-index:60;pointer-events:none;height:0}
.totop,.fab{pointer-events:auto}
.totop{position:fixed;left:20px;bottom:20px;width:56px;height:56px;border-radius:50%;border:0;background:#fff;color:var(--ink);cursor:pointer;display:grid;place-items:center;box-shadow:0 14px 40px -14px rgba(7,10,46,.45);opacity:0;transform:translateY(20px) scale(.9);transition:opacity .3s,transform .3s var(--ease),visibility .3s;visibility:hidden}
.totop.on{opacity:1;transform:none;visibility:visible}
.totop .ring{position:absolute;inset:0;width:100%;height:100%;transform:rotate(-90deg)}
.totop .ring circle{fill:none;stroke:var(--mist);stroke-width:3}
.totop .ring .ring-p{stroke:url(#cg);stroke-dasharray:100;stroke-dashoffset:calc(100 - var(--p,0));stroke-linecap:round;transition:stroke-dashoffset .1s linear}
.totop .ui-i{position:relative;transition:transform .3s var(--ease),opacity .2s}
.totop .pct{position:absolute;font-size:11px;letter-spacing:0;opacity:0;transition:opacity .2s}
.totop:hover .ui-i{transform:translateY(-3px)}
@media (hover:hover){.totop:hover .ui-i{opacity:0}.totop:hover .pct{opacity:1}}
.fab{position:fixed;right:20px;bottom:20px;display:flex;flex-direction:column;align-items:flex-end;gap:12px;opacity:0;transform:translateY(20px);transition:opacity .35s,transform .35s var(--ease),visibility .35s;visibility:hidden}
.fab.on{opacity:1;transform:none;visibility:visible}
.no-js .fab,html:not(.js) .fab{opacity:1;transform:none;visibility:visible}
.fab-btn{display:inline-flex;align-items:center;gap:10px;height:56px;padding:0 22px 0 8px;border-radius:100px;background:var(--ink);color:#fff;text-decoration:none;box-shadow:0 18px 44px -16px rgba(7,10,46,.6);transition:background .3s,transform .2s;position:relative;overflow:hidden}
.fab-btn::before{content:"";position:absolute;inset:0;border-radius:inherit;padding:1.5px;background:var(--g);-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude}
.fab-btn:hover{transform:translateY(-2px)}
.fab-btn img{width:40px;height:40px;border-radius:50%}
.fab-roll{display:inline-grid;height:1.3em;overflow:hidden;min-width:7.2em}
.fab-roll span{grid-area:1/1;transform:translateY(110%);opacity:0;transition:transform .5s var(--ease),opacity .5s}
.fab-roll span.on{transform:none;opacity:1}.fab-roll span.out{transform:translateY(-110%);opacity:0}
.fab-roll span:first-child{transform:none;opacity:1}
.js .fab-roll span:first-child:not(.on){transform:translateY(110%);opacity:0}
.js .fab-roll span:first-child.out{transform:translateY(-110%)}
.fab-x{display:none}
.fab.open .fab-btn{background:var(--g-btn)}
.fab.open .fab-roll{display:none}.fab.open .fab-x{display:inline}
.fab-card{width:min(360px,calc(100vw - 40px));background:#fff;border-radius:26px;padding:22px;box-shadow:0 40px 90px -30px rgba(7,10,46,.55);border:1px solid var(--mist);transform-origin:bottom right;animation:card .35s var(--ease)}
@keyframes card{from{opacity:0;transform:translateY(12px) scale(.96)}}
.fab-h{font-size:24px;letter-spacing:-.03em}.fab-s{color:var(--grey);font-size:14px;margin:4px 0 12px}
.fab-list{list-style:none;padding:0;margin:0}
.fab-list a{display:flex;align-items:center;gap:14px;padding:10px;border-radius:16px;text-decoration:none;transition:background .2s}
.fab-list a:hover,.fab-list a:focus-visible{background:var(--lilac)}
.fab-list b{display:block;font-weight:400;font-size:16px}.fab-list small{display:block;color:var(--grey);font-size:13px}
.fab-ic{width:40px;height:40px;border-radius:12px;display:grid;place-items:center;flex:none;color:#fff;background:var(--g-btn)}
.fab-list li:nth-child(2) .fab-ic{background:linear-gradient(135deg,#1fbf63,#0b8f4a)}
.fab-list li:nth-child(3) .fab-ic{background:linear-gradient(135deg,#6c34f0,#ff17e9)}
.fab-list li:nth-child(4) .fab-ic{background:linear-gradient(135deg,#0019ff,#00a3ff)}
.fab-list li:nth-child(5) .fab-ic{background:linear-gradient(135deg,#ff17e9,#ff7a59)}
.fab-ic .ui-i path,.fab-ic .ui-i circle,.fab-ic .ui-i rect{stroke-dasharray:1;stroke-dashoffset:1;animation:draw .7s var(--ease) forwards;animation-delay:calc(var(--d,0)*80ms + 120ms)}
@keyframes draw{to{stroke-dashoffset:0}}
.tel-pick{display:flex;align-items:center;gap:8px;margin-top:8px;padding:10px 12px;background:var(--ink);color:#fff;border-radius:14px;font-size:14px}
.tel-pick[hidden]{display:none}.tel-pick span{flex:1}
.tel-pick a,.tel-pick button{color:#fff;background:rgba(255,255,255,.12);border:0;border-radius:100px;padding:8px 12px;font:inherit;text-decoration:none;cursor:pointer}
.tel-pick a:hover,.tel-pick button:hover{background:rgba(255,255,255,.25)}
.quick.over-ftr .fab:not(.open){opacity:0;visibility:hidden;transform:translateY(20px)}
.notice{position:fixed;left:50%;bottom:20px;transform:translateX(-50%);z-index:70;background:#fff;border:1px solid var(--mist);border-radius:100px;padding:8px 8px 8px 20px;display:flex;align-items:center;gap:16px;font-size:14px;box-shadow:rgba(7,10,46,.12) 0 8px 30px;max-width:calc(100% - 180px)}
.notice[hidden]{display:none}

/* opening animation — a squeegee wipes the screen clean */
.intro{display:none}
html.intro-on .intro{display:block;position:fixed;inset:0;z-index:300;pointer-events:none;animation:intro-off .01s linear 1.95s forwards}
.intro-bg{position:absolute;inset:0;display:grid;place-items:center;background:radial-gradient(120% 90% at 30% 20%,#2a1a8f 0%,#0b0d3a 45%,#070a2e 100%);animation:wipe .78s cubic-bezier(.65,0,.35,1) 1s forwards}
.intro-bg>*{grid-area:1/1}
.intro-glow{position:absolute;width:70vmin;height:70vmin;border-radius:50%;background:radial-gradient(circle,rgba(140,82,255,.55),rgba(255,23,233,.18) 45%,transparent 70%);filter:blur(20px);animation:glow 1.4s ease-out both}
.intro-bg img{position:relative;width:min(300px,58vw);height:auto;animation:logo-in .75s cubic-bezier(.2,.9,.2,1.15) .08s both;filter:drop-shadow(0 20px 40px rgba(0,0,0,.45))}
.intro-glint{position:relative;width:min(300px,58vw);height:min(180px,35vw);overflow:hidden;-webkit-mask:url("/assets/logo-full.png") center/contain no-repeat;mask:url("/assets/logo-full.png") center/contain no-repeat}
.intro-glint::after{content:"";position:absolute;inset:-20% auto -20% -40%;width:35%;background:linear-gradient(100deg,transparent,rgba(255,255,255,.95),transparent);transform:skewX(-18deg);animation:glint .6s ease-in-out .62s both}
.intro-drops{position:absolute!important;inset:0}.intro-drops i{position:absolute;width:6px;height:6px;border-radius:50%;background:rgba(255,255,255,.75);box-shadow:0 0 10px rgba(140,82,255,.9);opacity:0;animation:drop 1s ease-out both}
.intro-drops i:nth-child(1){left:22%;top:30%;animation-delay:.35s}.intro-drops i:nth-child(2){left:74%;top:26%;animation-delay:.48s}.intro-drops i:nth-child(3){left:66%;top:72%;animation-delay:.42s}.intro-drops i:nth-child(4){left:30%;top:68%;animation-delay:.55s}.intro-drops i:nth-child(5){left:50%;top:16%;animation-delay:.6s}
.intro-blade{position:absolute;top:-10%;bottom:-10%;left:0;width:14px;transform:translateX(-140px) rotate(6deg);animation:blade .78s cubic-bezier(.65,0,.35,1) 1s forwards}
.intro-blade b{position:absolute;inset:0;border-radius:8px;background:linear-gradient(180deg,#fff,#e9e4ff 50%,#fff);box-shadow:0 0 30px 8px rgba(140,82,255,.6),-40px 0 60px rgba(255,23,233,.35)}
.intro-blade::before{content:"";position:absolute;top:0;bottom:0;right:100%;width:120px;background:linear-gradient(90deg,transparent,rgba(255,255,255,.35));filter:blur(6px)}
@keyframes wipe{from{clip-path:inset(0 0 0 0)}to{clip-path:inset(0 0 0 100%)}}
@keyframes blade{from{transform:translateX(-140px) rotate(6deg)}to{transform:translateX(calc(100vw + 60px)) rotate(6deg)}}
@keyframes logo-in{from{opacity:0;transform:scale(.82) translateY(14px);filter:blur(10px)}to{opacity:1;transform:none;filter:drop-shadow(0 20px 40px rgba(0,0,0,.45))}}
@keyframes glint{from{left:-40%}to{left:120%}}
@keyframes glow{from{opacity:0;transform:scale(.6)}to{opacity:1;transform:none}}
@keyframes drop{0%{opacity:0;transform:scale(0)}30%{opacity:1;transform:scale(1)}100%{opacity:0;transform:translateY(24px) scale(.6)}}
@keyframes intro-off{to{visibility:hidden}}
html.intro-on .hero-copy>*,html.intro-on .hero-card{animation:hero-up .9s cubic-bezier(.2,.7,.2,1) both;animation-delay:calc(1.25s + var(--hd,0s))}
html.intro-on .hero-copy>:nth-child(2){--hd:.08s}html.intro-on .hero-copy>:nth-child(3){--hd:.16s}html.intro-on .hero-copy>:nth-child(4){--hd:.24s}html.intro-on .hero-copy>:nth-child(5){--hd:.32s}html.intro-on .hero-copy>:nth-child(6){--hd:.4s}html.intro-on .hero-card{--hd:.3s}
@keyframes hero-up{from{opacity:0;transform:translateY(30px)}}

/* responsive */
@media (max-width:1080px){
 .nav{position:fixed;inset:69px 0 auto 0;background:#fff;flex-direction:column;gap:0;padding:8px 24px 24px;border-bottom:1px solid var(--mist);transform:translateY(-120%);transition:transform .3s var(--ease);z-index:-1}
 .nav.open{transform:none;box-shadow:rgba(0,0,0,.15) 0 12px 60px 0}
 .nav a{font-size:22px;padding:14px 0;border-radius:0;border-bottom:1px solid var(--mist)}
 .nav a:hover{background:none}
 .nav a[aria-current]{color:var(--violet-d)}.nav a[aria-current]::after{display:none}
 .nav-quote{display:block;margin-top:16px;background:var(--g-btn);color:#fff;border-radius:64px;text-align:center;border:0!important}
 .menu{display:flex}
 .hide-sm{display:none}
 .cards.scroll{grid-template-columns:repeat(2,1fr)}
 .svc-grid{grid-template-columns:repeat(2,1fr)}
 .ftr-top{grid-template-columns:1fr 1fr}
}
@media (max-width:820px){
 :root{--gap:64px}
 .wrap{padding:0 16px}
 .hero{padding:40px 0 48px}
 .hero-in,.split,.split.q{grid-template-columns:1fr;gap:32px}
 .hero-card{border-radius:28px;padding:26px}
 .hc-t{font-size:28px}
 .stats{padding:56px 0}
 .stats-in{grid-template-columns:1fr 1fr;row-gap:40px}
 .steps{grid-template-columns:1fr}.steps::before{display:none}
 .posts{grid-template-columns:1fr}
 .svc-grid{grid-template-columns:1fr}
 .two{grid-template-columns:1fr;gap:0}
 .panel.sticky{position:static}
 .cards.scroll{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;margin:16px -16px 0;padding:0 16px 8px}
 .cards.scroll .card{flex:0 0 82%;scroll-snap-align:start}
 .notice{bottom:88px;max-width:calc(100% - 32px);border-radius:20px}
 .trust .tag{min-width:108px}
 .cols{columns:1}
 .hdr-act .btn.sm{padding:10px 14px}
 .totop{left:14px;bottom:14px;width:52px;height:52px}
 .fab{right:14px;bottom:14px}
 .fab-btn{height:52px;padding-right:18px}
 .pc-row input{font-size:16px}
 .roll{min-width:6.5em}
}
@media (max-width:420px){.ftr-top{grid-template-columns:1fr}.logo img{height:42px}.fab-roll{min-width:6.2em}}
@media (prefers-reduced-motion:reduce){
 *,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}
 .aurora i{animation:none}.mq-track{animation:none}
 .js [data-reveal]{opacity:1;transform:none}
}
