: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:1rem;max-width:1000px;background-color:var(--nes-bg);position:relative;overflow:hidden}.boss-warning{position:absolute;top:5%;left:50%;transform:translate(-50%);background-color:var(--nes-primary);color:var(--nes-text);padding:.5rem 1rem;z-index:10;border:4px solid var(--nes-text);font-size:.6rem;text-align:center;white-space:nowrap;box-shadow:0 0 20px #e5252199;pointer-events:none}.boss-area{display:flex;flex-direction:column;align-items:center;gap:1.5rem;width:100%;max-width:400px}@media(min-width:768px){.about{padding:4rem 1rem}.boss-warning{top:15%;padding:1rem 2rem;font-size:.8rem}.boss-area{flex-direction:row;justify-content:space-around;gap:3rem;max-width:1000px}.boss-sprite-container{gap:1rem!important}.attributes-window{margin-top:1rem!important}.scan-data-box{min-height:80px!important}.about-text{min-height:250px!important}}.boss-sprite-container{display:flex;flex-direction:column;align-items:center;gap:.75rem;opacity:0;width:100%}.boss-sprite-container.slide-in{animation:slideInFromLeft .5s steps(10,end) forwards}@keyframes slideInFromLeft{0%{opacity:0;transform:translate(-100px)}to{opacity:1;transform:translate(0)}}.boss-stats{display:flex;flex-direction:column;gap:.5rem;width:100%}.boss-name{font-size:.6rem;color:var(--nes-text);text-shadow:2px 2px 0 var(--nes-secondary)}.boss-title{font-size:.45rem;color:var(--nes-warning)}.health-bar-container{width:100%;height:12px;background-color:#333;border:2px solid var(--nes-text);position:relative}.health-bar-fill{height:100%;width:0%;background-color:var(--nes-success);box-shadow:inset -2px 0 0 var(--nes-bg)}.health-bar-fill.fill-up{animation:fillHealth 1.2s steps(20,end) .5s forwards}@keyframes fillHealth{to{width:100%}}.about-me-pic-container{padding:.5rem;background-color:var(--nes-bg);box-shadow:4px 4px 0 var(--nes-primary);width:fit-content;margin:.5rem 0}.about-me-pic{width:120px;image-rendering:pixelated;display:block;animation:bossIdle 2s infinite ease-in-out}@keyframes bossIdle{0%,to{transform:translateY(0)}50%{transform:translateY(-8px)}}.attributes-window{width:100%;background-color:var(--nes-bg);padding:.75rem!important;margin-top:.5rem;display:flex;flex-direction:column;gap:.5rem}.stats-list{display:flex;flex-direction:column;gap:.5rem}.stat-row{cursor:pointer}.stat-label-row{display:flex;justify-content:space-between;font-size:.45rem;color:var(--nes-text);margin-bottom:.2rem}.stat-row:hover .stat-label-row{color:var(--nes-primary)}.stat-bar-container{width:100%;height:8px;background-color:#333;border:2px solid var(--nes-text);position:relative}.stat-bar-fill{height:100%;width:0%;background-color:var(--nes-warning);box-shadow:inset -2px 0 0 var(--nes-bg)}.stat-bar-fill.fill-up{animation:fillStat 1.2s steps(20,end) .5s forwards}@keyframes fillStat{to{width:var(--target-width)}}.scan-data-box{border-top:2px dashed #555;padding-top:.5rem;min-height:70px}.scan-title{font-size:.4rem;color:var(--nes-success);display:block;margin-bottom:.3rem}.scan-desc{font-size:.45rem!important;color:var(--nes-text);line-height:1.4!important;margin:0!important}.about-text{width:100%;min-height:180px;padding:1rem!important;opacity:0}.about-text.fade-in-boss{animation:stepUp .3s steps(4,end) .7s 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 p{font-size:.65rem;color:var(--nes-text);margin-bottom:.5rem;line-height:1.8}.dialogue-content{display:inline}.skip-prompt{position:absolute;bottom:10px;right:15px;font-size:.45rem;color:var(--nes-warning);cursor:pointer;padding:4px 8px;background:#0006;border:1px dashed var(--nes-warning);-webkit-user-select:none;user-select:none}.skip-prompt:hover{background:var(--nes-warning);color:var(--nes-bg)}.next-level-btn{position:absolute;bottom:10px;right:15px;font-size:.55rem;color:var(--nes-success);cursor:pointer;padding:6px 12px;border:4px solid var(--nes-success);background:var(--nes-bg);display:flex;align-items:center;gap:8px;-webkit-user-select:none;user-select:none;animation:slideUpFade .5s ease-out forwards}.next-level-btn:hover{background:var(--nes-success);color:var(--nes-bg)}.next-level-btn .arrow{font-size:.5rem;animation:bounceDown 1s infinite alternate}@keyframes slideUpFade{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes bounceDown{0%{transform:translateY(0)}to{transform:translateY(4px)}}.cursor-blink{display:inline-block;width:9px;height:9px;background-color:var(--nes-warning);vertical-align:middle;margin-left:4px;margin-bottom:2px;animation:blinker .8s steps(2,start) infinite}@keyframes blinker{to{opacity:0}}@media(min-width:768px){.boss-name{font-size:.8rem}.boss-title{font-size:.6rem}.about-me-pic{width:200px}.boss-sprite-container{width:auto}.boss-stats,.attributes-window{width:300px}.about-text{max-width:600px}.about p{font-size:.7rem}.cursor-blink{width:11px;height:11px}}.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;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);overflow:hidden}.skills-title{font-size:1.5rem;color:var(--nes-text);text-align:center;margin-bottom:.5rem;text-shadow:4px 4px 0px var(--nes-primary)}.skill-tree-container{position:relative;width:100%;max-width:1200px;background-color:var(--nes-bg);padding:3.5rem .5rem 1.5rem;display:flex;flex-direction:column;opacity:0;transform:translateY(16px);transition:opacity .3s ease,transform .3s ease;min-height:400px}.skill-tree-container.visible{opacity:1;transform:translateY(0)}.connections-layer{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none;z-index:1}.tree-line{stroke:#555;stroke-width:2px;stroke-dasharray:4 4;transition:stroke .2s ease,stroke-width .2s ease,opacity .2s ease}.tree-line.active{stroke:var(--nes-warning);stroke-width:4px;stroke-dasharray:none;opacity:1;filter:drop-shadow(0 0 5px var(--nes-warning));animation:dashFlow .5s linear infinite reverse}.tree-line.dimmed{opacity:.2}@keyframes dashFlow{to{stroke-dashoffset:10}}.tiers-wrapper{display:flex;flex-direction:column;justify-content:center;align-items:center;gap:4.5rem;position:relative;z-index:2;width:100%}.tier-column{display:flex;flex-direction:row;flex-wrap:wrap;align-items:center;justify-content:center;gap:1.25rem;width:100%;position:relative}.tier-label{position:absolute;top:-2.5rem;left:50%;transform:translate(-50%);font-size:.55rem;color:var(--nes-text);letter-spacing:.15em;opacity:.8;white-space:nowrap;background:var(--nes-bg);padding:0 .5rem}.skill-icon{display:inline-block;padding:8px 10px;font-size:.5rem;color:var(--skill-color, var(--nes-text));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 .2s,color .2s,transform .1s,opacity .2s;cursor:pointer;text-align:center;min-width:100px;-webkit-user-select:none;user-select:none}.skill-icon:hover,.skill-icon.active{background:var(--skill-color, var(--nes-text));color:var(--nes-bg);transform:scale(1.05);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),0 0 10px var(--skill-color)}.skill-icon.dimmed{opacity:.3;filter:grayscale(80%)}@media(min-width:768px){.skills-title{font-size:2rem}.skill-tree-container{padding:3rem}.tiers-wrapper{flex-direction:row;justify-content:space-between;align-items:stretch;gap:4rem;min-width:100%}.tier-column{flex-direction:column;flex-wrap:nowrap;flex:1;gap:2.5rem}.tier-label{top:-2.2rem;font-size:.6rem;left:50%}.skill-icon{font-size:.6rem;padding:10px 16px;min-width:140px}}.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;position:fixed;z-index:100;width:100%}.hamburger{margin-left:auto}.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}.navbar{padding:1rem 3rem}footer>ul{font-size:3rem}}
