:root{--crust: #11111b;--mantle: #181825;--base: #1e1e2e;--surface0:#313244;--surface1:#45475a;--surface2:#585b70;--overlay0:#6c7086;--overlay1:#7f849c;--text: #cdd6f4;--subtext1:#bac2de;--subtext0:#a6adc8;--blue: #89b4fa;--green: #a6e3a1;--yellow: #f9e2af;--red: #f38ba8;--mauve: #cba6f7;--sky: #89dceb;--teal: #94e2d5;--peach: #fab387;--font-mono: "JetBrains Mono", "Fira Code", monospace;--font-sans: "DM Sans", system-ui, sans-serif;--sp-xs: 4px;--sp-sm: 8px;--sp-md: 16px;--sp-lg: 32px;--sp-xl: 64px;--radius-sm: 6px;--radius-md: 12px;--radius-lg: 20px;--radius-full: 9999px;--shadow-card: 0 4px 24px rgba(0,0,0,.4), 0 1px 4px rgba(0,0,0,.3);--shadow-glow-blue: 0 0 20px rgba(137,180,250,.15);--shadow-glow-green: 0 0 20px rgba(166,227,161,.15);--transition: .2s cubic-bezier(.4,0,.2,1)}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;scroll-padding-top:72px;font-size:16px}body{background-color:var(--base);color:var(--text);font-family:var(--font-sans);line-height:1.6;-webkit-font-smoothing:antialiased;overflow-x:hidden}a{color:inherit;text-decoration:none}img{display:block;max-width:100%}body:before{content:"";position:fixed;top:0;right:0;bottom:0;left:0;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.03'/%3E%3C/svg%3E");pointer-events:none;z-index:0;opacity:.4}.reveal{opacity:0;transform:translateY(24px);transition:opacity .6s ease,transform .6s ease}.reveal.visible{opacity:1;transform:translateY(0)}.reveal-delay-1{transition-delay:.1s}.reveal-delay-2{transition-delay:.2s}.reveal-delay-3{transition-delay:.3s}.reveal-delay-4{transition-delay:.4s}.section-label{display:flex;align-items:center;gap:var(--sp-md);margin-bottom:var(--sp-lg)}.section-label:before{content:attr(data-prefix);font-family:var(--font-mono);font-size:.75rem;color:var(--blue);opacity:.7;letter-spacing:.1em}.section-label h2{font-family:var(--font-mono);font-size:clamp(1.1rem,2.5vw,1.4rem);font-weight:600;color:var(--text);letter-spacing:-.01em}.section-label:after{content:"";flex:1;height:1px;background:linear-gradient(to right,var(--surface1),transparent)}.status-dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--green);animation:pulse-dot 2s ease-in-out infinite}@keyframes pulse-dot{0%,to{box-shadow:0 0 #a6e3a166}50%{box-shadow:0 0 0 6px #a6e3a100}}.container{width:100%;max-width:1200px;margin:0 auto;padding:0 var(--sp-lg)}@media (max-width: 600px){.container{padding:0 var(--sp-md)}}#root{position:relative;z-index:1}.page-wrapper{padding-top:72px}main{display:flex;flex-direction:column;gap:var(--sp-xl);padding-bottom:var(--sp-xl)}section{width:100%}.navbar{position:fixed;top:0;left:0;right:0;z-index:100;height:72px;display:flex;align-items:center;background:#1e1e2ed9;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border-bottom:1px solid rgba(255,255,255,.05)}.navbar-inner{display:flex;align-items:center;justify-content:space-between;width:100%}.navbar-logo{font-family:var(--font-mono);font-size:.9rem;font-weight:700;color:var(--blue);letter-spacing:.05em}.navbar-logo span{color:var(--overlay0);font-weight:400}.navbar-links{display:flex;gap:var(--sp-lg);list-style:none}.navbar-links a{font-family:var(--font-mono);font-size:.75rem;font-weight:500;letter-spacing:.08em;color:var(--subtext0);text-transform:uppercase;transition:color var(--transition);position:relative;padding-bottom:2px}.navbar-links a:after{content:"";position:absolute;bottom:-2px;left:0;width:0;height:1px;background:var(--blue);transition:width var(--transition)}.navbar-links a:hover{color:var(--text)}.navbar-links a:hover:after,.navbar-links a.active:after{width:100%}.navbar-links a.active{color:var(--blue)}@media (max-width: 600px){.navbar-links{gap:var(--sp-md)}.navbar-links a{font-size:.65rem}}#hero{min-height:calc(100vh - 72px);display:flex;align-items:center;padding:var(--sp-xl) 0}.hero-grid{display:grid;grid-template-columns:auto 1fr;gap:var(--sp-xl);align-items:center}.hero-photo-wrap{position:relative;width:clamp(140px,18vw,220px);flex-shrink:0}.hero-photo-wrap:before{content:"";position:absolute;top:-3px;right:-3px;bottom:-3px;left:-3px;border-radius:50%;background:conic-gradient(var(--blue),var(--mauve),var(--teal),var(--blue));animation:spin-border 8s linear infinite;z-index:0}.hero-photo-wrap:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:50%;background:var(--base);z-index:1;margin:3px}@keyframes spin-border{to{transform:rotate(360deg)}}.hero-photo{position:relative;z-index:2;border-radius:50%;margin:6px;width:calc(100% - 12px);display:block;height:auto}.hero-content{display:flex;flex-direction:column;gap:var(--sp-md)}.hero-status{display:inline-flex;align-items:center;gap:var(--sp-sm);background:#a6e3a114;border:1px solid rgba(166,227,161,.2);border-radius:var(--radius-full);padding:4px 12px;width:fit-content;font-family:var(--font-mono);font-size:.7rem;color:var(--green);letter-spacing:.08em}.hero-name{font-family:var(--font-mono);font-size:clamp(2rem,5vw,3.2rem);font-weight:800;line-height:1.1;color:var(--text);letter-spacing:-.03em}.hero-title{font-family:var(--font-mono);font-size:clamp(.85rem,1.5vw,1rem);color:var(--blue);font-weight:400}.hero-title .prompt{color:var(--green);margin-right:6px}.hero-desc{font-size:.95rem;color:var(--subtext1);max-width:480px;line-height:1.7}.hero-actions{display:flex;gap:var(--sp-md);flex-wrap:wrap;margin-top:var(--sp-sm)}.btn{display:inline-flex;align-items:center;gap:8px;font-family:var(--font-mono);font-size:.75rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;padding:10px 20px;border-radius:var(--radius-full);border:none;cursor:pointer;transition:transform var(--transition),box-shadow var(--transition)}.btn:hover{transform:translateY(-2px)}.btn-primary{background:var(--blue);color:var(--crust);box-shadow:0 4px 16px #89b4fa4d}.btn-primary:hover{box-shadow:0 8px 24px #89b4fa73}.btn-ghost{background:transparent;color:var(--blue);border:1px solid rgba(137,180,250,.4)}.btn-ghost:hover{background:#89b4fa12;border-color:var(--blue)}@media (max-width: 620px){.hero-grid{grid-template-columns:1fr;text-align:center}.hero-photo-wrap{margin:0 auto;width:140px}.hero-status,.hero-desc{margin:0 auto}.hero-actions{justify-content:center}}#sobre .sobre-text{font-size:1rem;line-height:1.85;color:var(--subtext1);max-width:700px}.formacao-grid{display:flex;gap:var(--sp-md);flex-wrap:wrap}.formacao-item{display:flex;align-items:center;gap:var(--sp-md);background:var(--surface0);border:1px solid rgba(255,255,255,.06);border-radius:var(--radius-md);padding:var(--sp-md) var(--sp-lg);transition:border-color var(--transition),transform var(--transition)}.formacao-item:hover{border-color:#89b4fa4d;transform:translateY(-2px)}.formacao-item img{height:32px;width:auto}.formacao-info{display:flex;flex-direction:column;gap:2px}.formacao-title{font-family:var(--font-mono);font-size:.8rem;font-weight:700;color:var(--text);letter-spacing:.05em}.formacao-sub{font-size:.75rem;color:var(--overlay1)}.stack-groups{display:flex;flex-direction:column;gap:var(--sp-lg)}.stack-group-label{font-family:var(--font-mono);font-size:.7rem;color:var(--overlay0);letter-spacing:.15em;text-transform:uppercase;margin-bottom:var(--sp-sm)}.stack-icons{display:flex;flex-wrap:wrap;gap:var(--sp-sm)}.tech-badge{display:inline-flex;align-items:center;gap:8px;background:var(--surface0);border:1px solid rgba(255,255,255,.06);border-radius:var(--radius-full);padding:6px 14px;font-family:var(--font-mono);font-size:.72rem;font-weight:600;letter-spacing:.05em;color:var(--subtext1);transition:all var(--transition);cursor:default}.tech-badge i,.tech-badge img{font-size:16px;width:16px;height:auto;flex-shrink:0}.tech-badge:hover{background:var(--surface1);color:var(--text);border-color:#89b4fa40;transform:translateY(-2px)}.projects-section{display:flex;flex-direction:column;gap:calc(var(--sp-xl) * .75)}.project-category{display:flex;flex-direction:column;gap:var(--sp-md)}.category-header{display:flex;align-items:center;gap:var(--sp-sm);margin-bottom:var(--sp-sm)}.category-header h3{font-family:var(--font-mono);font-size:.85rem;font-weight:600;color:var(--subtext0);letter-spacing:.08em;text-transform:uppercase}.cards-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:var(--sp-md)}footer{border-top:1px solid rgba(255,255,255,.05);padding:var(--sp-lg) 0}.footer-inner{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:var(--sp-md)}.footer-mono{font-family:var(--font-mono);font-size:.72rem;color:var(--overlay0)}.footer-uptime{display:flex;align-items:center;gap:6px;font-family:var(--font-mono);font-size:.7rem;color:var(--green)}.formacao-flag{font-size:1.6rem;line-height:1;flex-shrink:0}.typing-cursor{display:inline-block;color:var(--blue);animation:blink 1s step-end infinite;font-size:.9em;vertical-align:middle;margin-left:2px}@keyframes blink{0%,to{opacity:1}50%{opacity:0}}.card{display:flex;flex-direction:column;background:var(--surface0);border:1px solid rgba(255,255,255,.06);border-radius:var(--radius-lg);overflow:hidden;transition:transform var(--transition),box-shadow var(--transition),border-color var(--transition);cursor:default}.card:hover{transform:translateY(-6px);box-shadow:var(--shadow-card)}.card--blue{border-left:3px solid var(--blue)}.card--green{border-left:3px solid var(--green)}.card--mauve{border-left:3px solid var(--mauve)}.card--peach{border-left:3px solid var(--peach)}.card--blue:hover{box-shadow:var(--shadow-glow-blue)}.card--green:hover{box-shadow:var(--shadow-glow-green)}.card--mauve:hover{box-shadow:0 0 20px #cba6f726}.card--peach:hover{box-shadow:0 0 20px #fab38726}.card-img-wrap{position:relative;width:100%;aspect-ratio:16/9;overflow:hidden}.card-img{width:100%;height:100%;object-fit:cover;transition:transform .4s ease}.card:hover .card-img{transform:scale(1.04)}.card-img-overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(to bottom,transparent 40%,rgba(30,30,46,.6))}.card-body{padding:var(--sp-md);display:flex;flex-direction:column;gap:var(--sp-sm);flex:1}.card-title{font-family:var(--font-mono);font-size:.85rem;font-weight:700;color:var(--text);letter-spacing:-.01em;line-height:1.3}.card-desc{font-size:.8rem;color:var(--subtext0);line-height:1.6}
