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}html{scroll-behavior:smooth}.App{background:#f4f6f9;color:#333;font-family:Segoe UI,sans-serif;margin:0;min-height:100vh;overflow-x:hidden;padding:0;position:relative}.under-construction:before{animation:moveStripes 12s linear infinite;background:repeating-linear-gradient(45deg,#f7c948,#f7c948 40px,#1e1e1e 0,#1e1e1e 80px);content:"";height:200%;left:-50%;opacity:.06;position:fixed;top:-50%;width:200%;z-index:0}@keyframes moveStripes{0%{transform:translateX(0)}to{transform:translateX(120px)}}.main-content{margin:100px auto;max-width:1200px;padding:0 40px;position:relative;text-align:center}.about-section{margin-bottom:50px}.about-section h1{font-size:36px;margin-bottom:15px}.about-section p{line-height:1.6;margin-bottom:10px}.construction-card{background:#fff;border-radius:16px;box-shadow:0 15px 40px #0000001a;padding:40px}.construction-card h2{margin-bottom:15px}.top-bar{backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);background:#ffffffb3;border-bottom:1px solid #0000000d;left:0;position:fixed;top:0;transition:all .4s cubic-bezier(.4,0,.2,1);width:100%;z-index:1000}.top-bar.scrolled{background:#ffffffe6;box-shadow:0 4px 20px #00000014;padding:8px 0}.top-bar-inner{justify-content:space-between;margin:0 auto;max-width:1200px;padding:16px 24px}.nav-left,.top-bar-inner{align-items:center;display:flex}.nav-left{gap:25px}.lang-switcher{align-items:center;background:#0000000a;border-radius:20px;display:flex;font-size:.7rem;font-weight:700;gap:8px;padding:4px 10px}.lang-switcher button{background:none;border:none;color:#888;cursor:pointer;font-family:inherit;font-weight:700;line-height:1;padding:2px 4px;transition:all .2s ease}.lang-switcher button.active{color:#1a2a6c}.lang-switcher .separator{color:#ddd;font-weight:400}.brand{-webkit-text-fill-color:#0000;align-items:center;background:linear-gradient(135deg,#1e3c72,#2a5298);-webkit-background-clip:text;background-clip:text;color:#1a202c;display:flex;font-size:1.25rem;font-weight:800;gap:8px;letter-spacing:-.5px}.brand:before{background:#2a5298;border-radius:50%;content:"";display:inline-block;height:8px;width:8px}.nav-center{display:flex;gap:32px}.nav-center a{color:#4a5568;font-size:.95rem;font-weight:600;padding:4px 0;position:relative;text-decoration:none;transition:all .3s ease}.nav-center a:after{background:#2a5298;bottom:0;content:"";height:2px;left:0;position:absolute;transition:width .3s ease;width:0}.nav-center a:hover{color:#2a5298}.nav-center a:hover:after{width:100%}.nav-right{align-items:center;display:flex;gap:12px}.cv-link,.github-link{align-items:center;border-radius:12px;box-shadow:0 4px 12px #0000001a;display:flex;font-size:.9rem;font-weight:600;gap:8px;padding:8px 18px;text-decoration:none;transition:all .3s cubic-bezier(.4,0,.2,1)}.github-link{background:#1a202c;color:#fff!important}.github-link:hover{background:#2d3748;box-shadow:0 6px 15px #0003;transform:translateY(-2px)}.cv-link{background:#fff;border:1px solid #2a529833;color:#2a5298!important}.cv-link:hover{background:#f8fafc;border-color:#2a5298;box-shadow:0 6px 15px #2a529826;transform:translateY(-2px)}.main-content{padding-top:100px!important}@media (max-width:768px){.nav-center{display:none}}.main-content{margin:20px auto 0;max-width:900px;padding:0 20px}.section-placeholder{background:#fff;border-radius:12px;box-shadow:0 8px 20px #00000014;margin-bottom:20px;margin-top:10px;padding:10px 30px;scroll-margin-top:70px}.section-placeholder h2{margin-bottom:10px}.footer{opacity:.7;padding:20px}.about-container{align-items:flex-start;gap:40px;margin-bottom:20px;margin-top:auto}.about-text{flex:2 1;text-align:justify}.about-text p{color:#444}.about-tags{margin-top:15px}.about-tags span{background:#e6f0ff;border-radius:20px;display:inline-block;font-size:.85rem;margin-right:10px;padding:6px 12px}.about-card{background:#fff;border-radius:20px;box-shadow:0 10px 25px #00000014;flex:1 1;padding:25px}.about-card h4{margin-bottom:15px}@media (max-width:900px){.about-container{flex-direction:column}}.modal-overlay{align-items:center;animation:fadeIn .25s ease;background:#0009;display:flex;inset:0;justify-content:center;position:fixed;z-index:2000}.modal-content{animation:scaleIn .25s ease;background:#fff;border-radius:20px;box-shadow:0 20px 60px #00000040;max-width:600px;padding:40px;width:90%}.modal-content h2{margin-top:0}.modal-content ul{padding-left:20px}.modal-content button{background:#2a5298;border:none;border-radius:10px;color:#fff;cursor:pointer;margin-top:20px;padding:8px 20px}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes scaleIn{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}.tech-grid{grid-gap:40px;display:grid;gap:40px;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));margin-top:50px}.tech-grid.integrated{gap:15px;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));margin-bottom:25px;margin-top:25px}.tech-grid.integrated .tech-card{align-items:center;background:#fff6;border:1px solid #0000000a;box-shadow:0 2px 8px #00000005;display:flex;gap:12px;padding:12px 16px;text-align:left}.tech-grid.integrated .tech-card h4{color:#1a202c;font-size:.85rem;margin:0}.tech-grid.integrated .tech-card p{color:#718096;font-size:.7rem;margin:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tech-grid.integrated .tech-card svg{color:#2a5298;flex-shrink:0}.tech-card{background:#fff;border-radius:18px;box-shadow:0 10px 30px #00000014;padding:30px;text-align:center;transition:all .3s ease}.tech-card:hover{box-shadow:0 18px 40px #00000026;transform:translateY(-8px)}.tech-card h4{margin-bottom:10px;margin-top:15px}.tech-card p{color:#555;font-size:.9rem}@media (max-width:900px){.tech-grid{grid-template-columns:1fr}}.utilities-grid{grid-gap:32px;display:grid;gap:32px;grid-template-columns:1fr;margin-left:auto;margin-right:auto;margin-top:40px;max-width:1200px}.repo-card.terminal{background:#1a1a1a;border:1px solid #333;border-radius:12px;box-shadow:0 10px 30px #0003;display:flex;flex-direction:column;overflow:hidden;transition:all .3s cubic-bezier(.4,0,.2,1)}.repo-card.terminal:hover{border-color:#2a5298;box-shadow:0 15px 45px #2a529833;transform:translateY(-8px)}.repo-window-header{align-items:center;background:#333;border-bottom:1px solid #444;display:flex;gap:8px;padding:10px 15px}.repo-window-header .dot{border-radius:50%;height:12px;width:12px}.dot.red{background:#ff5f56}.dot.yellow{background:#ffbd2e}.dot.green{background:#27c93f}.window-title{color:#888;font-family:Fira Code,monospace;font-size:.75rem;margin-left:auto}.repo-body{flex-grow:1;padding:24px}.repo-card.terminal .repo-header h3{color:#fff;font-family:Fira Code,monospace;font-size:1.25rem;margin:0;text-align:left}.repo-card.terminal .repo-tag{background:#2a529833;border:1px solid #2a52984d;color:#a0c4ff}.repo-terminal-content{font-family:Fira Code,Courier New,monospace;margin:20px 0;text-align:left}.repo-terminal-content p{font-size:.9rem;margin:5px 0}.repo-terminal-content p:first-child,.repo-terminal-content p:nth-child(3){color:#27c93f}.terminal-output{color:#ddd;margin-bottom:10px!important;padding-left:15px}.terminal-list{list-style:none;margin:5px 0 0 15px;padding:0}.terminal-list li{color:#a0c4ff;font-size:.85rem;margin-bottom:4px}.repo-card.terminal .repo-badges{display:flex;flex-wrap:wrap;gap:8px;margin-top:auto}.repo-card.terminal .repo-footer{background:#222;border-top:1px solid #333;padding:15px 24px;text-align:left}.terminal-link{color:#fff;display:block;font-family:Fira Code,monospace;font-size:.9rem;text-decoration:none;transition:color .2s}.terminal-link:hover{color:#27c93f}.profile-image{border:1px solid #333;border-radius:20px}.about-container{align-items:center;display:flex;flex-wrap:wrap;gap:60px;opacity:0;transform:translateY(40px);transition:all .8s ease}.about-container.fade-in{opacity:1;transform:translateY(0)}.about-image{cursor:pointer;flex:0 0 220px;perspective:1000px}.about-image-inner{height:220px;position:relative;text-align:center;transform-style:preserve-3d;transition:transform .8s cubic-bezier(.4,0,.2,1);width:220px}.about-image-inner.is-flipped{transform:rotateY(180deg)}.about-image-back,.about-image-front{-webkit-backface-visibility:hidden;backface-visibility:hidden;border-radius:50%;height:100%;position:absolute;width:100%}.about-image-back{transform:rotateY(180deg)}.profile-image{border:3px solid #2a5298;border-radius:50%;box-shadow:0 15px 35px #0003;display:block;height:220px;object-fit:cover;width:220px}.about-image:hover .profile-image{box-shadow:0 20px 45px #2a52984d}.about-text{flex:1 1}.about-text h3{font-size:28px;margin-bottom:15px}.about-text p{line-height:1.6;margin-bottom:15px;text-align:justify}.about-tags{display:flex;flex-wrap:wrap;gap:12px;margin-top:20px}.about-tags span{background:#fff;border:1px solid #2a5298;border-radius:999px;color:#2a5298;font-size:13px;font-weight:500;padding:6px 14px;transition:all .3s ease}.about-tags span:hover{background:#2a5298;color:#fff}@media (max-width:768px){.about-container{gap:30px}.about-container,.about-text,.about-text p{text-align:center}}.footer{color:#000;padding:25px 20px;text-align:center}.footer-content{margin:0 auto;max-width:1200px}.footer a{color:#000;font-weight:500;text-decoration:none}.footer a:hover{text-decoration:underline}.footer .contact{margin-top:10px}.footer .contact h4{margin-bottom:5px}.tech-badge{border-radius:20px;cursor:default;display:inline-block;font-size:.85rem;font-weight:500;margin:4px;padding:6px 12px;transition:all .2s ease}.tech-badge.default{background:#1f1f1f;border:1px solid #333;color:#fff}.tech-badge.backend{background:#16213e;color:#00d8ff}.tech-badge.frontend{background:#2c1a4d;color:#b892ff}.tech-badge:hover{transform:translateY(-2px)}.timeline-section{margin:0 auto;max-width:1200px;padding:100px 20px;position:relative}.timeline-container{padding:40px 0;position:relative}.timeline-filters{display:flex;gap:16px;justify-content:center;margin-bottom:50px;position:relative;z-index:20}.timeline-filter-btn{backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);background:#fff6;border:1px solid #fff6;border-radius:999px;box-shadow:0 4px 20px #00000005;color:#4a5568;cursor:pointer;font-size:.95rem;font-weight:700;padding:12px 28px;transition:all .4s cubic-bezier(.16,1,.3,1)}.timeline-filter-btn:hover{background:#ffffffd9;border-color:#2a529826;box-shadow:0 8px 25px #2a52981a;color:#2a5298;transform:translateY(-3px)}.timeline-filter-btn.active{background:linear-gradient(135deg,#1e3c72,#2a5298);border-color:#0000;box-shadow:0 10px 30px #2a529859;color:#fff;transform:translateY(-2px) scale(1.03)}.timeline-filter-btn:active{transform:translateY(-1px) scale(.98)}.timeline-line-v{background:linear-gradient(180deg,#0000,#2a5298 15%,#1e3c72 50%,#2a5298 85%,#0000);border-radius:4px;bottom:0;box-shadow:0 0 15px #2a529833;left:50%;position:absolute;top:110px;transform:translateX(-50%);width:4px}.timeline-items{display:flex;flex-direction:column;gap:40px}.timeline-item{box-sizing:border-box;display:flex;justify-content:flex-end;opacity:0;padding-right:50%;position:relative;transform:translateY(40px);transition:all .8s cubic-bezier(.16,1,.3,1);width:100%;will-change:transform,opacity}.timeline-item.in-view{opacity:1;transform:translateY(0)}.timeline-item:nth-child(2n){justify-content:flex-start;padding-left:50%;padding-right:0}.timeline-dot{background:#2a5298;border:4px solid #fff;border-radius:50%;box-shadow:0 0 0 4px #2a52981a;height:20px;left:50%;position:absolute;top:30px;transform:translateX(-49%) scale(0);transition:all .6s cubic-bezier(.34,1.56,.64,1);transition-delay:.2s;width:20px;z-index:10}.timeline-item.in-view .timeline-dot{transform:translateX(-49%) scale(1)}.timeline-item:hover .timeline-dot{background:#1e3c72;box-shadow:0 0 20px #1e3c7280;transform:translateX(-49%) scale(1.3)}.timeline-content{backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);background:#ffffffb3;border:1px solid #ffffff80;border-radius:24px;box-shadow:0 10px 40px #0000000a;padding:24px 30px;position:relative;transition:all .5s cubic-bezier(.4,0,.2,1);width:85%}.timeline-item:nth-child(odd) .timeline-content{margin-right:30px;text-align:right}.timeline-item:nth-child(2n) .timeline-content{margin-left:30px;text-align:left}.timeline-content:hover{background:#ffffffe6;border-color:#2a529833;box-shadow:0 20px 60px #0000001a;transform:translateY(-10px) scale(1.02)}.timeline-header{align-items:center;display:flex;gap:16px;margin-bottom:16px}.timeline-item:nth-child(odd) .timeline-header{flex-direction:row-reverse}.timeline-icon{align-items:center;background:linear-gradient(135deg,#e6f0ff,#d1e3ff);border-radius:16px;color:#2a5298;display:flex;flex-shrink:0;font-size:1.4rem;height:50px;justify-content:center;transition:transform .4s ease;width:50px}.timeline-item:hover .timeline-icon{background:#2a5298;color:#fff;transform:rotate(10deg)}.timeline-details{display:flex;flex-direction:column}.timeline-date{color:#2a5298;font-size:.85rem;font-weight:800;letter-spacing:1px;margin-bottom:4px;text-transform:uppercase}.timeline-content h4{color:#1a202c;font-size:1.4rem;font-weight:800;letter-spacing:-.5px;margin:0}.timeline-content p{color:#4a5568;font-size:1rem;line-height:1.7;margin:12px 0 0}.timeline-actions{display:flex;justify-content:center;margin-top:40px;position:relative;z-index:20}.timeline-toggle-btn{backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);background:#fffc;border:1px solid #2a529833;border-radius:999px;box-shadow:0 4px 15px #0000000d;color:#2a5298;cursor:pointer;font-size:.95rem;font-weight:700;padding:12px 30px;transition:all .3s ease}.timeline-toggle-btn:hover{background:#2a5298;box-shadow:0 8px 25px #2a52984d;color:#fff;transform:translateY(-3px)}@media (max-width:768px){.timeline-filters{gap:8px;margin-bottom:35px;padding:0 10px}.timeline-filter-btn{font-size:.85rem;padding:8px 20px}.timeline-line-v{left:20px;top:85px}.timeline-item{justify-content:flex-start!important;padding-left:50px!important;padding-right:0!important}.timeline-dot{left:20px;top:35px}.timeline-content{margin:0!important;padding:24px;text-align:left!important;width:100%}.timeline-header{flex-direction:row!important}.timeline-icon{height:40px;width:40px}.timeline-content h4,.timeline-icon{font-size:1.2rem}.timeline-toggle-btn{padding:14px;width:100%}}.projects-section{margin-top:60px;padding-bottom:40px}.projects-filter-wrapper{display:flex;justify-content:center;margin-bottom:50px}.projects-categories{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#ffffff80;border:1px solid #0000000d;border-radius:40px;box-shadow:0 10px 25px #00000008;display:flex;gap:4px;padding:6px}.projects-categories button{background:#0000;border:none;border-radius:35px;color:#64748b;cursor:pointer;font-size:.95rem;font-weight:600;padding:10px 24px;position:relative;transition:all .3s cubic-bezier(.4,0,.2,1);z-index:1}.projects-categories button.active{background:#1e3c72;box-shadow:0 8px 20px #1e3c7240;color:#fff}.projects-categories button:hover:not(.active){background:#00000008;color:#1e3c72}.projects-categories button.active:after{background:linear-gradient(135deg,#ffffff1a,#fff0);border-radius:35px;bottom:0;content:"";left:0;pointer-events:none;position:absolute;right:0;top:0}.projects-grid{grid-gap:40px;display:grid;gap:40px;grid-template-columns:repeat(auto-fill,minmax(480px,1fr))}.project-card{background:#fff;border:1px solid #00000008;border-radius:20px;box-shadow:0 10px 30px #0000000f;cursor:pointer;display:flex;flex-direction:column;overflow:hidden;transition:all .4s cubic-bezier(.4,0,.2,1)}.project-card:hover{box-shadow:0 20px 50px #0000001f;transform:translateY(-12px)}.project-image{height:280px;overflow:hidden;position:relative;width:100%}.project-image img{height:100%;object-fit:cover;object-position:top;transition:transform .6s ease;width:100%}.project-card:hover .project-image img{transform:scale(1.1)}.project-content{display:flex;flex-direction:column;flex-grow:1;padding:24px;text-align:left}.project-card h4{color:#1a202c;font-size:1.25rem;font-weight:700;margin:0 0 12px}.project-card p{color:#4a5568;font-size:.95rem;line-height:1.6;margin:0 0 20px}.project-tech-tags{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:24px}.tech-tag{background:#f1f5f9;border-radius:6px;color:#475569;font-size:.75rem;font-weight:600;letter-spacing:.5px;padding:4px 10px;text-transform:uppercase}.project-link{align-items:center;border-top:1px solid #f1f5f9;color:#2a5298;display:flex;font-weight:600;gap:10px;margin-top:auto;padding-top:15px;text-decoration:none;transition:color .2s ease}.project-link:hover{color:#1e3c72}.project-link span{font-size:.95rem}.project-overlay{align-items:center;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#2a5298d9;display:flex;inset:0;justify-content:center;opacity:0;position:absolute;transition:opacity .3s ease}.project-card:hover .project-overlay{opacity:1}.project-overlay span{border:2px solid #fff;border-radius:30px;color:#fff;font-size:1.1rem;font-weight:700;padding:10px 24px;transform:translateY(10px);transition:transform .3s ease}.project-card:hover .project-overlay span{transform:translateY(0)}.project-modal-overlay{align-items:center;animation:modalFadeIn .3s ease;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#0006;display:flex;inset:0;justify-content:center;padding:20px;position:fixed;z-index:2000}.project-modal-content{animation:modalScaleIn .4s cubic-bezier(.34,1.56,.64,1);background:#fff;border-radius:32px;box-shadow:0 30px 100px #0000004d;max-width:800px;overflow:hidden;position:relative;width:100%}@keyframes modalFadeIn{0%{opacity:0}to{opacity:1}}@keyframes modalScaleIn{0%{opacity:0;transform:scale(.85)}to{opacity:1;transform:scale(1)}}.modal-close{align-items:center;background:#ffffffe6;border:none;border-radius:50%;box-shadow:0 4px 12px #00000026;color:#1a202c;cursor:pointer;display:flex;font-size:1.2rem;height:44px;justify-content:center;position:absolute;right:24px;top:24px;transition:all .2s ease;width:44px;z-index:10}.modal-close:hover{background:#ff4757;color:#fff;transform:rotate(90deg)}.modal-body{display:flex;flex-direction:column;height:100%;max-height:90vh;overflow-y:auto}.modal-image-col{align-items:center;background:#f8fafc;border-bottom:1px solid #f1f5f9;display:flex;justify-content:center;overflow:hidden;padding:0;width:100%}.modal-image-col img{display:block;height:auto;object-fit:cover;width:100%}.modal-info-col{padding:40px;text-align:left;width:100%}.modal-info-col h2{color:#1a202c;font-size:2.2rem;letter-spacing:-1px;margin:0 0 16px}.modal-tech-list{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:24px}.modal-full-desc{color:#4a5568;font-size:1.1rem;line-height:1.6;margin-bottom:32px}.modal-info-col h3{color:#1a202c;font-size:1.1rem;letter-spacing:1px;margin-bottom:16px;text-transform:uppercase}.modal-features{list-style:none;margin:0 0 40px;padding:0}.modal-features li{color:#4a5568;font-size:1rem;margin-bottom:12px;padding-left:28px;position:relative}.modal-features li:before{color:#2a5298;content:"✓";font-weight:900;left:0;position:absolute}.modal-actions{display:flex;gap:16px}.modal-btn-primary{align-items:center;background:#2a5298;border-radius:12px;box-shadow:0 10px 20px #2a529833;color:#fff;display:flex;font-weight:600;gap:12px;padding:14px 28px;text-decoration:none;transition:all .3s ease}.modal-btn-primary:hover{background:#1e3c72;box-shadow:0 15px 25px #2a52984d;transform:translateY(-2px)}@media (max-width:900px){.projects-grid{grid-template-columns:1fr;margin:0 auto;max-width:500px}.modal-body{flex-direction:column}.modal-image-col{flex:none;height:250px}.modal-info-col{padding:32px 24px}.modal-info-col h2{font-size:1.7rem}}
/*# sourceMappingURL=main.2bf216ae.css.map*/