:root {
  --navy-950:#020817;
  --navy-900:#05142f;
  --navy-850:#071b3d;
  --navy-800:#082557;
  --blue-600:#0a56d6;
  --blue-500:#1779ff;
  --cyan-400:#34d8ff;
  --cyan-300:#79e7ff;
  --green-600:#07833f;
  --green-500:#14a85a;
  --green-400:#39d878;
  --yellow-500:#f7c814;
  --yellow-400:#ffd947;
  --ink:#10223f;
  --muted:#6d7b91;
  --line:#dbe5ef;
  --soft:#f4f7fb;
  --soft-2:#edf3f8;
  --white:#fff;
  --radius:24px;
  --shadow-lg:0 28px 80px rgba(2,16,45,.14);
  --shadow-md:0 16px 40px rgba(2,16,45,.11);
  --font-scale:1;
}

*{box-sizing:border-box}
html{scroll-behavior:smooth;font-size:calc(16px * var(--font-scale))}
body{margin:0;font-family:"Poppins",ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--ink);background:var(--white);line-height:1.55;overflow-x:hidden}
body.modal-open,body.is-loading{overflow:hidden}
a{color:inherit}
button,input{font:inherit}
button{font-family:inherit}
img{max-width:100%}
::selection{background:var(--yellow-500);color:var(--navy-950)}
.container{width:min(1240px,calc(100% - 44px));margin-inline:auto}
.skip-link{position:fixed;left:18px;top:12px;z-index:99999;transform:translateY(-160%);background:#fff;color:#000;padding:10px 15px;border-radius:10px;box-shadow:var(--shadow-md)}
.skip-link:focus{transform:none}

/* animated entrance */
.reveal{opacity:0;transform:translate3d(0,32px,0) scale(.988);filter:blur(7px);transition:opacity .85s cubic-bezier(.2,.8,.2,1),transform .85s cubic-bezier(.2,.8,.2,1),filter .85s ease}
.reveal.is-visible{opacity:1;transform:none;filter:none}

/* Loader */
.site-loader{position:fixed;inset:0;z-index:10000;display:grid;place-items:center;background:radial-gradient(circle at 50% 42%,#0c3776 0,#061a41 32%,#020817 74%);color:#fff;transition:opacity .55s ease,visibility .55s ease}
.site-loader:before{content:"";position:absolute;inset:-30%;background:conic-gradient(from 180deg at 50% 50%,transparent 0 25%,rgba(52,216,255,.06) 34%,transparent 43% 68%,rgba(247,200,20,.05) 74%,transparent 82%);animation:loaderAurora 9s linear infinite}
.loader-grid{position:absolute;inset:0;background-image:linear-gradient(rgba(121,231,255,.055) 1px,transparent 1px),linear-gradient(90deg,rgba(121,231,255,.055) 1px,transparent 1px);background-size:42px 42px;mask-image:radial-gradient(circle at center,#000 0,rgba(0,0,0,.9) 36%,transparent 74%)}
.loader-grid:after{content:"";position:absolute;left:0;right:0;height:1px;top:0;background:linear-gradient(90deg,transparent,var(--cyan-400),transparent);box-shadow:0 0 22px var(--cyan-400);animation:loaderScan 2.5s ease-in-out infinite}
.loader-box{position:relative;width:min(460px,calc(100% - 48px));text-align:center}
.loader-kicker{font-weight:800;letter-spacing:.22em;font-size:.7rem;color:var(--cyan-300)}
.loader-orbit{width:126px;height:126px;margin:28px auto 22px;border:1px solid rgba(255,255,255,.16);border-radius:50%;display:grid;place-items:center;position:relative;background:radial-gradient(circle,rgba(23,121,255,.13),transparent 62%);box-shadow:0 0 70px rgba(52,216,255,.1)}
.loader-orbit:before,.loader-orbit:after{content:"";position:absolute;border-radius:50%;border:1px dashed rgba(52,216,255,.52);inset:12px;animation:spin 5s linear infinite}
.loader-orbit:after{inset:-12px;border-style:solid;border-color:rgba(247,200,20,.18);animation-direction:reverse;animation-duration:8s}
.loader-orbit i{position:absolute;width:9px;height:9px;border-radius:50%;background:var(--cyan-400);top:8px;box-shadow:0 0 20px var(--cyan-400),0 0 38px rgba(52,216,255,.45)}
.loader-orbit b{font-size:1.35rem;letter-spacing:.08em}
.loader-box p{margin:0 0 16px;color:#c5d2e5;font-size:.9rem}
.loader-track{height:4px;background:rgba(255,255,255,.1);border-radius:999px;overflow:hidden;box-shadow:inset 0 0 10px rgba(0,0,0,.3)}
.loader-track i{display:block;width:0;height:100%;background:linear-gradient(90deg,var(--green-400),var(--yellow-400),var(--cyan-400));box-shadow:0 0 16px rgba(52,216,255,.6);transition:width .12s linear}
.loader-box>strong{display:block;margin-top:10px;font-size:.72rem;color:#89a4c6;font-variant-numeric:tabular-nums}
.site-loader.is-done{opacity:0;visibility:hidden}
@keyframes loaderScan{0%{transform:translateY(-10vh);opacity:0}15%{opacity:1}85%{opacity:1}100%{transform:translateY(110vh);opacity:0}}
@keyframes loaderAurora{to{transform:rotate(360deg)}}
@keyframes spin{to{transform:rotate(360deg)}}

/* Header */
.site-header{position:sticky;top:0;z-index:300;background:rgba(2,8,23,.82);backdrop-filter:blur(22px) saturate(150%);border-bottom:1px solid rgba(255,255,255,.09)}
.site-header:after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:1px;background:linear-gradient(90deg,transparent,rgba(52,216,255,.75),rgba(247,200,20,.58),transparent);opacity:.5}
.header-inner{height:78px;display:flex;align-items:center;gap:36px}
.wordmark{text-decoration:none;color:#fff;line-height:.95;display:flex;flex-direction:column;min-width:172px;position:relative;padding-left:17px}
.wordmark:before{content:"";position:absolute;left:0;top:1px;bottom:0;width:4px;border-radius:999px;background:linear-gradient(var(--green-400),var(--yellow-400),var(--cyan-400));box-shadow:0 0 16px rgba(52,216,255,.28)}
.wordmark span{font-size:1.04rem;font-weight:900;letter-spacing:.035em}
.wordmark strong{font-size:.7rem;color:var(--yellow-400);letter-spacing:.14em;font-weight:700}
.main-nav{margin-left:auto;display:flex;align-items:center;gap:30px}
.main-nav a{text-decoration:none;color:#dbe7f5;font-size:.76rem;font-weight:600;letter-spacing:.045em;position:relative;padding:10px 0}
.main-nav a:before{content:"";position:absolute;left:0;right:100%;bottom:2px;height:2px;background:linear-gradient(90deg,var(--yellow-400),var(--cyan-400));transition:right .32s ease}
.main-nav a:hover,.main-nav a:focus-visible{color:#fff}.main-nav a:hover:before,.main-nav a:focus-visible:before{right:0}
.menu-toggle{display:none;margin-left:auto;border:1px solid rgba(255,255,255,.12);background:rgba(255,255,255,.05);color:#fff;font-size:1.35rem;width:44px;height:44px;border-radius:12px}
.scroll-progress{position:absolute;left:0;right:0;bottom:-2px;height:2px;overflow:hidden;pointer-events:none}.scroll-progress i{display:block;height:100%;width:0;background:linear-gradient(90deg,var(--green-400),var(--yellow-400),var(--cyan-400));box-shadow:0 0 10px var(--cyan-400)}

/* Hero — no image/background image, only CSS visual system */
.hero{position:relative;min-height:690px;display:flex;align-items:center;overflow:hidden;background:radial-gradient(circle at 80% 28%,rgba(23,121,255,.22),transparent 25%),radial-gradient(circle at 70% 80%,rgba(20,168,90,.12),transparent 28%),linear-gradient(135deg,#020817 0,#06183a 48%,#08265d 100%);color:#fff;border-bottom:1px solid rgba(255,255,255,.06);--mx:72%;--my:35%}
.hero:before{content:"";position:absolute;inset:0;background:radial-gradient(circle 280px at var(--mx) var(--my),rgba(52,216,255,.13),transparent 66%);pointer-events:none;transition:background .08s linear}
.hero-grid-bg{position:absolute;inset:0;background-image:linear-gradient(rgba(121,231,255,.045) 1px,transparent 1px),linear-gradient(90deg,rgba(121,231,255,.045) 1px,transparent 1px);background-size:48px 48px;mask-image:linear-gradient(to bottom,rgba(0,0,0,.95),transparent 92%)}
.hero-grid-bg:after{content:"";position:absolute;inset:-20%;background:repeating-radial-gradient(ellipse at 78% 50%,transparent 0 62px,rgba(52,216,255,.07) 63px 64px,transparent 65px 118px);transform:rotate(-12deg);animation:heroRings 18s linear infinite}
.hero-inner{position:relative;z-index:3;padding:118px 0 102px;display:grid;grid-template-columns:minmax(0,770px) minmax(300px,1fr);gap:70px;align-items:center;width:100%}
.hero-copy{position:relative}
.hero-kicker{display:inline-flex;align-items:center;gap:10px;font-size:.7rem;font-weight:800;letter-spacing:.2em;color:var(--cyan-300);margin:0 0 20px}
.hero-kicker:before{content:"";width:28px;height:2px;background:linear-gradient(90deg,var(--green-400),var(--yellow-400))}
.hero h1{font-size:clamp(4rem,8.4vw,7.6rem);line-height:.88;letter-spacing:-.065em;margin:0;font-weight:800;max-width:840px;text-wrap:balance}
.hero h1 .hero-accent{display:block;background:linear-gradient(100deg,#fff 3%,#d7f8ff 25%,var(--cyan-300) 55%,var(--yellow-400) 87%);-webkit-background-clip:text;background-clip:text;color:transparent;filter:drop-shadow(0 0 30px rgba(52,216,255,.12))}
.hero-subtitle{font-size:clamp(1rem,1.8vw,1.26rem);max-width:680px;margin:31px 0 34px;color:#b8c9df;font-weight:400;line-height:1.72}
.hero-actions{display:flex;align-items:center;gap:18px;flex-wrap:wrap}
.primary-button{position:relative;display:inline-flex;align-items:center;justify-content:space-between;gap:30px;min-width:245px;text-decoration:none;background:linear-gradient(105deg,var(--yellow-400),#f8b80e);color:#07162f;font-weight:800;font-size:.78rem;letter-spacing:.055em;padding:18px 20px;border-radius:14px;box-shadow:0 16px 40px rgba(247,200,20,.18);overflow:hidden;transition:transform .25s ease,box-shadow .25s ease}
.primary-button:before{content:"";position:absolute;inset:-2px;background:linear-gradient(100deg,transparent 20%,rgba(255,255,255,.6) 48%,transparent 72%);transform:translateX(-120%);transition:transform .65s ease}
.primary-button:hover:before,.primary-button:focus-visible:before{transform:translateX(120%)}
.primary-button:hover,.primary-button:focus-visible{transform:translateY(-3px);box-shadow:0 22px 48px rgba(247,200,20,.28)}
.primary-button span{font-size:1.2rem;line-height:1}
.hero-mini-status{display:inline-flex;align-items:center;gap:8px;color:#8ca7c9;font-size:.7rem;font-weight:600}.hero-mini-status i{width:8px;height:8px;border-radius:50%;background:var(--green-400);box-shadow:0 0 0 5px rgba(57,216,120,.1),0 0 16px rgba(57,216,120,.55);animation:statusPulse 1.8s ease infinite}
.scoreboard{margin:40px 0 0;display:flex;align-items:center;gap:16px;flex-wrap:wrap;color:#91a6c3;font-size:.76rem;font-weight:500}
.scoreboard strong{color:#fff;font-size:1.08rem;font-weight:700;font-variant-numeric:tabular-nums}.scoreboard i{width:4px;height:4px;border-radius:50%;background:var(--yellow-400);font-size:0}
.hero-tech{position:relative;min-height:410px;display:grid;place-items:center}
.tech-orbit{position:absolute;width:min(390px,32vw);aspect-ratio:1;border-radius:50%;border:1px solid rgba(121,231,255,.13);box-shadow:inset 0 0 80px rgba(23,121,255,.05),0 0 80px rgba(52,216,255,.04)}
.tech-orbit:before,.tech-orbit:after{content:"";position:absolute;border-radius:inherit;inset:12%;border:1px dashed rgba(52,216,255,.23);animation:spin 22s linear infinite}.tech-orbit:after{inset:28%;border-style:solid;border-color:rgba(247,200,20,.18);animation-direction:reverse;animation-duration:16s}
.tech-orbit .orbit-dot{position:absolute;width:10px;height:10px;border-radius:50%;background:var(--cyan-400);left:50%;top:-5px;box-shadow:0 0 20px var(--cyan-400)}
.tech-core{position:relative;width:min(210px,18vw);aspect-ratio:1;border-radius:50%;display:grid;place-items:center;background:radial-gradient(circle,rgba(23,121,255,.22),rgba(2,8,23,.65) 58%,transparent 60%);border:1px solid rgba(255,255,255,.14)}
.tech-core:before{content:"BR";font-size:3rem;font-weight:800;letter-spacing:-.06em;background:linear-gradient(135deg,#fff,var(--cyan-300));-webkit-background-clip:text;background-clip:text;color:transparent}
.tech-core:after{content:"27 ESTADOS";position:absolute;bottom:24%;font-size:.55rem;letter-spacing:.19em;color:#7f9cbd;font-weight:600}
.tech-chip{position:absolute;min-width:138px;padding:12px 14px;border:1px solid rgba(255,255,255,.1);background:rgba(4,18,48,.58);backdrop-filter:blur(15px);border-radius:14px;box-shadow:0 18px 40px rgba(0,0,0,.13)}
.tech-chip span{display:block;font-size:.54rem;letter-spacing:.15em;color:#6f8caf;font-weight:700}.tech-chip strong{display:block;color:#fff;font-size:.82rem;margin-top:3px;font-weight:600}.tech-chip--one{left:-16px;top:18%}.tech-chip--two{right:-10px;bottom:18%}.tech-chip:before{content:"";position:absolute;width:7px;height:7px;border-radius:50%;background:var(--green-400);right:10px;top:10px;box-shadow:0 0 12px rgba(57,216,120,.5)}
@keyframes heroRings{to{transform:rotate(348deg)}}
@keyframes statusPulse{50%{opacity:.45;transform:scale(.8)}}

/* Shared section styles */
.map-section,.team-section,.video-section{padding:108px 0;scroll-margin-top:90px;position:relative}
.section-header{display:grid;grid-template-columns:66px 1fr;gap:22px;align-items:start;margin-bottom:40px}
.section-number{display:grid;place-items:center;width:54px;height:54px;border-radius:15px;background:linear-gradient(135deg,var(--yellow-400),#f2b300);color:var(--navy-950);font-size:.82rem;font-weight:800;box-shadow:0 14px 30px rgba(247,200,20,.16)}
.section-header h2{margin:0;font-size:clamp(2.15rem,4vw,3.6rem);line-height:.98;color:var(--navy-900);letter-spacing:-.05em;font-weight:700}
.section-header p{margin:15px 0 0;color:var(--muted);font-size:.98rem;max-width:760px;line-height:1.75}

/* Map */
.map-section{background:radial-gradient(circle at 85% 15%,rgba(23,121,255,.16),transparent 25%),linear-gradient(180deg,#031025,#061a3e 100%);color:#fff;overflow:hidden}
.map-section:before{content:"";position:absolute;inset:0;background-image:linear-gradient(rgba(121,231,255,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(121,231,255,.035) 1px,transparent 1px);background-size:46px 46px;mask-image:linear-gradient(#000,transparent 90%)}
.map-section .container{position:relative;z-index:2}
.map-section .section-header h2{color:#fff}.map-section .section-header p{color:#9eb3cd}
.filter-bar{display:flex;gap:9px;margin:0 0 30px 88px;flex-wrap:wrap}
.filter-button{position:relative;border:1px solid rgba(255,255,255,.12);background:rgba(255,255,255,.055);color:#adc0d8;font-size:.7rem;font-weight:700;letter-spacing:.09em;padding:11px 18px;border-radius:999px;cursor:pointer;transition:.25s ease;overflow:hidden}
.filter-button:hover{color:#fff;border-color:rgba(121,231,255,.38);background:rgba(52,216,255,.08)}
.filter-button.active{background:linear-gradient(105deg,var(--cyan-400),#2aa8ff);border-color:transparent;color:#031129;box-shadow:0 12px 30px rgba(52,216,255,.18)}
.map-layout{display:grid;grid-template-columns:minmax(0,1fr) 350px;gap:24px;align-items:start;position:relative}
.map-card{position:relative;min-height:590px;background:linear-gradient(145deg,rgba(255,255,255,.075),rgba(255,255,255,.025));border:1px solid rgba(255,255,255,.11);border-radius:30px;box-shadow:0 35px 90px rgba(0,0,0,.24);padding:28px 22px 24px;overflow:hidden;backdrop-filter:blur(12px);--mx:50%;--my:50%}
.map-card:before{content:"";position:absolute;inset:0;background:radial-gradient(circle 260px at var(--mx) var(--my),rgba(52,216,255,.105),transparent 67%),linear-gradient(rgba(121,231,255,.032) 1px,transparent 1px),linear-gradient(90deg,rgba(121,231,255,.032) 1px,transparent 1px);background-size:auto,34px 34px,34px 34px;pointer-events:none}
.map-card:after{content:"INTERACTIVE MAP / BR-27";position:absolute;right:25px;top:18px;color:rgba(121,231,255,.32);font-size:.52rem;font-weight:600;letter-spacing:.17em}
.map-tech-line{position:absolute;left:26px;right:26px;top:16px;height:1px;background:linear-gradient(90deg,transparent,var(--cyan-400),var(--yellow-400),transparent);opacity:.6;animation:scanline 4.5s ease-in-out infinite}
@keyframes scanline{0%,100%{transform:scaleX(.16);opacity:.25}50%{transform:scaleX(1);opacity:.8}}
.brazil-svg{display:block;width:min(100%,790px);height:auto;margin:18px auto 0;position:relative;z-index:2;overflow:visible;filter:drop-shadow(0 20px 30px rgba(0,0,0,.2))}
.state-shape{fill:#1b3556;stroke:#49647f;stroke-width:1.5;transition:fill .25s ease,filter .25s ease,opacity .25s ease,transform .25s ease;transform-box:fill-box;transform-origin:center}
.map-state{cursor:pointer;outline:none}
.map-state.is-active .state-shape{fill:#185d48;stroke:#3fd07a;filter:drop-shadow(0 0 4px rgba(57,216,120,.14))}
.map-state.is-active:hover .state-shape,.map-state.is-active:focus .state-shape{fill:#12a35b;stroke:#95ffc0;filter:drop-shadow(0 0 14px rgba(57,216,120,.5));transform:scale(1.012)}
.map-state.is-selected .state-shape{fill:#f1be12;stroke:#ffe77c;filter:drop-shadow(0 0 15px rgba(247,200,20,.45))}
.map-state.is-inactive{cursor:not-allowed}.map-state.is-inactive .state-shape{fill:#142841;stroke:#30465f;opacity:.48}
.state-touch-target{fill:transparent;stroke:transparent;pointer-events:all}
.state-label{font-size:5100px;font-weight:800;text-anchor:middle;dominant-baseline:middle;fill:#9bb0c9;pointer-events:none;paint-order:stroke;stroke:#07172e;stroke-width:1250px;stroke-linejoin:round}
.state-label.is-active{fill:#d9ffe8}.state-label.is-inactive{opacity:.34}.state-label.external{text-anchor:start;font-size:4700px}.state-callout{stroke:#728aa5;stroke-width:680;pointer-events:none}
.map-source{font-size:.6rem;color:#6e86a3;margin:8px 14px 0;position:relative;z-index:2}.map-empty-copy{margin:16px 0 0 88px;color:#9db1c9;font-weight:500;font-size:.78rem}
.state-panel{position:sticky;top:102px;background:linear-gradient(160deg,rgba(13,39,79,.96),rgba(5,20,47,.98));color:#fff;border:1px solid rgba(255,255,255,.12);border-radius:24px;box-shadow:0 30px 80px rgba(0,0,0,.25);padding:26px;max-height:calc(100vh - 128px);overflow:auto;backdrop-filter:blur(20px)}
.state-panel[hidden]{display:none}.state-panel:before{content:"";position:absolute;left:0;right:0;top:0;height:3px;border-radius:24px 24px 0 0;background:linear-gradient(90deg,var(--green-400),var(--yellow-400),var(--cyan-400))}
.state-panel-close{position:absolute;right:14px;top:13px;border:1px solid rgba(255,255,255,.09);background:rgba(255,255,255,.06);color:#fff;border-radius:50%;width:36px;height:36px;cursor:pointer;font-size:1.25rem}
.panel-kicker{font-size:.62rem;font-weight:700;color:var(--cyan-300);letter-spacing:.17em}.state-panel h3{font-size:1.75rem;line-height:1.05;color:#fff;margin:7px 40px 20px 0;letter-spacing:-.03em}
.panel-list{display:grid;gap:10px}.panel-person{display:grid;grid-template-columns:48px 1fr;gap:11px;align-items:center;border:1px solid rgba(255,255,255,.09);border-radius:14px;padding:10px;background:rgba(255,255,255,.045);text-decoration:none;transition:.2s ease}.panel-person:hover{background:rgba(52,216,255,.08);border-color:rgba(52,216,255,.24);transform:translateX(2px)}
.panel-person-photo{width:48px;height:58px;object-fit:cover;border-radius:10px;background:#18304f}.panel-person-photo--fallback{display:grid;place-items:center;color:#9db2ca;font-size:.7rem;font-weight:700}
.panel-person strong{display:block;color:#fff;font-size:.84rem}.panel-person span{display:block;font-size:.67rem;color:#8fa4be;margin-top:2px}.panel-state-link{display:flex;margin-top:20px;width:100%;justify-content:center;border:1px solid rgba(255,255,255,.12);background:rgba(255,255,255,.05);border-radius:12px;padding:12px;font-weight:700;color:#fff;cursor:pointer;font-size:.68rem;letter-spacing:.05em;transition:.2s}.panel-state-link:hover{border-color:var(--cyan-400);background:rgba(52,216,255,.08)}

/* Team */
.team-section{background:linear-gradient(180deg,#f7faff 0,#fff 30%,#f5f8fb 100%);overflow:hidden}
.team-section:before{content:"";position:absolute;right:-300px;top:120px;width:700px;height:700px;border-radius:50%;background:radial-gradient(circle,rgba(23,121,255,.08),transparent 70%);pointer-events:none}
.team-header{margin-bottom:52px}.regions{display:grid;gap:68px}.region-block{scroll-margin-top:98px;position:relative}
.region-heading{display:flex;justify-content:space-between;align-items:end;border-bottom:1px solid #d9e3ed;padding:0 0 16px;margin-bottom:22px;position:relative}
.region-heading:after{content:"";position:absolute;left:0;bottom:-1px;width:120px;height:2px;background:linear-gradient(90deg,var(--green-500),var(--yellow-500),var(--cyan-400))}
.region-heading>div{display:flex;align-items:center;gap:14px}.section-index{display:grid;place-items:center;width:32px;height:32px;border-radius:9px;background:var(--navy-900);color:var(--yellow-400);font-size:.62rem;font-weight:800}.region-heading h3{margin:0;font-size:1.25rem;letter-spacing:.06em;color:var(--navy-900);font-weight:700}.region-heading>strong{font-size:.7rem;color:#7a879a;font-weight:600}
.state-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
.state-block{border:1px solid #dfe7ef;border-radius:22px;padding:18px;background:rgba(255,255,255,.88);box-shadow:0 12px 30px rgba(6,31,69,.045);scroll-margin-top:98px;transition:box-shadow .3s ease,border-color .3s ease,transform .3s ease;position:relative;overflow:hidden}
.state-block:before{content:"";position:absolute;left:0;top:0;width:100%;height:2px;background:linear-gradient(90deg,var(--green-500),transparent 45%,var(--cyan-400));opacity:.45}
.state-block:hover{box-shadow:0 20px 45px rgba(6,31,69,.08);border-color:#cbd9e7}
.state-block.is-highlighted{border-color:var(--yellow-500);box-shadow:0 0 0 4px rgba(247,200,20,.12),0 24px 48px rgba(7,29,72,.1);transform:translateY(-4px)}
.state-block-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:15px}.state-block-head>div{display:flex;align-items:center;gap:11px}
.state-block-head span{display:grid;place-items:center;width:38px;height:38px;border-radius:11px;background:linear-gradient(145deg,var(--navy-800),var(--navy-950));color:#fff;font-size:.66rem;font-weight:800;box-shadow:0 8px 20px rgba(7,29,72,.16)}
.state-block-head h4{margin:0;color:var(--navy-900);font-size:1.02rem;font-weight:700}.state-block-head>strong{font-size:.65rem;color:#8491a3;font-weight:600}
.state-cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:11px}
.candidate-card{position:relative;display:grid;grid-template-columns:86px 1fr;gap:12px;min-height:120px;border:1px solid #e1e9f1;border-radius:17px;background:linear-gradient(150deg,#fff,#fafcff);padding:10px;overflow:hidden;transition:transform .28s cubic-bezier(.2,.8,.2,1),box-shadow .28s ease,border-color .28s ease;transform-style:preserve-3d;isolation:isolate}
.candidate-card:before{content:"";position:absolute;left:-80px;bottom:-100px;width:190px;height:190px;border-radius:50%;background:radial-gradient(circle,rgba(23,121,255,.08),transparent 68%);z-index:-1;transition:.3s ease}.candidate-card:after{content:"";position:absolute;right:0;top:0;width:3px;height:100%;background:linear-gradient(var(--cyan-400),var(--green-400));opacity:.18}
.candidate-card:not(.candidate-card--pending-link):hover,.candidate-card:hover{transform:translateY(-5px);box-shadow:0 18px 34px rgba(7,29,72,.1);border-color:#c6d6e7}.candidate-card:hover:before{transform:scale(1.25);opacity:1}
.candidate-main-link{position:absolute;inset:0;z-index:2;border-radius:inherit}.candidate-main-link:focus-visible{outline:3px solid var(--yellow-500);outline-offset:-3px}
.candidate-photo-wrap{width:86px;height:108px;border-radius:13px;overflow:hidden;background:linear-gradient(145deg,#dbe5ef,#edf3f8);position:relative;box-shadow:0 8px 22px rgba(7,29,72,.09)}
.candidate-photo-wrap>.candidate-photo{position:absolute;inset:0}
.candidate-photo-wrap:after{content:"";position:absolute;inset:0;background:linear-gradient(to top,rgba(2,8,23,.16),transparent 46%);pointer-events:none}
.candidate-photo{width:100%;height:100%;display:block;object-fit:cover;object-position:center 18%;background:#e8edf2;transition:transform .45s cubic-bezier(.2,.8,.2,1)}.candidate-card:hover .candidate-photo{transform:scale(1.045)}
.candidate-photo--placeholder{display:grid;place-items:center;width:100%;height:100%;background:linear-gradient(135deg,#e2eaf2,#f1f5f8);color:#718096;font-weight:800;font-size:1rem}
.candidate-content{min-width:0;padding:2px 0 0}.candidate-type{display:inline-flex;align-items:center;gap:5px;border-radius:999px;padding:4px 8px;background:#edf9f2;color:#08723b;font-size:.53rem;font-weight:800;letter-spacing:.08em}.candidate-type:before{content:"";width:5px;height:5px;border-radius:50%;background:var(--green-500)}
.candidate-card[data-cargo="Governo"] .candidate-type{background:#eef5ff;color:#0b58ad}.candidate-card[data-cargo="Governo"] .candidate-type:before{background:var(--blue-500)}
.candidate-content h5{font-size:.9rem;line-height:1.12;margin:8px 0 7px;color:var(--navy-900);font-weight:700;letter-spacing:-.02em}.candidate-facts{display:flex;gap:7px;flex-wrap:wrap}.candidate-facts span{font-size:.61rem;color:#6f7d90;font-weight:500}.candidate-facts span:first-child{font-weight:700;color:#45566d}
.candidate-socials{grid-column:1/-1;display:flex;gap:6px;position:relative;z-index:4;padding-top:1px}.social-icon{display:grid;place-items:center;width:27px;height:27px;border-radius:8px;background:#eef3f8;text-decoration:none;font-size:.59rem;font-weight:800;color:#26405f;transition:.2s ease}.social-icon:hover,.social-icon:focus-visible{background:var(--navy-900);color:#fff;transform:translateY(-2px)}
.candidate-card[hidden],.state-block[hidden],.region-block[hidden]{display:none!important}

/* Video */
.video-section{background:radial-gradient(circle at 20% 10%,rgba(20,168,90,.12),transparent 30%),linear-gradient(135deg,#020817,#061a42);color:#fff;overflow:hidden}
.video-section:before{content:"";position:absolute;inset:0;background-image:linear-gradient(rgba(121,231,255,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(121,231,255,.035) 1px,transparent 1px);background-size:44px 44px;mask-image:linear-gradient(90deg,#000,transparent 85%)}
.video-layout{display:grid;grid-template-columns:.8fr 1.2fr;gap:58px;align-items:center;position:relative;z-index:2}.video-layout .section-header{margin:0}.video-section .section-header h2{color:#fff}.video-section .section-header p{color:#9bb0ca}
.video-shell{aspect-ratio:16/9;border-radius:26px;overflow:hidden;background:#04142f;box-shadow:0 35px 80px rgba(0,0,0,.35);position:relative;border:1px solid rgba(255,255,255,.12)}
.video-shell:before{content:"";position:absolute;inset:-1px;border-radius:inherit;padding:1px;background:linear-gradient(120deg,rgba(52,216,255,.6),transparent 32%,rgba(247,200,20,.42));-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude;pointer-events:none;z-index:4}
.video-shell iframe{width:100%;height:100%;border:0}.video-placeholder{position:absolute;inset:0;display:grid;place-items:center;background:radial-gradient(circle at center,rgba(23,121,255,.15),transparent 36%),linear-gradient(rgba(52,216,255,.045) 1px,transparent 1px),linear-gradient(90deg,rgba(52,216,255,.045) 1px,transparent 1px);background-size:auto,32px 32px,32px 32px}
.video-placeholder:after{content:"";position:absolute;width:66%;height:1px;background:linear-gradient(90deg,transparent,var(--cyan-400),var(--yellow-400),transparent);animation:videoScan 4s ease-in-out infinite;box-shadow:0 0 14px rgba(52,216,255,.5)}.video-placeholder span{position:relative;z-index:2;display:grid;place-items:center;width:86px;height:86px;border-radius:50%;border:1px solid rgba(255,255,255,.62);background:rgba(255,255,255,.045);color:#fff;font-size:1.7rem;padding-left:5px;box-shadow:0 0 0 12px rgba(255,255,255,.025),0 0 40px rgba(52,216,255,.1)}.video-placeholder i{position:absolute;width:210px;height:210px;border:1px dashed rgba(52,216,255,.18);border-radius:50%;animation:spin 14s linear infinite}@keyframes videoScan{0%,100%{transform:translateY(-125px);opacity:.1}50%{transform:translateY(125px);opacity:1}}

/* Footer */
.site-footer{position:relative;background:#010713;color:#d9e4f2;padding:74px 0 28px;border-top:1px solid rgba(255,255,255,.06);overflow:hidden}.site-footer:before{content:"";position:absolute;left:-10%;right:-10%;top:0;height:1px;background:linear-gradient(90deg,transparent,var(--green-400),var(--yellow-400),var(--cyan-400),transparent);opacity:.7}.footer-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:38px;position:relative}.site-footer h2{font-size:.66rem;text-transform:uppercase;letter-spacing:.14em;color:#fff;margin:0 0 16px;font-weight:700}.site-footer nav{display:flex;flex-direction:column;gap:10px}.site-footer a,.site-footer button{color:#91a4bd;text-decoration:none;font-size:.72rem;background:none;border:0;padding:0;text-align:left;cursor:pointer;font-weight:400}.site-footer a:hover,.site-footer button:hover{color:#fff}.site-footer ul{list-style:none;padding:0;margin:0;display:grid;gap:10px}.site-footer li{font-size:.7rem;display:grid;gap:2px}.site-footer li span{color:#647d9a;font-size:.61rem}.site-footer li strong,.site-footer li em{font-style:normal;font-weight:500}.official-socials span{color:#617893}.footer-strip{margin-top:50px;padding-top:22px;border-top:1px solid rgba(255,255,255,.08);display:grid;gap:7px;color:#607793;font-size:.61rem}

/* consent */
.consent{position:fixed;inset:0;z-index:9000;display:grid;align-items:end}.consent[hidden]{display:none}.consent-backdrop{position:absolute;inset:0;background:rgba(0,5,15,.62);backdrop-filter:blur(8px)}.consent-card{position:relative;width:min(1080px,calc(100% - 36px));margin:0 auto 22px;background:rgba(255,255,255,.98);border:1px solid rgba(255,255,255,.7);border-radius:24px;box-shadow:0 30px 90px rgba(0,0,0,.28);padding:28px;display:grid;grid-template-columns:1.1fr .9fr;gap:26px}.consent-card h2{margin:4px 0 10px;color:var(--navy-900);font-size:1.65rem;letter-spacing:-.035em}.consent-card p{margin:0;color:#68768a;font-size:.82rem}.consent-buttons{display:flex;gap:8px;flex-wrap:wrap;margin-top:20px}.consent-buttons button,.consent-save{border:1px solid #cfdae6;background:#fff;border-radius:11px;padding:11px 14px;font-size:.65rem;font-weight:700;cursor:pointer;transition:.2s}.consent-buttons button:first-child,.consent-save{background:var(--navy-900);color:#fff;border-color:var(--navy-900)}.consent-buttons button:hover,.consent-save:hover{transform:translateY(-1px);box-shadow:0 10px 22px rgba(7,29,72,.1)}.consent-customize{display:grid;gap:8px}.consent-customize[hidden]{display:none}.consent-customize label{display:flex;justify-content:space-between;gap:16px;align-items:center;border:1px solid #e1e8ef;border-radius:12px;padding:10px 12px}.consent-customize strong{display:block;font-size:.71rem;color:var(--navy-900)}.consent-customize small{display:block;font-size:.61rem;color:#758297;margin-top:2px}.consent-customize input{accent-color:var(--green-500)}

/* accessibility */
.accessibility-launcher{position:fixed;left:18px;bottom:18px;z-index:7000;border:1px solid rgba(255,255,255,.1);background:rgba(4,18,47,.94);color:#fff;border-radius:999px;padding:11px 15px;font-size:.65rem;font-weight:700;box-shadow:0 12px 30px rgba(7,29,72,.22);cursor:pointer;backdrop-filter:blur(10px)}.accessibility-panel{position:fixed;left:18px;bottom:66px;z-index:7000;width:min(340px,calc(100% - 36px));background:#fff;border:1px solid #d7e1eb;border-radius:18px;box-shadow:var(--shadow-lg);padding:15px}.accessibility-panel[hidden]{display:none}.accessibility-head{display:flex;justify-content:space-between;align-items:center;color:var(--navy-900);margin-bottom:11px}.accessibility-head button{border:0;background:#eef3f6;border-radius:50%;width:32px;height:32px;cursor:pointer}.accessibility-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px}.accessibility-actions button{border:1px solid #d3dee9;background:#fff;border-radius:10px;padding:9px;font-size:.66rem;font-weight:600;cursor:pointer}.accessibility-actions button:hover{border-color:var(--blue-500);color:var(--blue-600)}

/* legal */
.legal-page{min-height:100vh;background:linear-gradient(135deg,#f7faff,#fff)}.legal-shell{width:min(780px,calc(100% - 42px));margin:0 auto;padding:90px 0}.legal-shell>a{display:inline-flex;text-decoration:none;color:var(--blue-600);font-weight:600;font-size:.8rem;margin-bottom:40px}.legal-shell h1{font-size:clamp(2.5rem,6vw,4.4rem);line-height:.95;letter-spacing:-.055em;color:var(--navy-900);margin:10px 0 22px}.legal-shell p{color:#68768a;line-height:1.75}

/* Focus */
:focus-visible{outline:3px solid var(--yellow-400);outline-offset:3px}

/* accessibility state overrides */
body.high-contrast{background:#000;color:#fff}body.high-contrast .hero,body.high-contrast .map-section,body.high-contrast .team-section,body.high-contrast .video-section,body.high-contrast .state-block,body.high-contrast .candidate-card,body.high-contrast .map-card{background:#000!important;color:#fff!important}body.high-contrast h1,body.high-contrast h2,body.high-contrast h3,body.high-contrast h4,body.high-contrast h5,body.high-contrast p,body.high-contrast span,body.high-contrast strong{color:#fff!important}body.high-contrast a,body.high-contrast button{outline-color:#ff0}body.text-spacing{letter-spacing:.075em;word-spacing:.11em;line-height:1.8}body.highlight-links a{text-decoration:underline!important;text-decoration-thickness:2px!important;text-underline-offset:3px!important}

/* Responsive */
@media(max-width:1080px){
  .hero-inner{grid-template-columns:1fr .7fr;gap:30px}.tech-chip--one{left:0}.tech-chip--two{right:0}.map-layout{grid-template-columns:minmax(0,1fr) 310px}.state-cards{grid-template-columns:1fr}.candidate-card{grid-template-columns:82px 1fr}.candidate-photo-wrap{width:82px;height:104px}
}
@media(max-width:980px){
  .header-inner{height:70px}.menu-toggle{display:block}.main-nav{display:none;position:absolute;left:18px;right:18px;top:76px;margin:0;padding:12px;background:rgba(3,14,35,.97);border:1px solid rgba(255,255,255,.1);border-radius:16px;box-shadow:0 22px 50px rgba(0,0,0,.25);flex-direction:column;align-items:stretch;gap:0}.main-nav.open{display:flex}.main-nav a{padding:12px}.main-nav a:before{display:none}
  .hero{min-height:auto}.hero-inner{grid-template-columns:1fr;padding:100px 0 88px}.hero-copy{max-width:800px}.hero-tech{min-height:280px}.tech-orbit{width:290px}.tech-core{width:155px}.tech-chip--one{left:14%;top:12%}.tech-chip--two{right:14%;bottom:10%}
  .map-layout{grid-template-columns:1fr}.map-card{min-height:500px}.state-panel{position:fixed;z-index:5000;left:0;right:0;bottom:0;top:auto;max-height:min(72vh,680px);border-radius:24px 24px 0 0;padding:28px 22px 24px;box-shadow:0 -24px 80px rgba(0,0,0,.34);animation:sheetUp .3s cubic-bezier(.2,.8,.2,1)}@keyframes sheetUp{from{transform:translateY(100%);opacity:.4}to{transform:none;opacity:1}}
  .state-list{grid-template-columns:1fr}.video-layout{grid-template-columns:1fr;gap:34px}.footer-grid{grid-template-columns:1fr 1fr}.consent-card{grid-template-columns:1fr}
}
@media(max-width:760px){
  .container{width:min(100% - 30px,1240px)}.hero-inner{padding:82px 0 78px}.hero h1{font-size:clamp(3.45rem,16vw,5.4rem)}.hero-subtitle{font-size:.97rem;line-height:1.65}.hero-tech{min-height:230px}.tech-orbit{width:230px}.tech-core{width:125px}.tech-core:before{font-size:2.2rem}.tech-chip{min-width:122px;padding:10px 12px}.tech-chip--one{left:2%}.tech-chip--two{right:2%}.scoreboard{gap:11px;margin-top:32px}
  .map-section,.team-section,.video-section{padding:82px 0}.section-header{grid-template-columns:48px 1fr;gap:15px}.section-number{width:44px;height:44px;border-radius:12px}.section-header h2{font-size:2.35rem}.filter-bar{margin-left:0}.map-card{padding:18px 8px 20px;min-height:420px;border-radius:22px}.map-card:after{display:none}.map-source{margin-left:12px}.map-empty-copy{margin-left:0}
  .state-block{padding:14px}.state-cards{grid-template-columns:1fr}.candidate-card{grid-template-columns:82px 1fr;min-height:115px}.candidate-photo-wrap{width:82px;height:104px}.region-heading{align-items:center}.footer-grid{grid-template-columns:1fr}.footer-strip{margin-top:38px}.consent{align-items:end}.consent-card{width:calc(100% - 20px);margin-bottom:10px;border-radius:20px;padding:20px}.consent-buttons{display:grid;grid-template-columns:1fr}.accessibility-launcher{font-size:0;width:46px;height:46px;padding:0}.accessibility-launcher:after{content:"A+";font-size:.72rem;font-weight:800}.vw-access-button{transform:scale(.86)!important;transform-origin:right bottom!important}
}
@media(max-width:460px){
  .wordmark{min-width:150px}.hero-actions{display:grid;grid-template-columns:1fr}.primary-button{width:100%}.hero-mini-status{justify-content:center}.hero-tech{min-height:205px}.tech-chip{display:none}.tech-orbit{width:205px}.tech-core{width:116px}.section-header h2{font-size:2rem}.section-header p{font-size:.86rem}.candidate-card{grid-template-columns:76px 1fr}.candidate-photo-wrap{width:76px;height:98px}.candidate-content h5{font-size:.86rem}.state-block-head>strong{display:none}.filter-button{padding:10px 13px}.video-placeholder span{width:70px;height:70px}
}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}.reveal{opacity:1;transform:none;filter:none}.candidate-card:hover{transform:none!important}}

/* Filter transition */
.map-card.is-filtering{animation:filterPulse .42s cubic-bezier(.2,.8,.2,1)}
.team-section.is-filtering .regions{animation:filterSwap .42s cubic-bezier(.2,.8,.2,1)}
@keyframes filterPulse{0%{filter:brightness(1)}45%{filter:brightness(1.14);box-shadow:0 35px 100px rgba(23,121,255,.2)}100%{filter:brightness(1)}}
@keyframes filterSwap{0%{opacity:.72;transform:translateY(9px)}100%{opacity:1;transform:none}}
@media(prefers-reduced-motion:reduce){.map-card.is-filtering,.team-section.is-filtering .regions{animation:none!important}}

/* UX refinement: hero breathing room + profile modal */
@media(min-width:761px){
  .hero-inner{padding-left:clamp(34px,4.2vw,72px);padding-right:clamp(34px,4.2vw,72px)}
  .header-inner{padding-left:clamp(12px,2vw,28px);padding-right:clamp(12px,2vw,28px)}
}

.panel-person{width:100%;font-family:inherit;color:inherit;text-align:left;cursor:pointer}
.panel-person em{display:block;margin-top:6px;color:var(--cyan-300);font-size:.56rem;font-style:normal;font-weight:700;letter-spacing:.08em}
.candidate-card{cursor:pointer}
.candidate-content h5{transition:color .2s ease}
.candidate-card:hover .candidate-content h5,.candidate-card:focus-visible .candidate-content h5{color:var(--blue-600)}
.candidate-profile-hint{display:inline-flex;align-items:center;gap:6px;margin-top:8px;color:#6d83a1;font-size:.55rem;font-weight:700;letter-spacing:.08em;transition:.2s ease}
.candidate-profile-hint b{font-size:.72rem}.candidate-card:hover .candidate-profile-hint{color:var(--blue-600);transform:translateX(2px)}

.profile-modal{position:fixed;inset:0;z-index:8500;display:grid;place-items:center;padding:28px;animation:profileFade .24s ease both}
.profile-modal[hidden]{display:none}.profile-modal.is-closing{animation:profileFadeOut .22s ease both}
.profile-modal-backdrop{position:absolute;inset:0;background:rgba(1,7,19,.76);backdrop-filter:blur(15px) saturate(125%)}
.profile-modal-card{position:relative;z-index:2;width:min(900px,100%);max-height:min(760px,calc(100vh - 56px));overflow:auto;display:grid;grid-template-columns:minmax(260px,.82fr) minmax(0,1.18fr);background:linear-gradient(145deg,#071a3d 0,#09265a 42%,#06142f 100%);color:#fff;border:1px solid rgba(121,231,255,.18);border-radius:30px;box-shadow:0 44px 120px rgba(0,0,0,.55),0 0 70px rgba(52,216,255,.09);animation:profileCardIn .36s cubic-bezier(.2,.8,.2,1) both;overflow:hidden}
.profile-modal-card:before{content:"";position:absolute;left:0;right:0;top:0;height:3px;background:linear-gradient(90deg,var(--green-400),var(--yellow-400),var(--cyan-400));z-index:5}
.profile-modal-card:after{content:"";position:absolute;inset:0;pointer-events:none;background-image:linear-gradient(rgba(121,231,255,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(121,231,255,.035) 1px,transparent 1px);background-size:38px 38px;mask-image:linear-gradient(90deg,#000,transparent 72%)}
.profile-modal-close{position:absolute;right:18px;top:18px;z-index:8;width:42px;height:42px;border-radius:50%;border:1px solid rgba(255,255,255,.14);background:rgba(4,15,38,.7);color:#fff;font-size:1.55rem;line-height:1;cursor:pointer;backdrop-filter:blur(10px);transition:.2s ease}.profile-modal-close:hover{transform:rotate(8deg);border-color:var(--cyan-400);background:rgba(52,216,255,.12)}
.profile-visual{position:relative;min-height:520px;background:radial-gradient(circle at 50% 26%,rgba(52,216,255,.2),transparent 34%),linear-gradient(155deg,#0c3474,#06142f);overflow:hidden}
.profile-visual:after{content:"";position:absolute;inset:0;background:linear-gradient(to top,rgba(2,8,23,.88) 0,transparent 45%);pointer-events:none}
.profile-photo-wrap{position:absolute;inset:0}.profile-photo{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 18%}.profile-photo--fallback{display:grid;place-items:center;background:linear-gradient(145deg,#0e346f,#07152f);color:#7894b6;font-size:4rem;font-weight:800}
.profile-cargo{position:absolute;z-index:3;left:24px;bottom:24px;display:inline-flex;padding:8px 12px;border:1px solid rgba(255,255,255,.16);border-radius:999px;background:rgba(3,14,36,.68);backdrop-filter:blur(12px);font-size:.63rem;font-weight:700;letter-spacing:.13em;color:var(--cyan-300)}
.profile-content{position:relative;z-index:3;padding:62px 52px 46px;align-self:center}.profile-kicker{margin:0 0 12px;color:var(--cyan-300);font-size:.65rem;font-weight:700;letter-spacing:.16em}.profile-content h2{margin:0;font-size:clamp(2.2rem,4.2vw,4rem);line-height:.96;letter-spacing:-.055em;font-weight:700;text-wrap:balance}.profile-party{margin:14px 0 28px;color:#9bb0ca;font-size:1rem;font-weight:500}.profile-facts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-bottom:26px}.profile-fact{padding:13px 14px;border:1px solid rgba(255,255,255,.09);border-radius:14px;background:rgba(255,255,255,.045)}.profile-fact small{display:block;color:#6f8eb4;font-size:.54rem;font-weight:700;letter-spacing:.13em}.profile-fact strong{display:block;margin-top:4px;color:#fff;font-size:.83rem;font-weight:600}.profile-socials{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 24px}.profile-social{display:inline-flex;align-items:center;gap:8px;padding:9px 12px;border:1px solid rgba(255,255,255,.11);border-radius:999px;text-decoration:none;color:#cbd9e9;font-size:.66rem;font-weight:600;transition:.2s ease}.profile-social span{display:grid;place-items:center;width:24px;height:24px;border-radius:50%;background:rgba(52,216,255,.1);color:var(--cyan-300);font-size:.58rem;font-weight:800}.profile-social:hover{border-color:rgba(52,216,255,.42);background:rgba(52,216,255,.08);color:#fff;transform:translateY(-2px)}.profile-empty{color:#879db8;font-size:.75rem}.profile-primary{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-top:18px;padding:15px 17px;border-radius:13px;background:linear-gradient(105deg,var(--yellow-400),#f4b90d);color:#07162f;text-decoration:none;font-size:.68rem;font-weight:800;letter-spacing:.055em;box-shadow:0 14px 32px rgba(247,200,20,.14);transition:.22s}.profile-primary:hover{transform:translateY(-2px);box-shadow:0 18px 38px rgba(247,200,20,.23)}.profile-primary span{font-size:1rem}.profile-modal.is-closing .profile-modal-card{animation:profileCardOut .2s ease both}
@keyframes profileFade{from{opacity:0}to{opacity:1}}@keyframes profileFadeOut{to{opacity:0}}@keyframes profileCardIn{from{opacity:0;transform:translateY(28px) scale(.97)}to{opacity:1;transform:none}}@keyframes profileCardOut{to{opacity:0;transform:translateY(16px) scale(.985)}}

@media(max-width:760px){
  .hero-inner{padding-left:10px;padding-right:10px}
  .profile-modal{padding:12px;align-items:end}.profile-modal-card{grid-template-columns:1fr;max-height:calc(100vh - 24px);border-radius:24px}.profile-visual{min-height:310px}.profile-content{padding:34px 24px 28px}.profile-content h2{font-size:2.45rem}.profile-facts{grid-template-columns:1fr 1fr}.profile-modal-close{right:12px;top:12px}.profile-cargo{left:18px;bottom:18px}
}
@media(max-width:460px){.profile-visual{min-height:265px}.profile-content{padding:28px 18px 22px}.profile-content h2{font-size:2.05rem}.profile-facts{grid-template-columns:1fr}.profile-social{font-size:.61rem}}
@media(prefers-reduced-motion:reduce){.profile-modal,.profile-modal-card,.profile-modal.is-closing,.profile-modal.is-closing .profile-modal-card{animation:none!important}}

/* =========================================================
   VISUAL / LAYOUT REFINEMENT — AUG 2026
   Cleaner header, waving Brazil flag, centered interactive map,
   resilient candidate cards and corrected profile modal grid.
   ========================================================= */

/* remove numeric visual markers from every content section */
.section-number,.section-index{display:none!important}
.section-header{display:block;max-width:880px;margin-bottom:38px}
.section-header>div{min-width:0}
.filter-bar{margin-left:0}
.map-empty-copy{margin-left:0}

/* Header: compact, transparent-tech and properly aligned */
.site-header{background:rgba(2,10,27,.76);border-bottom:1px solid rgba(121,231,255,.11);box-shadow:0 10px 38px rgba(0,0,0,.12)}
.header-inner{height:76px;justify-content:space-between;gap:34px;padding-inline:4px}
.wordmark{min-width:0;padding:0;display:flex;flex-direction:row;align-items:center;gap:11px;line-height:1;text-decoration:none}
.wordmark:before{display:none}
.brand-mark{position:relative;display:grid;gap:2px;width:27px;transform:skewX(-13deg)}
.brand-mark b{display:block;height:5px;border-radius:1px 6px 6px 1px}
.brand-mark b:nth-child(1){width:27px;background:var(--green-400)}
.brand-mark b:nth-child(2){width:22px;background:var(--yellow-400)}
.brand-mark b:nth-child(3){width:17px;background:var(--cyan-400)}
.brand-copy{display:flex;flex-direction:column;gap:2px}
.wordmark .brand-copy strong{font-size:1.03rem;line-height:.94;color:#fff;font-weight:900;letter-spacing:.02em}
.wordmark .brand-copy em{font-style:normal;font-size:.57rem;line-height:1;color:var(--yellow-400);font-weight:800;letter-spacing:.155em}
.main-nav{margin-left:auto;gap:5px;padding:5px;border:1px solid rgba(255,255,255,.075);background:rgba(255,255,255,.035);border-radius:999px}
.main-nav a{padding:9px 15px;border-radius:999px;color:#adc0d7;font-size:.69rem;letter-spacing:.02em;transition:background .22s ease,color .22s ease,transform .22s ease}
.main-nav a:before{display:none}
.main-nav a:hover,.main-nav a:focus-visible{background:rgba(52,216,255,.09);color:#fff;transform:translateY(-1px)}

/* Hero illustration: Brazil flag with simulated cloth motion */
.hero-tech.hero-flag-stage{min-height:450px;perspective:1000px;place-items:center;isolation:isolate}
.hero-flag-stage .tech-chip{z-index:8}
.flag-glow{position:absolute;width:440px;height:330px;border-radius:50%;background:radial-gradient(circle,rgba(20,168,90,.20),rgba(23,121,255,.11) 42%,transparent 72%);filter:blur(10px);animation:flagGlow 5s ease-in-out infinite}
.flag-pole{position:absolute;left:5%;top:8%;bottom:5%;width:5px;border-radius:5px;background:linear-gradient(90deg,#43556d,#b6c3d1 42%,#34455c 75%);box-shadow:0 0 20px rgba(0,0,0,.25);z-index:2}
.flag-pole:before{content:"";position:absolute;width:17px;height:17px;border-radius:50%;left:50%;top:-7px;transform:translateX(-50%);background:radial-gradient(circle at 35% 30%,#fff3ad,#d2a314 55%,#6d5310);box-shadow:0 0 18px rgba(247,200,20,.22)}
.flag-pole i{position:absolute;left:3px;top:52px;width:32px;height:1px;background:rgba(255,255,255,.42)}
.brazil-flag{position:relative;z-index:3;width:min(430px,31vw);aspect-ratio:10/7;margin-left:46px;background:linear-gradient(110deg,#087d3d,#11a655 48%,#08763a);clip-path:polygon(0 1.5%,97% 5%,100% 91%,4% 99%);transform-origin:left center;box-shadow:0 34px 70px rgba(0,0,0,.24);animation:flagWave 4.2s cubic-bezier(.45,.05,.55,.95) infinite;overflow:hidden}
.brazil-flag:before{content:"";position:absolute;inset:-8%;background:repeating-linear-gradient(90deg,rgba(255,255,255,.10) 0,transparent 8%,rgba(0,0,0,.13) 16%,transparent 24%);mix-blend-mode:soft-light;opacity:.72;animation:flagFabric 3.1s linear infinite}
.flag-yellow{position:absolute;inset:14% 12%;background:linear-gradient(120deg,#ffdc32,#f5c711 62%,#dcae07);clip-path:polygon(50% 0,100% 50%,50% 100%,0 50%);filter:drop-shadow(0 6px 13px rgba(0,0,0,.10))}
.flag-blue{position:absolute;left:50%;top:50%;width:34%;aspect-ratio:1;border-radius:50%;transform:translate(-50%,-50%);background:radial-gradient(circle at 40% 33%,#1957a5,#082c74 64%,#051d4e);box-shadow:inset 0 0 18px rgba(0,0,0,.24)}
.flag-blue:after{content:"";position:absolute;left:9%;right:8%;top:47%;height:9%;border-radius:50%;border-top:4px solid rgba(255,255,255,.92);transform:rotate(8deg)}
.flag-blue span,.flag-blue span:before,.flag-blue span:after{position:absolute;width:3px;height:3px;border-radius:50%;background:#fff;box-shadow:18px -12px 0 #fff,-16px 9px 0 #fff,29px 14px 0 #fff,-27px -14px 0 #fff,7px 25px 0 #fff}
.flag-blue span{left:48%;top:34%}.flag-blue span:before,.flag-blue span:after{content:""}.flag-blue span:before{left:-31px;top:17px}.flag-blue span:after{left:21px;top:28px}
.flag-light{position:absolute;inset:0;background:linear-gradient(102deg,transparent 0 18%,rgba(255,255,255,.18) 29%,transparent 40% 62%,rgba(255,255,255,.1) 72%,transparent 83%);transform:translateX(-25%);animation:flagLight 3.3s ease-in-out infinite;mix-blend-mode:overlay}
@keyframes flagWave{0%,100%{transform:perspective(850px) rotateY(-8deg) rotateX(1deg) skewY(-1.5deg) scaleY(.99)}25%{transform:perspective(850px) rotateY(-3deg) rotateX(-1deg) skewY(1.4deg) scaleY(1.018)}50%{transform:perspective(850px) rotateY(-10deg) rotateX(1.4deg) skewY(-.7deg) scaleY(.985)}75%{transform:perspective(850px) rotateY(-5deg) rotateX(-.5deg) skewY(1deg) scaleY(1.012)}}
@keyframes flagFabric{0%{transform:translateX(-12%)}100%{transform:translateX(12%)}}
@keyframes flagLight{0%,100%{transform:translateX(-42%);opacity:.45}50%{transform:translateX(28%);opacity:.82}}
@keyframes flagGlow{50%{transform:scale(1.08);opacity:.72}}

/* Map: centered until a state is selected; then shifts left to reveal details */
.map-layout{position:relative;display:flex;justify-content:center;align-items:flex-start;min-height:610px;gap:0}
.map-card{flex:0 1 820px;width:min(820px,100%);min-height:590px;margin-inline:auto;transition:transform .48s cubic-bezier(.2,.8,.2,1),width .48s cubic-bezier(.2,.8,.2,1),box-shadow .35s ease}
.map-layout.has-selection .map-card{transform:translateX(-190px)}
.state-panel{position:absolute;right:0;top:0;width:350px;max-width:350px;opacity:1;transform:translateX(0);transition:opacity .32s ease,transform .4s cubic-bezier(.2,.8,.2,1)}
.state-panel[hidden]{display:block;visibility:hidden;pointer-events:none;opacity:0;transform:translateX(28px)}
.brazil-svg{width:min(100%,720px)}

/* Region headings: no numbering */
.region-heading>div{display:block}.region-heading h3{font-size:1.35rem}

/* Candidate cards: resilient content, no text collisions */
.state-cards{grid-template-columns:repeat(auto-fit,minmax(230px,1fr));align-items:stretch}
.candidate-card{grid-template-columns:78px minmax(0,1fr);grid-template-rows:auto auto;min-height:118px;gap:10px 12px;padding:10px;align-items:start}
.candidate-photo-wrap{width:78px;height:104px}
.candidate-content{min-width:0;overflow:hidden;padding-right:2px}
.candidate-content h5{font-size:.88rem;line-height:1.18;margin:7px 0 6px;overflow-wrap:anywhere;word-break:normal;text-wrap:pretty}
.candidate-facts{display:flex;align-items:center;gap:5px 8px;min-width:0}
.candidate-facts span{white-space:normal;overflow-wrap:anywhere;line-height:1.3}
.candidate-profile-hint{white-space:nowrap;max-width:100%}
.candidate-socials{grid-row:2;grid-column:1/-1;align-self:end;min-width:0;flex-wrap:wrap}

/* Profile modal: fix the actual grid ownership so information cannot fall into a blank column */
.profile-modal-card{display:block;width:min(940px,100%);overflow:hidden}
#profileModalBody{display:grid;grid-template-columns:minmax(300px,.84fr) minmax(0,1.16fr);width:100%;min-height:560px;max-height:min(780px,calc(100vh - 56px));overflow:auto}
.profile-visual{min-height:560px}
.profile-content{min-width:0;align-self:center;padding:58px 48px 42px;overflow-wrap:anywhere}
.profile-content h2{font-size:clamp(2.2rem,4vw,3.7rem);max-width:100%;overflow-wrap:anywhere}
.profile-facts{grid-template-columns:repeat(2,minmax(0,1fr))}
.profile-fact{min-width:0}.profile-fact strong{overflow-wrap:anywhere}

@media(max-width:1180px) and (min-width:981px){
  .map-card{flex-basis:700px;width:700px}
  .map-layout.has-selection .map-card{transform:translateX(-155px)}
  .state-panel{width:310px;max-width:310px}
  .brazil-svg{width:min(100%,650px)}
  .brazil-flag{width:min(360px,31vw)}
}

@media(max-width:980px){
  .main-nav{padding:0;border:0;background:rgba(3,14,35,.98);border-radius:16px}
  .map-layout{display:block;min-height:0}
  .map-card,.map-layout.has-selection .map-card{width:100%;max-width:820px;transform:none;margin-inline:auto}
  .state-panel{position:fixed;width:auto;max-width:none;left:0;right:0;top:auto;bottom:0;opacity:1;transform:none}
  .state-panel[hidden]{display:none}
  .hero-flag-stage{min-height:330px}.brazil-flag{width:min(430px,72vw);margin-left:30px}
}

@media(max-width:760px){
  .header-inner{height:68px;padding-inline:0}.wordmark .brand-copy strong{font-size:.9rem}.wordmark .brand-copy em{font-size:.51rem}.brand-mark{width:23px}.brand-mark b:nth-child(1){width:23px}.brand-mark b:nth-child(2){width:19px}.brand-mark b:nth-child(3){width:15px}
  .section-header{margin-bottom:30px}.section-header h2{font-size:clamp(2rem,9vw,2.6rem)}
  .hero-flag-stage{min-height:280px}.flag-pole{left:2%}.brazil-flag{width:min(390px,82vw);margin-left:26px}
  #profileModalBody{grid-template-columns:1fr;max-height:calc(100vh - 24px);min-height:0}.profile-visual{min-height:300px}.profile-content{padding:32px 24px 28px}.profile-content h2{font-size:2.35rem}
  .state-cards{grid-template-columns:1fr}.candidate-card{grid-template-columns:76px minmax(0,1fr)}
}

@media(max-width:460px){
  .brazil-flag{width:84vw}.flag-pole{display:none}.hero-flag-stage .tech-chip{display:none}
  .profile-visual{min-height:255px}.profile-content{padding:27px 18px 22px}.profile-content h2{font-size:2rem}.profile-facts{grid-template-columns:1fr}
}

@media(prefers-reduced-motion:reduce){
  .brazil-flag,.brazil-flag:before,.flag-light,.flag-glow{animation:none!important}
  .map-card,.state-panel{transition:none!important}
}


/* =========================================================
   HEADER V1 — green at top, blue on scroll, compact context
   ========================================================= */
.site-header{
  background:linear-gradient(100deg,rgba(3,54,37,.97),rgba(4,69,44,.94) 52%,rgba(3,49,39,.96))!important;
  border-bottom:1px solid rgba(103,255,171,.14)!important;
  box-shadow:0 8px 28px rgba(0,0,0,.12)!important;
  transition:background .38s ease,border-color .38s ease,box-shadow .38s ease,backdrop-filter .38s ease;
}
.site-header.is-scrolled{
  background:linear-gradient(105deg,rgba(3,18,49,.96),rgba(5,40,91,.95) 55%,rgba(4,31,73,.96))!important;
  border-bottom-color:rgba(52,216,255,.18)!important;
  box-shadow:0 14px 42px rgba(0,8,30,.24)!important;
  backdrop-filter:blur(20px) saturate(145%);
}
.site-header:after{opacity:.78!important;background:linear-gradient(90deg,transparent 4%,var(--green-400),var(--yellow-400),var(--cyan-400),transparent 96%)!important}
.header-inner{height:82px!important;gap:26px!important;padding-inline:0!important}
.wordmark{flex:0 0 auto}
.header-context{
  display:flex;align-items:center;gap:10px;margin-left:18px;padding-left:20px;
  border-left:1px solid rgba(255,255,255,.15);white-space:nowrap;color:#d9eee5;
  font-size:.61rem;font-style:normal;letter-spacing:.045em;
}
.header-context span{font-size:.56rem;font-weight:800;letter-spacing:.14em;color:#86f0b3}
.header-context strong{font-size:.64rem;font-weight:700;color:#fff}
.header-context i{font-style:normal;color:#b4d0c3}
.header-context strong:before,.header-context i:before{content:"•";margin-right:10px;color:var(--yellow-400)}
.main-nav{margin-left:auto!important;gap:2px!important;padding:4px!important;background:rgba(1,15,31,.18)!important;border:1px solid rgba(255,255,255,.12)!important;box-shadow:inset 0 1px 0 rgba(255,255,255,.035)}
.main-nav a{padding:10px 16px!important;color:#d9e9e2!important;font-size:.69rem!important;font-weight:600!important}
.site-header.is-scrolled .main-nav{background:rgba(1,10,30,.24)!important;border-color:rgba(121,231,255,.13)!important}
.site-header.is-scrolled .main-nav a{color:#c7dcf4!important}
.main-nav a:hover,.main-nav a:focus-visible{background:rgba(255,255,255,.09)!important;color:#fff!important}

@media(max-width:1100px){.header-context{display:none}}
@media(max-width:980px){
  .header-inner{height:72px!important}
  .main-nav{background:rgba(3,35,43,.98)!important;border-color:rgba(255,255,255,.13)!important}
  .site-header.is-scrolled .main-nav{background:rgba(3,22,57,.98)!important}
}
@media(prefers-reduced-motion:reduce){.site-header{transition:none!important}}


/* Hero top cinematic refresh */
.hero-inner{grid-template-columns:minmax(0,1.02fr) minmax(360px,.98fr);gap:56px;align-items:center}
.hero-copy{z-index:3}
.hero-tech.hero-stage{position:relative;min-height:540px;display:flex;align-items:center;justify-content:center;isolation:isolate}
.hero-stage-backdrop{position:absolute;inset:10% 5% 8% 8%;border-radius:42px;background:radial-gradient(circle at 65% 45%,rgba(247,200,20,.16),transparent 18%),radial-gradient(circle at 62% 35%,rgba(52,216,255,.22),transparent 28%),radial-gradient(circle at 48% 58%,rgba(16,168,90,.12),transparent 32%);filter:blur(8px);opacity:.95}
.hero-stage-rings,.hero-stage-rings:before,.hero-stage-rings:after{content:"";position:absolute;border-radius:50%;border:1px solid rgba(82,171,255,.14)}
.hero-stage-rings{width:min(660px,96%);aspect-ratio:1;right:-6%;top:50%;transform:translateY(-50%)}
.hero-stage-rings:before{inset:11%}
.hero-stage-rings:after{inset:22%;border-style:dashed;border-color:rgba(247,200,20,.18)}
.hero-cinematic-frame{position:relative;z-index:2;width:min(560px,100%);aspect-ratio:10/8.45;margin:0;border-radius:36px;overflow:hidden;border:1px solid rgba(121,231,255,.16);background:linear-gradient(145deg,#081936,#07192f);box-shadow:0 42px 120px rgba(0,0,0,.38),0 0 0 1px rgba(255,255,255,.02) inset}
.hero-cinematic-frame:before{content:"";position:absolute;inset:0;background:linear-gradient(135deg,rgba(255,255,255,.08),transparent 18%,transparent 82%,rgba(52,216,255,.12));pointer-events:none;z-index:3}
.hero-cinematic-frame:after{content:"";position:absolute;left:0;right:0;top:0;height:3px;background:linear-gradient(90deg,var(--green-400),var(--yellow-400),var(--cyan-400));opacity:.95;z-index:4}
.hero-cinematic-frame img{display:block;width:100%;height:100%;object-fit:cover;object-position:82% center;filter:saturate(1.06) contrast(1.04) brightness(.98)}
.hero-cinematic-glow{position:absolute;inset:-8%;background:radial-gradient(circle at 56% 46%,rgba(247,200,20,.32),transparent 22%),radial-gradient(circle at 76% 72%,rgba(52,216,255,.22),transparent 21%),radial-gradient(circle at 22% 82%,rgba(23,121,255,.22),transparent 20%);mix-blend-mode:screen;pointer-events:none;z-index:2}
.hero-stage .tech-chip{z-index:5;min-width:154px;background:rgba(4,18,48,.7);backdrop-filter:blur(18px) saturate(150%);box-shadow:0 18px 46px rgba(0,0,0,.24),0 0 0 1px rgba(255,255,255,.03) inset}
.hero-stage .tech-chip strong{font-size:1rem;line-height:1.1}
.hero-stage .tech-chip--one{left:0;top:17%}
.hero-stage .tech-chip--two{right:0;bottom:18%}
.hero-stage-label{position:absolute;left:16%;bottom:8%;z-index:6;display:inline-flex;align-items:center;gap:10px;padding:16px 22px;border-radius:18px;color:#fff;font-size:.8rem;font-weight:800;letter-spacing:.18em;background:linear-gradient(145deg,rgba(8,28,65,.88),rgba(7,22,47,.78));border:1px solid rgba(121,231,255,.16);box-shadow:0 18px 42px rgba(0,0,0,.28);backdrop-filter:blur(16px)}
.hero-stage-label:before{content:"";width:4px;height:24px;border-radius:999px;background:linear-gradient(180deg,var(--green-400),var(--yellow-400),var(--cyan-400));box-shadow:0 0 18px rgba(52,216,255,.28)}

@media(max-width:1080px){
  .hero-inner{grid-template-columns:1fr .92fr;gap:34px}
  .hero-tech.hero-stage{min-height:470px}
  .hero-cinematic-frame{width:min(500px,100%)}
}
@media(max-width:980px){
  .hero-inner{grid-template-columns:1fr;padding:102px 0 86px}
  .hero-tech.hero-stage{min-height:410px;width:100%}
  .hero-stage-rings{right:50%;transform:translate(50%,-50%)}
  .hero-stage .tech-chip--one{left:6%;top:12%}
  .hero-stage .tech-chip--two{right:6%;bottom:10%}
  .hero-stage-label{left:50%;transform:translateX(-50%);bottom:5%}
}
@media(max-width:760px){
  .hero-inner{padding:82px 0 72px}
  .hero-tech.hero-stage{min-height:340px}
  .hero-cinematic-frame{width:min(100%,430px);border-radius:28px;aspect-ratio:10/8.8}
  .hero-stage-backdrop{inset:8% 0 9%}
  .hero-stage-rings{width:min(460px,100%)}
  .hero-stage-label{padding:12px 16px;font-size:.62rem;letter-spacing:.14em}
}
@media(max-width:460px){
  .hero-tech.hero-stage{min-height:284px}
  .hero-cinematic-frame{aspect-ratio:10/9.2}
  .hero-stage .tech-chip{display:none}
  .hero-stage-label{display:none}
}

/* Hero update: crowd montage background requested by user */
.hero{
  isolation:isolate;
  background:
    linear-gradient(90deg, rgba(2, 8, 23, .94) 0%, rgba(3, 12, 31, .88) 18%, rgba(4, 17, 43, .72) 36%, rgba(5, 21, 50, .26) 58%, rgba(6, 24, 58, .08) 100%),
    linear-gradient(180deg, rgba(1, 10, 28, .18) 0%, rgba(1, 10, 28, .36) 100%),
    linear-gradient(135deg,#020817 0,#06183a 48%,#08265d 100%);
}
.hero:after{
  content:"";
  position:absolute;
  inset:0;
  background:
    radial-gradient(circle at 22% 72%, rgba(0, 26, 80, .42), transparent 26%),
    radial-gradient(circle at 78% 24%, rgba(255, 196, 0, .18), transparent 22%),
    url('/assets/hero-flavio-montagem.png') center right / cover no-repeat;
  opacity:.95;
  z-index:0;
  pointer-events:none;
}
.hero-grid-bg{z-index:1;opacity:.55}
.hero-inner{
  grid-template-columns:minmax(0, 640px) minmax(320px, 1fr);
  gap:40px;
  min-height:720px;
  align-items:center;
}
.hero-copy{z-index:3;max-width:620px}
.hero-copy:before{
  content:"";
  position:absolute;
  inset:-22px -28px -26px -24px;
  border-radius:32px;
  background:linear-gradient(135deg, rgba(4, 16, 42, .56), rgba(4, 16, 42, .12));
  backdrop-filter:blur(6px);
  border:1px solid rgba(121,231,255,.06);
  box-shadow:0 28px 80px rgba(0,0,0,.18);
  z-index:-1;
}
.hero h1{max-width:700px}
.hero-subtitle{max-width:560px}
.hero-visual-spacer{
  position:relative;
  z-index:2;
  min-height:520px;
}
.hero-floating-chip{
  position:absolute;
  display:flex;
  flex-direction:column;
  gap:6px;
  min-width:170px;
  padding:16px 18px;
  border-radius:20px;
  background:linear-gradient(160deg, rgba(8, 27, 63, .82), rgba(5, 18, 45, .65));
  border:1px solid rgba(121,231,255,.18);
  box-shadow:0 18px 40px rgba(0,0,0,.28), 0 0 0 1px rgba(255,255,255,.02) inset;
  backdrop-filter:blur(16px);
}
.hero-floating-chip span{font-size:.72rem;font-weight:700;letter-spacing:.18em;color:#88abcf}
.hero-floating-chip strong{font-size:1.24rem;line-height:1.15;color:#fff}
.hero-floating-chip--top{top:16%;right:10%}
.hero-floating-chip--bottom{right:4%;bottom:12%}
@media (max-width: 1180px){
  .hero-inner{grid-template-columns:minmax(0, 580px) minmax(260px, 1fr);gap:28px;min-height:660px}
  .hero-floating-chip--top{right:4%}
  .hero-floating-chip--bottom{right:0}
}
@media (max-width: 980px){
  .hero:after{background:
    linear-gradient(180deg, rgba(2,8,23,.3), rgba(2,8,23,.55)),
    radial-gradient(circle at 68% 24%, rgba(255, 196, 0, .16), transparent 20%),
    url('/assets/hero-flavio-montagem.png') 68% center / cover no-repeat;opacity:.82}
  .hero-inner{grid-template-columns:1fr;min-height:auto;padding-top:110px;padding-bottom:72px}
  .hero-copy{max-width:640px}
  .hero-copy:before{inset:-18px -18px -20px -18px}
  .hero-visual-spacer{min-height:240px}
  .hero-floating-chip{min-width:148px;padding:14px 16px}
  .hero-floating-chip span{font-size:.66rem}
  .hero-floating-chip strong{font-size:1.05rem}
  .hero-floating-chip--top{top:12%;right:2%}
  .hero-floating-chip--bottom{bottom:0;right:0}
}
@media (max-width: 640px){
  .hero{background:linear-gradient(180deg, rgba(2,8,23,.9) 0%, rgba(4,16,42,.82) 100%)}
  .hero:after{background:
    linear-gradient(180deg, rgba(2,8,23,.48) 0%, rgba(2,8,23,.3) 20%, rgba(2,8,23,.72) 56%, rgba(2,8,23,.94) 100%),
    url('/assets/hero-flavio-montagem.png') 73% top / cover no-repeat;
    opacity:.9}
  .hero-inner{padding-top:96px;padding-bottom:58px;min-height:680px}
  .hero-copy{max-width:none}
  .hero-copy:before{inset:-16px -10px -18px -10px;background:linear-gradient(180deg, rgba(4,16,42,.58), rgba(4,16,42,.22));backdrop-filter:blur(8px)}
  .hero h1{font-size:clamp(3rem,16vw,4.8rem)}
  .hero-subtitle{max-width:100%}
  .hero-visual-spacer{min-height:180px}
  .hero-floating-chip{padding:12px 14px;border-radius:16px;min-width:136px}
  .hero-floating-chip--top{top:0;right:0}
  .hero-floating-chip--bottom{bottom:2%;right:0}
}
@media (max-width: 420px){
  .hero-inner{min-height:620px}
  .hero h1{font-size:clamp(2.7rem,14vw,4rem)}
  .hero-actions{gap:12px}
  .hero-floating-chip{display:none}
}


/* =========================================================
   Hero exact background requested + regional textures
   ========================================================= */
.hero{
  min-height:760px;
  background:
    linear-gradient(90deg, rgba(2,8,23,.94) 0%, rgba(2,8,23,.86) 14%, rgba(3,13,32,.72) 28%, rgba(3,13,32,.24) 48%, rgba(3,13,32,.08) 100%),
    linear-gradient(180deg, rgba(1,8,22,.14), rgba(1,8,22,.32)),
    #061739 !important;
}
.hero:after{
  background:
    linear-gradient(90deg, rgba(1,7,19,.84) 0%, rgba(1,10,25,.78) 14%, rgba(1,11,29,.56) 28%, rgba(1,11,29,.18) 44%, rgba(1,11,29,.02) 58%),
    linear-gradient(180deg, rgba(5,10,22,.06) 0%, rgba(5,10,22,.18) 100%),
    url('/assets/topo-hero-exato.png') center center / cover no-repeat !important;
  opacity:1 !important;
}
.hero-grid-bg{opacity:.18 !important;mix-blend-mode:screen}
.hero-inner{
  position:relative;
  min-height:760px;
  grid-template-columns:minmax(0, 610px) minmax(340px, 1fr);
  gap:28px;
  align-items:center;
}
.hero-copy{
  max-width:590px;
  z-index:3;
}
.hero-copy:before{
  inset:-26px -22px -24px -22px !important;
  background:linear-gradient(130deg, rgba(2,10,27,.62), rgba(2,10,27,.24)) !important;
  border:1px solid rgba(121,231,255,.05) !important;
  box-shadow:0 28px 80px rgba(0,0,0,.12) !important;
}
.hero h1{max-width:560px}
.hero-subtitle{max-width:530px;color:#d7e5f6 !important;text-shadow:0 2px 16px rgba(0,0,0,.22)}
.hero-visual-spacer{min-height:520px;position:relative;z-index:2}
.hero-floating-chip{
  background:linear-gradient(160deg, rgba(8, 24, 54, .84), rgba(5, 17, 43, .68));
  border:1px solid rgba(121,231,255,.22);
  box-shadow:0 24px 54px rgba(0,0,0,.3), 0 0 0 1px rgba(255,255,255,.03) inset;
}
.hero-floating-chip--top{top:16%;right:5%}
.hero-floating-chip--bottom{right:3%;bottom:10%}
@media (max-width: 1180px){
  .hero-inner{grid-template-columns:minmax(0,540px) minmax(280px,1fr);min-height:720px}
}
@media (max-width: 980px){
  .hero{min-height:auto;background:linear-gradient(180deg, rgba(2,8,23,.88), rgba(3,15,38,.74)) !important}
  .hero:after{
    background:
      linear-gradient(180deg, rgba(2,8,23,.42) 0%, rgba(2,8,23,.22) 18%, rgba(2,8,23,.58) 56%, rgba(2,8,23,.94) 100%),
      url('/assets/topo-hero-exato.png') 60% center / cover no-repeat !important;
  }
  .hero-inner{grid-template-columns:1fr;min-height:auto;padding-top:110px;padding-bottom:74px;gap:18px}
  .hero-copy{max-width:640px}
  .hero-copy:before{inset:-16px -12px -18px -12px !important}
  .hero-visual-spacer{min-height:240px}
  .hero-floating-chip--top{top:8%;right:2%}
  .hero-floating-chip--bottom{right:0;bottom:4%}
}
@media (max-width: 640px){
  .hero:after{
    background:
      linear-gradient(180deg, rgba(2,8,23,.56) 0%, rgba(2,8,23,.28) 18%, rgba(2,8,23,.74) 58%, rgba(2,8,23,.96) 100%),
      url('/assets/topo-hero-exato.png') 58% center / cover no-repeat !important;
  }
  .hero-inner{padding-top:96px;padding-bottom:60px;min-height:680px}
  .hero-copy:before{background:linear-gradient(180deg, rgba(4,16,42,.64), rgba(4,16,42,.28)) !important}
  .hero-visual-spacer{min-height:170px}
}
@media (max-width: 420px){
  .hero-inner{min-height:620px}
  .hero-visual-spacer{min-height:90px}
  .hero-floating-chip{display:none}
}

/* Regional section textures */
.region-block{
  position:relative;
  overflow:hidden;
  padding:28px;
  border-radius:28px;
  border:1px solid rgba(15,23,42,.06);
  background:linear-gradient(180deg, rgba(255,255,255,.92), rgba(246,249,252,.98));
  box-shadow:0 18px 44px rgba(6,16,36,.06);
}
.region-block::before,
.region-block::after{content:"";position:absolute;pointer-events:none}
.region-block::before{
  inset:0;
  opacity:.38;
  background-image:
    linear-gradient(rgba(9,30,66,.06) 1px, transparent 1px),
    linear-gradient(90deg, rgba(9,30,66,.06) 1px, transparent 1px),
    radial-gradient(circle at 14% 18%, rgba(255,255,255,.66), transparent 20%);
  background-size:28px 28px, 28px 28px, auto;
  mask-image:linear-gradient(180deg, rgba(0,0,0,.95), rgba(0,0,0,.45));
}
.region-block::after{
  inset:auto -12% -58% auto;
  width:360px;
  aspect-ratio:1;
  border-radius:50%;
  opacity:.16;
  filter:blur(8px);
}
.region-block + .region-block{margin-top:14px}
.region-heading{position:relative;z-index:1}
.state-list{position:relative;z-index:1}
.region-block[data-region-block="NORTE"]{background:linear-gradient(180deg,#f3fbf6,#eef8f0)}
.region-block[data-region-block="NORTE"]::after{background:radial-gradient(circle, rgba(22,163,74,.48), transparent 64%)}
.region-block[data-region-block="NORTE"]::before{background-image:linear-gradient(rgba(22,163,74,.08) 1px, transparent 1px),linear-gradient(90deg, rgba(22,163,74,.08) 1px, transparent 1px),radial-gradient(circle at 16% 18%, rgba(187,247,208,.65), transparent 21%)}
.region-block[data-region-block="NORDESTE"]{background:linear-gradient(180deg,#fff8eb,#fff3d7)}
.region-block[data-region-block="NORDESTE"]::after{background:radial-gradient(circle, rgba(245,158,11,.5), transparent 64%)}
.region-block[data-region-block="NORDESTE"]::before{background-image:linear-gradient(rgba(245,158,11,.08) 1px, transparent 1px),linear-gradient(90deg, rgba(245,158,11,.08) 1px, transparent 1px),radial-gradient(circle at 84% 22%, rgba(253,230,138,.64), transparent 21%)}
.region-block[data-region-block="CENTRO-OESTE"]{background:linear-gradient(180deg,#eef8fb,#e8f6ff)}
.region-block[data-region-block="CENTRO-OESTE"]::after{background:radial-gradient(circle, rgba(14,165,233,.46), transparent 64%)}
.region-block[data-region-block="CENTRO-OESTE"]::before{background-image:linear-gradient(rgba(14,165,233,.08) 1px, transparent 1px),linear-gradient(90deg, rgba(14,165,233,.08) 1px, transparent 1px),radial-gradient(circle at 18% 78%, rgba(125,211,252,.62), transparent 21%)}
.region-block[data-region-block="SUDESTE"]{background:linear-gradient(180deg,#f5f2ff,#efecff)}
.region-block[data-region-block="SUDESTE"]::after{background:radial-gradient(circle, rgba(139,92,246,.44), transparent 64%)}
.region-block[data-region-block="SUDESTE"]::before{background-image:linear-gradient(rgba(139,92,246,.08) 1px, transparent 1px),linear-gradient(90deg, rgba(139,92,246,.08) 1px, transparent 1px),radial-gradient(circle at 82% 20%, rgba(196,181,253,.66), transparent 21%)}
.region-block[data-region-block="SUL"]{background:linear-gradient(180deg,#f1f8ff,#eaf3ff)}
.region-block[data-region-block="SUL"]::after{background:radial-gradient(circle, rgba(59,130,246,.46), transparent 64%)}
.region-block[data-region-block="SUL"]::before{background-image:linear-gradient(rgba(59,130,246,.08) 1px, transparent 1px),linear-gradient(90deg, rgba(59,130,246,.08) 1px, transparent 1px),radial-gradient(circle at 14% 20%, rgba(147,197,253,.66), transparent 21%)}
@media (max-width:760px){
  .region-block{padding:22px 16px;border-radius:22px}
}

/* =========================================================
   Final hero + regional texture pass
   Exact user-provided image; no UI over Flávio's face.
   ========================================================= */
.hero{
  isolation:isolate;
  overflow:hidden;
  min-height:760px;
  background:#04142f !important;
}
.hero::after{
  content:"";
  position:absolute;
  inset:0;
  z-index:0;
  pointer-events:none;
  background:
    linear-gradient(90deg,
      rgba(1,8,21,.90) 0%,
      rgba(2,10,26,.82) 17%,
      rgba(2,12,31,.58) 31%,
      rgba(2,12,31,.18) 43%,
      rgba(2,12,31,0) 55%),
    linear-gradient(180deg,rgba(1,7,18,.06),rgba(1,7,18,.20)),
    url('/assets/topo-hero-exato.png') 50% 50% / cover no-repeat !important;
  opacity:1 !important;
  transform:none !important;
}
.hero::before{
  content:"";
  position:absolute;
  inset:0;
  z-index:1;
  pointer-events:none;
  background:
    radial-gradient(circle at 52% 47%, transparent 0 18%, rgba(4,15,38,.05) 31%, rgba(4,15,38,.16) 58%, rgba(2,8,22,.30) 100%),
    linear-gradient(180deg,transparent 70%,rgba(2,8,22,.34) 100%);
}
.hero-grid-bg{z-index:1;opacity:.10 !important}
.hero-inner{position:relative;z-index:2}
.hero-copy{position:relative;z-index:3}
.hero-visual-spacer{min-height:540px;pointer-events:none}
.hero-floating-chip{display:none !important}

/* Keep all readable UI away from the central portrait. */
@media (min-width:981px){
  .hero-inner{grid-template-columns:minmax(0,590px) minmax(520px,1fr);gap:clamp(48px,7vw,140px)}
  .hero-copy{max-width:575px}
  .hero-copy::before{right:-8px !important}
}
@media (max-width:980px){
  .hero::after{
    background:
      linear-gradient(180deg,rgba(1,8,21,.26) 0%,rgba(1,8,21,.12) 28%,rgba(1,8,21,.52) 61%,rgba(1,8,21,.94) 100%),
      url('/assets/topo-hero-exato.png') 52% 42% / cover no-repeat !important;
  }
  .hero-inner{grid-template-columns:1fr;min-height:760px;padding-top:104px;padding-bottom:62px;align-content:end}
  .hero-copy{max-width:640px;margin-top:auto}
  .hero-visual-spacer{display:none}
}
@media (max-width:640px){
  .hero{min-height:720px}
  .hero::after{
    background:
      linear-gradient(180deg,rgba(1,8,21,.08) 0%,rgba(1,8,21,.08) 31%,rgba(1,8,21,.70) 61%,rgba(1,8,21,.98) 100%),
      url('/assets/topo-hero-exato.png') 51% 32% / auto 76% no-repeat,
      #04142f !important;
  }
  .hero-inner{min-height:720px;padding-top:88px;padding-bottom:48px}
  .hero-copy::before{background:linear-gradient(180deg,rgba(3,13,33,.10),rgba(3,13,33,.56)) !important;backdrop-filter:none !important;border:0 !important;box-shadow:none !important}
}

/* Five regional texture systems: one texture per REGION, never per state. */
.region-block{
  --region-accent:#0f766e;
  --region-ink:#062f34;
  --region-surface:#f4faf8;
  border-top:3px solid var(--region-accent);
  box-shadow:0 20px 54px rgba(6,16,36,.075);
}
.region-heading h3{color:var(--region-ink)}
.region-heading strong{color:var(--region-accent)}
.region-block .state-block{background:rgba(255,255,255,.80);backdrop-filter:blur(4px)}

/* Norte — organic/rainforest contour texture. */
.region-block[data-region-block="NORTE"]{
  --region-accent:#14904a;--region-ink:#07552d;--region-surface:#eef9f1;
  background:
    radial-gradient(ellipse at 8% 16%,rgba(20,144,74,.14),transparent 26%),
    repeating-radial-gradient(ellipse at 110% -10%,rgba(20,144,74,.055) 0 2px,transparent 2px 20px),
    linear-gradient(135deg,#f7fcf8,#eaf7ee);
}
.region-block[data-region-block="NORTE"]::before{
  opacity:.46;
  background-image:
    repeating-linear-gradient(118deg,rgba(20,144,74,.07) 0 1px,transparent 1px 17px),
    radial-gradient(circle at 12% 24%,rgba(134,239,172,.42),transparent 24%);
  background-size:auto;
}

/* Nordeste — sun/sand dotted texture. */
.region-block[data-region-block="NORDESTE"]{
  --region-accent:#d99500;--region-ink:#7a4b00;--region-surface:#fff8e8;
  background:
    radial-gradient(circle at 88% 8%,rgba(255,193,7,.20),transparent 23%),
    radial-gradient(circle,rgba(217,149,0,.09) 1.4px,transparent 1.7px) 0 0/18px 18px,
    linear-gradient(145deg,#fffaf0,#fff2cf);
}
.region-block[data-region-block="NORDESTE"]::before{
  opacity:.42;
  background-image:repeating-linear-gradient(18deg,rgba(217,149,0,.065) 0 1px,transparent 1px 22px);
  background-size:auto;
}

/* Centro-Oeste — topographic/agribusiness grid texture. */
.region-block[data-region-block="CENTRO-OESTE"]{
  --region-accent:#0086b8;--region-ink:#07516a;--region-surface:#edf9fd;
  background:
    linear-gradient(rgba(0,134,184,.055) 1px,transparent 1px),
    linear-gradient(90deg,rgba(0,134,184,.055) 1px,transparent 1px),
    radial-gradient(ellipse at 20% 74%,rgba(56,189,248,.16),transparent 30%),
    linear-gradient(145deg,#f4fbfe,#e8f6fc);
  background-size:34px 34px,34px 34px,auto,auto;
}
.region-block[data-region-block="CENTRO-OESTE"]::before{
  opacity:.34;
  background-image:repeating-radial-gradient(ellipse at 78% 22%,rgba(0,134,184,.10) 0 1px,transparent 1px 15px);
  background-size:auto;
}

/* Sudeste — urban/circuit texture. */
.region-block[data-region-block="SUDESTE"]{
  --region-accent:#7256c9;--region-ink:#443188;--region-surface:#f5f2ff;
  background:
    linear-gradient(90deg,transparent 0 48%,rgba(114,86,201,.055) 48% 50%,transparent 50% 100%) 0 0/42px 42px,
    linear-gradient(0deg,transparent 0 48%,rgba(114,86,201,.055) 48% 50%,transparent 50% 100%) 0 0/42px 42px,
    radial-gradient(circle at 84% 18%,rgba(167,139,250,.16),transparent 25%),
    linear-gradient(145deg,#faf8ff,#efebff);
}
.region-block[data-region-block="SUDESTE"]::before{
  opacity:.32;
  background-image:repeating-linear-gradient(135deg,rgba(114,86,201,.065) 0 1px,transparent 1px 24px);
  background-size:auto;
}

/* Sul — cool diagonal weave texture. */
.region-block[data-region-block="SUL"]{
  --region-accent:#2974c7;--region-ink:#174b87;--region-surface:#eef6ff;
  background:
    repeating-linear-gradient(135deg,rgba(41,116,199,.048) 0 2px,transparent 2px 16px),
    radial-gradient(ellipse at 16% 16%,rgba(96,165,250,.17),transparent 27%),
    linear-gradient(145deg,#f7fbff,#eaf4ff);
}
.region-block[data-region-block="SUL"]::before{
  opacity:.36;
  background-image:
    linear-gradient(rgba(41,116,199,.055) 1px,transparent 1px),
    linear-gradient(90deg,rgba(41,116,199,.055) 1px,transparent 1px);
  background-size:30px 30px,30px 30px;
}

@media (max-width:760px){
  .region-block{padding:20px 14px;border-radius:20px;border-top-width:3px}
  .region-block::before{opacity:.25}
}

/* =========================================================
   v1.1 — exact hero, unified regional weave, flags + parties
   ========================================================= */

/* Exact user-provided artwork remains the hero background asset. */
.hero::after{
  background:
    linear-gradient(90deg,rgba(1,8,21,.88) 0%,rgba(2,10,26,.76) 18%,rgba(2,12,31,.48) 32%,rgba(2,12,31,.10) 45%,rgba(2,12,31,0) 58%),
    linear-gradient(180deg,rgba(1,7,18,.02),rgba(1,7,18,.16)),
    url('/assets/topo-hero-exato.png') center center / cover no-repeat !important;
}

/* Every REGION now uses the same cool diagonal weave previously used by Sul. */
.region-block[data-region-block]{
  --region-accent:#2974c7;
  --region-ink:#174b87;
  --region-surface:#eef6ff;
  background:
    repeating-linear-gradient(135deg,rgba(41,116,199,.048) 0 2px,transparent 2px 16px),
    radial-gradient(ellipse at 16% 16%,rgba(96,165,250,.17),transparent 27%),
    linear-gradient(145deg,#f7fbff,#eaf4ff) !important;
  border-top-color:#2974c7;
}
.region-block[data-region-block]::before{
  opacity:.36 !important;
  background-image:
    linear-gradient(rgba(41,116,199,.055) 1px,transparent 1px),
    linear-gradient(90deg,rgba(41,116,199,.055) 1px,transparent 1px) !important;
  background-size:30px 30px,30px 30px !important;
}
.region-block[data-region-block]::after{
  background:radial-gradient(circle,rgba(59,130,246,.34),transparent 64%) !important;
}

/* State identity: official SVG flag + UF/name lockup. */
.state-title-lockup{display:flex;align-items:center;gap:12px;min-width:0}
.state-flag-wrap{
  position:relative;display:grid;place-items:center;width:54px;height:40px;flex:0 0 54px;
  overflow:hidden;border-radius:9px;background:#fff;border:1px solid rgba(7,29,72,.12);
  box-shadow:0 7px 18px rgba(7,29,72,.12);
}
.state-flag{display:block;width:100%;height:100%;object-fit:cover}
.state-title-copy{display:flex;align-items:center;gap:10px;min-width:0}
.state-title-copy .state-uf{
  display:grid;place-items:center;width:34px;height:34px;flex:0 0 34px;border-radius:10px;
  background:linear-gradient(145deg,#092957,#061a3c);color:#fff;font-size:.62rem;font-weight:900;
  box-shadow:0 7px 18px rgba(7,29,72,.15);
}
.state-title-copy h4{overflow-wrap:anywhere}

/* Party SVG mark inside every candidate card. */
.candidate-facts{margin-top:2px}
.party-mark{
  display:inline-flex!important;align-items:center;gap:6px;max-width:150px;min-height:23px;
  padding:3px 7px!important;border:1px solid #dce6f0;border-radius:8px;background:rgba(255,255,255,.86);
  color:#34465e!important;font-size:.58rem!important;font-weight:800!important;line-height:1!important;
  white-space:nowrap!important;overflow:hidden;
}
.party-mark img{display:block;width:30px;height:16px;object-fit:contain;flex:0 0 30px}
.party-mark b{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.58rem}
.party-mark--fallback{padding-inline:8px!important}
.candidate-number{display:inline-flex;align-items:center;font-size:.59rem!important;font-weight:700!important;color:#6f7d90!important;padding:3px 0}

/* State panel identity and party marks. */
.panel-state-title{display:flex;align-items:center;gap:12px;margin:5px 0 15px}
.panel-state-title img{width:54px;height:38px;object-fit:cover;border-radius:8px;border:1px solid rgba(255,255,255,.15);box-shadow:0 8px 20px rgba(0,0,0,.18)}
.panel-state-title h3{margin:0!important}
.panel-party-mark{display:inline-flex!important;align-items:center;gap:5px;margin-top:6px!important;color:#b8c8da!important}
.panel-party-mark img{width:28px;height:14px;object-fit:contain;border-radius:2px;background:rgba(255,255,255,.94);padding:1px}
.panel-party-mark b{font-size:.58rem;color:#b8c8da;font-weight:700}

/* Modal party mark. */
.profile-party{margin:10px 0 18px!important}
.profile-party-mark{display:inline-flex;align-items:center;gap:10px;padding:7px 10px;border-radius:10px;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.11)}
.profile-party-mark img{width:58px;height:27px;object-fit:contain;background:#fff;border-radius:5px;padding:3px}
.profile-party-mark b{font-size:.76rem;color:#d7e5f6;letter-spacing:.02em}

/* More refined interactive-map emerald palette. */
.map-state.is-active .state-shape{
  fill:#10695f!important;
  stroke:#54ddb4!important;
  filter:drop-shadow(0 0 4px rgba(84,221,180,.12));
}
.map-state.is-active:hover .state-shape,
.map-state.is-active:focus-visible .state-shape{
  fill:#118a77!important;
  stroke:#a5f4da!important;
  filter:drop-shadow(0 0 10px rgba(69,229,182,.28));
}
.map-state.is-selected .state-shape{
  fill:#e9b91b!important;
  stroke:#fff0a8!important;
  filter:drop-shadow(0 0 12px rgba(233,185,27,.30));
}
.map-state.is-inactive .state-shape{fill:#16354d!important;stroke:#31556d!important;opacity:.52}
.map-card{background:linear-gradient(145deg,#132942,#0b203b)!important}

@media(max-width:640px){
  .state-flag-wrap{width:48px;height:35px;flex-basis:48px}
  .state-title-copy{gap:7px}
  .state-title-copy .state-uf{width:31px;height:31px;flex-basis:31px}
  .party-mark{max-width:128px}
  .party-mark img{width:26px;height:14px;flex-basis:26px}
}

/* =========================================================
   V1.2 — PATRIOTIC / CONSERVATIVE VISUAL REFRESH
   Stronger national identity, harder geometry, no party logos.
   ========================================================= */
:root{
  --navy-950:#010918;
  --navy-900:#03152f;
  --navy-850:#06244a;
  --navy-800:#083367;
  --blue-600:#0d4ca3;
  --blue-500:#1667c9;
  --cyan-400:#69c8e8;
  --cyan-300:#9eddf2;
  --green-600:#075f36;
  --green-500:#0b7b43;
  --green-400:#20a660;
  --yellow-500:#e9b817;
  --yellow-400:#f5cc32;
  --ink:#071a33;
  --muted:#607086;
  --soft:#f5f5f0;
  --soft-2:#ecefe9;
}

body{
  background:#f5f5f0;
  color:var(--ink);
  font-family:"Nexa","Poppins",ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
}

/* Party identity becomes text-only. No logos / party flags. */
.party-mark img,.panel-party-mark img,.profile-party-mark img{display:none!important}
.party-mark,.panel-party-mark,.profile-party-mark{
  width:auto!important;max-width:none!important;min-width:0!important;
  display:inline-flex!important;align-items:center!important;gap:0!important;
  border-radius:5px!important;font-weight:900!important;letter-spacing:.07em!important;
}
.party-mark{
  min-height:24px!important;padding:5px 8px!important;
  color:#17324f!important;background:#eef1ed!important;border:1px solid #d4dbd5!important;
}
.party-mark b{font-size:.6rem!important;line-height:1!important;color:inherit!important}
.panel-party-mark{padding:5px 8px!important;background:rgba(255,255,255,.07)!important;border:1px solid rgba(255,255,255,.14)!important;color:#dce7ef!important}
.panel-party-mark b{font-size:.61rem!important;color:inherit!important}
.profile-party-mark{padding:7px 10px!important;background:rgba(255,255,255,.07)!important;border:1px solid rgba(255,255,255,.14)!important;color:#fff!important}
.profile-party-mark b{font-size:.72rem!important;color:inherit!important}

/* Remove state abbreviations from the visual interface. */
.state-title-copy .state-uf,.state-label,.state-callout{display:none!important}
.state-title-copy{display:block!important}
.state-title-copy h4{margin:0!important}

/* Header: presidential, dark navy, compact and authoritative. */
.site-header,
.site-header.is-scrolled{
  background:linear-gradient(100deg,rgba(1,9,24,.98),rgba(3,22,49,.97) 56%,rgba(4,29,60,.98))!important;
  border-bottom:1px solid rgba(245,204,50,.14)!important;
  box-shadow:0 12px 34px rgba(0,7,24,.22)!important;
}
.site-header:before{
  content:"";position:absolute;inset:0 0 auto;height:3px;
  background:linear-gradient(90deg,#0b7b43 0 33%,#f5cc32 33% 67%,#1667c9 67% 100%);
  opacity:.9;pointer-events:none;
}
.site-header:after{
  background:linear-gradient(90deg,transparent 7%,rgba(245,204,50,.5),rgba(255,255,255,.12),transparent 93%)!important;
  opacity:.7!important;
}
.header-inner{height:84px!important}
.wordmark .brand-copy strong{font-size:1.08rem!important;letter-spacing:.035em!important}
.wordmark .brand-copy em{color:var(--yellow-400)!important;letter-spacing:.17em!important}
.header-context{border-left-color:rgba(255,255,255,.12)!important;color:#bfcddd!important}
.header-context span{color:#a9c8db!important}
.main-nav{
  border-radius:8px!important;padding:4px!important;
  background:rgba(255,255,255,.035)!important;border:1px solid rgba(255,255,255,.09)!important;
}
.main-nav a{
  border-radius:5px!important;color:#c7d4e3!important;font-weight:800!important;
  letter-spacing:.035em!important;text-transform:uppercase!important;font-size:.61rem!important;
}
.main-nav a:hover,.main-nav a:focus-visible{
  background:var(--yellow-400)!important;color:#06162c!important;transform:none!important;
}
.brand-mark b:nth-child(1){background:#1ca45e!important}
.brand-mark b:nth-child(2){background:#f5cc32!important}
.brand-mark b:nth-child(3){background:#2e72be!important}

/* Hero: stronger title block, patriotic editorial framing without covering the artwork. */
.hero{min-height:720px!important;background:#020b1d!important}
.hero::after{
  background:
    linear-gradient(90deg,rgba(1,7,19,.94) 0%,rgba(1,9,22,.82) 18%,rgba(2,12,31,.54) 31%,rgba(2,12,31,.13) 45%,rgba(2,12,31,0) 58%),
    linear-gradient(180deg,rgba(0,0,0,.02),rgba(0,7,22,.20)),
    url('/assets/topo-hero-exato.png') center center / cover no-repeat!important;
}
.hero-copy{max-width:590px!important}
.hero-copy:before{
  content:"";position:absolute;left:-30px;top:-28px;bottom:-28px;width:5px!important;right:auto!important;
  border:0!important;border-radius:0!important;backdrop-filter:none!important;box-shadow:none!important;
  background:linear-gradient(180deg,#178750 0 34%,#f5cc32 34% 68%,#2475c5 68% 100%)!important;
}
.hero-kicker{color:#dfe9f4!important;font-weight:900!important;letter-spacing:.22em!important}
.hero-kicker:before{background:var(--yellow-400)!important;width:40px!important;height:3px!important}
.hero h1{
  font-weight:900!important;letter-spacing:-.058em!important;text-shadow:0 10px 36px rgba(0,0,0,.28);
}
.hero h1 .hero-accent{
  background:linear-gradient(100deg,#e9f7ef 0%,#55bb7e 32%,#f5cc32 70%,#fff3ad 100%)!important;
  -webkit-background-clip:text!important;background-clip:text!important;
}
.hero-subtitle{color:#d4dfec!important;font-weight:500!important}
.primary-button{
  border-radius:7px!important;min-width:250px!important;padding:18px 21px!important;
  background:linear-gradient(105deg,#f5cc32,#e4af10)!important;color:#06152b!important;
  box-shadow:0 16px 42px rgba(221,171,12,.23)!important;
}
.scoreboard{padding-top:24px!important;border-top:1px solid rgba(255,255,255,.13)!important}
.scoreboard strong{color:#fff!important;font-size:1.16rem!important}
.scoreboard i{color:var(--yellow-400)!important}

/* Big section headings: editorial / campaign-scale. */
.section-header{max-width:1050px!important;margin-bottom:54px!important}
.section-header h2{
  font-size:clamp(3rem,6.4vw,6.4rem)!important;line-height:.88!important;
  letter-spacing:-.065em!important;font-weight:900!important;text-transform:uppercase;
  text-wrap:balance;
}
.section-header p{font-size:clamp(.98rem,1.35vw,1.16rem)!important;max-width:690px!important}
.section-header>div:before{
  content:"";display:block;width:88px;height:5px;margin-bottom:18px;
  background:linear-gradient(90deg,var(--green-500) 0 34%,var(--yellow-400) 34% 68%,var(--blue-500) 68%);
}
.map-section .section-header>div:before,.video-section .section-header>div:before{box-shadow:0 0 18px rgba(245,204,50,.14)}

/* Map section: dark national palette, less neon-tech and more campaign editorial. */
.map-section{
  background:
    linear-gradient(120deg,rgba(10,88,51,.08),transparent 34%),
    repeating-linear-gradient(135deg,rgba(255,255,255,.018) 0 1px,transparent 1px 18px),
    linear-gradient(145deg,#010a1b,#041b3a 66%,#07264e)!important;
}
.map-section:before{background-image:linear-gradient(rgba(255,255,255,.025) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.025) 1px,transparent 1px)!important}
.filter-button{border-radius:5px!important;font-weight:900!important;text-transform:uppercase!important;letter-spacing:.08em!important}
.filter-button.is-active{background:var(--yellow-400)!important;color:#06152b!important;border-color:var(--yellow-400)!important;box-shadow:0 10px 28px rgba(245,204,50,.18)!important}
.map-card{border-radius:14px!important;background:linear-gradient(145deg,#0b213d,#06152d)!important;border-color:rgba(255,255,255,.10)!important}
.map-state.is-active .state-shape{fill:#17623f!important;stroke:#5bc486!important}
.map-state.is-active:hover .state-shape,.map-state.is-active:focus-visible .state-shape{fill:#238152!important;stroke:#b8efca!important}
.map-state.is-selected .state-shape{fill:#d4a817!important;stroke:#fff0a7!important}

/* Team: cleaner paper-like field with strong regional chapters. */
.team-section{
  background:
    linear-gradient(180deg,rgba(5,22,48,.035),transparent 180px),
    repeating-linear-gradient(135deg,rgba(5,35,70,.018) 0 1px,transparent 1px 16px),
    #f3f3ee!important;
}
.team-section .section-header h2{color:#06162c!important}
.region-block[data-region-block]{
  border-radius:10px!important;border:1px solid rgba(6,22,44,.10)!important;border-top:0!important;
  background:
    repeating-linear-gradient(135deg,rgba(11,75,121,.035) 0 2px,transparent 2px 17px),
    linear-gradient(145deg,#f9faf7,#eef1ed)!important;
  box-shadow:0 18px 44px rgba(2,17,39,.08)!important;
  overflow:hidden!important;
}
.region-block[data-region-block]:before{
  opacity:1!important;inset:0 auto 0 0!important;width:7px!important;
  background:linear-gradient(180deg,#0c7845 0 34%,#f5cc32 34% 68%,#1b5f9e 68%)!important;
  background-size:auto!important;
}
.region-block[data-region-block]:after{display:none!important}
.region-heading{
  padding-bottom:18px!important;border-bottom:2px solid rgba(6,22,44,.09)!important;
}
.region-heading h3{
  color:#06162c!important;font-size:clamp(2rem,4vw,3.8rem)!important;
  font-weight:900!important;letter-spacing:-.055em!important;text-transform:uppercase!important;
}
.region-heading strong{
  color:#0c6c41!important;background:rgba(12,108,65,.07)!important;border:1px solid rgba(12,108,65,.14)!important;
  padding:8px 12px!important;border-radius:5px!important;font-weight:900!important;
}
.state-block{
  border-radius:7px!important;border:1px solid rgba(7,31,60,.10)!important;
  background:rgba(255,255,255,.88)!important;box-shadow:0 8px 20px rgba(5,25,50,.035)!important;
}
.state-block-head{border-bottom:1px solid rgba(7,31,60,.09)!important}
.state-title-copy h4{font-weight:900!important;color:#071a33!important;font-size:1.18rem!important}
.state-block-head>strong{color:#6b7684!important;font-weight:800!important}
.state-flag-wrap{border-radius:4px!important;box-shadow:none!important}

/* Candidates: strong, square-ish, high-contrast cards. */
.candidate-card{
  border-radius:7px!important;border:1px solid #d8ded8!important;
  background:linear-gradient(150deg,#fff,#f8faf7)!important;
  box-shadow:0 8px 18px rgba(3,20,42,.04)!important;
}
.candidate-card:after{
  width:5px!important;opacity:1!important;
  background:linear-gradient(180deg,#0b7b43 0 34%,#f5cc32 34% 68%,#155ca4 68%)!important;
}
.candidate-card:hover,.candidate-card:focus-visible{
  border-color:#bbc7bd!important;box-shadow:0 18px 34px rgba(3,20,42,.12)!important;
  transform:translateY(-4px)!important;
}
.candidate-content h5{color:#071a33!important;font-weight:900!important;font-size:.94rem!important}
.candidate-card:hover .candidate-content h5,.candidate-card:focus-visible .candidate-content h5{color:#0b6b3d!important}
.candidate-type{
  border-radius:3px!important;font-size:.54rem!important;letter-spacing:.12em!important;font-weight:900!important;
  background:#edf5ef!important;color:#075f36!important;
}
.candidate-card[data-cargo="Governo"] .candidate-type{background:#edf1f7!important;color:#164c87!important}
.candidate-profile-hint{color:#0a653b!important;font-weight:900!important;letter-spacing:.08em!important}
.social-icon{border-radius:4px!important}

/* Cinematic video gets warmer patriotic contrast. */
.video-section{
  background:
    radial-gradient(circle at 78% 32%,rgba(230,177,13,.15),transparent 22%),
    radial-gradient(circle at 12% 90%,rgba(10,112,62,.12),transparent 25%),
    linear-gradient(140deg,#010816,#03152f 55%,#09254b)!important;
}
.video-section .section-header h2{color:#fff!important}
.video-card,.video-frame{border-radius:9px!important}

/* Footer ties the system together. */
.site-footer{
  background:
    repeating-linear-gradient(135deg,rgba(255,255,255,.018) 0 1px,transparent 1px 20px),
    linear-gradient(145deg,#010714,#03162f)!important;
}
.site-footer:before{height:4px!important;background:linear-gradient(90deg,#0b7b43 0 33%,#f5cc32 33% 67%,#155ca4 67%)!important;opacity:1!important}

@media(max-width:980px){
  .site-header:before{height:2px}
  .main-nav{border-radius:0!important}
  .hero-copy:before{left:-14px!important;width:4px!important}
  .section-header h2{font-size:clamp(2.7rem,10vw,4.8rem)!important}
}
@media(max-width:640px){
  .hero-copy:before{display:none!important}
  .section-header{margin-bottom:36px!important}
  .section-header h2{font-size:clamp(2.5rem,12vw,4.15rem)!important}
  .region-heading h3{font-size:2rem!important}
  .party-mark{padding:5px 7px!important}
}


/* 2026-08-08 — módulos regionais expansíveis conforme referência aprovada. */
.regions{display:grid!important;gap:22px!important}
.region-block[data-region-block]{padding:0!important;border:1px solid rgba(4,24,50,.14)!important;border-radius:15px!important;background:#eef1ef!important;box-shadow:0 12px 30px rgba(2,17,39,.08)!important;overflow:hidden!important}
.region-block[data-region-block]:before{z-index:4!important;width:5px!important;background:linear-gradient(180deg,#0c7845 0 34%,#f5cc32 34% 68%,#1b5f9e 68%)!important}
.region-heading{margin:0!important;padding:0!important;border:0!important;background:linear-gradient(115deg,#061a3b 0%,#092a59 100%)!important}
.region-heading:after{display:none!important}
.region-toggle{width:100%;min-height:84px;padding:16px 24px!important;border:0;background:transparent;color:#fff;display:flex;align-items:center;justify-content:space-between;gap:24px;cursor:pointer;text-align:left}
.region-toggle h3{margin:0!important;color:#fff!important;font-size:clamp(1.75rem,3.3vw,2.65rem)!important;line-height:.95!important;font-weight:900!important;letter-spacing:-.055em!important;text-transform:uppercase!important}
.region-heading-actions{display:flex;align-items:center;justify-content:flex-end;gap:18px;flex:0 0 auto}
.region-heading-actions strong{color:#cfe1f2!important;background:rgba(31,112,155,.14)!important;border:1px solid rgba(73,174,221,.11)!important;padding:9px 13px!important;border-radius:7px!important;font-size:.68rem!important;font-weight:800!important;white-space:nowrap}
.region-toggle-label{color:#ffd82e;font-size:.64rem;font-weight:900;letter-spacing:.09em;white-space:nowrap}
.region-toggle-icon{display:grid;place-items:center;width:36px;height:36px;border-radius:50%;border:1px solid rgba(245,204,50,.46);background:rgba(245,204,50,.08);color:#ffd82e;font-size:1.35rem;font-weight:800;line-height:1;transition:transform .2s ease,background .2s ease}
.region-toggle:hover .region-toggle-icon,.region-toggle:focus-visible .region-toggle-icon{background:rgba(245,204,50,.16);transform:scale(1.05)}
.region-content{padding:10px 18px 20px;background:linear-gradient(180deg,#eef2f1,#e9edeb)}
.region-content[hidden]{display:none!important}
.region-block:not(.is-expanded){border-color:rgba(4,24,50,.08)!important;background:transparent!important}
.region-block:not(.is-expanded) .region-heading{border-radius:14px!important}
.region-block.is-expanded{box-shadow:0 18px 40px rgba(2,17,39,.10)!important}
.region-block.is-expanded .region-heading{box-shadow:inset 0 -2px 0 #30d7e4}
.region-block.is-expanded .region-toggle-icon{font-size:1.2rem}
.region-content .state-list{padding-top:0}
@media(max-width:720px){.regions{gap:14px!important}.region-toggle{min-height:72px;padding:14px 16px!important;gap:12px}.region-toggle h3{font-size:clamp(1.35rem,7vw,2rem)!important}.region-heading-actions{gap:9px}.region-heading-actions strong{display:none}.region-toggle-label{font-size:.56rem}.region-toggle-icon{width:32px;height:32px}.region-content{padding:10px 10px 14px}}

/* 2026-08-08 — ajuste aprovado: baixar levemente a arte do hero em desktop. */
@media (min-width:981px){
  .hero::after{
    background-position:center center,center center,center top!important;
  }
}

/* 2026-08-08 — ajustes aprovados: nomes de estados no mobile, menu maior e rodapé. */
.site-header .main-nav a{font-size:.70rem!important}
.official-socials{display:flex!important;flex-direction:row!important;flex-wrap:wrap;gap:9px!important}
.official-socials a{
  width:38px;height:38px;display:grid!important;place-items:center;border:1px solid rgba(255,255,255,.14)!important;
  border-radius:50%!important;background:rgba(255,255,255,.045)!important;color:#d8e6f3!important;font-size:.68rem!important;
  font-weight:900!important;text-align:center!important;transition:background .2s ease,border-color .2s ease,transform .2s ease!important;
}
.official-socials a:hover,.official-socials a:focus-visible{background:rgba(245,204,50,.13)!important;border-color:rgba(245,204,50,.48)!important;color:#fff!important;transform:translateY(-1px)}
.footer-strip span{line-height:1.55}

@media(max-width:980px){
  .site-header .main-nav a{font-size:.79rem!important;padding:14px 16px!important}
}
@media(max-width:760px){
  .state-block-head{min-width:0!important}
  .state-title-lockup{min-width:0!important;flex:1 1 auto!important}
  .state-title-copy{min-width:0!important;flex:1 1 auto!important}
  .state-title-copy h4{
    white-space:nowrap!important;overflow-wrap:normal!important;word-break:normal!important;
    font-size:clamp(.78rem,4.15vw,1.08rem)!important;letter-spacing:-.035em!important;line-height:1.05!important;
  }
}
