*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{background:#08090e;min-width:320px;min-height:100vh;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}#root{width:100%}button{cursor:pointer}a{text-decoration:none}.hero-grid{background-image:linear-gradient(rgba(109,40,217,.06) 1px,transparent 1px),linear-gradient(90deg,rgba(109,40,217,.06) 1px,transparent 1px);background-size:80px 80px}.v2-grid{background-image:linear-gradient(rgba(14,165,233,.04) 1px,transparent 1px),linear-gradient(90deg,rgba(14,165,233,.04) 1px,transparent 1px);background-size:80px 80px}.v3-dots{background-image:radial-gradient(rgba(109,40,217,.12) 1px,transparent 1px);background-size:36px 36px}.v5-grid{background-image:linear-gradient(rgba(16,185,129,.04) 1px,transparent 1px),linear-gradient(90deg,rgba(16,185,129,.04) 1px,transparent 1px);background-size:60px 60px}@keyframes fadeInUp{0%{opacity:0;transform:translateY(28px)}to{opacity:1;transform:translateY(0)}}.fade-in-up{opacity:0;animation:fadeInUp .9s cubic-bezier(.16,1,.3,1) forwards}.reveal{opacity:0;transform:translateY(32px);transition:opacity .85s cubic-bezier(.16,1,.3,1),transform .85s cubic-bezier(.16,1,.3,1)}.reveal.in-view{opacity:1;transform:translateY(0)}.reveal-left{opacity:0;transform:translate(-28px);transition:opacity .85s cubic-bezier(.16,1,.3,1),transform .85s cubic-bezier(.16,1,.3,1)}.reveal-left.in-view{opacity:1;transform:translate(0)}.reveal-fade{opacity:0;transition:opacity 1s cubic-bezier(.16,1,.3,1)}.reveal-fade.in-view{opacity:1}.reveal-right{opacity:0;transform:translate(28px);transition:opacity .85s cubic-bezier(.16,1,.3,1),transform .85s cubic-bezier(.16,1,.3,1)}.reveal-right.in-view{opacity:1;transform:translate(0)}.card-lift{transition:transform .3s cubic-bezier(.16,1,.3,1),box-shadow .3s ease}.card-lift:hover{transform:translateY(-5px)}.expertise-item{transition:padding-left .3s cubic-bezier(.16,1,.3,1)}.expertise-item:hover{padding-left:18px}.v3-diagonal{clip-path:polygon(12% 0,100% 0,100% 100%,0% 100%)}@keyframes scrollLine{0%{transform:scaleY(0);transform-origin:top;opacity:0}50%{transform:scaleY(1);transform-origin:top;opacity:1}to{transform:scaleY(1);transform-origin:bottom;opacity:0}}.scroll-line{animation:scrollLine 2s ease-in-out infinite}@keyframes blink{0%,to{opacity:.9}50%{opacity:.2}}@keyframes cursor{0%,to{opacity:1}50%{opacity:0}}.cursor{animation:cursor 1.1s step-end infinite}
