:root{--cv-a:#667eea;--cv-b:#764ba2;--cv-c:#9b5de5;--cv-bg:#0f0f18;--glass:rgba(255,255,255,.085)}
html{scroll-behavior:smooth} body{overflow-x:hidden}.section{overflow:hidden}.header{padding-left:max(20px,env(safe-area-inset-left));padding-right:max(20px,env(safe-area-inset-right))}
.voting-logo{position:relative;width:46px;height:46px;border:2px solid rgba(255,255,255,.72);border-radius:11px;background:linear-gradient(145deg,rgba(102,126,234,.3),rgba(118,75,162,.25));box-shadow:0 8px 25px rgba(102,126,234,.2);color:#fff}.voting-logo:before{content:"";position:absolute;width:23px;height:5px;top:10px;border-radius:6px;background:linear-gradient(90deg,var(--cv-a),var(--cv-b))}.voting-logo .ballot-top{position:absolute;width:28px;height:3px;top:16px;background:rgba(255,255,255,.65);border-radius:10px}.voting-logo i{font-size:17px;transform:translateY(5px)}
.menu-item.menu-cta{padding:10px 17px;border-radius:999px;background:linear-gradient(135deg,var(--cv-a),var(--cv-b));color:#fff}.menu-item.menu-cta:after{display:none}.menu-item.menu-cta:hover{box-shadow:0 10px 25px rgba(102,126,234,.28)}
#home{background:radial-gradient(circle at 50% 48%,rgba(102,126,234,.19),transparent 26%),radial-gradient(circle at 20% 20%,rgba(118,75,162,.14),transparent 24%),radial-gradient(ellipse at center,#1a1a2e 0%,#0b0b11 74%)}
.info{width:min(92%,760px);top:116px}.hero-kicker,.section-eyebrow{display:inline-block;margin-bottom:9px;color:#b9c1ff;font-size:11px;font-weight:800;letter-spacing:1.7px;text-transform:uppercase}.info h2{font-size:clamp(28px,4vw,42px);letter-spacing:-1px}.info p{max-width:680px;margin:0 auto;line-height:1.6}
.coverflow-wrapper{min-height:720px}.coverflow{height:390px}.coverflow-item{width:310px;height:310px}.vote-cover{border:1px solid rgba(255,255,255,.12)!important;background:#17172b!important;isolation:isolate}.vote-cover:after{content:"";position:absolute;inset:0;border-radius:10px;box-shadow:inset 0 1px 0 rgba(255,255,255,.14),inset 0 -55px 80px rgba(0,0,0,.32);pointer-events:none}.coverflow-item.active .vote-cover{border-color:rgba(184,190,255,.32)!important;box-shadow:0 35px 90px rgba(0,0,0,.85),0 0 48px rgba(102,126,234,.17)!important}.scene-grid{position:absolute;inset:0;opacity:.17;background-image:linear-gradient(rgba(255,255,255,.15) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.15) 1px,transparent 1px);background-size:30px 30px;mask-image:linear-gradient(to bottom,black,transparent 80%)}
.vote-scene-content{position:absolute;z-index:3;inset:24px;display:flex;flex-direction:column;justify-content:flex-start;color:#fff}.vote-scene-content.bottom-copy{justify-content:flex-end}.vote-scene-content h3{margin:12px 0 4px;font-size:24px;letter-spacing:-.7px}.vote-scene-content p{margin:0;color:rgba(255,255,255,.65);font-size:12px}.scene-badge{width:max-content;padding:7px 10px;border:1px solid rgba(255,255,255,.13);border-radius:999px;background:rgba(0,0,0,.18);font-size:8px;font-weight:800;letter-spacing:1px}.scene-badge i{margin-right:5px;color:#60e29b;font-size:6px}.scene-icon{width:84px;height:84px;display:grid;place-items:center;margin:auto;border:1px solid rgba(255,255,255,.18);border-radius:24px;background:rgba(255,255,255,.1);backdrop-filter:blur(12px);font-size:35px;box-shadow:0 25px 55px rgba(0,0,0,.25)}
.scene-election{background:radial-gradient(circle at 70% 18%,rgba(116,92,255,.48),transparent 30%),linear-gradient(145deg,#191a35,#10111e)!important}.scene-orb{position:absolute;border-radius:50%;filter:blur(1px)}.orb-a{width:110px;height:110px;right:-28px;top:48px;background:rgba(102,126,234,.18)}.orb-b{width:85px;height:85px;left:-30px;bottom:32px;background:rgba(118,75,162,.2)}
.scene-candidates{background:radial-gradient(circle at 50% 32%,rgba(143,103,255,.38),transparent 40%),linear-gradient(145deg,#1b1733,#0d101c)!important}.candidate-stack{position:absolute;left:50%;top:49%;width:220px;height:155px;transform:translate(-50%,-50%)}.candidate-bubble{position:absolute;width:94px;height:94px;display:grid;place-items:center;border:1px solid rgba(255,255,255,.18);border-radius:50%;color:#fff;background:linear-gradient(145deg,rgba(255,255,255,.17),rgba(255,255,255,.05));backdrop-filter:blur(12px);font-size:34px;box-shadow:0 18px 40px rgba(0,0,0,.26)}.candidate-bubble.one{left:62px;top:0;z-index:3}.candidate-bubble.two{left:0;top:48px;transform:scale(.8);opacity:.75}.candidate-bubble.three{right:0;top:48px;transform:scale(.8);opacity:.75}
.scene-secure{background:radial-gradient(circle at 50% 40%,rgba(72,201,176,.26),transparent 40%),linear-gradient(145deg,#111f2a,#11111d)!important}.shield-visual{position:absolute;left:50%;top:45%;width:145px;height:165px;display:grid;place-items:center;transform:translate(-50%,-50%);clip-path:polygon(50% 0,91% 15%,86% 68%,50% 100%,14% 68%,9% 15%);color:#fff;background:linear-gradient(160deg,rgba(102,126,234,.9),rgba(82,179,185,.8));font-size:50px;box-shadow:0 25px 50px rgba(0,0,0,.35)}
.scene-ballot{background:radial-gradient(circle at 80% 18%,rgba(118,75,162,.4),transparent 27%),linear-gradient(145deg,#19172d,#10101b)!important}.ballot-paper{position:absolute;left:50%;top:50%;width:210px;padding:19px;transform:translate(-50%,-50%) rotate(-2deg);border:1px solid rgba(255,255,255,.14);border-radius:15px;background:rgba(255,255,255,.94);box-shadow:0 28px 60px rgba(0,0,0,.4);color:#25273b}.paper-line{height:5px;width:58%;margin-bottom:9px;border-radius:10px;background:#dfe1eb}.paper-line.wide{width:80%;height:8px;background:#bdc1d6}.paper-choice{height:40px;display:flex;align-items:center;gap:8px;margin-top:9px;padding:0 10px;border:1px solid #e4e6ee;border-radius:9px;font-size:10px}.paper-choice>span{width:13px;height:13px;border:1px solid #bdc1d0;border-radius:50%}.paper-choice b{flex:1}.paper-choice i{color:#fff;font-size:8px}.paper-choice.active{border-color:#7678e8;background:#f2f2ff}.paper-choice.active>span{border:4px solid #6769dc}.paper-choice.active i{width:17px;height:17px;display:grid;place-items:center;border-radius:50%;background:#6769dc}.paper-submit{margin-top:12px;padding:9px;border-radius:8px;color:#fff;background:linear-gradient(135deg,var(--cv-a),var(--cv-b));font-size:8px;font-weight:800;text-align:center;letter-spacing:.5px}
.scene-results{background:radial-gradient(circle at 25% 15%,rgba(102,126,234,.32),transparent 30%),linear-gradient(145deg,#171a2f,#0c1019)!important}.chart-visual{position:absolute;left:50%;top:47%;width:220px;height:135px;display:flex;align-items:flex-end;gap:18px;transform:translate(-50%,-50%);padding:0 15px 16px;border-left:1px solid rgba(255,255,255,.16);border-bottom:1px solid rgba(255,255,255,.16)}.bar{position:relative;flex:1;border-radius:8px 8px 2px 2px;background:linear-gradient(180deg,#8e8ff4,#5b5ce2);box-shadow:0 12px 25px rgba(91,92,226,.2)}.bar span{position:absolute;top:-21px;width:100%;color:#fff;font-size:9px;font-weight:800;text-align:center}.bar-one{height:86%}.bar-two{height:63%;opacity:.8}.bar-three{height:52%;opacity:.62}
.scene-admin{background:radial-gradient(circle at 75% 15%,rgba(118,75,162,.35),transparent 32%),linear-gradient(145deg,#18162e,#0d1019)!important}.admin-window{position:absolute;left:50%;top:45%;width:230px;height:145px;display:flex;transform:translate(-50%,-50%) rotate(2deg);overflow:hidden;border:1px solid rgba(255,255,255,.16);border-radius:12px;background:rgba(255,255,255,.08);box-shadow:0 26px 55px rgba(0,0,0,.38);backdrop-filter:blur(14px)}.admin-sidebar{width:44px;display:flex;flex-direction:column;align-items:center;gap:18px;padding-top:18px;background:rgba(0,0,0,.24);color:rgba(255,255,255,.64);font-size:10px}.admin-main{flex:1;padding:17px}.admin-main>span{display:block;height:7px;margin-bottom:8px;border-radius:8px;background:rgba(255,255,255,.12)}.admin-main>span:nth-child(2){width:72%}.admin-main>span:nth-child(3){width:52%}.admin-card{height:58px;display:grid;place-items:center;margin-top:12px;border-radius:9px;background:linear-gradient(135deg,rgba(102,126,234,.55),rgba(118,75,162,.35));color:#fff;font-size:20px}
.scene-mobile{background:radial-gradient(circle at 30% 25%,rgba(102,126,234,.3),transparent 35%),linear-gradient(145deg,#161a2f,#0b101a)!important}.device-visual{position:absolute;display:grid;place-items:center;border:2px solid rgba(255,255,255,.42);background:rgba(255,255,255,.06);box-shadow:0 22px 50px rgba(0,0,0,.35);color:#fff}.device-visual.laptop{left:48px;top:70px;width:185px;height:110px;border-radius:10px}.device-visual.laptop:after{content:"";position:absolute;bottom:-12px;width:215px;height:9px;border-radius:2px 2px 12px 12px;background:rgba(255,255,255,.35)}.device-visual.phone{right:35px;top:95px;width:65px;height:120px;border-radius:13px;background:rgba(20,20,35,.92)}.device-visual i{font-size:27px}.device-visual.phone i{font-size:20px}.device-visual span{position:absolute;top:8px;width:30%;height:3px;border-radius:3px;background:rgba(255,255,255,.25)}
.reflection{height:72%!important;opacity:.16!important;filter:blur(4px)!important;background:linear-gradient(to bottom,rgba(103,108,230,.26),rgba(52,39,84,.08) 45%,rgba(0,0,0,.9))!important;mask-image:linear-gradient(to bottom,rgba(0,0,0,.55),transparent)}
.play-pause-button{bottom:105px}.dots-container{bottom:52px}.nav-button{background:rgba(255,255,255,.075)}
.section-eyebrow{margin-bottom:4px}.voting-showcase{background:radial-gradient(circle at 50% 32%,rgba(125,108,255,.23),transparent 32%)}.voting-showcase .showcase-logo{display:grid;place-items:center;border:1px solid rgba(255,255,255,.14);border-radius:24px;background:rgba(255,255,255,.08);font-size:47px}.voting-showcase .showcase-logo i{color:#fff}.showcase-badges .badge{color:#fff;text-decoration:none}.cta-button{gap:10px}.cta-button i{font-size:12px}
#access{background:radial-gradient(ellipse at center,#1a1a2e 0%,#0f0f0f 100%)}.access-content{max-width:1200px}.access-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin:0 auto 46px}.access-card{position:relative;min-height:260px;padding:32px;border:1px solid rgba(255,255,255,.12);border-radius:20px;background:linear-gradient(145deg,rgba(255,255,255,.09),rgba(255,255,255,.035));box-shadow:0 25px 55px rgba(0,0,0,.24);backdrop-filter:blur(14px);transform-style:preserve-3d;transition:transform .18s ease,box-shadow .25s}.access-card>span{position:absolute;top:25px;right:27px;color:rgba(255,255,255,.24);font-size:12px;font-weight:800;letter-spacing:1px}.access-card>i{width:64px;height:64px;display:grid;place-items:center;margin-bottom:36px;border-radius:18px;color:#fff;background:linear-gradient(135deg,var(--cv-a),var(--cv-b));box-shadow:0 15px 34px rgba(102,126,234,.25);font-size:23px;transform:translateZ(28px)}.access-card h3{margin:0 0 12px;color:#fff;font-size:24px;transform:translateZ(20px)}.access-card p{margin:0;color:rgba(255,255,255,.64);line-height:1.7;font-size:14px;transform:translateZ(14px)}.access-actions{display:flex;justify-content:center;gap:12px;flex-wrap:wrap}.access-primary,.access-secondary{display:inline-flex;align-items:center;gap:9px;padding:14px 22px;border-radius:999px;color:#fff;text-decoration:none;font-size:13px;font-weight:700}.access-primary{background:linear-gradient(135deg,var(--cv-a),var(--cv-b));box-shadow:0 12px 30px rgba(102,126,234,.24)}.access-secondary{border:1px solid rgba(255,255,255,.18);background:rgba(255,255,255,.07)}
.system-tilt{transform-style:preserve-3d;will-change:transform}.system-tilt:hover{box-shadow:0 30px 65px rgba(0,0,0,.32)}
@media(max-width:1024px){.coverflow-item{width:260px;height:260px}.coverflow{height:340px}.info{top:110px}.vote-scene-content{inset:20px}.vote-scene-content h3{font-size:20px}.ballot-paper{width:185px}.access-grid{gap:18px}.access-card{padding:26px}.main-menu{gap:24px}}
@media(max-width:768px){.header{padding:0 20px}.coverflow-wrapper{min-height:680px;padding-top:70px}.info{top:102px;padding:0 18px}.info h2{font-size:28px}.info p{font-size:13px}.coverflow{height:300px;margin-top:50px}.coverflow-item{width:220px;height:220px}.nav-button.prev{left:18px}.nav-button.next{right:18px}.play-pause-button{bottom:86px}.dots-container{bottom:36px}.vote-scene-content{inset:16px}.vote-scene-content h3{font-size:18px}.vote-scene-content p{font-size:10px}.scene-badge{font-size:7px;padding:5px 7px}.scene-icon{width:62px;height:62px;border-radius:17px;font-size:26px}.candidate-stack{transform:translate(-50%,-54%) scale(.72)}.shield-visual{transform:translate(-50%,-54%) scale(.72)}.ballot-paper{transform:translate(-50%,-50%) rotate(-2deg) scale(.78)}.chart-visual{transform:translate(-50%,-55%) scale(.72)}.admin-window{transform:translate(-50%,-55%) rotate(2deg) scale(.76)}.device-visual.laptop{transform:scale(.7);transform-origin:left top;left:34px;top:62px}.device-visual.phone{transform:scale(.72);transform-origin:right top;right:23px;top:77px}.access-grid{grid-template-columns:1fr}.access-card{min-height:220px}.footer-content{padding-left:20px;padding-right:20px}}
@media(max-width:480px){.header{height:64px;padding:0 14px}.header.scrolled{height:58px}.logo-text{font-size:15px}.voting-logo{width:38px;height:38px}.main-menu{top:64px}.coverflow-wrapper{min-height:630px;padding-top:64px}.info{top:88px}.hero-kicker{font-size:8px;letter-spacing:1.2px}.info h2{font-size:23px;margin-bottom:6px}.info p{font-size:11px;line-height:1.45}.coverflow{height:250px;margin-top:62px}.coverflow-item{width:184px;height:184px}.nav-button{top:54%;width:38px;height:38px}.nav-button.prev{left:8px}.nav-button.next{right:8px}.play-pause-button{width:40px;height:40px;bottom:73px;font-size:15px}.dots-container{bottom:26px;gap:7px}.dot{width:8px;height:8px}.vote-scene-content{inset:13px}.vote-scene-content h3{font-size:15px;margin-top:7px}.vote-scene-content p{font-size:8px}.scene-icon{width:51px;height:51px;font-size:21px}.candidate-stack{transform:translate(-50%,-57%) scale(.58)}.shield-visual{transform:translate(-50%,-58%) scale(.58)}.ballot-paper{transform:translate(-50%,-53%) rotate(-2deg) scale(.63)}.chart-visual{transform:translate(-50%,-60%) scale(.58)}.admin-window{transform:translate(-50%,-59%) rotate(2deg) scale(.62)}.device-visual.laptop{transform:scale(.55);left:28px;top:49px}.device-visual.phone{transform:scale(.55);right:17px;top:62px}.about-header h2{font-size:31px}.access-card{min-height:200px;padding:23px}.access-card>i{width:54px;height:54px;margin-bottom:28px}.access-card h3{font-size:21px}.access-card p{font-size:13px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.coverflow-item,.system-tilt,.nav-button,.play-pause-button{transition:none!important}.system-tilt{transform:none!important}}

/* Database-driven election cards share the landing page's dark purple palette. */
.election-group-heading{font-size:22px;margin:32px 0 18px;color:#fff}
.landing-election-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}
.landing-election-card{display:flex;flex-direction:column;min-width:0;padding:26px;border:1px solid rgba(184,190,255,.18);border-radius:18px;background:linear-gradient(145deg,#1c1c35,#121222);box-shadow:0 18px 45px rgba(0,0,0,.25)}
.election-status{align-self:flex-start;border-radius:20px;padding:6px 11px;font-size:12px;font-weight:600;background:rgba(102,126,234,.18);color:#c3caff}
.election-status-open{background:rgba(74,222,128,.12);color:#9ee6b9}
.landing-election-card h4{font-size:22px;line-height:1.35;margin:18px 0 12px;overflow-wrap:anywhere}
.landing-election-card p{color:#b6b6c9;font-size:14px;line-height:1.7;overflow-wrap:anywhere;margin:0 0 24px}
.election-card-footer{display:flex;flex-wrap:wrap;gap:14px;justify-content:space-between;align-items:center;margin-top:auto;font-size:13px;color:#b6b6c9}
.election-card-footer a{color:#c3caff;text-decoration:none;font-weight:600}
.election-card-footer a:hover{color:#fff}
.election-card-footer a:focus-visible{outline:2px solid #c3caff;outline-offset:5px;border-radius:3px}
.landing-election-empty{grid-column:1/-1;display:flex;align-items:center;gap:18px;padding:28px;border:1px dashed rgba(184,190,255,.25);border-radius:18px;color:#b6b6c9;line-height:1.7}
.landing-election-empty>i{color:#a5afff;font-size:28px}
#elections{scroll-margin-top:80px}
#elections>.about-content{width:100%}
@media(max-width:1024px){.landing-election-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.main-menu{gap:18px}}
@media(max-width:768px){.landing-election-grid{grid-template-columns:1fr}.landing-election-card{padding:23px}.election-group-heading{font-size:20px}}
