@import "https://fonts.googleapis.com/css2?family=Montserrat:wght@400;500;600;700&display=swap";:root{--font-family:"Montserrat", sans-serif;--bg-color:#f5f5f5;--text-color:#000;--text-light:#555;--black:#000;--white:#fff;--gray-light:#e5e5e5;--border-color:#ccc;--transition-speed:.3s}*{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font-family);background-color:var(--bg-color);color:var(--text-color);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;line-height:1.6;overflow-x:hidden}a{color:inherit;text-decoration:none}ul{list-style:none}button{cursor:pointer;background:0 0;border:none;font-family:inherit}.container{max-width:1200px;margin:0 auto;padding:0 2rem}.fade-enter-active,.fade-leave-active{transition:opacity var(--transition-speed) ease}.fade-enter-from,.fade-leave-to{opacity:0}h1,h2,h3,h4,h5,h6{letter-spacing:.05em;font-weight:700}h2.section-title{text-align:center;letter-spacing:.3em;text-transform:uppercase;border:4px solid var(--black);width:fit-content;margin-bottom:3rem;margin-left:auto;margin-right:auto;padding:.5rem 2rem;font-size:1.5rem;display:block}html{scroll-behavior:smooth}body{margin:0;padding:0;overflow-x:hidden}.app-container{opacity:0;flex-direction:column;min-height:100vh;transition:opacity .5s;display:flex}.app-container.content-loaded{opacity:1}body.loading{overflow:hidden}.navbar{z-index:1000;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#000c;border:1px solid #ffffff1a;border-radius:50px;width:90%;max-width:1200px;padding:1rem 2rem;transition:all .4s cubic-bezier(.165,.84,.44,1);position:fixed;top:1rem;left:50%;transform:translate(-50%)}.navbar.scrolled{background:#000000e6;border-bottom:1px solid #ffffff0d;border-radius:0;width:100%;max-width:100%;padding:.8rem 2rem;top:0}.nav-container{justify-content:space-between;align-items:center;display:flex}.logo-svg{color:var(--white);transition:transform .3s}.logo-svg:hover{transform:rotate(90deg)}.nav-links{align-items:center;gap:2rem;display:flex}.nav-link{color:var(--white);text-transform:uppercase;letter-spacing:.05em;font-size:.9rem;font-weight:600;position:relative}.nav-link:after{content:"";background-color:var(--white);width:0;height:2px;transition:width .3s;position:absolute;bottom:-4px;left:0}.nav-link:hover:after{width:100%}.nav-btn{background-color:var(--white);color:var(--black);text-transform:uppercase;border-radius:20px;padding:.5rem 1.5rem;font-size:.9rem;font-weight:700;transition:all .3s}.nav-btn:hover{background-color:var(--black);color:var(--white)}.lang-switch{color:var(--white);align-items:center;gap:.5rem;margin-left:1rem;display:flex}.lang-switch button{color:var(--white);opacity:.6;padding:.2rem .5rem;font-weight:600;transition:opacity .3s}.lang-switch button:hover,.lang-switch button.active{opacity:1}@media (width<=768px){.nav-links{display:none}}.hero-section{flex-direction:column;min-height:100vh;display:flex;position:relative;overflow:hidden}.split-bg{z-index:-1;width:100%;height:100%;display:flex;position:absolute;top:0;left:0;overflow:hidden}.left-bg{background-color:var(--gray-light);width:50%}.right-bg{background-color:var(--black);clip-path:polygon(15% 0,100% 0,100% 100%,0% 100%);flex-grow:1;width:50%;margin-left:-7.5%}.hero-container{flex:1;justify-content:space-between;align-items:center;width:100%;padding-top:15vh;display:flex}.hero-content{flex:1;max-width:500px}.greeting{margin-bottom:.5rem;font-size:1.2rem;font-weight:500}.name{margin-bottom:.5rem;font-size:3.5rem;font-weight:700;line-height:1.1}.role{color:var(--text-light);margin-bottom:2rem;font-size:1.1rem;font-weight:400}.social-links{gap:1rem;display:flex}.social-links a{width:40px;height:40px;color:var(--black);background-color:#d0d0d0;border-radius:50%;justify-content:center;align-items:center;transition:all .3s;display:flex}.social-links a:hover{background-color:var(--black);color:var(--white)}.social-links i{background-color:currentColor;width:16px;height:16px;display:inline-block;-webkit-mask-size:cover;mask-size:cover}.icon-github{-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\"%3E%3Cpath d=\"M12 0C5.37 0 0 5.37 0 12c0 5.3 3.438 9.8 8.205 11.385.6.113.82-.258.82-.577 0-.285-.01-1.04-.015-2.04-3.338.724-4.042-1.61-4.042-1.61C4.422 18.07 3.633 17.7 3.633 17.7c-1.087-.744.084-.729.084-.729 1.205.084 1.838 1.236 1.838 1.236 1.07 1.835 2.809 1.305 3.495.998.108-.776.417-1.305.76-1.605-2.665-.3-5.466-1.332-5.466-5.93 0-1.31.465-2.38 1.235-3.22-.135-.303-.54-1.523.105-3.176 0 0 1.005-.322 3.3 1.23.96-.267 1.98-.399 3-.405 1.02.006 2.04.138 3 .405 2.28-1.552 3.285-1.23 3.285-1.23.645 1.653.24 2.873.12 3.176.765.84 1.23 1.91 1.23 3.22 0 4.61-2.805 5.625-5.475 5.92.42.36.81 1.096.81 2.22 0 1.606-.015 2.896-.015 3.286 0 .315.21.69.825.57C20.565 21.795 24 17.295 24 12c0-6.63-5.37-12-12-12\"/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\"%3E%3Cpath d=\"M12 0C5.37 0 0 5.37 0 12c0 5.3 3.438 9.8 8.205 11.385.6.113.82-.258.82-.577 0-.285-.01-1.04-.015-2.04-3.338.724-4.042-1.61-4.042-1.61C4.422 18.07 3.633 17.7 3.633 17.7c-1.087-.744.084-.729.084-.729 1.205.084 1.838 1.236 1.838 1.236 1.07 1.835 2.809 1.305 3.495.998.108-.776.417-1.305.76-1.605-2.665-.3-5.466-1.332-5.466-5.93 0-1.31.465-2.38 1.235-3.22-.135-.303-.54-1.523.105-3.176 0 0 1.005-.322 3.3 1.23.96-.267 1.98-.399 3-.405 1.02.006 2.04.138 3 .405 2.28-1.552 3.285-1.23 3.285-1.23.645 1.653.24 2.873.12 3.176.765.84 1.23 1.91 1.23 3.22 0 4.61-2.805 5.625-5.475 5.92.42.36.81 1.096.81 2.22 0 1.606-.015 2.896-.015 3.286 0 .315.21.69.825.57C20.565 21.795 24 17.295 24 12c0-6.63-5.37-12-12-12\"/%3E%3C/svg%3E")}.icon-linkedin{-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\"%3E%3Cpath d=\"M4.98 3.5c0 1.381-1.11 2.5-2.48 2.5s-2.48-1.119-2.48-2.5c0-1.38 1.11-2.5 2.48-2.5s2.48 1.12 2.48 2.5zm.02 4.5h-5v16h5v-16zm7.982 0h-4.968v16h4.969v-8.399c0-4.67 6.029-5.052 6.029 0v8.399h4.988v-10.131c0-7.88-8.922-7.593-11.018-3.714v-2.155z\"/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\"%3E%3Cpath d=\"M4.98 3.5c0 1.381-1.11 2.5-2.48 2.5s-2.48-1.119-2.48-2.5c0-1.38 1.11-2.5 2.48-2.5s2.48 1.12 2.48 2.5zm.02 4.5h-5v16h5v-16zm7.982 0h-4.968v16h4.969v-8.399c0-4.67 6.029-5.052 6.029 0v8.399h4.988v-10.131c0-7.88-8.922-7.593-11.018-3.714v-2.155z\"/%3E%3C/svg%3E")}.icon-email{-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\"%3E%3Cpath d=\"M20 4H4c-1.1 0-1.99.9-1.99 2L2 18c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm0 4l-8 5-8-5V6l8 5 8-5v2z\"/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\"%3E%3Cpath d=\"M20 4H4c-1.1 0-1.99.9-1.99 2L2 18c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm0 4l-8 5-8-5V6l8 5 8-5v2z\"/%3E%3C/svg%3E")}.hero-image{z-index:10;flex:1;justify-content:flex-end;display:flex;position:relative}.image-placeholder{aspect-ratio:4/5;border-radius:20px;width:400px;max-width:100%;position:relative;overflow:hidden}.image-placeholder img{object-fit:cover;width:100%;height:100%;display:block}.image-placeholder:after{letter-spacing:2px;font-weight:700;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}@media (width<=768px){.hero-section{height:auto;min-height:100vh;padding:80px 0 40px}.hero-container{text-align:center;flex-direction:column;gap:3rem;padding-top:0}.split-bg{flex-direction:column}.left-bg{width:100%;height:100%}.right-bg{display:none}.hero-content{order:1;margin-bottom:0}.name{font-size:2.5rem}.social-links{justify-content:center}.hero-image{order:2;justify-content:center;width:100%}.image-placeholder{aspect-ratio:4/5;width:min(280px,80vw);height:auto;margin:0 auto;box-shadow:0 20px 40px #0003}}@media (width<=480px){.name{font-size:2rem}.image-placeholder{width:min(240px,75vw)}}.bottom-banner{color:var(--gray-light);text-align:center;background-color:#222;padding:3rem 0}.banner-title{letter-spacing:.1em;color:var(--white);margin-bottom:1rem;font-size:1.2rem;font-weight:700}.banner-text{opacity:.8;max-width:600px;margin-bottom:2rem;margin-left:auto;margin-right:auto;font-size:.85rem;line-height:1.8}.read-more{color:var(--white);letter-spacing:.1em;text-transform:uppercase;font-size:.8rem;font-weight:600}.read-more:hover{text-decoration:underline}.about-section{background-color:var(--white);text-align:center;padding:8rem 0 0}.about-desc{max-width:600px;color:var(--text-light);margin:0 auto 3rem;font-size:1rem;line-height:1.8}.explore-btn{cursor:pointer;border-left:2px solid var(--black);border-right:2px solid var(--black);align-items:center;gap:1rem;margin-bottom:5rem;padding:.5rem 2rem;display:inline-flex}.explore-text{text-transform:uppercase;letter-spacing:.1em;font-size:.8rem;font-weight:600}.services-wrapper{grid-template-columns:repeat(2,1fr);gap:3rem;max-width:800px;margin:0 auto;display:grid;position:relative}.services-wrapper:before{content:"";background-color:var(--border-color);z-index:1;height:1px;position:absolute;top:50%;left:10%;right:10%}.service-scalable,.service-development,.service-maintenance{background:var(--white);z-index:2;text-align:left;padding:2rem;position:relative}.service-maintenance{text-align:center;grid-column:1/-1;max-width:400px;margin:0 auto}.services-wrapper h4{text-transform:uppercase;letter-spacing:.1em;margin-bottom:1rem;font-size:1.2rem}.services-wrapper p{color:var(--text-light);font-size:.9rem}@media (width<=768px){.services-wrapper{grid-template-columns:1fr}.services-wrapper:before{display:none}}.section-separator{background-color:var(--border-color);width:100%;height:1px;margin-top:8rem}.skills-section{text-align:center;background-color:var(--white);padding:8rem 0}.skills-category{margin-bottom:4rem}.mt-5{margin-top:5rem}.category-title{letter-spacing:.1em;text-transform:uppercase;margin-bottom:3rem;font-size:1.2rem;font-weight:700}.skills-grid{flex-wrap:wrap;justify-content:center;gap:3rem;max-width:800px;margin:0 auto;display:flex}.small-grid{gap:4rem}.skill-item{flex-direction:column;justify-content:center;align-items:center;min-width:80px;transition:transform .3s;display:flex}.skill-item:hover{transform:translateY(-10px)}.skill-item span{text-transform:uppercase;letter-spacing:.05em;margin-top:1rem;font-size:.85rem;font-weight:600}.text-4xl{font-size:3rem}:root{--swiper-theme-color:#007aff}:host{z-index:1;margin-left:auto;margin-right:auto;display:block;position:relative}.swiper{z-index:1;margin-left:auto;margin-right:auto;padding:0;list-style:none;display:block;position:relative;overflow:hidden}.swiper-vertical>.swiper-wrapper{flex-direction:column}.swiper-wrapper{z-index:1;width:100%;height:100%;transition-property:transform;transition-timing-function:var(--swiper-wrapper-transition-timing-function,initial);box-sizing:content-box;display:flex;position:relative}.swiper-android .swiper-slide,.swiper-ios .swiper-slide,.swiper-wrapper{transform:translate(0,0)}.swiper-horizontal{touch-action:pan-y}.swiper-vertical{touch-action:pan-x}.swiper-slide{flex-shrink:0;width:100%;height:100%;transition-property:transform;display:block;position:relative}.swiper-slide-invisible-blank{visibility:hidden}.swiper-autoheight,.swiper-autoheight .swiper-slide{height:auto}.swiper-autoheight .swiper-wrapper{align-items:flex-start;transition-property:transform,height}.swiper-backface-hidden .swiper-slide{backface-visibility:hidden;transform:translateZ(0)}.swiper-3d.swiper-css-mode .swiper-wrapper{perspective:1200px}.swiper-3d .swiper-wrapper{transform-style:preserve-3d}.swiper-3d{perspective:1200px}.swiper-3d .swiper-slide,.swiper-3d .swiper-cube-shadow{transform-style:preserve-3d}.swiper-css-mode>.swiper-wrapper{scrollbar-width:none;-ms-overflow-style:none;overflow:auto}.swiper-css-mode>.swiper-wrapper::-webkit-scrollbar{display:none}.swiper-css-mode>.swiper-wrapper>.swiper-slide{scroll-snap-align:start start}.swiper-css-mode.swiper-horizontal>.swiper-wrapper{scroll-snap-type:x mandatory}.swiper-css-mode.swiper-horizontal>.swiper-wrapper>.swiper-slide:first-child{margin-inline-start:var(--swiper-slides-offset-before);scroll-margin-inline-start:var(--swiper-slides-offset-before)}.swiper-css-mode.swiper-horizontal>.swiper-wrapper>.swiper-slide:last-child{margin-inline-end:var(--swiper-slides-offset-after)}.swiper-css-mode.swiper-vertical>.swiper-wrapper{scroll-snap-type:y mandatory}.swiper-css-mode.swiper-vertical>.swiper-wrapper>.swiper-slide:first-child{margin-block-start:var(--swiper-slides-offset-before);scroll-margin-block-start:var(--swiper-slides-offset-before)}.swiper-css-mode.swiper-vertical>.swiper-wrapper>.swiper-slide:last-child{margin-block-end:var(--swiper-slides-offset-after)}.swiper-css-mode.swiper-free-mode>.swiper-wrapper{scroll-snap-type:none}.swiper-css-mode.swiper-free-mode>.swiper-wrapper>.swiper-slide{scroll-snap-align:none}.swiper-css-mode.swiper-centered>.swiper-wrapper:before{content:"";flex-shrink:0;order:9999}.swiper-css-mode.swiper-centered>.swiper-wrapper>.swiper-slide{scroll-snap-align:center center;scroll-snap-stop:always}.swiper-css-mode.swiper-centered.swiper-horizontal>.swiper-wrapper>.swiper-slide:first-child{margin-inline-start:var(--swiper-centered-offset-before)}.swiper-css-mode.swiper-centered.swiper-horizontal>.swiper-wrapper:before{height:100%;min-height:1px;width:var(--swiper-centered-offset-after)}.swiper-css-mode.swiper-centered.swiper-vertical>.swiper-wrapper>.swiper-slide:first-child{margin-block-start:var(--swiper-centered-offset-before)}.swiper-css-mode.swiper-centered.swiper-vertical>.swiper-wrapper:before{width:100%;min-width:1px;height:var(--swiper-centered-offset-after)}.swiper-3d .swiper-slide-shadow,.swiper-3d .swiper-slide-shadow-left,.swiper-3d .swiper-slide-shadow-right,.swiper-3d .swiper-slide-shadow-top,.swiper-3d .swiper-slide-shadow-bottom,.swiper-3d .swiper-slide-shadow,.swiper-3d .swiper-slide-shadow-left,.swiper-3d .swiper-slide-shadow-right,.swiper-3d .swiper-slide-shadow-top,.swiper-3d .swiper-slide-shadow-bottom{pointer-events:none;z-index:10;width:100%;height:100%;position:absolute;top:0;left:0}.swiper-3d .swiper-slide-shadow{background:#00000026}.swiper-3d .swiper-slide-shadow-left{background-image:linear-gradient(270deg,#00000080,#0000)}.swiper-3d .swiper-slide-shadow-right{background-image:linear-gradient(90deg,#00000080,#0000)}.swiper-3d .swiper-slide-shadow-top{background-image:linear-gradient(#0000,#00000080)}.swiper-3d .swiper-slide-shadow-bottom{background-image:linear-gradient(#00000080,#0000)}.swiper-lazy-preloader{z-index:10;transform-origin:50%;box-sizing:border-box;border:4px solid var(--swiper-preloader-color,var(--swiper-theme-color));border-top-color:#0000;border-radius:50%;width:42px;height:42px;margin-top:-21px;margin-left:-21px;position:absolute;top:50%;left:50%}:is(.swiper:not(.swiper-watch-progress),.swiper-watch-progress .swiper-slide-visible) .swiper-lazy-preloader{animation:1s linear infinite swiper-preloader-spin}.swiper-lazy-preloader-white{--swiper-preloader-color:#fff}.swiper-lazy-preloader-black{--swiper-preloader-color:#000}@keyframes swiper-preloader-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}:root{--swiper-navigation-size:44px}.swiper-button-prev,.swiper-button-next{width:var(--swiper-navigation-size);height:var(--swiper-navigation-size);z-index:10;cursor:pointer;color:var(--swiper-navigation-color,var(--swiper-theme-color));justify-content:center;align-items:center;display:flex;position:absolute}:is(.swiper-button-prev,.swiper-button-next).swiper-button-disabled{opacity:.35;cursor:auto;pointer-events:none}:is(.swiper-button-prev,.swiper-button-next).swiper-button-hidden{opacity:0;cursor:auto;pointer-events:none}.swiper-navigation-disabled :is(.swiper-button-prev,.swiper-button-next){display:none!important}:is(.swiper-button-prev,.swiper-button-next) svg{object-fit:contain;transform-origin:50%;fill:currentColor;pointer-events:none;width:100%;height:100%}.swiper-button-lock{display:none}.swiper-button-prev,.swiper-button-next{top:var(--swiper-navigation-top-offset,50%);margin-top:calc(0px - (var(--swiper-navigation-size) / 2))}.swiper-button-prev{left:var(--swiper-navigation-sides-offset,4px);right:auto}.swiper-button-prev .swiper-navigation-icon{transform:rotate(180deg)}.swiper-button-next{right:var(--swiper-navigation-sides-offset,4px);left:auto}.swiper-horizontal .swiper-button-prev,.swiper-horizontal .swiper-button-next,.swiper-horizontal~.swiper-button-prev,.swiper-horizontal~.swiper-button-next{top:var(--swiper-navigation-top-offset,50%);margin-top:calc(0px - (var(--swiper-navigation-size) / 2));margin-left:0}.swiper-horizontal .swiper-button-prev,.swiper-horizontal~.swiper-button-prev,.swiper-horizontal.swiper-rtl .swiper-button-next,.swiper-horizontal.swiper-rtl~.swiper-button-next{left:var(--swiper-navigation-sides-offset,4px);right:auto}.swiper-horizontal .swiper-button-next,.swiper-horizontal~.swiper-button-next,.swiper-horizontal.swiper-rtl .swiper-button-prev,.swiper-horizontal.swiper-rtl~.swiper-button-prev{right:var(--swiper-navigation-sides-offset,4px);left:auto}:is(.swiper-horizontal .swiper-button-prev,.swiper-horizontal~.swiper-button-prev,.swiper-horizontal.swiper-rtl .swiper-button-next,.swiper-horizontal.swiper-rtl~.swiper-button-next) .swiper-navigation-icon{transform:rotate(180deg)}:is(.swiper-horizontal.swiper-rtl .swiper-button-prev,.swiper-horizontal.swiper-rtl~.swiper-button-prev) .swiper-navigation-icon{transform:rotate(0)}.swiper-vertical .swiper-button-prev,.swiper-vertical .swiper-button-next,.swiper-vertical~.swiper-button-prev,.swiper-vertical~.swiper-button-next{left:var(--swiper-navigation-top-offset,50%);margin-left:calc(0px - (var(--swiper-navigation-size) / 2));margin-top:0;right:auto}.swiper-vertical .swiper-button-prev,.swiper-vertical~.swiper-button-prev{top:var(--swiper-navigation-sides-offset,4px);bottom:auto}:is(.swiper-vertical .swiper-button-prev,.swiper-vertical~.swiper-button-prev) .swiper-navigation-icon{transform:rotate(-90deg)}.swiper-vertical .swiper-button-next,.swiper-vertical~.swiper-button-next{bottom:var(--swiper-navigation-sides-offset,4px);top:auto}:is(.swiper-vertical .swiper-button-next,.swiper-vertical~.swiper-button-next) .swiper-navigation-icon{transform:rotate(90deg)}.swiper-pagination{text-align:center;z-index:10;transition:opacity .3s;position:absolute;transform:translate(0,0)}.swiper-pagination.swiper-pagination-hidden{opacity:0}.swiper-pagination-disabled>.swiper-pagination,.swiper-pagination.swiper-pagination-disabled{display:none!important}.swiper-pagination-fraction,.swiper-pagination-custom,.swiper-horizontal>.swiper-pagination-bullets,.swiper-pagination-bullets.swiper-pagination-horizontal{bottom:var(--swiper-pagination-bottom,8px);top:var(--swiper-pagination-top,auto);width:100%;left:0}.swiper-pagination-bullets-dynamic{font-size:0;overflow:hidden}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet{position:relative;transform:scale(.33)}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active,.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-main{transform:scale(1)}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-prev{transform:scale(.66)}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-prev-prev{transform:scale(.33)}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-next{transform:scale(.66)}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-next-next{transform:scale(.33)}.swiper-pagination-bullet{width:var(--swiper-pagination-bullet-width,var(--swiper-pagination-bullet-size,8px));height:var(--swiper-pagination-bullet-height,var(--swiper-pagination-bullet-size,8px));border-radius:var(--swiper-pagination-bullet-border-radius,50%);background:var(--swiper-pagination-bullet-inactive-color,#000);opacity:var(--swiper-pagination-bullet-inactive-opacity,.2);display:inline-block}button.swiper-pagination-bullet{box-shadow:none;appearance:none;border:none;margin:0;padding:0}.swiper-pagination-clickable .swiper-pagination-bullet{cursor:pointer}.swiper-pagination-bullet:only-child{display:none!important}.swiper-pagination-bullet-active{opacity:var(--swiper-pagination-bullet-opacity,1);background:var(--swiper-pagination-color,var(--swiper-theme-color))}.swiper-vertical>.swiper-pagination-bullets,.swiper-pagination-vertical.swiper-pagination-bullets{right:var(--swiper-pagination-right,8px);left:var(--swiper-pagination-left,auto);top:50%;transform:translateY(-50%)}:is(.swiper-vertical>.swiper-pagination-bullets,.swiper-pagination-vertical.swiper-pagination-bullets) .swiper-pagination-bullet{margin:var(--swiper-pagination-bullet-vertical-gap,6px) 0;display:block}:is(.swiper-vertical>.swiper-pagination-bullets,.swiper-pagination-vertical.swiper-pagination-bullets).swiper-pagination-bullets-dynamic{width:8px;top:50%;transform:translateY(-50%)}:is(.swiper-vertical>.swiper-pagination-bullets,.swiper-pagination-vertical.swiper-pagination-bullets).swiper-pagination-bullets-dynamic .swiper-pagination-bullet{transition:transform .2s,top .2s;display:inline-block}:is(.swiper-horizontal>.swiper-pagination-bullets,.swiper-pagination-horizontal.swiper-pagination-bullets) .swiper-pagination-bullet{margin:0 var(--swiper-pagination-bullet-horizontal-gap,4px)}:is(.swiper-horizontal>.swiper-pagination-bullets,.swiper-pagination-horizontal.swiper-pagination-bullets).swiper-pagination-bullets-dynamic{white-space:nowrap;left:50%;transform:translate(-50%)}:is(.swiper-horizontal>.swiper-pagination-bullets,.swiper-pagination-horizontal.swiper-pagination-bullets).swiper-pagination-bullets-dynamic .swiper-pagination-bullet{transition:transform .2s,left .2s}.swiper-horizontal.swiper-rtl>.swiper-pagination-bullets-dynamic .swiper-pagination-bullet{transition:transform .2s,right .2s}.swiper-pagination-fraction{color:var(--swiper-pagination-fraction-color,inherit)}.swiper-pagination-progressbar{background:var(--swiper-pagination-progressbar-bg-color,#00000040);position:absolute}.swiper-pagination-progressbar .swiper-pagination-progressbar-fill{background:var(--swiper-pagination-color,var(--swiper-theme-color));transform-origin:0 0;width:100%;height:100%;position:absolute;top:0;left:0;transform:scale(0)}.swiper-rtl .swiper-pagination-progressbar .swiper-pagination-progressbar-fill{transform-origin:100% 0}.swiper-horizontal>.swiper-pagination-progressbar,.swiper-pagination-progressbar.swiper-pagination-horizontal,.swiper-vertical>.swiper-pagination-progressbar.swiper-pagination-progressbar-opposite,.swiper-pagination-progressbar.swiper-pagination-vertical.swiper-pagination-progressbar-opposite{width:100%;height:var(--swiper-pagination-progressbar-size,4px);top:0;left:0}.swiper-vertical>.swiper-pagination-progressbar,.swiper-pagination-progressbar.swiper-pagination-vertical,.swiper-horizontal>.swiper-pagination-progressbar.swiper-pagination-progressbar-opposite,.swiper-pagination-progressbar.swiper-pagination-horizontal.swiper-pagination-progressbar-opposite{width:var(--swiper-pagination-progressbar-size,4px);height:100%;top:0;left:0}.swiper-pagination-lock{display:none}.portfolio-header{text-align:center;background-image:url(https://images.unsplash.com/photo-1469474968028-56623f02e42e?auto=format&fit=crop&w=1920&q=80);background-position:50%;background-size:cover;padding:6rem 0;position:relative}.portfolio-header:before{content:"";background-color:#ffffffb3;width:100%;height:100%;position:absolute;top:0;left:0}.portfolio-header .container{z-index:1;position:relative}.projects-container{background-color:var(--black);padding:0 4rem;position:relative}.projects-swiper{padding:0}.project-card{width:100%;height:400px;position:relative;overflow:hidden}.project-image{object-fit:cover;width:100%;height:100%;transition:transform .5s}.project-overlay{opacity:0;text-align:center;background-color:#000000d9;justify-content:center;align-items:center;width:100%;height:100%;padding:2rem;transition:opacity .4s;display:flex;position:absolute;top:0;left:0}.project-card:hover .project-image{transform:scale(1.1)}.project-card:hover .project-overlay{opacity:1}.swiper-button-prev-custom,.swiper-button-next-custom{background:var(--white);width:40px;height:40px;color:var(--black);cursor:pointer;z-index:10;border-radius:50%;justify-content:center;align-items:center;font-size:1.5rem;font-weight:700;transition:all .3s;display:flex;position:absolute;top:50%;transform:translateY(-50%)}.swiper-button-prev-custom{left:1rem}.swiper-button-next-custom{right:1rem}.swiper-button-prev-custom:hover,.swiper-button-next-custom:hover{background:var(--black);color:var(--white);border:1px solid var(--white)}.swiper-button-disabled{opacity:.3;cursor:not-allowed}.swiper-pagination-bullet{background:var(--white)!important;opacity:.5!important}.swiper-pagination-bullet-active{background:var(--white)!important;opacity:1!important}.overlay-content{transition:transform .4s;transform:translateY(20px)}.project-card:hover .overlay-content{transform:translateY(0)}.project-title{color:var(--white);margin-bottom:.5rem;font-size:1.5rem}.project-desc{color:#ccc;margin-bottom:1rem;font-size:.9rem;line-height:1.5}.project-tech{flex-wrap:wrap;justify-content:center;gap:.5rem;margin-bottom:1.5rem;display:flex}.tech-badge{color:#fff;letter-spacing:.05em;text-transform:uppercase;background-color:#ffffff1a;border-radius:4px;padding:.2rem .6rem;font-size:.7rem}.project-links{justify-content:center;gap:1rem;display:flex}.btn-primary,.btn-secondary{text-transform:uppercase;letter-spacing:.05em;border-radius:4px;padding:.6rem 1.2rem;font-size:.8rem;font-weight:600;transition:all .3s}.btn-primary{background-color:var(--white);color:var(--black)}.btn-primary:hover{background-color:#ddd}.btn-secondary{color:var(--white);border:1px solid var(--white);background-color:#0000}.btn-secondary:hover{background-color:var(--white);color:var(--black)}@media (width<=768px){.projects-container{padding:0 1rem}}.contact-section{background-color:var(--gray-light);text-align:center;padding:8rem 0}.contact-desc{max-width:600px;color:var(--text-light);margin:0 auto 3rem;font-size:.9rem;line-height:1.8}.separator{width:100px;margin:0 auto 4rem;position:relative}.separator span{background-color:var(--black);width:100%;height:2px;display:block}.separator:before,.separator:after{content:"";border:2px solid var(--black);width:6px;height:6px;position:absolute;top:50%;transform:translateY(-50%)rotate(45deg)}.separator:before{left:-15px}.separator:after{right:-15px}.contact-form{flex-direction:column;gap:2rem;max-width:500px;margin:0 auto;display:flex}.contact-form input{background:0 0;border:none;border-bottom:2px solid #ccc;outline:none;width:100%;padding:1rem 0;font-family:inherit;font-size:.95rem;transition:border-color .3s}.contact-form input:focus{border-bottom-color:var(--black)}.submit-wrapper{margin-top:2rem;display:inline-block;position:relative}.submit-btn{letter-spacing:.1em;text-transform:uppercase;color:var(--black);z-index:2;padding:.5rem 2rem;font-size:1rem;font-weight:700;position:relative}.submit-wrapper:before,.submit-wrapper:after{content:"";background-color:var(--black);width:2px;height:20px;position:absolute;top:50%;transform:translateY(-50%)}.submit-wrapper:before{left:0}.submit-wrapper:after{right:0}.footer{color:#fff;text-align:center;background-color:#1a1a1a;padding:3rem 0}.footer-content{flex-direction:column;align-items:center;display:flex}.back-to-top{color:#fff;text-transform:uppercase;letter-spacing:.1em;opacity:.8;margin-bottom:2rem;font-size:.8rem;font-weight:600;transition:opacity .3s}.back-to-top:hover{opacity:1}.footer-socials{justify-content:center;gap:2rem;margin-bottom:2rem;display:flex}.footer-socials a{color:#fff;opacity:.8;transition:opacity .3s}.footer-socials a:hover{opacity:1}.footer-socials i{background-color:currentColor;width:20px;height:20px;display:inline-block;-webkit-mask-size:cover;mask-size:cover}.icon-facebook{-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\"%3E%3Cpath d=\"M9 8h-3v4h3v12h5v-12h3.642l.358-4h-4v-1.667c0-.955.192-1.333 1.115-1.333h2.885v-5h-3.808c-3.596 0-5.192 1.583-5.192 4.615v3.385z\"/%3E%3C/svg%3E")}.icon-linkedin{-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\"%3E%3Cpath d=\"M4.98 3.5c0 1.381-1.11 2.5-2.48 2.5s-2.48-1.119-2.48-2.5c0-1.38 1.11-2.5 2.48-2.5s2.48 1.12 2.48 2.5zm.02 4.5h-5v16h5v-16zm7.982 0h-4.968v16h4.969v-8.399c0-4.67 6.029-5.052 6.029 0v8.399h4.988v-10.131c0-7.88-8.922-7.593-11.018-3.714v-2.155z\"/%3E%3C/svg%3E")}.icon-instagram{-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\"%3E%3Cpath d=\"M12 2.163c3.204 0 3.584.012 4.85.07 3.252.148 4.771 1.691 4.919 4.919.058 1.265.069 1.645.069 4.849 0 3.205-.012 3.584-.069 4.849-.149 3.225-1.664 4.771-4.919 4.919-1.266.058-1.644.07-4.85.07-3.204 0-3.584-.012-4.849-.07-3.26-.149-4.771-1.699-4.919-4.92-.058-1.265-.07-1.644-.07-4.849 0-3.204.013-3.583.07-4.849.149-3.227 1.664-4.771 4.919-4.919 1.266-.057 1.645-.069 4.849-.069zm0-2.163c-3.259 0-3.667.014-4.947.072-4.358.2-6.78 2.618-6.98 6.98-.059 1.281-.073 1.689-.073 4.948 0 3.259.014 3.668.072 4.948.2 4.358 2.618 6.78 6.98 6.98 1.281.058 1.689.072 4.948.072 3.259 0 3.668-.014 4.948-.072 4.354-.2 6.782-2.618 6.979-6.98.059-1.28.073-1.689.073-4.948 0-3.259-.014-3.667-.072-4.947-.196-4.354-2.617-6.78-6.979-6.98-1.281-.059-1.69-.073-4.949-.073zm0 5.838c-3.403 0-6.162 2.759-6.162 6.162s2.759 6.163 6.162 6.163 6.162-2.759 6.162-6.163c0-3.403-2.759-6.162-6.162-6.162zm0 10.162c-2.209 0-4-1.79-4-4 0-2.209 1.791-4 4-4s4 1.791 4 4c0 2.21-1.791 4-4 4zm6.406-11.845c-.796 0-1.441.645-1.441 1.44s.645 1.44 1.441 1.44c.795 0 1.439-.645 1.439-1.44s-.644-1.44-1.439-1.44z\"/%3E%3C/svg%3E")}.icon-email{-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\"%3E%3Cpath d=\"M20 4H4c-1.1 0-1.99.9-1.99 2L2 18c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm0 4l-8 5-8-5V6l8 5 8-5v2z\"/%3E%3C/svg%3E")}.copyright{color:#888;font-size:.8rem}.preloader-wrapper{z-index:9999;pointer-events:none;width:100%;height:100%;transition:all .8s cubic-bezier(.85,0,.15,1);position:fixed;top:0;left:0}.preloader{background-color:var(--black);width:100%;height:100%;color:var(--white);pointer-events:auto;justify-content:center;align-items:center;display:flex}.preloader .content{text-align:center}.preloader .loader-text{letter-spacing:.1em;text-transform:uppercase;margin-bottom:2rem;font-size:1.5rem;font-weight:700}.preloader .highlight{color:#ccc}.preloader .progress-bar{background-color:#ffffff1a;width:200px;height:2px;margin:0 auto;position:relative;overflow:hidden}.preloader .progress{background-color:var(--white);width:100%;height:100%;animation:2s ease-in-out infinite progress-anim;position:absolute;top:0;left:0}@keyframes progress-anim{0%{transform:translate(-100%)}50%{transform:translate(0)}to{transform:translate(100%)}}.fade-slide-leave-active{transition:transform .8s cubic-bezier(.85,0,.15,1),opacity .8s}.fade-slide-leave-to{opacity:0;transform:translateY(-100%)}
