@import"https://fonts.googleapis.com/css2?family=Playfair+Display:wght@400;700&family=Raleway:wght@300;400;500;600;700&display=swap";.navbar{position:fixed;top:0;left:0;width:100%;height:80px;background-color:#fffffff2;z-index:1000;transition:all .3s ease}.navbar.scrolled{box-shadow:0 2px 10px #0000001a}.navbar-content{display:flex;align-items:center;justify-content:space-between;height:100%}.logo{font-family:var(--font-heading);font-size:2rem;font-weight:700;color:var(--color-text);transition:color .3s}.logo:hover{color:var(--color-accent)}.menu{display:flex;list-style:none}.menu li{margin-left:2rem}.menu a{color:var(--color-text);font-weight:500;position:relative;padding-bottom:5px}.menu a:after{content:"";position:absolute;left:0;bottom:-2px;width:0;height:2px;background-color:var(--color-accent);transition:width .3s ease}.menu a:hover:after,.menu a.active:after{width:100%}.menu a.active{color:var(--color-accent)}.menu-toggle{display:none;cursor:pointer}.hamburger{width:28px;height:20px;position:relative}.hamburger span{display:block;position:absolute;height:2px;width:100%;background:var(--color-text);border-radius:9px;opacity:1;left:0;transform:rotate(0);transition:.25s ease-in-out}.hamburger span:nth-child(1){top:0}.hamburger span:nth-child(2){top:9px}.hamburger span:nth-child(3){top:18px}.hamburger.active span:nth-child(1){top:9px;transform:rotate(135deg)}.hamburger.active span:nth-child(2){opacity:0;left:-60px}.hamburger.active span:nth-child(3){top:9px;transform:rotate(-135deg)}@media (max-width: 768px){.menu-toggle{display:block}.menu{position:fixed;top:80px;left:0;width:100%;height:0;background-color:#fffffffa;flex-direction:column;align-items:center;justify-content:flex-start;overflow:hidden;transition:height .3s ease;z-index:999}.menu.active{height:calc(100vh - 80px);overflow-y:auto;padding:2rem 0}.menu li{margin:1.5rem 0}.menu a{font-size:1.2rem}}.footer{background-color:#f8f9fa;color:#333;padding:4rem 0 1rem;border-top:1px solid #eaeaea}.footer-container{width:90%;max-width:1200px;margin:0 auto}.footer-main{display:grid;grid-template-columns:1fr 2fr;gap:3rem;margin-bottom:2rem}.footer-brand{display:flex;flex-direction:column}.footer-logo{font-family:var(--font-heading);font-size:1.8rem;font-weight:700;color:#333;margin-bottom:.5rem;text-decoration:none}.footer-tagline{color:#666;margin-bottom:1.5rem}.footer-social{display:flex;gap:1rem;margin-top:auto}.social-icon{display:inline-block;width:24px;height:24px;background-size:contain;background-repeat:no-repeat;background-position:center;opacity:.7;transition:all .3s ease}.social-icon:hover{opacity:1;transform:translateY(-3px)}.github{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cpath d='M12 2C6.477 2 2 6.477 2 12c0 4.42 2.87 8.17 6.84 9.5.5.08.66-.23.66-.5v-1.69c-2.77.6-3.36-1.34-3.36-1.34-.46-1.16-1.11-1.47-1.11-1.47-.91-.62.07-.6.07-.6 1 .07 1.53 1.03 1.53 1.03.87 1.52 2.34 1.07 2.91.83.09-.65.35-1.09.63-1.34-2.22-.25-4.55-1.11-4.55-4.92 0-1.11.38-2 1.03-2.71-.1-.25-.45-1.29.1-2.64 0 0 .84-.27 2.75 1.02.79-.22 1.65-.33 2.5-.33.85 0 1.71.11 2.5.33 1.91-1.29 2.75-1.02 2.75-1.02.55 1.35.2 2.39.1 2.64.65.71 1.03 1.6 1.03 2.71 0 3.82-2.34 4.66-4.57 4.91.36.31.69.92.69 1.85V21c0 .27.16.59.67.5C19.14 20.16 22 16.42 22 12A10 10 0 0012 2z' fill='%23333'/%3E%3C/svg%3E")}.linkedin{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cpath d='M19 3a2 2 0 012 2v14a2 2 0 01-2 2H5a2 2 0 01-2-2V5a2 2 0 012-2h14m-.5 15.5v-5.3a3.26 3.26 0 00-3.26-3.26c-.85 0-1.84.52-2.32 1.3v-1.11h-2.79v8.37h2.79v-4.93c0-.77.62-1.4 1.39-1.4a1.4 1.4 0 011.4 1.4v4.93h2.79M6.88 8.56a1.68 1.68 0 001.68-1.68c0-.93-.75-1.69-1.68-1.69a1.69 1.69 0 00-1.69 1.69c0 .93.76 1.68 1.69 1.68m1.39 9.94v-8.37H5.5v8.37h2.77z' fill='%23333'/%3E%3C/svg%3E")}.twitter{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cpath d='M22.46 6c-.77.35-1.6.58-2.46.69.88-.53 1.56-1.37 1.88-2.38-.83.5-1.75.85-2.72 1.05C18.37 4.5 17.26 4 16 4c-2.35 0-4.27 1.92-4.27 4.29 0 .34.04.67.11.98C8.28 9.09 5.11 7.38 3 4.79c-.37.63-.58 1.37-.58 2.15 0 1.49.75 2.81 1.91 3.56-.71 0-1.37-.2-1.95-.5v.03c0 2.08 1.48 3.82 3.44 4.21a4.22 4.22 0 01-1.93.07 4.28 4.28 0 004 2.98 8.521 8.521 0 01-5.33 1.84c-.34 0-.68-.02-1.02-.06C3.44 20.29 5.7 21 8.12 21 16 21 20.33 14.46 20.33 8.79c0-.19 0-.37-.01-.56.84-.6 1.56-1.36 2.14-2.23z' fill='%23333'/%3E%3C/svg%3E")}.npm{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cpath d='M0 0v24h24V0H0zm19.2 19.2H12v-9.6h-4.8v9.6H4.8V4.8h14.4v14.4z' fill='%23333'/%3E%3C/svg%3E")}.medium{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cpath d='M4.37 7.46h15.26c.3 0 .54.24.54.54v7.99c0 .3-.24.54-.54.54H4.37c-.3 0-.54-.24-.54-.54V8c0-.3.24-.54.54-.54zm0 0L8.5 12.01l4.5-4.55 4.5 4.55-4.5 4.55-4.5-4.55-4.13 4.55' fill='none' stroke='%23333' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5'/%3E%3C/svg%3E")}.email{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='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' fill='%23333'/%3E%3C/svg%3E")}.footer-links-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:2rem}.footer-links-column{display:flex;flex-direction:column}.footer-links-column h4{color:#333;font-size:1.1rem;margin-bottom:1.2rem;position:relative}.footer-links-column h4:after{content:"";position:absolute;left:0;bottom:-.5rem;width:2rem;height:2px;background-color:var(--color-accent, #3498db)}.footer-links-column a{color:#666;text-decoration:none;margin-bottom:.8rem;transition:color .3s ease}.footer-links-column a:hover{color:var(--color-accent, #3498db)}.footer-links-column p{color:#666;margin-bottom:.8rem}.footer-bottom{display:flex;justify-content:space-between;align-items:center;padding-top:1.5rem;border-top:1px solid #eaeaea}.footer-bottom p{margin-bottom:0;font-size:.9rem;color:#666}.back-to-top{background-color:var(--color-accent, #3498db);color:#fff;width:40px;height:40px;border-radius:50%;display:flex;align-items:center;justify-content:center;border:none;cursor:pointer;transition:all .3s ease}.back-to-top:hover{background-color:#2980b9;transform:translateY(-3px)}@media (max-width: 768px){.footer-main{grid-template-columns:1fr}.footer-links-grid{grid-template-columns:repeat(2,1fr);gap:2rem 1rem}}@media (max-width: 480px){.footer-links-grid{grid-template-columns:1fr}.footer-bottom{flex-direction:column;gap:1rem}}.adsense-container{width:100%;max-width:100%;margin:.2rem 0;text-align:center;padding:.5rem}.adsense-container.my-4{margin:2rem 0}.adsbygoogle{display:block!important;width:100%;max-width:100%;margin:0 auto}@media (max-width: 768px){.adsense-container{margin:1rem 0;padding:.25rem}.adsense-container.my-4{margin:1.5rem 0}}@media (max-width: 480px){.adsense-container{margin:.75rem 0}.adsense-container.my-4{margin:1rem 0}}.hero-section{height:100vh;min-height:600px;display:flex;align-items:center;padding-top:80px;background:linear-gradient(to right,#f5f5f5 50%,#fff 50%);overflow:hidden}.hero-content{display:flex;align-items:center;justify-content:space-between;gap:2rem}.hero-text{flex:1}.hero-text h1{font-size:3.5rem;margin-bottom:1rem}.hero-text h2{font-size:2rem;font-weight:400;margin-bottom:1.5rem;color:var(--color-gray-dark)}.highlight{position:relative;z-index:1;display:inline-block}.highlight:after{content:"";position:absolute;bottom:0;left:0;width:100%;height:12px;background-color:#6b63ff33;z-index:-1;transform:translateY(-3px)}.hero-text p{font-size:1.2rem;margin-bottom:2rem;max-width:500px}.hero-buttons{display:flex;gap:1rem;margin-bottom:1.5rem}.social-links-home{display:flex;gap:1.5rem;margin-bottom:1.5rem;margin-top:.5rem}.social-links-home a{position:relative}.social-icon-home{display:inline-block;width:28px;height:28px;background-size:contain;background-repeat:no-repeat;background-position:center;opacity:.7;transition:all .3s ease;padding:5px;border-radius:50%;background-color:#00000008}.social-icon-home:hover{opacity:1;transform:translateY(-3px);background-color:#0000000d}.social-links-home a:after{content:attr(data-tooltip);position:absolute;bottom:-30px;left:50%;transform:translate(-50%);background-color:#000000b3;color:#fff;padding:4px 8px;border-radius:4px;font-size:12px;white-space:nowrap;opacity:0;visibility:hidden;transition:all .3s ease}.social-links-home a:hover:after{opacity:1;visibility:visible}.github{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cpath d='M12 2C6.477 2 2 6.477 2 12c0 4.42 2.87 8.17 6.84 9.5.5.08.66-.23.66-.5v-1.69c-2.77.6-3.36-1.34-3.36-1.34-.46-1.16-1.11-1.47-1.11-1.47-.91-.62.07-.6.07-.6 1 .07 1.53 1.03 1.53 1.03.87 1.52 2.34 1.07 2.91.83.09-.65.35-1.09.63-1.34-2.22-.25-4.55-1.11-4.55-4.92 0-1.11.38-2 1.03-2.71-.1-.25-.45-1.29.1-2.64 0 0 .84-.27 2.75 1.02.79-.22 1.65-.33 2.5-.33.85 0 1.71.11 2.5.33 1.91-1.29 2.75-1.02 2.75-1.02.55 1.35.2 2.39.1 2.64.65.71 1.03 1.6 1.03 2.71 0 3.82-2.34 4.66-4.57 4.91.36.31.69.92.69 1.85V21c0 .27.16.59.67.5C19.14 20.16 22 16.42 22 12A10 10 0 0012 2z' fill='%23333'/%3E%3C/svg%3E")}.linkedin{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cpath d='M19 3a2 2 0 012 2v14a2 2 0 01-2 2H5a2 2 0 01-2-2V5a2 2 0 012-2h14m-.5 15.5v-5.3a3.26 3.26 0 00-3.26-3.26c-.85 0-1.84.52-2.32 1.3v-1.11h-2.79v8.37h2.79v-4.93c0-.77.62-1.4 1.39-1.4a1.4 1.4 0 011.4 1.4v4.93h2.79M6.88 8.56a1.68 1.68 0 001.68-1.68c0-.93-.75-1.69-1.68-1.69a1.69 1.69 0 00-1.69 1.69c0 .93.76 1.68 1.69 1.68m1.39 9.94v-8.37H5.5v8.37h2.77z' fill='%23333'/%3E%3C/svg%3E")}.twitter{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cpath d='M22.46 6c-.77.35-1.6.58-2.46.69.88-.53 1.56-1.37 1.88-2.38-.83.5-1.75.85-2.72 1.05C18.37 4.5 17.26 4 16 4c-2.35 0-4.27 1.92-4.27 4.29 0 .34.04.67.11.98C8.28 9.09 5.11 7.38 3 4.79c-.37.63-.58 1.37-.58 2.15 0 1.49.75 2.81 1.91 3.56-.71 0-1.37-.2-1.95-.5v.03c0 2.08 1.48 3.82 3.44 4.21a4.22 4.22 0 01-1.93.07 4.28 4.28 0 004 2.98 8.521 8.521 0 01-5.33 1.84c-.34 0-.68-.02-1.02-.06C3.44 20.29 5.7 21 8.12 21 16 21 20.33 14.46 20.33 8.79c0-.19 0-.37-.01-.56.84-.6 1.56-1.36 2.14-2.23z' fill='%23333'/%3E%3C/svg%3E")}.npm{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cpath d='M0 0v24h24V0H0zm19.2 19.2H12v-9.6h-4.8v9.6H4.8V4.8h14.4v14.4z' fill='%23333'/%3E%3C/svg%3E")}.medium{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cpath d='M13.54 12a6.8 6.8 0 01-6.77 6.82A6.8 6.8 0 010 12a6.8 6.8 0 016.77-6.82A6.8 6.8 0 0113.54 12zM20.96 12c0 3.54-1.51 6.42-3.38 6.42-1.87 0-3.39-2.88-3.39-6.42s1.52-6.42 3.39-6.42 3.38 2.88 3.38 6.42M24 12c0 3.17-.53 5.75-1.19 5.75-.66 0-1.19-2.58-1.19-5.75s.53-5.75 1.19-5.75C23.47 6.25 24 8.83 24 12z' fill='%23333'/%3E%3C/svg%3E")}.hero-image{flex:1;display:flex;justify-content:center;align-items:center}.image-container{width:350px;height:350px;border-radius:50%;overflow:hidden;box-shadow:var(--box-shadow);border:10px solid white}.profile-image{width:100%;height:100%;background-image:url(https://img.freepik.com/free-vector/laptop-with-program-code-isometric-icon-software-development-programming-applications-dark-neon_39422-971.jpg);background-size:cover;background-position:center}.featured-projects{display:flex;gap:2rem;margin-top:2rem}.view-all-projects{margin-top:2.5rem;text-align:center}.featured-project{flex:1;background-color:#fff;border-radius:8px;overflow:hidden;box-shadow:var(--box-shadow);transition:transform .3s}.featured-project:hover{transform:translateY(-5px)}.project-image{height:200px;background-size:cover;background-position:center}.featured-project:nth-child(1) .project-image{background-image:url(/assets/project2-Dj-YpB9s.png)}.featured-project:nth-child(2) .project-image{background-image:url(/assets/platypus-DbhJeVY3.png)}.project-content{padding:1.5rem}.project-content h3{margin-bottom:.5rem}.project-content p{margin-bottom:1.5rem;color:var(--color-gray-dark)}.about-preview{background-color:var(--color-gray-light)}.about-content{max-width:800px;margin:0 auto;text-align:center}.about-content p{font-size:1.1rem;margin-bottom:1.5rem}.gallery-preview{background-color:#fff}.gallery-preview-content{max-width:1200px;margin:0 auto;text-align:center}.gallery-preview-content p{font-size:1.1rem;margin-bottom:2rem;max-width:800px;margin-left:auto;margin-right:auto}.gallery-preview-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem;margin-bottom:2rem}.gallery-preview-item{position:relative;border-radius:8px;overflow:hidden;height:180px;box-shadow:var(--box-shadow);cursor:pointer;transition:transform .3s}.gallery-preview-item:hover{transform:translateY(-5px)}.gallery-preview-item img{width:100%;height:100%;-o-object-fit:cover;object-fit:cover}.gallery-preview-overlay{position:absolute;bottom:0;left:0;right:0;background:linear-gradient(to top,rgba(0,0,0,.9),rgba(0,0,0,.5),transparent);padding:1.2rem;color:#fff;text-align:left;transition:all .3s ease}.gallery-preview-item:hover .gallery-preview-overlay{background:linear-gradient(to top,#000000f2,#000000b3,#0000004d);padding-bottom:1.5rem}.gallery-preview-project{font-weight:600;font-size:1rem;text-shadow:1px 1px 3px rgba(0,0,0,.8)}.gallery-preview-link{margin-top:1rem}@media (max-width: 960px){.gallery-preview-grid{grid-template-columns:repeat(2,1fr)}}@media (max-width: 480px){.gallery-preview-grid{grid-template-columns:1fr}}.contact-preview{background-color:#fff;padding:5rem 0}.contact-preview-grid{display:grid;grid-template-columns:1fr 1.5fr;gap:3rem;align-items:start}.contact-preview-info p{margin-bottom:2rem;font-size:1.1rem;line-height:1.6}.contact-preview-details{margin-bottom:2rem}.contact-preview-item{margin-bottom:1rem;font-size:1.05rem}.contact-preview-form-container{background-color:var(--color-gray-light);padding:2rem;border-radius:8px;box-shadow:var(--box-shadow)}.contact-preview-form .form-group{margin-bottom:1.5rem;position:relative}.contact-preview-form label{display:block;margin-bottom:.5rem;font-weight:500}.contact-preview-form input,.contact-preview-form textarea{width:100%;padding:.8rem;border:1px solid var(--color-gray);border-radius:4px;font-family:var(--font-body);font-size:1rem;transition:border-color .3s}.contact-preview-form input:focus,.contact-preview-form textarea:focus{border-color:var(--color-accent);outline:none}.contact-preview-form input.error,.contact-preview-form textarea.error{border-color:#ff4d4d}.contact-preview-form .error-message{color:#ff4d4d;font-size:.85rem;position:absolute;bottom:-20px}.contact-preview-form .submit-btn{width:100%;padding:1rem}.chat-icon{position:fixed;bottom:30px;right:30px;background-color:#3498db;width:60px;height:60px;border-radius:50%;display:flex;align-items:center;justify-content:center;box-shadow:0 4px 12px #00000026;z-index:100;transition:transform .3s,background-color .3s}.chat-icon:hover{transform:scale(1.1);background-color:#2980b9}.chat-icon a{display:flex;align-items:center;justify-content:center;width:100%;height:100%;color:#fff}@media (max-width: 960px){.hero-section{background:var(--color-gray-light);height:auto;padding:120px 0 60px}.hero-content{flex-direction:column-reverse;text-align:center}.hero-text h1{font-size:3rem}.hero-text p{margin:0 auto 2rem}.hero-buttons,.social-links-home{justify-content:center}.image-container{width:250px;height:250px;margin-bottom:2rem}.contact-preview-grid{grid-template-columns:1fr;gap:2rem}.contact-preview-info{text-align:center}}@media (max-width: 768px){.featured-projects{flex-direction:column}.featured-project{margin-bottom:2rem}.hero-text h1{font-size:2.5rem}}.about-grid{display:grid;grid-template-columns:1fr 2fr;gap:4rem;align-items:start}.about-image{position:relative}.about-image:after{content:"";position:absolute;top:20px;right:-20px;width:100%;height:100%;border:5px solid var(--color-accent);z-index:-1}.about-image img{width:100%;display:block;border-radius:4px;box-shadow:var(--box-shadow)}.about-info p{margin-bottom:1.5rem}.personal-info{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem;margin:2rem 0}.info-item{display:flex;flex-direction:column}.info-label{font-weight:700;color:var(--color-gray-dark);margin-bottom:.3rem}.info-value{font-weight:500}.skills-container{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:2rem;max-width:1000px;margin:0 auto}.skill-item{margin-bottom:1rem}.skill-info{display:flex;justify-content:space-between;margin-bottom:.5rem}.skill-name{font-weight:600}.skill-percentage{color:var(--color-accent);font-weight:600}.skill-bar{width:100%;height:10px;background-color:var(--color-gray);border-radius:10px;overflow:hidden}.skill-progress{height:100%;background-color:var(--color-accent);border-radius:10px;width:0;transition:width 1s ease}@media (max-width: 960px){.about-grid{grid-template-columns:1fr;gap:3rem}.about-image{max-width:400px;margin:0 auto}}@media (max-width: 768px){.personal-info{grid-template-columns:1fr;gap:1rem}}.projects-section{min-height:60vh}.filter-container{display:flex;justify-content:center;margin-bottom:3rem;flex-wrap:wrap;gap:.5rem}.filter-button{padding:.5rem 1.5rem;background:transparent;border:1px solid var(--color-gray);border-radius:30px;font-size:.9rem;color:var(--color-text);transition:all var(--transition-speed)}.filter-button:hover{border-color:var(--color-accent);color:var(--color-accent)}.filter-button.active{background-color:var(--color-accent);border-color:var(--color-accent);color:#fff}.projects-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:2rem}.project-card{border-radius:8px;overflow:hidden;box-shadow:var(--box-shadow);transition:transform var(--transition-speed)}.project-card:hover{transform:translateY(-10px)}.project-image{height:200px;background-size:cover;background-position:center;position:relative;overflow:hidden}.project-links{position:absolute;top:0;left:0;width:100%;height:100%;background-color:#000000b3;display:flex;align-items:center;justify-content:center;gap:1rem;opacity:0;transition:opacity var(--transition-speed)}.project-card:hover .project-links{opacity:1}.project-link{padding:.6rem 1.2rem;background-color:#fff;color:var(--color-text);font-weight:600;border-radius:4px;transition:all var(--transition-speed)}.project-link:hover{background-color:var(--color-accent);color:#fff}.project-info{padding:1.5rem;background-color:#fff}.project-info h3{margin-bottom:.8rem;font-size:1.4rem}.project-info p{color:var(--color-gray-dark);margin-bottom:1.5rem;font-size:.95rem}.tech-stack{display:flex;flex-wrap:wrap;gap:.5rem}.tech-tag{padding:.3rem .8rem;background-color:var(--color-gray-light);border-radius:20px;font-size:.8rem;font-weight:500}@media (max-width: 768px){.projects-grid{grid-template-columns:1fr}.filter-container{margin-bottom:2rem}}@media (max-width: 480px){.project-links{flex-direction:column}}.gallery-section{padding:3rem 0}.gallery-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:1.5rem;margin-top:2rem}.gallery-item{position:relative;border-radius:8px;overflow:hidden;box-shadow:var(--box-shadow);aspect-ratio:16/9;cursor:pointer;transition:transform .3s ease}.gallery-item:hover{transform:translateY(-5px)}.gallery-item img{width:100%;height:100%;-o-object-fit:cover;object-fit:cover;display:block}.gallery-overlay{position:absolute;top:0;left:0;width:100%;height:100%;background:#0009;color:#fff;display:flex;flex-direction:column;justify-content:center;align-items:center;opacity:0;transition:opacity .3s ease}.gallery-item:hover .gallery-overlay{opacity:1}.gallery-project{font-size:1.2rem;font-weight:600;margin-bottom:.5rem}.gallery-view{font-size:.9rem;padding:.5rem 1rem;background-color:var(--color-accent);border-radius:20px}.modal-overlay{position:fixed;top:0;left:0;width:100%;height:100%;background-color:#000000d9;display:flex;justify-content:center;align-items:center;z-index:1000;padding:2rem}.modal-content{position:relative;max-width:90%;max-height:90%;display:flex;flex-direction:column;background-color:#fff;border-radius:8px;overflow:hidden}.modal-content img{max-width:100%;max-height:80vh;-o-object-fit:contain;object-fit:contain}.modal-close{position:absolute;top:10px;right:10px;width:30px;height:30px;background-color:#fff;border:none;border-radius:50%;font-size:1.5rem;display:flex;justify-content:center;align-items:center;cursor:pointer;box-shadow:0 2px 5px #0003;z-index:1001}.modal-caption{padding:1rem;background-color:#fff}.modal-caption h3{margin:0 0 .5rem;color:var(--color-text)}.modal-caption p{margin:0;color:var(--color-gray-dark);font-size:.9rem}.filter-container{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:1.5rem}.filter-button.active{background-color:var(--color-accent);color:#fff;border-color:var(--color-accent)}@media (max-width: 768px){.gallery-grid{grid-template-columns:repeat(auto-fill,minmax(250px,1fr))}.filter-container{justify-content:center}.modal-content{width:95%}}.contact-grid{display:grid;grid-template-columns:1fr 1.5fr;gap:4rem;align-items:start}.contact-info p{margin-bottom:2rem}.availability-notice{background-color:#3498db1a;border-left:4px solid #3498db;padding:1rem 1.5rem;margin-bottom:2rem;border-radius:4px}.availability-notice h3{color:#3498db;margin-bottom:.5rem;font-size:1.1rem}.availability-notice p{margin-bottom:0;line-height:1.6}.contact-details{margin-bottom:2rem}.contact-item{display:flex;align-items:flex-start;margin-bottom:1.5rem}.contact-icon{width:40px;height:40px;margin-right:1rem;background-size:contain;background-repeat:no-repeat;background-position:center}.email-icon{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='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' fill='%236b63ff'/%3E%3C/svg%3E")}.phone-icon{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cpath d='M6.62 10.79c1.44 2.83 3.76 5.14 6.59 6.59l2.2-2.2c.27-.27.67-.36 1.02-.24 1.12.37 2.33.57 3.57.57.55 0 1 .45 1 1V20c0 .55-.45 1-1 1-9.39 0-17-7.61-17-17 0-.55.45-1 1-1h3.5c.55 0 1 .45 1 1 0 1.25.2 2.45.57 3.57.11.35.03.74-.25 1.02l-2.2 2.2z' fill='%236b63ff'/%3E%3C/svg%3E")}.location-icon{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cpath d='M12 2C8.13 2 5 5.13 5 9c0 5.25 7 13 7 13s7-7.75 7-13c0-3.87-3.13-7-7-7zm0 9.5c-1.38 0-2.5-1.12-2.5-2.5s1.12-2.5 2.5-2.5 2.5 1.12 2.5 2.5-1.12 2.5-2.5 2.5z' fill='%236b63ff'/%3E%3C/svg%3E")}.contact-item h3{font-size:1.1rem;margin-bottom:.3rem}.contact-item a{color:var(--color-text);transition:color .3s}.contact-item a:hover{color:var(--color-accent)}.social-links h3{font-size:1.1rem;margin-bottom:1rem}.social-icons{display:flex;gap:1rem}.social-icon{width:40px;height:40px;background-color:var(--color-gray-light);border-radius:50%;display:flex;align-items:center;justify-content:center;transition:all .3s;background-repeat:no-repeat;background-position:center;background-size:50%}.social-icon:hover{background-color:var(--color-accent)}.github{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cpath d='M12 2C6.477 2 2 6.477 2 12c0 4.42 2.87 8.17 6.84 9.5.5.08.66-.23.66-.5v-1.69c-2.77.6-3.36-1.34-3.36-1.34-.46-1.16-1.11-1.47-1.11-1.47-.91-.62.07-.6.07-.6 1 .07 1.53 1.03 1.53 1.03.87 1.52 2.34 1.07 2.91.83.09-.65.35-1.09.63-1.34-2.22-.25-4.55-1.11-4.55-4.92 0-1.11.38-2 1.03-2.71-.1-.25-.45-1.29.1-2.64 0 0 .84-.27 2.75 1.02.79-.22 1.65-.33 2.5-.33.85 0 1.71.11 2.5.33 1.91-1.29 2.75-1.02 2.75-1.02.55 1.35.2 2.39.1 2.64.65.71 1.03 1.6 1.03 2.71 0 3.82-2.34 4.66-4.57 4.91.36.31.69.92.69 1.85V21c0 .27.16.59.67.5C19.14 20.16 22 16.42 22 12A10 10 0 0012 2z' fill='%23333'/%3E%3C/svg%3E")}.linkedin{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cpath d='M19 3a2 2 0 012 2v14a2 2 0 01-2 2H5a2 2 0 01-2-2V5a2 2 0 012-2h14m-.5 15.5v-5.3a3.26 3.26 0 00-3.26-3.26c-.85 0-1.84.52-2.32 1.3v-1.11h-2.79v8.37h2.79v-4.93c0-.77.62-1.4 1.39-1.4a1.4 1.4 0 011.4 1.4v4.93h2.79M6.88 8.56a1.68 1.68 0 001.68-1.68c0-.93-.75-1.69-1.68-1.69a1.69 1.69 0 00-1.69 1.69c0 .93.76 1.68 1.69 1.68m1.39 9.94v-8.37H5.5v8.37h2.77z' fill='%23333'/%3E%3C/svg%3E")}.twitter{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cpath d='M22.46 6c-.77.35-1.6.58-2.46.69.88-.53 1.56-1.37 1.88-2.38-.83.5-1.75.85-2.72 1.05C18.37 4.5 17.26 4 16 4c-2.35 0-4.27 1.92-4.27 4.29 0 .34.04.67.11.98C8.28 9.09 5.11 7.38 3 4.79c-.37.63-.58 1.37-.58 2.15 0 1.49.75 2.81 1.91 3.56-.71 0-1.37-.2-1.95-.5v.03c0 2.08 1.48 3.82 3.44 4.21a4.22 4.22 0 01-1.93.07 4.28 4.28 0 004 2.98 8.521 8.521 0 01-5.33 1.84c-.34 0-.68-.02-1.02-.06C3.44 20.29 5.7 21 8.12 21 16 21 20.33 14.46 20.33 8.79c0-.19 0-.37-.01-.56.84-.6 1.56-1.36 2.14-2.23z' fill='%23333'/%3E%3C/svg%3E")}.contact-form-container{background-color:#fff;padding:2.5rem;border-radius:8px;box-shadow:var(--box-shadow)}.contact-form .form-group{margin-bottom:1.5rem;position:relative}.contact-form label{display:block;margin-bottom:.5rem;font-weight:500}.contact-form input,.contact-form textarea{width:100%;padding:.8rem;border:1px solid var(--color-gray);border-radius:4px;font-family:var(--font-body);font-size:1rem;transition:border-color .3s}.contact-form input:focus,.contact-form textarea:focus{border-color:var(--color-accent);outline:none}.contact-form input.error,.contact-form textarea.error{border-color:#ff4d4d}.error-message{color:#ff4d4d;font-size:.85rem;position:absolute;bottom:-20px}.submit-btn{width:100%;padding:1rem}.form-status{padding:1rem;border-radius:4px;margin-bottom:1.5rem;text-align:center}.form-status.success{background-color:#4caf501a;color:#4caf50;border:1px solid #4caf50}.form-status.error{background-color:#f443361a;color:#f44336;border:1px solid #f44336}@media (max-width: 960px){.contact-grid{grid-template-columns:1fr;gap:3rem}.contact-info{order:2}.contact-form-container{order:1}}@media (max-width: 768px){.contact-form-container{padding:1.5rem}}.not-found-page{display:flex;align-items:center;justify-content:center;min-height:80vh;text-align:center;padding:2rem}.not-found-content{max-width:500px}.not-found-content h1{font-size:8rem;color:var(--color-accent);margin-bottom:0}.not-found-content h2{font-size:2.5rem;margin-bottom:1.5rem}.not-found-content p{font-size:1.2rem;margin-bottom:2rem}@media (max-width: 768px){.not-found-content h1{font-size:6rem}.not-found-content h2{font-size:2rem}}@media (max-width: 480px){.not-found-content h1{font-size:5rem}.not-found-content h2{font-size:1.5rem}.not-found-content p{font-size:1rem}}.blog-page{min-height:100vh}.blog-section{padding:4rem 0}.blog-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(350px,1fr));gap:2rem;margin-top:2rem}.blog-card-link{text-decoration:none;color:inherit;display:block;height:100%}.blog-card{background-color:#fff;border-radius:8px;overflow:hidden;box-shadow:0 4px 15px #0000001a;transition:transform .3s ease,box-shadow .3s ease;height:100%;display:flex;flex-direction:column;cursor:pointer}.blog-card:hover{transform:translateY(-5px);box-shadow:0 10px 25px #00000026}.blog-image{height:200px;background-size:cover;background-position:center;position:relative}.blog-category{position:absolute;bottom:0;left:0;background-color:#3498db;color:#fff;padding:.5rem 1rem;font-size:.8rem;font-weight:600;border-top-right-radius:8px}.blog-info{padding:1.5rem;display:flex;flex-direction:column;flex-grow:1}.blog-meta{display:flex;justify-content:space-between;margin-bottom:.5rem;font-size:.85rem;color:#777}.blog-info h3{margin:.5rem 0;font-size:1.4rem;color:#333;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;line-height:1.4;height:3.92rem}.blog-info p{color:#666;margin-bottom:1.5rem;line-height:1.6;flex-grow:1}.blog-tags-preview{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:1rem}.blog-tag-small{background:#f0f0f0;color:#555;padding:.25rem .5rem;border-radius:12px;font-size:.75rem;font-weight:500}.blog-tag-more{background:#e0e0e0;color:#666;padding:.25rem .5rem;border-radius:12px;font-size:.75rem;font-weight:500}.blog-footer{display:flex;justify-content:space-between;align-items:center;margin-top:auto}.blog-author{font-size:.9rem;color:#555;font-weight:500}.read-more{color:#3498db;font-weight:600;text-decoration:none;transition:color .2s ease;cursor:pointer}.blog-card:hover .read-more{color:#2980b9}.no-blogs{grid-column:1 / -1;display:flex;justify-content:center;align-items:center;min-height:400px}.no-blogs-content{text-align:center;padding:3rem;background:#fff;border-radius:20px;box-shadow:0 10px 30px #0000001a}.no-blogs-content h3{font-size:2rem;color:#333;margin-bottom:1rem}.no-blogs-content p{font-size:1.125rem;color:#666;margin-bottom:2rem}.coming-soon-animation{display:flex;justify-content:center;gap:.5rem}.coming-soon-animation .dot{width:12px;height:12px;background:#3498db;border-radius:50%;animation:bounce-dots 1.4s ease-in-out infinite both}.coming-soon-animation .dot:nth-child(1){animation-delay:-.32s}.coming-soon-animation .dot:nth-child(2){animation-delay:-.16s}@keyframes bounce-dots{0%,80%,to{transform:scale(0)}40%{transform:scale(1)}}.filter-container{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:2rem}.filter-button{background-color:transparent;border:1px solid #ddd;border-radius:30px;padding:.5rem 1.2rem;font-size:.9rem;cursor:pointer;transition:all .2s ease}.filter-button:hover{background-color:#f5f5f5}.filter-button.active{background-color:#3498db;color:#fff;border-color:#3498db}.blog-post-container{max-width:900px;margin:0 auto;padding:1rem}.blog-post-cover{margin:4rem 0 3rem;border-radius:16px;overflow:hidden;box-shadow:0 20px 40px #0000001a;position:relative}.blog-post-cover:after{content:"";position:absolute;bottom:0;left:0;right:0;height:100px;background:linear-gradient(transparent,#0000004d);pointer-events:none}.blog-post-image{width:100%;height:450px;-o-object-fit:cover;object-fit:cover}.blog-post-header{margin-bottom:2.5rem;text-align:center;position:relative}.blog-post-meta{display:flex;justify-content:center;gap:1rem;margin-bottom:1.5rem;flex-wrap:wrap}.blog-post-meta .blog-category{background:linear-gradient(135deg,#3498db,#2980b9);color:#fff;padding:.75rem 1.5rem;border-radius:25px;font-size:.875rem;font-weight:700;text-transform:uppercase;letter-spacing:.5px;box-shadow:0 4px 15px #3498db4d}.blog-post-meta .blog-date,.blog-post-meta .blog-read-time{color:#666;font-size:.875rem;background:#fff;padding:.75rem 1.25rem;border-radius:25px;border:2px solid #f0f0f0;font-weight:600}.blog-post-title{font-size:2.25rem;font-weight:700;color:#2c3e50;margin:1rem 0;line-height:1.2;text-shadow:0 1px 2px rgba(0,0,0,.1)}.blog-post-excerpt{font-size:1.125rem;color:#7f8c8d;margin-bottom:1.5rem;line-height:1.6;max-width:600px;margin-left:auto;margin-right:auto;font-style:italic}.blog-post-author{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem;flex-wrap:wrap;background:#f8f9fa;padding:1rem 1.5rem;border-radius:10px;border-left:3px solid #3498db;box-shadow:0 2px 8px #0000000d}.blog-post-author>span{font-size:1rem;color:#2c3e50;font-weight:600}.blog-tags-inline{display:flex;gap:.75rem;flex-wrap:wrap}.blog-tag-inline{background:linear-gradient(135deg,#3498db,#2980b9);color:#fff;padding:.5rem 1rem;border-radius:20px;font-size:.8rem;font-weight:600;transition:all .3s ease;box-shadow:0 2px 8px #3498db4d}.blog-tag-inline:hover{transform:translateY(-2px);box-shadow:0 4px 12px #3498db66}.blog-post-content{margin-bottom:3rem;background:#fff;padding:2rem;border-radius:15px;box-shadow:0 8px 20px #0000000f;border:1px solid #f0f0f0;position:relative}.blog-post-content:before{content:"";position:absolute;top:0;left:0;right:0;height:4px;background:linear-gradient(90deg,#3498db,#2980b9,#3498db);border-radius:20px 20px 0 0}.blog-content-html{line-height:1.9;color:#2c3e50;font-size:1.125rem;font-family:Georgia,serif}.blog-content-html h1,.blog-content-html h2,.blog-content-html h3,.blog-content-html h4,.blog-content-html h5,.blog-content-html h6{margin:2rem 0 1rem;color:#333;font-weight:600}.blog-content-html h1{font-size:2rem}.blog-content-html h2{font-size:1.75rem}.blog-content-html h3{font-size:1.5rem}.blog-content-html h4{font-size:1.25rem}.blog-content-html p{margin-bottom:1.5rem}.blog-content-html img{max-width:100%;height:auto;border-radius:8px;margin:1.5rem 0;box-shadow:0 4px 15px #0000001a}.blog-content-html pre{background:#2d3748;color:#e2e8f0;padding:1.5rem;border-radius:8px;overflow-x:auto;margin:1.5rem 0}.blog-content-html code{background:#f7fafc;color:#2d3748;padding:.25rem .5rem;border-radius:4px;font-family:Courier New,monospace;font-size:.9em}.blog-content-html pre code{background:transparent;color:inherit;padding:0}.blog-content-html blockquote{border-left:4px solid #3498db;background:#f8f9fa;padding:1rem;margin:1.5rem 0;border-radius:0 8px 8px 0;font-style:italic;color:#666}.blog-content-html ul,.blog-content-html ol{margin:1.5rem 0;padding-left:2rem}.blog-content-html li{margin-bottom:.5rem}.blog-post-footer{background:linear-gradient(135deg,#667eea,#764ba2);padding:3rem;border-radius:20px;text-align:center;color:#fff;position:relative;overflow:hidden}.copy-success{position:absolute;top:-50px;left:50%;transform:translate(-50%);background:#10b981;color:#fff;padding:.75rem 1.5rem;border-radius:25px;font-weight:600;box-shadow:0 4px 15px #10b9814d;transition:all .3s ease;z-index:10;display:flex;align-items:center;gap:.5rem}.copy-success.show{top:20px}.blog-post-footer:before{content:"";position:absolute;top:-50%;left:-50%;width:200%;height:200%;background:radial-gradient(circle,rgba(255,255,255,.1) 0%,transparent 70%);animation:shimmer 3s ease-in-out infinite}@keyframes shimmer{0%,to{transform:rotate(0)}50%{transform:rotate(180deg)}}.blog-post-share{position:relative;z-index:1}.share-header{display:flex;justify-content:center;align-items:center;gap:1rem;margin-bottom:2rem}.blog-post-share h4{margin:0;font-size:1.5rem;font-weight:700}.copy-url-btn{background:#fff3;border:2px solid rgba(255,255,255,.3);color:#fff;padding:.5rem;border-radius:50%;cursor:pointer;transition:all .3s ease;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);width:45px;height:45px;display:flex;align-items:center;justify-content:center;font-size:1.2rem}.copy-url-btn:hover{background:#fff;color:#667eea;transform:scale(1.1)}.share-buttons{display:flex;justify-content:center;gap:1.5rem;margin-bottom:2.5rem;flex-wrap:wrap}.share-button{padding:1rem 2rem;border-radius:25px;text-decoration:none;font-weight:600;transition:all .3s ease;color:#fff;background:#fff3;border:2px solid rgba(255,255,255,.3);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.share-button:hover{background:#fff;color:#667eea;transform:translateY(-3px);box-shadow:0 10px 25px #0003}.blog-post-nav-footer{margin-top:2rem;position:relative;z-index:1}.blog-post-nav-footer .read-more{background:#fff;color:#667eea;padding:1rem 2rem;border-radius:25px;text-decoration:none;font-weight:700;transition:all .3s ease;display:inline-block;box-shadow:0 4px 15px #0003}.blog-post-nav-footer .read-more:hover{transform:translateY(-2px);box-shadow:0 8px 25px #0000004d}.blog-loading{text-align:center;padding:4rem 0}.loading-dots{display:inline-flex;gap:.5rem;margin-bottom:1rem}.loading-dots div{width:12px;height:12px;background:#3498db;border-radius:50%;animation:loading-bounce 1.4s ease-in-out infinite both}.loading-dots div:nth-child(1){animation-delay:-.32s}.loading-dots div:nth-child(2){animation-delay:-.16s}@keyframes loading-bounce{0%,80%,to{transform:scale(0)}40%{transform:scale(1)}}.blog-loading p{color:#666;font-size:1.1rem;margin:0}.loading-spinner{font-size:1.25rem;color:#777;text-align:center;padding:4rem 0}@media (max-width: 768px){.blog-grid{grid-template-columns:1fr}.filter-container{justify-content:center}.blog-post-container{padding:.5rem .25rem}.blog-post-cover{margin:4rem 0 2rem;border-radius:12px}.blog-post-image{height:250px}.blog-post-header{margin-bottom:2rem;padding:0 .5rem}.blog-post-meta{flex-direction:row;gap:.75rem;justify-content:center;align-items:center}.blog-post-meta .blog-date,.blog-post-meta .blog-read-time{padding:.5rem 1rem;font-size:.8rem}.blog-post-title{font-size:1.75rem;line-height:1.3;margin:1rem 0;padding:0 .5rem}.blog-post-excerpt{font-size:1rem;padding:0 .5rem;margin-bottom:1rem}.blog-post-author{display:none}.blog-tags-inline{justify-content:center;gap:.5rem}.blog-tag-inline{padding:.4rem .8rem;font-size:.75rem}.blog-post-content{margin:0 .5rem 2rem;padding:1.5rem 1rem;border-radius:12px}.blog-content-html{font-size:1rem;line-height:1.7}.blog-content-html h1{font-size:1.5rem}.blog-content-html h2{font-size:1.375rem}.blog-content-html h3{font-size:1.25rem}.blog-content-html h4{font-size:1.125rem}.blog-content-html h1,.blog-content-html h2,.blog-content-html h3,.blog-content-html h4,.blog-content-html h5,.blog-content-html h6{margin:1.5rem 0 .75rem}.blog-content-html p{margin-bottom:1.25rem}.blog-content-html pre{padding:1rem;font-size:.85rem;overflow-x:auto}.blog-content-html blockquote{padding:.75rem;margin:1rem 0}.blog-post-footer{margin:0 .5rem;padding:2rem 1.5rem;border-radius:15px}.blog-post-share h4{font-size:1.25rem;margin-bottom:1.5rem}.share-buttons{flex-direction:column;gap:1rem;margin-bottom:2rem;align-items:center}.share-button{padding:.75rem 1.5rem;width:100%;max-width:200px;text-align:center}.blog-post-share{text-align:center}.share-header{gap:.5rem}.copy-url-btn{background:none;border:none;color:#fff;padding:0;font-size:1.5rem;width:auto;height:auto;border-radius:0}.copy-url-btn:hover{background:none;color:#fff;transform:none}}@media (max-width: 480px){.blog-post-container{padding:.25rem .1rem}.blog-post-title{font-size:1.5rem;padding:0 .25rem}.blog-post-excerpt{font-size:.95rem;padding:0 .25rem}.blog-post-content{margin:0 .25rem 1.5rem;padding:1rem .75rem}.blog-content-html{font-size:.95rem}.blog-content-html h1{font-size:1.375rem}.blog-content-html h2{font-size:1.25rem}.blog-content-html h3{font-size:1.125rem}.blog-content-html h4{font-size:1rem}.blog-post-footer{margin:0 .25rem;padding:1.5rem 1rem}.blog-post-author{margin:0 .25rem 1rem;padding:.75rem}.blog-tags-inline{gap:.375rem}.blog-tag-inline{padding:.3rem .6rem;font-size:.7rem}.pagination{flex-direction:column;gap:1rem}.pagination-numbers{order:-1}}.pagination{display:flex;justify-content:center;align-items:center;gap:1rem;margin-top:3rem;flex-wrap:wrap}.pagination-btn{background:#3498db;color:#fff;border:none;padding:.75rem 1.5rem;border-radius:6px;cursor:pointer;font-weight:500;transition:all .3s ease}.pagination-btn:hover:not(:disabled){background:#2980b9;transform:translateY(-2px)}.pagination-btn:disabled{background:#bdc3c7;cursor:not-allowed;transform:none}.pagination-numbers{display:flex;gap:.5rem}.pagination-number{background:transparent;border:1px solid #ddd;color:#333;padding:.5rem .75rem;border-radius:6px;cursor:pointer;transition:all .3s ease;min-width:40px}.pagination-number:hover{background:#f8f9fa}.pagination-number.active{background:#3498db;color:#fff;border-color:#3498db}@media (max-width: 480px){.pagination{flex-direction:column;gap:1rem}.pagination-numbers{order:-1}}.services-page{padding-bottom:0}.services-hero{background:linear-gradient(135deg,var(--primary-color-dark) 0%,var(--primary-color) 100%);color:#fff;padding:3rem 0;text-align:center}.services-hero h1{font-size:2.75rem;margin-bottom:.75rem;font-weight:700}.services-subtitle{font-size:1.2rem;max-width:800px;margin:0 auto 1.5rem;opacity:.9}.services-cta{display:flex;gap:1rem;justify-content:center;margin-top:1.5rem}.section{padding:2.5rem 0}.section-title{text-align:center;margin-bottom:1.5rem;font-size:2rem;font-weight:700;color:var(--text-color)}.section-description{text-align:center;max-width:800px;margin:0 auto 2rem;font-size:1.1rem;line-height:1.5}.services-locations{background-color:var(--primary-color-light);padding:.75rem 0;text-align:center}.locations-wrapper{font-size:1.1rem}.locations-wrapper strong{color:var(--primary-color-dark)}.tech-stack{background-color:var(--bg-alt);padding:2rem 0}.tech-tags{display:flex;flex-wrap:wrap;justify-content:center;gap:.5rem;max-width:900px;margin:0 auto}.tech-tag{background-color:var(--primary-color-light);color:var(--primary-color-dark);padding:.4rem .8rem;border-radius:50px;font-weight:500;font-size:.9rem;transition:all .3s ease}.tech-tag:hover{background-color:var(--primary-color);color:#fff;transform:translateY(-2px)}.services-list{background-color:var(--bg-color);padding:2.5rem 0}.service-card{display:flex;gap:1.5rem;margin-bottom:2rem;padding:1.5rem;background-color:var(--bg-color);border-radius:8px;box-shadow:0 4px 12px #0000000d;transition:transform .3s ease,box-shadow .3s ease}.service-card:last-child{margin-bottom:0}.service-card:hover{transform:translateY(-5px);box-shadow:0 8px 24px #0000001a}.service-icon{flex:0 0 70px;height:70px;background-color:var(--primary-color-light);border-radius:50%;display:flex;align-items:center;justify-content:center;background-size:35px;background-position:center;background-repeat:no-repeat}.frontend-icon{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke='%230070f3'%3E%3Cpath stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M9.75 17L9 20l-1 1h8l-1-1-.75-3M3 13h18M5 17h14a2 2 0 002-2V5a2 2 0 00-2-2H5a2 2 0 00-2 2v10a2 2 0 002 2z' /%3E%3C/svg%3E")}.backend-icon{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke='%230070f3'%3E%3Cpath stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M5 12h14M5 12a2 2 0 01-2-2V6a2 2 0 012-2h14a2 2 0 012 2v4a2 2 0 01-2 2M5 12a2 2 0 00-2 2v4a2 2 0 002 2h14a2 2 0 002-2v-4a2 2 0 00-2-2m-2-4h.01M17 16h.01' /%3E%3C/svg%3E")}.fullstack-icon{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke='%230070f3'%3E%3Cpath stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M12 6V4m0 2a2 2 0 100 4m0-4a2 2 0 110 4m-6 8a2 2 0 100-4m0 4a2 2 0 110-4m0 4v2m0-6V4m6 6v10m6-2a2 2 0 100-4m0 4a2 2 0 110-4m0 4v2m0-6V4' /%3E%3C/svg%3E")}.devops-icon{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke='%230070f3'%3E%3Cpath stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M4 4v5h.582m15.356 2A8.001 8.001 0 004.582 9m0 0H9m11 11v-5h-.581m0 0a8.003 8.003 0 01-15.357-2m15.357 2H15' /%3E%3C/svg%3E")}.ai-icon{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke='%230070f3'%3E%3Cpath stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M9.663 17h4.673M12 3v1m6.364 1.636l-.707.707M21 12h-1M4 12H3m3.343-5.657l-.707-.707m2.828 9.9a5 5 0 117.072 0l-.548.547A3.374 3.374 0 0014 18.469V19a2 2 0 11-4 0v-.531c0-.895-.356-1.754-.988-2.386l-.548-.547z' /%3E%3C/svg%3E")}.service-content{flex:1}.service-content h2{font-size:1.6rem;margin-bottom:.75rem;color:var(--primary-color)}.service-features{margin:1rem 0;padding-left:1.5rem}.service-features li{margin-bottom:.4rem;position:relative}.service-features li:before{content:"✓";color:var(--primary-color);position:absolute;left:-1.5rem;font-weight:700}.services-process{background-color:var(--bg-alt);padding:2.5rem 0}.process-steps{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:1.5rem;margin-top:2rem}.process-step{text-align:center;padding:1.25rem;background-color:var(--bg-color);border-radius:8px;box-shadow:0 4px 12px #0000000d;position:relative}.process-number{width:36px;height:36px;background-color:var(--primary-color);color:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:1.1rem;margin:0 auto .75rem}.process-step h3{margin-bottom:.75rem;font-size:1.2rem}.services-locations-detail{padding:2.5rem 0}.locations-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:1.5rem;margin-top:1.5rem}.location-item{padding:1.25rem;background-color:var(--bg-color);border-radius:8px;box-shadow:0 4px 12px #0000000d;text-align:center}.location-item h3{color:var(--primary-color);margin-bottom:.75rem;font-size:1.2rem}.services-cta-section{background:linear-gradient(135deg,var(--primary-color) 0%,var(--primary-color-dark) 100%);color:#fff;padding:2.5rem 0;text-align:center}.cta-content h2{font-size:2rem;margin-bottom:.75rem}.cta-content p{font-size:1.1rem;max-width:700px;margin:0 auto 1.5rem;opacity:.9}.cta-buttons{display:flex;gap:1rem;justify-content:center}.services-faq{background-color:var(--bg-color);padding:2.5rem 0}.faq-list{max-width:800px;margin:0 auto}.faq-item{margin-bottom:1.5rem;padding-bottom:1.5rem;border-bottom:1px solid var(--border-color)}.faq-item:last-child{border-bottom:none;margin-bottom:0;padding-bottom:0}.faq-item h3{font-size:1.2rem;margin-bottom:.5rem;color:var(--primary-color)}.seo-keywords-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0;color:#fff;font-size:1px;line-height:1px;opacity:.01}@media (max-width: 768px){.services-hero h1{font-size:2.25rem}.service-card{flex-direction:column;gap:.75rem}.service-icon{margin:0 auto}.process-steps{grid-template-columns:1fr}.cta-content h2{font-size:1.75rem}.cta-buttons{flex-direction:column;align-items:center}.section{padding:2rem 0}.section-title{font-size:1.6rem;margin-bottom:1.25rem}}@media (max-width: 480px){.services-hero{padding:2rem 0}.services-hero h1{font-size:1.75rem}.services-cta{flex-direction:column}.tech-tag{font-size:.8rem;padding:.3rem .6rem}}main{min-height:calc(100vh - 160px)}.page-header{text-align:center;padding:6rem 0 3rem;background-color:var(--color-gray-light);margin-bottom:3rem}.fade-in{opacity:0;animation:fadeIn .8s forwards}@keyframes fadeIn{to{opacity:1}}.slide-up{opacity:0;transform:translateY(30px);animation:slideUp .6s forwards}@keyframes slideUp{to{opacity:1;transform:translateY(0)}}@media (max-width: 768px){main{min-height:calc(100vh - 130px)}.page-header{padding:4rem 0 2rem}}.testimonial-slider{position:relative;display:flex;align-items:center;max-width:900px;margin:0 auto}.testimonials-container{position:relative;overflow:hidden;width:100%;min-height:400px}.testimonial-slide{position:absolute;top:0;left:0;width:100%;height:100%;opacity:0;transform:translate(100px);transition:all .5s ease}.testimonial-slide.active{opacity:1;transform:translate(0);z-index:1}.testimonial-content{background-color:#fff;padding:3rem;border-radius:8px;box-shadow:var(--box-shadow);position:relative}.quote-mark{position:absolute;top:20px;left:30px;font-family:var(--font-heading);font-size:5rem;color:var(--color-accent);opacity:.2;line-height:1}.quote-text{position:relative;font-size:1.1rem;line-height:1.7;margin-bottom:2rem;z-index:2}.testimonial-author{display:flex;align-items:center}.author-image{width:60px;height:60px;border-radius:50%;overflow:hidden;margin-right:1rem}.author-image img{width:100%;height:100%;-o-object-fit:cover;object-fit:cover}.author-info h3{margin-bottom:.2rem;font-size:1.2rem}.author-info p{color:var(--color-gray-dark);font-size:.9rem;margin-bottom:0}.slider-arrow{background-color:#fff;width:50px;height:50px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:1.5rem;border:none;box-shadow:var(--box-shadow);color:var(--color-accent);z-index:2;cursor:pointer;transition:transform .3s}.slider-arrow:hover{transform:scale(1.1)}.slider-arrow.prev{margin-right:1rem}.slider-arrow.next{margin-left:1rem}.slider-indicators{display:flex;justify-content:center;margin-top:2rem;gap:.8rem}.slider-dot{width:12px;height:12px;border-radius:50%;background-color:var(--color-gray);border:none;cursor:pointer;transition:background-color .3s}.slider-dot.active{background-color:var(--color-accent);transform:scale(1.2)}.cta-section{background-color:var(--color-gray-light);text-align:center}.cta-content{max-width:700px;margin:0 auto}.cta-content h2{margin-bottom:1rem}.cta-content p{font-size:1.2rem;margin-bottom:2rem}@media (max-width: 768px){.testimonial-content{padding:2rem}.testimonial-slide{min-height:320px}.slider-arrow{width:40px;height:40px;font-size:1.2rem}}@media (max-width: 560px){.testimonial-slider{flex-direction:column;gap:1rem}.slider-arrow.prev{margin-right:0;order:2}.slider-arrow.next{margin-left:0;order:3}.testimonials-container{order:1}.testimonial-content{padding:1.5rem}.quote-text{font-size:1rem}}:root{--color-background: #ffffff;--color-text: #333333;--color-accent: #6b63ff;--color-accent-light: #8f89ff;--color-gray-light: #f5f5f5;--color-gray: #e0e0e0;--color-gray-dark: #888888;--font-heading: "Playfair Display", serif;--font-body: "Raleway", sans-serif;--transition-speed: .3s;--box-shadow: 0 4px 20px rgba(0, 0, 0, .08)}*{margin:0;padding:0;box-sizing:border-box}html{scroll-behavior:smooth}body{font-family:var(--font-body);line-height:1.6;color:var(--color-text);background-color:var(--color-background)}h1,h2,h3,h4,h5,h6{font-family:var(--font-heading);font-weight:700;line-height:1.2;margin-bottom:1rem}h1{font-size:3.5rem}h2{font-size:2.5rem;margin-bottom:2rem}h3{font-size:1.75rem}p{margin-bottom:1.5rem}a{color:var(--color-accent);text-decoration:none;transition:color var(--transition-speed)}a:hover{color:var(--color-accent-light)}img{max-width:100%;height:auto}button{cursor:pointer;font-family:var(--font-body)}.container{width:100%;max-width:1200px;margin:0 auto;padding:0 2rem}.section{padding:3.5rem 0}.section-title{position:relative;display:inline-block;margin-bottom:2rem}.section-title:after{content:"";position:absolute;left:0;bottom:-10px;width:50px;height:3px;background-color:var(--color-accent)}.btn{display:inline-block;padding:.8rem 1.8rem;border:none;border-radius:4px;font-weight:600;transition:all var(--transition-speed)}.btn-primary{background-color:var(--color-accent);color:#fff}.btn-primary:hover{background-color:var(--color-accent-light);color:#fff}.btn-outline{background-color:transparent;border:2px solid var(--color-accent);color:var(--color-accent)}.btn-outline:hover{background-color:var(--color-accent);color:#fff}@media (max-width: 768px){.container{padding:0 .4rem}h1{font-size:2.5rem}h2{font-size:2rem}.section{padding:2.5rem 0}}
