@import"https://fonts.googleapis.com/css2?family=Space+Grotesk:wght@500;600;700&family=JetBrains+Mono:wght@400;500&family=Inter:wght@400;500;600&display=swap";.portfolio-header{position:fixed;top:0;left:0;right:0;z-index:1000;background:var(--ink);border-bottom:1px solid var(--line-dark);transition:all .3s ease}.portfolio-header.scrolled{box-shadow:var(--shadow-lg)}.header-container{max-width:1280px;margin:0 auto;display:flex;justify-content:space-between;align-items:center;height:68px;padding:0 2rem}.header-logo{background:none;border:none;padding:0;cursor:pointer}.header-logo h2{font-family:var(--font-mono);font-size:1.15rem;font-weight:500;color:var(--paper);letter-spacing:.05em;margin:0;transition:color .2s ease}.header-logo:hover h2,.header-logo h2 span{color:var(--signal)}.nav-menu{display:flex;align-items:center}.nav-menu ul{display:flex;list-style:none;margin:0;padding:0;gap:.5rem;align-items:center}.nav-menu li{position:relative}.nav-menu button{background:none;border:none;color:var(--text-on-dark-muted);font-family:var(--font-mono);font-size:.85rem;font-weight:500;padding:.5rem .9rem;cursor:pointer;text-decoration:none;transition:color .2s ease;border-radius:var(--border-radius)}.nav-menu button:hover{color:var(--paper)}.nav-menu button:after{content:"";position:absolute;bottom:.15rem;left:.9rem;right:.9rem;height:2px;background:var(--signal);transform:scaleX(0);transform-origin:left;transition:transform .2s ease}.nav-menu button:hover:after{transform:scaleX(1)}.menu-toggle{display:none;background:none;border:none;color:var(--paper);font-size:1.4rem;cursor:pointer;padding:.5rem;border-radius:var(--border-radius)}.menu-toggle:hover{color:var(--signal)}@media (max-width: 768px){.header-container{padding:0 1.25rem}.menu-toggle{display:block}.nav-menu{position:fixed;top:68px;left:0;right:0;background:var(--ink);border-top:1px solid var(--line-dark);transform:translate(-100%);transition:transform .25s ease}.nav-menu.open{transform:translate(0)}.nav-menu ul{flex-direction:column;gap:0;padding:.5rem 0}.nav-menu li{width:100%}.nav-menu button{width:100%;text-align:left;padding:.9rem 1.5rem;border-radius:0;font-size:.95rem}.nav-menu button:after{display:none}}.hero-section{display:flex;align-items:center;background:var(--ink);position:relative;overflow:hidden;padding:9rem 0 4rem}.hero-section:before{content:"";position:absolute;top:-20px;right:-20px;bottom:-20px;left:-20px;background-image:radial-gradient(rgba(247,245,239,.18) 1.5px,transparent 1.5px);background-size:22px 22px;animation:bgDrift 18s linear infinite;pointer-events:none}.hero-container{max-width:1400px;margin:0 auto;padding:var(--container-padding);position:relative;z-index:2}.hero-content{display:grid;grid-template-columns:1fr 1fr;gap:4rem;align-items:center}.hero-text{display:flex;flex-direction:column;gap:1.75rem}.hero-title{display:flex;flex-direction:column;gap:.4rem}.hero-greeting{font-family:var(--font-mono);font-size:var(--font-size-base);color:var(--signal);font-weight:500;letter-spacing:.05em;opacity:0;animation:fadeInUp .6s ease-out .1s forwards}.hero-name{font-family:var(--font-display);font-size:var(--font-size-5xl);font-weight:700;color:var(--paper);letter-spacing:-.02em;line-height:1.1;opacity:0;animation:fadeInUp .6s ease-out .2s forwards}.hero-role{font-size:var(--font-size-xl);color:var(--text-on-dark-muted);font-weight:500;opacity:0;animation:fadeInUp .6s ease-out .3s forwards}.hero-description{font-size:var(--font-size-lg);color:var(--text-on-dark-muted);line-height:1.7;max-width:480px;opacity:0;animation:fadeInUp .6s ease-out .4s forwards}.hero-tags{display:flex;flex-wrap:wrap;gap:.5rem;opacity:0;animation:fadeInUp .6s ease-out .45s forwards}.hero-tag{font-family:var(--font-mono);font-size:.75rem;padding:.35rem .75rem;border:1px solid var(--line-dark);border-radius:999px;color:var(--text-on-dark-muted)}.hero-buttons{display:flex;gap:1rem;flex-wrap:wrap;opacity:0;animation:fadeInUp .6s ease-out .5s forwards}.hero-buttons .btn-primary,.hero-buttons .btn-secondary{padding:.875rem 2rem;font-size:var(--font-size-base);font-weight:600}.hero-buttons .btn-primary{background:var(--signal);border-color:var(--signal);color:var(--ink)}.hero-buttons .btn-primary:hover{background:var(--paper);border-color:var(--paper)}.hero-buttons .btn-secondary{color:var(--paper);border-color:var(--paper)}.hero-buttons .btn-secondary:hover{background:var(--paper);color:var(--ink)}.hero-social{display:flex;gap:.75rem;margin-bottom:1rem;opacity:0;animation:fadeInUp .6s ease-out .6s forwards}.social-link{display:flex;align-items:center;justify-content:center;width:44px;height:44px;background:var(--ink-soft);color:var(--text-on-dark-muted);border:1px solid var(--line-dark);border-radius:50%;text-decoration:none;font-size:var(--font-size-lg);transition:all var(--transition-normal)}.social-link:hover{color:var(--ink);background:var(--signal);border-color:var(--signal);transform:translateY(-2px)}.hero-image{display:flex;justify-content:center;align-items:center;opacity:0;animation:fadeInUp .6s ease-out .3s forwards}.image-container{position:relative;width:100%;max-width:260px;aspect-ratio:1;border-radius:50%;overflow:hidden;border:3px solid var(--paper);transition:all .25s ease}.image-container:after{content:"";position:absolute;top:-3px;right:-3px;bottom:-3px;left:-3px;border-radius:50%;border:1px dashed var(--signal);pointer-events:none}.profile-image{width:100%;height:100%;object-fit:cover}.hero-scroll-indicator{position:absolute;bottom:2rem;left:50%;transform:translate(-50%);opacity:0;animation:fadeInUp .6s ease-out .8s forwards}.scroll-arrow{width:20px;height:20px;border:2px solid var(--signal);border-top:none;border-right:none;transform:rotate(-45deg);animation:bounce 2s infinite}@keyframes bounce{0%,20%,50%,80%,to{transform:translateY(0) rotate(-45deg)}40%{transform:translateY(-8px) rotate(-45deg)}60%{transform:translateY(-4px) rotate(-45deg)}}@media (max-width: 1024px){.hero-content{gap:3rem}.hero-name{font-size:var(--font-size-4xl)}.image-container{max-width:230px}}@media (max-width: 768px){.hero-scroll-indicator{bottom:.1rem!important}.hero-section{padding:6.5rem 0 3rem}.hero-content{grid-template-columns:1fr;gap:2rem;text-align:center}.hero-text{order:2;gap:1.25rem}.hero-image{order:1;margin-top:1rem}.hero-name{font-size:var(--font-size-3xl)}.hero-role{font-size:var(--font-size-lg)}.hero-description{font-size:var(--font-size-base);max-width:none}.image-container{max-width:200px}.hero-social,.hero-tags{justify-content:center}}@media (max-width: 480px){.hero-buttons{flex-direction:column}.hero-name{font-size:var(--font-size-2xl)}.hero-greeting{font-size:var(--font-size-base)}.image-container{max-width:170px}}@media (prefers-reduced-motion: reduce){.hero-section:before{animation:none}.hero-greeting,.hero-name,.hero-role,.hero-description,.hero-buttons,.hero-social,.hero-image,.hero-scroll-indicator{animation:none;opacity:1}.scroll-arrow{animation:none}}.about-section{padding:var(--section-padding);background:var(--ink)}.about-section .section-header:before{color:var(--signal)}.about-section .section-title{color:var(--paper)}.about-section .section-subtitle{color:var(--text-on-dark-muted)}.about-container{max-width:1280px;margin:0 auto;padding:var(--container-padding)}.about-content{display:grid;grid-template-columns:1fr 1fr;gap:4rem;align-items:start}.about-text{display:flex;flex-direction:column;gap:2rem}.about-description{display:flex;flex-direction:column;gap:1.25rem}.about-description p{font-size:var(--font-size-lg);line-height:1.75;color:var(--text-on-dark-muted)}.about-description strong{color:var(--paper)}.about-highlights{display:flex;flex-direction:column}.highlights-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1rem}.highlight-card{padding:1.25rem;background:var(--ink-soft);border:1px solid var(--line-dark);border-radius:var(--border-radius-lg);transition:all var(--transition-normal)}.highlight-card:hover{border-color:var(--signal);transform:translateY(-3px)}.highlight-icon{font-size:var(--font-size-2xl);color:var(--signal);margin-bottom:.75rem}.highlight-title{font-family:var(--font-display);font-size:var(--font-size-base);font-weight:700;color:var(--paper);margin-bottom:.4rem}.highlight-description{font-size:var(--font-size-sm);color:var(--text-on-dark-muted);line-height:1.55}.description-content{transition:all .3s ease;padding-bottom:1em}.see-more-btn{background:var(--signal);color:var(--ink);border:none;padding:.5rem 1rem;border-radius:var(--border-radius);font-size:.75rem;font-weight:600;cursor:pointer;margin-top:.75rem;transition:all .2s ease;display:none}.see-more-btn:hover{background:var(--paper)}@media (max-width: 768px){.about-content{grid-template-columns:1fr;gap:2rem}.highlights-grid{grid-template-columns:repeat(2,1fr)}.highlight-card{padding:1rem}.see-more-btn{display:inline-block}.description-content.collapsed{max-height:4.8rem;overflow:hidden;position:relative}.description-content.collapsed:after{content:"";position:absolute;bottom:0;left:0;right:0;height:1.5rem;background:linear-gradient(transparent,var(--ink))}}.experience-section{padding:var(--section-padding);background:var(--ink)}.experience-container{max-width:1200px;margin:0 auto;padding:var(--container-padding)}.experience-section .section-header:before{color:var(--signal)}.experience-section .section-title{color:var(--paper)}.experience-section .section-subtitle{color:var(--text-on-dark-muted)}.experience-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem}.experience-card{background:var(--ink-soft);border:1px solid var(--line-dark);border-radius:var(--border-radius-lg);padding:1.75rem;display:flex;flex-direction:column;transition:border-color .25s ease,transform .25s ease,opacity .5s ease,box-shadow .25s ease;opacity:0;transform:translateY(24px)}.experience-card.in-view{opacity:1;transform:translateY(0)}.experience-card:hover{border-color:var(--signal);transform:translateY(-4px);box-shadow:var(--shadow-lg)}.experience-card-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:1rem}.experience-index{font-family:var(--font-mono);font-size:.75rem;letter-spacing:.2em;color:var(--signal)}.experience-icon{color:var(--text-on-dark-muted);font-size:.9rem;transition:transform .3s ease,color .3s ease}.experience-card:hover .experience-icon{color:var(--signal);transform:rotate(-8deg) scale(1.1)}.experience-title{font-family:var(--font-display);font-size:1.15rem;font-weight:700;color:var(--paper);margin-bottom:.4rem}.experience-type{font-family:var(--font-mono);display:inline-block;border:1px solid var(--signal);color:var(--signal);padding:.15rem .55rem;border-radius:var(--border-radius);font-size:.65rem;font-weight:500;text-transform:uppercase;letter-spacing:.05em;margin-bottom:1rem;width:fit-content}.experience-meta{display:flex;flex-direction:column;gap:.35rem;margin-bottom:1.1rem;padding-bottom:1.1rem;border-bottom:1px solid var(--line-dark)}.company-name{font-size:.95rem;font-weight:600;color:var(--paper)}.experience-location,.experience-period{display:flex;align-items:center;gap:.4rem;color:var(--text-on-dark-muted);font-size:.78rem}.experience-period{font-family:var(--font-mono)}.experience-description{list-style:none;padding:0;margin:0 0 1.25rem;flex-grow:1}.experience-description li{position:relative;padding-left:1.1rem;margin-bottom:.5rem;line-height:1.5;font-size:.85rem;color:#c7cad4}.experience-description li:before{content:"—";position:absolute;left:0;color:var(--signal)}.experience-technologies{display:flex;flex-wrap:wrap;gap:.4rem;margin-top:auto}.tech-tag{font-family:var(--font-mono);background:transparent;color:var(--text-on-dark-muted);padding:.2rem .55rem;border-radius:var(--border-radius);font-size:.65rem;border:1px solid var(--line-dark)}@media (max-width: 900px){.experience-grid{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;gap:1rem;margin:0;padding:.25rem 1.25rem .5rem;-webkit-overflow-scrolling:touch;scrollbar-width:none;touch-action:pan-x pan-y;overscroll-behavior-x:contain}.experience-grid::-webkit-scrollbar{display:none}.experience-card{flex:0 0 100%;scroll-snap-align:center;scroll-snap-stop:always;padding:1.25rem;text-align:center}.experience-card-top{justify-content:center;position:relative;margin-bottom:.6rem}.experience-icon{position:absolute;right:0}.experience-type{margin:0 auto .75rem}.experience-title{font-size:1rem;margin-bottom:.3rem}.experience-meta{align-items:center;gap:.25rem;margin-bottom:.85rem;padding-bottom:.85rem}.experience-location,.experience-period{justify-content:center}.experience-description{text-align:left;margin-bottom:0!important}.experience-description li{font-size:.8rem;margin-bottom:.4rem}.experience-description li:nth-child(n+4){display:none}.experience-technologies{justify-content:center}}.experience-dots{display:none}@media (max-width: 900px){.experience-dots{display:flex;justify-content:center;align-items:center;gap:.5rem;margin-top:1.25rem}.experience-dot{width:7px;height:7px;border-radius:999px;border:none;padding:0;background:var(--line-dark);cursor:pointer;transition:all .25s ease}.experience-dot.active{width:22px;background:var(--signal)}}@media (prefers-reduced-motion: reduce){.experience-card{opacity:1;transform:none;transition:none}.experience-card:hover{transform:none}}.skills-section{padding:var(--section-padding);background:var(--ink)}.skills-section .section-header:before{color:var(--signal)}.skills-section .section-title{color:var(--paper)}.skills-section .section-subtitle{color:var(--text-on-dark-muted)}.skills-container{max-width:1000px;margin:0 auto;padding:var(--container-padding)}.skills-content{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:2rem}.category-header{display:flex;align-items:center;gap:.6rem;margin-bottom:1rem;padding-bottom:.6rem;border-bottom:1px solid var(--line-dark)}.category-icon{color:var(--signal);font-size:1.1rem}.category-title{font-family:var(--font-mono);font-size:.8rem;font-weight:500;color:var(--text-on-dark-muted);text-transform:uppercase;letter-spacing:.05em}.skills-grid{display:flex;flex-wrap:wrap;gap:.5rem}.skill-item{display:inline-flex;align-items:center;gap:.4rem;padding:.4rem .8rem;border:1px solid var(--line-dark);border-radius:var(--border-radius);font-size:.85rem;color:var(--paper);transition:all .2s ease}.skill-item:hover{border-color:var(--signal);color:var(--signal)}.skill-item--learning{border-style:dashed}.learning-badge{font-family:var(--font-mono);font-size:.6rem;text-transform:uppercase;letter-spacing:.05em;color:var(--signal);border:1px solid var(--signal);border-radius:999px;padding:.05rem .4rem;margin-left:.15rem}.skill-icon{font-size:.9rem;display:flex}@media (max-width: 768px){.skills-content{grid-template-columns:1fr;gap:1.5rem}}.education-section{padding:var(--section-padding);background:var(--ink)}.education-container{max-width:1200px;margin:0 auto;padding:var(--container-padding)}.education-section .section-header:before{color:var(--signal)}.education-section .section-title{color:var(--paper)}.education-section .section-subtitle{color:var(--text-on-dark-muted)}.certifications-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:1.25rem;margin-bottom:3rem}.certification-card{position:relative;background:var(--ink-soft);border:1px solid var(--line-dark);padding:1.5rem;border-radius:var(--border-radius-lg);overflow:hidden;transition:border-color .25s ease,transform .25s ease,opacity .5s ease;opacity:0;transform:translateY(20px) scale(.97)}.certification-card.in-view{opacity:1;transform:translateY(0) scale(1)}.certification-card:hover{border-color:var(--signal);transform:translateY(-4px)}.cert-top-bar{position:absolute;top:0;left:0;height:3px;width:100%;background:var(--signal);transform:scaleX(0);transform-origin:left;transition:transform .6s ease .15s}.certification-card.in-view .cert-top-bar{transform:scaleX(1)}.cert-header{display:flex;align-items:flex-start;gap:.9rem;margin-bottom:.75rem}.cert-icon{width:38px;height:38px;border:1px solid var(--signal);border-radius:50%;display:flex;align-items:center;justify-content:center;color:var(--signal);font-size:1rem;flex-shrink:0;padding:8px;transition:transform .3s ease,background .3s ease,color .3s ease}.certification-card:hover .cert-icon{background:var(--signal);color:var(--ink);transform:rotate(-10deg) scale(1.08)}.cert-info{flex:1}.cert-name{font-family:var(--font-display);font-size:1.02rem;font-weight:700;color:var(--paper);margin:0 0 .3rem;line-height:1.3}.cert-issuer{font-size:.85rem;font-weight:500;color:var(--text-on-dark-muted)}.cert-date{font-family:var(--font-mono);display:inline-block;color:var(--signal);font-size:.72rem;letter-spacing:.1em;margin-bottom:.9rem}.cert-skills{display:flex;flex-wrap:wrap;gap:.4rem}.skill-tag{font-family:var(--font-mono);background:transparent;color:var(--text-on-dark-muted);padding:.2rem .6rem;border-radius:var(--border-radius);font-size:.68rem;border:1px solid var(--line-dark);transition:border-color .2s ease,color .2s ease}.certification-card:hover .skill-tag{border-color:#ff5a1f59;color:var(--signal)}.coursework-marquee{overflow:hidden;border-top:1px solid var(--line-dark);border-bottom:1px solid var(--line-dark);padding:1.25rem 0;-webkit-mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent);mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent)}.marquee-track{display:flex;width:max-content;gap:2.5rem;animation:marquee 22s linear infinite}.coursework-marquee:hover .marquee-track{animation-play-state:paused}.marquee-item{font-family:var(--font-mono);font-size:.85rem;color:var(--text-on-dark-muted);white-space:nowrap;display:flex;align-items:center;gap:2.5rem}.marquee-item:after{content:"•";color:var(--signal)}@keyframes marquee{0%{transform:translate(0)}to{transform:translate(-50%)}}@media (max-width: 768px){.certifications-grid{grid-template-columns:1fr}.certification-card{padding:1.25rem}}@media (prefers-reduced-motion: reduce){.certification-card{opacity:1;transform:none}.cert-top-bar{transform:scaleX(1);transition:none}.marquee-track{animation:none}}.projects-section{padding:var(--section-padding);background:var(--ink)}.projects-container{max-width:1200px;margin:0 auto;padding:var(--container-padding)}.projects-section .section-header:before{color:var(--signal)}.projects-section .section-title{color:var(--paper)}.projects-section .section-subtitle{color:var(--text-on-dark-muted)}.projects-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem}.project-flip{perspective:1600px;height:360px}.project-flip-inner{position:relative;width:100%;height:100%;transition:transform .7s cubic-bezier(.4,.2,.2,1);transform-style:preserve-3d}.project-flip:hover .project-flip-inner{transform:rotateY(180deg)}.project-face{position:absolute;top:0;right:0;bottom:0;left:0;backface-visibility:hidden;-webkit-backface-visibility:hidden;border-radius:var(--border-radius-lg);border:1px solid var(--line-dark);overflow:hidden;display:flex;flex-direction:column}.project-face-front{background:var(--ink-soft);padding:1.75rem}.project-header{display:flex;flex-direction:column;align-items:flex-start;gap:.6rem;margin-bottom:1rem}.project-title{font-family:var(--font-display);font-size:1.3rem;font-weight:700;color:var(--paper)}.project-status{font-family:var(--font-mono);padding:.2rem .6rem;border-radius:var(--border-radius);font-size:.65rem;border:1px solid #3ba55c;color:#3ba55c}.project-description{font-size:.9rem;color:#c7cad4;line-height:1.6;margin-bottom:1.25rem}.tech-title{font-family:var(--font-mono);font-size:.7rem;color:var(--text-on-dark-muted);text-transform:uppercase;letter-spacing:.05em;display:block;margin-bottom:.6rem}.tech-tags{display:flex;flex-wrap:wrap;gap:.4rem}.tech-tag{font-family:var(--font-mono);color:var(--signal);padding:.2rem .55rem;border-radius:var(--border-radius);font-size:.65rem;border:1px solid rgba(255,90,31,.35)}.flip-hint{margin-top:auto;padding-top:1rem;font-family:var(--font-mono);font-size:.7rem;color:var(--text-on-dark-muted);opacity:.7}.project-face-back{transform:rotateY(180deg);background:var(--ink-soft)}.browser-chrome{flex-shrink:0;display:flex;align-items:center;gap:5px;padding:.6rem .75rem;background:var(--ink)}.browser-chrome span{width:8px;height:8px;border-radius:50%;background:var(--line-dark)}.project-screenshot{flex:1;background-size:cover;background-position:top center;position:relative}.project-face-back-overlay{position:absolute;bottom:0;left:0;right:0;padding:1rem;background:linear-gradient(180deg,transparent 0%,rgba(20,23,31,.9) 70%)}.project-links{display:flex;gap:.6rem}.project-link{display:inline-flex;align-items:center;gap:.4rem;padding:.5rem .9rem;border-radius:var(--border-radius);font-weight:600;text-decoration:none;font-size:.8rem;flex:1;justify-content:center;border:1px solid var(--paper);color:var(--paper);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#14171f59;transition:all .2s ease}.github-link:hover{background:var(--paper);color:var(--ink)}.live-link{background:var(--signal);border-color:var(--signal);color:var(--ink)}.live-link:hover{background:transparent;color:var(--signal)}@media (max-width: 900px){.projects-grid{grid-template-columns:1fr;max-width:420px;margin:0 auto}}@media (hover: none){.project-flip:active .project-flip-inner,.project-flip:focus-within .project-flip-inner{transform:rotateY(180deg)}.flip-hint:after{content:" (tocá la card)"}}@media (prefers-reduced-motion: reduce){.project-flip-inner{transition:none}}.contact-section{padding:var(--section-padding);background:var(--ink);position:relative;overflow:hidden}.contact-section:before{content:"";position:absolute;top:-20px;right:-20px;bottom:-20px;left:-20px;background-image:radial-gradient(rgba(247,245,239,.18) 1.5px,transparent 1.5px);background-size:22px 22px;animation:bgDrift 18s linear infinite;pointer-events:none}.contact-container{max-width:700px;margin:0 auto;padding:var(--container-padding);position:relative;z-index:1}.contact-section .section-header:before{color:var(--signal)}.contact-section .section-title{color:var(--paper)}.contact-section .section-subtitle{color:var(--text-on-dark-muted)}.availability-badge{display:inline-flex;align-items:center;gap:.5rem;font-family:var(--font-mono);font-size:.75rem;color:var(--text-on-dark-muted);border:1px solid var(--line-dark);border-radius:999px;padding:.35rem .9rem;margin:0 auto 1.25rem;background:var(--ink-soft)}.availability-dot{width:8px;height:8px;border-radius:50%;background:#3ba55c;position:relative}.availability-dot:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:50%;background:#3ba55c;animation:pulseRing 1.8s ease-out infinite}@keyframes pulseRing{0%{transform:scale(1);opacity:.6}to{transform:scale(2.8);opacity:0}}.contact-content{display:flex;justify-content:center;align-items:center}.contact-info-card{background:var(--ink-soft);border:1px solid var(--line-dark);border-radius:var(--border-radius-lg);padding:2rem;transition:border-color .2s ease;max-width:480px;width:100%}.contact-info-card:hover{border-color:var(--signal)}.contact-details{display:flex;flex-direction:column;gap:1rem;margin-bottom:2rem}.contact-item{display:flex;align-items:center;padding:1.1rem;background:var(--ink);border:1px solid var(--line-dark);border-radius:var(--border-radius);transition:all .2s ease}.contact-item:hover{border-color:var(--signal)}.contact-icon{width:42px;height:42px;background:var(--signal);border-radius:var(--border-radius);display:flex;align-items:center;justify-content:center;color:var(--ink);font-size:1rem;margin-right:1.1rem;flex-shrink:0;transition:transform .3s ease,background .3s ease}.contact-item:hover .contact-icon{background:var(--paper);transform:rotate(-8deg) scale(1.08)}.contact-text{flex:1;overflow:hidden;min-width:0}.contact-text h4{font-family:var(--font-mono);font-size:.75rem;font-weight:500;color:var(--text-on-dark-muted);text-transform:uppercase;letter-spacing:.05em;margin:0 0 .3rem}.contact-link{font-size:.95rem;color:var(--paper);text-decoration:none;font-weight:500;word-break:break-all}.contact-link:hover{color:var(--signal)}.social-links h4{font-family:var(--font-mono);font-size:.75rem;font-weight:500;color:var(--text-on-dark-muted);text-transform:uppercase;letter-spacing:.05em;margin-bottom:1rem;text-align:center}.social-icons{display:flex;gap:.75rem}.social-link{display:flex;align-items:center;gap:.6rem;padding:.75rem 1rem;background:var(--ink);border:1px solid var(--line-dark);border-radius:var(--border-radius);text-decoration:none;color:var(--text-on-dark-muted);font-weight:500;font-size:.9rem;transition:all .2s ease;flex:1;justify-content:center}.social-link:hover{background:var(--signal);color:var(--ink);border-color:var(--signal)}@media (max-width: 768px){.contact-info-card{padding:1.5rem}.contact-details{flex-direction:row;flex-wrap:wrap}.contact-item{padding:.75rem;flex:1 1 45%;flex-direction:column;align-items:center;text-align:center;gap:.5rem}.contact-icon{margin-right:0}.contact-link{font-size:.7rem;word-break:break-word;line-height:1.3}}@media (prefers-reduced-motion: reduce){.contact-section:before{animation:none}.availability-dot:after{animation:none}}.footer{background:var(--ink);color:var(--text-on-dark-muted);padding:1.75rem 0;border-top:1px solid var(--line-dark)}.footer-container{max-width:1200px;margin:0 auto;padding:0 2rem}.footer-content{display:flex;justify-content:center;align-items:center;text-align:center}.footer-copyright{font-family:var(--font-mono);color:var(--text-on-dark-muted);font-size:.8rem}.back-to-top{position:fixed;bottom:2rem;right:2rem;width:46px;height:46px;background:var(--signal);color:var(--ink);border:none;border-radius:50%;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:1.1rem;box-shadow:var(--shadow-lg);transition:transform .2s ease;z-index:1000}.back-to-top:hover{transform:translateY(-3px)}@media (max-width: 768px){.footer-container{padding:0 1.25rem}.back-to-top{width:42px;height:42px;bottom:1.5rem;right:1.5rem;font-size:1rem}}@media (prefers-reduced-motion: reduce){.back-to-top:hover{transform:none}}*{margin:0;padding:0;box-sizing:border-box}:root{--ink: #14171f;--ink-soft: #1d2130;--paper: #f7f5ef;--paper-dim: #ece8de;--signal: #ff5a1f;--signal-soft: #ffe4d8;--line: #d8d3c4;--line-dark: rgba(247, 245, 239, .14);--primary-color: var(--signal);--text-primary: var(--ink);--text-secondary: #52596b;--text-muted: #8a8f9e;--text-white: var(--paper);--text-on-dark-muted: #9aa0b3;--bg-primary: #ffffff;--bg-secondary: var(--paper);--bg-tertiary: var(--paper-dim);--bg-dark: var(--ink);--bg-dark-soft: var(--ink-soft);--section-padding: 4rem 0;--container-padding: 0 2rem;--border-radius: 6px;--border-radius-lg: 8px;--font-display: "Space Grotesk", sans-serif;--font-mono: "JetBrains Mono", monospace;--font-family: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-size-xs: .75rem;--font-size-sm: .875rem;--font-size-base: 1rem;--font-size-lg: 1.125rem;--font-size-xl: 1.25rem;--font-size-2xl: 1.5rem;--font-size-3xl: 1.875rem;--font-size-4xl: 2.25rem;--font-size-5xl: 3rem;--shadow-sm: 0 1px 2px rgba(20, 23, 31, .06);--shadow: 0 1px 3px rgba(20, 23, 31, .08);--shadow-md: 0 4px 16px rgba(20, 23, 31, .08);--shadow-lg: 0 8px 28px rgba(20, 23, 31, .1);--shadow-xl: 0 8px 28px rgba(20, 23, 31, .1);--transition-fast: .15s ease-in-out;--transition-normal: .2s ease-in-out;--transition-slow: .4s ease-in-out}html{scroll-behavior:smooth}body{font-family:var(--font-family);font-size:var(--font-size-base);line-height:1.6;color:var(--text-primary);background-color:var(--bg-primary);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;counter-reset:section}h1,h2,h3,h4,h5,h6{font-family:var(--font-display)}.portfolio-app{min-height:100vh;overflow-x:hidden}.about-section,.experience-section,.skills-section,.education-section,.projects-section,.contact-section{border-bottom:1px solid var(--line)}.about-section,.experience-section,.skills-section,.education-section,.projects-section,.contact-section{border-bottom-color:var(--line-dark)}.section-header{text-align:center;margin-bottom:3rem;position:relative}.section-header:before{counter-increment:section;content:counter(section,decimal-leading-zero);display:block;font-family:var(--font-mono);font-size:.8rem;letter-spacing:.35em;color:var(--signal);margin-bottom:.75rem}.section-title{font-family:var(--font-display);font-size:var(--font-size-4xl);font-weight:700;color:var(--text-primary);margin-bottom:.75rem;letter-spacing:-.01em}.title-underline{width:40px;height:3px;background:var(--signal);margin:0 auto 1.25rem;border-radius:2px}.section-subtitle{font-size:var(--font-size-lg);color:var(--text-secondary);max-width:600px;margin:0 auto;line-height:1.7}.btn-primary{display:inline-flex;align-items:center;gap:.5rem;padding:.8rem 1.6rem;background:var(--ink);color:var(--paper);border:1px solid var(--ink);border-radius:var(--border-radius);font-size:var(--font-size-base);font-weight:600;text-decoration:none;cursor:pointer;transition:all var(--transition-normal)}.btn-primary:hover{background:var(--signal);border-color:var(--signal);transform:translateY(-2px)}.btn-secondary{display:inline-flex;align-items:center;gap:.5rem;padding:.8rem 1.6rem;background:transparent;color:var(--text-primary);border:1px solid var(--ink);border-radius:var(--border-radius);font-size:var(--font-size-base);font-weight:600;text-decoration:none;cursor:pointer;transition:all var(--transition-normal)}.btn-secondary:hover{background:var(--ink);color:var(--paper);transform:translateY(-2px)}.btn-outline{display:inline-flex;align-items:center;gap:.5rem;padding:.5rem 1rem;background:transparent;color:var(--text-secondary);border:1px solid var(--line);border-radius:var(--border-radius);font-size:var(--font-size-sm);font-weight:500;text-decoration:none;cursor:pointer;transition:all var(--transition-normal)}.btn-outline:hover{border-color:var(--signal);color:var(--signal)}.card{background:var(--bg-primary);border:1px solid var(--line);border-radius:var(--border-radius-lg);transition:all var(--transition-normal);overflow:hidden}.card:hover{border-color:var(--signal);transform:translateY(-3px)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}button:focus,a:focus,input:focus,textarea:focus{outline:2px solid var(--signal);outline-offset:2px}::selection{background-color:var(--signal);color:var(--paper)}@keyframes fadeInUp{0%{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}@keyframes bgDrift{0%{background-position:0 0}to{background-position:220px 220px}}@media (max-width: 768px){:root{--section-padding: 3.5rem 0;--container-padding: 0 1.25rem;--font-size-4xl: 1.9rem;--font-size-3xl: 1.5rem}.section-header{margin-bottom:2rem}.btn-primary,.btn-secondary{width:100%;justify-content:center}}@media (prefers-reduced-motion: reduce){.card:hover,.btn-primary:hover,.btn-secondary:hover{transform:none}}
