:root{--nes-bg: #000000;--nes-text: #ffffff;--nes-primary: #e52521;--nes-secondary: #0055a4;--nes-warning: #f4d03f;--nes-success: #92cc41;--pixel-border-color: var(--nes-text)}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{cursor:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16'%3E%3Crect x='0' y='6' width='6' height='4' fill='%23f4d03f'/%3E%3Crect x='10' y='6' width='6' height='4' fill='%23f4d03f'/%3E%3Crect x='6' y='0' width='4' height='6' fill='%23f4d03f'/%3E%3Crect x='6' y='10' width='4' height='6' fill='%23f4d03f'/%3E%3C%2Fsvg%3E") 8 8,crosshair;-webkit-font-smoothing:none;font-smooth:never}a,button,[role=button],label{cursor:pointer}input,textarea{cursor:text}#scanlines{position:fixed;inset:0;background:linear-gradient(#12101000 50%,#00000040 50%),linear-gradient(90deg,#ff00000f,#00ff0005,#0000ff0f);background-size:100% 4px,6px 100%;pointer-events:none;z-index:9999;box-shadow:inset 0 0 100px #000000e6;animation:crt-flicker .15s infinite}@keyframes crt-flicker{0%{opacity:.95}50%{opacity:.85}to{opacity:.95}}#root,body,html{height:100%;width:100%;font-family:"Press Start 2P",system-ui,monospace;font-weight:400;scroll-behavior:smooth;overflow-x:hidden;margin:0;background-color:var(--nes-bg);color:var(--nes-text);text-transform:uppercase}.snap-container{height:100vh;scroll-snap-type:y mandatory;overflow-y:scroll;overflow-x:hidden}.snap-container>section{height:100vh;scroll-snap-align:start;display:flex;flex-direction:column;justify-content:center}body{scroll-snap-type:y mandatory;overflow-y:scroll}section{scroll-snap-align:start;height:100vh;padding-top:80px;padding-bottom:80px}.pixel-frame{display:inline-block;background:var(--nes-bg);padding:1rem;border-style:solid;border-width:4px;border-image-slice:2;border-image-width:2;border-image-repeat:stretch;border-image-source:url('data:image/svg+xml;utf8,<?xml version="1.0" encoding="UTF-8" ?><svg version="1.1" width="5" height="5" xmlns="http://www.w3.org/2000/svg"><path d="M2 1 h1 v1 h-1 z M1 2 h1 v1 h-1 z M3 2 h1 v1 h-1 z M2 3 h1 v1 h-1 z" fill="rgb(255,255,255)" /></svg>');border-image-outset:2;position:relative;box-shadow:inset -4px -4px #00000080}.pixel-btn{font-family:inherit;font-size:.75rem;text-transform:uppercase;background-color:var(--nes-primary);color:var(--nes-text);padding:.75rem 1.5rem;border:none;box-shadow:inset -4px -4px #0006,4px 0 0 0 var(--nes-text),-4px 0 0 0 var(--nes-text),0 -4px 0 0 var(--nes-text),0 4px 0 0 var(--nes-text);transition:transform .1s,box-shadow .1s;margin:4px}.pixel-btn:active{transform:translate(2px,2px);box-shadow:inset -2px -2px #0006,4px 0 0 0 var(--nes-text),-4px 0 0 0 var(--nes-text),0 -4px 0 0 var(--nes-text),0 4px 0 0 var(--nes-text)}.pixel-btn.is-secondary{background-color:var(--nes-secondary)}.pixel-btn.is-warning{background-color:var(--nes-warning);color:#000}.blink{animation:blinker 1s linear infinite}@keyframes blinker{50%{opacity:0}}.hero{position:relative;min-height:100vh;display:flex;flex-direction:column;justify-content:center;align-items:center;margin:0 auto;text-align:center;padding:4rem 1rem;max-width:900px;background-color:var(--nes-bg)}.hero h1{font-family:"Press Start 2P",system-ui,monospace;font-size:3.75rem;letter-spacing:.3rem;color:var(--nes-text);text-shadow:4px 4px 0px var(--nes-secondary)}.hero h2{font-size:1rem;margin:1rem 0;font-weight:400;color:var(--nes-warning)}.hero p{font-size:.75rem;font-weight:300;max-width:500px;margin:1rem auto 2rem;color:var(--nes-text);line-height:1.6}.fade-in{opacity:0;transform:translateY(12px);animation:stepUp .6s steps(4,end) forwards}.delay-1{animation-delay:.2s}.delay-2{animation-delay:.4s}.delay-3{animation-delay:.6s}@keyframes stepUp{to{opacity:1;transform:translateY(0)}}.hero-cta{font-size:.7rem!important;margin-top:1.5rem;text-decoration:none}.scroll-hint{position:absolute;bottom:3rem;left:50%;transform:translate(-50%);display:flex;flex-direction:column;align-items:center;gap:.8rem;opacity:0;animation:hintShow .1s steps(2,end) 2s forwards}.scroll-hint-label{font-size:.5rem;color:var(--nes-warning);letter-spacing:.25em;text-shadow:2px 2px 0px var(--nes-secondary)}.scroll-hint-arrow{font-size:1rem;color:var(--nes-warning);animation:bounce .9s steps(2,end) infinite}@keyframes hintShow{to{opacity:1}}@keyframes bounce{0%,to{transform:translateY(0)}50%{transform:translateY(8px)}}@media (min-width: 768px){.hero h1{font-size:4rem}.hero h2{font-size:1.5rem}.hero p{font-size:1rem}}.about{display:flex;flex-direction:column;justify-content:center;align-items:center;margin:0 auto;padding:4rem 1rem;max-width:900px;background-color:var(--nes-bg);gap:2rem}.about h2{font-size:1rem;font-weight:400;color:var(--nes-warning)}.about p{font-size:.7rem;font-weight:300;color:var(--nes-text);margin-bottom:1rem;line-height:1.8}.about-title{text-align:center;font-size:2.5rem;margin-top:1rem;margin-bottom:1rem}.about-text{width:100%;max-width:700px;line-height:1.7;opacity:0;animation:stepUp .4s steps(4,end) forwards}.about-text .title{position:absolute;top:-.7rem;left:1rem;background:var(--nes-bg);padding:0 .5rem;font-size:.8rem;color:var(--nes-warning);margin:0}.about-me-pic-container{padding:.5rem;background-color:var(--nes-bg)}.about-me-pic{width:150px;image-rendering:pixelated;display:block}.delay-1{animation-delay:.3s}@keyframes stepUp{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.projects{width:100vw;height:100vh;box-sizing:border-box;scroll-snap-align:start;display:flex;flex-direction:column;align-items:center;padding:3rem 0;overflow:hidden;background-color:var(--nes-secondary);border-top:4px solid var(--nes-text);border-bottom:4px solid var(--nes-text)}.projects>h2{color:var(--nes-text);text-shadow:4px 4px 0px var(--nes-bg)}.projects-container{width:100%;height:calc(100% - 4rem);display:flex;gap:2rem;overflow-x:auto;scroll-snap-type:x mandatory;scroll-behavior:smooth;padding:0 1rem;margin:0;scrollbar-width:none}.projects-container::-webkit-scrollbar{display:none}.project-card{flex:0 0 calc(100% - 2rem);max-width:calc(100% - 2rem);box-sizing:border-box;height:90%;margin:auto 0;scroll-snap-align:center;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:1rem;background-color:var(--nes-bg);padding:1.5rem;box-shadow:inset -4px -4px #000c,4px 0 0 0 var(--nes-text),-4px 0 0 0 var(--nes-text),0 -4px 0 0 var(--nes-text),0 4px 0 0 var(--nes-text)}.project-btn{font-family:inherit;font-size:.6rem!important;margin-top:.5rem;text-decoration:none}@media (min-width: 768px){.project-btn{font-size:.75rem!important}.project-card{flex:0 0 600px;max-width:600px}}.project-title{font-size:1rem;font-weight:400;color:var(--nes-warning);text-align:center}.project-description{font-size:.6rem;color:var(--nes-text);text-align:center;line-height:1.4}.project-technologies{display:flex;flex-wrap:wrap;justify-content:center;gap:.5rem}.badge{display:inline-block;background:var(--nes-primary);color:var(--nes-text);padding:.25rem .5rem;font-size:.5rem;box-shadow:2px 0 0 0 var(--nes-text),-2px 0 0 0 var(--nes-text),0 -2px 0 0 var(--nes-text),0 2px 0 0 var(--nes-text)}.project-thumbnail-wrapper{padding:.5rem;background-color:#000}.project-image{width:100%;image-rendering:pixelated;border:2px solid var(--nes-text)}.pixel-indicators{display:flex;gap:8px;z-index:10;margin-top:1rem}.pixel-indicators .dot{width:12px;height:12px;background:var(--nes-bg);border:2px solid var(--nes-text);transition:background .2s}.pixel-indicators .dot.active{background:var(--nes-warning)}.carousel-hint{font-size:.5rem;color:var(--nes-text);letter-spacing:.2em;margin-top:.5rem;animation:blinker 1s linear infinite}@media (min-width: 768px){.project-title{font-size:1.25rem}.project-description{font-size:.8rem}.project-image{max-width:240px}.badge{font-size:.6rem}}.skills{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:4rem 1rem;gap:1.5rem;background-color:var(--nes-bg)}.skills-title{font-size:1.5rem;color:var(--nes-text);text-align:center;margin-bottom:.5rem;text-shadow:4px 4px 0px var(--nes-primary)}.skills-grid{display:grid;grid-template-columns:1fr;gap:1.5rem;width:100%;max-width:900px;opacity:0;transform:translateY(16px);transition:opacity .1s steps(2,end),transform .1s steps(2,end)}.skills-grid.visible{opacity:1;transform:translateY(0)}.skills-category{display:flex;flex-direction:column;gap:1rem;background-color:var(--nes-bg)}.category-label{position:absolute;top:-.6rem;left:1rem;background:var(--nes-bg);padding:0 .5rem;font-size:.6rem;letter-spacing:.1em;text-transform:uppercase}.category-skills{display:flex;flex-wrap:wrap;gap:.8rem;padding-top:.5rem}.skill-icon{display:inline-block;padding:6px 10px;font-size:.5rem;color:var(--skill-color, var(--nes-text));position:relative;background:var(--nes-bg);box-shadow:inset -2px -2px #00000080,2px 0 0 0 var(--skill-color, var(--nes-text)),-2px 0 0 0 var(--skill-color, var(--nes-text)),0 -2px 0 0 var(--skill-color, var(--nes-text)),0 2px 0 0 var(--skill-color, var(--nes-text));transition:background .1s steps(2,end),color .1s steps(2,end);margin:2px}.skill-icon:hover{background:var(--skill-color, var(--nes-text));color:var(--nes-bg)}@media (min-width: 768px){.skills-title{font-size:2rem}.skills-grid{grid-template-columns:repeat(2,1fr)}.category-label{font-size:.75rem}.skill-icon{font-size:.6rem}}.contact{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:4rem 1rem;gap:1rem;background-color:var(--nes-secondary);border-top:4px solid var(--nes-text);border-bottom:4px solid var(--nes-text)}.contact-title{font-size:1.5rem;color:var(--nes-text);text-align:center;text-shadow:4px 4px 0px var(--nes-bg)}.contact-subtitle{font-size:.6rem;color:var(--nes-text);text-align:center;margin-bottom:1rem}.contact-form-wrapper{width:100%;max-width:560px;background-color:var(--nes-bg);padding:1.5rem;box-shadow:inset -4px -4px #000c,4px 0 0 0 var(--nes-text),-4px 0 0 0 var(--nes-text),0 -4px 0 0 var(--nes-text),0 4px 0 0 var(--nes-text)}.contact-form{display:flex;flex-direction:column;gap:1rem}.form-group{display:flex;flex-direction:column;gap:.5rem}.form-group label{font-size:.6rem;color:var(--nes-warning)}.pixel-input{font-family:inherit;font-size:.6rem;background-color:#000;color:var(--nes-text);padding:.5rem;border:none;outline:none;box-shadow:inset -2px -2px #fff3,inset 2px 2px #000c,2px 0 0 0 var(--nes-text),-2px 0 0 0 var(--nes-text),0 -2px 0 0 var(--nes-text),0 2px 0 0 var(--nes-text);text-transform:uppercase}.pixel-input:focus{background-color:#111;box-shadow:inset -2px -2px #fff3,inset 2px 2px #000c,2px 0 0 0 var(--nes-warning),-2px 0 0 0 var(--nes-warning),0 -2px 0 0 var(--nes-warning),0 2px 0 0 var(--nes-warning)}.contact-submit{align-self:flex-end;font-family:inherit;font-size:.6rem;margin-top:.5rem}.contact-sent{display:flex;flex-direction:column;align-items:center;gap:1.5rem;padding:2rem;text-align:center}.contact-sent p{font-size:.75rem;color:var(--nes-success)}@media (min-width: 768px){.contact-title{font-size:2rem}.contact-subtitle{font-size:.8rem}.form-group label,.pixel-input,.contact-submit{font-size:.75rem}}body{font-weight:400;font-style:normal;color:var(--nes-text);background:var(--nes-bg)}.no-scroll{overflow:hidden;height:100vh;position:fixed;width:100%}header{display:flex;justify-content:flex-end}.navbar{display:flex;justify-content:space-between;align-items:center;color:var(--nes-text);padding:1rem 2rem;position:fixed;z-index:100}.hamburger{width:30px;height:22px;background:none;border:none;position:relative;display:block;cursor:pointer;transition:all .3s ease-in-out}.hamburger span{background:var(--nes-text);position:absolute;height:3px;width:100%;border-radius:0;left:0;transition:all .4s ease}.hamburger span:nth-child(1){top:0}.hamburger span:nth-child(2){top:9px}.hamburger span:nth-child(3){top:18px}.hamburger.is-active span:nth-child(1){transform:rotate(45deg);top:9px}.hamburger.is-active span:nth-child(2){opacity:0}.hamburger.is-active span:nth-child(3){transform:rotate(-45deg);top:9px}.mobile-menu-overlay{position:fixed;inset:0;background-color:var(--nes-bg);display:flex;flex-direction:column;align-items:center;justify-content:center;z-index:9998;animation:fadeIn .3s ease}.mobile-menu{display:flex;flex-direction:column;gap:1.5rem}.mobile-menu a{color:var(--nes-text);font-size:1.5rem;text-decoration:none;text-transform:uppercase;transition:color .2s ease}.mobile-menu a:hover{color:var(--nes-warning)}.close-btn{position:absolute;top:1rem;right:2rem;background:none;border:none;cursor:pointer;z-index:9999;animation:fadeIn 1s ease;color:var(--nes-text);font-family:inherit;font-size:1.5rem}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.nav-links{position:absolute;transform:translateY(0);font-family:"Press Start 2P",system-ui,monospace;font-size:1.5rem;text-align:center}.nav-links.open{list-style:none;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1.5rem;transition:transform .3s ease-in-out;padding:1rem 0}.nav-links a{color:var(--nes-text);text-decoration:none}.nav-links a:hover{color:var(--nes-warning)}h1{font-size:3rem;letter-spacing:.3rem;text-shadow:4px 4px 0px var(--nes-secondary)}h2{font-size:1rem;margin:.5rem 0;font-weight:400;color:var(--nes-warning)}p{font-size:.75rem;margin-top:.5rem;font-weight:300;line-height:1.5}footer{width:100%;position:fixed;bottom:0;z-index:100;padding:.5rem 1rem;display:flex;justify-content:center;background-color:var(--nes-bg);border-top:4px solid var(--nes-text)}footer>ul{display:flex;justify-content:space-evenly;width:100%;max-width:700px;flex-wrap:wrap;gap:.5em;padding:.25em 0;list-style:none;font-size:2rem}footer>ul>li>a{display:flex;justify-content:center;align-items:center;transition:transform .1s ease,color .1s ease;color:var(--nes-text)}footer>ul>li>a:focus{outline:4px solid var(--nes-warning);outline-offset:4px}footer>ul>li>a:hover{transform:translate(2px,2px)}.icon-email:hover{color:var(--nes-primary)}.icon-github:hover{color:var(--nes-warning)}.icon-linkedin:hover{color:var(--nes-secondary)}.icon-whatsapp:hover{color:var(--nes-success)}@media (min-width: 769px){.hamburger{display:none}.nav-links{position:static;transform:translateY(0);flex-direction:row;background:none;padding:0;font-size:1rem}h1{font-size:4rem;letter-spacing:.5rem}footer>ul{font-size:3rem}}
