.contact-section{padding:5rem 0 6rem;max-width:680px;margin:0 auto;scroll-margin-top:80px}.contact-header{text-align:center;margin-bottom:40px}.contact-header h2{color:var(--text);font-size:3rem;font-weight:900;letter-spacing:0;margin:0 0 10px}.subtitle{color:var(--text);opacity:.74;font-size:1rem;line-height:1.6;margin:0}.direct-link{color:var(--text);text-decoration:underline;text-underline-offset:4px;font-weight:500;opacity:.9;transition:opacity .2s}.direct-link:hover{opacity:1;color:var(--brand)}.contact-form{display:flex;flex-direction:column;gap:24px;padding:1.25rem;border:1px solid var(--border);border-radius:8px;background:var(--panel);box-shadow:var(--elev)}.form-group{display:flex;flex-direction:column;gap:8px}.form-label{color:var(--text);font-size:14px;font-weight:600}.form-input{width:100%;background:#ffffff08;border:1px solid var(--border);color:var(--text);border-radius:8px;padding:14px 16px;font-family:inherit;font-size:16px;transition:all .2s ease;box-sizing:border-box}.form-input::placeholder{color:var(--text);opacity:.3}.form-input.textarea{resize:vertical;min-height:150px}.form-input:focus{outline:none;border-color:var(--brand);background:color-mix(in srgb,var(--panel) 50%,transparent);box-shadow:0 0 0 3px color-mix(in srgb,var(--brand) 18%,transparent)}.btn-submit{width:100%;margin-top:10px;background:var(--brand)!important;border:1px solid var(--brand)!important;padding:16px;border-radius:8px;font-weight:600;font-size:16px;cursor:pointer;transition:all .2s ease}.btn-submit .submit-text{color:#071013!important}.btn-submit:hover{background:var(--mint)!important;border-color:var(--mint)!important;box-shadow:0 10px 25px color-mix(in srgb,var(--brand) 22%,transparent)}.btn-submit:hover .submit-text{color:#071013!important}.btn-submit:disabled{opacity:.6;cursor:not-allowed}@media(max-width:760px){.contact-section{padding:4rem 0 5rem}.contact-header h2{font-size:2.15rem}}.experiencia{background-color:var(--bg);padding:4rem 0;overflow:visible;scroll-margin-top:80px;text-align:center}.experiencia h2{text-align:center;color:var(--text);margin-bottom:3rem;font-size:3rem;font-weight:900;letter-spacing:0}.experience-title{margin:0 0 3rem;text-align:center}.timeline-container{--timeline-axis: 72px;--timeline-content-offset: 150px;position:relative;max-width:1200px;margin:0 auto;padding:20px 0}.timeline-line{position:absolute;left:var(--timeline-axis);top:0;bottom:0;width:2px;background:linear-gradient(to bottom,transparent,var(--brand) 10%,var(--brand) 90%,transparent);transform:translate(-50%);opacity:.4}.timeline-item{position:relative;margin-bottom:60px;opacity:0;transform:translateY(30px);transition:opacity .6s ease,transform .6s ease}.timeline-item.visible{opacity:1;transform:translateY(0)}.timeline-marker{position:absolute;left:var(--timeline-axis);top:0;transform:translate(-50%);width:96px;display:flex;flex-direction:column;align-items:center;z-index:2}.marker-dot{width:16px;height:16px;background:var(--bg);border:3px solid var(--brand);border-radius:50%;box-shadow:0 0 10px color-mix(in oklab,var(--brand),transparent 50%);transition:all .4s cubic-bezier(.175,.885,.32,1.275);cursor:pointer;position:relative;z-index:2}.timeline-item:hover .marker-dot{background:var(--brand);transform:scale(1.5);box-shadow:0 0 20px var(--brand)}.marker-year{margin-top:12px;background:color-mix(in oklab,var(--panel),transparent 20%);backdrop-filter:none;color:var(--text);border:1px solid color-mix(in oklab,var(--border),transparent 40%);padding:6px 14px;border-radius:8px;font-size:13px;font-weight:700;letter-spacing:.5px;white-space:nowrap;transition:color .4s ease,background-color .4s ease,border-color .4s ease,transform .4s ease}.timeline-item:hover .marker-year{color:#fff;background:var(--brand);border-color:var(--brand);transform:translateY(5px)}.timeline-content{margin-left:var(--timeline-content-offset);margin-right:0;text-align:left;background:color-mix(in oklab,var(--panel),transparent 40%);backdrop-filter:none;border:1px solid color-mix(in oklab,var(--border),transparent 40%);border-radius:8px;padding:15px;box-shadow:0 8px 30px #0000000a;transition:transform .4s cubic-bezier(.175,.885,.32,1.275),border-color .4s ease,box-shadow .4s ease,background-color .4s ease;position:relative;z-index:10}html.is-scrolling .timeline-content{transition:none}.timeline-content:hover{transform:translateY(-5px);border-color:color-mix(in oklab,var(--brand),transparent 50%);box-shadow:0 15px 35px color-mix(in oklab,var(--brand),transparent 85%);background:color-mix(in oklab,var(--panel),transparent 10%)}.timeline-content h3{color:var(--brand);margin:0 0 5px;font-size:20px;font-weight:700}.timeline-content h4{color:var(--text);margin:0 0 15px;font-size:16px;font-weight:600;opacity:.8}.timeline-content p{color:var(--text);line-height:1.6;margin:0 0 20px;opacity:.9}.tech-used{display:flex;flex-wrap:wrap;gap:10px;justify-content:flex-start}.tech{background:color-mix(in oklab,var(--panel-2),transparent 40%);border:1px solid color-mix(in oklab,var(--border),transparent 50%);color:var(--text);padding:6px 14px;border-radius:8px;font-size:12px;font-weight:600;transition:color .3s ease,background-color .3s ease,border-color .3s ease,transform .3s ease,box-shadow .3s ease;backdrop-filter:none}@supports ((-webkit-backdrop-filter: blur(1px)) or (backdrop-filter: blur(1px))){@media(hover:hover)and (pointer:fine){html:not(.is-scrolling) .marker-year{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}html:not(.is-scrolling) .timeline-content{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}html:not(.is-scrolling) .tech{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}}}@media(prefers-reduced-motion:reduce){.marker-year,.timeline-content,.tech{backdrop-filter:none}}.tech:hover{background:var(--brand);border-color:var(--brand);color:#fff;transform:translateY(-2px);box-shadow:0 4px 12px color-mix(in oklab,var(--brand),transparent 60%)}@media(max-width:992px){.experiencia h2{font-size:2.35rem;margin-bottom:2.5rem}}@media(max-width:768px){.experiencia{padding:3rem 0}.experiencia h2{font-size:2rem;margin-bottom:2rem}.timeline-container{--timeline-axis: 42px;--timeline-content-offset: 100px;padding:10px 0}.marker-year,.timeline-content,.tech{backdrop-filter:none}.timeline-item:nth-child(odd) .timeline-content,.timeline-item:nth-child(2n) .timeline-content{margin-left:var(--timeline-content-offset);padding:25px 20px}.timeline-marker{left:var(--timeline-axis);width:78px}.marker-dot{width:16px;height:16px;border-width:3px}.marker-year{font-size:10px;padding:3px 8px}.timeline-content h3{font-size:18px}.timeline-content h4,.timeline-content p{font-size:14px}}@media(max-width:400px){.timeline-container{--timeline-axis: 36px;--timeline-content-offset: 74px}.timeline-item:nth-child(odd) .timeline-content,.timeline-item:nth-child(2n) .timeline-content{margin-left:var(--timeline-content-offset);padding:15px}.timeline-marker{width:68px}.marker-dot{width:12px;height:12px}}.profile{display:grid;grid-template-columns:220px minmax(0,620px);gap:1.15rem 48px;align-items:start;max-width:940px;margin-inline:auto;margin-bottom:70px;position:relative;scroll-margin-top:0px}.profile-image{grid-column:1 / 2;grid-row:1 / 2;align-self:center;justify-self:center;width:200px;height:200px;border-radius:50%;margin:0;border:3px solid transparent;background:linear-gradient(#fff,#fff) padding-box,linear-gradient(45deg,var(--brand),var(--text)) border-box;transition:all .3s ease;position:relative;overflow:hidden;color:var(--text);display:flex;align-items:center;justify-content:center;box-sizing:border-box;z-index:1}.profile-image img{width:100%;height:100%;object-fit:cover;border-radius:50%;display:block;box-sizing:border-box}.profile-image:hover{transform:none;box-shadow:none}.profile-intro{grid-column:2 / 3;grid-row:1 / 2;align-self:start;padding-top:0}.profile-intro h1{font-size:52px;margin:0;font-weight:800;background:linear-gradient(135deg,var(--text),var(--brand));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;letter-spacing:0}.typing-text{position:relative}.typing-text:after{content:"|";position:absolute;right:-10px;animation:blink 1s infinite}html.is-scrolling .typing-text:after{animation-play-state:paused}@keyframes blink{0%,50%{opacity:1}51%,to{opacity:0}}.profile-intro>p{margin:.85rem 0 .75rem;font-size:19px;line-height:1.6;max-width:520px;color:var(--text);opacity:.9}.profile-actions{display:flex;flex-wrap:wrap;align-items:center;gap:.75rem;margin-top:1.2rem}.profile-primary-link,.profile-secondary-link{display:inline-flex;align-items:center;justify-content:center;min-height:42px;padding:0 1rem;border-radius:8px;text-decoration:none;font-size:.92rem;font-weight:850;transition:background-color .2s ease,border-color .2s ease,color .2s ease,transform .2s ease}.profile-primary-link{border:1px solid var(--brand);background:var(--brand);color:#071013}.profile-secondary-link{border:1px solid var(--border);background:transparent;color:var(--text)}.profile-primary-link:hover,.profile-primary-link:focus-visible{background:var(--mint);border-color:var(--mint);color:#071013;transform:translateY(-2px)}.profile-secondary-link:hover,.profile-secondary-link:focus-visible{border-color:var(--brand);background:color-mix(in srgb,var(--brand) 10%,transparent);color:var(--text);transform:translateY(-2px)}.btn-cv-small{display:inline-flex;align-items:center;gap:8px;background:transparent;min-height:42px;padding:0 1rem;border-radius:8px;text-decoration:none;transition:all .3s cubic-bezier(.4,0,.2,1);position:relative;overflow:hidden;border:1px solid color-mix(in oklab,var(--brand),transparent 50%);background:linear-gradient(145deg,var(--panel),var(--bg));box-shadow:0 4px 15px color-mix(in oklab,var(--brand),transparent 85%)}.btn-cv-small:before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,transparent,color-mix(in oklab,var(--brand),transparent 80%),transparent);transform:translate(-100%);transition:transform .6s ease}.cv-text{font-size:15px;font-weight:800;background:linear-gradient(135deg,var(--text),var(--brand));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;letter-spacing:.5px}.cv-icon{color:var(--brand);transition:transform .3s ease}.btn-cv-small:hover{border-color:var(--brand);transform:translateY(-2px);box-shadow:0 8px 25px color-mix(in oklab,var(--brand),transparent 60%)}.btn-cv-small:hover:before{transform:translate(100%)}.btn-cv-small:hover .cv-icon{transform:translateY(2px)}[data-theme=light] .btn-cv-small{background:var(--bg)}.social-icons{grid-column:2 / 3;grid-row:2 / 3;display:flex;gap:12px;justify-content:flex-start;align-items:center;flex-wrap:wrap;margin-top:.2rem}.icon-wrapper{position:relative;width:50px;height:50px;cursor:pointer;border-radius:50%;transition:transform .2s ease;overflow:hidden;display:flex;align-items:center;justify-content:center;box-sizing:border-box;will-change:transform;flex-shrink:0}.icon-wrapper:hover{transform:scale(1.05)}.icon{position:absolute;inset:0;display:flex;justify-content:center;align-items:center;transition:all .2s ease}.icon svg.icon-svg{width:24px;height:24px}.icon-main{opacity:1}.icon-hover{opacity:0;transform:translate(-100%,100%)}.icon-wrapper:hover .icon-main{opacity:.2}.icon-wrapper:hover .icon-hover{opacity:1;transform:translate(0)}.icon-hover img{max-width:50%;max-height:50%}.icon-wrapper:before{content:"";position:absolute;inset:0;background:radial-gradient(circle,#fff3,#fff0 70%);opacity:0;transition:opacity .2s ease;pointer-events:none}.icon-wrapper:hover:before{opacity:1}html[data-theme=light] .social-icons .icon{color:#000}html[data-theme=dark] .social-icons .icon{color:#fff}[data-theme=light] .icon-wrapper{background-color:var(--panel);border:1px solid var(--border)}[data-theme=light] .icon-wrapper:hover{background-color:var(--panel-2)}@media(max-width:768px){.profile{grid-template-columns:1fr;gap:24px;text-align:center}.profile-image{grid-column:1 / -1;grid-row:1 / 2;margin:0 auto}.profile-intro{grid-column:1 / -1;grid-row:2 / 3;padding:0 12px;display:flex;flex-direction:column;align-items:center}.profile-actions{justify-content:center}.social-icons{grid-column:1 / -1;grid-row:3 / 4;justify-content:center}}@media(max-width:400px){.profile-image{width:140px;height:140px}.profile-intro h1{font-size:24px;margin-top:6px}.profile-intro>p{font-size:14px;line-height:1.5}.social-icons{gap:12px;justify-content:center}.icon-wrapper{width:44px;height:44px}.icon svg.icon-svg{width:20px;height:20px}}.projects{position:relative;margin-top:5rem;padding:0;scroll-margin-top:100px}.projects-heading{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:1.5rem;align-items:end;max-width:1080px;margin:0 auto 1.5rem}.projects-title{margin:0;color:var(--text);font-size:3.2rem;font-weight:900;letter-spacing:0;line-height:1.08}.projects-subtitle{max-width:680px;margin:.85rem 0 0;color:var(--muted);font-size:1.03rem;line-height:1.65}.project-toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:.55rem;position:relative;max-width:1080px;margin:0 auto 1.45rem}.filter-menu{position:relative}.filter-trigger{display:inline-flex;align-items:center;gap:.5rem;min-height:36px;padding:0 .85rem;border:1px solid rgba(255,255,255,.12);border-radius:8px;background:#ffffff09;color:var(--text);font-size:.82rem;font-weight:750;list-style:none;cursor:pointer;transition:background-color .2s ease,border-color .2s ease,color .2s ease}.filter-trigger::-webkit-details-marker{display:none}.filter-trigger:after{content:"+";color:var(--brand);font-weight:900;line-height:1}.filter-menu[open] .filter-trigger,.filter-trigger:hover,.filter-trigger:focus-visible{border-color:var(--brand);background:#00e5ff1f;color:#fff;outline:none}.filter-menu[open] .filter-trigger:after{content:"-"}.filter-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.5rem;position:absolute;top:calc(100% + .6rem);left:0;z-index:20;width:min(520px,calc(100vw - 2rem));padding:.75rem;border:1px solid rgba(255,255,255,.12);border-radius:8px;background:#15171c;box-shadow:0 22px 50px #0000006b;box-sizing:border-box}.filter-pill{display:inline-flex;align-items:center;gap:.45rem;min-height:36px;padding:0 .78rem;border:1px solid rgba(255,255,255,.12);border-radius:8px;background:#ffffff09;color:var(--text);font:inherit;font-size:.82rem;font-weight:750;white-space:nowrap;cursor:pointer;box-sizing:border-box;transition:background-color .2s ease,border-color .2s ease,color .2s ease}.filter-all{border-color:#00e5ff57;color:#a9efff}.stack-icon{width:16px;height:16px;border-radius:0;filter:grayscale(100%) opacity(.72);transition:filter .2s ease,transform .2s ease}.filter-pill:hover,.filter-pill:focus-visible,.filter-pill.active{border-color:var(--brand);background:#00e5ff1f;color:#fff;outline:none}.filter-pill:hover .stack-icon,.filter-pill:focus-visible .stack-icon,.filter-pill.active .stack-icon{filter:grayscale(0%) opacity(1)}.project-filter-status{margin:0;padding:.45rem .7rem;border:1px solid rgba(0,229,255,.22);border-radius:8px;background:#00e5ff14;color:#a9efff;font-size:.84rem;font-weight:800;white-space:nowrap}.project-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.35rem;max-width:1080px;margin:0 auto}.project-card{display:flex;flex-direction:column;position:relative;min-width:0;overflow:hidden;border:1px solid rgba(255,255,255,.12);border-radius:8px;background:linear-gradient(145deg,#fff1,#ffffff06),#121419;box-shadow:0 16px 34px #0000003d;transition:transform .22s ease,border-color .22s ease,box-shadow .22s ease}.project-card:before{content:"";position:absolute;inset:0;z-index:1;border-radius:inherit;background:linear-gradient(135deg,rgba(0,229,255,.12),transparent 42%);opacity:0;pointer-events:none;transition:opacity .22s ease}.project-card[hidden]{display:none}.project-card:hover{transform:translateY(-4px);border-color:color-mix(in srgb,var(--brand) 55%,var(--border));box-shadow:0 22px 48px #00000057}.project-card:hover:before{opacity:1}.project-image-link{display:block;position:relative;z-index:2;aspect-ratio:16 / 8.6;overflow:hidden;background:#0b0c10}.project-preview{display:block;width:100%;height:100%;border-radius:0;object-fit:cover;object-position:top;filter:saturate(.95) contrast(.98);transition:transform .28s ease,filter .28s ease}.project-card:hover .project-preview{transform:scale(1.02);filter:saturate(1.06) contrast(1.02)}.project-visual-shade{position:absolute;inset:0;background:linear-gradient(180deg,transparent 62%,rgba(15,17,21,.58)),linear-gradient(90deg,rgba(0,0,0,.08),transparent 44%);pointer-events:none}.project-card-cta{display:inline-flex;align-items:center;justify-content:center;position:absolute;right:.85rem;bottom:.85rem;min-height:32px;padding:0 .75rem;border:1px solid rgba(255,255,255,.14);border-radius:8px;background:#0c0e12c7;color:#fff;font-size:.78rem;font-weight:850;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);transform:translateY(4px);opacity:0;transition:opacity .22s ease,transform .22s ease,border-color .22s ease}.project-card:hover .project-card-cta,.project-card:focus-within .project-card-cta{border-color:#00e5ff6b;opacity:1;transform:translateY(0)}.project-card-body{display:flex;flex:1;flex-direction:column;gap:.95rem;position:relative;z-index:2;padding:1rem;border-top:1px solid rgba(255,255,255,.08)}.project-title{margin:0;color:var(--text);font-size:1.18rem;font-weight:900;line-height:1.25;letter-spacing:0}.project-title a{color:inherit;text-decoration:none}.project-title a:hover,.project-title a:focus-visible{color:var(--brand);outline:none}.project-description{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;overflow:hidden;margin:.55rem 0 0;color:var(--muted);font-size:.9rem;line-height:1.58}.project-card-footer{display:grid;gap:.85rem;margin-top:auto}.project-tech-stack{display:flex;flex-wrap:wrap;gap:.38rem}.tech-tag{display:inline-flex;align-items:center;min-height:24px;padding:0 .55rem;border:1px solid rgba(255,255,255,.12);border-radius:7px;background:#ffffff0d;color:#ffffffc7;font-size:.72rem;font-weight:750}.tech-tag-more{border-color:#00e5ff3d;background:#00e5ff14;color:#a9efff}.project-actions{display:flex;flex-wrap:wrap;gap:.55rem}.btn{display:inline-flex;align-items:center;justify-content:center;min-height:36px;padding:0 .82rem;border-radius:8px;text-decoration:none;font-size:.82rem;font-weight:850;transition:background-color .2s ease,border-color .2s ease,color .2s ease,transform .2s ease}.btn:hover,.btn:focus-visible{transform:translateY(-2px);outline:none}.btn-primary{border:1px solid var(--brand);background:var(--brand);color:#071013}.btn-primary:hover,.btn-primary:focus-visible{border-color:var(--mint);background:var(--mint);color:#071013}.btn-secondary{border:1px solid var(--border);background:transparent;color:var(--text)}.btn-secondary:hover,.btn-secondary:focus-visible{border-color:var(--brand);background:color-mix(in srgb,var(--brand) 10%,transparent);color:#fff}.no-projects-msg{grid-column:1 / -1;margin:0;padding:2rem;border:1px solid var(--border);border-radius:8px;background:var(--panel);color:var(--muted);text-align:center}@media(max-width:768px){.projects{margin-top:3rem}.projects-heading{grid-template-columns:1fr;gap:1rem}.projects-title{font-size:2.25rem}.project-toolbar{gap:.5rem}.filter-menu{width:100%}.filter-trigger{justify-content:space-between;width:100%}.filter-list{position:static;grid-template-columns:1fr;width:100%;margin-top:.5rem;box-shadow:none}.filter-pill{min-height:36px;padding:0 .7rem;font-size:.82rem}.project-grid{grid-template-columns:1fr}}@media(max-width:460px){.projects-title{font-size:1.95rem}}:root,[data-theme=dark]{--bg: #101114;--text: rgb(var(--gray-dark));--muted: rgba(244, 241, 255, .72);--panel: rgba(255, 255, 255, .05);--panel-2: rgba(255, 255, 255, .09);--border: rgba(255, 255, 255, .14);--brand: #00e5ff;--mint: #75f2c8;--amber: #ffd166;--elev: 0 18px 45px rgba(0, 0, 0, .28)}body{background:var(--bg)}main{width:100%;max-width:none;padding:0}.projects,.experiencia,.contact-section{content-visibility:auto;contain-intrinsic-size:800px}.page-container{display:flex;justify-content:center;padding:4rem 1rem 0}.content-wrapper{width:100%;max-width:1120px}.portfolio-cta{margin:5rem 0 3rem;padding:3rem 0;text-align:center}.call-to-action{max-width:760px;margin:0 auto;color:var(--text);font-size:3rem;font-weight:900;letter-spacing:0;line-height:1.08;text-wrap:balance}.call-to-action span{display:block;margin-top:.8rem;color:var(--muted);font-size:1.35rem;font-weight:650;line-height:1.45}.cta-link{display:inline-flex;align-items:center;justify-content:center;min-height:46px;margin-top:1.5rem;padding:0 1.15rem;border:1px solid var(--brand);border-radius:8px;background:var(--brand);color:#071013;text-decoration:none;font-size:.95rem;font-weight:850;transition:background-color .2s ease,border-color .2s ease,transform .2s ease}.cta-link:hover,.cta-link:focus-visible{background:var(--mint);border-color:var(--mint);color:#071013;transform:translateY(-2px)}.profile-details h1,.profile-details h2,.profile-details p{color:var(--text)!important}@media(max-width:760px){.page-container{padding-top:2.75rem}.portfolio-cta{margin:3.5rem 0 2rem;padding:2.5rem 0}.call-to-action{font-size:2.2rem}.call-to-action span{font-size:1.05rem}}@media(max-width:460px){.page-container{padding-left:.75rem;padding-right:.75rem}.call-to-action{font-size:1.85rem}}
