body{margin:0}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}*{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:#fff;color:#1a1a1a;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;line-height:1.6}.App{display:flex;flex-direction:column;min-height:100vh}.navbar{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#fffffff2;border-bottom:1px solid #e5e5e5;justify-content:space-between;left:0;padding:1rem 2rem;position:fixed;right:0;top:0;transition:all .3s ease;z-index:1000}.nav-left,.navbar{align-items:center;display:flex}.nav-left{gap:3rem}.nav-brand{color:#1a1a1a;font-size:1.5rem;font-weight:700;text-decoration:none}.nav-links{display:flex;gap:2rem}.nav-links a{color:#666;font-weight:500;text-decoration:none;transition:color .3s ease}.nav-links a:hover{color:#1a1a1a}.mobile-menu-toggle{background:none;border:none;cursor:pointer;display:none;flex-direction:column;gap:.25rem;padding:.5rem}.mobile-menu-toggle span{background-color:#1a1a1a;border-radius:2px;height:3px;transition:all .3s ease;width:25px}.main-content{flex:1 1}.hero{align-items:center;background:linear-gradient(135deg,#f8f9fa,#e9ecef);display:flex;justify-content:center;min-height:100vh;overflow:hidden;position:relative;text-align:center}.connection-lines{height:100%;left:0;pointer-events:none;position:absolute;top:0;width:100%;z-index:1}.animated-dots{bottom:0;left:0;position:absolute;right:0;top:0;z-index:2}.dot{border-radius:50%;opacity:.4;position:absolute}.dot-1{animation:randomFloat1 12s ease-in-out infinite;background:#00d4ff;height:8px;left:15%;top:10%;width:8px}.dot-2{animation:randomFloat2 15s ease-in-out infinite;background:#07f;height:12px;left:70%;top:25%;width:12px}.dot-3{animation:randomFloat3 18s ease-in-out infinite;background:#0f8;height:6px;left:30%;top:40%;width:6px}.dot-4{animation:randomFloat4 14s ease-in-out infinite;background:#7c3aed;height:10px;left:80%;top:60%;width:10px}.dot-5{animation:randomFloat5 16s ease-in-out infinite;background:#ff0080;height:8px;left:20%;top:75%;width:8px}.dot-6{animation:randomFloat6 13s ease-in-out infinite;background:#00d4ff;height:14px;left:85%;top:15%;width:14px}.dot-7{animation:randomFloat7 17s ease-in-out infinite;background:#22c55e;height:6px;left:10%;top:35%;width:6px}.dot-8{animation:randomFloat8 19s ease-in-out infinite;background:#07f;height:10px;left:60%;top:50%;width:10px}.dot-9{animation:randomFloat9 11s ease-in-out infinite;background:#ff6b35;height:8px;left:75%;top:80%;width:8px}.dot-10{animation:randomFloat10 20s ease-in-out infinite;background:#8b5cf6;height:12px;left:45%;top:20%;width:12px}.dot-11{animation:randomFloat11 14s ease-in-out infinite;background:#0f8;height:6px;left:5%;top:65%;width:6px}.dot-12{animation:randomFloat12 16s ease-in-out infinite;background:#06b6d4;height:10px;left:40%;top:85%;width:10px}.dot-13{animation:randomFloat13 18s ease-in-out infinite;background:#f59e0b;height:8px;left:90%;top:30%;width:8px}.dot-14{animation:randomFloat14 12s ease-in-out infinite;background:#07f;height:12px;left:50%;top:70%;width:12px}.dot-15{animation:randomFloat15 15s ease-in-out infinite;background:#ef4444;height:6px;left:65%;top:5%;width:6px}.dot-16{animation:randomFloat16 13s ease-in-out infinite;background:#7c3aed;height:9px;left:25%;top:45%;width:9px}.dot-17{animation:randomFloat17 17s ease-in-out infinite;background:#10b981;height:7px;left:85%;top:55%;width:7px}.dot-18{animation:randomFloat18 19s ease-in-out infinite;background:#00d4ff;height:11px;left:35%;top:12%;width:11px}.dot-19{animation:randomFloat19 14s ease-in-out infinite;background:#ff0080;height:8px;left:15%;top:88%;width:8px}.dot-20{animation:randomFloat20 16s ease-in-out infinite;background:#07f;height:10px;left:75%;top:32%;width:10px}.dot-21{animation:randomFloat21 18s ease-in-out infinite;background:#22c55e;height:6px;left:55%;top:78%;width:6px}.dot-22{animation:randomFloat22 12s ease-in-out infinite;background:#06b6d4;height:13px;left:8%;top:18%;width:13px}.dot-23{animation:randomFloat23 20s ease-in-out infinite;background:#8b5cf6;height:7px;left:92%;top:62%;width:7px}.dot-24{animation:randomFloat24 15s ease-in-out infinite;background:#f59e0b;height:9px;left:48%;top:8%;width:9px}.dot-25{animation:randomFloat25 11s ease-in-out infinite;background:#0f8;height:8px;left:68%;top:92%;width:8px}.dot-26{animation:randomFloat26 16s ease-in-out infinite;background:#07f;height:7px;left:12%;top:38%;width:7px}.dot-27{animation:randomFloat27 14s ease-in-out infinite;background:#ef4444;height:10px;left:28%;top:72%;width:10px}.dot-28{animation:randomFloat28 18s ease-in-out infinite;background:#7c3aed;height:6px;left:58%;top:22%;width:6px}.dot-29{animation:randomFloat29 13s ease-in-out infinite;background:#00d4ff;height:12px;left:18%;top:58%;width:12px}.dot-30{animation:randomFloat30 19s ease-in-out infinite;background:#10b981;height:8px;left:38%;top:95%;width:8px}.dot-31{animation:randomFloat31 12s ease-in-out infinite;background:#ff6b35;height:9px;left:78%;top:15%;width:9px}.dot-32{animation:randomFloat32 17s ease-in-out infinite;background:#8b5cf6;height:11px;left:88%;top:82%;width:11px}.dot-33{animation:randomFloat33 15s ease-in-out infinite;background:#06b6d4;height:7px;left:95%;top:48%;width:7px}.dot-34{animation:randomFloat34 20s ease-in-out infinite;background:#22c55e;height:9px;left:2%;top:28%;width:9px}.dot-35{animation:randomFloat35 11s ease-in-out infinite;background:#f59e0b;height:8px;left:82%;top:68%;width:8px}.hero:after{animation:movePattern 15s linear infinite;background:url("data:image/svg+xml;charset=utf-8,%3Csvg width='60' height='60' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M36 34v-4h-2v4h-4v2h4v4h2v-4h4v-2h-4zm0-30V0h-2v4h-4v2h4v4h2V6h4V4h-4zM6 34v-4H4v4H0v2h4v4h2v-4h4v-2H6zM6 4V0H4v4H0v2h4v4h2V6h4V4H6z' fill='%23e0e0e0' fill-opacity='.1' fill-rule='evenodd'/%3E%3C/svg%3E") repeat;bottom:0;content:"";left:0;position:absolute;right:0;top:0;z-index:1}.hero-content{position:relative;z-index:3}.hero-content h1{color:#1a1a1a;font-size:4rem;font-weight:800;margin-bottom:1rem}.hero-content p{color:#666;font-size:1.5rem;font-weight:300;margin-bottom:1rem}.hero-subtitle{color:#888;font-size:1.1rem;margin:0 auto;max-width:600px}.section{padding:5rem 2rem}.container{margin:0 auto;max-width:1200px}.section h2{color:#1a1a1a;font-size:2.5rem;font-weight:700;margin-bottom:2rem;text-align:center}.section p{color:#666;font-size:1.2rem;margin:0 auto 2rem;max-width:800px;text-align:center}.projects-section{background-color:#f8f9fa}.projects-grid{grid-gap:2rem;display:grid;gap:2rem;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));margin-top:3rem}.project-card{background:#fff;border:1px solid #e5e5e5;border-radius:12px;box-shadow:0 4px 6px #0000000d;padding:2rem;transition:transform .3s ease,box-shadow .3s ease}.project-card:hover{box-shadow:0 8px 25px #0000001a;transform:translateY(-2px)}.project-placeholder{text-align:center}.placeholder-icon{font-size:3rem;margin-bottom:1rem;opacity:.7}.project-card h3{color:#1a1a1a;font-size:1.5rem;font-weight:600;margin-bottom:1rem}.project-card p{color:#666;font-size:1rem;margin:0}.coming-soon{opacity:.8}.contact-info{margin-top:2rem;text-align:center}.contact-section{background-color:#f8f9fa;overflow:hidden;position:relative}.contact-section:before{animation:slideLines 25s linear infinite;background:linear-gradient(45deg,#0000 40%,#7877c60d 42%,#7877c60d 43%,#0000 45%),linear-gradient(-45deg,#0000 40%,#ff76750d 42%,#ff76750d 43%,#0000 45%);background-size:30px 30px,40px 40px;bottom:0;content:"";left:0;position:absolute;right:0;top:0;z-index:1}.contact-section .container{position:relative;z-index:2}.contact-link{background:#1a1a1a;border-radius:8px;color:#fff;display:inline-block;font-weight:500;padding:1rem 2rem;text-decoration:none;transition:background-color .3s ease}.contact-link:hover{background:#333}.footer{background-color:#1a1a1a;color:#fff;padding:2rem;text-align:center}.footer p{color:#888;margin:0}@media (max-width:768px){.navbar{padding:1rem;position:relative}.nav-left{gap:0;justify-content:space-between;width:100%}.nav-links{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#fffffffa;border-bottom:1px solid #e5e5e5;flex-direction:column;gap:1rem;left:0;opacity:0;padding:1rem 2rem;position:absolute;right:0;top:100%;transform:translateY(-100%);transition:all .3s ease;visibility:hidden}.nav-links-open{opacity:1;transform:translateY(0);visibility:visible}.mobile-menu-toggle{display:flex}.hero-content h1{font-size:2.5rem}.hero-content p{font-size:1.2rem}.section{padding:3rem 1rem}.section h2{font-size:2rem}.projects-grid{gap:1.5rem;grid-template-columns:1fr}}@keyframes randomFloat1{0%,to{transform:translate(0) scale(1)}25%{transform:translate(80px,-60px) scale(1.2)}50%{transform:translate(-50px,90px) scale(.8)}75%{transform:translate(70px,30px) scale(1.1)}}@keyframes randomFloat2{0%,to{transform:translate(0) scale(1)}33%{transform:translate(-100px,40px) scale(.9)}66%{transform:translate(60px,-80px) scale(1.3)}}@keyframes randomFloat3{0%,to{transform:translate(0) scale(1)}20%{transform:translate(45px,75px) scale(1.1)}40%{transform:translate(-90px,-30px) scale(.7)}60%{transform:translate(85px,50px) scale(1.2)}80%{transform:translate(-60px,80px) scale(.9)}}@keyframes randomFloat4{0%,to{transform:translate(0) scale(1)}50%{transform:translate(-75px,-100px) scale(1.4)}}@keyframes randomFloat5{0%,to{transform:translate(0) scale(1)}30%{transform:translate(120px,30px) scale(.8)}70%{transform:translate(-30px,-70px) scale(1.2)}}@keyframes randomFloat6{0%,to{transform:translate(0) scale(1)}25%{transform:translate(-60px,90px) scale(1.1)}75%{transform:translate(90px,-45px) scale(.9)}}@keyframes randomFloat7{0%,to{transform:translate(0) scale(1)}40%{transform:translate(75px,110px) scale(1.3)}80%{transform:translate(-105px,-60px) scale(.8)}}@keyframes randomFloat8{0%,to{transform:translate(0) scale(1)}33%{transform:translate(-90px,60px) scale(.9)}66%{transform:translate(135px,-75px) scale(1.2)}}@keyframes randomFloat9{0%,to{transform:translate(0) scale(1)}50%{transform:translate(60px,90px) scale(1.1)}}@keyframes randomFloat10{0%,to{transform:translate(0) scale(1)}20%{transform:translate(-75px,-90px) scale(1.2)}60%{transform:translate(105px,45px) scale(.8)}}@keyframes randomFloat11{0%,to{transform:translate(0) scale(1)}40%{transform:translate(90px,-60px) scale(1.1)}80%{transform:translate(-120px,75px) scale(.9)}}@keyframes randomFloat12{0%,to{transform:translate(0) scale(1)}25%{transform:translate(-45px,105px) scale(1.3)}75%{transform:translate(120px,-30px) scale(.8)}}@keyframes randomFloat13{0%,to{transform:translate(0) scale(1)}50%{transform:translate(-105px,-75px) scale(1.2)}}@keyframes randomFloat14{0%,to{transform:translate(0) scale(1)}30%{transform:translate(75px,60px) scale(.9)}70%{transform:translate(-60px,-90px) scale(1.1)}}@keyframes randomFloat15{0%,to{transform:translate(0) scale(1)}35%{transform:translate(90px,105px) scale(1.2)}65%{transform:translate(-75px,-45px) scale(.8)}}@keyframes randomFloat16{0%,to{transform:translate(0) scale(1)}30%{transform:translate(65px,-80px) scale(1.1)}70%{transform:translate(-85px,70px) scale(.9)}}@keyframes randomFloat17{0%,to{transform:translate(0) scale(1)}25%{transform:translate(-95px,45px) scale(1.3)}75%{transform:translate(55px,-90px) scale(.7)}}@keyframes randomFloat18{0%,to{transform:translate(0) scale(1)}40%{transform:translate(110px,85px) scale(1.2)}80%{transform:translate(-70px,-65px) scale(.8)}}@keyframes randomFloat19{0%,to{transform:translate(0) scale(1)}50%{transform:translate(80px,-110px) scale(1.4)}}@keyframes randomFloat20{0%,to{transform:translate(0) scale(1)}33%{transform:translate(-125px,35px) scale(.9)}66%{transform:translate(45px,95px) scale(1.1)}}@keyframes randomFloat21{0%,to{transform:translate(0) scale(1)}20%{transform:translate(100px,-75px) scale(1.2)}60%{transform:translate(-40px,85px) scale(.8)}80%{transform:translate(75px,25px) scale(1.1)}}@keyframes randomFloat22{0%,to{transform:translate(0) scale(1)}45%{transform:translate(-65px,120px) scale(1.3)}85%{transform:translate(95px,-55px) scale(.9)}}@keyframes randomFloat23{0%,to{transform:translate(0) scale(1)}30%{transform:translate(-110px,-40px) scale(1.1)}70%{transform:translate(85px,105px) scale(.8)}}@keyframes randomFloat24{0%,to{transform:translate(0) scale(1)}25%{transform:translate(125px,60px) scale(1.2)}50%{transform:translate(-55px,-95px) scale(.9)}75%{transform:translate(40px,115px) scale(1.1)}}@keyframes randomFloat25{0%,to{transform:translate(0) scale(1)}35%{transform:translate(-80px,-85px) scale(1.3)}65%{transform:translate(115px,50px) scale(.7)}}@keyframes randomFloat26{0%,to{transform:translate(0) scale(1)}40%{transform:translate(95px,-70px) scale(1.2)}80%{transform:translate(-50px,100px) scale(.8)}}@keyframes randomFloat27{0%,to{transform:translate(0) scale(1)}25%{transform:translate(-110px,60px) scale(1.1)}75%{transform:translate(70px,-85px) scale(.9)}}@keyframes randomFloat28{0%,to{transform:translate(0) scale(1)}50%{transform:translate(85px,90px) scale(1.4)}}@keyframes randomFloat29{0%,to{transform:translate(0) scale(1)}30%{transform:translate(-75px,-95px) scale(1.2)}70%{transform:translate(105px,45px) scale(.8)}}@keyframes randomFloat30{0%,to{transform:translate(0) scale(1)}33%{transform:translate(120px,-55px) scale(.9)}66%{transform:translate(-65px,80px) scale(1.3)}}@keyframes randomFloat31{0%,to{transform:translate(0) scale(1)}20%{transform:translate(-90px,75px) scale(1.1)}60%{transform:translate(110px,-40px) scale(.7)}80%{transform:translate(35px,95px) scale(1.2)}}@keyframes randomFloat32{0%,to{transform:translate(0) scale(1)}45%{transform:translate(-100px,-70px) scale(1.3)}85%{transform:translate(60px,115px) scale(.9)}}@keyframes randomFloat33{0%,to{transform:translate(0) scale(1)}35%{transform:translate(-125px,50px) scale(1.1)}65%{transform:translate(80px,-100px) scale(.8)}}@keyframes randomFloat34{0%,to{transform:translate(0) scale(1)}25%{transform:translate(130px,65px) scale(1.2)}50%{transform:translate(-45px,-110px) scale(.9)}75%{transform:translate(85px,30px) scale(1.1)}}@keyframes randomFloat35{0%,to{transform:translate(0) scale(1)}40%{transform:translate(-85px,-60px) scale(1.3)}80%{transform:translate(125px,90px) scale(.7)}}@keyframes movePattern{0%{background-position:0 0}to{background-position:60px 60px}}@keyframes slideLines{0%{background-position:0 0,0 0}to{background-position:30px 30px,-40px 40px}}
/*# sourceMappingURL=main.037d0909.css.map*/