:root{--bg:#050b14;--panel:#0a1422;--panel2:#0d1b2c;--text:#edf5ff;--muted:#91a4ba;--blue:#2d8cff;--cyan:#4ed7ff;--orange:#ff8a1f;--line:rgba(130,170,210,.16);--shadow:0 22px 70px rgba(0,0,0,.32)}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--text);font-family:Inter,Arial,sans-serif;line-height:1.6;overflow-x:hidden}.grid-bg{position:fixed;inset:0;z-index:-2;background:radial-gradient(circle at 80% 10%,rgba(45,140,255,.13),transparent 28%),radial-gradient(circle at 15% 55%,rgba(255,138,31,.08),transparent 25%),linear-gradient(rgba(255,255,255,.025) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.025) 1px,transparent 1px);background-size:auto,auto,42px 42px,42px 42px}.navbar{position:sticky;top:0;z-index:20;display:flex;align-items:center;justify-content:space-between;padding:15px clamp(20px,5vw,75px);background:rgba(5,11,20,.88);border-bottom:1px solid var(--line);backdrop-filter:blur(16px)}.logo{display:flex;gap:12px;align-items:center;color:white;text-decoration:none}.logo-symbol{font:800 24px Orbitron;color:var(--cyan)}.logo strong{display:block;font:800 14px Orbitron;letter-spacing:1.2px}.logo small{display:block;color:var(--muted);font-size:10px;letter-spacing:3px}.nav-menu{display:flex;gap:8px}.nav-menu a{color:#b7c7d8;text-decoration:none;padding:9px 12px;border-radius:8px;font-size:14px;transition:.25s}.nav-menu a:hover,.nav-menu a.active{background:rgba(45,140,255,.12);color:#fff}.menu-toggle{display:none;background:none;border:0;color:#fff;font-size:28px}.hero{position:relative;min-height:650px;display:grid;place-items:center;overflow:hidden}.hero-slides{width:min(1180px,90%);min-height:550px;position:relative}.hero-slide{position:absolute;inset:0;display:grid;grid-template-columns:1.05fr .95fr;align-items:center;gap:50px;opacity:0;transform:translateX(25px);pointer-events:none;transition:.65s}.hero-slide.active{opacity:1;transform:none;pointer-events:auto}.hero-copy{max-width:650px}.eyebrow{display:inline-block;color:var(--cyan);font:700 11px Orbitron;letter-spacing:2.5px;margin-bottom:14px}.hero h1{font:800 clamp(48px,7vw,88px)/1.02 Orbitron;margin:0 0 20px}.hero h1 span,.section-title h2 span,.about h2 span,.contact h2 span{color:var(--orange)}.hero p{color:var(--muted);font-size:18px;max-width:600px}.hero code{display:inline-block;color:#9eeaff;background:rgba(78,215,255,.06);border:1px solid rgba(78,215,255,.2);padding:10px 14px;border-radius:7px;margin-top:12px}.hero-art{height:390px;border:1px solid var(--line);border-radius:28px;display:flex;flex-direction:column;align-items:center;justify-content:center;box-shadow:var(--shadow);position:relative;overflow:hidden;background:linear-gradient(145deg,#0c2038,#07101c)}.hero-art:before,.hero-art:after{content:"";position:absolute;border-radius:50%;filter:blur(3px)}.hero-art:before{width:230px;height:230px;background:rgba(45,140,255,.18)}.hero-art:after{width:100px;height:100px;background:rgba(255,138,31,.18)}.hero-art b{font:800 100px Orbitron;z-index:1}.hero-art small{z-index:1;color:var(--muted);letter-spacing:4px}.node-art b{color:#8cff8c}.web-art b{color:#5bc9ff}.desktop-art b{color:#ffb25c}.ai-art b{color:#d5a7ff}.hero-btn{position:absolute;top:50%;transform:translateY(-50%);width:45px;height:45px;border-radius:50%;border:1px solid var(--line);background:rgba(10,20,34,.8);color:white;font-size:34px;cursor:pointer}.hero-btn.prev{left:22px}.hero-btn.next{right:22px}.hero-dots{position:absolute;bottom:35px;display:flex;gap:8px}.hero-dots button{width:30px;height:4px;border:0;background:#304255;cursor:pointer}.hero-dots button.active{background:var(--cyan)}.section{width:min(1180px,90%);margin:0 auto;padding:95px 0}.section-title{text-align:center;margin-bottom:48px}.section-title>span{font:700 11px Orbitron;color:var(--cyan);letter-spacing:3px}.section-title h2{font:800 clamp(34px,4vw,54px) Orbitron;margin:8px 0}.section-title p{color:var(--muted);margin:0 auto;max-width:680px}.dev-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:25px}.dev-card{background:linear-gradient(160deg,rgba(13,27,44,.94),rgba(7,15,25,.94));border:1px solid var(--line);border-radius:16px;overflow:hidden;box-shadow:0 12px 45px rgba(0,0,0,.18);transition:.3s}.dev-card:hover{transform:translateY(-7px);border-color:rgba(78,215,255,.38);box-shadow:0 20px 55px rgba(0,0,0,.32)}.dev-photo{height:310px;display:block;position:relative;overflow:hidden;background:#101d2c;text-decoration:none}.dev-photo img{width:100%;height:100%;object-fit:cover;display:block;transition:.4s}.dev-card:hover .dev-photo img{transform:scale(1.04)}.photo-overlay{position:absolute;inset:auto 0 0 0;padding:16px;text-align:center;background:linear-gradient(transparent,rgba(0,0,0,.85));color:#fff;font:700 11px Orbitron;letter-spacing:1.5px;opacity:0;transform:translateY(10px);transition:.3s}.dev-card:hover .photo-overlay{opacity:1;transform:none}.dev-info{padding:20px}.dev-info h3{margin:0;font-size:22px}.dev-role{color:var(--cyan);font-size:13px;font-weight:700;margin:4px 0}.dev-stack{color:var(--muted);font-size:12px;margin:8px 0}.dev-project{font-size:13px;color:#cbd7e4}.cv-link,.project-card a,.portfolio-project a{display:inline-block;margin-top:8px;color:var(--orange);font-weight:700;font-size:13px;text-decoration:none}.project-grid,.gallery-grid,.portfolio-projects{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}.project-card,.gallery-item,.resume-card,.portfolio-project{background:rgba(10,20,34,.82);border:1px solid var(--line);border-radius:14px;padding:26px}.project-card{min-height:280px}.project-icon{font-size:40px;color:var(--cyan);margin-bottom:25px}.project-card>span{font:700 10px Orbitron;color:var(--cyan);letter-spacing:2px}.project-card h3,.gallery-item h3{font-size:22px;margin:10px 0}.project-card p,.gallery-item h3{color:#c5d2df}.gallery-item{padding:0;overflow:hidden}.gallery-art{height:220px;display:flex;flex-direction:column;justify-content:center;align-items:center;position:relative;background:linear-gradient(135deg,#102945,#09111d)}.gallery-art:after{content:"";position:absolute;inset:20px;border:1px solid rgba(78,215,255,.18);transform:rotate(-7deg)}.gallery-art span{font:800 62px Orbitron;color:var(--cyan);z-index:1}.gallery-art b{font:700 11px Orbitron;letter-spacing:4px;z-index:1}.ga3 span{color:#d6a1ff}.ga4 span{color:#79ffbc}.ga5 span{color:#ffae63}.ga6 span{color:#fff}.gallery-item h3{padding:0 20px 20px;margin:0;font-size:16px}.about{padding:100px 5%;background:linear-gradient(90deg,rgba(45,140,255,.07),rgba(255,138,31,.03));border-block:1px solid var(--line)}.about-inner{width:min(1180px,100%);margin:auto;display:grid;grid-template-columns:1fr 1fr;gap:80px;align-items:center}.about h2,.contact h2{font:800 clamp(36px,5vw,60px)/1.08 Orbitron;margin:0}.about p{color:var(--muted)}.stats{display:flex;gap:45px;margin-top:35px}.stats b{display:block;font:800 34px Orbitron;color:var(--cyan)}.stats small{color:var(--muted)}.contact{display:grid;grid-template-columns:.9fr 1.1fr;gap:70px}.contact-copy p{color:var(--muted)}.contact-line{margin-top:15px;color:var(--cyan)}.contact-line span{color:#cbd7e4;margin-left:10px}.contact-form{display:flex;flex-direction:column;gap:13px}.input-row{display:grid;grid-template-columns:1fr 1fr;gap:13px}.contact-form input,.contact-form textarea{width:100%;background:#081321;border:1px solid var(--line);color:white;border-radius:8px;padding:14px;font:inherit;outline:none}.contact-form input:focus,.contact-form textarea:focus{border-color:rgba(78,215,255,.5)}.contact-form button{padding:15px;border:0;border-radius:8px;background:linear-gradient(90deg,var(--blue),#1266ca);color:white;font-weight:800;cursor:pointer}.contact-form small{color:#6f8399}.contact-form code{color:var(--cyan)}footer{border-top:1px solid var(--line);background:#030811}.footer-content{width:min(1180px,90%);margin:auto;padding:30px 0;display:flex;align-items:center;justify-content:space-between;gap:20px}.footer-logo{display:flex;gap:10px;align-items:center;font:700 11px Orbitron}.footer-content p{color:var(--muted);font-size:13px}.footer-social{display:flex;gap:8px}.footer-social span{border:1px solid var(--line);padding:7px 10px;border-radius:6px;color:var(--cyan)}.copyright{text-align:center;padding:12px;border-top:1px solid var(--line);color:#66798e;font:700 9px Orbitron;letter-spacing:1px}.portfolio-page .navbar{position:sticky}.portfolio-nav{margin-left:auto}.portfolio-hero{width:min(1180px,90%);margin:auto;padding:90px 0 60px;display:grid;grid-template-columns:390px 1fr;gap:70px;align-items:center}.portfolio-photo{height:500px;border-radius:22px;overflow:hidden;border:1px solid var(--line);box-shadow:var(--shadow);background:#101d2c}.portfolio-photo img{width:100%;height:100%;object-fit:cover}.portfolio-intro h1{font:800 clamp(44px,6vw,74px) Orbitron;margin:0}.portfolio-intro h2{color:var(--cyan);font-size:19px}.portfolio-intro>p{color:var(--muted);font-size:17px;max-width:650px}.portfolio-tags{display:flex;flex-wrap:wrap;gap:8px;margin:25px 0}.portfolio-tags span{padding:7px 10px;border:1px solid var(--line);border-radius:20px;color:#cde9ff;font-size:12px;background:rgba(78,215,255,.04)}.portfolio-actions{display:flex;gap:12px}.primary-action,.secondary-action{padding:12px 16px;border-radius:8px;text-decoration:none;font-weight:700;font-size:13px}.primary-action{background:var(--blue);color:white}.secondary-action{border:1px solid var(--line);color:#cde0f1}.section-title.left{text-align:left}.resume-grid{display:grid;grid-template-columns:2fr 1fr;gap:24px}.resume-card h3,.portfolio-project h3{margin-top:0}.resume-card p,.resume-card li,.portfolio-project p{color:var(--muted)}.resume-card ul{padding-left:20px}.project-title{margin-top:70px}.portfolio-project{min-height:210px}.portfolio-project>span{color:var(--cyan);font:700 12px Orbitron}.portfolio-project a{margin-top:12px}.reveal{opacity:0;transform:translateY(25px);transition:.65s}.reveal.seen{opacity:1;transform:none}.no-image{display:grid!important;place-items:center;background:linear-gradient(145deg,#0b2138,#09111c)}.no-image:after{content:"ADICIONE A FOTO";color:#6f8399;font:700 11px Orbitron}@media(max-width:900px){.nav-menu{display:none;position:absolute;top:100%;right:20px;flex-direction:column;background:#081321;border:1px solid var(--line);padding:8px;width:220px}.nav-menu.open{display:flex}.menu-toggle{display:block}.hero-slide{grid-template-columns:1fr}.hero-art{display:none}.hero{min-height:600px}.dev-grid,.project-grid,.gallery-grid,.portfolio-projects{grid-template-columns:repeat(2,1fr)}.about-inner,.contact{grid-template-columns:1fr;gap:35px}.portfolio-hero{grid-template-columns:300px 1fr;gap:35px}.portfolio-photo{height:420px}}
@media(max-width:620px){.navbar{padding:13px 18px}.logo strong{font-size:12px}.hero-slides{min-height:500px}.hero h1{font-size:43px}.hero p{font-size:15px}.hero-btn{display:none}.section{padding:70px 0}.dev-grid,.project-grid,.gallery-grid,.portfolio-projects,.resume-grid,.portfolio-hero{grid-template-columns:1fr}.dev-photo{height:360px}.input-row{grid-template-columns:1fr}.footer-content{flex-direction:column;text-align:center}.portfolio-hero{padding-top:50px}.portfolio-photo{height:440px}.portfolio-intro h1{font-size:42px}.portfolio-nav a:not(:first-child){display:none}}

/* Fundo Matrix animado */
#matrixCanvas{position:fixed;inset:0;width:100%;height:100%;z-index:-3;pointer-events:none;opacity:.82}
.grid-bg{z-index:-4;opacity:.22}

/* Imagens demonstrativas de projetos e galeria */
.project-image{height:170px;margin:-26px -26px 22px;overflow:hidden;border-bottom:1px solid var(--line);background:#050b14}
.project-image img{width:100%;height:100%;display:block;object-fit:cover;transition:.45s}
.project-card:hover .project-image img{transform:scale(1.035)}
.gallery-art{height:220px;padding:0;overflow:hidden;background:#050b14}
.gallery-art img{width:100%;height:100%;display:block;object-fit:cover;transition:.45s}
.gallery-item:hover .gallery-art img{transform:scale(1.035)}
.dev-formation{font-size:12px;color:#a9bacb;margin:9px 0 4px}
.dev-formation b{color:#dbe9f5}
.resume-wide{grid-column:1 / -1}
@media(max-width:900px){.resume-wide{grid-column:auto}}

/* Feedback do formulário PHP */
.php-message{position:fixed;top:82px;right:20px;z-index:9999;padding:14px 18px;border:1px solid rgba(255,255,255,.18);border-radius:10px;background:rgba(10,16,25,.95);backdrop-filter:blur(8px);box-shadow:0 10px 30px rgba(0,0,0,.3);font-weight:700}
.php-message.success{color:#7dff9d}
.php-message.error{color:#ff8b8b}


/* ===== AJUSTES DE ENQUADRAMENTO E RESPONSIVIDADE ===== */
.dev-photo{aspect-ratio:4/5;height:auto;min-height:0;background:linear-gradient(145deg,#0b1d30,#07101b)}
.dev-photo img.developer-image{object-fit:cover;width:100%;height:100%;display:block;object-position:50% 50%;}
.portfolio-photo{aspect-ratio:4/5;height:auto;max-height:620px;min-height:0}
.portfolio-photo img.developer-image{object-fit:cover;width:100%;height:100%;display:block;object-position:50% 50%}

/* Evita que textos, botões e códigos estourem em telas menores. */
.hero-copy,.hero p,.hero code,.contact-copy,.contact-form,.project-card,.gallery-item,.about-inner>div,.portfolio-intro{min-width:0}
.hero code{max-width:100%;overflow-wrap:anywhere}
.project-card p,.gallery-item h3,.dev-info p,.portfolio-project p{overflow-wrap:anywhere}

@media (max-width:1100px){
  .navbar{padding-inline:clamp(18px,4vw,42px)}
  .hero-slides{width:min(1080px,88%)}
  .hero-slide{gap:30px}
  .section{width:min(1080px,90%)}
  .dev-grid,.project-grid,.gallery-grid{gap:18px}
  .about{padding-inline:5%}
  .contact{gap:40px}
  .portfolio-hero{width:min(1080px,90%);gap:45px}
}

@media (max-width:900px){
  .navbar{position:sticky;min-height:62px}
  .nav-menu{display:none;position:absolute;top:100%;right:14px;left:14px;width:auto;flex-direction:column;gap:4px;background:rgba(6,14,25,.98);border:1px solid var(--line);border-radius:12px;padding:8px;box-shadow:0 18px 45px rgba(0,0,0,.35)}
  .nav-menu.open{display:flex}
  .nav-menu a{padding:12px 14px;font-size:14px}
  .menu-toggle{display:block;cursor:pointer;line-height:1}
  .hero{min-height:560px}
  .hero-slides{min-height:500px}
  .hero-slide{grid-template-columns:1fr;align-content:center;justify-items:start;gap:0;padding:20px 8%;}
  .hero-copy{max-width:760px}
  .hero-art{display:none}
  .hero-btn{width:40px;height:40px;font-size:30px}
  .hero-btn.prev{left:8px}.hero-btn.next{right:8px}
  .hero-dots{bottom:22px}
  .dev-grid,.project-grid,.gallery-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .dev-photo{aspect-ratio:4/5}
  .about-inner,.contact{grid-template-columns:1fr;gap:32px}
  .stats{justify-content:flex-start;flex-wrap:wrap;gap:28px}
  .portfolio-hero{grid-template-columns:minmax(240px,320px) 1fr;gap:32px;padding-top:60px}
  .portfolio-photo{max-height:none}
  .resume-grid{grid-template-columns:1fr 1fr}
  .resume-wide{grid-column:1/-1}
  .footer-content{flex-wrap:wrap}
}

@media (max-width:700px){
  .logo{gap:8px}.logo-symbol{font-size:21px}.logo small{font-size:8px;letter-spacing:2px}
  .hero{min-height:530px}.hero-slides{width:100%;min-height:480px}
  .hero-slide{padding-inline:9%;}
  .hero h1{font-size:clamp(36px,11vw,54px)}
  .hero p{font-size:15px;line-height:1.55}
  .hero code{font-size:12px;padding:8px 10px}
  .section{width:92%;padding:65px 0}
  .section-title{margin-bottom:34px}.section-title h2{font-size:clamp(30px,8vw,44px)}
  .dev-grid,.project-grid,.gallery-grid{grid-template-columns:1fr;gap:18px}
  .dev-photo{aspect-ratio:4/5;max-height:none}
  .dev-info{padding:17px}.dev-info h3{font-size:20px}
  .project-card{padding:20px}.project-image{height:180px;margin:-20px -20px 20px}
  .gallery-art{height:auto;aspect-ratio:16/10}
  .about{padding:65px 4%}.about h2,.contact h2{font-size:clamp(34px,9vw,48px)}
  .stats{gap:22px}.stats b{font-size:28px}
  .contact{width:92%}.input-row{grid-template-columns:1fr}
  .contact-form textarea{min-height:160px;resize:vertical}
  .footer-content{width:92%;flex-direction:column;text-align:center;padding:25px 0}.footer-social{justify-content:center}
  .copyright{padding:12px 10px;line-height:1.6;word-break:break-word}
  .portfolio-hero{width:92%;grid-template-columns:1fr;padding:45px 0 25px;gap:28px}
  .portfolio-photo{width:min(100%,360px);margin:0 auto;aspect-ratio:4/5}
  .portfolio-intro{text-align:center}.portfolio-intro h1{font-size:clamp(36px,11vw,52px);overflow-wrap:anywhere}
  .portfolio-tags{justify-content:center}.portfolio-actions{justify-content:center;flex-wrap:wrap}
  .portfolio-body.section{padding-top:45px}
  .resume-grid{grid-template-columns:1fr}.resume-wide{grid-column:auto}
  .project-title{margin-top:45px}
  .portfolio-projects{grid-template-columns:1fr}
}

@media (max-width:420px){
  .navbar{padding:11px 13px}.logo strong{font-size:11px}.nav-menu{left:8px;right:8px}
  .hero-slide{padding-inline:8%}.hero h1{font-size:36px}.hero p{font-size:14px}
  .hero-dots button{width:22px}
  .dev-photo{aspect-ratio:4/5}
  .section{width:94%}
  .about{padding-inline:5%}.contact{width:94%}
  .primary-action,.secondary-action{width:100%;text-align:center}
  .portfolio-photo{width:100%}
}

@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}.dev-card:hover{transform:none}.dev-card:hover .dev-photo img,.project-card:hover .project-image img,.gallery-item:hover .gallery-art img{transform:none}.reveal{transition:none}
}
.cv-download{border-color:rgba(78,215,255,.28);color:var(--cyan)!important}
.cv-download:hover{background:rgba(78,215,255,.08);border-color:rgba(78,215,255,.5)}
