*{box-sizing:border-box}a[href="https://neat.firecms.co"]{display:none!important}:root[data-theme=dark]{--blend-title-color: rgb(202, 228, 233);--blend-title-color: rgba(105, 229, 254, .781);--bg-color: #020210;--text-color: white;--section-bg: rgba(0, 0, 0, .6);--navbar-bg: rgba(12, 12, 14, .57);--navbar-bg-fuerte: rgba(12, 12, 14, .829);--navbar-border: rgba(168, 168, 168, .06);--navbar-link-hover: #8fe6f4ff;--link-color: #ffffffff;--link-hover-color: #8fe7f4c2;--link-card-color: #03a9f4;--link-contacto: #d6d6d6;--link-contacto-hover: #ffffff;--link-contacto-bg-hover: rgba(255, 255, 255, .08);--contact-link-shadow: 0 1px 4px rgba(255,255,255,.08);--contact-link-shadow-hover: 0 3px 8px rgba(255,255,255,.12);--toggle-bg: #4d58795a;--toggle-bg-hover: #4c557089;--toggle-ball: #fff;--toggle-glow: 0 0 6px rgba(120, 170, 255, .28);--btn-bg: #03a9f4;--btn-hover-bg: #0288d1;--btn-secondary-bg: transparent;--btn-secondary-color: #03a9f4;--btn-form-bg: #2B3C8D;--btn-form-hover-bg: #188efdb4;--btn-form-hover-text: #fff;--btn-form-text: white;--card-bg: rgba(255, 255, 255, .07);--card-hover-bg: rgba(57, 54, 63, .15);--proyect-btn-color: rgba(255, 255, 255, .1);--proyect-btn-hover-color: #17518fd9;--proyect-text-color: rgba(255, 255, 255, 1);--proyect-text-hover-color: rgba(255, 255, 255, 1);--btn-vermas-text: rgba(255, 255, 255, 1);--background-tecn-card: rgba(255, 255, 255, .033);--fondo-modal: transparent;--modal-background: #0d0e0f63;--modal-bg: #3a3f4eb0;--modal-text: #f9f9f9ff;--flechas: #f9f9f9ff;--modal-chip-bg: rgba(255,255,255,.08);--modal-chip-border: rgba(255,255,255,.15);--footer: rgba(255, 255, 255, .82);--footer-hover: rgba(255, 255, 255, 1);--footer-background: rgba(0, 0, 0, .25);--footer-border: rgba(255, 255, 255, .06)}:root[data-theme=light]{--blend-title-color: rgba(55, 39, 19, .6);--bg-color: #f6f4ed;--text-color: #3C2F22;--section-bg: rgba(185, 174, 154, .29);--navbar-bg: rgba(192, 165, 149, .16);--navbar-border: rgba(77, 77, 77, .07);--navbar-link-hover: #a87c3eff;--link-color: #3C2F22;--link-card-color: #3C2F22cc;--link-hover-color: #bd955d60;--link-contacto: #444;--link-contacto-hover: #111;--link-contacto-bg-hover: rgba(0, 0, 0, .05);--contact-link-shadow: 0 1px 3px rgba(0,0,0,.1);--contact-link-shadow-hover: 0 2px 6px rgba(0,0,0,.16);--toggle-bg: #584321a7;--toggle-bg-hover: #BFA47A;--toggle-ball: #F8F6F2;--toggle-glow: 0 0 6px rgba(255, 230, 180, .45);--btn-bg: #bfa57add;--btn-hover-bg: #6a5025a7;--btn-secondary-bg: transparent;--btn-secondary-color: #BFA47A;--card-bg: rgba(185, 174, 154, .23);--card-hover-bg: rgba(238, 238, 238, .35);--proyect-btn-color: #23150688;--proyect-btn-hover-color: #bfa57a98;--proyect-text-color: #ffffffff;--btn-vermas-text: #231506c9;--proyect-text-hover-color: white;--background-tecn-card: rgba(185, 174, 154, .25);--btn-form-bg: #272219e4;--btn-form-hover-bg: #2a1f15b9;--btn-form-text: #fff;--btn-form-hover-text: #fff;--fondo-modal: rgba(0, 0, 0, .55);--modal-background: #897f7d65;--modal-bg: #fffffff6;--modal-text: #3C2F22;--flechas: #3C2F22;--modal-chip-bg: rgba(0,0,0,.06);--modal-chip-border: rgba(0,0,0,.15);--footer: #2C241D;--footer-hover: #1A1612;--footer-background: rgba(185, 174, 154, .17);--footer-border: rgba(215, 183, 154, .18)}body,html{margin:0;padding:0;height:100%;font-family:Segoe UI,sans-serif;color:var(--text-color);overflow-x:clip;transition:background-color .4s ease,color .4s ease}html[data-theme=dark],body[data-theme=dark]{background:#07070d8d}html[data-theme=light],body[data-theme=light]{background:#f0e8cddd}#gradient{position:fixed;top:0;left:0;width:100vw;height:100vh;z-index:-1;display:block}:root[data-theme=light] #gradient{background:#f6f4ed}:root[data-theme=dark] #gradient{background:#0d0d14e9}.reveal-item{will-change:transform,opacity,filter}.btn-click{animation:click-compress .15s cubic-bezier(.4,0,.3,1)}@keyframes click-compress{0%{transform:scale(1);box-shadow:0 2px 6px #00000040;filter:brightness(1)}45%{transform:scale(.92);box-shadow:0 1px 3px #0003;filter:brightness(.94)}to{transform:scale(1);box-shadow:0 2px 6px #00000040;filter:brightness(1)}}.navbar{position:fixed;left:0;top:0;transform:translateY(0);width:100%;background:var(--navbar-bg);backdrop-filter:blur(14px) saturate(160%);-webkit-backdrop-filter:blur(14px) saturate(160%);border-bottom:1px solid var(--navbar-border);box-shadow:0 2px 10px #0000000d;z-index:100;padding:.6rem;transition:transform .4s cubic-bezier(.25,.46,.45,.94),background-color .25s ease,box-shadow .25s ease}.navbar.scrolled{background:var(--navbar-bg);box-shadow:0 2px 10px #0000001a}.navbar.hidden{transform:translateY(-110%);transition:transform .3s cubic-bezier(.25,.46,.45,.94)}.navbar .container{max-width:90%;margin:0 auto;display:flex;justify-content:space-between;align-items:center;height:4.3rem}.navbar-right{display:flex;align-items:center;gap:2rem}.navbar .logo img{height:26px;width:auto;display:block;transform:scale(2.5);transform-origin:left center}.nav-links{list-style:none;display:flex;gap:1.3rem;font-size:1.1rem;margin:0;padding:0}.nav-links a{color:var(--link-color);text-decoration:none;font-weight:600;transition:color .15s ease,background .15s ease;position:relative;padding:.25rem .5rem;border-radius:6px}.nav-links a:hover{color:var(--navbar-link-hover);background:var(--nav-link-bg-hover)}.nav-links a:after{content:"";position:absolute;left:0;bottom:0;height:2px;width:0%;background:var(--link-hover-color);transition:width .1.5s ease}.nav-links a:hover:after{width:100%}.logo{color:var(--text-color);font-weight:700;font-size:2rem;text-decoration:none;flex-shrink:0;transition:all 3s}.logo:hover{transform:scale(1.05)}.wrapper{display:flex;align-items:center}#theme-toggle{opacity:0;width:0;height:0}.toggle{width:36px;height:18px;background:var(--toggle-bg);border-radius:30px;position:relative;cursor:pointer;box-shadow:0 2px 6px #00000040,inset 0 1px 1px #ffffff40,0 0 3px #fff3;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);transition:transform .15s cubic-bezier(.25,1.4,.5,1),background .1s ease,box-shadow .1s ease,border-color .1s ease,filter .1s ease}.toggle-ball{position:absolute;top:2px;left:2px;width:14px;height:14px;background:var(--toggle-ball);border-radius:50%;box-shadow:0 2px 6px #00000040,inset 0 1px 2px #fffc;transition:transform .07s cubic-bezier(.25,1,.5,1),background-color .07s ease,box-shadow .07s ease}#theme-toggle:checked+.toggle .toggle-ball{transform:translate(18px);box-shadow:0 2px 6px #00000059,inset 0 1px 2px #ffffffe6}#theme-toggle:checked+.toggle:hover .toggle-ball{transform:translate(18px) scale(1.05)}.toggle:hover{background:var(--toggle-bg-hover)}.toggle:hover .toggle-ball{transform:scale(1.05);box-shadow:0 2px 6px #00000040,inset 0 1px 1px #ffffffe6,0 0 6px #ffffff59}.toggle:active .toggle-ball{transform:scale(.85);transition-duration:.07s}#theme-toggle:checked+.toggle:active .toggle-ball{transform:translate(18px) scale(.85)}.language-switcher{position:relative;display:flex;align-items:center}.lang-button{margin-right:.5rem;display:inline-flex;align-items:center;gap:.375rem;padding:.4rem .5rem;font-size:.6rem;font-weight:700;letter-spacing:.8px;color:var(--text-color);background:var(--navbar-border);border:1px solid var(--navbar-border);border-radius:5px;cursor:pointer;transition:all .2s ease}.lang-button:hover{background:var(--nav-link-bg-hover);border-color:var(--link-color)}.lang-icon{width:1rem;height:1rem;opacity:.6}.lang-menu{position:absolute;top:calc(100% + .5rem);right:0;min-width:7rem;background:var(--navbar-bg-fuerte);border:1px solid var(--navbar-border);border-radius:6px;box-shadow:0 4px 12px #00000026;padding:.25rem 0;z-index:1000;opacity:1;transform:scale(1);transition:opacity .1s ease,transform .1s ease}.lang-menu.hidden{opacity:0;transform:scale(.95);pointer-events:none}.lang-option{display:block;width:100%;padding:.5rem .75rem;font-size:.75rem;font-weight:500;color:var(--text-color);background:transparent;border:none;text-align:left;cursor:pointer;transition:background .2s ease,color .2s ease}.lang-option:hover{background:var(--nav-link-bg-hover);color:var(--navbar-link-hover)}.lang-option:focus{outline:none;background:var(--nav-link-bg-hover);color:var(--navbar-link-hover)}.hero-section{height:90vh;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center}.hero-reveal{opacity:0;transform:translateY(15px);transition:opacity .6s ease,transform .6s ease;transition:opacity .3s ease,transform .3s ease}.hero-reveal.visible{opacity:1;transform:translateY(0)}.blend-title{font-size:clamp(4rem,5vw,5rem);font-size:clamp(2rem,4vw,3.5rem);font-weight:700;color:var(--blend-title-color);opacity:1;pointer-events:none;margin:0;font-family:Inter,sans-serif}body.dark .blend-title{mix-blend-mode:color-dodge}body.light .blend-title{mix-blend-mode:darken;filter:brightness(1.2) contrast(1.2)}.subtitle{font-size:1.5rem;margin-top:1rem;color:var(--text-color)}.hero-buttons{margin-top:2rem;display:flex;gap:1rem;justify-content:center;flex-wrap:wrap}.hero-buttons .btn{flex:1;min-width:155px}.btn{padding:.8rem 1.6rem;font-weight:600;text-decoration:none;border-radius:5px;-webkit-user-select:none;user-select:none;position:relative;overflow:hidden;display:inline-flex;justify-content:center;align-items:center;transition:transform .15s ease,box-shadow .15s ease,background .15s ease;box-shadow:0 2px 4px #0000002e}.btn:hover{transform:scale(1.07);box-shadow:0 6px 12px #00000040}.btn-glow:before,.btn-glow:after{content:"";position:absolute;top:0;left:0;height:100%;transform:translate(-100px) skew(-15deg);pointer-events:none}.btn-glow:before{width:60px;background:#fff;filter:blur(30px);opacity:.5;z-index:0}.btn-glow:after{width:30px;left:30px;background:#fff3;filter:blur(5px);z-index:0}.btn-glow:hover:before,.btn-glow:hover:after{transform:translate(300px) skew(-15deg);transition:transform .8s ease}.btn-glow:hover:before{opacity:1}.btn-primary{background-color:var(--btn-bg);color:#fff;border:2px solid var(--btn-bg)}.btn-primary:hover{background-color:transparent;color:var(--btn-bg);border-color:var(--btn-bg);transform:scale(1.09)}.btn-secondary{background-color:transparent;color:var(--btn-bg);border:2px solid var(--btn-bg)}.btn-secondary:hover{background-color:var(--btn-bg);color:#fff}.scroll-indicator{position:fixed;bottom:3rem;left:50%;transform:translate(-50%);color:var(--text-color);opacity:.6;animation:bounce 2s infinite;cursor:pointer;transition:opacity .3s ease,visibility .3s ease;visibility:visible;width:40px;height:40px;display:flex;align-items:center;justify-content:center;z-index:100}.scroll-indicator.hidden{opacity:0;visibility:hidden;pointer-events:none}.scroll-indicator:hover{opacity:1}.scroll-indicator svg{width:26px;height:26px;stroke:currentColor}@keyframes bounce{0%,to{transform:translateY(0)}50%{transform:translateY(8px)}}@media (max-width: 768px){.scroll-indicator{display:none}}.container{max-width:1100px;margin:0 auto;padding:2rem 1rem;position:relative;z-index:10}h2{font-size:2rem;margin:2rem}.section{text-align:center;padding:4rem 1rem}#proyectos{scroll-margin-top:4rem}.section,#skills,#about{scroll-margin-top:7rem}#contact{scroll-margin-top:9rem}.reveal-item{opacity:0;transform:translateY(15px) scale(.98);filter:blur(3px);transition:opacity .6s cubic-bezier(.22,.61,.36,1),transform .6s cubic-bezier(.22,.61,.36,1),filter .6s ease-out}.reveal-item.visible{opacity:1;transform:translateY(0);filter:blur(0)}.about-text{max-width:750px;max-width:800px;margin:0 auto;line-height:1.8;font-size:1.2rem;padding:0 1rem;text-align:left;-webkit-hyphens:auto;hyphens:auto}.skills-title{margin-bottom:.5rem;margin-bottom:0rem}.skills-intro{font-size:1.2rem;margin-bottom:1.5rem;margin-top:1rem}.skills-grid-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1.5rem;margin-top:1rem}.skill-card{background:var(--background-tecn-card);border-radius:8px;padding:.5rem;color:var(--text-color);display:flex;flex-direction:column;gap:1.25rem;transition:transform .3s ease,box-shadow .3s ease;min-height:325px}.skill-card h3{font-size:1.4rem;text-align:center;margin-bottom:.3rem;color:var(--text-color)}.skills-icons{display:grid;grid-template-columns:repeat(auto-fit,minmax(100px,1fr));gap:1rem}.skill{background:none;padding:.5rem;padding:1rem;padding:.7rem;border-radius:5px;font-weight:500;text-align:center;display:flex;flex-direction:column;align-items:center}.skill img,.skill i{font-size:2rem;width:40px;height:40px;margin-bottom:.5rem;transition:filter .2s ease}.skill:hover img,.skill:hover i{filter:brightness(1.6)}.card{width:100%;perspective:1000px}.card-inner{position:relative;width:100%;height:100%;transform-style:preserve-3d;transition:transform .6s}.card:hover .card-inner{transform:rotateY(180deg)}.card-front,.card-back{position:absolute;top:0;left:0;width:100%;height:100%;backface-visibility:hidden;display:flex;flex-direction:column;box-sizing:border-box}.card-front{align-items:center;justify-content:flex-start}.card-front .skills-icons{display:grid;grid-template-columns:repeat(2,1fr);gap:.5rem;width:85%;justify-items:center}.card-back{transform:rotateY(180deg);background:transparent;color:var(--text-color);display:flex;flex-direction:column;align-items:flex-start;justify-content:flex-start;text-align:left;font-size:.95rem}.card-back ul{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:.8rem;width:100%;margin-top:1.5rem;margin-left:2rem}.card-back ul li{display:flex;align-items:center;gap:.5rem}.icon-small{width:25px;height:25px;flex-shrink:0}.projects-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1.5rem;margin-top:1rem}.project-card{background:var(--card-bg);border-radius:8px;overflow:hidden;display:flex;flex-direction:column;transition:all .3s cubic-bezier(.22,1,.36,1);width:100%;box-shadow:0 4px 10px #00000026}.project-card:hover{box-shadow:0 8px 20px #0000004d;transform:translateY(-4px)}.card-image-wrapper{position:relative;width:100%;height:200px;overflow:hidden;background:var(--modal-bg);display:block;cursor:pointer}.card-image-wrapper:after{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-size:3rem;opacity:0;transition:opacity .3s ease;pointer-events:none;text-shadow:0 2px 8px rgba(0,0,0,.5)}.card-image-wrapper:hover:after{opacity:.9}.card-image{width:100%;height:100%;object-fit:cover;transition:transform .3s ease;display:block}.project-card:hover .card-image{transform:scale(1.05)}.card-content{padding:1.3rem;display:flex;flex-direction:column;gap:.7rem}.card-badges{display:flex;gap:.4rem;flex-wrap:wrap;margin-bottom:.3rem}.card-badge{display:inline-flex;align-items:center;gap:.3rem;background:#4facfe1a;border:1px solid rgba(79,172,254,.3);color:#4faafe;font-size:.7rem;font-weight:600;padding:.3rem .6rem;border-radius:4px;width:fit-content;text-transform:uppercase;letter-spacing:.5px}.card-badge-tipo{background:#a855f71a;border:1px solid rgba(168,85,247,.3);color:#a855f7}.card-badge-framework{background:#52c48c1f;border:1px solid rgba(82,196,140,.35);color:#6ac399;color:#008c4d}.card-title{font-size:1.35rem;font-weight:650;color:var(--text-color);margin:0;line-height:1.2;text-align:center}.card-description{font-size:.95rem;color:var(--text-color);margin:0;line-height:1.5;text-align:center;padding:0 .3rem}.card-tech{display:flex;gap:.6rem;justify-content:center;padding-bottom:.2rem}.card-tech img{width:24px;height:24px;opacity:.8;transition:opacity .2s ease,transform .2s ease}.card-tech img:hover{opacity:1;transform:scale(1.15)}.card-actions{display:flex;gap:.6rem;justify-content:center;margin-top:.3rem}.card-btn{flex:1;display:inline-flex;align-items:center;justify-content:center;padding:.65rem .9rem;border-radius:5px;text-decoration:none;font-weight:600;font-size:.9rem;cursor:pointer;transition:transform .2s cubic-bezier(.22,1,.36,1),box-shadow .2s cubic-bezier(.22,1,.36,1),background .2s ease;box-shadow:0 2px 4px #0000002e;border:2px solid transparent;position:relative;overflow:hidden;z-index:0}.card-btn:before,.card-btn:after{content:"";position:absolute;top:0;left:0;height:100%;transform:translate(-100px) skew(-15deg);pointer-events:none}.card-btn:before{width:60px;background:#fff;filter:blur(30px);opacity:.5;z-index:1}.card-btn:after{width:30px;left:30px;background:#fff3;filter:blur(5px);z-index:1}.card-btn:hover:before,.card-btn:hover:after{transform:translate(300px) skew(-15deg);transition:transform .8s ease}.card-btn:hover:before{opacity:1}.card-btn.btn-primary{background-color:var(--proyect-btn-color);color:var(--proyect-text-color);border:none}.card-btn.btn-secondary{background-color:transparent;border:2px solid var(--proyect-btn-color);color:var(--btn-vermas-text)}.card-btn:hover{background-color:var(--proyect-btn-hover-color);color:var(--proyect-text-hover-color);transform:scale(1.04);box-shadow:0 6px 12px #00000059}.card-btn.btn-secondary:hover{border-color:transparent}.project-modal{position:fixed;inset:0;display:flex;justify-content:center;align-items:center;background:transparent;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);padding:2rem;z-index:9999;animation:fadeIn .25s ease-out}.project-modal.hidden{display:none}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.modal-nav{position:absolute;top:50%;transform:translateY(-50%);font-size:2.4rem;background:none;border:none;color:var(--modal-text);opacity:.65;cursor:pointer;z-index:9999;transition:opacity .18s ease,transform .18s ease;padding-left:2rem;padding-right:2rem}.modal-nav:hover{opacity:.9;transform:translateY(-50%)}.prev-project{left:3rem}.next-project{right:3rem}.prev-project:active,.next-project:active{transform:translateY(-50%) scale(1.1);opacity:.7}.modal-content{background:var(--modal-bg);color:var(--modal-text);width:min(1140px,92%);max-height:90vh;padding:1rem 4rem;overflow-y:auto;clip-path:inset(0 round .5rem);display:flex;flex-direction:column;box-shadow:0 25px 45px #00000073;position:relative}.modal-animate-in,.modal-slide-in-right,.modal-slide-in-left{animation:modalFadeIn .06s ease-out forwards}@keyframes modalFadeIn{0%{opacity:0}to{opacity:1}}.modal-animate-out,.modal-slide-out-left,.modal-slide-out-right{animation:modalFadeOut .06s ease-in forwards}@keyframes modalFadeOut{0%{opacity:1}to{opacity:0}}.modal-content::-webkit-scrollbar{width:10px}.modal-content::-webkit-scrollbar-thumb{background:#ffffff45;background:var(--flechas);background:var(--proyect-btn-color);border-radius:10px}.close-modal{position:sticky;top:0;align-self:flex-end;margin-left:auto;transform:translate(1.9rem);font-size:1.8rem;background:none;border:none;cursor:pointer;color:var(--modal-text);opacity:.85;transition:opacity .15s,transform .15s;z-index:10}.close-modal:hover{opacity:1}.close-modal.clicked{transform:translate(1.9rem) scale(1.12);opacity:1}.modal-title{text-align:left;font-size:2rem;margin-top:.1rem;margin-bottom:1.6rem;font-weight:650;position:relative;padding-bottom:.2rem}.modal-title:after{content:"";position:absolute;left:0;bottom:-.35rem;height:2px;width:clamp(200px,12vw,96px);border-radius:999px;background:linear-gradient(90deg,var(--btn-bg),transparent 80%);opacity:.85}.modal-close-top{position:absolute;top:1.2rem;right:1.7rem;font-size:1.9rem;background:none;border:none;cursor:pointer;color:var(--modal-text);opacity:.75;transition:opacity .15s,transform .15s;z-index:9999}.modal-close-top:hover{opacity:1;transform:scale(1.1)}.modal-close-top:active{transform:scale(.9);opacity:.6}.close-inside{display:none}@media (max-width: 768px){.modal-nav,.modal-close-top{display:none}.close-inside{display:block}}.modal-grid{display:grid;grid-template-columns:1fr 1fr;grid-template-rows:auto auto;gap:.7rem;grid-auto-rows:minmax(0,auto)}.modal-block{background:#ffffff08;border-radius:.6rem;border-radius:.5rem;padding:1.1rem;box-shadow:0 4px 15px #00000026;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);display:flex;flex-direction:column;gap:.5rem}.modal-gallery{display:flex;flex-direction:column;align-items:center;gap:1rem}.modal-gallery-slider{position:relative;width:100%;height:340px;overflow:hidden;border-radius:.7rem;display:flex;align-items:center;justify-content:center;pointer-events:auto;background:transparent}@media (max-width: 768px){.modal-gallery-slider{height:260px}}.modal-gallery-slider .slide{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;transition:transform .35s ease,opacity .35s ease}.modal-gallery-slider .slide img,.modal-gallery-slider .slide video{max-width:100%;max-height:100%;object-fit:contain;cursor:zoom-in;position:relative}.slide.from-right{filter:blur(4px);transform:translate(100%);opacity:0;z-index:1}.slide.from-left{filter:blur(4px);transform:translate(-100%);opacity:0;z-index:1}.slide.to-left{transform:translate(-100%);opacity:0!important;z-index:1}.slide.to-right{transform:translate(100%);opacity:0!important;z-index:1}.slide{z-index:0}.slide.is-active{transform:translate(0);opacity:1;z-index:10;filter:blur(0)}.slide:not(.is-active) img,.slide:not(.is-active) video{opacity:0!important}.slide img,.slide video{opacity:0;transition:opacity .25s ease}.slide.is-active img,.slide.is-active video{opacity:1}.gallery-controls{display:flex;align-items:center;justify-content:center;gap:1.2rem;margin-top:.3rem;margin-top:.15rem}.gallery-prev,.gallery-next{background:none;border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;opacity:.75;transition:opacity .15s ease,transform .15s ease;padding:.3rem}.gallery-prev svg,.gallery-next svg{width:30px;height:30px;fill:var(--flechas)}.gallery-prev:hover,.gallery-next:hover{opacity:1;transform:scale(1.12)}.gallery-prev:active,.gallery-next:active{transform:scale(.92);opacity:.8}.gallery-dots{display:flex;gap:.4rem}.gallery-dot{width:10px;height:10px;background:#81818c8f;border-radius:50%;cursor:pointer;transition:background .25s ease}.gallery-dot.active{background:var(--flechas)}.tech-block h4,.methods-block h4,.description-block h4,.gallery-block h4{font-size:1.2rem;font-weight:600;border-bottom:1px solid rgba(255,255,255,.15);border-bottom:1px solid var(--modal-chip-border);padding-bottom:.3rem;margin-bottom:.5rem;margin-top:.5rem;opacity:.9}.description-block p{line-height:1.6;text-align:left;max-width:95%;margin-inline:auto;margin-top:.5rem}.tech-list,.methods-list{list-style:none;display:flex;flex-wrap:wrap;gap:.5rem;padding-left:0}.tech-list li,.methods-list li{background:var(--modal-chip-bg);border:1px solid var(--modal-chip-border);padding:.4rem .75rem;border-radius:.5rem;font-size:.95rem;font-size:1rem}.modal-content .project-links{margin-top:3rem;margin-bottom:2.5rem;display:flex;justify-content:center;gap:1rem}.modal-content .project-links a{padding:.9rem 1.5rem;min-width:180px;border-radius:.3rem;border-radius:5px;text-decoration:none;font-size:1rem;display:inline-flex;justify-content:center;align-items:center;background:var(--proyect-btn-color);color:#fff;transition:transform .1s}.modal-content .project-links a:hover{transition:transform .2s cubic-bezier(.22,1,.36,1) scale(1.04),box-shadow .2s cubic-bezier(.22,1,.36,1),background .2s ease;background-color:var(--proyect-btn-hover-color);color:var(--proyect-text-hover-color)}#image-overlay{position:fixed;inset:0;background:#000000d1;display:flex;align-items:center;justify-content:center;z-index:10000;opacity:0;transition:opacity .25s ease}#image-overlay:not(.hidden){opacity:1}#image-overlay.hidden{display:none}#image-overlay img{max-width:85%;max-height:85%;border-radius:5px;box-shadow:0 0 10px #ffffff10;filter:brightness(.9);transition:filter .2s ease}.overlay-prev,.overlay-next{position:absolute;top:50%;transform:translateY(-50%);background:#ffffff29;border:none;color:#fff;cursor:pointer;padding:.3rem .5rem;border-radius:999px;transition:all .12s ease;line-height:1}.overlay-prev{left:1.5rem}.overlay-next{right:1.5rem}.overlay-prev:hover,.overlay-next:hover{background:#ffffff3d;transform:translateY(-50%) scale(1.04)}.overlay-prev:active,.overlay-next:active{transform:translateY(-50%) scale(.96)}.overlay-prev svg,.overlay-next svg{width:20px;height:20px;fill:#fff}#close-overlay{position:absolute;top:1rem;right:1.5rem;font-size:2rem;color:#fff;cursor:pointer}body.modal-open{overflow:hidden}.card-gallery{width:100%;position:relative;margin:.5rem 0;overflow:hidden;border-radius:8px;background:var(--modal-bg);height:252px}.card-gallery-slider{display:flex;transition:transform .4s cubic-bezier(.4,0,.2,1);height:100%;width:100%}.card-gallery-slider img{width:100%;height:100%;object-fit:contain;flex-shrink:0;-webkit-user-select:none;user-select:none;background:var(--modal-bg)}.card-gallery-controls{position:absolute;inset:0;display:flex;align-items:center;justify-content:space-between;padding:.75rem;background:transparent;pointer-events:none}.card-gallery-prev,.card-gallery-next{background:transparent;background:#ffffff4d;border:none;color:#fff;font-size:1.8rem;cursor:pointer;padding:.2rem .6rem;border-radius:5px;transition:all .3s ease;line-height:1;font-weight:700;-webkit-backdrop-filter:none;backdrop-filter:none;pointer-events:auto}.card-gallery-prev{margin-left:-.5rem}.card-gallery-next{margin-right:-.5rem}.card-gallery-prev:hover,.card-gallery-next:hover{background:#ffffff4d;transform:scale(1.1)}.card-gallery-prev:active,.card-gallery-next:active{transform:scale(.95)}.card-gallery-dots{display:flex;gap:.5rem;flex-wrap:wrap;justify-content:center;padding:0 1rem;position:absolute;bottom:.75rem;left:50%;transform:translate(-50%);width:100%;pointer-events:auto;z-index:5}.card-gallery-dots .dot{width:8px;height:8px;border-radius:50%;background:#ffffff80;cursor:pointer;transition:all .3s ease;box-shadow:0 1px 3px #0000004d}.card-gallery-dots .dot.active{background:var(--accent-color);transform:scale(1.4);box-shadow:0 0 8px var(--accent-color)}.card-gallery-dots .dot:hover{background:#fffc}.card-gallery:empty{display:none}.card-gallery-slider:empty:after{content:"Sin imágenes disponibles";display:flex;align-items:center;justify-content:center;color:var(--text-muted);font-style:italic;height:100%}.project-card-v2{background:var(--card-bg);border:1px solid rgba(255,255,255,.1);border-radius:8px;overflow:hidden;transition:all .3s cubic-bezier(.22,1,.36,1);display:flex;flex-direction:column;max-width:350px}.project-card-v2:hover{border-color:#fff3;box-shadow:0 8px 20px #0000004d;transform:translateY(-4px)}.card-v2-image-wrapper{position:relative;width:100%;height:190px;overflow:hidden;background:var(--modal-bg);display:block}.card-v2-image{width:100%;height:100%;object-fit:cover;transition:transform .3s ease;display:block}.project-card-v2:hover .card-v2-image{transform:scale(1.05)}.card-v2-content{padding:1.3rem;display:flex;flex-direction:column;gap:.7rem}.card-v2-badge{display:inline-flex;align-items:center;gap:.3rem;background:#4facfe1a;border:1px solid rgba(79,172,254,.3);color:#4faafe;font-size:.7rem;font-weight:600;padding:.3rem .6rem;border-radius:4px;width:fit-content;text-transform:uppercase;letter-spacing:.5px}.card-v2-badge svg{width:10px;height:10px}.card-v2-title{font-size:1.35rem;font-weight:650;color:var(--text-color);margin:0;line-height:1.2;transition:color .2s ease;text-align:center}.card-v2-description{font-size:.95rem;color:var(--text-color);margin:0;line-height:1.5;text-align:center;padding:0 .3rem}.card-v2-tech{display:flex;gap:.6rem;margin-top:.2rem;padding-bottom:.2rem;justify-content:center}.card-v2-tech img{width:24px;height:24px;opacity:.8;transition:opacity .2s ease,transform .2s ease}.card-v2-tech img:hover{opacity:1;transform:scale(1.15)}.card-v2-buttons{display:flex;gap:.6rem;margin-top:.4rem;justify-content:center}.card-v2-btn{flex:1;display:inline-flex;align-items:center;justify-content:center;padding:.65rem .8rem;border-radius:5px;text-decoration:none;font-weight:600;font-size:.9rem;transition:transform .2s cubic-bezier(.22,1,.36,1),box-shadow .2s cubic-bezier(.22,1,.36,1),background .2s ease;cursor:pointer;box-shadow:0 2px 4px #0000002e}.btn-primary-v2{background-color:var(--proyect-btn-color);color:var(--proyect-text-color);border:none}.btn-secondary-v2{background-color:transparent;border:2px solid var(--proyect-btn-color);color:var(--btn-vermas-text)}.btn-primary-v2:hover,.btn-secondary-v2:hover{background-color:var(--proyect-btn-hover-color);color:var(--proyect-text-hover-color);transform:scale(1.04);box-shadow:0 6px 12px #00000059}.btn-secondary-v2:hover{border-color:transparent}.contact-section{padding:3rem;margin-top:6rem;background:var(--section-bg);color:var(--text-color);max-width:900px;margin-left:auto;margin-right:auto;border-radius:10px}.contact-section h2{text-align:center;margin-bottom:2rem;margin-top:0;font-size:2rem}.contact-container{gap:2rem;justify-content:center;display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));align-items:stretch}.contact-form,.contact-info{display:flex;flex-direction:column;height:100%;gap:.8rem}.contact-info{font-size:.95rem;line-height:1.5}.contact-form>button,.contact-info>a.contact-btn-902{margin-top:auto}.contact-form label{font-weight:600;font-size:1.1rem}.contact-form input,.contact-form textarea{padding:.5rem .75rem;border-radius:5px;border:none;font-size:.95rem;resize:vertical;width:100%;max-width:400px}.contact-form textarea{height:5rem;min-height:5rem;max-height:15rem}.contact-info h3{font-size:1.1rem;margin:0}.contact-list{list-style:none;padding:0;display:flex;flex-direction:column;gap:.9rem}.contact-link{display:flex;align-items:center;gap:.6rem;padding:.5rem .8rem;border-radius:6px;cursor:pointer;transition:background .1s ease,transform .1s cubic-bezier(.25,1,.5,1)}.contact-link:hover{background:var(--link-contacto-bg-hover);transform:scale(1.03);box-shadow:var(--contact-link-shadow-hover)}.contact-link a{color:var(--link-contacto);text-decoration:none;transition:color .1s ease;font-size:1.03rem;display:inline-block}.contact-link:hover a{color:var(--link-contacto-hover)}.contact-link .icon{width:20px;height:20px;filter:grayscale(.2) brightness(1);transition:filter .1s ease,transform .1s ease}.contact-link:hover .icon{filter:grayscale(0) brightness(1.2);transform:scale(1.08)}.contact-info .icon{width:20px;height:20px;object-fit:contain}.contact-form button,.contact-info a{border:none;text-decoration:none;padding:.65rem;max-width:400px}.contact-btn-902{position:relative;display:inline-flex;align-items:center;justify-content:center;min-width:150px;height:42px;padding:.65rem 1.3rem;margin-top:1rem;background:var(--btn-form-bg);color:var(--btn-form-text);border:2px solid var(--btn-form-bg);border-radius:5px;font-size:.95rem;font-weight:600;line-height:1;cursor:pointer;box-sizing:border-box;overflow:hidden;z-index:1;box-shadow:0 2px 4px #0003;transition:transform .15s cubic-bezier(.25,1,.5,1),background-color .15s ease,color .15s ease,border-color .15s ease;will-change:transform}.contact-btn-902:before{content:"";position:absolute;top:0;left:-18%;width:18%;height:100%;background-color:#ffffff40;border-radius:0 200% 200% 0;transition:left .1s ease}.contact-btn-902:after{position:absolute;top:50%;left:-15%;transform:translateY(-50%);font-size:1rem;color:var(--btn-form-text);pointer-events:none;transition:left .2s ease,color .2s ease;content:"";background-size:contain;background-repeat:no-repeat;width:20px;height:20px}.btn-icon-send:after{background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 -960 960 960' fill='%23e3e3e3'><path d='M383-480 200-664l56-56 240 240-240 240-56-56 183-184Zm264 0L464-664l56-56 240 240-240 240-56-56 183-184Z'/></svg>")}.btn-icon-download:after{background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 -960 960 960' fill='%23e3e3e3'><path d='M480-320 280-520l56-58 104 104v-326h80v326l104-104 56 58-200 200ZM240-160q-33 0-56.5-23.5T160-240v-120h80v120h480v-120h80v120q0 33-23.5 56.5T720-160H240Z'/></svg>")}.contact-btn-902:hover{background:var(--btn-form-hover-bg);color:var(--btn-form-hover-text);border-color:var(--btn-form-hover-bg);transform:scale(1.06)}.contact-btn-902:hover:before{left:0}.contact-btn-902:hover:after{left:6%;color:var(--btn-form-hover-text)}.alerta{position:fixed;bottom:20px;right:20px;padding:1.1rem 2.2rem;border-radius:8px;color:#fff;font-weight:700;font-size:1.2rem;opacity:0;pointer-events:none;transition:opacity .4s ease;z-index:9999}.alerta.show{opacity:1;pointer-events:auto}.alerta.success{background-color:#4caf50}.alerta.error{background-color:#f44336}footer{text-align:center;font-size:.9rem;color:var(--footer);margin-top:6rem;padding:2.5rem 0;background-color:var(--footer-background);border-top:1px solid var(--footer-border);position:relative;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);transition:background .2s ease,border-color .2s ease}.footer-container{width:100%;padding:0 2rem;display:grid;grid-template-columns:auto 1fr auto;align-items:center;position:relative}.footer-left{display:flex;align-items:center}.footer-left img{width:45px;height:auto;opacity:.85;transition:opacity .2s ease}.footer-left img:hover{opacity:1}#footerLogo{transform:scale(1.4);transform-origin:left center}.footer-text{color:var(--footer);opacity:.8;position:absolute;left:50%;transform:translate(-50%);margin:0;text-align:center;white-space:nowrap;pointer-events:auto}.footer-text:hover{opacity:1;color:var(--footer-hover)}.neat-gradient{text-decoration:none;color:var(--footer)}.neat-gradient:hover{color:var(--footer-hover)}.back-to-top{position:fixed;bottom:42px;right:34px;font-size:1.6rem;color:var(--footer-hover);background:none;border:none;opacity:.5;cursor:pointer;pointer-events:none;transform:translateY(12px);transition:opacity .05s ease,transform .05s ease,color .05s ease}.back-to-top.show{opacity:.8;pointer-events:auto;transform:translateY(0)}.back-to-top:hover{opacity:1;transform:translateY(-3px) scale(1.09);color:var(--footer-hover);color:var(--navbar-link-hover)}@media (max-width: 480px){.modal-content{width:calc(100% - .2rem);padding-left:.15rem!important;padding-right:.15rem!important}.section{padding:1rem .8rem}}@media (max-width: 576px){.modal-content{width:100%;max-width:none;padding-left:.2rem!important;padding-right:.2rem!important;border-radius:.2rem}.modal-block{padding:.8rem!important}.modal-title{font-size:1.3rem!important}}@media (max-width: 768px){html,body{overflow-x:hidden}#gradient{width:100%;height:100%;object-fit:cover}h2{font-size:1.4rem}*{max-width:100%}.navbar{padding:.6rem 1rem;top:0!important;opacity:1!important}.navbar .container{max-width:100%;padding:0 .5rem}.navbar .logo img{transform:scale(1.8)}.nav-links{display:none}.navbar-right{gap:1rem}.hero-section{padding-top:8rem!important}.blend-title{white-space:nowrap!important;font-size:clamp(2.25rem,6vw,3rem)!important}.subtitle{font-size:clamp(.3rem,6vw,1rem)!important;margin-top:.4rem;margin-bottom:1.2rem;max-width:100%;margin-inline:auto}.hero-buttons{flex-direction:column;gap:.7rem;width:100%;margin-top:1.2rem;align-items:center;justify-content:center}.hero-buttons .btn{width:80%;max-width:330px;padding:.9rem 1rem}.projects-grid{grid-template-columns:1fr;gap:1.2rem;padding:0 .6rem}.project-card{padding:.7rem;border-radius:6px;gap:.1rem}.project-card h3{font-size:1.3rem;margin-bottom:.2rem}.project-card p{font-size:1rem;padding:0 .4rem .5rem}.tech-icons img{width:22px;height:22px}.project-links{flex-direction:column;gap:.6rem;margin:1rem .5rem}.project-links a,.project-links button{width:100%;text-align:center;padding:.7rem 1rem}.modal-nav{display:none!important}.project-modal{padding:.7rem}.modal-content{max-width:none!important;margin-inline:auto!important;max-height:90vh;overflow-x:hidden!important;width:calc(100% - .00005rem)!important;padding:.5rem .05rem!important;border-radius:.6rem}.modal-content::-webkit-scrollbar{display:none}.modal-block{padding:.6rem!important}.modal-title{font-size:1.35rem;margin-bottom:1.3rem;line-height:1.2}.modal-grid{grid-template-columns:1fr;grid-auto-rows:auto;gap:1rem}.modal-gallery-slider{max-height:240px}.gallery-image,.modal-gallery-slider video{max-height:260px}.gallery-prev svg,.gallery-next svg{width:24px;height:24px}.gallery-dot{width:8px;height:8px}.modal-links{flex-direction:column;gap:.8rem;margin-top:2rem;margin-bottom:1.5rem}.modal-links a{width:100%;padding:1rem;font-size:1rem}.close-modal{position:sticky;top:.2rem;margin-left:auto;font-size:1.2rem;transform:translate(1.3rem);z-index:50}.close-modal:hover{transform:translate(1rem) scale(1.1)}.container{padding:1.5rem 1rem}.section{padding:1.4rem 1rem}.about-text{font-size:1.05rem;max-width:95%;line-height:1.65;padding:0 .5rem}.skills-grid-cards{grid-template-columns:1fr;gap:1.2rem;padding:0 .6rem}.skill-card{min-height:auto;padding:1.2rem;border-radius:6px}.skills-icons{grid-template-columns:repeat(2,1fr);gap:.8rem}.skill img{width:32px;height:32px}.card{min-height:320px}.card-back ul{margin-left:1rem;gap:.6rem}.card-back ul li{font-size:.92rem}.contact-section{padding:2.5rem 1.6rem!important}.contact-container{gap:2.4rem!important}.contact-form input,.contact-form textarea,.contact-btn-902,.contact-form label,.contact-form,.contact-info{width:90%;max-width:420px!important;margin-inline:auto;font-size:1rem}.contact-link{width:90%;font-size:.9rem}.contact-list{align-items:center;padding-top:.5rem}.contact-link a{display:inline-block;width:100%;font-size:1rem;padding-top:.5rem;padding-bottom:.5rem}.contact-link .icon{width:18px;height:18px}h3{text-align:center}.footer-container{padding:0 .5rem;display:grid!important;grid-template-columns:auto 1fr auto!important;align-items:center!important;gap:.3rem!important;text-align:center!important}.footer-left{justify-content:center;justify-content:left}#footerLogo{width:26px;transform:scale(1.15)}.footer-text{font-size:.75rem!important;opacity:1;max-width:100%;margin:0;white-space:normal;overflow:hidden;text-overflow:ellipsis;display:block;text-align:center}.footer-text:before{content:" © 2025 • Franco Wagenhöfer — Portafolio";display:block}.footer-text>*{display:none}.footer-text .footer-original{display:none!important}.back-to-top{position:static!important;margin-left:auto;font-size:1rem!important;width:26px!important;height:26px!important;display:grid;place-items:center;padding:4px;cursor:pointer;opacity:1}}@media (max-width: 1024px){.navbar .logo img{transform:scale(2)}.nav-links{gap:1rem;font-size:1.05rem}.hero-section{padding:7rem 1rem}.blend-title{font-size:clamp(2.5rem,4vw,3.6rem)}.hero-buttons{justify-content:center;margin-top:1.5rem}.subtitle{font-size:1.25rem;max-width:80%}.modal-content{width:90%;padding:3rem 2rem 2rem;padding-left:1.5rem!important;padding-right:1.5rem!important}.modal-title{font-size:1.7rem;margin-bottom:1.8rem}.modal-gallery-slider{max-height:300px}.skills-grid-cards{grid-template-columns:repeat(auto-fit,minmax(260px,1fr))}.section{padding:3rem 1rem}.skill-card{min-height:330px}.card-back ul{margin-left:1.2rem}.contact-section{padding:3rem 2rem}.contact-container{grid-template-columns:repeat(auto-fit,minmax(340px,1fr))}.contact-form input,.contact-form textarea{max-width:100%}.footer-container{display:grid;grid-template-columns:auto 1fr;align-items:center;gap:1.2rem;padding:0 1.2rem}#footerLogo{transform:scale(1.2)}.footer-text{position:static;transform:none;text-align:center;white-space:normal;margin:0;font-size:.95rem}.back-to-top{position:absolute;right:1rem;top:-12px;transform:scale(.9)}}@media (min-width: 1440px){.container,.section{max-width:1240px;margin-inline:auto}.blend-title{font-size:clamp(3rem,4vw,4.4rem)}.subtitle{font-size:1.35rem;max-width:70%}.hero-section{padding:8rem 1rem}.projects-grid{grid-template-columns:repeat(3,1fr);gap:2rem}.modal-content{width:1150px;padding:2rem 4.5rem}}
