:root{color-scheme:dark;--bg:#0a101c;--surface:#111a2b;--surface-alt:#141e31;--border:rgba(169,189,216,.13);--text:#f2f5fb;--muted:#8c9ab1;--soft:#b5c2d4;--mint:#77dac4;--mint-dim:rgba(119,218,196,.14);--blue:#8cb0ff;--orange:#f0ae85;--track:#263249;--shadow:0 25px 70px rgba(0,0,0,.14);--radius:18px;}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;min-width:320px;min-height:100vh;background:var(--bg);color:var(--text);font-family:'DM Sans',system-ui,-apple-system,Segoe UI,sans-serif;font-weight:400;overflow-x:hidden}button{font:inherit}a{text-decoration:none;color:inherit}button:focus-visible,a:focus-visible{outline:3px solid var(--mint);outline-offset:4px}.page-shell{width:min(1216px,calc(100% - 72px));margin:0 auto;position:relative;z-index:1}.background-glow{position:fixed;pointer-events:none;z-index:0;filter:blur(3px)}.glow-one{width:760px;height:720px;top:-370px;right:-370px;background:radial-gradient(circle,rgba(59,97,169,.15),transparent 65%)}.glow-two{width:740px;height:700px;top:640px;left:-500px;background:radial-gradient(circle,rgba(80,151,143,.095),transparent 70%)}.topbar{height:96px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--border)}.brand{display:inline-flex;align-items:center;gap:12px}.brand-mark{display:flex;align-items:flex-end;gap:3px;height:26px;transform:skew(-16deg)}.brand-mark span{display:block;background:var(--mint);width:8px;border-radius:3px}.brand-mark span:nth-child(1){height:14px}.brand-mark span:nth-child(2){height:24px}.brand-mark span:nth-child(3){height:19px}.brand-name{font-family:'Space Grotesk',sans-serif;letter-spacing:-.08em;font-size:23px;font-weight:500}.brand-bold{font-weight:700}.brand-dot{color:var(--mint)}.top-actions{display:flex;align-items:center;gap:22px}.source-top{font-size:10px;font-weight:800;color:var(--soft);letter-spacing:.17em;display:flex;align-items:center;gap:8px}.shield-icon{font-size:16px;color:var(--mint)}.icon-button{display:grid;place-items:center;border:1px solid var(--border);background:var(--surface);color:var(--soft);border-radius:50%;height:39px;width:39px;cursor:pointer;transition:background .2s}.icon-button:hover{background:var(--surface-alt)}.icon-button svg{width:18px;height:18px}
.hero{min-height:370px;display:grid;grid-template-columns:minmax(0,1.3fr) minmax(300px,.7fr);align-items:center;position:relative;overflow:hidden;padding:50px 0 52px}.hero-content{position:relative;z-index:2}.eyebrow{font-size:11px;letter-spacing:.23em;color:var(--mint);font-weight:800;display:flex;align-items:center;gap:11px}.eyebrow-line{width:20px;height:2px;background:var(--mint)}.eyebrow-year{color:var(--muted)}h1,h2,h3,p{margin-top:0}h1{font-family:'Space Grotesk',sans-serif;font-size:clamp(59px,7.5vw,108px);line-height:1.02;letter-spacing:-.088em;font-weight:600;margin:27px 0 20px;white-space:nowrap}.text-gradient{background:linear-gradient(110deg,#8ce1ce 15%,#89baff 85%);-webkit-background-clip:text;background-clip:text;color:transparent}.hero-description{max-width:590px;color:var(--muted);font-size:16px;line-height:1.8;margin-bottom:26px}.hero-meta{display:flex;align-items:center;gap:18px;flex-wrap:wrap}.status-pill{display:flex;align-items:center;gap:8px;font-size:10px;letter-spacing:.09em;font-weight:800;border:1px solid rgba(119,218,196,.28);border-radius:100px;background:var(--mint-dim);padding:9px 12px;color:var(--mint)}.status-pill.status-waiting{color:#e8c794;background:rgba(227,181,116,.1);border-color:rgba(227,181,116,.25)}.status-pill.status-error{color:#ff9b9b;background:rgba(255,110,110,.09);border-color:rgba(255,110,110,.24)}.status-indicator{width:7px;height:7px;background:currentColor;border-radius:50%}.status-live .status-indicator{box-shadow:0 0 0 4px rgba(119,218,196,.12);animation:pulse 2s infinite}@keyframes pulse{50%{box-shadow:0 0 0 8px rgba(119,218,196,0)}}.meta-divider{height:16px;border-left:1px solid var(--border)}.date-label{font-size:10px;letter-spacing:.12em;font-weight:700;color:var(--soft)}.hero-art{height:290px;display:grid;place-items:center;position:relative;transform:translateX(20px)}.globe-ring{border-radius:50%;position:absolute;aspect-ratio:1}.ring-outer{width:320px;border:1px solid rgba(130,162,214,.15);box-shadow:inset 0 0 55px rgba(87,154,176,.02)}.ring-middle{width:252px;border:1px dashed rgba(128,161,211,.3);animation:spin 80s linear infinite}.ring-inner{width:203px;background:radial-gradient(circle at 28% 25%,rgba(129,187,219,.14),rgba(83,135,185,.03) 60%,transparent 70%);border:1px solid rgba(116,204,197,.27);box-shadow:inset 0 0 35px rgba(104,209,193,.05),0 0 80px rgba(100,199,187,.06)}.hero-stars{width:260px;position:absolute;height:240px;overflow:visible;color:var(--mint);opacity:.7}.hero-year{font-family:'Space Grotesk',sans-serif;font-weight:600;text-align:center;line-height:.81;font-size:88px;letter-spacing:-.11em;color:transparent;-webkit-text-stroke:1.3px rgba(137,212,200,.68);text-shadow:0 0 48px rgba(113,211,199,.09);transform:translateX(-5px)}.hero-year span{-webkit-text-stroke:1.3px rgba(132,162,213,.54)}.hero-art-footer{position:absolute;bottom:-11px;font-size:10px;letter-spacing:.25em;color:#63718e;font-weight:700}@keyframes spin{to{transform:rotate(360deg)}}
.toolbar{display:flex;align-items:end;justify-content:space-between;gap:18px;padding:20px 0 26px;border-bottom:1px solid var(--border);margin-bottom:24px}.toolbar-left{display:flex;align-items:center;gap:24px}.toolbar-label,.refresh-meta{font-size:10px;font-weight:800;letter-spacing:.16em;color:var(--muted);white-space:nowrap}.turn-selector{display:flex;background:#131d2e;border:1px solid var(--border);padding:4px;border-radius:11px;gap:2px}.turn-button{background:none;border:0;border-radius:8px;padding:12px 15px;color:var(--muted);cursor:pointer;font-size:11px;letter-spacing:.045em;font-weight:800;white-space:nowrap}.turn-button.active{background:#30425c;color:#fff;box-shadow:0 3px 9px rgba(0,0,0,.12)}.turn-button:hover:not(.active){color:var(--text)}.turn-date{font-size:9px;opacity:.7;margin-left:9px}.toolbar-right{display:flex;align-items:center;gap:17px;padding-bottom:1px}.refresh-button{background:transparent;border:1px solid var(--border);border-radius:9px;display:flex;align-items:center;gap:9px;padding:11px 14px;cursor:pointer;color:var(--text);font-size:11px;font-weight:700;white-space:nowrap}.refresh-button:hover{border-color:rgba(119,218,196,.45);color:var(--mint)}.refresh-button svg{width:16px;height:16px}.refresh-button.loading svg{animation:spin 1s linear infinite}.refresh-button:disabled{opacity:.6;cursor:wait}
.overview-grid{display:grid;grid-template-columns:1.4fr repeat(3,1fr);gap:15px;margin-bottom:57px}.summary-card{min-width:0;background:linear-gradient(135deg,rgba(25,37,58,.96),rgba(17,26,43,.96));border:1px solid var(--border);border-radius:var(--radius);min-height:180px;padding:22px;box-shadow:var(--shadow)}.summary-progress{border-color:rgba(119,218,196,.29);background:linear-gradient(135deg,rgba(32,65,70,.40),rgba(19,31,47,.96))}.card-head{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:10px;letter-spacing:.13em;font-weight:800;color:#91a7bf;margin-bottom:28px}.card-symbol{font-size:19px;line-height:1;color:#7992ab}.metric-main{font-family:'Space Grotesk',sans-serif;font-size:46px;line-height:1;letter-spacing:-.065em;font-weight:600;font-variant-numeric:tabular-nums}.metric-main small{font-size:.53em;margin-left:2px;color:var(--mint)}.metric-small{font-size:clamp(22px,2.25vw,33px);letter-spacing:-.05em;word-break:break-word}.metric-description{font-size:11px;line-height:1.6;color:var(--muted);margin-top:12px}.progress-content{display:flex;align-items:center;justify-content:space-between}.progress-ring{width:64px;height:64px;border-radius:50%;background:conic-gradient(var(--mint) calc(var(--pct) * 1%),rgba(119,218,196,.16) 0);display:grid;place-items:center;flex-shrink:0;margin-top:-12px}.progress-ring:before{content:"";position:absolute;width:49px;height:49px;background:#1a303b;border-radius:50%}.progress-ring span{position:relative;font-size:11px;font-weight:800;color:var(--mint)}.progress-track{height:4px;background:rgba(119,218,196,.14);border-radius:5px;margin-top:16px;overflow:hidden}.progress-track span{display:block;background:var(--mint);height:100%;border-radius:5px;transition:width .65s}
.section-header{display:flex;align-items:end;justify-content:space-between;gap:25px;margin-bottom:22px}.mini-eyebrow{font-size:10px;font-weight:800;letter-spacing:.17em;color:var(--mint);margin-bottom:10px}.section-header h2{font-family:'Space Grotesk',sans-serif;font-size:clamp(27px,3vw,37px);font-weight:600;line-height:1.12;letter-spacing:-.05em;margin:0}.title-spark{color:var(--mint);font-size:17px;vertical-align:top;margin-left:10px}.section-header-right{display:flex;flex-direction:column;align-items:end;gap:11px}.data-badge{font-size:10px;letter-spacing:.075em;font-weight:800;background:rgba(125,159,184,.12);color:#b4c6d6;border:1px solid var(--border);border-radius:6px;padding:8px 10px}.data-badge span{display:inline-block;width:6px;height:6px;background:var(--mint);border-radius:50%;margin-right:6px}.votes-definition,.details-subtitle{font-size:9px;letter-spacing:.13em;font-weight:800;color:var(--muted)}.info-banner{display:flex;gap:15px;align-items:start;background:rgba(111,150,186,.085);border:1px solid rgba(135,172,207,.18);border-radius:12px;padding:17px 18px;margin-bottom:18px;color:#d3deec}.info-banner.hidden{display:none}.info-banner.error{background:rgba(202,98,99,.1);border-color:rgba(236,144,144,.22)}.info-banner .info-glyph{display:grid;place-items:center;flex:none;border-radius:50%;width:21px;height:21px;border:1px solid currentColor;font-size:11px;font-weight:800}.info-banner strong{font-size:12px}.info-banner p{font-size:12px;color:var(--muted);margin:6px 0 0;line-height:1.5}.candidate-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.candidate-card{--candidate-color:var(--blue);background:linear-gradient(155deg,rgba(27,39,60,.92),rgba(16,25,40,.98));border:1px solid var(--border);border-radius:var(--radius);padding:25px 26px 24px;min-height:230px;position:relative;overflow:hidden;transition:transform .2s,border-color .2s}.candidate-card:before{content:"";position:absolute;height:3px;top:0;left:0;right:0;background:linear-gradient(90deg,var(--candidate-color),transparent);opacity:.78}.candidate-card:hover{transform:translateY(-2px);border-color:rgba(159,189,225,.26)}.candidate-card.rank-2{--candidate-color:var(--orange)}.candidate-card.rank-3{--candidate-color:#b19ded}.candidate-card.rank-4{--candidate-color:#9ccdb0}.candidate-card.rank-other{--candidate-color:#8697b0}.candidate-top{display:flex;align-items:center;justify-content:space-between;gap:10px}.candidate-id{display:flex;align-items:center;gap:13px;min-width:0}.candidate-avatar{display:grid;place-items:center;flex-shrink:0;height:49px;width:49px;border:1px solid color-mix(in srgb,var(--candidate-color) 45%,transparent);background:color-mix(in srgb,var(--candidate-color) 11%,transparent);border-radius:12px;color:var(--candidate-color);font-family:'Space Grotesk',sans-serif;font-size:20px;font-weight:700;letter-spacing:-.07em}.candidate-name{font-family:'Space Grotesk',sans-serif;font-size:20px;letter-spacing:-.045em;font-weight:700;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;max-width:330px}.candidate-party{font-size:11px;color:var(--muted);font-weight:700;margin-top:6px}.candidate-number{font-family:'Space Grotesk',sans-serif;font-size:22px;color:#65768c;font-weight:600;letter-spacing:-.05em}.candidate-vote-row{display:flex;align-items:end;justify-content:space-between;gap:10px;margin-top:31px}.candidate-pct{font-family:'Space Grotesk',sans-serif;font-size:clamp(42px,5.1vw,65px);letter-spacing:-.08em;line-height:1;font-weight:600;font-variant-numeric:tabular-nums}.candidate-pct span{font-size:.42em;letter-spacing:-.05em;margin-left:3px}.candidate-votes{text-align:right;margin-bottom:5px}.candidate-votes strong{display:block;font-family:'Space Grotesk',sans-serif;font-size:clamp(14px,1.65vw,19px);font-weight:600;font-variant-numeric:tabular-nums}.candidate-votes span{display:block;font-size:10px;margin-top:5px;color:var(--muted);letter-spacing:.08em;font-weight:800}.candidate-track{height:7px;background:var(--track);border-radius:6px;margin-top:19px;overflow:hidden}.candidate-track span{display:block;height:100%;width:0;background:var(--candidate-color);border-radius:6px;transition:width .7s}.candidate-extra{margin-top:12px;color:var(--muted);font-size:11px}.candidate-extra strong{color:var(--mint);font-weight:800}.candidate-card.compact{min-height:191px}.candidate-card.compact .candidate-pct{font-size:38px}.candidate-card.compact .candidate-vote-row{margin-top:19px}.candidate-card.compact .candidate-name{font-size:17px}
.details-section{display:grid;grid-template-columns:1.05fr .95fr;gap:16px;margin:37px 0 70px}.details-card{border-radius:var(--radius);border:1px solid var(--border);background:var(--surface);padding:26px;min-height:242px}.details-title-row{display:flex;justify-content:space-between;align-items:center;gap:12px}.details-card h3{font-family:'Space Grotesk',sans-serif;font-weight:600;letter-spacing:-.04em;font-size:21px;margin:0}.vote-distribution{display:flex;align-items:stretch;background:var(--track);height:16px;overflow:hidden;border-radius:4px;margin:48px 0 22px;gap:2px}.vote-distribution span{display:block;height:100%;transition:width .65s}.dist-valid{background:var(--mint)}.dist-blank{background:#9aa7bb}.dist-null{background:#607189}.distribution-legend{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.distribution-legend>div{display:grid;grid-template-columns:9px 1fr;column-gap:8px;row-gap:8px;align-items:center}.distribution-legend span{font-size:11px;color:var(--muted)}.distribution-legend strong{font-family:'Space Grotesk',sans-serif;font-size:15px;font-weight:600;grid-column:2;font-variant-numeric:tabular-nums}.legend-dot{width:8px;height:8px;border-radius:50%;display:inline-block}.legend-valid{background:var(--mint)}.legend-blank{background:#9aa7bb}.legend-null{background:#607189}.source-check{border-radius:50%;background:var(--mint-dim);color:var(--mint);height:32px;width:32px;display:grid;place-items:center;font-weight:800}.source-card>p{color:var(--muted);font-size:12px;line-height:1.75;max-width:490px;margin:18px 0}.source-card>p strong{color:var(--soft)}.source-info{display:flex;gap:24px;padding:11px 0;border-top:1px solid var(--border)}.source-info>div{display:flex;flex-direction:column;gap:7px}.source-info span{font-size:9px;letter-spacing:.11em;color:var(--muted);font-weight:800}.source-info strong{font-size:12px;color:var(--text);font-weight:700}.source-card>a{color:var(--mint);font-size:10px;letter-spacing:.09em;font-weight:800;display:flex;justify-content:space-between;margin-top:8px;padding-top:12px;border-top:1px solid var(--border)}.footer{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:35px;min-height:122px;border-top:1px solid var(--border)}.footer-brand{font-family:'Space Grotesk',sans-serif;font-size:15px;font-weight:500;letter-spacing:-.06em;white-space:nowrap}.footer-brand>span{font-weight:800}.footer-brand b{color:var(--mint)}.footer-brand small{display:block;font-family:'DM Sans',sans-serif;font-size:10px;color:var(--muted);letter-spacing:0;margin-top:4px}.footer p{font-size:10px;line-height:1.65;color:var(--muted);margin:0;max-width:590px}.footer>a{font-size:9px;letter-spacing:.09em;font-weight:800;color:var(--soft);white-space:nowrap}
body.light{color-scheme:light;--bg:#f2f5f7;--surface:#fff;--surface-alt:#f2f6fa;--border:rgba(42,72,100,.14);--text:#18273b;--muted:#66788b;--soft:#4a5b73;--mint:#198b7f;--mint-dim:rgba(36,155,143,.11);--blue:#4778c7;--orange:#b46735;--track:#e4eaf1;--shadow:0 16px 35px rgba(21,50,91,.035)}body.light .summary-card{background:#fff}body.light .summary-progress{background:linear-gradient(130deg,#e4f3ef,#fff)}body.light .turn-selector{background:#e9eef2}body.light .turn-button.active{background:#223e57}body.light .candidate-card{background:linear-gradient(155deg,#fff,#f7fafc)}body.light .progress-ring:before{background:#eaf4f2}body.light .hero-year{-webkit-text-stroke:1.3px rgba(37,131,122,.5)}body.light .ring-inner{background:rgba(43,160,142,.035)}body.light .date-label{color:#64748b}body.light .source-top{color:#53697c}
@media(max-width:1120px){.overview-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.toolbar-left{gap:12px}.refresh-meta{display:none}.hero-art{transform:scale(.85) translateX(-5px)}h1{font-size:clamp(57px,7.5vw,84px)}}
@media(max-width:760px){.page-shell{width:min(100% - 36px,600px)}.topbar{height:78px}.brand-name{font-size:19px}.brand-mark{transform:skew(-16deg) scale(.86);transform-origin:left}.top-actions{gap:8px}.source-top{font-size:8px;letter-spacing:.08em}.hero{display:flex;min-height:auto;align-items:start;padding:48px 0 43px}.hero-art{display:none}h1{font-size:clamp(50px,10vw,80px);white-space:normal;letter-spacing:-.085em;margin:22px 0 17px}.hero-description{font-size:14px;line-height:1.75}.hero-meta{gap:12px}.date-label{font-size:9px}.toolbar{align-items:stretch;flex-direction:column;margin-bottom:17px;gap:17px}.toolbar-left{justify-content:space-between;align-items:center;gap:10px}.toolbar-label{font-size:9px;max-width:126px;line-height:1.6;white-space:normal}.turn-button{font-size:10px;padding:10px 10px}.turn-date{display:none}.toolbar-right{justify-content:flex-end}.refresh-button{padding:9px 12px}.overview-grid{gap:10px;margin-bottom:43px}.summary-card{min-height:146px;padding:17px}.card-head{font-size:9px;letter-spacing:.07em;margin-bottom:24px}.metric-small{font-size:clamp(19px,5vw,30px)}.metric-main{font-size:37px}.progress-ring{width:50px;height:50px}.progress-ring:before{width:39px;height:39px}.progress-ring span{font-size:9px}.metric-description{font-size:10px;margin-top:8px}.section-header{align-items:start;gap:12px}.section-header h2{font-size:30px}.section-header-right{gap:8px}.data-badge{font-size:9px}.votes-definition{font-size:8px;text-align:right}.candidate-grid{grid-template-columns:1fr;gap:12px}.candidate-card{min-height:205px;padding:22px}.candidate-name{font-size:19px;max-width:260px}.candidate-pct{font-size:53px}.candidate-vote-row{margin-top:25px}.details-section{grid-template-columns:1fr;margin:27px 0 40px}.footer{padding:26px 0 35px;grid-template-columns:1fr;gap:13px;min-height:0}.footer p{max-width:480px}}
@media(max-width:405px){.page-shell{width:calc(100% - 26px)}.source-top{display:none}.hero{padding-top:37px}.eyebrow{font-size:9px;gap:6px}.summary-card{padding:14px;min-height:144px}.card-symbol{font-size:16px}.metric-main{font-size:31px}.metric-small{font-size:21px}.metric-description{font-size:9px}.progress-ring{width:43px;height:43px}.progress-ring:before{width:34px;height:34px}.card-head{margin-bottom:23px}.toolbar-label{max-width:100px}.candidate-name{max-width:195px}.candidate-pct{font-size:45px}.candidate-votes strong{font-size:15px}.section-header h2{font-size:26px}.vote-distribution{margin-top:32px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
/* V2 · duas candidaturas, visual equilibrado e mapa interativo. */
:root{--red:#e95359;--red-soft:#ff777e;--green:#48bd80;--green-soft:#79dca5;--mint:#8dd4c0;--mint-dim:rgba(141,212,192,.11)}
body{background:radial-gradient(ellipse 43% 26% at 0% 8%,rgba(160,45,61,.11),transparent 85%),radial-gradient(ellipse 44% 29% at 100% 8%,rgba(24,135,74,.12),transparent 85%),var(--bg)}
.glow-one{background:radial-gradient(circle,rgba(49,177,111,.10),transparent 70%)}.glow-two{background:radial-gradient(circle,rgba(211,61,77,.09),transparent 70%)}
.brand-mark span:first-child{background:var(--red)}.brand-mark span:nth-child(2){background:var(--red-soft)}.brand-mark span:last-child{background:var(--green)}.brand-dot{color:var(--green)}
.top-nav{display:flex;align-items:center;gap:22px;color:#b8c5d3;font-size:12px;font-weight:800;letter-spacing:.02em}.top-nav a:hover{color:white}
.hero{grid-template-columns:minmax(0,1.05fr) minmax(350px,.95fr);min-height:440px;gap:24px;position:relative}
.hero:before{content:"";pointer-events:none;position:absolute;inset:26px 0 24px;border-radius:23px;background:linear-gradient(90deg,rgba(194,46,60,.095) 0%,transparent 48%,rgba(32,155,83,.10) 100%);border:1px solid rgba(255,255,255,.045)}
.hero-content{padding-left:30px}.hero .eyebrow{color:#d2d9e3}.hero .eyebrow-line{background:var(--red)}.hero .text-gradient{background:linear-gradient(90deg,#ff8c93,#eee 49%,#9aeab9);-webkit-background-clip:text;background-clip:text}
.hero h1{font-size:clamp(52px,6.1vw,90px);white-space:normal}.hero-description{max-width:490px}.hero-duel{height:350px;display:grid;grid-template-columns:1fr 1fr;gap:2px;position:relative;margin-right:18px;overflow:hidden;border-radius:18px;background:linear-gradient(90deg,#59222e,#113d31);border:1px solid rgba(255,255,255,.08);box-shadow:0 20px 60px rgba(0,0,0,.15)}
.duel-person{position:relative;overflow:hidden;display:flex;justify-content:center;align-items:flex-end;isolation:isolate}.duel-lula{background:linear-gradient(180deg,#88313e 0%,#4a1825 100%)}.duel-flavio{background:linear-gradient(180deg,#2a8565 0%,#0d4331 100%)}
.duel-person:before{content:"";position:absolute;width:230px;height:230px;background:radial-gradient(circle,rgba(255,255,255,.14),transparent 70%);top:10px;left:50%;transform:translateX(-50%)}
.duel-person img{width:100%;height:310px;object-fit:cover;object-position:center 27%;filter:saturate(.86);opacity:.96;mask-image:linear-gradient(to bottom,black 60%,transparent 100%);position:absolute;inset:0 0 auto;z-index:-1}
.duel-name{z-index:1;display:flex;flex-direction:column;gap:3px;align-items:center;color:white;text-shadow:0 1px 8px rgba(0,0,0,.7);font-size:24px;font-weight:800;font-family:'Space Grotesk',sans-serif;letter-spacing:-.05em;padding:0 5px 40px;white-space:nowrap}.duel-name small{font-size:11px;letter-spacing:.16em;font-weight:700}
.duel-vs{position:absolute;z-index:4;left:50%;top:46%;transform:translate(-50%,-50%);display:grid;place-items:center;height:51px;width:51px;border-radius:50%;color:#dfe7e5;background:#151c29;border:4px solid #26293a;font-size:11px;font-weight:900;letter-spacing:.1em}
.duel-caption{position:absolute;bottom:0;left:0;right:0;text-align:center;background:#111d26b8;color:#c9d4da;font-size:10px;letter-spacing:.17em;font-weight:900;padding:10px}
.summary-progress{border-color:rgba(234,79,98,.27);background:linear-gradient(120deg,rgba(160,42,61,.18),rgba(17,26,43,.96) 48%,rgba(28,135,91,.16))}
.progress-ring{background:conic-gradient(var(--green) calc(var(--pct)*1%),rgba(141,212,192,.14) 0)}
.candidate-card{background:linear-gradient(140deg,rgba(255,255,255,.015),transparent 60%),var(--surface)}
.candidate-card.party-lula{border-color:rgba(233,83,89,.35);background:linear-gradient(130deg,rgba(233,83,89,.11),rgba(17,26,43,.95) 65%)}
.candidate-card.party-flavio{border-color:rgba(72,189,128,.35);background:linear-gradient(130deg,rgba(72,189,128,.12),rgba(17,26,43,.95) 65%)}
.party-lula .candidate-track span{background:var(--red)}.party-flavio .candidate-track span{background:var(--green)}
.party-lula .candidate-avatar{background:rgba(233,83,89,.2);border:2px solid rgba(233,83,89,.55)}.party-flavio .candidate-avatar{background:rgba(72,189,128,.2);border:2px solid rgba(72,189,128,.55)}
.candidate-avatar{overflow:hidden;position:relative;display:grid;place-items:center;flex-shrink:0}.candidate-avatar img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:2}.candidate-avatar span{position:relative;z-index:1}.candidate-party{display:flex;align-items:center;gap:8px}.party-logo{width:23px;height:23px;object-fit:contain;border-radius:4px;background:white;padding:2px}
.candidate-number{opacity:.65}
.map-section,.poll-section{margin:30px 0 54px;scroll-margin-top:30px}.map-titlebar,.polls-head{margin-bottom:24px}.section-note{font-size:12px;line-height:1.7;color:var(--muted);margin:8px 0 0;max-width:740px}.map-update-indicator{font-size:10px;letter-spacing:.09em;text-transform:uppercase;color:#a1b2c6;font-weight:800;text-align:right}
.map-layout{display:grid;grid-template-columns:minmax(0,1.33fr) minmax(290px,.67fr);gap:16px;align-items:stretch}
.map-stage,.map-sidebar,.poll-card{background:linear-gradient(135deg,rgba(24,35,53,.97),rgba(13,21,34,.97));border:1px solid var(--border);border-radius:20px;box-shadow:var(--shadow)}
.map-stage{padding:21px 23px 13px;min-width:0}.map-legend{display:flex;flex-wrap:wrap;gap:19px;color:#b4c0cd;font-size:11px;font-weight:700}.map-legend span{display:flex;align-items:center;gap:7px}.legend-swatch{width:11px;height:11px;display:inline-block;border-radius:3px}.swatch-lula{background:var(--red)}.swatch-flavio{background:var(--green)}.swatch-pending{background:#344359}
.map-container{min-height:400px;display:grid;place-items:center}.brazil-map-svg{display:block;height:auto;width:min(100%,570px);max-height:565px;margin:4px auto 0;overflow:visible}
.map-state{stroke:#1b2738;stroke-width:1.3;fill:#3a4960;transition:fill .2s,filter .2s;cursor:pointer;outline:none}
.map-state[data-winner="lula"]{fill:#d74b57}.map-state[data-winner="flavio"]{fill:#39a56f}.map-state[data-winner="outros"]{fill:#b08ab5}.map-state:hover,.map-state:focus-visible{filter:brightness(1.35);stroke:#e4f5e8;stroke-width:2.5}.map-state.selected{stroke:#fff;stroke-width:3.1;filter:brightness(1.18)}
.map-loading{border:1px dashed #3a495d;border-radius:14px;padding:23px;color:var(--muted);font-size:12px;text-align:center;max-width:320px;line-height:1.8}.map-undertext{text-align:center;color:var(--muted);font-size:11px;padding:4px 0 10px;line-height:1.6}
.map-sidebar{padding:26px 24px;display:flex;flex-direction:column;gap:15px}.map-sidebar-head{border-bottom:1px solid var(--border);padding-bottom:17px}.map-sidebar h3{font-family:'Space Grotesk',sans-serif;margin:12px 0 6px;font-size:28px;letter-spacing:-.045em}.map-sidebar-head p{font-size:12px;color:var(--muted);line-height:1.6;margin:0}.state-results{flex:1;min-height:150px}.empty-state{line-height:1.8;color:#90a1b3;font-size:13px;padding:15px 0}.state-select-label{font-size:10px;font-weight:800;color:var(--muted);letter-spacing:.14em}
#state-select{width:100%;background:#182639;color:var(--text);border:1px solid #3b4c62;border-radius:10px;padding:13px 12px;font:inherit;font-size:13px;outline-offset:2px}
.map-smallstatus{font-size:11px;color:#879aab;line-height:1.6;margin:0}.state-kpi{display:flex;align-items:baseline;gap:8px;padding:5px 0 20px}.state-kpi strong{font-family:'Space Grotesk',sans-serif;font-size:39px;letter-spacing:-.05em}.state-kpi span{font-size:11px;color:var(--muted)}
.uf-candidate{padding:12px 0}.uf-candidate-title{display:flex;justify-content:space-between;gap:10px;font-size:13px;font-weight:800}.uf-candidate-title small{color:var(--muted);font-size:10px}.uf-candidate-title b{font-variant-numeric:tabular-nums}.uf-track{margin:8px 0 7px;height:8px;background:#243044;border-radius:20px;overflow:hidden}.uf-track span{display:block;height:100%;background:#9aa6b9;border-radius:20px}.uf-candidate.lula .uf-track span{background:var(--red)}.uf-candidate.flavio .uf-track span{background:var(--green)}.uf-candidate>small,.uf-tse{font-size:11px;color:var(--muted)}.uf-tse{border-top:1px solid var(--border);padding-top:16px}
.polls-source{border:1px solid var(--border);border-radius:9px;padding:12px 14px;white-space:nowrap;color:#d8e2e7;font-size:10px;font-weight:800;letter-spacing:.05em}.polls-source:hover{border-color:#8bb5b1}
.poll-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.poll-card{padding:25px 27px}.poll-top{display:flex;align-items:center;justify-content:space-between;gap:10px}.poll-provider{font-family:'Space Grotesk',sans-serif;font-size:25px;font-weight:700;letter-spacing:-.04em}.poll-date{font-size:10px;font-weight:800;color:var(--muted);letter-spacing:.09em}.poll-kind{font-size:10px;color:#aeb9c5;font-weight:800;letter-spacing:.10em;margin:10px 0 29px}.poll-rows{display:grid;gap:9px}.poll-row{display:flex;align-items:center;justify-content:space-between;font-size:13px;font-weight:750}.poll-row small{font-size:10px;color:#9aaaba}.poll-row b{font-family:'Space Grotesk',sans-serif;font-size:24px;font-variant-numeric:tabular-nums}.poll-line{background:#2a3549;border-radius:20px;height:9px;overflow:hidden;margin:0 0 13px}.poll-line i{display:block;height:100%;border-radius:20px}.poll-metadata{color:#a1afbe;font-size:11px;line-height:1.7;margin-top:16px;padding-top:16px;border-top:1px solid var(--border)}.poll-bottom{display:flex;align-items:center;justify-content:space-between;margin-top:16px;gap:10px;font-size:10px;color:var(--muted)}.poll-bottom strong{color:var(--text)}.poll-bottom a{font-weight:800;color:#cfe5df}.poll-bottom a:hover{text-decoration:underline}.poll-notice{display:flex;align-items:start;gap:13px;padding:16px 20px;margin-top:15px;border:1px solid rgba(151,175,192,.16);border-radius:12px;background:rgba(156,180,191,.055)}.poll-notice span{font-size:20px;color:#d2caac}.poll-notice p{margin:0;color:#aebbc9;font-size:11px;line-height:1.75}.poll-notice strong{color:#dde6f0}
body.light{--red:#c9303f;--green:#218651}.light .map-stage,.light .map-sidebar,.light .poll-card{background:#fff}.light .map-state{stroke:#fff}.light .hero-duel{border-color:#c6d2d4}.light .map-legend,.light .poll-kind,.light .poll-row small{color:#46566a}.light #state-select{background:#f2f5f8;color:#17243a}.light .polls-source{color:#243443}.light .empty-state{color:#5e6c7c}
@media(max-width:1020px){.hero{grid-template-columns:1fr 330px}.hero-content{padding-left:12px}.hero-duel{margin-right:0;height:315px}.duel-person img{height:295px}.top-nav{gap:11px}.map-layout{grid-template-columns:1fr 300px}.map-stage{padding:17px}.map-sidebar{padding:20px}}
@media(max-width:800px){.hero{display:grid;grid-template-columns:1fr;gap:18px;padding:28px 0 40px}.hero-content{padding:18px}.hero-duel{height:255px;max-width:480px;width:100%;margin:0 auto 10px}.duel-person img{height:220px;object-position:center 16%}.duel-name{padding-bottom:38px}.top-nav{display:none}.hero:before{inset:10px 0}.map-layout{grid-template-columns:1fr}.map-stage{padding:21px}.map-container{min-height:300px}.map-sidebar{min-height:320px}.poll-grid{grid-template-columns:1fr}}
@media(max-width:520px){.hero h1{font-size:58px}.hero-description{font-size:13px}.hero-duel{height:250px}.duel-person img{height:210px}.duel-name{font-size:22px}.map-section,.poll-section{margin:26px 0 42px}.map-titlebar,.polls-head{gap:12px;align-items:start}.map-update-indicator{font-size:9px}.map-stage{padding:13px}.map-container{min-height:280px}.map-legend{justify-content:center;gap:11px;font-size:10px;padding:7px 0}.poll-card{padding:21px 20px}.polls-head{flex-direction:column}.polls-source{align-self:start}.map-sidebar{padding:20px}.section-note{font-size:11px}.map-undertext{font-size:10px}.candidate-avatar img{object-fit:cover}}
/* -----------------------------------------------------------
 BRASIL DECIDE 2026 / VISUAL 3.0
 Identidade plana, jornalística, sem fundos em degradê.
 Partidos recebem destaque cromático equilibrado.
 ----------------------------------------------------------- */
:root {
  --bg: #f5f7fa;
  --surface: #ffffff;
  --surface-alt: #f0f3f7;
  --border: #e1e6ed;
  --text: #1b2638;
  --muted: #68788e;
  --soft: #4a5c72;
  --mint: #1c6470;
  --mint-dim: #e8f2f2;
  --red: #d33b4d;
  --green: #18885a;
  --red-soft: #d33b4d;
  --green-soft: #18885a;
  --track: #ebeff3;
  --shadow: none;
  --radius: 14px;
}
body, body.light {
  color-scheme: light;
  --bg: #f5f7fa;
  --surface: #fff;
  --surface-alt: #f0f3f7;
  --border: #e1e6ed;
  --text: #1b2638;
  --muted: #68788e;
  --soft: #4a5c72;
  --mint: #1c6470;
  --mint-dim: #e8f2f2;
  --track: #ebeff3;
  --shadow: none;
  --red: #d33b4d;
  --green: #18885a;
  background: var(--bg);
}
body:not(.light) {
  color-scheme: dark;
  --bg: #111a28;
  --surface: #1a2535;
  --surface-alt: #243144;
  --border: #354254;
  --text: #eef4f8;
  --muted: #a7b5c8;
  --soft: #cfdae8;
  --mint: #82c3ca;
  --mint-dim: #263e46;
  --track: #354354;
  background: var(--bg);
}
body .background-glow, .hero-art { display: none; }
.page-shell { width: min(1216px,calc(100% - 76px)); }
.topbar { height: 86px; border-color: var(--border); }
.brand { gap: 11px; }
.brand-symbol { width: 43px; height: 43px; display: block; flex: none; }
.brand-lockup { display: flex; flex-direction: column; gap: 4px; }
.brand-name { font-size: 20px; letter-spacing: -.06em; line-height: 1; font-weight: 600; }
.brand-name strong { font-weight: 800; }
.brand-lockup small { font-size: 9px; font-weight: 800; letter-spacing: .17em; color: var(--muted); }
.top-nav { display: flex; gap: 27px; color: var(--soft); font-size: 12px; }
.top-nav a:hover { color: var(--red); }
.source-top { font-size: 9px; letter-spacing: .13em; color: var(--soft); }
.shield-icon { color: var(--green); }
.icon-button { background: var(--surface); border-color: var(--border); color: var(--soft); border-radius: 10px; }
.icon-button:hover { background: var(--surface-alt); }
/* Hero: sharp editorial layout, flat, no soft blended overlays. */
.hero {
  grid-template-columns: minmax(0,1.04fr) minmax(350px,.96fr);
  gap: 34px; min-height: 405px; padding: 29px 35px; margin: 26px 0 8px;
  background: var(--surface); border: 1px solid var(--border);
  border-radius: 18px; align-items: center; overflow: hidden;
}
.hero:before { display: none; }
.hero-content { padding: 8px 0 5px; }
.hero .eyebrow { color: var(--soft); font-size: 10px; letter-spacing: .16em; gap: 8px; }
.hero .eyebrow-line { background: var(--red); width: 17px; height: 3px; }
.hero .eyebrow-year { color: var(--muted); }
.hero h1 { font-size: clamp(53px, 5.8vw, 81px); color: var(--text); letter-spacing: -.075em; line-height: 1.035; margin: 22px 0 19px; }
.hero .text-gradient { color: var(--text); background: none; -webkit-background-clip: initial; background-clip: initial; }
.hero-description { color: var(--muted); font-size: 15px; line-height: 1.65; max-width: 510px; margin-bottom: 25px; }
.status-pill { background: #e7f2ed; border-color: #cbe4d8; color: #177b4e; border-radius: 6px; font-size: 9px; }
.status-pill.status-waiting { background: #fff6e4; border-color: #f4dfb6; color: #98600d; }
.status-pill.status-error { background: #fff0f0; border-color: #f7cfd1; color: #a42e37; }
.date-label { color: var(--soft); font-size: 9px; }
.hero-duel {
  height: 330px; margin: 0; background: var(--surface-alt); gap: 0;
  border-radius: 12px; border: 1px solid var(--border); box-shadow: none;
}
.duel-person::before { display: none; }
.duel-person { background: var(--surface-alt); }
.duel-lula { background: var(--red); }
.duel-flavio { background: var(--green); }
.duel-person img {
  width: 100%; height: 250px; top: 0; bottom: auto; inset-inline: 0;
  object-fit: cover; object-position: center 20%; filter: none; opacity: 1;
  mask-image: none; -webkit-mask-image: none; z-index: 0;
}
.duel-name {
  padding: 0 3px 41px; width: 100%; font-size: 22px; letter-spacing: -.03em;
  text-shadow: none; position: relative; z-index: 2;
}
.duel-name small { font-size: 10px; letter-spacing: .11em; }
.duel-vs { width: 42px; height: 42px; top: 43%; background: #fff; border: 4px solid var(--surface); color: #1d293b; font-size: 10px; }
.duel-caption { color: #fff; font-size: 9px; letter-spacing: .15em; background: #1b2638; padding: 10px; }
/* Navigation / widgets */
.toolbar { padding: 21px 0; margin-bottom: 21px; }
.toolbar-label, .refresh-meta { color: var(--muted); }
.turn-selector { background: var(--surface-alt); border-color: var(--border); border-radius: 8px; }
.turn-button { border-radius: 6px; color: var(--soft); }
.turn-button.active, body.light .turn-button.active { background: #1b2a40; color: #fff; }
.refresh-button { color: var(--text); background: var(--surface); border-color: var(--border); }
.refresh-button:hover { color: var(--text); border-color: var(--muted); }
.overview-grid { margin-bottom: 48px; gap: 13px; }
.summary-card, body.light .summary-card, .summary-progress, body.light .summary-progress {
  background: var(--surface); border-color: var(--border); border-radius: 13px;
  box-shadow: none; min-height: 168px;
}
.summary-progress { border-top: 3px solid var(--green); }
.card-head { color: var(--muted); }
.card-symbol { color: var(--soft); }
.metric-main small { color: var(--green); }
.metric-description { color: var(--muted); }
.progress-ring { background: conic-gradient(var(--green) calc(var(--pct)*1%), var(--track) 0); }
.progress-ring:before, body.light .progress-ring:before { background: var(--surface); }
.progress-ring span { color: var(--text); }
.progress-track { background: var(--track); }
.progress-track span { background: var(--green); }
.mini-eyebrow { color: var(--mint); }
.title-spark { display: none; }
.data-badge { background: var(--surface-alt); border-color: var(--border); color: var(--soft); }
.data-badge span { background: var(--green); }
.info-banner { background: #edf5fa; border: 1px solid #d7e6ed; color: #29465a; }
.info-banner.error { background: #fff0f0; border-color: #f0cdcd; color: #9f3434; }
.info-banner p { color: #667b8d; }
/* Candidate metrics emphasize the race, without gradients or implied endorsement. */
.candidate-grid { gap: 14px; }
.candidate-card, body.light .candidate-card, .candidate-card.party-lula, .candidate-card.party-flavio {
  background: var(--surface); border: 1px solid var(--border);
  box-shadow: none; border-radius: 13px; padding: 25px 25px 24px;
}
.candidate-card::before { height: 5px; opacity: 1; background: var(--candidate-color); }
.candidate-card.party-lula { --candidate-color: var(--red); }
.candidate-card.party-flavio { --candidate-color: var(--green); }
.candidate-card.party-other { --candidate-color: #7a899d; }
.candidate-card.party-lula .candidate-avatar { background: #fbe9ec; border: 1px solid #eec4cb; }
.candidate-card.party-flavio .candidate-avatar { background: #e4f5eb; border: 1px solid #bde6ce; }
.candidate-name { color: var(--text); }
.candidate-number { color: var(--muted); }
.candidate-votes, .candidate-pct { color: var(--text); }
.candidate-track { background: var(--track); }
.candidate-track span { background: var(--candidate-color); }
.party-logo { background: #fff; border: 1px solid var(--border); }
.candidate-extra strong { color: var(--mint); }
/* Publicidade — intentionally visually distinct from election reporting. */
.sponsor-section { margin: 43px 0 51px; }
.ad-label { display: inline-block; font-size: 9px; letter-spacing: .19em; font-weight: 800; color: var(--muted); margin-bottom: 9px; }
.sponsor-banner {
  display: flex; align-items: center; gap: 23px;
  padding: 23px 27px; background: #162239; color: #fff;
  border: 1px solid #162239; border-radius: 12px;
}
.sponsor-icon { display: grid; place-items: center; flex: 0 0 70px; height: 70px; border-radius: 13px; color: #fff; background: #253a51; }
.sponsor-icon svg { width: 51px; height: 51px; }
.sponsor-copy { flex: 1; min-width: 0; }
.sponsor-line { display: flex; align-items: center; gap: 14px; margin-bottom: 8px; }
.sponsor-line strong { font-family: 'Space Grotesk',sans-serif; font-size: 22px; line-height: 1; letter-spacing: -.065em; }
.sponsor-line strong span { color: #58d19a; }
.sponsor-tag { font-size: 9px; letter-spacing: .14em; font-weight: 700; color: #bac8d9; }
.sponsor-copy h3 { font-family:'Space Grotesk',sans-serif; letter-spacing: -.025em; font-size: clamp(18px,2.05vw,26px); font-weight: 600; line-height: 1.2; margin: 0 0 6px; }
.sponsor-copy p { margin: 0; color: #bfccda; font-size: 12px; }
.sponsor-cta {
  display: inline-flex; flex: none; align-items: center; justify-content: center; gap: 9px;
  min-height: 49px; padding: 12px 18px;
  background: #25b66a; border: 1px solid #25b66a; border-radius: 8px;
  color: #082a20; font-size: 12px; font-weight: 800; white-space: nowrap;
}
.sponsor-cta:hover { background: #41cf82; border-color: #41cf82; }
.sponsor-cta span { font-size: 18px; line-height: 1; }
.ad-disclaimer { color: var(--muted); font-size: 10px; line-height: 1.5; margin: 9px 0 0; }
/* Map, polling and details cards use neutral flat surfaces. */
.map-section, .poll-section { margin: 40px 0 53px; }
.map-update-indicator { color: var(--muted); }
.map-stage, .map-sidebar, .poll-card, .details-card {
  background: var(--surface); border-color: var(--border); box-shadow: none; border-radius: 13px;
}
.map-legend, body.light .map-legend { color: var(--soft); }
.swatch-pending { background: #cdd5de; }
.map-state { fill: #d8e0e7; stroke: #fff; stroke-width: 1.4; }
.map-state[data-winner='lula'] { fill: var(--red); }
.map-state[data-winner='flavio'] { fill: var(--green); }
.map-state:hover, .map-state:focus-visible { filter: brightness(.92); stroke: #203448; }
.map-state.selected { stroke: #162b45; stroke-width: 2.8; }
.map-loading { border: 1px dashed var(--border); color: var(--muted); }
.map-sidebar-head { border-color: var(--border); }
.map-sidebar h3 { color: var(--text); }
.map-sidebar-head p, .empty-state, .map-smallstatus { color: var(--muted); }
#state-select, body.light #state-select { background: var(--surface-alt); border-color: var(--border); color: var(--text); }
.uf-track, .poll-line { background: var(--track); }
.uf-tse { border-color: var(--border); }
.polls-source, body.light .polls-source { color: var(--text); border-color: var(--border); }
.polls-source:hover { border-color: var(--soft); }
.poll-date, .poll-kind, .poll-row small, body.light .poll-kind, body.light .poll-row small, .poll-metadata, .poll-bottom { color: var(--muted); }
.poll-bottom a { color: var(--mint); }
.poll-notice { background: var(--surface-alt); border-color: var(--border); }
.poll-notice p, .poll-notice strong { color: var(--soft); }
.poll-notice span { color: var(--soft); }
.details-card { background: var(--surface); }
.source-card>p strong { color: var(--text); }
.source-check { background: var(--mint-dim); }
.footer { border-color: var(--border); }
.footer-brand b { color: var(--green); }
/* Dark alternative also remains flat, instead of tinted gradients. */
body:not(.light) .status-pill { background: #243c38; border-color: #375e51; color: #9ad1b1; }
body:not(.light) .status-pill.status-waiting { background: #493c2a; border-color: #645039; color: #f2d9a8; }
body:not(.light) .status-pill.status-error { background: #492f39; border-color: #69404b; color: #fac4c4; }
body:not(.light) .info-banner { background: #1f3541; border-color: #395468; color: #d6e6f4; }
body:not(.light) .info-banner.error { background: #412b31; border-color: #60414b; color: #f0ced0; }
body:not(.light) .info-banner p { color: #afc1d1; }
body:not(.light) .candidate-card.party-lula .candidate-avatar { background: #492c36; border-color: #78414c; }
body:not(.light) .candidate-card.party-flavio .candidate-avatar { background: #244c3e; border-color: #447b60; }
body:not(.light) .map-state { stroke: #223149; fill: #5b6a7d; }
body:not(.light) .map-state[data-winner='lula'] { fill: var(--red); }
body:not(.light) .map-state[data-winner='flavio'] { fill: var(--green); }
body:not(.light) .duel-vs { background: #fff; border-color: #1b2638; }
/* Responsive refinements */
@media (max-width: 1080px) {
  .hero { grid-template-columns: 1fr minmax(310px,.9fr); gap: 22px; padding: 24px; }
  .hero h1 { font-size: clamp(50px,6vw,68px); }
  .hero-duel { height: 310px; }
  .duel-person img { height: 232px; }
  .sponsor-banner { gap: 15px; padding: 20px; }
}
@media (max-width: 800px) {
  .page-shell { width: min(calc(100% - 36px), 680px); }
  .topbar { height: 74px; }
  .source-top { display: none; }
  .top-nav { display: none; }
  .hero { display: grid; grid-template-columns: 1fr; gap: 17px; margin-top: 16px; padding: 23px; min-height: 0; }
  .hero-content { padding: 0; }
  .hero h1 { font-size: clamp(45px,9vw,71px); margin: 18px 0 13px; }
  .hero-description { font-size: 13px; line-height: 1.6; margin-bottom: 17px; }
  .hero-duel { width: 100%; max-width: none; height: 260px; margin: 0; }
  .duel-person img { height: 194px; object-position: center 22%; }
  .duel-name { font-size: 20px; padding-bottom: 36px; }
  .duel-caption { padding: 8px; }
  .sponsor-banner { display: grid; grid-template-columns: 52px 1fr; padding: 19px; gap: 13px; }
  .sponsor-icon { flex-basis: auto; width: 52px; height: 52px; }
  .sponsor-icon svg { width: 41px; height: 41px; }
  .sponsor-cta { grid-column: 1 / -1; width: 100%; }
  .sponsor-copy h3 { font-size: 19px; }
  .map-layout { grid-template-columns: 1fr; }
}
@media (max-width: 520px) {
  .page-shell { width: calc(100% - 28px); }
  .brand-symbol { width: 37px; height: 37px; }
  .brand-name { font-size: 18px; }
  .brand-lockup small { font-size: 8px; }
  .hero { padding: 19px; border-radius: 12px; }
  .hero h1 { font-size: 49px; }
  .hero .eyebrow { letter-spacing: .075em; font-size: 9px; }
  .hero-duel { height: 248px; }
  .duel-person img { height: 185px; }
  .duel-name { font-size: 19px; }
  .duel-name small { font-size: 9px; }
  .hero-meta { align-items: flex-start; gap: 10px; }
  .date-label { max-width: 120px; }
  .summary-card { min-height: 143px; padding: 15px; }
  .sponsor-section { margin: 36px 0 42px; }
  .sponsor-tag { font-size: 8px; }
  .sponsor-copy h3 { font-size: 17px; }
  .map-section, .poll-section { margin: 30px 0 40px; }
}
