.toast-container{display:flex;flex-direction:column;gap:10px;max-width:300px;position:fixed;right:20px;top:20px;z-index:1000}.toast-message{align-items:center;animation-fill-mode:forwards;border-radius:5px;box-shadow:0 2px 8px #0003;color:#fff;display:flex;font-weight:600;justify-content:space-between;min-width:250px;padding:15px 20px}.toast-error{background-color:#e74c3c}.toast-success{background-color:#2ecc71}.toast-info{background-color:#3498db}.toast-close{background:#0000;border:none;color:#fff;cursor:pointer;font-size:20px;line-height:1;margin-left:15px;padding:0}@keyframes fadein{0%{opacity:0;right:0}to{opacity:1;right:20px}}@keyframes fadeout{0%{opacity:1;right:20px}to{opacity:0;right:0}}.About_about__rLCow{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background-color:rgba(var(--color-background-2-rgb),.95);color:var(--color-text);margin:0 auto;max-width:1200px;padding:80px 5%}.About_content__2X8BJ{align-items:flex-start;display:flex;flex-direction:row;gap:40px}.About_imageContainer__yp9Mw{flex-shrink:0;width:350px}.About_profileImage__6k9Xr{border-radius:8px;box-shadow:0 5px 20px #0000001a;height:100%;max-height:500px;object-fit:cover;width:100%}.About_text__OkYP5{flex:1 1}.About_title__rDDoF{color:var(--color-primary);font-size:2.5rem;margin-bottom:10px}.About_subtitle__1RNC4{color:var(--color-text-light);font-size:1.5rem;margin-bottom:20px}.About_description__1VH-j{font-size:1.1rem;line-height:1.7;margin-bottom:25px}.About_actions__FPFzW{align-items:center;display:flex;gap:20px;margin-top:30px}.About_cvButton__qHmQr{align-items:center;background:var(--color-primary);border-radius:8px;color:#fff;display:inline-flex;font-weight:700;gap:8px;padding:12px 24px;text-decoration:none;transition:all .3s}.About_cvButton__qHmQr:hover{background:var(--color-primary-dark);transform:translateY(-2px)}.About_socialLinks__ea3Ke{display:flex;gap:15px}.About_socialLinks__ea3Ke a{color:var(--color-text);font-size:1.4rem;transition:color .3s}.About_socialLinks__ea3Ke a:hover{color:var(--color-primary)}.About_mangobyteIcon__X09XQ img{height:1.4rem;transition:transform .3s ease,filter .3s ease;width:1.4rem}.About_mangobyteIcon__X09XQ:hover img{filter:brightness(1.1);transform:scale(1.1)}@media (max-width:768px){.About_content__2X8BJ{flex-direction:column;gap:30px}.About_imageContainer__yp9Mw{width:100%}.About_profileImage__6k9Xr{max-height:300px}}.banner-section{align-items:center;background-color:#000;display:flex;height:100vh;justify-content:center;overflow:hidden;position:relative;width:100%}.banner-image-container{height:100%;position:relative;width:100%}.banner-image{filter:brightness(.6);height:100%;object-fit:cover;object-position:center;transition:opacity 1s ease-in-out;width:100%}.banner-text{color:#fff;left:50%;position:absolute;text-align:center;top:50%;transform:translate(-50%,-50%);-webkit-user-select:none;user-select:none;z-index:10}.banner-text h1{font-size:5rem;font-weight:700;margin:0}.banner-text h2{font-size:3rem;font-weight:400;margin:.5rem 0 0}.modal-overlay{align-items:center;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);background-color:#0006;display:flex;height:100%;justify-content:center;left:0;position:fixed;top:0;transition:opacity .3s ease;width:100%;z-index:10000}.modal-content{background-color:var(--color-background);border-radius:12px;box-shadow:0 8px 24px #00000026;max-height:80vh;max-width:600px;overflow-y:auto;padding:24px 32px;position:relative;transition:transform .3s ease;width:90%}.modal-close{background:#0000;border:none;color:var(--color-text);cursor:pointer;font-size:2.4rem;font-weight:700;position:absolute;right:12px;top:12px;transition:color .2s ease;-webkit-user-select:none;user-select:none}.modal-close:hover{color:var(--color-primary)}.modal-title{border-bottom:2px solid var(--color-primary);color:var(--color-text);font-size:2rem;font-weight:700;margin-bottom:20px;margin-top:0;padding-bottom:8px}.modal-body{color:var(--color-text-light);font-size:1rem;line-height:1.5}.skill-bar{align-items:center;display:flex;gap:12px;margin-bottom:12px}.skill-name{color:var(--color-text);flex:1 1 120px;font-size:1rem;font-weight:600}.skill-level-bar{background-color:var(--color-background-2);border-radius:6px;flex:1 1 auto;height:12px;overflow:hidden;position:relative}.skill-level-fill{background-color:var(--color-primary);border-radius:6px 0 0 6px;height:100%;transition:width .3s ease}.skill-level-number{color:var(--color-text-light);font-size:.9rem;font-weight:600;text-align:right;width:40px}.flip-card{background-color:initial;cursor:pointer;height:120px;outline:none;perspective:1000px;width:120px}.flip-card-inner{border-radius:12px;box-shadow:0 4px 8px #0003;height:100%;position:relative;text-align:center;transform-style:preserve-3d;transition:transform .6s;width:100%}.flip-card:focus .flip-card-inner,.flip-card:hover .flip-card-inner{transform:rotateY(180deg)}.flip-card-back,.flip-card-front{align-items:center;-webkit-backface-visibility:hidden;backface-visibility:hidden;border-radius:12px;display:flex;font-size:1rem;height:100%;justify-content:center;position:absolute;width:100%}.flip-card-front{background-color:var(--color-background);color:var(--color-text)}.flip-card-back{background-color:var(--color-primary);box-sizing:border-box;color:#fff;font-weight:700;padding:10px;transform:rotateY(180deg)}.skills-section{align-items:center;background-color:rgba(var(--color-background-2-rgb),.95);box-sizing:border-box;color:var(--color-text);display:flex;flex-direction:column;min-height:100vh;padding:40px 20px;width:100%}.skills-title{border-bottom:3px solid var(--color-primary);font-size:3rem;font-weight:700;margin-bottom:24px;max-width:1200px;padding-bottom:8px;width:100%}.skills-container{display:flex;gap:32px;max-width:1200px;width:100%}.left-column{display:flex;flex:1 1 40%;flex-direction:column;gap:32px}.right-column{display:flex;flex:1 1 60%;flex-direction:column;gap:32px}.right-bottom-row,.right-top-row{grid-gap:32px;display:grid;gap:32px;grid-template-columns:repeat(2,1fr)}.right-bottom-row>.skills-category,.right-top-row>.skills-category{flex:none}@media (max-width:768px){.skills-container{flex-direction:column;gap:20px}.left-column,.right-column{flex:none;width:100%}.right-bottom-row,.right-top-row{gap:20px;grid-template-columns:1fr}}.university-container{align-items:flex-start;background-color:var(--color-background);border-radius:12px;box-shadow:0 2px 8px #0000001a;display:flex;flex-direction:column;gap:4px;margin-bottom:20px;max-width:320px;padding:16px 20px}.university-container p{margin:0}.university-container p:first-child{font-size:1.3rem;font-weight:700}.graduation-degree{color:var(--color-text-light);font-size:1rem;font-style:italic}.university-text{display:flex;flex-direction:column;justify-content:center}.university-icon{color:var(--color-primary);font-size:2rem}.studies-section{width:100%}.studies-section h2{color:var(--color-primary);font-size:2rem;margin-bottom:12px}.modal-open-button{background-color:var(--color-primary);border:none;border-radius:6px;color:#fff;cursor:pointer;font-size:1rem;font-weight:600;margin-left:12px;padding:6px 12px;transition:background-color .3s ease}.modal-open-button:hover{background-color:var(--color-primary-dark)}.courses-list{list-style-type:disc;margin:0;padding-left:20px}.skills-category{background-color:var(--color-background);border-radius:12px;box-shadow:0 2px 8px #0000001a;padding:20px}.skills-category h3{border-bottom:2px solid var(--color-primary);color:var(--color-primary);font-size:1.8rem;margin-bottom:16px;padding-bottom:6px}.skills-category ul{list-style-type:disc;margin:0;padding-left:20px}.skills-category ul li{color:var(--color-text-light);font-size:1rem;margin-bottom:8px}.flipcard-grid{grid-gap:16px;display:grid;gap:16px;grid-template-columns:repeat(2,1fr)}.image-gallery{flex-wrap:nowrap;gap:16px;max-width:100%;overflow-x:auto;padding-bottom:8px;padding-right:8px;position:relative;scrollbar-color:#007bff #e0e0e0;scrollbar-width:thin}.image-gallery,.image-item{background-color:var(--color-background);display:flex}.image-item{align-items:center;border-radius:6px;box-shadow:0 2px 6px #0000001a;flex-direction:column;padding:8px;width:180px}.image-item img{background-color:var(--color-background);border-radius:4px;cursor:pointer;margin-bottom:8px;max-height:120px;max-width:100%;object-fit:cover;transition:box-shadow .3s ease}.image-item img.portada{border:3px solid #007bff;box-shadow:0 0 8px #007bff}.image-item img:hover{box-shadow:0 0 10px #007bff}.image-controls{background-color:var(--color-background);display:flex;justify-content:space-between;margin-bottom:8px;width:100%}.image-controls label{align-items:center;color:#333;display:flex;font-weight:600;gap:4px}.image-controls button{background-color:var(--color-background);border:none;border-radius:4px;color:#fff;cursor:pointer;padding:4px 8px;transition:background-color .3s ease}.image-controls button:hover{background-color:#c82333}.image-item input[type=text],.image-item textarea{background-color:var(--color-background);border:1px solid #ccc;border-radius:4px;box-sizing:border-box;font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif;font-size:.95rem;margin-bottom:4px;padding:6px 8px;transition:border-color .3s ease;width:100%}.image-gallery::-webkit-scrollbar{height:8px}.image-gallery::-webkit-scrollbar-track{background-color:var(--color-background);border-radius:4px}.image-gallery::-webkit-scrollbar-thumb{background-color:#007bff;background-color:var(--color-background);border-radius:4px}.image-item input[type=text]:focus,.image-item textarea:focus{border-color:#007bff;outline:none}.image-gallery-display{background-color:var(--color-background);display:flex;flex-wrap:wrap;gap:12px;max-height:400px;overflow-y:auto;padding-right:8px}.image-gallery-thumbnail{border-radius:6px;transition:box-shadow .3s ease}.image-gallery-thumbnail:hover{box-shadow:0 0 12px #007bff;cursor:pointer}.image-viewer-caption{word-wrap:break-word;background-color:#00000080;border-bottom-left-radius:4px;border-bottom-right-radius:4px;bottom:0;color:#fff;font-size:1rem;padding:8px 12px;position:absolute;text-align:center;width:100%}.image-upload-area{align-items:center;background-color:var(--color-background);border:2px dashed #007bff;border-radius:8px;color:#007bff;cursor:pointer;display:flex;flex-direction:column;flex-shrink:0;height:180px;justify-content:center;min-width:180px;transition:all .3s ease;-webkit-user-select:none;user-select:none}.image-upload-area:hover{background-color:var(--color-background);border-color:#0056b3}.drag-over .image-upload-area{background-color:var(--color-background);border-color:#004085}.image-gallery.empty-gallery .image-upload-area{height:200px;margin:0 auto;max-width:400px;width:calc(100% - 32px)}.image-gallery:not(.empty-gallery) .image-upload-area{background-color:var(--color-background);position:-webkit-sticky;position:sticky;right:0;z-index:1}.image-gallery.empty-gallery{align-items:center;flex-wrap:wrap;justify-content:center;min-height:200px}.empty-gallery-message{color:#666;font-style:italic;text-align:center;width:100%}.empty-gallery-container{gap:20px;padding:20px}.empty-gallery .image-upload-area,.empty-gallery-container{align-items:center;display:flex;flex-direction:column;width:100%}.empty-gallery .image-upload-area{background-color:var(--color-background);border:2px dashed #007bff;cursor:pointer;height:200px;justify-content:center;margin:0 auto;max-width:400px;transition:all .3s ease}.empty-gallery .image-upload-area:hover{background-color:#f0f7ff;border-color:#0056b3}.image-viewer-overlay{background-color:#000000f2;height:100vh;left:0;overflow-y:auto;padding:20px 0;position:fixed;top:0;width:100vw;z-index:2000}.image-viewer-content,.image-viewer-overlay{align-items:center;display:flex;justify-content:center}.image-viewer-content{background-color:#0f172a;border-radius:12px;box-shadow:0 0 30px #3b82f6cc;margin:0 auto;max-height:90vh;max-width:90vw;overflow:hidden;position:relative}.image-viewer-img{border-radius:12px;box-shadow:0 0 10px #3b82f6,0 0 20px #2563eb,0 0 30px #3b82f6;display:block;filter:drop-shadow(0 0 10px #3b82f6) drop-shadow(0 0 20px #2563eb) drop-shadow(0 0 30px #3b82f6);height:auto;margin:auto;max-height:100%;max-width:100%;object-fit:contain;width:auto}.image-viewer-close{background:#0000;border:none;color:#3b82f6;cursor:pointer;font-size:2rem;font-weight:700;line-height:1;padding:0;position:absolute;right:12px;text-shadow:0 0 5px #3b82f6,0 0 10px #2563eb;top:8px;-webkit-user-select:none;user-select:none;z-index:10}.project-card{background-color:var(--color-background);border:1px solid var(--color-border);border-radius:var(--border-radius-md);box-shadow:0 4px 16px #00000026;color:var(--color-text);display:flex;flex-direction:column;max-width:400px;overflow:visible;padding:var(--spacing-md);position:relative;transition:transform .3s ease,box-shadow .3s ease}.project-card:hover{box-shadow:0 8px 24px #0003;transform:translateY(-6px)}.project-images{align-items:center;background-color:var(--color-background);border-radius:12px;box-shadow:0 2px 8px #0000001a;display:flex;justify-content:center;margin-bottom:8px;max-height:none;overflow:visible}.project-images img{border-radius:12px;max-height:none;max-width:100%;object-fit:contain;width:auto}.project-details{display:flex;flex-direction:column}.project-name{color:var(--color-primary);font-size:1.5rem;font-weight:800;letter-spacing:1px;line-height:1.1;margin-bottom:var(--spacing-sm);text-transform:uppercase}.project-description{color:var(--color-text-secondary);font-size:1rem;line-height:1.4}.project-description,.project-links{margin-bottom:var(--spacing-md)}.project-link{color:var(--color-link);cursor:pointer;font-weight:700;margin-right:var(--spacing-md);text-decoration:none;transition:color .2s ease}.project-link:hover{color:var(--color-primary);text-decoration:underline}.project-technologies{margin-top:auto}.project-technologies h4{color:var(--color-primary);font-size:1.1rem;font-weight:700;letter-spacing:.5px;margin-bottom:var(--spacing-sm);text-transform:uppercase}.technology-list{display:flex;flex-wrap:wrap;gap:var(--spacing-sm)}.technology-item{align-items:center;color:var(--color-text-secondary);display:flex;font-size:.9rem;gap:var(--spacing-xs)}.technology-icon{fill:currentColor;height:22px;width:22px}.project-ribbon{height:120px;overflow:visible;pointer-events:none;position:absolute;right:-10px;top:-10px;width:120px;z-index:10}.project-ribbon span{background-color:var(--color-primary);box-shadow:0 3px 8px #0003;color:#fff;display:block;font-family:Segoe UI,sans-serif;font-size:.7rem;font-weight:700;letter-spacing:.5px;padding:8px 0;position:absolute;right:-40px;text-align:center;text-shadow:0 1px 1px #0003;text-transform:uppercase;top:30px;transform:rotate(45deg);width:160px}.project-ribbon span:after,.project-ribbon span:before{background-color:inherit;bottom:-5px;content:"";height:10px;position:absolute;width:10px;z-index:-1}.project-ribbon span:before{-webkit-clip-path:polygon(0 0,100% 0,0 100%);clip-path:polygon(0 0,100% 0,0 100%);left:0}.project-ribbon span:after{-webkit-clip-path:polygon(0 0,100% 0,100% 100%);clip-path:polygon(0 0,100% 0,100% 100%);right:0}.project-ribbon.personal span{background-color:#4caf50;background:linear-gradient(135deg,#4caf50,#388e3c)}.project-ribbon.commission span,.project-ribbon.encargo span{background-color:#2196f3;background:linear-gradient(135deg,#2196f3,#1976d2)}.project-ribbon.en-curso span,.project-ribbon.in-progress span{background-color:#ff9800;background:linear-gradient(135deg,#ff9800,#f57c00)}.project-container{background-color:var(--color-background-alt);border-radius:var(--border-radius-md);box-shadow:0 4px 12px #0000001a;margin:var(--spacing-lg) 0;padding:var(--spacing-md);position:relative}.project-container-title{color:var(--color-primary);font-size:2rem;font-weight:800;letter-spacing:1.5px;margin-bottom:var(--spacing-md);text-transform:uppercase}.project-container-scroll{-webkit-overflow-scrolling:touch;background-color:var(--color-background-alt);display:flex;flex-wrap:nowrap;gap:2.5rem;max-width:100%;overflow-x:auto;padding-bottom:var(--spacing-sm);padding-right:60px;position:relative;scroll-behavior:smooth;scroll-snap-type:x mandatory;scrollbar-color:var(--color-primary) var(--color-background-alt);scrollbar-width:thin}.project-container-scroll>*{flex-shrink:0;scroll-snap-align:start;width:500px}.project-container-scroll-content{display:flex;flex-wrap:nowrap;gap:2.5rem;max-width:100%;padding-bottom:var(--spacing-sm);padding-right:60px}.rc-scrollbar-horizontal{height:20px!important}.rc-scrollbar-vertical{width:20px!important}.rc-scrollbar-thumb{background-color:var(--color-primary)!important;border:3px solid var(--color-background-alt)!important;border-radius:10px!important;transition:background-color .3s ease!important}.rc-scrollbar-thumb:hover{background-color:#0056b3!important;background-color:var(--color-primary-hover,#0056b3)!important}.project-container-scroll-content>*{flex-shrink:0;width:500px}@media (max-width:768px){.project-container-scroll-content{max-width:500px}.project-container-scroll{padding-right:20px}.project-container:after{background:linear-gradient(to left,var(--color-background-alt),#0000);content:"";height:100%;pointer-events:none;position:absolute;right:0;top:0;width:60px}}.scroll-arrow{animation:arrow-move 1.5s ease-in-out infinite;color:var(--color-primary);font-family:Segoe UI Symbol,Arial Unicode MS,Arial,sans-serif;font-size:2.5rem;font-weight:700;opacity:.8;pointer-events:none;position:absolute;text-shadow:0 0 5px #0000004d;top:50%;transform:translateY(-50%);transition:opacity .3s ease;-webkit-user-select:none;user-select:none;z-index:20}.scroll-arrow:hover{cursor:pointer;opacity:.8;pointer-events:auto}.right-arrow{right:10px}@keyframes arrow-move{0%,to{transform:translateY(-50%) translateX(0)}50%{transform:translateY(-50%) translateX(10px)}}.language-switcher-container{background-color:#222;color:#fff;font-family:Arial,sans-serif;left:0;position:fixed;top:0;width:100%;z-index:1000}.language-switcher-bar{cursor:pointer;font-weight:700;padding:8px 16px;text-align:center;-webkit-user-select:none;user-select:none}.language-switcher-menu{background-color:#333;display:flex;justify-content:space-around;padding:8px 0}.language-options button,.section-links button{background:none;border:none;color:#fff;cursor:pointer;font-size:14px;padding:8px 12px}.language-options button.active{font-weight:700;text-decoration:underline}.language-options button:hover,.section-links button:hover{background-color:#444}.section-links{align-items:center;display:flex;gap:12px}.whatido-section{align-items:center;background-color:rgba(var(--color-background-2-rgb),.95);box-sizing:border-box;color:var(--color-text);display:flex;flex-direction:column;margin:0 auto;max-width:1200px;padding:40px 20px;width:100%}.section-title{border-bottom:3px solid var(--color-primary);font-size:2.8rem;font-weight:700;margin-bottom:16px;max-width:600px;padding-bottom:8px;text-align:center;width:100%}.section-intro{color:var(--color-text-light);font-size:1.2rem;margin-bottom:32px;max-width:700px;text-align:center}.specialties-container{display:flex;flex-wrap:wrap;gap:24px;justify-content:center;width:100%}.specialty-card{align-items:center;background-color:var(--color-background);border-radius:12px;box-shadow:0 2px 8px #0000001a;cursor:default;display:flex;flex:1 1 250px;flex-direction:column;max-width:300px;padding:24px;text-align:center;transition:transform .3s ease}.specialty-card:hover{transform:translateY(-8px)}.specialty-icon{color:var(--color-primary);font-size:3rem;margin-bottom:16px}.specialty-title{font-size:1.5rem;font-weight:700;margin-bottom:12px}.specialty-description{color:var(--color-text-light);font-size:1rem}@media (max-width:768px){.specialties-container{align-items:center;flex-direction:column}}:root{--color-primary:#2563eb;--color-primary-light:#2563eb4d;--color-primary-hover:#1e40af;--color-background:#121212;--color-background-2:#1e1e2f;--color-selected:#3b82f6;--color-text:#e0e0e0;--color-text-light:#a0a0a0;--color-white:#fff;--color-gray-light:#f8f9fa33;--font-family-primary:"Segoe UI",Tahoma,Geneva,Verdana,sans-serif;--font-size-small:14px;--font-size-normal:16px;--font-size-large:20px;--font-size-xlarge:24px;--font-weight-normal:400;--font-weight-bold:700;--spacing-xs:4px;--spacing-sm:8px;--spacing-md:16px;--spacing-lg:24px;--spacing-xl:32px;--spacing-menu-offset:90px;--spacing-page-container-padding:160px;--border-radius-sm:4px;--border-radius-md:8px;--border-radius-lg:12px;--border-width:4px;--z-index-menu:10;--z-index-modal:100}*{box-sizing:border-box;margin:0;padding:0}body{background-color:var(--color-background);color:var(--color-text);font-family:var(--font-family-primary);line-height:1.5}button{background-color:initial;border:none;border-radius:var(--border-radius-sm);cursor:pointer;font-size:var(--font-size-normal);padding:var(--spacing-sm) var(--spacing-md);transition:background-color .3s ease}button:hover{background-color:var(--color-primary-light)}input{border:1px solid var(--color-text-light);border-radius:var(--border-radius-sm);font-size:var(--font-size-normal);padding:var(--spacing-sm)}.container{margin:0 auto;max-width:1200px;padding:0 var(--spacing-md)}.text-center{text-align:center}.mt-1{margin-top:var(--spacing-xs)}.mt-2{margin-top:var(--spacing-sm)}.mt-3{margin-top:var(--spacing-md)}.mt-4{margin-top:var(--spacing-lg)}.mt-5{margin-top:var(--spacing-xl)}.mb-1{margin-bottom:var(--spacing-xs)}.mb-2{margin-bottom:var(--spacing-sm)}.mb-3{margin-bottom:var(--spacing-md)}.mb-4{margin-bottom:var(--spacing-lg)}.mb-5{margin-bottom:var(--spacing-xl)}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}
/*# sourceMappingURL=main.b07c58a7.css.map*/