:root{--bg:#03060f;--navy:#071433;--blue:#2f6bff;--cyan:#22e0ff;--violet:#8a5cff;--silver:#e4e9f3;--text:#aeb9ce;--line:rgba(150,185,255,.17);--glass:rgba(7,16,38,.62);--r:20px;--pt:env(safe-area-inset-top,0px);--pb:env(safe-area-inset-bottom,0px)}
*{box-sizing:border-box;margin:0}
html{scroll-behavior:smooth;scroll-padding-top:84px;-webkit-text-size-adjust:100%;color-scheme:dark}
body{background:var(--bg);color:var(--text);font:400 1rem/1.65 Manrope,system-ui,-apple-system,Segoe UI,Roboto,sans-serif;overflow-x:hidden;padding-bottom:var(--pb)}
h1,h2,h3,.brand{font-family:Sora,system-ui,sans-serif;color:var(--silver);line-height:1.12}
a{color:inherit}.skip{position:absolute;left:-999px;top:8px;background:#fff;color:#000;padding:8px 12px;z-index:200}.skip:focus{left:8px}
:focus-visible{outline:2px solid var(--cyan);outline-offset:3px;border-radius:6px}
.silver{background:linear-gradient(180deg,#fff 0%,#cdd5e6 45%,#8792ac 100%);-webkit-background-clip:text;background-clip:text;color:transparent}
.wrap{width:min(1140px,100% - 40px);margin-inline:auto}
#scene{position:fixed;inset:0;width:100%;height:100%;z-index:0;opacity:0;transition:opacity 1.6s;pointer-events:none}#scene.on{opacity:1}
.scene-fb{position:fixed;inset:0;z-index:0;display:none;pointer-events:none;background:radial-gradient(110% 70% at 70% 20%,#0b1c48,var(--bg) 65%)}body.fb .scene-fb{display:block}
.orb{position:absolute;right:6%;top:18%;width:min(50vw,420px);aspect-ratio:1;border-radius:50%;background:radial-gradient(circle at 35% 30%,#8aeaff,#2f6bff 40%,#150a40 75%);opacity:.7;animation:float 8s ease-in-out infinite}
.orb.o2{width:min(24vw,200px);right:auto;left:5%;top:auto;bottom:12%;background:radial-gradient(circle at 35% 30%,#c9b0ff,#8a5cff 45%,#120a30 80%);animation-delay:-3s}
@keyframes float{50%{transform:translateY(-22px)}}
main,.foot{position:relative;z-index:2}
body:before{content:"";position:fixed;inset:0;z-index:1;pointer-events:none;background:linear-gradient(90deg,rgba(3,6,15,.78),rgba(3,6,15,.15) 60%,transparent)}
/* loader */
#loader{position:fixed;inset:0;z-index:300;background:var(--bg);display:grid;place-content:center;justify-items:center;gap:18px;transition:opacity .7s,visibility .7s}#loader.done{opacity:0;visibility:hidden}
#loader .draw{stroke-dasharray:260;stroke-dashoffset:260;animation:draw 1.6s ease forwards}@keyframes draw{to{stroke-dashoffset:0}}
.lbar{width:180px;height:2px;background:var(--line);overflow:hidden;border-radius:2px}.lbar i{display:block;height:100%;width:40%;background:linear-gradient(90deg,var(--cyan),var(--violet));animation:ld 1.1s ease-in-out infinite}@keyframes ld{from{transform:translateX(-100%)}to{transform:translateX(260%)}}
#loader span{font-size:.85rem;letter-spacing:.08em;color:var(--text)}
/* nav */
.nav{position:fixed;z-index:100;top:calc(12px + var(--pt));left:50%;transform:translateX(-50%);width:min(1140px,100% - 24px);display:flex;align-items:center;justify-content:space-between;padding:8px 10px 8px 18px;border:1px solid var(--line);border-radius:999px;background:rgba(5,10,24,.7);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px)}
.brand{display:flex;align-items:center;gap:10px;text-decoration:none;font-weight:600;font-size:.98rem;letter-spacing:.04em}.brand b{font-weight:600;color:var(--cyan);margin-left:6px}
.menu{display:none}.menu a:not(.btn){text-decoration:none;padding:8px 14px;border-radius:99px;font-size:.92rem;transition:.2s}.menu a.act,.menu a:not(.btn):hover{color:#fff;background:rgba(34,224,255,.12)}
.burger{background:none;border:0;width:44px;height:44px;display:grid;place-content:center;gap:7px;cursor:pointer}.burger i{display:block;width:22px;height:2px;background:var(--silver);transition:transform .25s}
.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)}
.menu.open{display:flex;position:fixed;inset:0;z-index:-1;flex-direction:column;justify-content:center;align-items:center;gap:18px;background:rgba(3,6,15,.96);padding:80px 24px}.menu.open a:not(.btn){font:600 1.5rem Sora,sans-serif}
/* buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;min-height:50px;padding:0 28px;border-radius:999px;border:1px solid transparent;font:600 .92rem Sora,sans-serif;color:#021019;background:linear-gradient(120deg,var(--cyan),var(--blue));text-decoration:none;cursor:pointer;transition:transform .2s,box-shadow .2s;box-shadow:0 10px 30px -12px var(--cyan)}
.btn:hover{transform:translateY(-2px);box-shadow:0 16px 36px -10px var(--cyan)}.btn-ghost{background:rgba(255,255,255,.03);color:var(--silver);border-color:rgba(190,210,255,.35);box-shadow:none}.btn-ghost:hover{border-color:var(--cyan);box-shadow:none}
.btn-sm{min-height:40px;padding:0 20px;font-size:.85rem}.btn[hidden]{display:none}
.cta-row{display:flex;flex-wrap:wrap;gap:14px;margin-top:30px}.cta-row.center{justify-content:center}.cta-row.col{flex-direction:column;align-items:flex-start}
/* layout */
.hero{min-height:100svh;display:flex;align-items:flex-end;padding:120px 0 calc(70px + var(--pb))}
.hero-copy{width:min(1140px,100% - 40px);margin-inline:auto}
.hero h1{font-size:clamp(2.4rem,8.4vw,5.6rem);max-width:12ch;letter-spacing:-.015em;text-shadow:0 0 60px rgba(34,224,255,.15)}
.hero p{max-width:50ch;margin-top:22px;font-size:clamp(1rem,2.2vw,1.2rem);color:#c4cee3}
.scroll-hint{position:absolute;left:50%;bottom:calc(18px + var(--pb));width:22px;height:36px;border:1.5px solid var(--line);border-radius:12px;display:none}.scroll-hint i{position:absolute;left:50%;top:7px;width:3px;height:7px;margin-left:-1.5px;border-radius:2px;background:var(--cyan);animation:sc 1.8s infinite}@keyframes sc{60%{transform:translateY(12px);opacity:0}}
.sec{padding:clamp(80px,12vw,150px) 0}
h2{font-size:clamp(1.9rem,5vw,3.3rem);margin-bottom:30px;max-width:19ch}h3{font-size:1.2rem;margin-bottom:10px}
.lead{max-width:58ch;margin:-8px 0 34px;font-size:1.05rem}.sol-head{padding-top:clamp(60px,9vw,120px)}.sol-head .lead{margin-bottom:0}
.glass{background:var(--glass);border:1px solid var(--line);border-radius:var(--r);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);padding:26px}
.grid4{display:grid;gap:16px;grid-template-columns:1fr}.split{display:grid;gap:36px;grid-template-columns:1fr}
/* service sections */
.svc{padding:clamp(40px,7vw,90px) 0;min-height:70vh;display:flex;align-items:center}
.svc-in{display:grid;gap:26px;grid-template-columns:1fr;align-items:center}
.vis{height:260px;display:grid;place-items:center;perspective:760px;position:relative}
.txt ul{list-style:none;padding:0;margin:14px 0 22px;display:grid;gap:7px;font-size:.95rem}.txt li{padding-left:22px;position:relative}.txt li:before{content:"";position:absolute;left:0;top:.62em;width:9px;height:2px;background:var(--cyan);box-shadow:0 0 8px var(--cyan)}
/* 3D visuals (CSS) */
.vis>*{transform-style:preserve-3d}
.rings{width:150px;height:150px;position:relative}.rings i{position:absolute;inset:0;border:2px solid var(--cyan);border-radius:50%;animation:rot 7s linear infinite;box-shadow:0 0 18px rgba(34,224,255,.3)}
.rings i:nth-child(2){inset:22px;border-color:var(--blue);animation-duration:10s}.rings i:nth-child(3){inset:44px;border-color:var(--violet);animation-duration:13s}
.core{position:absolute;inset:60px;border-radius:50%;background:radial-gradient(circle at 30% 30%,#fff,var(--cyan) 40%,var(--blue));box-shadow:0 0 30px var(--cyan)}
@keyframes rot{from{transform:rotateX(70deg) rotateZ(0)}to{transform:rotateX(70deg) rotateZ(360deg)}}
.bubs{width:200px;height:170px;position:relative;transform:rotateY(-28deg) rotateX(12deg)}.bubs i{position:absolute;height:46px;border-radius:16px;border:1px solid var(--cyan);background:rgba(34,224,255,.1);animation:bob 4s ease-in-out infinite}
.bubs i:nth-child(1){width:150px;top:0;left:0;transform:translateZ(0)}.bubs i:nth-child(2){width:120px;top:62px;right:0;transform:translateZ(40px);border-color:var(--violet);background:rgba(138,92,255,.14);animation-delay:-1.3s}.bubs i:nth-child(3){width:90px;top:124px;left:20px;transform:translateZ(80px);border-color:var(--blue);animation-delay:-2.6s}
@keyframes bob{50%{margin-top:-10px}}
.film{width:210px;height:130px;position:relative;transform:rotateX(55deg) rotateZ(-28deg);animation:sway 7s ease-in-out infinite}
.film span{position:absolute;left:0;height:22px;border-radius:5px;background:linear-gradient(90deg,var(--blue),var(--cyan));box-shadow:0 0 14px rgba(34,224,255,.3)}.film span:nth-child(1){top:0;width:150px}.film span:nth-child(2){top:34px;left:40px;width:130px;background:linear-gradient(90deg,var(--violet),var(--blue))}.film span:nth-child(3){top:68px;width:90px;left:80px}
.film em{position:absolute;right:-6px;top:20px;width:56px;height:70px;background:#fff;clip-path:polygon(0 0,100% 50%,0 100%);transform:translateZ(60px);filter:drop-shadow(0 0 12px var(--cyan))}
@keyframes sway{50%{transform:rotateX(55deg) rotateZ(-10deg)}}
.shapes{width:190px;height:150px;position:relative;animation:sway2 9s ease-in-out infinite}.shapes i{position:absolute;width:90px;height:90px}
.shapes i:nth-child(1){left:0;top:10px;border-radius:50%;background:rgba(34,224,255,.35);border:2px solid var(--cyan);transform:translateZ(0)}.shapes i:nth-child(2){left:50px;top:40px;background:rgba(138,92,255,.4);border:2px solid var(--violet);transform:translateZ(40px) rotate(20deg)}.shapes i:nth-child(3){left:96px;top:0;background:rgba(47,107,255,.5);clip-path:polygon(50% 0,100% 100%,0 100%);transform:translateZ(80px)}
@keyframes sway2{0%,100%{transform:rotateY(-30deg) rotateX(12deg)}50%{transform:rotateY(30deg) rotateX(-6deg)}}
.wins{width:190px;height:130px;position:relative;transform:rotateX(58deg) rotateZ(-34deg);animation:sway 8s ease-in-out infinite}
.wins i{position:absolute;inset:0;border:1.5px solid var(--cyan);border-radius:10px;background:linear-gradient(rgba(34,224,255,.2) 0 14px,rgba(8,20,50,.6) 14px)}.wins i:nth-child(2){transform:translateZ(34px);border-color:var(--blue)}.wins i:nth-child(3){transform:translateZ(68px);border-color:var(--violet)}
.bars{width:190px;height:150px;display:flex;align-items:flex-end;gap:12px;animation:sway2 9s ease-in-out infinite}.bars i{flex:1;border-radius:4px 4px 0 0;background:linear-gradient(var(--cyan),var(--blue));box-shadow:0 0 16px rgba(34,224,255,.3);transform-origin:bottom;animation:grow 3s ease-in-out infinite alternate}
.bars i:nth-child(1){height:40%}.bars i:nth-child(2){height:58%;animation-delay:-.4s}.bars i:nth-child(3){height:48%;animation-delay:-.8s}.bars i:nth-child(4){height:78%;animation-delay:-1.2s}.bars i:nth-child(5){height:100%;animation-delay:-1.6s;background:linear-gradient(var(--violet),var(--blue))}@keyframes grow{to{transform:scaleY(.72)}}
.orbits{width:170px;height:170px;position:relative;transform:rotateX(62deg)}.orbits i{position:absolute;inset:0;border:1px dashed var(--line);border-radius:50%;animation:spinz 6s linear infinite}.orbits i:nth-child(2){inset:26px;animation-duration:9s;animation-direction:reverse}.orbits i:nth-child(3){inset:52px;animation-duration:12s}
.orbits i:after{content:"";position:absolute;left:50%;top:-6px;width:12px;height:12px;margin-left:-6px;border-radius:50%;background:var(--cyan);box-shadow:0 0 14px var(--cyan)}.orbits i:nth-child(2):after{background:var(--violet);box-shadow:0 0 14px var(--violet)}.orbits .core{inset:66px}
@keyframes spinz{to{transform:rotate(360deg)}}
.cube{position:absolute;width:110px;height:110px;animation:spin 16s linear infinite}.cube.b{width:50px;height:50px;animation-direction:reverse;animation-duration:10s}
.cube i{position:absolute;inset:0;border:1px solid var(--cyan);background:rgba(34,224,255,.07)}.cube.b i{border-color:var(--violet);background:rgba(138,92,255,.25)}
.cube.a i:nth-child(1){transform:translateZ(55px)}.cube.a i:nth-child(2){transform:rotateY(180deg) translateZ(55px)}.cube.a i:nth-child(3){transform:rotateY(90deg) translateZ(55px)}.cube.a i:nth-child(4){transform:rotateY(-90deg) translateZ(55px)}.cube.a i:nth-child(5){transform:rotateX(90deg) translateZ(55px)}.cube.a i:nth-child(6){transform:rotateX(-90deg) translateZ(55px)}
.cube.b i:nth-child(1){transform:translateZ(25px)}.cube.b i:nth-child(2){transform:rotateY(180deg) translateZ(25px)}.cube.b i:nth-child(3){transform:rotateY(90deg) translateZ(25px)}.cube.b i:nth-child(4){transform:rotateY(-90deg) translateZ(25px)}.cube.b i:nth-child(5){transform:rotateX(90deg) translateZ(25px)}.cube.b i:nth-child(6){transform:rotateX(-90deg) translateZ(25px)}
@keyframes spin{to{transform:rotateX(360deg) rotateY(360deg)}}
/* carousel */
.stage{perspective:1100px;height:310px;outline-offset:6px;touch-action:pan-y}.ring{position:relative;width:100%;height:100%;transform-style:preserve-3d;transition:transform .8s cubic-bezier(.2,.7,.2,1)}
.slide{position:absolute;left:50%;top:0;width:min(280px,74vw);height:270px;margin-left:calc(min(280px,74vw) / -2);display:flex;flex-direction:column;gap:8px;backface-visibility:hidden}.slide p{font-size:.92rem}
.tag{align-self:flex-start;font-size:.78rem;padding:3px 10px;border:1px solid var(--violet);border-radius:99px;color:#cdbdff}
/* form */
.formbox form{display:grid;gap:16px;grid-template-columns:1fr}label{display:grid;gap:6px;font-size:.9rem;color:var(--silver)}
input,select,textarea{width:100%;background:rgba(3,6,15,.75);border:1px solid var(--line);color:#fff;border-radius:12px;padding:13px 14px;font:inherit;font-size:16px;min-height:48px}
textarea{resize:vertical;min-height:110px}input:focus,select:focus,textarea:focus{border-color:var(--cyan);outline:none;box-shadow:0 0 0 3px rgba(34,224,255,.2)}
small{color:#ff8fa3;font-size:.82rem}.note{font-size:.82rem}.err{color:#ff8fa3}.hp{position:absolute;left:-9999px;height:0;overflow:hidden}.ok{text-align:center;padding:30px 0}.ok h3{font-size:1.5rem;color:var(--cyan)}
.foot{border-top:1px solid var(--line);padding:56px 0 calc(28px + var(--pb));background:rgba(2,4,10,.92)}.fgrid{display:grid;gap:30px}.fgrid nav{display:grid;gap:8px;align-content:start}.fgrid a{text-decoration:none}.fgrid nav a:hover{color:var(--cyan)}.foot p{margin-top:12px}.copy{text-align:center;font-size:.85rem;margin-top:40px!important;color:#6c7893}
.fade-cover{position:fixed;inset:0;background:var(--bg);z-index:250;pointer-events:none;opacity:0;transition:opacity .35s}.fade-cover.show{opacity:1;pointer-events:all}.cursor{display:none}
.legal{padding:120px 0 80px;position:relative;z-index:2}.legal h1{font-size:clamp(2rem,5vw,3rem);margin-bottom:20px}.legal h2{font-size:1.3rem;margin:28px 0 8px}.legal p,.legal li{max-width:70ch;margin-bottom:10px}
@media(min-width:760px){.grid4{grid-template-columns:repeat(2,1fr)}.split{grid-template-columns:1fr 1.1fr;gap:56px;align-items:start}.formbox form{grid-template-columns:1fr 1fr}.full{grid-column:1/-1}.fgrid{grid-template-columns:2fr 1fr 1fr}
 .svc-in{grid-template-columns:1fr 1fr;gap:48px}.svc-in.rev .vis{order:2}.vis{height:340px}.scroll-hint{display:block}.stage{height:330px}.slide{height:280px}}
@media(min-width:1000px){.menu{display:flex;align-items:center;gap:4px}.burger{display:none}.grid4{grid-template-columns:repeat(4,1fr)}.hero{align-items:center}}
@media(hover:hover) and (pointer:fine){body.cur,.cur a,.cur button,.cur select{cursor:none}.cursor{display:block;position:fixed;left:0;top:0;width:34px;height:34px;margin:-17px 0 0 -17px;border:1.5px solid var(--cyan);border-radius:50%;z-index:260;pointer-events:none;mix-blend-mode:screen;transition:width .2s,height .2s,margin .2s,background .2s}.cursor.big{width:60px;height:60px;margin:-30px 0 0 -30px;background:rgba(34,224,255,.12)}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}html{scroll-behavior:auto}}
