:root{--ink:#202938;--muted:#606b79;--accent:#66adff;--stage:#e0e3e7;--bs-body-color:var(--ink);--bs-body-bg:#f8fafc;--bs-body-font-family:Arial,Helvetica,sans-serif}
body{margin:0;color:var(--ink);background:#f8fafc}.site-header{background:#181b22;border-bottom:1px solid #30353e}.site-header .navbar{min-height:80px}.navbar-brand img{display:block;object-fit:contain}.header-caption,.eyebrow{font-size:.75rem;letter-spacing:.13em;font-weight:700}.header-caption{color:#d2d8e2}.eyebrow{color:var(--muted)}
.viewport{overflow:hidden}.pages{display:flex;align-items:flex-start;width:200%;transition:transform .6s cubic-bezier(.22,1,.36,1)}.pages.detail{transform:translateX(-50%)}.page{flex:0 0 50%;width:50%;min-width:0}.page[inert]{height:0;overflow:hidden}
.intro{display:flex;justify-content:space-between;align-items:center;gap:20px}h1{font-size:clamp(1.8rem,3vw,3rem);font-weight:700;letter-spacing:-.055em;margin:.4rem 0 0;line-height:1.15}h1 em{font-style:normal;color:var(--accent)}.intro p{color:var(--muted);line-height:1.6;font-size:1rem}
.character-stage{position:relative;width:100%;background:var(--stage)}#candidate-carousel{touch-action:pan-y pinch-zoom}.candidate-stage-image{display:block;width:100%;height:clamp(430px,65vh,680px);object-fit:contain;object-position:center center;background:var(--stage);user-select:none}.stage-action{position:absolute;bottom:80px;left:50%;transform:translateX(-50%);z-index:3;width:min(330px,75%);text-align:center}.hear-button{width:100%;padding:1rem 1.25rem;font-size:1rem;font-weight:700;box-shadow:0 6px 24px #18202b25}
.btn-primary{--bs-btn-bg:var(--accent);--bs-btn-border-color:var(--accent);--bs-btn-hover-bg:#8bc1ff;--bs-btn-hover-border-color:#8bc1ff;--bs-btn-active-bg:#4396ef;--bs-btn-active-border-color:#4396ef;--bs-btn-focus-shadow-rgb:102,173,255}.stage-caption{position:absolute;bottom:0;left:0;right:0;display:flex;justify-content:space-between;align-items:center;gap:16px;padding-top:18px;padding-bottom:18px;background:#f8fafce8;z-index:2}.stage-caption strong{font-size:clamp(1.25rem,2.5vw,2rem);letter-spacing:-.035em}.stage-caption span{font:.875rem monospace;color:var(--muted)}.carousel-control-prev,.carousel-control-next{width:8%;min-width:48px;opacity:.85;z-index:4}.carousel-control-prev-icon,.carousel-control-next-icon{background-color:#273444;border-radius:50%;width:2.5rem;height:2.5rem;background-size:55%}
.choice{display:flex;gap:.65rem;align-items:flex-start;text-align:left;padding:1rem .85rem;border:1px solid #cfd5de;background:white;color:var(--ink);transition:background .2s,border-color .2s}.choice:hover{background:#eef2f6;border-color:#8491a2}.choice[aria-pressed="true"]{border-color:var(--accent);background:#eaf3ff;box-shadow:inset 0 3px var(--accent)}.choice-number{font:.75rem monospace;color:var(--muted);padding-top:.3rem}.choice[aria-pressed="true"] .choice-number{color:var(--accent)}.choice strong{display:block;font-size:1rem;font-weight:700}.choice small{display:block;font-size:.875rem;line-height:1.5;color:var(--muted);margin-top:.4rem}
.candidate-portrait{background:var(--stage);border-radius:.5rem;overflow:hidden;border:1px solid #d6dce4}.candidate-portrait img{display:block;height:auto;aspect-ratio:auto;object-fit:contain}.portrait-caption{padding:1rem 1.25rem;background:white;font-size:1.125rem;font-weight:700}.back-button{padding:1rem;font-size:1rem;font-weight:600}h2{font-size:clamp(2rem,3.5vw,3.5rem);font-weight:700;line-height:1.1;letter-spacing:-.045em;margin:1rem 0 1.25rem}.belief{font-size:1.125rem;color:#66adff;margin-bottom:1.5rem}.pitch{font-size:1.0625rem;line-height:1.85}.pitch p{margin-bottom:1.25rem}.satire-note{font-size:.875rem;line-height:1.6;color:var(--muted)}footer{display:flex;justify-content:space-between;gap:16px;border-top:1px solid #dce2e9;color:var(--muted);font-size:.75rem;margin-top:1rem}button:focus-visible,a:focus-visible{outline:3px solid #236ac1;outline-offset:4px}
@media(max-width:767px){.intro p{display:none}.site-header .navbar{min-height:70px}.navbar-brand img{width:75px;height:auto}.header-caption{font-size:.65rem;letter-spacing:.08em}.candidate-stage-image{height:clamp(390px,60vh,550px)}.stage-action{bottom:78px}.choice{padding:.85rem .65rem;gap:.4rem}.choice strong{font-size:.9375rem}.choice-number{display:none}.pitch{font-size:1rem}.stage-caption{padding-bottom:18px}.candidate-portrait{max-width:600px}.carousel-control-prev,.carousel-control-next{width:12%}footer{flex-wrap:wrap}}
@media(prefers-reduced-motion:reduce){.pages,.carousel-item{transition:none!important}}

/* Restore the original charcoal theme; portrait sizing stays unchanged. */
:root{color-scheme:dark;--ink:#f6f5f3;--muted:#a6a6ad;--accent:#66adff;--bs-body-color:var(--ink);--bs-body-bg:#111113}
body{background:#111113;color:var(--ink)}
.site-header{background:#111113;border-bottom-color:#303034}
.header-caption{color:#a6a6ad}
.btn-primary{--bs-btn-color:#111113;--bs-btn-hover-color:#111113;--bs-btn-active-color:#111113;--bs-btn-hover-bg:#8bc1ff;--bs-btn-hover-border-color:#8bc1ff;--bs-btn-active-bg:#4396ef;--bs-btn-active-border-color:#4396ef;--bs-btn-focus-shadow-rgb:102,173,255}
.stage-caption{background:#111113ed;color:#f6f5f3}
.choice{background:#18181b;color:var(--ink);border-color:#38383d}
.choice:hover{background:#232326;color:var(--ink);border-color:#6b6b74}
.choice[aria-pressed="true"]{background:#66adff10;border-color:var(--accent)}
.candidate-portrait{border-color:#38383d}
.portrait-caption{background:#18181b;color:var(--ink)}
.belief{color:var(--accent)}
.pitch{color:#c8c8ce}
footer{border-top-color:#303034}
button:focus-visible,a:focus-visible{outline-color:#a8d0ff}


/* Full-width carousel; proportional cover crops eliminate gray padding. */
.character-stage{overflow:hidden;background:#252528}
.candidate-stage-image{height:clamp(500px,72vh,900px);object-fit:cover;object-position:center 30%;background:#252528}
.candidate-portrait{overflow:hidden}
.candidate-portrait img{height:clamp(380px,42vw,580px);object-fit:cover;object-position:center 35%;aspect-ratio:auto}
@media(min-width:1600px){.candidate-stage-image{height:clamp(680px,78vh,1000px)}}
@media(max-width:767px){.candidate-stage-image{height:clamp(420px,62vh,650px);object-position:center 35%}.candidate-portrait img{height:400px}}

/* Panoramic landing assets: native wide framing, no oversized portrait zoom. */
.candidate-stage-image{height:auto;min-height:0;width:100%;aspect-ratio:3/1;object-fit:cover;object-position:center}
@media(min-width:1600px){.candidate-stage-image{height:auto}}
@media(max-width:767px){.candidate-stage-image{height:420px;aspect-ratio:auto;object-position:center}}

/* Shared candidate poll */
.poll-section {border-top:1px solid #353535;margin-top:1rem;}
.poll-heading {display:flex;justify-content:space-between;align-items:center;gap:1rem;flex-wrap:wrap;margin-bottom:1.5rem;}
.poll-heading h2 {font-size:clamp(1.9rem,4vw,3.2rem);margin:.5rem 0;}
.poll-heading p,.poll-submit p {color:#b9b9b9;margin:0;}
.poll-total {font-size:.85rem;text-transform:uppercase;letter-spacing:.1em;color:#ddd;}
#poll-options {border:0;padding:0;margin:0;min-width:0;}
.poll-option {display:flex;align-items:center;gap:.65rem;background:#202020;border:1px solid #454545;padding:1rem;border-radius:.5rem;cursor:pointer;height:100%;}
.poll-option:has(input:checked) {border-color:#66adff;background:#202c3b;}
.poll-option:focus-within {outline:2px solid #66adff;outline-offset:3px;}
.poll-option input {accent-color:#66adff;flex-shrink:0;width:1.1rem;height:1.1rem;}
.poll-option img {width:56px;height:56px;object-fit:cover;border-radius:50%;flex-shrink:0;}
.poll-option strong {font-size:1rem;}
.poll-submit {display:flex;align-items:center;gap:1rem;flex-wrap:wrap;margin:1.5rem 0 2rem;}
.poll-results {display:grid;grid-template-columns:1fr 1fr;gap:1.25rem 2rem;}
.poll-result-label {display:flex;justify-content:space-between;gap:1rem;margin-bottom:.5rem;font-size:.9rem;}
.poll-result-label span {color:#b9b9b9;white-space:nowrap;}
.poll-track {background:#353535;height:10px;border-radius:10px;overflow:hidden;}
.poll-fill {height:100%;background:#66adff;transition:width .35s ease;}
@media(max-width:575px){.poll-results{grid-template-columns:1fr}.poll-option img{width:48px;height:48px}}
@media(prefers-reduced-motion:reduce){.poll-fill{transition:none}}

/* Keep the new wide portraits aligned at the head when cropped. */
.candidate-stage-image{object-position:center top}
@media(max-width:767px){.candidate-stage-image{object-position:center top}}

/* Horizontal swipes change candidates; vertical gestures scroll the page. */
.character-stage{touch-action:pan-y pinch-zoom}
.stage-caption{pointer-events:none}
