/* Foco de teclado consistente em todos os controles interativos. */
a:focus-visible,button:focus-visible,[role="button"]:focus-visible,[tabindex]:focus-visible{outline:2px solid rgba(255,255,255,.78);outline-offset:4px;border-radius:6px}.light-mode a:focus-visible,.light-mode button:focus-visible,.light-mode [role="button"]:focus-visible,.light-mode [tabindex]:focus-visible{outline-color:rgba(0,0,0,.68)}

/* Tema alternativo claro. O modo escuro continua sendo o padrão do portfólio. */
.theme-toggle{position:absolute;right:max(24px,calc((100vw - var(--max))/2));width:44px;height:30px;border:1px solid rgba(255,255,255,.35);border-radius:999px;background:rgba(255,255,255,.035);color:#f4f4f4;display:grid;place-items:center;padding:0;font-size:14px;line-height:1;cursor:pointer;transition:background .25s,border-color .25s,color .25s,transform .25s}.theme-toggle:hover{border-color:rgba(255,255,255,.58);background:rgba(255,255,255,.07);transform:translateY(-1px)}.theme-toggle:focus-visible{outline:2px solid rgba(255,255,255,.65);outline-offset:3px}.topbar nav{position:absolute;left:50%;transform:translateX(-50%);margin-right:0}.topbar nav a{font-weight:500}

/* Monospace apenas como linguagem de detalhe: rótulos, metadados e pequenos indicadores. */
.eyebrow,.section-kicker,.signal-top,.tool-label,.project-meta,.contact-card-label,.copy-email,.scroll-cue{font-family:"IBM Plex Mono",monospace}
.metric p::first-letter{text-transform:uppercase}

body.light-mode{background:radial-gradient(circle at 50% 18%,#fff 0,#f6f4ef 34%,#eeece7 72%);color:#171717}.light-mode::selection{background:rgba(0,0,0,.14)}
.light-mode .topbar{background:rgba(246,244,239,.84);border-bottom-color:rgba(0,0,0,.09)}.light-mode .brand,.light-mode .brand span{color:#111}.light-mode nav a,.light-mode .mini-cta{color:#595959}.light-mode nav a:hover,.light-mode .mini-cta:hover{color:#111}
.light-mode .theme-toggle{border-color:rgba(0,0,0,.35);background:rgba(0,0,0,.035);color:#151515}.light-mode .theme-toggle:hover{border-color:rgba(0,0,0,.58);background:rgba(0,0,0,.07)}.light-mode .theme-toggle:focus-visible{outline-color:rgba(0,0,0,.55)}
.light-mode .hero{background:#f4f2ed}.light-mode .grid-bg{background-image:linear-gradient(rgba(0,0,0,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(0,0,0,.035) 1px,transparent 1px)}.light-mode .grid-bg:after{background:linear-gradient(90deg,rgba(244,242,237,.92) 0%,rgba(244,242,237,.62) 42%,rgba(244,242,237,.36) 68%,rgba(244,242,237,.78) 100%)}.light-mode .eyebrow{background:rgba(255,255,255,.55);border-color:rgba(0,0,0,.11);color:#585858}.light-mode h1 span{background:linear-gradient(90deg,#111,#343434 55%,#777);background-clip:text;-webkit-background-clip:text}.light-mode .signal-card{background:rgba(255,255,255,.58);border-color:rgba(0,0,0,.1)}.light-mode .signal-top{color:#7b7b7b}.light-mode .signal-card p{color:#626262}.light-mode .scroll-cue{color:#777}.light-mode .scroll-cue span{background:#777}
.light-mode .section-kicker{color:#666}.light-mode .section-head{border-bottom-color:rgba(0,0,0,.1)}.light-mode .metric{border-color:rgba(0,0,0,.1);background:linear-gradient(145deg,rgba(255,255,255,.7),rgba(0,0,0,.025))}.light-mode .metric-num{background:linear-gradient(120deg,#111,#333 68%,#888);background-clip:text;-webkit-background-clip:text}.light-mode .metric p{color:#666}.light-mode .about-copy p{color:#626262}.light-mode .about-copy .lead{color:#242424}.light-mode .toolbox{border-color:rgba(0,0,0,.1)}.light-mode .tool-label{color:#777}
.light-mode .button.primary{background:#181818;color:#fff;border-color:#181818}.light-mode .button.ghost{background:rgba(255,255,255,.45);border-color:rgba(0,0,0,.16);color:#202020}.light-mode .button:hover{border-color:rgba(0,0,0,.36)}
.light-mode .contact{background:#efede8;border-color:rgba(0,0,0,.1)}.light-mode .grid-bg-soft{background-image:linear-gradient(rgba(0,0,0,.025) 1px,transparent 1px),linear-gradient(90deg,rgba(0,0,0,.025) 1px,transparent 1px);background-size:42px 42px}.light-mode .contact:after{background:linear-gradient(90deg,rgba(239,237,232,.97),rgba(250,249,246,.72) 55%,rgba(239,237,232,.92))}.light-mode .contact-orb{background:radial-gradient(circle,#777 0,#c5c2bc 32%,transparent 70%);opacity:.09}.light-mode .contact-card{border-color:rgba(0,0,0,.11);background:rgba(255,255,255,.48)}.light-mode .contact-card:hover{border-color:rgba(0,0,0,.25);background:rgba(255,255,255,.75)}.light-mode .contact-card-icon{border-color:rgba(0,0,0,.16);background:rgba(0,0,0,.025)}.light-mode .contact-card-label{color:#747474}.light-mode .contact-card-arrow{color:#777}.light-mode .contact-card:hover .contact-card-arrow{color:#111}.light-mode .copy-email{color:#6c6c6c!important}.light-mode .email-card:hover .copy-email:not(.copied){color:#222!important}.light-mode .copy-email.copied,.light-mode .email-card:hover .copy-email.copied{color:#129b00!important}.light-mode .email-card:focus-visible{outline-color:rgba(0,0,0,.55)}
.light-mode footer{color:#747474}.light-mode .spotlight-card:before{background:radial-gradient(420px circle at var(--mx,50%) var(--my,50%),rgba(0,0,0,.055),transparent 45%)}.light-mode .cursor-glow{background:rgba(0,0,0,.018)}
@media(max-width:900px){.topbar nav{position:absolute;left:16px;right:16px;transform:translateY(-8px);margin-right:0}.topbar.menu-open nav{transform:translateY(0)}.menu-toggle{margin-left:auto;margin-right:54px}.light-mode .topbar nav{background:rgba(246,244,239,.97);border-color:rgba(0,0,0,.1);box-shadow:0 18px 50px rgba(0,0,0,.12)}.light-mode .topbar nav a{color:#525252}.light-mode .topbar nav a:hover,.light-mode .topbar nav a:focus-visible{color:#111;background:rgba(0,0,0,.05)}.light-mode .menu-toggle{border-color:rgba(0,0,0,.14);background:rgba(0,0,0,.025)}.light-mode .menu-toggle span{background:#222}.light-mode .grid-bg:after{background:linear-gradient(180deg,rgba(244,242,237,.8),rgba(244,242,237,.38) 55%,rgba(244,242,237,.78))}}

/* Respiro vertical do hero. */
.hero{padding-top:150px;padding-bottom:80px}.eyebrow{margin-bottom:24px}@media(max-width:900px){.hero{padding-top:125px;padding-bottom:80px}}@media(max-width:620px){.hero{padding-top:120px;padding-bottom:100px}}

/* SQL no lado direito do hero. */
.hero-sql{width:100%;max-width:470px;justify-self:end;transform:translateX(-70px);border:1px solid rgba(255,255,255,.14);border-radius:15px;background:rgba(7,14,30,.9);box-shadow:0 24px 70px rgba(0,0,0,.22);overflow:hidden;font-family:"IBM Plex Mono",monospace}.hero-sql-head{height:48px;display:flex;align-items:center;gap:7px;padding:0 16px;border-bottom:1px solid rgba(255,255,255,.13);background:rgba(42,58,84,.68)}.hero-sql-head i{width:10px;height:10px;border-radius:50%;display:block}.hero-sql-head i:nth-child(1){background:#ff5f57}.hero-sql-head i:nth-child(2){background:#febc2e}.hero-sql-head i:nth-child(3){background:#28c840}.hero-sql-head span{margin-left:auto;margin-right:auto;transform:translateX(-17px);color:#9da8bb;font-size:11px}.hero-sql-code{margin:0;padding:28px 25px 30px;color:#d7dce6;font:500 13px/1.8 "IBM Plex Mono",monospace;white-space:pre-wrap}.hero-sql-code .kw{color:#00e5ff;font-weight:600}.hero-sql-code .obj{color:#24a8ff}.hero-sql-code .str{color:#b8a4d8}.sql-caret{display:inline-block;width:2px;height:1.1em;margin-left:3px;background:#dfe7f5;vertical-align:-2px;animation:sqlCaret .85s steps(1) infinite}@keyframes sqlCaret{50%{opacity:0}}.light-mode .hero-sql{background:rgba(255,255,255,.74);border-color:rgba(0,0,0,.13);box-shadow:0 24px 70px rgba(0,0,0,.08)}.light-mode .hero-sql-head{background:rgba(31,38,58,.92);border-bottom-color:rgba(0,0,0,.14)}.light-mode .hero-sql-code{color:#30323a}.light-mode .hero-sql-code .kw{color:#007b8c}.light-mode .hero-sql-code .obj{color:#1768aa}.light-mode .hero-sql-code .str{color:#6c568e}.light-mode .sql-caret{background:#222}@media(max-width:900px){.hero-sql{justify-self:start;max-width:560px;transform:none}}@media(max-width:620px){.hero-sql-code{font-size:11px;padding:22px 18px 24px}.hero-sql-head{height:44px}}

/* Focos deslocados para antes do Impacto Profissional. */
.focus-strip{margin-bottom:70px}.focus-strip-label{display:block;margin-bottom:18px}.focus-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.focus-grid .signal-card{min-height:164px}.focus-grid .signal-card strong{font-size:19px}.light-mode .focus-grid .signal-card{background:rgba(255,255,255,.58);border-color:rgba(0,0,0,.1)}@media(max-width:760px){.focus-grid{grid-template-columns:1fr}.focus-grid .signal-card{min-height:auto}}@media(prefers-reduced-motion:reduce){.sql-caret{animation:none}}

/* Competências & Ferramentas: faixa contínua em largura total. */
.about-grid{grid-template-columns:1fr}.about-copy{max-width:850px}.toolbox.skills-marquee-box{border-left:0;padding-left:0;margin-top:28px;padding-top:28px;border-top:0;overflow:hidden}.skills-marquee{position:relative;width:100%;overflow:hidden;mask-image:linear-gradient(90deg,transparent,#000 7%,#000 93%,transparent);-webkit-mask-image:linear-gradient(90deg,transparent,#000 7%,#000 93%,transparent)}.skills-track{display:flex;width:max-content;gap:12px;animation:skillsMarquee 34s linear infinite;padding:4px 0}.skills-group{display:flex;gap:12px;flex-shrink:0;padding-right:12px}.skills-group span{display:inline-flex;align-items:center;white-space:nowrap;padding:10px 15px;border:1px solid var(--line);border-radius:999px;background:rgba(255,255,255,.025);color:#b7b7b7;font:500 12px "IBM Plex Mono",monospace;letter-spacing:.025em}.skills-marquee:hover .skills-track{animation-play-state:paused}@keyframes skillsMarquee{to{transform:translateX(-50%)}}.light-mode .toolbox.skills-marquee-box{border-color:rgba(0,0,0,.1)}.light-mode .skills-group span{border-color:rgba(0,0,0,.11);background:rgba(255,255,255,.48);color:#4f4f4f}@media(max-width:620px){.toolbox.skills-marquee-box{margin-top:18px;padding-top:24px}.skills-track{animation-duration:29s}.skills-group span{padding:9px 13px;font-size:11px}}@media(prefers-reduced-motion:reduce){.skills-marquee{overflow-x:auto;mask-image:none;-webkit-mask-image:none}.skills-track{animation:none}.skills-group[aria-hidden="true"]{display:none}}

/* Indicador de scroll removido do hero. */
.scroll-cue{display:none!important}

/* Legibilidade dos metadados pequenos. */
.signal-top{font-size:11px;color:#999}.tool-label{font-size:12px;color:#999}.contact-card-label{font-size:11px;color:#a0a0a0}.copy-email{font-size:11px!important;color:#a0a0a0!important}footer{color:#8f8f8f}.light-mode .signal-top,.light-mode .tool-label,.light-mode .contact-card-label,.light-mode .copy-email,.light-mode footer{color:#626262!important}