@font-face{font-family:"Inter";font-style:normal;font-weight:100 900;font-display:swap;src:url("/assets/fonts/inter.woff2") format("woff2")} @font-face{font-family:"JetBrains Mono";font-style:normal;font-weight:100 900;font-display:swap;src:url("/assets/fonts/jetbrains-mono.woff2") format("woff2")}:root{--bg:#0e0e14;--bg-elev:#16161f;--bg-elev-2:#1d1d28;--text:#e8e8f0;--muted:#9a9aab;--accent:#7c5cff;--accent-2:#a78bfa;--border:rgba(255,255,255,0.08);--topbar-bg:rgba(14,14,20,0.72);--hero-text:#d9d9e3;--hero-title-solid:#ffffff;--hero-title-grad:linear-gradient(180deg,#ffffff 25%,#d7cfff 75%,#b9a8ff 100%);--radius-pill:99px;--font-primary:"Inter",system-ui,sans-serif;--font-mono:"JetBrains Mono",monospace}:root[data-theme="light"]{--bg:#f4f5f9;--bg-elev:#ffffff;--bg-elev-2:#ffffff;--text:#1a1a24;--muted:#56576a;--accent:#5b2ee0;--accent-2:#7c3aed;--border:rgba(20,20,40,0.12);--topbar-bg:rgba(255,255,255,0.78);--hero-text:#44444f;--hero-title-solid:#1a1a24;--hero-title-grad:linear-gradient(180deg,#22222e 15%,#503d91 65%,#5b2ee0 100%)} *{margin:0;padding:0;box-sizing:border-box;list-style:none;text-decoration:none} body{background-color:var(--bg);color:var(--text);font-family:var(--font-primary);line-height:1.6;overflow-x:hidden;scroll-behavior:smooth} a:focus-visible,button:focus-visible{outline:2px solid var(--accent);outline-offset:2px} .skip-link{position:absolute;top:-3.5rem;left:1rem;z-index:1000;font-family:var(--font-mono);font-size:0.85rem;color:#fff;background-color:var(--accent);padding:0.6em 1.2em;border-radius:0 0 12px 12px;transition:top 0.2s} .skip-link:focus{top:0} [data-anime]{opacity:0;transition:opacity 0.6s ease,transform 0.6s ease} [data-anime="up"]{transform:translateY(40px)} [data-anime="left"]{transform:translateX(-40px)} [data-anime="right"]{transform:translateX(40px)} [data-anime].animate{opacity:1;transform:translate(0,0)} .topbar{position:fixed;top:0;left:0;width:100%;height:64px;display:flex;align-items:center;justify-content:space-between;padding:0 2.5rem;background-color:var(--topbar-bg);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-bottom:1px solid var(--border);z-index:90} .topbar-logo{font-family:var(--font-mono);font-weight:700;font-size:1.25rem;color:var(--text)} .topbar-logo span{color:var(--accent)} .topbar-menu{display:flex;gap:1.8rem} .topbar-menu a{font-family:var(--font-mono);font-size:0.95rem;color:var(--muted);transition:color 0.25s} .topbar-menu a:hover,.topbar-menu a.active{color:var(--accent)} .theme-toggle{width:2.4rem;height:2.4rem;display:inline-flex;align-items:center;justify-content:center;background-color:transparent;border:1px solid var(--border);border-radius:var(--radius-pill);color:var(--muted);cursor:pointer;transition:color 0.25s,border-color 0.25s} .theme-toggle:hover{color:var(--accent);border-color:var(--accent)} .theme-toggle svg{width:1.15rem;height:1.15rem;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round} .theme-toggle .icon-moon{display:none} [data-theme="light"] .theme-toggle .icon-sun{display:none} [data-theme="light"] .theme-toggle .icon-moon{display:block} .theme-toggle-fixed{display:none} .topbar-actions{display:flex;align-items:center;gap:0.8rem} .lang-pill{font-family:var(--font-mono);font-size:0.8rem;color:var(--muted);border:1px solid var(--border);border-radius:var(--radius-pill);padding:0.35em 0.75em;transition:color 0.25s,border-color 0.25s} .lang-pill:hover{color:var(--accent);border-color:var(--accent)} .lang-fixed{display:none} .hamburguer{display:none;background-color:transparent;border:none;padding:0;width:2rem;height:2rem;position:fixed;z-index:100;right:1.4rem;top:1.4rem;flex-direction:column;justify-content:space-evenly;cursor:pointer} .line{width:100%;height:0.15rem;background-color:var(--text);transition:transform 0.4s,background-color 0.4s;border-radius:2px} .hamburguer .hamburguer-label{position:absolute;right:50px;width:5rem;height:2rem;padding:0.4rem;background-color:var(--bg-elev-2);text-align:center;font-family:var(--font-mono);text-transform:uppercase;font-size:0.75rem;color:var(--text);border-radius:18px;opacity:0} .hamburguer .hamburguer-label::before{content:" ";position:absolute;border-right:0.5rem solid transparent;border-top:0.5rem solid transparent;border-left:0.5rem solid var(--bg-elev-2);border-bottom:0.5rem solid transparent;left:5.7rem;bottom:0.9rem} @media (min-width:821px){.show-menu .hamburguer:hover .hamburguer-label{opacity:1;transition-delay:1s} } .show-menu #line2{transform:translate(-2px,-15px);background-color:var(--muted)} .show-menu #line1{transform:rotate(45deg) translate(0.3rem,0.44rem);background-color:var(--accent)} .show-menu #line3{transform:rotate(-45deg) translate(0.3rem,-0.44rem);background-color:var(--accent)} .sidebar{width:18rem;height:100vh;height:100dvh;background-color:var(--bg-elev);position:fixed;top:0;right:-18rem;transition:right 0.4s;z-index:95;border-left:1px solid var(--border)} .show-menu .sidebar{right:0} .menu{position:absolute;top:42%;left:50%;transform:translate(-50%,-50%);text-align:center;text-transform:uppercase} .menu-item{margin:1.5em} .menu-link{font-family:var(--font-mono);font-size:1.6rem;color:var(--muted);transition:color 0.25s} .menu-link:hover,.menu-link.active{color:var(--accent)} .show-menu #menu-1{animation:moveMenu 0.4s} .show-menu #menu-2{animation:moveMenu 0.6s} .show-menu #menu-3{animation:moveMenu 0.8s} .show-menu #menu-4{animation:moveMenu 1s} .show-menu #menu-5{animation:moveMenu 1.2s} .show-menu #menu-6{animation:moveMenu 1.4s} .social-media{display:flex;justify-content:space-evenly} .social-media a{color:var(--muted);transition:color 0.3s;display:inline-flex} .social-media a:hover{color:var(--accent)} .social-media svg{width:2.2rem;height:2.2rem} .sidebar .social-media{position:absolute;bottom:4rem;width:100%} #top{width:100%;height:100vh;height:100svh;overflow:hidden;position:relative;display:flex;align-items:center} .aurora{position:absolute;inset:0;overflow:hidden} .aurora-blob{position:absolute;border-radius:50%;filter:blur(60px);will-change:transform;contain:paint} .aurora-1{width:46vw;height:46vw;background:radial-gradient(circle,rgba(124,92,255,0.5),transparent 70%);top:-12%;left:-8%;animation:auroraFloat1 18s ease-in-out infinite alternate} .aurora-2{width:40vw;height:40vw;background:radial-gradient(circle,rgba(79,70,229,0.45),transparent 70%);bottom:-18%;right:-10%;animation:auroraFloat2 22s ease-in-out infinite alternate} .aurora-3{width:32vw;height:32vw;background:radial-gradient(circle,rgba(167,139,250,0.35),transparent 70%);top:28%;left:42%;animation:auroraFloat3 26s ease-in-out infinite alternate} .banner{position:relative;z-index:1;max-width:56rem;padding:0 6%} .hero-logo{position:absolute;right:16%;top:50%;translate:0 -50%;width:clamp(240px,24vw,360px);height:auto;z-index:0;opacity:0.85;user-select:none;pointer-events:none} @media (max-width:991px){.hero-logo{display:none} } .banner-ola{font-family:var(--font-mono);color:var(--accent-2);text-transform:uppercase;letter-spacing:3px;font-size:0.9rem;margin-bottom:0.8rem;opacity:0;animation:fadeUp 0.7s 0.1s forwards} .banner h1{font-family:var(--font-mono);font-size:clamp(2.4rem,6vw,3.8rem);font-weight:700;line-height:1.1;text-transform:uppercase;color:var(--hero-title-solid);margin-bottom:1rem} .banner h1 .word{display:inline-block;color:var(--hero-title-solid);animation:wordRise 0.5s cubic-bezier(0.22,1,0.36,1)} @supports ((-webkit-background-clip:text) or (background-clip:text)){.banner h1 .word{background:var(--hero-title-grad);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent} } .banner-typing{font-family:var(--font-mono);font-size:clamp(1.05rem,2.5vw,1.35rem);color:var(--hero-text);min-height:1.9em;opacity:0;animation:fadeUp 0.7s 0.9s forwards} .typewriter{color:var(--accent-2)} .typing-cursor{display:inline-block;width:3px;height:1.1em;margin-left:3px;background:var(--accent);vertical-align:text-bottom;animation:blink 1s steps(1) infinite} .banner-desc{color:var(--muted);max-width:46ch;margin:1rem 0 2rem;opacity:0;animation:fadeUp 0.7s 1.1s forwards} .banner #button-banner{opacity:0;animation:fadeUp 0.7s 1.3s forwards} .banner-ctas{display:flex;flex-wrap:wrap;align-items:center;gap:1rem} .ButtonCustom{display:inline-block;padding:1em 2.4em;font-family:var(--font-mono);font-size:0.85rem;text-transform:uppercase;letter-spacing:2px;font-weight:500;color:#fff;background-color:var(--accent);border:none;border-radius:var(--radius-pill);box-shadow:0 8px 24px rgba(124,92,255,0.35);transition:all 0.3s ease;cursor:pointer} .ButtonCustom:hover{background-color:var(--accent-2);box-shadow:0 12px 28px rgba(124,92,255,0.5);transform:translateY(-4px);color:#fff} .ButtonSend{display:inline-flex;align-items:center;gap:0.4rem;font-size:0.78rem;letter-spacing:1px;text-transform:uppercase;text-decoration:none;padding:0.8em 1.8em;border-radius:2em;transition:all 0.25s;border:none;font-family:var(--font-mono);font-weight:500;background-color:var(--accent);color:#fff;cursor:pointer} .ButtonSend:hover{background-color:var(--accent-2);transform:translateY(-3px);color:#fff} .ButtonSend.outline{background-color:transparent;border:1px solid var(--accent);color:var(--accent)} .ButtonSend.outline:hover{background-color:var(--accent);color:#fff} .sessao-header{display:flex;align-items:center;justify-content:center;padding-top:5rem} .sessao-header h2{font-family:var(--font-mono);text-transform:uppercase;font-size:clamp(1.5rem,4vw,2rem);font-weight:500;letter-spacing:2px;padding:1rem 0;border-bottom:2px solid var(--accent);color:var(--text)} section{scroll-margin-top:80px} .sessao-sobre{background-color:var(--bg);padding-bottom:5rem} .bento{display:grid;grid-template-columns:2fr 1fr;grid-template-areas:"bio stats" "github github";gap:1.2rem;max-width:1100px;margin:0 auto;padding:2rem} .bento-item{background-color:var(--bg-elev-2);border:1px solid var(--border);border-radius:18px;padding:1.6rem} .bento-bio{grid-area:bio} .bento-bio h3{font-family:var(--font-mono);color:var(--accent);font-size:1.4rem;margin-bottom:1rem;font-weight:500} .bento-bio p{color:var(--muted);margin-bottom:1rem} .bento-bio strong{color:var(--text)} .bento-stats{grid-area:stats;display:flex;flex-direction:column;justify-content:center;gap:1.1rem} .stat-num{display:block;font-family:var(--font-mono);font-size:2.1rem;font-weight:700;color:var(--accent);line-height:1.1} .stat-label{color:var(--muted);font-size:0.85rem} .bento-github{grid-area:github;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:1.4rem} .bento-github[hidden]{display:none} .gh-identity{display:flex;align-items:center;gap:1rem;flex:1 1 320px} .gh-avatar-wrap{width:52px;height:52px;flex:none;display:inline-flex;align-items:center;justify-content:center;border-radius:50%;background:linear-gradient(135deg,var(--accent),var(--accent-2));color:#fff} .gh-avatar{width:28px;height:28px;color:#fff} .bento-github h3{font-family:var(--font-mono);font-weight:500;color:var(--text);margin-bottom:0.2rem} .bento-github p{color:var(--muted);font-size:0.9rem;max-width:52ch} .gh-stats{display:flex;gap:2.2rem} .gh-stat .stat-num{font-size:1.7rem} .sessao-conhecimentos{background-color:var(--bg-elev);padding-bottom:5rem} .conhecimentos{display:grid;grid-template-columns:repeat(2,minmax(260px,1fr));gap:2.5rem;max-width:1000px;margin:0 auto;padding:2rem} .skills-group{background-color:var(--bg-elev-2);border:1px solid var(--border);border-radius:16px;padding:1.8rem} .skills-title{font-family:var(--font-mono);color:var(--accent);font-size:1.1rem;text-transform:uppercase;letter-spacing:1px;margin-bottom:0.4rem} .skills-desc{color:var(--muted);font-size:0.85rem;margin-bottom:1.4rem} .skills-chips{display:flex;flex-wrap:wrap;gap:0.55rem} .chip{display:inline-flex;align-items:center;gap:0.45rem;font-size:0.82rem;font-family:var(--font-mono);color:var(--text);background-color:var(--bg);border:1px solid var(--border);padding:0.42rem 0.8rem;border-radius:var(--radius-pill);transition:border-color 0.25s,color 0.25s} .chip:hover{border-color:var(--accent);color:var(--accent)} .ic{width:15px;height:15px;flex:none;display:inline-block;vertical-align:middle} .ic-brand{fill:currentColor} .ic-line{fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round} .chip .ic,.tag .ic{width:13px;height:13px;color:var(--accent-2)} .sessao-experiencia{background-color:var(--bg);padding-bottom:5rem} .timeline{max-width:820px;margin:0 auto;padding:2rem;position:relative} .timeline::before{content:"";position:absolute;left:24px;top:2rem;bottom:2rem;width:2px;background:var(--border)} .timeline-item{position:relative;padding-left:4rem;margin-bottom:2.5rem} .timeline-dot{position:absolute;left:17px;top:6px;width:16px;height:16px;border-radius:50%;background:var(--accent);box-shadow:0 0 0 4px rgba(124,92,255,0.25)} .timeline-card{background-color:var(--bg-elev);border:1px solid var(--border);border-radius:14px;padding:1.4rem 1.6rem} .timeline-periodo{font-family:var(--font-mono);font-size:0.8rem;color:var(--accent)} .timeline-card h3{font-size:1.2rem;margin:0.3rem 0;color:var(--text)} .timeline-empresa{color:var(--accent-2);font-weight:500;margin-bottom:0.6rem} .timeline-card p{color:var(--muted)} .timeline-card ul{margin-top:0.6rem;padding-left:1.2rem;display:flex;flex-direction:column;gap:0.4rem} .timeline-card li{color:var(--muted);font-size:0.95rem} .timeline-card li::marker{color:var(--accent)} .timeline-card li strong{color:var(--text)} .sessao-projetos{background-color:var(--bg-elev);padding-bottom:5rem} .cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:2rem;max-width:1180px;margin:0 auto;padding:2rem} .card{position:relative;background-color:var(--bg-elev-2);border:1px solid var(--border);border-radius:18px;overflow:hidden;display:flex;flex-direction:column;transition:transform 0.3s,border-color 0.3s} .card::before{content:"";position:absolute;inset:0;border-radius:inherit;background:radial-gradient( 480px circle at var(--mx,50%) var(--my,50%),rgba(124,92,255,0.16),transparent 45% );opacity:0;transition:opacity 0.3s;pointer-events:none;z-index:1} .card:hover::before{opacity:1} .card:hover{transform:translateY(-6px);border-color:rgba(124,92,255,0.45)} .card-img-wrapper{position:relative;width:100%;height:180px;overflow:hidden} .card-link{display:block;position:relative;width:100%;height:180px;overflow:hidden} .card-link:focus-visible{outline:2px solid var(--accent);outline-offset:-2px} .card-link .card-img-wrapper{height:100%} .card-badge{display:inline-flex;align-items:center;line-height:1;position:absolute;top:0.8rem;left:0.8rem;z-index:2;font-family:var(--font-mono);font-size:0.7rem;text-transform:uppercase;letter-spacing:1px;color:#fff;background-color:rgba(14,14,20,0.65);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border:1px solid rgba(124,92,255,0.45);padding:0.52em calc(0.9em - 1px) 0.38em 0.9em;border-radius:var(--radius-pill)} .card-img-wrapper img{width:100%;height:100%;object-fit:cover;object-position:top;transition:transform 0.5s} .card:hover .card-img-wrapper img{transform:scale(1.06)} .card-body{padding:1.4rem;display:flex;flex-direction:column;gap:0.8rem;flex:1} .card-body h3{font-family:var(--font-mono);font-size:1.25rem;color:var(--text)} .card-title-link{color:var(--text);transition:color 0.25s} .card-title-link:visited{color:var(--text)} .card-title-link:hover{color:var(--accent)} .card-title-link:visited:hover{color:var(--accent)} .card-title-link:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:4px} .tags{display:flex;flex-wrap:wrap;gap:0.4rem} .tag{display:inline-flex;align-items:center;gap:0.35rem;font-size:0.7rem;font-family:var(--font-mono);color:var(--accent-2);background-color:rgba(124,92,255,0.12);border:1px solid rgba(124,92,255,0.3);padding:0.25rem 0.6rem;border-radius:var(--radius-pill)} .tag.extra{display:none} .tags.expanded .tag.extra{display:inline-flex} .tag-more{cursor:pointer;background-color:transparent;border:1px dashed rgba(124,92,255,0.45);color:var(--accent-2);padding:0.25rem 0.6rem;border-radius:var(--radius-pill)} .tag-more:hover{background-color:rgba(124,92,255,0.12)} .card-body p{color:var(--muted);font-size:0.95rem;flex:1} .card-actions{display:flex;flex-wrap:wrap;align-items:center;gap:0.7rem} .card-actions .ButtonSend{padding:0.75em 1.5em;font-size:0.74rem} .sessao-contato{background-color:var(--bg);padding-bottom:6rem;text-align:center} .contato-conteudo{max-width:600px;margin:0 auto;padding:2rem} .contato-conteudo p{color:var(--muted);font-size:1.1rem;margin-bottom:1rem} .contato-email{display:inline-block;font-family:var(--font-mono);font-size:1.3rem;color:var(--accent);margin-bottom:2rem;word-break:break-all} .contato-email:hover{color:var(--accent-2)} .sessao-contato .social-media{justify-content:center;gap:1.8rem} .sessao-contato .social-media svg{width:2.6rem;height:2.6rem} .contato-form{display:flex;flex-direction:column;gap:0.9rem;margin-bottom:2.4rem;text-align:left} .contato-form input,.contato-form textarea{width:100%;font-family:var(--font-primary);font-size:0.95rem;color:var(--text);background-color:var(--bg-elev-2);border:1px solid var(--border);border-radius:12px;padding:0.9rem 1.1rem;transition:border-color 0.25s} .contato-form input:focus-visible,.contato-form textarea:focus-visible{outline:2px solid var(--accent);outline-offset:0;border-color:var(--accent)} .contato-form input::placeholder,.contato-form textarea::placeholder{color:var(--muted)} .contato-form textarea{resize:vertical;min-height:120px} .contato-form .form-row{display:grid;grid-template-columns:1fr 1fr;gap:0.9rem} .contato-form .ButtonSend{align-self:center;min-width:220px;justify-content:center} .form-status{text-align:center;font-size:0.9rem;color:var(--accent-2);min-height:1.2em} .back-to-top{position:fixed;bottom:1.4rem;right:1.4rem;width:2.8rem;height:2.8rem;display:inline-flex;align-items:center;justify-content:center;background-color:var(--topbar-bg);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border:1px solid var(--border);border-radius:var(--radius-pill);color:var(--muted);cursor:pointer;z-index:90;opacity:0;visibility:hidden;transform:translateY(12px);transition:opacity 0.3s,transform 0.3s,visibility 0.3s,color 0.25s,border-color 0.25s} .back-to-top.visible{opacity:1;visibility:visible;transform:none} .back-to-top:hover{color:var(--accent);border-color:var(--accent)} .back-to-top svg{width:1.2rem;height:1.2rem;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round} footer{width:100%;background-color:var(--bg-elev);border-top:1px solid var(--border);display:flex;justify-content:center;padding:1.5rem} .footer--item{display:flex;flex-direction:column;align-items:center;gap:0.8rem} .footer--item p{font-weight:600;color:var(--text)} .footer-links{display:flex;flex-wrap:wrap;justify-content:center;gap:1.4rem} .footer-links a{display:inline-flex;align-items:center;gap:0.4rem;font-family:var(--font-mono);font-size:0.8rem;color:var(--muted);transition:color 0.25s} .footer-links a:hover{color:var(--accent)} .footer-links .ic{width:14px;height:14px} .btn-icon{width:12px;height:12px;stroke:currentColor;fill:none;stroke-width:2.5;stroke-linecap:round;stroke-linejoin:round;flex:none} .filter-bar{display:flex;flex-wrap:wrap;justify-content:center;gap:0.6rem;padding:1.5rem 2rem} .filter-chip{font-family:var(--font-mono);font-size:0.8rem;color:var(--muted);background-color:transparent;border:1px solid var(--border);border-radius:var(--radius-pill);padding:0.45em 1.2em;cursor:pointer;transition:all 0.25s} .filter-chip:hover{color:var(--text);border-color:var(--accent)} .filter-chip.active{background-color:var(--accent);border-color:var(--accent);color:#fff} .card.is-hidden{display:none} .card.filter-in{animation:cardIn 0.35s ease both} .scroll-progress{position:fixed;top:0;left:0;width:100%;height:3px;background:linear-gradient(90deg,var(--accent),var(--accent-2));transform:scaleX(0);transform-origin:0 50%;z-index:200} .grain{position:fixed;inset:0;z-index:999;pointer-events:none;opacity:0.05;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='240' height='240'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")} .marquee{overflow:hidden;background:var(--bg-elev);border-block:1px solid var(--border);padding:1.4rem 0;-webkit-mask-image:linear-gradient( 90deg,transparent,#000 12%,#000 88%,transparent );mask-image:linear-gradient(90deg,transparent,#000 12%,#000 88%,transparent)} .marquee-track{display:flex;width:max-content;animation:marquee 32s linear infinite} .marquee-group{display:flex;align-items:center;gap:2.6rem;padding-right:2.6rem} .marquee-item{font-family:var(--font-mono);font-size:0.95rem;color:var(--muted);white-space:nowrap} .marquee-dot{width:6px;height:6px;border-radius:50%;background:var(--accent);flex:none} html.lenis,html.lenis body{height:auto} .lenis.lenis-smooth{scroll-behavior:auto !important} .lenis.lenis-stopped{overflow:hidden} .pagina-404{min-height:100vh;min-height:100svh;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:2rem;gap:0.6rem} .codigo-404{font-family:var(--font-mono);font-size:clamp(6rem,22vw,11rem);font-weight:700;line-height:1;background:linear-gradient(120deg,var(--accent),var(--accent-2));-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;color:var(--accent)} .pagina-404 h1{font-family:var(--font-mono);font-size:clamp(1.1rem,3vw,1.5rem);color:var(--text);font-weight:500} .pagina-404 > p{color:var(--muted);max-width:42ch} .acoes-404{display:flex;gap:0.9rem;flex-wrap:wrap;justify-content:center;margin-top:1.2rem} .case-page{padding-top:64px} .case{max-width:860px;margin:0 auto;padding:2.5rem 1.5rem 4rem} .case-breadcrumb{margin-bottom:2rem} .case-voltar{display:inline-flex;align-items:center;gap:0.5rem;font-family:var(--font-mono);font-size:0.85rem;color:var(--muted);transition:color 0.25s} .case-voltar:hover{color:var(--accent)} .case-hero{margin-bottom:2rem} .case-badge{display:inline-block;font-family:var(--font-mono);font-size:0.7rem;text-transform:uppercase;letter-spacing:1px;color:var(--accent-2);background-color:rgba(124,92,255,0.12);border:1px solid rgba(124,92,255,0.3);padding:0.3rem 0.8rem;border-radius:var(--radius-pill);margin-bottom:1rem} .case-hero h1{font-family:var(--font-mono);font-size:clamp(2rem,5vw,3rem);color:var(--text);text-transform:uppercase;line-height:1.1;margin-bottom:0.6rem} .case-subtitle{color:var(--muted);font-size:1.05rem;max-width:60ch;margin-bottom:1.4rem} .case-meta{display:flex;flex-wrap:wrap;gap:2rem} .case-meta-item{display:flex;flex-direction:column;gap:0.1rem} .case-meta-label{font-family:var(--font-mono);font-size:0.7rem;text-transform:uppercase;letter-spacing:1px;color:var(--muted)} .case-meta-value{color:var(--text);font-weight:500} .case-anon{margin-top:1.4rem;display:inline-flex;align-items:center;gap:0.5rem;font-size:0.82rem;color:var(--muted);border:1px dashed var(--border);border-radius:12px;padding:0.7rem 1rem} .case-anon .btn-icon{stroke:var(--accent-2)} .case-cover{border-radius:18px;overflow:hidden;border:1px solid var(--border);margin-bottom:3rem;background-color:var(--bg-elev-2)} .case-cover img{width:100%;height:auto;display:block;object-fit:cover} .case-body{display:flex;flex-direction:column;gap:2.4rem} .case-section h2{font-family:var(--font-mono);font-size:1.15rem;text-transform:uppercase;letter-spacing:1px;color:var(--accent);margin-bottom:0.9rem;font-weight:500} .case-section p{color:var(--muted)} .case-list{padding-left:1.2rem;display:flex;flex-direction:column;gap:0.5rem} .case-list li{color:var(--muted)} .case-list li::marker{color:var(--accent)} .case-list li strong{color:var(--text)} .case-highlights{list-style:none;padding-left:0;gap:0.8rem} .case-highlights li{display:flex;align-items:flex-start;gap:0.7rem;background-color:var(--bg-elev-2);border:1px solid var(--border);border-radius:12px;padding:0.9rem 1.1rem} .case-check{color:var(--accent);margin-top:0.25rem} .case-aprendizado{border-left:3px solid var(--accent);padding:0.4rem 0 0.4rem 1.2rem;color:var(--text)} .case-links{display:flex;flex-wrap:wrap;gap:0.9rem} .case-nav{margin-top:3.5rem;display:grid;grid-template-columns:1fr auto 1fr;gap:1rem;align-items:stretch} .case-nav-item{display:flex;flex-direction:column;gap:0.3rem;border:1px solid var(--border);border-radius:14px;padding:1rem 1.2rem;background-color:var(--bg-elev);transition:border-color 0.25s,transform 0.25s} .case-nav-item:hover{border-color:var(--accent);transform:translateY(-2px)} .case-nav-prev{align-items:flex-start} .case-nav-next{align-items:flex-end;text-align:right} .case-nav-all{justify-content:center;align-items:center;font-family:var(--font-mono);font-size:0.8rem;color:var(--accent);text-transform:uppercase;letter-spacing:1px;text-align:center} .case-nav-label{display:inline-flex;align-items:center;gap:0.3rem;font-family:var(--font-mono);font-size:0.7rem;text-transform:uppercase;letter-spacing:1px;color:var(--muted)} .case-nav-title{color:var(--text);font-weight:600} @media (max-width:820px){.topbar{display:none} .hamburguer{display:flex;right:auto;left:1.4rem} .theme-toggle-fixed{display:inline-flex;position:fixed;top:1.2rem;right:1.4rem;z-index:100;background-color:var(--topbar-bg);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)} .lang-fixed{display:inline-flex;align-items:center;position:fixed;top:1.2rem;right:4.4rem;z-index:100;height:2.4rem;padding:0 0.9rem;border-radius:var(--radius-pill);border:1px solid var(--border);background-color:var(--topbar-bg);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);font-family:var(--font-mono);font-size:0.8rem;color:var(--muted)} .aurora-blob{filter:blur(46px)} .aurora-3{display:none} .banner{padding:0 1.2rem;display:flex;flex-direction:column;align-items:center;text-align:center} .banner-desc{margin-inline:auto} .sidebar{width:100vw;right:auto;left:-100vw;border-left:none;border-right:1px solid var(--border);transition:left 0.4s} .show-menu .sidebar{right:auto;left:0} .menu{top:45%;width:100%} .menu-link{font-size:2.1rem} .filter-bar{flex-wrap:nowrap;overflow-x:auto;justify-content:flex-start;padding:1.25rem 1.2rem;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;scrollbar-width:none;-webkit-mask-image:linear-gradient(90deg,transparent,#000 5%,#000 95%,transparent);mask-image:linear-gradient(90deg,transparent,#000 5%,#000 95%,transparent)} .filter-bar::-webkit-scrollbar{display:none} .filter-chip{flex:none;scroll-snap-align:start;padding:0.6em 1.3em} .cards{padding:1.2rem} .card-img-wrapper{height:200px} .card-link{height:200px} .card-actions .ButtonSend{padding:0.9em 1.8em} .bento{grid-template-columns:1fr;grid-template-areas:"bio" "stats" "github"} .gh-stats{width:100%;justify-content:space-around} .conhecimentos{grid-template-columns:1fr} .case{padding:2rem 1.2rem 3rem} .case-nav{grid-template-columns:1fr} .case-nav-next{align-items:flex-start;text-align:left} .contato-form .form-row{grid-template-columns:1fr} } @media (prefers-reduced-motion:reduce){html{scroll-behavior:auto} *,*::before,*::after{animation-duration:0.01ms !important;animation-iteration-count:1 !important;transition-duration:0.01ms !important} [data-anime]{opacity:1;transform:none} } @keyframes moveMenu{0%{transform:translateX(-10rem)} 100%{transform:translateX(0)} } @keyframes fadeUp{0%{opacity:0;transform:translateY(30px)} 100%{opacity:1;transform:translateY(0)} } @keyframes wordReveal{0%{opacity:0;transform:translateY(24px)} 100%{opacity:1;transform:translateY(0)} } @keyframes wordRise{0%{transform:translateY(24px)} 100%{transform:translateY(0)} } @keyframes blink{0%,49%{opacity:1} 50%,100%{opacity:0} } @keyframes marquee{to{transform:translateX(-50%)} } @keyframes cardIn{from{opacity:0;transform:translateY(16px) scale(0.98)} to{opacity:1;transform:translateY(0) scale(1)} } @keyframes auroraFloat1{from{transform:translate(0,0) scale(1)} to{transform:translate(8vw,6vh) scale(1.15)} } @keyframes auroraFloat2{from{transform:translate(0,0) scale(1)} to{transform:translate(-6vw,-8vh) scale(1.2)} } @keyframes auroraFloat3{from{transform:translate(0,0) scale(1)} to{transform:translate(4vw,-5vh) scale(0.9)} }