
:root{color-scheme:dark;--bg:#000;--tx:#eef4ff;--mu:#93a4bd;--ac:#4aa8ff;--pk:#ff4d8d;--ok:#4ade9c;--wa:#ffb454;--bad:#ff5d6c;--gl:rgba(255,255,255,.06);--ln:rgba(255,255,255,.12);box-sizing:border-box;padding-bottom:env(safe-area-inset-bottom,0px)}
*{box-sizing:border-box}html{scroll-behavior:smooth}
body{margin:0;background:var(--bg);color:var(--tx);font:16px/1.65 Inter,system-ui,sans-serif;overflow-x:hidden}
h1,h2,h3{font-family:Sora,system-ui,sans-serif;margin:0;line-height:1.05}
a{color:inherit;text-decoration:none}
:focus-visible{outline:2px solid var(--ac);outline-offset:3px;border-radius:8px}
#c{position:fixed;inset:0;width:100%;height:100%;z-index:0}
#bar{position:fixed;top:0;left:0;height:2px;width:0;background:linear-gradient(90deg,var(--ac),var(--pk));z-index:9}
nav{position:fixed;top:calc(env(safe-area-inset-top,0px) + 14px);left:50%;transform:translateX(-50%);z-index:8;display:flex;align-items:center;gap:6px;padding:7px 8px 7px 18px;border-radius:99px;background:rgba(10,14,22,.55);backdrop-filter:blur(16px);border:1px solid var(--ln);max-width:calc(100% - 24px)}
.logo{font:800 16px Sora,sans-serif;display:flex;gap:8px;align-items:center;margin-right:10px}
.logo i{width:16px;height:19px;background:linear-gradient(var(--ac),var(--pk));clip-path:polygon(50% 0,100% 18%,100% 58%,50% 100%,0 58%,0 18%)}
nav a.l{color:var(--mu);font-size:14px;padding:6px 11px;border-radius:99px;transition:.25s}
nav a.l:hover{color:var(--tx);background:var(--gl)}
@media(max-width:700px){nav a.l{display:none}}
.btn{display:inline-block;padding:11px 22px;border-radius:99px;font:600 14.5px Sora,sans-serif;border:1px solid var(--ln);background:var(--gl);color:var(--tx);cursor:pointer;transition:transform .25s,box-shadow .25s,background .25s}
.btn:hover{transform:translateY(-2px) scale(1.03);background:rgba(255,255,255,.12)}
.btn.p{background:linear-gradient(120deg,var(--ac),#7a6bff 55%,var(--pk));border-color:transparent;color:#fff;box-shadow:0 10px 34px rgba(90,110,255,.35)}
.btn.p:hover{box-shadow:0 14px 46px rgba(255,77,141,.45)}
main{position:relative;z-index:1}
.wrap{max-width:1120px;margin:0 auto;padding:0 22px}
.scene{min-height:112vh;display:flex;align-items:center}
.scene .t{max-width:520px}
.scene h1{font-size:clamp(40px,6.4vw,76px);font-weight:800;letter-spacing:-.035em}
.scene h2{font-size:clamp(34px,5vw,58px);font-weight:800;letter-spacing:-.03em}
.scene p{color:var(--mu);font-size:18px;margin:20px 0 28px;max-width:44ch;opacity:0;transform:translateY(16px);transition:1s .5s}
.scene .cta{display:flex;gap:12px;flex-wrap:wrap;opacity:0;transform:translateY(16px);transition:1s .7s}
.scene.in p,.scene.in .cta{opacity:1;transform:none}
.w{display:inline-block;opacity:0;filter:blur(12px);transform:translateY(24px);transition:opacity .9s,filter .9s,transform .9s}
.scene.in .w{opacity:1;filter:none;transform:none}
.chips{display:flex;gap:10px;flex-wrap:wrap;margin-top:34px;opacity:0;transition:1s 1s}
.scene.in .chips{opacity:1}
.chips span{font-size:13.5px;padding:7px 14px;border-radius:99px;border:1px solid var(--ln);background:var(--gl);backdrop-filter:blur(8px);color:var(--mu)}
@media(max-width:860px){.scene{align-items:flex-end;padding-bottom:9vh}.scene .t{background:linear-gradient(transparent,rgba(0,0,0,.7) 25%);padding:60px 0 0}}
.after{background:linear-gradient(rgba(0,0,0,0),rgba(0,0,0,.86) 240px);backdrop-filter:blur(3px);padding-top:120px}
section{padding:70px 0}
h2.sec{font-size:clamp(30px,4.4vw,48px);font-weight:800;letter-spacing:-.03em}
.sub{color:var(--mu);margin:12px 0 38px;max-width:58ch}
.rv{opacity:0;transform:translateY(30px);transition:opacity .9s,transform .9s}.rv.show{opacity:1;transform:none}
.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
@media(max-width:860px){.cards{grid-template-columns:1fr}}
.card{perspective:1100px;height:310px;cursor:pointer}
.in2{position:relative;height:100%;transform-style:preserve-3d;transition:transform .8s cubic-bezier(.2,.8,.2,1)}
.card.flip .in2{transform:rotateY(180deg)}
.face{position:absolute;inset:0;backface-visibility:hidden;border-radius:22px;padding:26px;display:flex;flex-direction:column;border:1px solid var(--ln);background:linear-gradient(160deg,rgba(255,255,255,.09),rgba(255,255,255,.02));backdrop-filter:blur(10px);overflow:hidden}
.face:before{content:"";position:absolute;width:220px;height:220px;right:-70px;top:-70px;border-radius:50%;background:radial-gradient(var(--g,rgba(74,168,255,.5)),transparent 70%)}
.back{transform:rotateY(180deg)}
.face h3{font-size:24px;margin:18px 0 8px}.face p{color:var(--mu);margin:0;font-size:15px}
.tag{align-self:flex-start;font:600 12px Sora,sans-serif;padding:4px 11px;border-radius:99px;border:1px solid currentColor;position:relative}
.face .go{margin-top:auto;color:var(--ac);font:600 14px Sora,sans-serif;position:relative}
.face>*{position:relative}
.back ul{margin:14px 0 0;padding-left:18px;color:var(--mu)}
.ico{font-size:34px}
.scan{background:rgba(10,14,22,.6);backdrop-filter:blur(14px);border:1px solid var(--ln);border-radius:24px;padding:26px;display:grid;grid-template-columns:1fr 1fr;gap:28px;align-items:center}
@media(max-width:800px){.scan{grid-template-columns:1fr}}
.file{display:flex;justify-content:space-between;background:rgba(255,255,255,.06);border-radius:14px;padding:14px 16px;position:relative;overflow:hidden;font-weight:500}
.file small{color:var(--mu)}
.file:after{content:"";position:absolute;top:0;bottom:0;width:70px;left:-90px;background:linear-gradient(90deg,transparent,rgba(74,168,255,.4),transparent)}
.run .file:after{animation:sw 1.3s linear infinite}@keyframes sw{to{left:110%}}
.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin:16px 0}
.steps span{font:600 12.5px Sora,sans-serif;text-align:center;padding:9px 2px;border-radius:10px;border:1px solid var(--ln);color:var(--mu);transition:.3s}
.steps span.on{color:#fff;border-color:var(--ac);background:rgba(74,168,255,.18)}
.verdict{display:flex;align-items:center;gap:16px;min-height:80px}
.ring{--c:var(--mu);--v:0;width:76px;height:76px;border-radius:50%;background:conic-gradient(var(--c) calc(var(--v)*1%),rgba(255,255,255,.08) 0);display:grid;place-items:center;transition:.6s;flex:none}
.ring b{width:60px;height:60px;border-radius:50%;background:#070a10;display:grid;place-items:center;font:800 20px Sora,sans-serif}
.verdict strong{font:800 22px Sora,sans-serif}.verdict p{margin:2px 0 0;color:var(--mu);font-size:14px}
.row{display:flex;flex-wrap:wrap;gap:10px}
.note{font-size:13px;color:var(--mu);margin:12px 0 0}
.trust{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
@media(max-width:800px){.trust{grid-template-columns:1fr 1fr}}
.trust div{padding:22px;border-radius:18px;border:1px solid var(--ln);background:var(--gl);transition:transform .3s,border-color .3s}
.trust div:hover{transform:translateY(-5px);border-color:var(--ac)}
.trust b{display:block;font:600 17px Sora,sans-serif;margin-bottom:6px}.trust span{color:var(--mu);font-size:14.5px}
.two{display:grid;grid-template-columns:1fr 1fr;gap:20px}@media(max-width:800px){.two{grid-template-columns:1fr}}
.panel{padding:28px;border-radius:22px;border:1px solid var(--ln);background:var(--gl);transition:transform .3s,border-color .3s}
.panel:hover{transform:translateY(-5px);border-color:var(--pk)}
.panel h3{font-size:22px;margin-bottom:8px}.panel p{color:var(--mu);margin:0 0 18px}
footer{position:relative;z-index:1;background:#000;border-top:1px solid var(--ln);padding:34px 0 46px;color:var(--mu);font-size:14px}
.fl{display:flex;flex-wrap:wrap;gap:8px 20px;margin-top:14px}.fl a:hover{color:var(--tx)}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}.w,.scene p,.scene .cta,.chips,.rv{opacity:1;filter:none;transform:none}}

/* Geometry retained from 3D Lab. */
.stage{display:flex;flex-direction:column;align-items:center;gap:26px}
.scene3d{--s:clamp(190px,30vw,290px);width:var(--s);height:var(--s);margin:70px 0 60px;perspective:1000px;position:relative}
.tilt{width:100%;height:100%;transform-style:preserve-3d;transition:transform .2s}
.cube{--c:var(--ic);width:100%;height:100%;position:relative;transform-style:preserve-3d;animation:cs 28s linear infinite}
@keyframes cs{from{transform:rotateX(-22deg) rotateY(0)}to{transform:rotateX(-22deg) rotateY(360deg)}}
.f{position:absolute;inset:0;border:1.5px solid var(--c);background:color-mix(in srgb,var(--c) 7%,rgba(5,7,13,.5));box-shadow:inset 0 0 44px color-mix(in srgb,var(--c) 30%,transparent);font:400 10.5px/1.5 "JetBrains Mono",monospace;color:color-mix(in srgb,var(--c) 75%,transparent);padding:10px;overflow:hidden;transition:border-color .5s,box-shadow .5s,color .5s;white-space:pre}
.inc .f{border-style:dashed}
.f:nth-child(1){transform:translateZ(calc(var(--s)/2))}.f:nth-child(2){transform:rotateY(90deg) translateZ(calc(var(--s)/2))}.f:nth-child(3){transform:rotateY(180deg) translateZ(calc(var(--s)/2))}.f:nth-child(4){transform:rotateY(-90deg) translateZ(calc(var(--s)/2))}.f:nth-child(5){transform:rotateX(90deg) translateZ(calc(var(--s)/2))}.f:nth-child(6){transform:rotateX(-90deg) translateZ(calc(var(--s)/2))}
.core{position:absolute;left:50%;top:50%;width:46%;height:46%;margin:-23% 0 0 -23%;border-radius:50%;background:radial-gradient(var(--c),transparent 68%);opacity:.55;animation:pu 2.4s ease-in-out infinite;transition:.5s}
@keyframes pu{50%{transform:scale(1.25);opacity:.85}}
.laser{position:absolute;inset:-9%;border:2px solid var(--c);background:linear-gradient(color-mix(in srgb,var(--c) 30%,transparent),transparent);box-shadow:0 0 34px var(--c);opacity:0;transform:rotateX(90deg) translateZ(calc(var(--s)*-.55))}
.run .laser{opacity:1;animation:lz 1.1s ease-in-out infinite alternate}
@keyframes lz{from{transform:rotateX(90deg) translateZ(calc(var(--s)*-.55))}to{transform:rotateX(90deg) translateZ(calc(var(--s)*.55))}}
.node{position:absolute;left:50%;top:50%;width:14px;height:14px;margin:-7px;border-radius:50%;background:var(--bad);box-shadow:0 0 22px var(--bad);opacity:0;transition:opacity .4s}
.show .node{opacity:1;animation:pu 1.2s infinite}
.ring{position:absolute;left:50%;top:50%;width:170%;height:170%;margin:-85% 0 0 -85%;border:1px solid rgba(255,166,61,.5);border-radius:50%;transform:rotateX(74deg);transform-style:preserve-3d;animation:rg 14s linear infinite}
.ring:after{content:"";position:absolute;left:50%;top:-6px;width:12px;height:12px;border-radius:50%;background:var(--am);box-shadow:0 0 20px var(--am)}
.ring.b{width:130%;height:130%;margin:-65% 0 0 -65%;border-color:rgba(143,208,255,.4);animation-duration:9s;animation-direction:reverse;transform:rotateX(74deg) rotateY(18deg)}.ring.b:after{background:var(--ic);box-shadow:0 0 20px var(--ic)}
@keyframes rg{to{transform:rotateX(74deg) rotateZ(360deg)}}
.vp{width:min(440px,100%);border:1px solid var(--ln);background:rgba(9,12,20,.7);backdrop-filter:blur(14px);border-radius:18px;padding:16px 18px}
.vrow{display:flex;gap:14px;align-items:center;margin-bottom:12px}
.rng{--c:var(--mu);--v:0;width:66px;height:66px;border-radius:50%;flex:none;background:conic-gradient(var(--c) calc(var(--v)*1%),rgba(255,255,255,.08) 0);display:grid;place-items:center;transition:.6s}
.rng b{width:52px;height:52px;border-radius:50%;background:#070a12;display:grid;place-items:center;font:800 18px Sora,sans-serif}
.vrow strong{font:800 20px Sora,sans-serif}.vrow p{margin:1px 0 0;color:var(--mu);font-size:13.5px}
.picks{display:flex;gap:8px;flex-wrap:wrap}
.note{font-size:12.5px;color:var(--mu);margin:10px 0 0}
/* marquee */
.mq{border-block:1px solid var(--ln);overflow:hidden;background:rgba(255,255,255,.02);position:relative;z-index:1}
.mq div{display:flex;gap:44px;width:max-content;padding:16px 0;animation:mq 34s linear infinite;color:var(--mu);font:600 14px Sora,sans-serif}
@keyframes mq{to{transform:translateX(-50%)}}
.mq span:before{content:"";display:inline-block;width:8px;height:8px;background:var(--am);border-radius:2px;margin-right:12px;transform:rotate(45deg)}
/* layers */
main{position:relative;z-index:1}
#layers{height:340vh;position:relative}
.sticky{position:sticky;top:0;height:100vh;display:grid;grid-template-columns:1fr 1fr;gap:30px;align-items:center;max-width:1140px;margin:0 auto;padding:0 22px}
@media(max-width:900px){.sticky{grid-template-columns:1fr;grid-template-rows:44vh 1fr;padding-top:70px}}
.stackbox{perspective:1300px;display:grid;place-items:center;height:100%}
.stack{--p:0;position:relative;width:min(360px,74vw);aspect-ratio:1.45;transform-style:preserve-3d;transform:rotateX(58deg) rotateZ(-32deg)}
.slab{position:absolute;inset:0;border-radius:16px;border:1.5px solid var(--c);background:linear-gradient(135deg,color-mix(in srgb,var(--c) 16%,rgba(8,11,20,.85)),rgba(8,11,20,.85));transform:translateZ(calc((var(--i) - 1.5)*(16px + var(--p)*84px)));filter:saturate(.5) brightness(.65);transition:filter .5s,box-shadow .5s}
.slab.act{filter:none;box-shadow:0 0 60px color-mix(in srgb,var(--c) 45%,transparent)}
.slab:before{content:"";position:absolute;left:16px;right:40%;top:48px;height:56px;background:repeating-linear-gradient(transparent 0 8px,color-mix(in srgb,var(--c) 45%,transparent) 8px 10px)}
.slab b{position:absolute;left:16px;top:14px;font:800 17px Sora,sans-serif;color:var(--c)}
.steps{display:grid;gap:8px}
.steps h2{font-size:clamp(30px,4vw,46px);font-weight:800;letter-spacing:-.03em;margin-bottom:14px}
.st{padding:14px 18px;border-left:2px solid var(--ln);opacity:.45;transition:.4s}
.st.act{opacity:1;border-color:var(--c);background:linear-gradient(90deg,color-mix(in srgb,var(--c) 12%,transparent),transparent)}
.st b{font:600 19px Sora,sans-serif;color:var(--c)}.st p{margin:4px 0 0;color:var(--mu);font-size:15.5px}
