body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;margin:0}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}*{transition:background-color .4s ease,color .3s ease,border-color .3s ease,box-shadow .3s ease}img{transition:none}:root{--header-color:#333}.dark-mode{--header-color:#fff}body{background-color:#fff;background-color:var(--background-color);color:#333;color:var(--text-color)}.dark-mode h1,.dark-mode h2,.dark-mode h3,.dark-mode h4,.dark-mode h5{color:#333;color:var(--header-color);text-shadow:0 1px 3px #00000080}.dark-mode p{color:#333;color:var(--text-color)}.dark-mode .section-title{color:#333;color:var(--header-color)}.dark-mode .project-card{background-color:#fff;box-shadow:0 4px 15px #0000001a}.dark-mode .project-card p{color:#555;color:var(--text-secondary)}.dark-mode .resume-content{background-color:#fff;box-shadow:0 5px 15px #0000001a}.dark-mode .resume-section{border-bottom-color:#eee}.dark-mode .resume-item p{color:#555;color:var(--text-secondary)}.dark-mode .resume-date{color:#ccc}.dark-mode .resume-item-header h4{color:#fff}.dark-mode .education-card,.dark-mode .skill-card{background-color:#fff;background-color:var(--surface-color);box-shadow:0 4px 10px #0000001a;box-shadow:0 4px 10px var(--shadow-color)}.dark-mode .education-card p,.dark-mode .skill-card p{color:#555;color:var(--text-secondary)}.dark-mode .contact-btn{background-color:#333;color:#f0f0f0}.dark-mode .contact-section p{color:#555;color:var(--text-secondary)}.dark-mode .btn,.dark-mode .contact-btn,.dark-mode .project-btn,.dark-mode .resume-download-btn,.dark-mode .resume-view-btn,.dark-mode label{color:#fff}.dark-mode input,.dark-mode textarea{background-color:#2d2d2d;border-color:#444;color:#f0f0f0}.dark-mode input::placeholder,.dark-mode textarea::placeholder{color:#888}.dark-mode .nav-link,.dark-mode .navbar-logo{color:#fff}.dark-mode .navbar{background-color:#1a1a1a}.dark-mode .nav-link:hover{background-color:#ffffff26}.dark-mode .footer-section h4,.dark-mode .footer-section ul li a{color:#fff}.dark-mode .footer-section p{color:#e0e0e0}.theme-toggle{align-items:center;background:none;background-color:#ffffff1a;border:none;border-radius:50%;color:#fff;cursor:pointer;display:flex;font-size:1.2rem;height:40px;justify-content:center;transition:all .3s ease;width:40px}.theme-toggle:hover{background-color:#fff3}.theme-toggle i{transition:transform .3s ease}.theme-toggle:hover i{transform:rotate(30deg)}.dark-mode .theme-toggle{background-color:#0000001a;color:#333}.dark-mode .theme-toggle:hover{background-color:#0003}.navbar{align-items:center;background-color:#333;box-shadow:0 2px 10px #0000001a;display:flex;height:80px;justify-content:center;position:sticky;top:0;transition:background-color .3s ease;z-index:999}.navbar.dark-mode{background-color:#1a1a1a}.navbar-container{align-items:center;display:flex;height:80px;justify-content:space-between;max-width:1200px;padding:0 20px;width:100%}.navbar-logo{color:#fff;cursor:pointer;font-size:1.5rem;margin-left:20px;text-decoration:none}.nav-controls{gap:1rem}.nav-controls,.nav-menu{align-items:center;display:flex}.nav-menu{list-style:none;margin-right:20px;text-align:center}.nav-item{margin:0 1rem}.nav-link{color:#fff;font-size:1.1rem;padding:.5rem 1rem;text-decoration:none;transition:all .3s ease}.nav-link:hover{background-color:#fff3;border-radius:4px}.menu-icon{display:none}@media screen and (max-width:960px){.menu-icon{color:#fff;cursor:pointer;display:block;font-size:1.8rem}.nav-menu{display:flex;flex-direction:column;height:calc(100vh - 80px);left:-100%;margin:0;padding:0;position:absolute;top:80px;width:100%}.nav-menu,.nav-menu.active{opacity:1;transition:all .5s ease}.nav-menu.active{background:#333;left:0;z-index:1}.navbar.dark-mode .nav-menu.active{background:#1a1a1a}.nav-item{margin:1.5rem 0}.nav-link{display:block;padding:1.5rem;text-align:center;width:100%}}.footer{background-color:#333;color:#fff;margin-top:3rem;padding:3rem 2rem 1.5rem}.footer-content{grid-gap:2rem;display:grid;gap:2rem;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));margin:0 auto;max-width:1200px}.footer-section h4{font-size:1.2rem;margin-bottom:1rem;padding-bottom:.5rem;position:relative}.footer-section h4:after{background-color:var(--primary-color);bottom:0;content:"";height:2px;left:0;position:absolute;width:50px}.footer-section p{color:#ccc;line-height:1.6}.footer-section ul{list-style:none;padding:0}.footer-section ul li{margin-bottom:.5rem}.footer-section ul li a{color:#ccc;text-decoration:none;transition:color .3s ease}.footer-section ul li a:hover{color:#fff}.social-links{display:flex;gap:1rem}.social-links a{align-items:center;background-color:#ffffff1a;border-radius:50%;color:#fff;display:inline-flex;height:40px;justify-content:center;transition:all .3s ease;width:40px}.social-links a:hover{background-color:var(--primary-color);transform:translateY(-3px)}.footer-bottom{border-top:1px solid #ffffff1a;margin-top:2rem;padding-top:1.5rem;text-align:center}.footer-bottom p{color:#aaa;font-size:.9rem}.dark-mode .footer{background-color:#1a1a1a}@media (max-width:768px){.footer-content{grid-template-columns:1fr;text-align:center}.footer-section h4:after{left:50%;transform:translateX(-50%)}.social-links{justify-content:center}}.scroll-to-top{align-items:center;background-color:var(--primary-color);border:none;border-radius:50%;bottom:30px;box-shadow:0 4px 10px #0003;color:#fff;cursor:pointer;display:flex;height:45px;justify-content:center;opacity:.8;position:fixed;right:30px;transition:all .3s ease;width:45px;z-index:99}.scroll-to-top:hover{background-color:#004999;opacity:1;transform:translateY(-3px)}.scroll-to-top i{font-size:1.2rem}@media (max-width:768px){.scroll-to-top{bottom:20px;height:40px;right:20px;width:40px}}.contact-form-container{background-color:#fff;border-radius:12px;box-shadow:0 8px 25px #00000014;margin:0 auto;max-width:600px;padding:2rem}.dark-mode .contact-form-container{background-color:var(--surface-color);box-shadow:0 8px 25px var(--shadow-color)}.contact-form{gap:1.5rem}.contact-form,.form-group{display:flex;flex-direction:column}.form-group{gap:.5rem}.form-group label{color:#333;font-size:.95rem;font-weight:600}.dark-mode .form-group label{color:#fff}.contact-form input,.contact-form textarea{background-color:#fff;border:2px solid #e1e5e9;border-radius:8px;color:#333;font-family:inherit;font-size:1rem;padding:.9rem;transition:all .3s ease}.contact-form input:focus,.contact-form textarea:focus{border-color:var(--primary-color);box-shadow:0 0 0 3px #0066cc1a;outline:none;transform:translateY(-1px)}.contact-form input:disabled,.contact-form textarea:disabled{background-color:#f8f9fa;cursor:not-allowed;opacity:.7}.dark-mode .contact-form input,.dark-mode .contact-form textarea{background-color:#3a3a3a;border-color:#555;color:#fff}.dark-mode .contact-form input:disabled,.dark-mode .contact-form textarea:disabled{background-color:#2a2a2a;color:#ccc}.dark-mode .contact-form input:focus,.dark-mode .contact-form textarea:focus{background-color:#404040;border-color:var(--primary-color);box-shadow:0 0 0 3px #4da6ff33}.submit-btn{align-items:center;background-color:var(--primary-color);border:none;border-radius:8px;color:#fff;cursor:pointer;display:flex;font-size:1rem;font-weight:600;gap:.5rem;justify-content:center;margin-top:.5rem;padding:1rem 1.5rem;transition:all .3s ease}.submit-btn:hover:not(:disabled){background-color:#004999;box-shadow:0 4px 12px #0066cc4d;transform:translateY(-2px)}.submit-btn:disabled{background-color:#99c2ff;box-shadow:none;cursor:not-allowed;transform:none}.btn-spinner{animation:spin .8s linear infinite;border:2px solid #ffffff4d;border-radius:50%;border-top-color:#fff;display:inline-block;height:16px;width:16px}.form-success{padding:3rem 2rem;text-align:center}.form-success i{animation:successPulse .6s ease-out;color:#4caf50;font-size:4rem;margin-bottom:1.5rem}@keyframes successPulse{0%{opacity:0;transform:scale(.5)}50%{transform:scale(1.1)}to{opacity:1;transform:scale(1)}}.form-success h3{color:#333;font-size:1.8rem;margin-bottom:1rem}.dark-mode .form-success h3{color:#fff}.form-success p{color:#666;font-size:1.1rem;line-height:1.6}.dark-mode .form-success p{color:#ccc}.form-error{background-color:#ffebee;border-left:4px solid #f44336;border-radius:8px;color:#c62828;margin-top:1rem;padding:1rem}.dark-mode .form-error{background-color:#f443361a;border-left-color:#ff6b6b;color:#ff6b6b}.form-error i{margin-right:.5rem}.form-error p{margin:.5rem 0}.form-error a{color:inherit;text-decoration:underline}.form-note{align-items:center;color:#888;display:flex;font-size:.85rem;gap:.5rem;justify-content:center;margin-top:1rem;text-align:center}.dark-mode .form-note{color:#ccc}.form-note i{color:#4caf50}.contact-form input::placeholder,.contact-form textarea::placeholder{color:#888;opacity:1}.dark-mode .contact-form input::placeholder,.dark-mode .contact-form textarea::placeholder{color:#aaa}@media (max-width:768px){.contact-form-container{border-radius:8px;margin:0;padding:1.5rem}.form-success{padding:2rem 1rem}.form-success i{font-size:3rem}}.home{text-align:left}.hero{align-items:center;display:flex;gap:2rem;justify-content:space-between;min-height:75vh;padding:2rem 2rem 4rem}.hero-content{flex:1 1;max-width:600px}.hero-content h1{font-size:3rem;line-height:1.2;margin-bottom:1rem}.hero-content h2{color:#666;font-size:1.8rem;font-weight:400;margin-bottom:1.5rem}.highlight{color:var(--primary-color)}.hero-description{color:#555;font-size:1.2rem;line-height:1.6;margin-bottom:2rem}.hero-buttons{display:flex;gap:1rem}.btn{border-radius:4px;display:inline-block;font-weight:500;padding:.8rem 1.5rem;text-decoration:none;transition:all .3s ease}.primary-btn{background-color:var(--primary-color);color:#fff}.primary-btn:hover{background-color:#004999;box-shadow:0 4px 8px #00000026;color:#fff;transform:translateY(-2px)}.secondary-btn{background-color:initial;border:2px solid var(--primary-color);color:var(--primary-color)}.secondary-btn:hover{background-color:var(--primary-color);box-shadow:0 4px 8px #00000026;color:#fff;transform:translateY(-2px)}.hero-image{align-items:flex-start;display:flex;flex:1 1;justify-content:center;padding-top:1rem}.profile-picture-container{border:3px solid #fff;border-radius:10px;box-shadow:0 10px 25px #0003;height:450px;margin-top:-1rem;overflow:hidden;position:relative;width:450px}.dark-mode .profile-picture-container{border-color:#333;box-shadow:0 10px 25px #0006}.profile-picture,.profile-picture-container img{height:100%;object-fit:cover;object-position:center top;width:100%}.about-section,.contact-section,.education-section{border-bottom:1px solid #eee;padding:4rem 2rem}.dark-mode .about-section,.dark-mode .contact-section,.dark-mode .education-section{border-bottom-color:#333}.about-section h2,.contact-section h2,.education-section h2{font-size:2.5rem;margin-bottom:1.5rem;text-align:center}.about-section p{color:#555;font-size:1.1rem;line-height:1.6;margin-bottom:2rem}.dark-mode .about-section p{color:#e0e0e0}.skills-container{margin-top:3rem}.skills-container h3{font-size:1.8rem;margin-bottom:1.5rem;text-align:center}.skills-grid{grid-template-columns:repeat(auto-fit,minmax(250px,1fr));margin-top:2rem}.skill-card{background-color:#f9f9f9;border-radius:8px;box-shadow:0 4px 10px #0000000d;padding:1.5rem;text-align:center;transition:transform .3s ease}.skill-card:hover{transform:translateY(-5px)}.dark-mode .skill-card{background-color:var(--surface-color);box-shadow:0 4px 10px var(--shadow-color)}.skill-card i{color:var(--primary-color);font-size:2.5rem;margin-bottom:1rem}.skill-card h4{font-size:1.3rem;margin-bottom:.5rem}.skill-card p{color:#666;font-size:1rem}.dark-mode .skill-card p{color:#e0e0e0}.education-card{background-color:#f9f9f9;border-radius:8px;box-shadow:0 4px 10px #0000000d;margin-top:2rem;padding:2rem}.dark-mode .education-card{background-color:var(--surface-color);box-shadow:0 4px 10px var(--shadow-color)}.education-card h3{font-size:1.5rem;margin-bottom:.5rem}.education-period{color:#666;font-style:italic;margin-bottom:1rem}.dark-mode .education-period{color:#ccc}.contact-section p{color:#555;font-size:1.1rem;line-height:1.6;margin-bottom:2rem;text-align:center}.dark-mode .contact-section p{color:#e0e0e0}.contact-grid{grid-gap:2rem;display:grid;gap:2rem;grid-template-columns:1fr 2fr;margin-top:2rem}.contact-form-section h3{color:#333;font-size:1.5rem;margin-bottom:1.5rem}.dark-mode .contact-form-section h3{color:#fff}.contact-info{justify-content:center}.contact-info,.contact-methods{display:flex;flex-direction:column}.contact-methods{gap:1.5rem}.contact-btn{align-items:center;background-color:#f9f9f9;border-radius:50px;box-shadow:0 3px 8px #0000000d;color:#333;display:flex;font-weight:500;gap:.5rem;padding:.8rem 1.5rem;text-decoration:none;transition:all .3s ease}.dark-mode .contact-btn{background-color:var(--surface-color);box-shadow:0 3px 8px var(--shadow-color);color:#fff}.contact-btn:hover{background-color:var(--primary-color);box-shadow:0 5px 12px #0000001a;color:#fff;transform:translateY(-3px)}.contact-btn i{font-size:1.2rem}@media (max-width:960px){.hero{flex-direction:column-reverse;min-height:auto;padding:2rem 1rem;text-align:center}.hero-content{margin-top:2rem}.hero-buttons{justify-content:center}.contact-grid,.skills-grid{grid-template-columns:1fr}.contact-info{margin-top:2rem;order:2}.contact-form-section{order:1}.contact-methods{align-items:center}.profile-picture-container{height:320px;margin:0 auto 1.5rem;width:320px}.profile-picture,.profile-picture-container img{object-position:center top}}@media (min-width:1200px){.profile-picture-container{height:500px;width:500px}}.resume{padding:2rem}.resume-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:2.5rem}.resume h2{color:var(--text-color);font-size:2.5rem;margin-bottom:0}.resume-actions{display:flex;gap:1rem}.resume-download-btn,.resume-view-btn{align-items:center;border-radius:50px;box-shadow:0 4px 8px #0000001a;cursor:pointer;display:inline-flex;font-size:.95rem;font-weight:500;gap:.5rem;justify-content:center;padding:.8rem 1.5rem;text-decoration:none;transition:all .3s ease}.resume-download-btn{background-color:var(--primary-color);border:none;color:#fff}.resume-download-btn:hover{background-color:#004999;box-shadow:0 6px 12px #00000026;color:#fff;transform:translateY(-2px)}.resume-view-btn{background-color:#f8f9fa;border:2px solid #e9ecef;color:#333}.resume-view-btn:hover{background-color:#e9ecef;border-color:#dee2e6;box-shadow:0 6px 12px #00000026;transform:translateY(-2px)}.dark-mode .resume-view-btn{background-color:#444;border-color:#555;color:#fff}.dark-mode .resume-view-btn:hover{background-color:#555;border-color:#666}.pdf-container{margin:2rem 0;overflow:hidden}.pdf-viewer-container{background-color:#f8f9fa;border:2px solid var(--border-color);border-radius:12px;box-shadow:0 8px 25px #0000001a;height:800px;overflow:hidden;position:relative;width:100%}.dark-mode .pdf-viewer-container{background-color:#2a2a2a;border-color:var(--border-color);box-shadow:0 8px 25px #0000004d}.pdf-iframe{background-color:#fff;border:none;height:100%;width:100%}.pdf-loading-overlay{align-items:center;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background-color:#f8f9faf2;display:flex;flex-direction:column;height:100%;justify-content:center;left:0;position:absolute;top:0;width:100%;z-index:2}.dark-mode .pdf-loading-overlay{background-color:#2a2a2af2}.pdf-spinner{animation:pdfSpin 1s linear infinite;border:4px solid #e9ecef;border-radius:50%;border-top:4px solid var(--primary-color);height:50px;margin-bottom:1rem;width:50px}.dark-mode .pdf-spinner{border-color:#444;border-top-color:var(--primary-color)}@keyframes pdfSpin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.pdf-loading-overlay p{color:#6c757d;font-size:1rem;font-weight:500}.dark-mode .pdf-loading-overlay p{color:#adb5bd}.pdf-fallback-center{background-color:#fff;border:2px solid #e9ecef;border-radius:12px;bottom:20px;box-shadow:0 8px 30px #00000040;left:50%;min-width:220px;padding:1.2rem 1.8rem;position:absolute;text-align:center;transform:translateX(-50%);z-index:10}.dark-mode .pdf-fallback-center{background-color:#1a1a1a;border-color:#444;box-shadow:0 8px 30px #00000080}.pdf-fallback-center p{color:#333;font-size:.9rem;font-weight:600;line-height:1.3;margin:0 0 .8rem}.dark-mode .pdf-fallback-center p{color:#fff}.fallback-link{align-items:center;background-color:#fff;border:2px solid #333;border-radius:8px;box-shadow:0 3px 8px #00000026;color:#333;display:inline-flex;font-size:.95rem;font-weight:700;gap:.6rem;padding:.8rem 1.5rem;text-decoration:none;transition:all .3s ease}.fallback-link:hover{background-color:#333;box-shadow:0 5px 15px #00000040;color:#fff;transform:translateY(-1px)}.dark-mode .fallback-link{background-color:#333;border-color:#fff;color:#fff}.dark-mode .fallback-link:hover{background-color:#fff;color:#333}.resume-content{background-color:#fff;border-radius:12px;box-shadow:0 5px 15px #0000000d;margin-top:2rem;padding:2.5rem}.dark-mode .resume-content{background-color:var(--surface-color);box-shadow:0 5px 15px var(--shadow-color)}.resume-section{border-bottom:1px solid #eee;margin-bottom:2.5rem;padding-bottom:2.5rem}.resume-section:last-child{border-bottom:none;margin-bottom:0;padding-bottom:0}.dark-mode .resume-section{border-bottom-color:var(--border-color)}.section-title{align-items:center;color:var(--text-color);display:flex;font-size:1.8rem;font-weight:600;gap:.75rem;margin-bottom:1.5rem}.dark-mode .section-title{color:#fff}.section-title i{color:var(--primary-color);font-size:1.5rem}.resume-item{border-left:3px solid var(--primary-color);margin-bottom:1.5rem;padding-left:1rem}.resume-item:last-child{margin-bottom:0}.resume-item-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:.5rem}.resume-item h4{color:var(--text-color);font-size:1.3rem;font-weight:600;margin:0}.dark-mode .resume-item h4{color:#fff}.resume-date{color:#6c757d;font-size:.9rem;font-style:italic;font-weight:500}.dark-mode .resume-date{color:#adb5bd}.resume-item h5{color:#495057;font-size:1.1rem;font-weight:600;margin-bottom:.75rem;margin-top:0}.dark-mode .resume-item h5{color:#ced4da}.resume-item p{color:var(--text-secondary);font-size:1rem;line-height:1.6;margin-bottom:.5rem}.dark-mode .resume-item p{color:#e0e0e0}.skills-grid{grid-gap:2rem;display:grid;gap:2rem;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));margin-bottom:1.5rem}.skill-category h4{color:var(--text-color);font-size:1.2rem;font-weight:600;margin-bottom:1rem}.dark-mode .skill-category h4{color:#fff}.skill-pills{display:flex;flex-wrap:wrap;gap:.6rem}.skill-pill{background-color:#f8f9fa;border:1px solid #e9ecef;border-radius:25px;color:#495057;display:inline-block;font-size:.9rem;font-weight:500;padding:.5rem 1rem;transition:all .3s ease}.skill-pill:hover{background-color:#e9ecef;transform:translateY(-1px)}.dark-mode .skill-pill{background-color:#444;border-color:#555;color:#fff}.dark-mode .skill-pill:hover{background-color:#555}.used-technologies{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.75rem}.tech{background-color:#0066cc1a;border:1px solid #06c3;border-radius:15px;color:var(--primary-color);display:inline-block;font-size:.85rem;font-weight:500;padding:.3rem .8rem}.dark-mode .tech{background-color:#4da6ff33;border-color:#4da6ff4d}.skill-category.languages{margin-top:1rem}@media (max-width:768px){.resume{padding:1rem}.resume-header{align-items:flex-start;flex-direction:column;gap:1rem}.resume-actions{flex-direction:column;width:100%}.resume-download-btn,.resume-view-btn{justify-content:center;width:100%}.skills-grid{grid-template-columns:1fr}.resume-item-header{align-items:flex-start;flex-direction:column;gap:.5rem}.pdf-viewer-container{height:500px}.resume-content{padding:1.5rem}.pdf-fallback-center{bottom:15px;left:15px;min-width:auto;right:15px;transform:none}.fallback-link,.pdf-fallback-center p{font-size:.85rem}.fallback-link{padding:.6rem 1rem}}.lazy-image-container{height:100%;overflow:hidden;position:relative;width:100%}.lazy-image-placeholder{background-color:#f0f0f0;height:100%;left:0;position:absolute;top:0;transition:opacity .3s ease;width:100%;z-index:1}.dark-mode .lazy-image-placeholder{background-color:#333}.lazy-image-placeholder.hidden{opacity:0}.lazy-image{height:100%;object-fit:cover;opacity:0;transition:opacity .5s ease;width:100%}.lazy-image.loaded{opacity:1}.projects{padding:2rem;text-align:left}.projects h2{color:var(--text-color);font-size:2.5rem;margin-bottom:2rem;text-align:center}.projects-grid{grid-gap:2rem;display:grid;gap:2rem;grid-template-columns:repeat(auto-fit,minmax(300px,1fr))}.project-card{background-color:#fff;border-radius:12px;box-shadow:0 4px 15px #0000001a;display:flex;flex-direction:column;height:100%;overflow:hidden;transition:transform .3s ease,box-shadow .3s ease}.project-card:hover{box-shadow:0 12px 25px #00000026;transform:translateY(-8px)}.dark-mode .project-card{background-color:var(--surface-color);box-shadow:0 4px 15px var(--shadow-color)}.dark-mode .project-card:hover{box-shadow:0 12px 25px #0006}.project-image{align-items:center;background-color:#f5f5f5;display:flex;height:250px;justify-content:center;overflow:hidden;width:100%}.dark-mode .project-image{background-color:#2a2a2a}.project-image img{height:100%;object-fit:fill;transition:transform .5s ease;width:100%}.project-card:hover .project-image img{transform:scale(1.05)}.project-content{display:flex;flex-direction:column;flex-grow:1;padding:1.8rem}.project-content h3{color:var(--text-color);font-size:1.6rem;font-weight:600;line-height:1.3;margin-bottom:1rem}.dark-mode .project-content h3{color:#fff}.project-content p{color:var(--text-secondary);flex-grow:1;font-size:1rem;line-height:1.6;margin-bottom:1.5rem}.dark-mode .project-content p{color:#e0e0e0}.project-tech{display:flex;flex-wrap:wrap;gap:.6rem;margin-bottom:1.5rem}.tech-badge{background-color:#f0f0f0;border:1px solid #e0e0e0;border-radius:20px;color:#333;font-size:.85rem;font-weight:500;padding:.4rem .8rem}.dark-mode .tech-badge{background-color:#444;border-color:#555;color:#fff}.project-links{display:flex;gap:1rem;margin-top:auto}.project-btn{align-items:center;border:none;border-radius:6px;color:#fff;cursor:pointer;display:inline-flex;flex:1 1;font-size:.9rem;font-weight:500;gap:.5rem;justify-content:center;padding:.7rem 1.2rem;text-align:center;text-decoration:none;transition:all .3s ease}.github-btn{background-color:#333}.github-btn:hover{background-color:#000;box-shadow:0 4px 8px #0003;color:#fff;transform:translateY(-2px)}.demo-btn{background-color:var(--primary-color)}.demo-btn:hover{background-color:#004999;box-shadow:0 4px 8px #00000026;color:#fff;transform:translateY(-2px)}.project-btn i{font-size:1rem}.pokematcher-modal-overlay{align-items:center;background-color:#000000bf;display:flex;inset:0;justify-content:center;overflow-y:auto;padding:1rem;position:fixed;z-index:1000}.pokematcher-modal-content{background:linear-gradient(180deg,#ef4444,#fff);border-radius:1rem;box-shadow:0 25px 50px #0000004d;max-height:90vh;max-width:800px;overflow-y:auto;padding:2rem;position:relative;width:100%}.dark-mode .pokematcher-modal-content{background:linear-gradient(180deg,#b91c1c,#1e1e1e)}.pokematcher-modal-close{align-items:center;background:#fff;border:none;border-radius:50%;cursor:pointer;display:flex;height:40px;justify-content:center;position:absolute;right:1rem;top:1rem;transition:all .3s ease;width:40px;z-index:10}.pokematcher-modal-close:hover{background:#f3f4f6;transform:scale(1.1)}.dark-mode .pokematcher-modal-close{background:#333;color:#fff}.dark-mode .pokematcher-modal-close:hover{background:#444}.pokematcher-modal-title{color:#fff;font-size:2rem;font-weight:700;margin-bottom:1.5rem;text-align:center;text-shadow:0 2px 4px #0000004d}.pokematcher-container{background:#fff;border-radius:1rem;box-shadow:0 10px 25px #0000001a;padding:1.5rem}.dark-mode .pokematcher-container{background:var(--surface-color)}.pokematcher-image-container{margin-bottom:1.5rem;position:relative}.pokematcher-image{border-radius:.75rem;height:300px;object-fit:cover;width:100%}.pokematcher-image-close{align-items:center;background:#ef4444;border:none;border-radius:50%;color:#fff;cursor:pointer;display:flex;height:36px;justify-content:center;position:absolute;right:.75rem;top:.75rem;transition:all .3s ease;width:36px}.pokematcher-image-close:hover{background:#dc2626;transform:scale(1.1)}.pokematcher-placeholder{align-items:center;background:linear-gradient(to bottom right,#fef3c7,#fde68a);border:3px solid #fbbf24;border-radius:.75rem;display:flex;height:300px;justify-content:center;margin-bottom:1.5rem}.dark-mode .pokematcher-placeholder{background:linear-gradient(to bottom right,#78350f,#92400e);border-color:#d97706}.pokematcher-placeholder-content{text-align:center}.pokematcher-placeholder-icon{font-size:4rem;margin-bottom:1rem}.pokematcher-placeholder-content p{color:#374151;font-size:1.25rem;font-weight:600}.dark-mode .pokematcher-placeholder-content p{color:#f3f4f6}.pokematcher-analysis{background:#f9fafb;border-radius:.75rem;margin-bottom:1.5rem;padding:1.5rem}.dark-mode .pokematcher-analysis{background:#2a2a2a}.pokematcher-spinner{display:flex;justify-content:center;margin-bottom:1rem}.pokematcher-spinner-icon{animation:spin 1s linear infinite;color:#ef4444}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.pokematcher-progress-bar{background:#e5e7eb;border-radius:9999px;height:.75rem;margin-bottom:.75rem;overflow:hidden;width:100%}.dark-mode .pokematcher-progress-bar{background:#374151}.pokematcher-progress-fill{background:#ef4444;border-radius:9999px;height:100%;transition:width .3s ease}.pokematcher-analysis-message{color:#374151;font-weight:500;text-align:center}.dark-mode .pokematcher-analysis-message{color:#d1d5db}.pokematcher-result{border:4px solid;border-radius:.75rem;margin-bottom:1.5rem;padding:1.5rem}.pokematcher-result-label{color:#6b7280;margin-bottom:.5rem;text-align:center}.dark-mode .pokematcher-result-label{color:#9ca3af}.pokematcher-result-name{font-size:2rem;font-weight:700;margin-bottom:1rem;text-align:center;text-transform:capitalize}.pokematcher-result-image{display:block;height:250px;margin:0 auto 1rem;max-width:250px;object-fit:contain;width:100%}.pokematcher-types{display:flex;gap:.75rem;justify-content:center;margin-bottom:1rem}.pokematcher-type-badge{border-radius:9999px;color:#fff;font-weight:500;padding:.5rem 1rem;text-transform:capitalize}.pokematcher-stats{background:#f3f4f6;border-radius:.5rem;margin-bottom:1rem;padding:1rem}.dark-mode .pokematcher-stats{background:#374151}.pokematcher-stat{display:flex;justify-content:space-between;margin-bottom:.75rem}.pokematcher-stat:last-child{margin-bottom:0}.pokematcher-stat span:first-child{color:#6b7280}.dark-mode .pokematcher-stat span:first-child{color:#9ca3af}.pokematcher-stat span:last-child{color:#111827;font-weight:600}.dark-mode .pokematcher-stat span:last-child{color:#f3f4f6}.pokematcher-personality{margin-top:1rem}.pokematcher-personality-title{color:#111827;font-weight:600;margin-bottom:.5rem}.dark-mode .pokematcher-personality-title{color:#f3f4f6}.pokematcher-personality-text{color:#374151;font-size:.875rem;margin-bottom:.5rem}.dark-mode .pokematcher-personality-text{color:#d1d5db}.pokematcher-actions{display:flex;gap:1rem}.pokematcher-btn{align-items:center;border:none;border-radius:.75rem;color:#fff;cursor:pointer;display:flex;flex:1 1;font-weight:700;gap:.5rem;justify-content:center;padding:1rem;transition:all .3s ease}.pokematcher-btn-camera{background:#ef4444}.pokematcher-btn-camera:hover{background:#dc2626;box-shadow:0 4px 12px #ef444466;transform:translateY(-2px)}.pokematcher-btn-upload{background:#3b82f6}.pokematcher-btn-upload:hover{background:#2563eb;box-shadow:0 4px 12px #3b82f666;transform:translateY(-2px)}.pokematcher-btn-capture{background:#10b981;margin-bottom:.5rem}.pokematcher-btn-capture:hover{background:#059669}.pokematcher-btn-cancel{background:#6b7280}.pokematcher-btn-cancel:hover{background:#4b5563}.pokematcher-camera-preview{background:#000;border-radius:.75rem;margin-bottom:1.5rem;min-height:400px;overflow:hidden;position:relative;width:100%}.pokematcher-video-preview{background:#000;display:block;height:400px;object-fit:cover;width:100%}.dark-mode .pokematcher-video-preview{background:#000}.pokematcher-camera-overlay{background:linear-gradient(0deg,#000c,#0000);bottom:0;display:flex;gap:1rem;justify-content:center;left:0;padding:1.5rem;position:absolute;right:0;z-index:10}@media (max-width:768px){.projects{padding:1rem}.projects-grid{grid-template-columns:1fr}.project-content{padding:1.2rem}.project-content h3{font-size:1.4rem}.project-links{flex-direction:column}.pokematcher-modal-content{max-height:95vh;padding:1rem}.pokematcher-modal-title{font-size:1.5rem}.pokematcher-container{padding:1rem}.pokematcher-image,.pokematcher-placeholder{height:200px}.pokematcher-result-image{height:200px;max-width:200px}.pokematcher-actions{flex-direction:column}}.not-found{align-items:center;display:flex;justify-content:center;min-height:80vh;padding:2rem;text-align:center}.not-found-content{max-width:600px}.not-found h1{color:var(--primary-color);font-size:8rem;line-height:1;margin:0;opacity:.8}.not-found h2{font-size:2.5rem;margin-bottom:1.5rem;margin-top:0}.not-found p{color:#666;font-size:1.2rem;margin-bottom:2rem}.dark-mode .not-found p{color:#bbb}.not-found .btn{align-items:center;display:inline-flex;gap:.5rem}.App{box-sizing:border-box;color:#333;color:var(--text-color);font-family:Poppins,Arial,sans-serif;margin:0 auto;max-width:1200px;padding:20px;text-align:center;width:100%}@media (max-width:768px){.App{padding:10px}}:root{--primary-color:#06c;--secondary-color:#f9f9f9;--text-color:#333;--text-secondary:#555;--background-color:#fff;--surface-color:#fff;--card-background:#f9f9f9;--border-color:#eee;--shadow-color:#0000001a;--accent-color:#5cb85c}.dark-mode{--primary-color:#4da6ff;--secondary-color:#202124;--text-color:#fff;--text-secondary:#e0e0e0;--background-color:#121212;--surface-color:#1e1e1e;--card-background:#2d2d2d;--border-color:#444;--shadow-color:#0000004d}h1,h2,h3,h4,h5,h6{color:#333;color:var(--text-color);line-height:1.2;margin-top:0}p{color:#555;color:var(--text-secondary);line-height:1.6}.dark-mode h1,.dark-mode h2,.dark-mode h3,.dark-mode h4,.dark-mode h5,.dark-mode h6{color:#fff;text-shadow:0 2px 4px #00000080}.dark-mode p{color:#e0e0e0}a{color:#06c;color:var(--primary-color);text-decoration:none;transition:color .3s ease}a:hover{color:#004999}.dark-mode a{color:#06c;color:var(--primary-color)}.dark-mode a:hover{color:#66b3ff}.page-transition{animation:fadeIn .5s ease-in-out}@keyframes fadeIn{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.content{min-height:calc(100vh - 160px)}
/*# sourceMappingURL=main.cb3cf7b5.css.map*/