body{background:#d5d9e2;font-family:sans-serif,Arial,Helvetica;font-size:20px;text-align:center;padding:0;margin:0}:root{--accent: #7c5cff}html{font-size:14px}:root{--accent: #7c3aed;--accent-dark: #6d28d9;--accent-light: #f3f0ff;--accent-border: #ddd6fe;--text: #0b0b0b;--text-muted: #888;--text-body: #444;--bg: #ffffff;--shadow-sm: 0 2px 10px rgba(0,0,0,.05);--shadow-md: 0 16px 40px rgba(12,16,20,.06);--shadow-lg: 0 18px 50px rgba(12,16,20,.06);--radius: 12px;--radius-lg: 20px}ul{list-style:none;padding:0;margin:0}html,body{overflow-x:hidden;width:100%;position:relative}.header{display:flex;justify-content:space-between;align-items:center;padding:20px 5%;background:var(--bg);position:sticky;top:0;z-index:10000;box-shadow:var(--shadow-sm)}.left-section{display:flex;align-items:center;gap:3rem}.logo{display:flex;align-items:center;gap:.6rem;padding-right:20px;text-decoration:none}.logo span{width:46px;height:46px;display:inline-grid;place-items:center;border-radius:10px;background:linear-gradient(135deg,var(--accent),#6fb3ff);font-weight:700;color:#fff}.logo h3{margin:0;font-size:1rem;font-weight:600;color:var(--text)}nav ul{display:flex;list-style:none;gap:1rem;margin:0;padding:0}nav a{color:var(--text);text-decoration:none;padding:.45rem .6rem;border-radius:10px;transition:all .18s}nav a:hover,nav a.active{color:var(--accent);background:#7c5cff0f}.social-icons{display:flex;align-items:center;gap:1.2rem}.social-icons .icon{font-size:24px;color:#333;transition:all .3s}.social-icons a:hover .icon{color:var(--accent);transform:scale(1.1)}.menu-toggle{display:none;background:none;border:none;font-size:2rem;cursor:pointer}.page{width:95%;max-width:1200px;margin:3.5rem auto;padding:3rem;border-radius:var(--radius);background:var(--bg);color:var(--text);box-shadow:var(--shadow-md);border:1px solid rgba(11,11,11,.04);box-sizing:border-box;animation:fadeInUp .35s ease both}.home{animation:fadeInUp .35s ease both}.home{width:90%;max-width:1200px;margin:2rem auto;padding:40px 20px;display:flex;flex-direction:column;gap:1.5rem;align-items:center;background:var(--bg);border-radius:14px;box-shadow:var(--shadow-lg);box-sizing:border-box}.home--split{flex-direction:row!important;justify-content:space-between;align-items:center;text-align:left;gap:3rem;padding:3rem 4rem}.home--split .perfil{width:280px;height:280px;border-radius:50%;object-fit:cover;object-position:top 20%;flex-shrink:0;border:4px solid var(--accent-border);order:1}.home-text{flex:1;display:flex;flex-direction:column;gap:1.25rem;order:2}.home-tag{font-size:.85rem;color:var(--accent);text-transform:uppercase;letter-spacing:.1em;font-weight:600}.home--split h1{text-align:left!important;color:var(--text);font-size:clamp(2.5rem,5vw,3.5rem);margin:0}.home--split p{text-align:left!important;font-size:1.1rem;max-width:500px}.home h1{margin:0;font-size:clamp(2.5rem,6vw,4rem);line-height:1.1;text-align:center}.home p{color:#0b0b0bd1;max-width:800px;font-size:clamp(1.1rem,3vw,1.5rem);line-height:1.6;text-align:center}.home strong{color:var(--accent)}.objetivo{font-style:italic;color:#555;margin-top:1rem}.ti{font-size:.95rem;color:var(--text-muted);font-style:italic;margin:0}.hero-buttons{display:flex;gap:1rem;margin-top:.5rem}.btn-primary{background-color:var(--accent);color:#fff;border:none;padding:.75rem 1.5rem;border-radius:8px;font-size:1rem;cursor:pointer;text-decoration:none;display:inline-block;transition:background-color .2s ease}.btn-primary:hover{background-color:var(--accent-dark)}.btn-secondary{background-color:transparent;color:var(--accent);border:2px solid var(--accent);padding:.75rem 1.5rem;border-radius:8px;font-size:1rem;cursor:pointer;transition:all .2s ease}.btn-secondary:hover{background-color:var(--accent);color:#fff}.scroll-indicator{display:flex;flex-direction:column;align-items:center;gap:.4rem;margin-top:2.5rem;color:#aaa;font-size:.75rem;letter-spacing:.1em;text-transform:uppercase;animation:fadeInUp 1s ease .5s both}.scroll-arrow{width:20px;height:20px;border-right:2px solid var(--accent);border-bottom:2px solid var(--accent);transform:rotate(45deg);animation:bounce 1.5s infinite}@keyframes bounce{0%,to{transform:rotate(45deg) translateY(0)}50%{transform:rotate(45deg) translateY(5px)}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.clientes{margin-top:2.5rem;padding-top:2rem;border-top:1px solid var(--accent-border);width:100%;text-align:center}.clientes-label{font-size:.8rem;color:#aaa;text-transform:uppercase;letter-spacing:.12em;margin-bottom:1rem}.clientes-logos{display:flex;align-items:center;justify-content:center;gap:2.5rem;flex-wrap:wrap}.cliente-logo{height:48px;object-fit:contain;filter:grayscale(100%);opacity:.6;transition:opacity .2s ease,filter .2s ease}.cliente-logo:hover{filter:grayscale(0%);opacity:1}.stack{margin-top:2rem;padding-top:2rem;border-top:1px solid var(--accent-border);width:100%;text-align:center}.stack-label{font-size:.85rem;color:var(--text-muted);text-transform:uppercase;letter-spacing:.1em;margin-bottom:.75rem}.stack-icons{display:flex;flex-wrap:wrap;gap:.6rem;justify-content:center}.stack-badge{display:inline-flex;align-items:center;gap:.4rem;background-color:var(--accent-light);color:var(--accent);border:1px solid var(--accent-border);padding:.3rem .75rem;border-radius:999px;font-size:.85rem;font-weight:500;transition:transform .15s ease,box-shadow .15s ease}.stack-badge:hover{transform:translateY(-2px);box-shadow:0 4px 12px #7c3aed26}.works{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:24px;padding:10px 4px}.work-item{background:var(--bg);border-radius:var(--radius-lg);overflow:hidden;border:1px solid rgba(0,0,0,.07);transition:transform .25s ease,box-shadow .25s ease;display:flex;flex-direction:column}.work-item:hover{transform:translateY(-6px);box-shadow:0 20px 40px #7c3aed1f}.work-item .mask{height:180px;overflow:hidden;background:linear-gradient(135deg,#f5f3ff,#ede9fe);display:flex;align-items:center;justify-content:center;position:relative;flex-shrink:0}.work-item .mask img{max-height:120px;max-width:65%;width:auto;height:auto;object-fit:contain}.badge-construccion{position:absolute;top:10px;right:10px;background:#7c3aed1f;color:var(--accent);border:1px solid var(--accent-border);font-size:.7rem;font-weight:600;padding:.2rem .6rem;border-radius:999px;text-transform:uppercase;letter-spacing:.06em}.work-info{padding:1.25rem 1.5rem 1.5rem;display:flex;flex-direction:column;flex:1}.work-info h2{font-size:1.2rem;margin:.3rem 0 .6rem}.work-info h2 a{color:var(--text);text-decoration:none;transition:color .15s}.work-info h2 a:hover{color:var(--accent)}.work-info .category{color:var(--accent);font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em}.work-desc{font-size:.875rem;color:var(--text-body);line-height:1.6;margin:0 0 1rem;display:-webkit-box;-webkit-line-clamp:3;line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;flex:1}.work-techs{display:flex;flex-wrap:wrap;gap:.4rem;margin-top:auto}.detalle{max-width:700px;margin:0 auto;padding:2rem 1.5rem;display:flex;flex-direction:column;gap:1.25rem}.btn-back{background:none;border:none;color:var(--accent);font-size:.9rem;cursor:pointer;padding:0;width:fit-content}.btn-back:hover{text-decoration:underline}.detalle-categoria{font-size:.8rem;text-transform:uppercase;letter-spacing:.1em;color:var(--accent);font-weight:600}.detalle h1{font-size:2rem;margin:0}.detalle-imagen{width:100%;max-height:300px;object-fit:contain;border-radius:var(--radius);border:1px solid var(--accent-border);background:var(--accent-light);padding:1rem}.detalle-descripcion{font-size:1rem;line-height:1.8;color:var(--text-body)}.detalle-techs{display:flex;flex-wrap:wrap;gap:.5rem}.sobre-mi{max-width:720px;margin:0 auto;padding:2rem 1.5rem}.sm-hero{text-align:center;margin-bottom:3rem}.sm-hero h1{font-size:2.5rem;margin-bottom:.5rem}.sm-tagline{font-size:1.1rem;color:var(--accent);font-style:italic}.sm-section{margin-bottom:3rem}.sm-section h2{font-size:1.5rem;margin-bottom:1rem;border-left:4px solid var(--accent);padding-left:.75rem}.sm-section p{text-align:left;line-height:1.8;color:var(--text-body);margin-bottom:1rem}.sm-historia{display:flex;gap:2rem;align-items:center}.sm-historia-img{width:280px;height:360px;object-fit:cover;object-position:top;border-radius:16px;flex-shrink:0}.sm-interests{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.interest-card{background:var(--accent-light);border:1px solid var(--accent-border);border-radius:var(--radius);padding:1.25rem;transition:transform .2s ease,box-shadow .2s ease}.interest-card:hover{transform:translateY(-3px);box-shadow:0 6px 16px #7c3aed1a}.interest-icon{font-size:1.75rem;display:block;margin-bottom:.5rem}.interest-card h3{font-size:1rem;margin-bottom:.4rem;color:var(--text)}.interest-card p{font-size:.875rem;color:#666;line-height:1.6}.sm-cta{text-align:center;padding:2rem 0;border-top:1px solid var(--accent-border)}.sm-cta p{margin-bottom:1rem;color:#555}.cv{max-width:760px;margin:0 auto;padding:2rem 1.5rem;display:flex;flex-direction:column;gap:2.5rem}.cv-header{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:1rem}.cv-header h1{font-size:2rem;margin:0}.cv-subtitle{color:var(--accent);font-size:1rem;margin-top:.25rem}.cv-section h2{font-size:1rem;text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted);border-bottom:1px solid var(--accent-border);padding-bottom:.5rem;margin-bottom:1.25rem}.cv-item{margin-bottom:1.5rem}.cv-item-header{display:flex;justify-content:space-between;align-items:baseline;flex-wrap:wrap;gap:.5rem}.cv-item-header h3{font-size:1rem;margin:0}.cv-date{font-size:.85rem;color:var(--text-muted);white-space:nowrap}.cv-company{font-size:.9rem;color:var(--accent);margin:.2rem 0 .4rem}.cv-item p{font-size:.9rem;color:#555;line-height:1.7;text-align:left}.cv-skills{display:flex;flex-direction:column;gap:1rem}.cv-skill-group{display:flex;align-items:center;gap:1rem;flex-wrap:wrap}.cv-skill-label{font-size:.85rem;color:var(--text-muted);min-width:110px}.cv-skill-tags{display:flex;flex-wrap:wrap;gap:.4rem}.contact-container{max-width:600px;margin:3rem auto;padding:2rem;background:var(--bg);border-radius:var(--radius);box-shadow:0 18px 40px #0c101e0f;text-align:center}form{display:flex;flex-direction:column;align-items:center}input,textarea{width:100%;max-width:400px;padding:15px;margin-bottom:15px;border-radius:10px;border:1px solid rgba(0,0,0,.1);resize:vertical;font-family:inherit;font-size:inherit;box-sizing:border-box}.btn{background:var(--accent);color:#fff;padding:12px 25px;border:none;border-radius:8px;cursor:pointer;transition:opacity .2s}.btn:hover{opacity:.9}.contact-ok{display:flex;align-items:center;gap:.75rem;background:var(--accent-light);border:1px solid var(--accent-border);border-radius:var(--radius);padding:1.25rem;color:var(--accent);margin-top:1rem}.contact-ok span{font-size:1.5rem}.contact-ok p{margin:0;color:var(--accent)}.galeria{max-width:900px;margin:0 auto;padding:1rem 0}.galeria h1{font-size:2rem;margin-bottom:.25rem}.galeria-sub{color:var(--text-muted);font-size:1rem;margin-bottom:2rem;text-align:left}.galeria-empty{color:var(--text-muted);font-style:italic;text-align:center;padding:3rem 0}.galeria-grid{columns:3;gap:12px}.galeria-item{break-inside:avoid;margin-bottom:12px;border-radius:var(--radius);overflow:hidden}.galeria-item img{width:100%;display:block;transition:transform .3s ease}.galeria-item:hover img{transform:scale(1.02)}@media(max-width:768px){.galeria-grid{columns:2}}.footer{padding:40px;text-align:center;color:var(--text-muted);border-top:1px solid #eee}@media(max-width:768px){.header{display:flex;justify-content:space-between;align-items:center;padding:10px 5%;position:sticky}.menu-toggle{display:block;order:1;flex:1;text-align:left;z-index:10001}.logo{order:2;flex:2;display:flex;justify-content:center;padding-right:0}.social-icons{order:3;flex:1;display:flex;justify-content:flex-end}.header .nav{display:block;position:absolute;top:100%;left:0;width:100%;background:#fff;max-height:0;overflow:hidden;transition:max-height .4s ease-in-out,padding .3s;z-index:9999;box-shadow:0 10px 15px #0000001a}.header .nav.is-active{max-height:500px;padding:20px 0;border-top:1px solid #eee}.nav ul{flex-direction:column;padding:0;gap:1.5rem;align-items:center}.works{grid-template-columns:1fr;padding:4px;gap:16px}.work-item .mask{height:160px}.sm-historia{flex-direction:column}.sm-historia-img{width:100%;height:260px}.sm-interests{grid-template-columns:1fr}.cv-header{flex-direction:column;align-items:flex-start}.home--split{flex-direction:column!important;text-align:center;padding:2rem 1.5rem;gap:1.5rem}.home--split .perfil{order:1;width:160px;height:160px}.home-text{order:2;align-items:center}.home--split h1,.home--split p{text-align:center!important}.hero-buttons{justify-content:center}}@media(max-width:480px){.home h1{font-size:2rem}.page{padding:1.5rem;margin:1rem auto}.cv-skill-group{flex-direction:column;align-items:flex-start}}.galeria-page{background:#080808;min-height:100vh;color:#d6d0c8;font-family:Georgia,Times New Roman,serif;overflow-x:hidden}.galeria-nav{position:fixed;top:0;left:0;right:0;z-index:100;display:flex;justify-content:space-between;align-items:center;padding:1.75rem 2.5rem;background:linear-gradient(to bottom,rgba(0,0,0,.65) 0%,transparent 100%);pointer-events:none}.galeria-nav a,.galeria-nav span{pointer-events:all}.galeria-back{color:#d6d0c8a6;text-decoration:none;font-size:.72rem;letter-spacing:.18em;text-transform:uppercase;font-family:sans-serif;transition:color .2s}.galeria-back:hover{color:#d6d0c8}.galeria-brand{font-size:.78rem;letter-spacing:.22em;text-transform:uppercase;font-family:sans-serif;color:#d6d0c880}.galeria-hero{height:100vh;background-size:cover;background-position:center 30%;background-attachment:fixed;position:relative}.galeria-hero-overlay{position:absolute;inset:0;background:linear-gradient(to top,rgba(8,8,8,.85) 0%,rgba(8,8,8,.15) 50%,transparent 100%);display:flex;flex-direction:column;justify-content:flex-end;padding:4rem 3.5rem}.galeria-hero-overlay h1{font-size:clamp(3.5rem,9vw,7rem);font-weight:300;margin:0;line-height:.95;color:#f0ede8;letter-spacing:-.02em}.galeria-hero-overlay p{font-size:1rem;color:#f0ede880;margin:1rem 0 0;font-style:italic;letter-spacing:.06em}.galeria-scroll-hint{position:absolute;bottom:2rem;left:50%;transform:translate(-50%);display:flex;flex-direction:column;align-items:center;gap:.4rem;color:#f0ede84d;font-family:sans-serif;font-size:.65rem;letter-spacing:.18em;text-transform:uppercase;animation:fadeInDown 1.5s ease 1s both}.galeria-scroll-arrow{width:1px;height:40px;background:linear-gradient(to bottom,transparent,rgba(240,237,232,.4));animation:extendDown 1.5s ease-in-out infinite}@keyframes extendDown{0%,to{opacity:.3;transform:scaleY(1)}50%{opacity:.7;transform:scaleY(1.2)}}@keyframes fadeInDown{0%{opacity:0;transform:translate(-50%) translateY(-8px)}to{opacity:1;transform:translate(-50%) translateY(0)}}.galeria-section{padding:3px;margin-top:3px}.galeria-grid{columns:3;gap:3px}.galeria-item{break-inside:avoid;margin-bottom:3px;overflow:hidden;cursor:zoom-in;position:relative}.galeria-item:after{content:"";position:absolute;inset:0;background:#08080800;transition:background .4s ease}.galeria-item:hover:after{background:#08080826}.galeria-item img{width:100%;display:block;transition:transform .6s cubic-bezier(.25,.46,.45,.94);filter:brightness(.88) contrast(1.04)}.galeria-item:hover img{transform:scale(1.04);filter:brightness(1) contrast(1.04)}.galeria-footer{text-align:center;padding:4rem 2rem;display:flex;flex-direction:column;align-items:center;gap:.75rem;font-family:sans-serif;font-size:.7rem;letter-spacing:.15em;text-transform:uppercase;color:#d6d0c833}.galeria-ig{color:#d6d0c88c;text-decoration:none;font-size:.9rem;letter-spacing:.12em;transition:color .2s}.galeria-ig:before{content:"↗ ";font-size:.75rem}.galeria-ig:hover{color:#d6d0c8}.galeria-lightbox{position:fixed;inset:0;background:#050505f7;z-index:1000;display:flex;align-items:center;justify-content:center;animation:lbFadeIn .2s ease}@keyframes lbFadeIn{0%{opacity:0}to{opacity:1}}.galeria-lightbox img{max-height:88vh;max-width:88vw;object-fit:contain;-webkit-user-select:none;user-select:none;animation:lbZoomIn .25s ease}@keyframes lbZoomIn{0%{transform:scale(.96);opacity:0}to{transform:scale(1);opacity:1}}.lb-close{position:absolute;top:1.5rem;right:1.75rem;background:none;border:none;color:#f0ede880;font-size:1.25rem;cursor:pointer;font-family:sans-serif;padding:.5rem;line-height:1;transition:color .2s;letter-spacing:0}.lb-close:hover{color:#f0ede8}.lb-prev,.lb-next{position:absolute;top:50%;transform:translateY(-50%);background:none;border:none;color:#f0ede859;font-size:2.5rem;cursor:pointer;padding:1.5rem;transition:color .2s;line-height:1;font-family:sans-serif;font-weight:200}.lb-prev{left:0}.lb-next{right:0}.lb-prev:hover,.lb-next:hover{color:#f0ede8}.lb-counter{position:absolute;bottom:1.75rem;left:50%;transform:translate(-50%);font-family:sans-serif;font-size:.68rem;letter-spacing:.22em;color:#f0ede84d;text-transform:uppercase}@media(max-width:768px){.galeria-hero{background-attachment:scroll}.galeria-hero-overlay{padding:2.5rem 1.5rem}.galeria-nav{padding:1.25rem 1.5rem}.galeria-grid{columns:2}.lb-prev{left:0;padding:1rem}.lb-next{right:0;padding:1rem}}@media(max-width:480px){.galeria-grid{columns:1}}.links-page{min-height:100vh;background:#0c0c0c;display:flex;align-items:center;justify-content:center;padding:3rem 1.5rem;font-family:sans-serif;box-sizing:border-box}.links-card{width:100%;max-width:400px;display:flex;flex-direction:column;align-items:center;gap:0}.links-avatar{width:90px;height:90px;border-radius:50%;object-fit:cover;object-position:top 20%;border:2px solid rgba(255,255,255,.1);margin-bottom:1.1rem}.links-name{color:#f0ede8;font-size:1.05rem;font-weight:600;margin:0 0 .2rem;letter-spacing:.02em}.links-handle{color:#f0ede866;font-size:.8rem;letter-spacing:.1em;margin:0 0 2.25rem}.links-list{width:100%;display:flex;flex-direction:column;gap:.75rem}.links-btn{display:flex;align-items:center;justify-content:center;gap:.65rem;width:100%;padding:.95rem 1.5rem;border-radius:12px;text-decoration:none;font-size:.9rem;font-weight:500;letter-spacing:.03em;cursor:pointer;transition:transform .18s ease,opacity .18s ease;border:none;box-sizing:border-box}.links-btn:hover{transform:translateY(-2px);opacity:.88}.links-btn:active{transform:translateY(0)}.links-btn--portfolio{background:#7c3aed;color:#fff}.links-btn--galeria{background:#ffffff0f;color:#f0ede8;border:1px solid rgba(255,255,255,.1)}.links-btn--linkedin{background:#0a66c2;color:#fff}.links-btn svg{flex-shrink:0}.links-footer{margin-top:2.5rem;color:#f0ede826;font-size:.65rem;letter-spacing:.12em;text-transform:uppercase}
