.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}

/* Intro curta de marca antes do Hero. */
body.preloading{overflow:hidden}
.intro-preloader{position:fixed;inset:0;z-index:10000;display:grid;place-items:center;background:#000;opacity:1;visibility:visible;transition:opacity .42s ease,visibility .42s ease}
.intro-preloader.is-hiding{opacity:0;visibility:hidden;pointer-events:none}
.intro-logo{display:inline-flex;align-items:baseline;font:700 clamp(52px,7vw,82px) "Space Grotesk",sans-serif;letter-spacing:-.06em;color:#f4f4f4;opacity:0;transform:translateY(8px) scale(.985);animation:intro-logo-in .42s cubic-bezier(.22,1,.36,1) forwards}
.intro-logo i{font-style:normal;color:#39ff14;transform-origin:center;animation:intro-dot-pulse .62s ease-in-out .42s 1}
@keyframes intro-logo-in{to{opacity:1;transform:none}}
@keyframes intro-dot-pulse{0%,100%{transform:scale(1);text-shadow:0 0 0 rgba(57,255,20,0)}50%{transform:scale(1.28);text-shadow:0 0 18px rgba(57,255,20,.55)}}
@media(prefers-reduced-motion:reduce){.intro-preloader{transition:none}.intro-logo{animation:none;opacity:1;transform:none}.intro-logo i{animation:none}}

/* Seletor de idiomas e ajustes multilíngues. */
.topbar-controls{display:flex;align-items:center;gap:15px;margin-left:auto;position:relative;z-index:2}.topbar-controls .theme-toggle{position:static;flex:0 0 44px}.language-switch{display:inline-flex;align-items:center;gap:6px;color:#808080;font:600 11px "DM Sans",sans-serif;letter-spacing:.04em;white-space:nowrap}.language-switch button{appearance:none;border:0;background:transparent;color:inherit;min-width:28px;min-height:28px;padding:5px 2px;font:inherit;cursor:pointer;position:relative;transition:color .2s}.language-switch button:hover,.language-switch button:focus-visible{color:#dedede}.language-switch button:focus-visible{outline:2px solid rgba(255,255,255,.78);outline-offset:2px;border-radius:5px}.language-switch button[aria-pressed="true"]{color:#f2f2f2}.language-switch button[aria-pressed="true"]:after{content:"";position:absolute;left:2px;right:2px;bottom:1px;height:1px;background:currentColor}.language-switch i{font-style:normal;color:#444}
body.light-mode .language-switch{color:#666}body.light-mode .language-switch button:hover,body.light-mode .language-switch button:focus-visible,body.light-mode .language-switch button[aria-pressed="true"]{color:#171717}body.light-mode .language-switch button:focus-visible{outline-color:rgba(0,0,0,.68)}body.light-mode .language-switch i{color:#aaa}
body.light-mode .hero-tagline{color:#666}body.light-mode .projects-sync{color:#555}body.light-mode .career-period{color:#5c5c5c}body.light-mode #projetos .project-meta{color:#595959}body.light-mode #projetos .projects-grid .project-info>p{color:#5f5f5f}body.light-mode .contact-card-label{color:#595959}body.light-mode .brand-name{color:#5c5c5c}body.light-mode footer{color:#666}
html[lang="en"] .focus-grid .signal-card strong,html[lang="es"] .focus-grid .signal-card strong{font-size:18px;line-height:1.25}html[lang="en"] .career-role,html[lang="es"] .career-role{line-height:1.5}html[lang="en"] #projetos .project-info h3,html[lang="es"] #projetos .project-info h3{line-height:1.16}
@media(max-width:900px){.menu-toggle{margin-left:auto;margin-right:12px}.topbar-controls{margin-left:0;gap:12px}.topbar nav a:focus-visible{outline:2px solid rgba(255,255,255,.78);outline-offset:-2px}.light-mode .topbar nav a:focus-visible{outline-color:rgba(0,0,0,.68)}}@media(max-width:620px){.topbar-controls{gap:8px}.language-switch{gap:4px;font-size:10px}.language-switch button{padding-inline:1px}html[lang="en"] .focus-grid .signal-card strong,html[lang="es"] .focus-grid .signal-card strong{font-size:17px}}

/* Easter egg do terminal SQL no Hero. */
.hero-sql{position:relative}.hero-sql-title-link{margin-left:auto;margin-right:auto;transform:translateX(-17px);color:#9da8bb;font-size:11px;text-decoration:none;cursor:pointer}.hero-sql-matrix{position:absolute;left:0;right:0;bottom:0;width:100%;display:none;z-index:3;background:#000}.hero-sql-glitch-bands{position:absolute;left:0;right:0;bottom:0;z-index:4;pointer-events:none;display:none}.hero-sql-glitch-bands span{position:absolute;left:0;right:0}.hero-sql-glitch-bands span:nth-child(1){height:2px;background:rgba(57,255,20,.3)}.hero-sql-glitch-bands span:nth-child(2){height:3px;background:rgba(0,229,255,.38)}.hero-sql-glitch-bands span:nth-child(3){height:4px;background:rgba(57,255,20,.3)}.hero-sql .hero-sql-control-active{cursor:pointer}.hero-sql .hero-sql-control-passive{cursor:default}

/* Estrutura-base dos projetos, usada também pelo fallback estático. */
.project-feature{display:grid;grid-template-columns:1.3fr .9fr;border:1px solid var(--line);border-radius:20px;overflow:hidden;background:linear-gradient(145deg,rgba(255,255,255,.035),rgba(255,255,255,.014));margin-bottom:22px}.project-feature.reverse{grid-template-columns:.9fr 1.3fr}.project-feature.reverse .project-visual{order:2}.project-visual{min-height:440px;position:relative;overflow:hidden;background:#0b0b0b}.project-visual img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .65s}.dashboard-visual img{object-fit:contain;background:#0b0b0b}.project-feature:hover .project-visual img{transform:scale(1.035)}.visual-overlay{position:absolute;inset:0;background:linear-gradient(140deg,rgba(0,0,0,.02),rgba(0,0,0,.48))}.project-info{padding:46px 40px;display:flex;flex-direction:column;justify-content:center}.project-meta{display:flex;justify-content:space-between;color:#808080;font-size:10px;letter-spacing:.15em;margin-bottom:22px}.project-info h3{font-size:34px;line-height:1.05;letter-spacing:-.04em}.project-info>p{color:#999;margin:18px 0 24px}.project-tags{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:28px}.project-tags span{border:1px solid var(--line);background:rgba(255,255,255,.025);border-radius:999px;padding:7px 11px;font-size:12px;color:#aaa}.text-link{margin-top:auto;padding-top:20px;border-top:1px solid var(--line);display:flex;justify-content:space-between;font-size:14px;font-weight:700}
body.light-mode .project-feature{border-color:rgba(0,0,0,.11);background:linear-gradient(145deg,rgba(255,255,255,.72),rgba(0,0,0,.025))}body.light-mode .project-visual{background:#e7e5e0}body.light-mode .dashboard-visual img{background:#e7e5e0}body.light-mode .visual-overlay{background:linear-gradient(140deg,rgba(255,255,255,.02),rgba(0,0,0,.1))}body.light-mode .project-meta{color:#737373}body.light-mode .project-info>p{color:#626262}body.light-mode .project-tags span{border-color:rgba(0,0,0,.11);background:rgba(255,255,255,.48);color:#5d5d5d}body.light-mode .text-link{border-top-color:rgba(0,0,0,.1)}
@media(max-width:900px){.project-feature,.project-feature.reverse{grid-template-columns:1fr}.project-feature.reverse .project-visual{order:0}.project-visual{min-height:360px}}@media(max-width:620px){.project-visual{min-height:240px}.project-info{padding:30px 24px}}

/* Galeria dinâmica de projetos. */
#projetos .section-head{margin-bottom:0}.projects-status.projects-status-compact{justify-content:flex-start;margin:25px 0}.projects-status[data-sync="loading"] .projects-sync-dot{background:#f2c94c;box-shadow:0 0 0 4px rgba(242,201,76,.07),0 0 10px rgba(242,201,76,.35)}.projects-status[data-sync="ok"] .projects-sync-dot{background:#39ff14;box-shadow:0 0 0 4px rgba(57,255,20,.07),0 0 10px rgba(57,255,20,.3)}.projects-status[data-sync="cache"] .projects-sync-dot,.projects-status[data-sync="fallback"] .projects-sync-dot{background:#eb5757;box-shadow:0 0 0 4px rgba(235,87,87,.07),0 0 10px rgba(235,87,87,.3)}.project-filters{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:0 0 30px;padding:6px;border:1px solid rgba(255,255,255,.08);border-radius:14px;width:max-content;max-width:100%;background:rgba(255,255,255,.018)}.project-filter{appearance:none;border:0;background:transparent;color:#858585;padding:10px 15px;border-radius:9px;font:600 13px "DM Sans",sans-serif;cursor:pointer;transition:color .22s,background .22s,transform .22s}.project-filter:hover{color:#e8e8e8}.project-filter:active{transform:scale(.97)}.project-filter.is-active{color:#fff;background:rgba(255,255,255,.09)}.project-filter:focus-visible{outline:2px solid rgba(255,255,255,.7);outline-offset:2px}.projects-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px;align-items:stretch}.projects-grid .project-feature{display:flex;flex-direction:column;margin:0;min-width:0;border:1px solid rgba(255,255,255,.09);border-radius:18px;overflow:hidden;background:rgba(255,255,255,.018);transition:border-color .25s ease,background .25s ease,transform .32s cubic-bezier(.22,1,.36,1)}.projects-grid .project-feature:hover{transform:translateY(-4px);border-color:rgba(255,255,255,.18);background:rgba(255,255,255,.028)}.projects-grid .project-visual{width:100%;min-height:0;height:auto;aspect-ratio:16/9;border:0;border-radius:0;overflow:hidden;background:#0a0a0a}.projects-grid .project-visual img{width:100%;height:100%;object-fit:cover;display:block}.projects-grid .project-visual-contain{position:relative;display:grid;place-items:center;isolation:isolate;background:#07101d}.projects-grid .project-visual-contain::before{content:"";position:absolute;inset:-18px;z-index:-1;background-image:linear-gradient(rgba(2,7,14,.22),rgba(2,7,14,.22)),var(--project-image);background-size:cover;background-position:center;filter:blur(18px) saturate(.82);opacity:.72;transform:scale(1.08)}.projects-grid .project-visual-contain::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,rgba(2,7,14,.38),transparent 22%,transparent 78%,rgba(2,7,14,.38))}.projects-grid .project-visual-contain img{position:relative;width:100%;height:100%;max-width:none;object-fit:contain;border-radius:9px;box-shadow:0 8px 30px rgba(0,0,0,.3);transform:scale(1);transform-origin:center}.projects-grid .project-visual-fallback{display:grid;place-items:center;padding:28px;background:#0b0b0b}.projects-grid .project-visual-fallback span{max-width:80%;text-align:center;font:600 24px "Space Grotesk",sans-serif;color:#d8d8d8}.projects-grid .project-info{width:100%;padding:25px 26px 27px;display:flex;flex-direction:column;flex:1}.projects-grid .project-info h3{font-size:24px;line-height:1.12;margin:11px 0 12px}.projects-grid .project-info p{font-size:14px;line-height:1.65;margin:0 0 18px;color:#929292}.projects-grid .project-tags{margin-top:auto;padding-top:4px;margin-bottom:20px}.projects-grid .text-link{margin-top:0}.projects-grid.is-awaiting-entry .project-feature{opacity:0;transform:translateY(42px)}.projects-grid .project-feature.is-hidden{display:none}body.light-mode .project-filters{border-color:rgba(0,0,0,.09);background:rgba(0,0,0,.018)}body.light-mode .project-filter{color:#6d6d6d}body.light-mode .project-filter:hover{color:#111}body.light-mode .project-filter.is-active{color:#111;background:rgba(0,0,0,.075)}body.light-mode .projects-grid .project-feature{border-color:rgba(0,0,0,.09);background:rgba(255,255,255,.28)}
@media(max-width:760px){.projects-grid{grid-template-columns:1fr}.project-filters{width:100%;overflow-x:auto;flex-wrap:nowrap;scrollbar-width:none}.project-filter{white-space:nowrap}}@media(prefers-reduced-motion:reduce){.project-filter,.projects-grid .project-feature{transition:none}.projects-grid.is-awaiting-entry .project-feature{opacity:1;transform:none}}

/* Pequenos metadados com contraste AA no tema escuro. */
body:not(.light-mode) .career-period{color:#828282}
body:not(.light-mode) #projetos .project-meta{color:#808080}