:root{--bg:#0a0a0a;--bg-alt:#0f0f0f;--surface:#141414;--surface-2:#1b1b1b;--border:#262626;--text:#ededed;--text-muted:#9b9b9b;--accent:#dc2626;--accent-2:#ef4444;--accent-3:#991b1b;--on-accent:#fff;--gradient:linear-gradient(135deg,#b91c1c,var(--accent));--shadow:0 18px 40px -22px rgba(0,0,0,.7);--radius:8px;--radius-sm:6px;--grid-line:hsla(0,0%,100%,.035);--glow:color-mix(in srgb,var(--accent) 9%,transparent);--grain-opacity:0.05;--font-heading:"Sora",sans-serif;--font-body:"Inter",sans-serif;--font-mono:"JetBrains Mono",monospace}html[data-theme=light]{--bg:#f5f5f5;--bg-alt:#fff;--surface:#fff;--surface-2:#f2f2f2;--border:#e0e0e0;--text:#111;--text-muted:#555;--accent:#c81e1e;--accent-2:#b91c1c;--shadow:0 18px 40px -26px rgba(0,0,0,.25);--grid-line:rgba(0,0,0,.045);--glow:color-mix(in srgb,var(--accent) 6%,transparent);--grain-opacity:0.035}*{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{background-color:var(--bg);color:var(--text);font-family:var(--font-body);line-height:1.6;-webkit-font-smoothing:antialiased;transition:background-color .3s ease,color .3s ease;overflow-x:hidden}body:after,body:before{content:"";position:fixed;z-index:-1;pointer-events:none}body:before{inset:0;background-image:linear-gradient(var(--grid-line) 1px,transparent 1px),linear-gradient(90deg,var(--grid-line) 1px,transparent 1px);background-size:64px 64px;-webkit-mask-image:radial-gradient(ellipse 75% 65% at 50% 40%,#000 25%,transparent 100%);mask-image:radial-gradient(ellipse 75% 65% at 50% 40%,#000 25%,transparent 100%)}body:after{inset:-15%;background:radial-gradient(38vmax circle at 18% 22%,var(--glow),transparent 65%),radial-gradient(32vmax circle at 82% 78%,var(--glow),transparent 65%);animation:ambientDrift 40s ease-in-out infinite alternate}@keyframes ambientDrift{0%{transform:translate(0)}50%{transform:translate(4%,-3%)}to{transform:translate(-3%,4%)}}.grain{position:fixed;inset:0;z-index:-1;pointer-events:none;opacity:var(--grain-opacity);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}img{max-width:100%;display:block}a{color:inherit;text-decoration:none}ul{list-style:none}h1,h2,h3,h4{font-family:var(--font-heading);font-weight:700;line-height:1.2}.container{width:100%;max-width:1140px;margin:0 auto;padding:0 24px}.gradient-text{background:var(--gradient);background-size:200% auto;-webkit-background-clip:text;background-clip:text;color:transparent;animation:gradientShift 10s ease infinite}@keyframes gradientShift{0%,to{background-position:0 50%}50%{background-position:100% 50%}}.section{padding:110px 0}.section-alt{background:color-mix(in srgb,var(--bg-alt) 72%,transparent)}.section-tag{display:inline-block;font-family:var(--font-mono);font-size:.8rem;letter-spacing:.08em;text-transform:uppercase;color:var(--accent-2);margin-bottom:12px}.section-title{font-size:clamp(1.8rem,3vw,2.4rem);margin-bottom:48px}.reveal{opacity:0;transform:translateY(24px);transition:opacity .7s ease,transform .7s ease}.reveal.in-view{opacity:1;transform:translateY(0)}.skills-grid>.reveal:first-child{transition-delay:0s}.skills-grid>.reveal:nth-child(2){transition-delay:.08s}.skills-grid>.reveal:nth-child(3){transition-delay:.16s}.skills-grid>.reveal:nth-child(4){transition-delay:.24s}.projects-grid>.reveal:first-child{transition-delay:0s}.projects-grid>.reveal:nth-child(2){transition-delay:.08s}.projects-grid>.reveal:nth-child(3){transition-delay:.16s}.projects-grid>.reveal:nth-child(4){transition-delay:.24s}.projects-grid>.reveal:nth-child(5){transition-delay:.32s}.projects-grid>.reveal:nth-child(6){transition-delay:.4s}.projects-grid>.reveal:nth-child(7){transition-delay:.48s}.projects-grid>.reveal:nth-child(8){transition-delay:.56s}.projects-grid>.reveal:nth-child(9){transition-delay:.64s}.exp-highlights>.reveal:first-child{transition-delay:0s}.exp-highlights>.reveal:nth-child(2){transition-delay:.1s}.edu-grid>.reveal:first-child{transition-delay:0s}.edu-grid>.reveal:nth-child(2){transition-delay:.1s}.btn{display:inline-flex;align-items:center;gap:10px;padding:14px 26px;border-radius:var(--radius-sm);font-weight:600;font-size:.95rem;border:1px solid transparent;cursor:pointer;transition:transform .25s ease,box-shadow .25s ease,background .25s ease,border-color .25s ease}.btn-primary{position:relative;overflow:hidden;background:var(--gradient);color:var(--on-accent);box-shadow:0 10px 24px -12px color-mix(in srgb,var(--accent) 60%,transparent)}.btn-primary:hover{transform:translateY(-2px);box-shadow:0 14px 28px -12px color-mix(in srgb,var(--accent) 75%,transparent)}.btn-primary:after{content:"";position:absolute;top:0;left:-60%;width:40%;height:100%;background:linear-gradient(120deg,transparent,hsla(0,0%,100%,.18),transparent);transform:skewX(-20deg);transition:left .6s ease}.btn-primary:hover:after{left:130%}.btn-ghost{background:transparent;color:var(--text);border-color:var(--border)}.btn-ghost:hover{border-color:var(--accent-2);color:var(--accent-2);transform:translateY(-2px)}.nav{position:fixed;top:0;left:0;right:0;z-index:100;background:color-mix(in srgb,var(--bg) 75%,transparent);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-bottom:1px solid var(--border);transition:box-shadow .3s ease}.nav-inner{display:flex;align-items:center;justify-content:space-between;height:72px}.logo{font-family:var(--font-mono);font-weight:500;font-size:1.05rem;letter-spacing:-.02em}.nav-links{display:flex;gap:32px}.nav-links a{font-size:.92rem;font-weight:500;color:var(--text-muted);transition:color .2s ease;position:relative}.nav-links a.active,.nav-links a:hover{color:var(--text)}.nav-links a:after{content:"";position:absolute;left:0;bottom:-6px;width:0;height:2px;background:var(--gradient);transition:width .25s ease}.nav-links a.active:after,.nav-links a:hover:after{width:100%}.nav.scrolled{box-shadow:0 8px 30px -18px rgba(0,0,0,.55)}.nav-actions{gap:14px}.nav-actions,.theme-toggle{display:flex;align-items:center}.theme-toggle{width:40px;height:40px;border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--surface);color:var(--text);cursor:pointer;justify-content:center;position:relative;transition:border-color .2s ease}.theme-toggle:hover{border-color:var(--accent-2)}.theme-toggle i{position:absolute;font-size:.95rem;transition:opacity .2s ease,transform .3s ease}.theme-toggle .fa-sun{opacity:0;transform:rotate(-90deg)}.theme-toggle .fa-moon,html[data-theme=light] .theme-toggle .fa-sun{opacity:1;transform:rotate(0)}html[data-theme=light] .theme-toggle .fa-moon{opacity:0;transform:rotate(90deg)}.lang-toggle{width:40px;height:40px;border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--surface);color:var(--text);cursor:pointer;display:flex;align-items:center;justify-content:center;position:relative;font-family:var(--font-mono);font-size:.7rem;font-weight:700;letter-spacing:.02em;transition:border-color .2s ease}.lang-toggle:hover{border-color:var(--accent-2)}.lang-toggle span{position:absolute;transition:opacity .2s ease,transform .3s ease}.lang-toggle .lang-pt{opacity:1;transform:rotate(0)}.lang-toggle .lang-en{opacity:0;transform:rotate(90deg)}html[data-lang=en] .lang-toggle .lang-pt{opacity:0;transform:rotate(-90deg)}html[data-lang=en] .lang-toggle .lang-en{opacity:1;transform:rotate(0)}.nav-burger{display:none;width:40px;height:40px;border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--surface);cursor:pointer;flex-direction:column;align-items:center;justify-content:center;gap:4px}.nav-burger span{width:18px;height:2px;background:var(--text);transition:transform .25s ease,opacity .25s ease}.nav-burger.open span:first-child{transform:translateY(6px) rotate(45deg)}.nav-burger.open span:nth-child(2){opacity:0}.nav-burger.open span:nth-child(3){transform:translateY(-6px) rotate(-45deg)}.hero{position:relative;padding-top:160px;overflow:hidden}.hero-blobs{position:absolute;inset:0;z-index:0;pointer-events:none}.blob{position:absolute;border-radius:50%;filter:blur(90px);opacity:.16;animation:float 14s ease-in-out infinite}.blob-1{width:420px;height:420px;background:var(--accent);top:-120px;right:-80px}.blob-2{width:340px;height:340px;background:var(--accent-3);bottom:-100px;left:-60px;animation-delay:-6s}@keyframes float{0%,to{transform:translate(0) scale(1)}50%{transform:translate(30px,-20px) scale(1.08)}}.hero-inner{position:relative;z-index:1;text-align:center}.eyebrow{font-family:var(--font-mono);color:var(--accent-2);font-size:.95rem;margin-bottom:14px}.hero-title{font-size:clamp(2.6rem,6vw,4.4rem);letter-spacing:-.02em}.hero-typed{font-family:var(--font-mono);font-size:clamp(1.1rem,2.2vw,1.5rem);font-weight:500;color:var(--text-muted);margin-top:18px;min-height:2em}.cursor{color:var(--accent-2);animation:blink 1s step-end infinite}@keyframes blink{50%{opacity:0}}.hero-lead{max-width:620px;margin:26px auto 0;color:var(--text-muted);font-size:1.05rem}.hero-cta{gap:16px;margin-top:38px;flex-wrap:wrap}.hero-cta,.hero-socials{display:flex;justify-content:center}.hero-socials{gap:18px;margin-top:42px}.hero-socials a{width:44px;height:44px;border-radius:var(--radius-sm);border:1px solid var(--border);display:flex;align-items:center;justify-content:center;color:var(--text-muted);transition:all .25s ease}.hero-socials a:hover{color:var(--on-accent);border-color:transparent;background:var(--gradient);transform:translateY(-3px)}.stats-strip{position:relative;z-index:1;margin-top:90px;border-top:1px solid var(--border);background:color-mix(in srgb,var(--surface) 80%,transparent)}.stats-grid{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:20px;gap:20px;padding:40px 24px}.stat{text-align:center}.stat-number{display:block;font-family:var(--font-heading);font-size:1.5rem;font-weight:700;background:var(--gradient);-webkit-background-clip:text;background-clip:text;color:transparent}.stat-label{display:block;font-size:.82rem;color:var(--text-muted);margin-top:6px}.about-grid{display:grid;grid-template-columns:1.1fr .9fr;grid-gap:60px;gap:60px;align-items:center}.about-text p{color:var(--text-muted);margin-bottom:18px;font-size:1.02rem}.about-text strong{color:var(--text)}.about-photo{justify-self:end;width:100%;max-width:340px}.about-photo img{width:100%;aspect-ratio:4/5;object-fit:cover;object-position:center 30%}.about-terminal{grid-column:1/-1}.terminal{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow)}.terminal-bar{display:flex;align-items:center;gap:8px;padding:12px 16px;background:var(--surface-2);border-bottom:1px solid var(--border)}.dot{width:11px;height:11px;border-radius:50%}.dot.red{background:#ff5f56}.dot.yellow{background:#ffbd2e}.dot.green{background:#27c93f}.terminal-title{margin-left:10px;font-family:var(--font-mono);font-size:.78rem;color:var(--text-muted)}.terminal-body{padding:22px;font-family:var(--font-mono);font-size:.88rem}.terminal-body p{margin-bottom:8px;color:var(--text)}.terminal-body .prompt{color:var(--accent-2);margin-right:8px}.terminal-body .out{color:var(--text-muted);padding-left:14px}.terminal-body .out.ok{color:#4ade80}.terminal-body .blink .cursor{color:var(--accent-2);animation:blink 1s step-end infinite}.ladder{display:flex;align-items:center;gap:14px;flex-wrap:wrap;font-family:var(--font-mono);font-size:.85rem;color:var(--text-muted);margin-bottom:40px}.ladder i{font-size:.7rem;color:var(--border)}.ladder-current{color:var(--on-accent);background:var(--gradient);padding:4px 12px;border-radius:var(--radius-sm);font-weight:600}.exp-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:36px;box-shadow:var(--shadow)}.exp-head{display:flex;justify-content:space-between;align-items:flex-start;flex-wrap:wrap;gap:12px;margin-bottom:18px}.exp-head h3{font-size:1.3rem}.exp-sub{color:var(--accent-2);font-size:.92rem;margin-top:4px}.exp-date{font-family:var(--font-mono);font-size:.8rem;border:1px solid var(--border);padding:6px 14px;border-radius:var(--radius-sm);white-space:nowrap}.exp-date,.exp-desc{color:var(--text-muted)}.exp-desc{margin-bottom:30px;max-width:780px}.exp-highlights{display:grid;grid-template-columns:1fr 1fr;grid-gap:20px;gap:20px;margin-bottom:34px}.highlight-card{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius);padding:22px;transition:transform .25s ease,border-color .25s ease}.highlight-card:hover{transform:translateY(-4px);border-color:var(--accent-2)}.highlight-card i{font-size:1.3rem;color:var(--accent-2);margin-bottom:12px;transition:transform .3s ease}.highlight-card:hover i{transform:scale(1.15)}.highlight-card h4{font-size:1rem;margin-bottom:8px}.highlight-card p{color:var(--text-muted);font-size:.9rem}.exp-tasks{display:grid;grid-template-columns:1fr 1fr;grid-gap:12px 24px;gap:12px 24px}.exp-tasks div{display:flex;align-items:center;gap:10px;font-size:.92rem;color:var(--text-muted)}.exp-tasks i{color:var(--accent-2);font-size:.8rem}.skills-grid{display:grid;grid-template-columns:repeat(2,1fr);grid-gap:24px;gap:24px}.skill-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:30px;transition:transform .25s ease,border-color .25s ease}.skill-card:hover{transform:translateY(-4px);border-color:var(--accent)}.skill-card i{font-size:1.5rem;color:var(--accent-2);margin-bottom:14px;transition:transform .3s ease}.skill-card:hover i{transform:scale(1.15) rotate(-4deg)}.skill-card h3{font-size:1.1rem;margin-bottom:16px}.chips{display:flex;flex-wrap:wrap;gap:8px}.chips span{font-size:.82rem;padding:7px 14px;border-radius:var(--radius-sm);background:var(--surface-2);border:1px solid var(--border);color:var(--text-muted);transition:transform .2s ease,border-color .2s ease,color .2s ease}.chips span:hover{transform:translateY(-2px);border-color:var(--accent-2);color:var(--text)}.projects-grid{display:grid;grid-template-columns:repeat(2,1fr);grid-gap:24px;gap:24px}.project-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:30px;display:flex;flex-direction:column;transition:transform .25s ease,border-color .25s ease,box-shadow .25s ease}.project-card:hover{transform:translateY(-6px);border-color:var(--accent-2);box-shadow:var(--shadow)}.project-card.featured{border-color:var(--accent);background:linear-gradient(160deg,color-mix(in srgb,var(--accent) 7%,var(--surface)),var(--surface))}.project-card:hover .project-icon{transform:scale(1.15) rotate(4deg)}.project-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:18px}.project-icon{font-size:1.6rem;color:var(--accent-2);transition:transform .3s ease}.project-badge{font-family:var(--font-mono);font-size:.72rem;text-transform:uppercase;letter-spacing:.05em;background:var(--gradient);color:var(--on-accent);padding:5px 12px;border-radius:var(--radius-sm)}.project-card h3{font-size:1.15rem;margin-bottom:10px}.project-card p{color:var(--text-muted);font-size:.92rem;flex-grow:1;margin-bottom:18px}.project-tags{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:20px}.project-tags span{font-size:.76rem;padding:5px 12px;border-radius:var(--radius-sm);background:var(--surface-2);color:var(--text-muted);border:1px solid var(--border);transition:transform .2s ease,border-color .2s ease,color .2s ease}.project-tags span:hover{transform:translateY(-2px);border-color:var(--accent-2);color:var(--text)}.project-link{display:inline-flex;align-items:center;gap:8px;font-size:.9rem;font-weight:600;color:var(--accent-2)}.project-link:hover{text-decoration:underline}.projects-more{text-align:center;margin-top:48px}.edu-grid{display:grid;grid-template-columns:1fr 1fr;grid-gap:24px;gap:24px}.edu-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:28px;display:flex;gap:20px;align-items:flex-start;transition:transform .25s ease,border-color .25s ease}.edu-card:hover{transform:translateY(-4px);border-color:var(--accent-2)}.edu-card i{font-size:1.5rem;color:var(--accent-2);margin-top:4px;transition:transform .3s ease}.edu-card:hover i{transform:scale(1.15)}.edu-card h3{font-size:1.05rem;margin-bottom:6px}.edu-card p{color:var(--text-muted);font-size:.92rem}.edu-date{display:inline-block;margin-top:8px;font-family:var(--font-mono);font-size:.78rem;color:var(--accent-2)}.contact-inner{text-align:center}.contact-lead{color:var(--text-muted);max-width:520px;margin:0 auto}.contact-actions{display:flex;justify-content:center;gap:16px;flex-wrap:wrap;margin-top:36px}.footer{text-align:center;padding:40px 24px;border-top:1px solid var(--border);color:var(--text-muted);font-size:.88rem}.footer a{color:var(--accent-2)}.footer p{margin-bottom:6px}@media (max-width:860px){.nav-links{flex-direction:column;position:absolute;top:72px;left:0;right:0;background:var(--bg);border-bottom:1px solid var(--border);padding:0 24px;gap:18px;max-height:0;opacity:0;overflow:hidden;pointer-events:none;transition:max-height .35s ease,opacity .25s ease,padding .35s ease}.nav-burger,.nav-links{display:flex}.nav.menu-open .nav-links{max-height:420px;opacity:1;pointer-events:auto;padding:20px 24px}.about-grid{grid-template-columns:1fr}.about-photo{justify-self:center}.edu-grid,.exp-highlights,.exp-tasks,.projects-grid,.skills-grid{grid-template-columns:1fr}}@media (max-width:480px){.section{padding:80px 0}.hero{padding-top:130px}.exp-card{padding:24px}.exp-head{flex-direction:column}}@media (prefers-reduced-motion:reduce){*,:after,:before{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}}.footer-love-row{display:flex;gap:8px}.footer-admin-link,.footer-love-row{align-items:center;justify-content:center}.footer-admin-link{display:inline-flex;width:22px;height:22px;border-radius:var(--radius-sm);color:var(--text-muted);opacity:.6;font-size:.78rem;transition:opacity .2s ease,color .2s ease}.footer-admin-link:hover{opacity:1;color:var(--accent-2)}