@import "https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&family=Noto+Sans+Tamil:wght@400;600;700&display=swap";*,:before,:after{box-sizing:border-box;margin:0;padding:0}:root{--color-bg:#050b18;--color-bg2:#0a1225;--color-surface:#0a142dd9;--color-glass:#ffffff0a;--color-border:#ffffff1a;--color-text:#e8eaf6;--color-text-dim:#c8d2f099;--color-dmk:#e53935;--color-tvk:#f9a825;--color-accent:#4fc3f7;--glow-dmk:0 0 20px #e5393566;--glow-tvk:0 0 20px #f9a82566;--font-main:"Inter", system-ui, sans-serif;--font-tamil:"Noto Sans Tamil", sans-serif;--radius-sm:8px;--radius-md:14px;--radius-lg:20px;--shadow-panel:0 25px 60px #0009, 0 0 40px #4fc3f714}html,body{background:var(--color-bg);height:100%;color:var(--color-text);font-family:var(--font-main);-webkit-font-smoothing:antialiased;overflow:hidden}#root{flex-direction:column;height:100%;display:flex}@keyframes panBackground{0%{background-position:0%}50%{background-position:100%}to{background-position:0%}}@keyframes scaleIn{0%{opacity:0;transform:scale(.88)}to{opacity:1;transform:scale(1)}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes slideUpSheet{0%{transform:translateY(100%)}to{transform:translateY(0)}}@keyframes dropIn{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes shimmer{0%{background-position:-200px 0}to{background-position:200px 0}}@keyframes slideIn{0%{opacity:0;transform:translate(-16px)}to{opacity:1;transform:translate(0)}}@keyframes pulse-selected{0%,to{filter:brightness(1.4)drop-shadow(0 0 6px #4fc3f780)}50%{filter:brightness(1.6)drop-shadow(0 0 14px #4fc3f7e6)}}@keyframes pinPop{0%{opacity:0;transform:scale(.4)translateY(6px)}70%{transform:scale(1.1)translateY(-2px)}to{opacity:1;transform:scale(1)translateY(0)}}@keyframes slideUpModal{0%{opacity:0;transform:translateY(60px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeInCard{0%{opacity:0;transform:scale(.92)}to{opacity:1;transform:scale(1)}}.app{background-color:#0000;background-image:radial-gradient(at 60% 0,#0d1f3c 0%,#050b18 60%),url("data:image/svg+xml;utf8,<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"200\" height=\"200\"><circle cx=\"10\" cy=\"10\" r=\"1.5\" fill=\"rgba(255,255,255,0.8)\"/><circle cx=\"150\" cy=\"80\" r=\"1\" fill=\"rgba(255,255,255,0.4)\"/><circle cx=\"70\" cy=\"160\" r=\"2\" fill=\"rgba(255,255,255,0.6)\"/></svg>");background-position:0 0,0 0;background-repeat:repeat,repeat;background-size:cover,300px 300px;background-attachment:fixed;background-origin:padding-box,padding-box;background-clip:border-box,border-box;flex-direction:column;width:100vw;height:100dvh;display:flex;position:relative;overflow:hidden}.app-header{-webkit-backdrop-filter:blur(24px)saturate(180%);z-index:400;background:#050b18d1;border-bottom:1px solid #4fc3f740;flex-shrink:0;justify-content:space-between;align-items:center;gap:10px;height:52px;padding:0 12px;display:flex;box-shadow:0 4px 20px #00000080,inset 0 0 10px #4fc3f70d}.header-left{flex:1;align-items:center;gap:8px;min-width:0;display:flex}.logo-icon{filter:drop-shadow(0 0 8px #f9a82599);flex-shrink:0;font-size:24px}.header-titles{min-width:0}.app-title{font-family:var(--font-tamil), var(--font-main);background:linear-gradient(135deg,#f9a825,#e53935,#4fc3f7);-webkit-text-fill-color:transparent;white-space:nowrap;text-overflow:clip;-webkit-background-clip:text;background-clip:text;padding-block:2px;font-size:clamp(13px,3.5vw,18px);font-weight:700;line-height:1.4;overflow:visible}.app-subtitle{flex-wrap:wrap;align-items:center;gap:4px;margin-top:2px;display:flex}.stat-pill{color:#4fc3f7d9;white-space:nowrap;letter-spacing:.3px;background:#4fc3f71a;border:1px solid #4fc3f733;border-radius:8px;padding:1px 6px;font-size:9px;font-weight:600}.stat-pill--gold{color:#f9a825d9;background:#f9a8251a;border-color:#f9a82533}.header-actions{flex-shrink:0;align-items:center;gap:8px;display:flex}.wa-share-btn{color:#25d366;-webkit-tap-highlight-color:transparent;background:#25d36626;border:1px solid #25d36666;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:40px;height:40px;transition:all .2s;display:flex}.wa-share-btn svg{width:18px;height:18px}.wa-share-btn:hover,.wa-share-btn:active{background:#25d36647;border-color:#25d366;box-shadow:0 0 12px #25d36659}.search-toggle-btn{width:40px;height:40px;color:var(--color-text);cursor:pointer;-webkit-tap-highlight-color:transparent;background:#ffffff0f;border:1px solid #4fc3f74d;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:16px;transition:all .2s;display:flex}.search-toggle-btn.active,.search-toggle-btn:active{background:#e5393533;border-color:#e5393580}.main-canvas{flex:1;padding-bottom:76px;position:relative;overflow:hidden}.tn-map-container{width:100%;height:100%;position:relative}.tn-map-svg{touch-action:none;cursor:grab;width:100%;height:100%;display:block}.tn-map-svg:active{cursor:grabbing}.tn-map-svg path{cursor:pointer;stroke:#00081cb8;stroke-width:.8px;paint-order:stroke;vector-effect:non-scaling-stroke;transition:fill .2s,stroke-width .15s,opacity .2s}.tn-map-svg path:hover{stroke:#4fc3f7e6;stroke-width:2px;filter:brightness(1.25)}.tn-map-svg path.selected{stroke:#fff;stroke-width:2px;filter:brightness(1.4)drop-shadow(0 0 6px #4fc3f780);animation:2s ease-in-out infinite pulse-selected}.tn-map-svg path.search-highlight{stroke:#f9a825;stroke-width:2px;filter:brightness(1.5)}.candidate-pin{transition:filter .15s;animation:.3s cubic-bezier(.34,1.56,.64,1) both pinPop}.candidate-pin:hover{filter:brightness(1.25)drop-shadow(0 0 5px #ffffff80)}.constituency-label{fill:#fff;text-anchor:middle;dominant-baseline:central;font-family:var(--font-main), sans-serif;pointer-events:none;paint-order:stroke;stroke:#000000b3;stroke-width:.1px;opacity:.9;font-weight:600}.constituency-label.label-selected{fill:#fff;opacity:1;font-weight:800}.zoom-controls{z-index:50;flex-direction:column;gap:6px;display:flex;position:absolute;top:auto;bottom:90px;right:12px;transform:none}.zoom-btn{-webkit-backdrop-filter:blur(12px);width:44px;height:44px;color:var(--color-text,#e8eaf6);cursor:pointer;-webkit-tap-highlight-color:transparent;background:#050b18e0;border:1px solid #4fc3f74d;border-radius:12px;justify-content:center;align-items:center;font-size:20px;font-weight:700;line-height:1;transition:all .2s;display:flex;box-shadow:0 4px 16px #0006}.zoom-btn:hover{background:#4fc3f726;border-color:#4fc3f799}.zoom-btn:active{background:#4fc3f733;transform:scale(.9)}.zoom-reset{font-size:16px}.map-error{color:#e53935;justify-content:center;align-items:center;width:100%;height:100%;font-size:16px;display:flex}.hover-tooltip{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);color:var(--color-text);pointer-events:none;white-space:nowrap;z-index:60;background:#0a1428eb;border:1px solid #4fc3f74d;border-radius:30px;padding:7px 16px;font-size:13px;font-weight:500;animation:.2s fadeInUp;position:absolute;bottom:90px;left:50%;transform:translate(-50%);box-shadow:0 4px 20px #0006,0 0 10px #4fc3f726}.info-panel{-webkit-backdrop-filter:blur(20px);z-index:200;overscroll-behavior:contain;background:linear-gradient(#0a1228fc 0%,#050b18 100%);border-top:1px solid #4fc3f740;border-radius:20px 20px 0 0;flex-direction:column;max-height:calc(100dvh - 136px);display:flex;position:fixed;bottom:76px;left:0;right:0;overflow:hidden;box-shadow:0 -8px 40px #0009,0 0 0 1px #4fc3f714}.info-panel:before{content:"";background:#ffffff2e;border-radius:2px;flex-shrink:0;width:36px;height:4px;margin:10px auto 4px;display:block}.info-panel-header{border-bottom:1px solid var(--color-border);z-index:1;background:#0a1228fc;flex-shrink:0;justify-content:space-between;align-items:flex-start;gap:10px;padding:8px 16px 10px;display:flex}.info-constituency-name{background:linear-gradient(135deg,#e8eaf6 0%,#90caf9 100%);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;font-size:clamp(16px,4.5vw,22px);font-weight:700;line-height:1.2}.info-subtitle{color:var(--color-text-dim);text-transform:uppercase;letter-spacing:1px;margin-top:4px;font-size:10px}.info-close-btn{color:var(--color-text);cursor:pointer;-webkit-tap-highlight-color:transparent;background:#ffffff14;border:1px solid #ffffff26;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:36px;height:36px;font-size:14px;transition:all .2s;display:flex}.info-close-btn:hover,.info-close-btn:active{background:#e539354d;border-color:#e53935}.info-candidates{scrollbar-width:thin;scrollbar-color:#4fc3f74d transparent;overscroll-behavior:contain;flex-direction:column;flex:1;gap:10px;min-height:0;padding:12px 14px 20px;display:flex;overflow-y:auto}.info-candidates::-webkit-scrollbar{width:4px}.info-candidates::-webkit-scrollbar-thumb{background:#4fc3f74d;border-radius:4px}.candidate-card{border-radius:var(--radius-md);border:1px solid;align-items:flex-start;gap:12px;padding:12px 14px;transition:transform .2s,box-shadow .2s;animation:.35s cubic-bezier(.34,1.56,.64,1) both slideIn;display:flex}.candidate-card:nth-child(2){animation-delay:70ms}.candidate-card:nth-child(3){animation-delay:.14s}.candidate-card:nth-child(4){animation-delay:.21s}.candidate-card:active{transform:scale(.98)}.candidate-card.tbd{opacity:.6}.candidate-card.no-data{text-align:center;color:var(--color-text-dim);background:#ffffff08;border-color:#ffffff1a;flex-direction:column;align-items:center;padding:24px}.candidate-icon{margin-bottom:8px;font-size:28px}.candidate-avatar{background:#ffffff0f;border:2.5px solid #ffffff26;border-radius:14px;flex-shrink:0;justify-content:center;align-items:center;width:64px;height:64px;transition:border-color .3s,box-shadow .3s;display:flex;position:relative;overflow:hidden;box-shadow:0 4px 16px #00000059}.candidate-avatar img{object-fit:cover;object-position:top center;width:100%;height:100%;transition:opacity .4s;position:absolute;inset:0}.avatar-letter{-webkit-user-select:none;user-select:none;font-size:24px;font-weight:800;line-height:1}.candidate-avatar.tbd-avatar{opacity:.4}.avatar-shimmer{border-radius:inherit;background:linear-gradient(90deg,#ffffff0a 0%,#ffffff1f 50%,#ffffff0a 100%) 0 0/400px 100%;animation:1.3s ease-in-out infinite shimmer;position:absolute;inset:0}.candidate-party-badge{letter-spacing:.5px;color:#fff;text-shadow:0 1px 3px #00000080;border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;min-width:44px;height:22px;margin-bottom:4px;font-size:10px;font-weight:800;display:inline-flex}.candidate-info{flex:1;min-width:0}.candidate-party-full{text-transform:uppercase;letter-spacing:1.5px;color:var(--color-text-dim);margin-bottom:4px;font-size:10px}.candidate-name{color:var(--color-text);word-break:break-word;font-size:clamp(14px,3.5vw,17px);font-weight:600;line-height:1.3}.candidate-designation{color:var(--color-text-dim);margin-top:4px;font-size:11px;font-style:italic}.candidate-tbd{color:#c8d2f066;margin-top:4px;font-size:13px;font-style:italic}.search-overlay{z-index:300;-webkit-backdrop-filter:blur(24px);background:#050b18fa;border-bottom:1px solid #4fc3f740;padding:10px 14px;animation:.2s dropIn;position:fixed;top:52px;left:0;right:0;box-shadow:0 8px 30px #0009}.search-container{width:100%;position:relative}.search-box{background:#ffffff12;border:1px solid #4fc3f74d;border-radius:30px;align-items:center;gap:10px;padding:8px 16px;transition:border-color .2s,box-shadow .2s;display:flex}.search-box:focus-within{border-color:#4fc3f7a6;box-shadow:0 0 0 3px #4fc3f71f}.search-icon{color:var(--color-text-dim);flex-shrink:0;font-size:15px}.search-input{color:var(--color-text);background:0 0;border:none;outline:none;flex:1;min-width:0;font-size:15px}.search-input::placeholder{color:var(--color-text-dim)}.search-clear{color:var(--color-text-dim);cursor:pointer;opacity:.7;background:0 0;border:none;flex-shrink:0;padding:4px;font-size:13px;line-height:1}.search-clear:hover{opacity:1;color:var(--color-text)}.search-dropdown{-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border-radius:var(--radius-md);z-index:300;background:#080f23f7;border:1px solid #4fc3f740;list-style:none;animation:.15s dropIn;position:absolute;top:calc(100% + 8px);left:0;right:0;overflow:hidden;box-shadow:0 20px 60px #0009}.search-suggestion{cursor:pointer;border-bottom:1px solid #ffffff0d;justify-content:space-between;align-items:center;gap:8px;padding:10px 14px;transition:background .15s;display:flex}.search-suggestion:last-child{border-bottom:none}.search-suggestion:hover{background:#4fc3f71a}.suggestion-name{color:var(--color-text);flex:1;font-size:13px;font-weight:500}.suggestion-tags{flex-shrink:0;gap:4px;display:flex}.tag{text-transform:uppercase;letter-spacing:.5px;border-radius:10px;padding:2px 6px;font-size:9px;font-weight:700}.tag.dmk{color:#ff6b6b;background:#e5393540;border:1px solid #e5393566}.tag.tvk{color:#ffd54f;background:#f9a82540;border:1px solid #f9a82566}.party-filter-bar{-webkit-backdrop-filter:blur(20px);width:100%;padding-bottom:env(safe-area-inset-bottom,0px);z-index:250;background:#040916f7;border-top:1px solid #ffffff1a;flex-direction:column;display:flex;position:fixed;bottom:0;left:0;right:0;overflow:hidden}.pfb-row{align-items:center;gap:6px;height:56px;padding:0 12px;display:flex}.pfb-credit{border-top:1px solid #ffffff0f;justify-content:center;align-items:center;gap:4px;height:20px;padding-bottom:2px;display:flex}.pfb-credit-text{color:#c8d2f061;letter-spacing:.2px;font-size:9px}.pfb-credit-link{color:#4fc3f7a6;letter-spacing:.2px;font-size:9px;font-weight:700;text-decoration:none;transition:color .2s}.pfb-credit-link:hover{color:#4fc3f7}.pfb-credit-sep{color:#fff3;font-size:9px}.pfb-credit-tagline{color:#f9a8258c;letter-spacing:.2px;font-size:9px;font-style:italic}.feedback-btn{color:#4fc3f7d9;cursor:pointer;-webkit-tap-highlight-color:transparent;letter-spacing:.3px;background:#4fc3f70f;border:1.5px solid #4fc3f759;border-radius:20px;flex-shrink:0;align-items:center;gap:5px;padding:7px 12px;font-family:inherit;font-size:11px;font-weight:700;transition:all .18s;display:inline-flex}.feedback-btn:hover,.feedback-btn:active{color:#4fc3f7;background:#4fc3f724;border-color:#4fc3f7;box-shadow:0 0 12px #4fc3f740}.feedback-btn-label{font-family:var(--font-tamil,inherit), inherit}.pfb-divider{background:#ffffff1f;flex-shrink:0;width:1px;height:28px;margin:0 4px}.party-filter-btn{color:#c8d2f0bf;cursor:pointer;letter-spacing:.2px;white-space:nowrap;background:#ffffff0d;border:1.5px solid #0000;border-radius:20px;flex-shrink:0;align-items:center;gap:5px;padding:5px 10px;font-family:inherit;font-size:11px;font-weight:600;transition:all .18s;display:inline-flex}.party-filter-btn:hover{color:#fff;background:#ffffff1a;border-color:#fff3}.party-filter-btn.active{color:#fff;background:#ffffff14;font-weight:700}.party-filter-btn.all-btn{color:#4fc3f7d9;border-color:#4fc3f74d}.party-filter-btn.all-btn.active{color:#4fc3f7;background:#4fc3f71f;border-color:#4fc3f7;box-shadow:0 0 10px #4fc3f74d}.pfb-dot{border-radius:50%;flex-shrink:0;width:8px;height:8px}.pfb-label{letter-spacing:.3px;font-size:11px;font-weight:700}.pfb-count{opacity:.7;background:#ffffff14;border-radius:8px;padding:1px 5px;font-size:9px;font-weight:600}.pfb-spacer{flex:1;min-width:6px}.pfb-clear{opacity:.55;margin-left:1px;font-size:9px;line-height:1}.party-filter-btn.pfb-active-chip{color:#fff;background:#ffffff14}.katchigal-btn{color:#f9a825e6;cursor:pointer;-webkit-tap-highlight-color:transparent;letter-spacing:.3px;background:#f9a82512;border:1.5px solid #f9a82573;border-radius:20px;flex-shrink:0;align-items:center;gap:5px;padding:7px 13px;font-family:inherit;font-size:11px;font-weight:700;transition:all .18s;display:inline-flex}.katchigal-btn:hover,.katchigal-btn.open{color:#f9a825;background:#f9a82529;border-color:#f9a825;box-shadow:0 0 14px #f9a8254d}.katchigal-btn-icon{font-size:13px}.katchigal-btn-label{font-family:var(--font-tamil,inherit), inherit;letter-spacing:.3px}.katchigal-btn-arrow{opacity:.7;font-size:8px}.katchigal-overlay{-webkit-backdrop-filter:blur(5px);z-index:300;opacity:0;background:#020612b8;justify-content:center;align-items:flex-end;transition:opacity .22s;display:flex;position:fixed;inset:0}.katchigal-overlay.visible{opacity:1}.katchigal-sheet{background:linear-gradient(#091026fc 0%,#050a18 100%);border:1px solid #f9a82533;border-bottom:none;border-radius:20px 20px 0 0;flex-direction:column;width:100%;max-width:960px;max-height:72vh;margin-bottom:76px;animation:.3s cubic-bezier(.34,1.56,.64,1) slideUpModal;display:flex;overflow:hidden;box-shadow:0 -16px 60px #000000bf,0 -2px #f9a8258c}.katchigal-header{border-bottom:1px solid #f9a8251f;flex-shrink:0;justify-content:space-between;align-items:center;gap:10px;padding:14px 18px 12px;display:flex}.katchigal-header-left{flex-direction:column;gap:2px;display:flex}.katchigal-title{font-family:var(--font-tamil,inherit), inherit;color:#f9a825eb;letter-spacing:.4px;font-size:15px;font-weight:700}.katchigal-subtitle{color:#c8d2f073;letter-spacing:.3px;font-size:10px}.katchigal-close{color:#c8d2f0bf;cursor:pointer;background:#ffffff0d;border:1px solid #ffffff24;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:30px;height:30px;font-family:inherit;font-size:11px;transition:all .2s;display:flex}.katchigal-close:hover{color:#fff;background:#e5393547;border-color:#e53935}.katchigal-grid{scrollbar-width:thin;scrollbar-color:#ffffff24 transparent;grid-template-columns:repeat(auto-fill,minmax(106px,1fr));gap:8px;padding:14px 16px 20px;display:grid;overflow-y:auto}.katchigal-grid::-webkit-scrollbar{width:4px}.katchigal-grid::-webkit-scrollbar-thumb{background:#ffffff24;border-radius:4px}.katchigal-party-btn{cursor:pointer;-webkit-tap-highlight-color:transparent;text-align:left;background:#ffffff0a;border:1.5px solid #ffffff12;border-radius:14px;align-items:center;gap:7px;padding:10px 12px;font-family:inherit;transition:background .15s,border-color .15s,transform .15s;animation:.28s both fadeInCard;display:flex}.katchigal-party-btn:hover{background:#ffffff17;border-color:#fff3;transform:translateY(-2px)}.katchigal-party-btn:active{transform:scale(.96)}.katchigal-party-btn.active{background:#ffffff14}.kpb-dot{border-radius:50%;flex-shrink:0;width:10px;height:10px}.kpb-name{color:#e8eaf6;letter-spacing:.3px;white-space:nowrap;text-overflow:ellipsis;flex:1;font-size:11px;font-weight:700;overflow:hidden}.kpb-count{color:#c8d2f080;background:#ffffff0f;border-radius:8px;flex-shrink:0;padding:1px 5px;font-size:9px;font-weight:600}.party-modal-overlay{-webkit-backdrop-filter:blur(6px);z-index:500;opacity:0;background:#020612d1;justify-content:center;align-items:flex-end;transition:opacity .25s;display:flex;position:fixed;inset:0}.party-modal-overlay.visible{opacity:1}.party-modal{border:1px solid rgba(var(--party-color,79,195,247), .2);width:100%;max-width:1100px;max-height:82vh;box-shadow:0 -20px 80px #000000b3, 0 -2px 0 var(--party-color,#4fc3f7);background:linear-gradient(#080e23fc 0%,#050a19 100%);border-radius:20px 20px 0 0;flex-direction:column;animation:.32s cubic-bezier(.34,1.56,.64,1) slideUpModal;display:flex;overflow:hidden}.pm-header{background:inherit;border-bottom:1px solid;flex-shrink:0;justify-content:space-between;align-items:center;gap:14px;padding:18px 22px 14px;display:flex;position:sticky;top:0}.pm-header-left{align-items:center;gap:14px;display:flex}.pm-party-badge{color:#fff;letter-spacing:.5px;text-shadow:0 1px 4px #0006;border-radius:12px;flex-shrink:0;padding:6px 14px;font-size:13px;font-weight:800}.pm-title{color:#e8eaf6;font-size:clamp(15px,3vw,20px);font-weight:700;line-height:1.2}.pm-subtitle{color:#c8d2f08c;letter-spacing:.5px;margin-top:3px;font-size:11px}.pm-alliance{color:#c8d2f066}.pm-close{color:#c8d2f0cc;cursor:pointer;background:#ffffff0f;border:1px solid #ffffff26;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:34px;height:34px;font-family:inherit;font-size:14px;transition:all .2s;display:flex}.pm-close:hover{color:#fff;background:#e539354d;border-color:#e53935}.pm-grid{scrollbar-width:thin;scrollbar-color:#ffffff26 transparent;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:14px;padding:18px 22px 28px;display:grid;overflow-y:auto}.pm-grid::-webkit-scrollbar{width:4px}.pm-grid::-webkit-scrollbar-thumb{background:#ffffff26;border-radius:4px}.pm-card{cursor:pointer;text-align:center;background:#ffffff0a;border:1px solid #ffffff12;border-radius:14px;flex-direction:column;align-items:center;gap:8px;padding:14px 10px 12px;transition:all .18s;animation:.3s both fadeInCard;display:flex}.pm-card:hover{background:rgba(var(--party-color,79,195,247), .08);border-color:rgba(var(--party-color,79,195,247), .3);transform:translateY(-2px);box-shadow:0 6px 20px #0000004d}.pm-card:first-child{animation-delay:20ms}.pm-card:nth-child(2){animation-delay:40ms}.pm-card:nth-child(3){animation-delay:60ms}.pm-card:nth-child(4){animation-delay:80ms}.pm-card:nth-child(5){animation-delay:.1s}.pm-card:nth-child(6){animation-delay:.12s}.pm-card:nth-child(7){animation-delay:.14s}.pm-card:nth-child(8){animation-delay:.16s}.pm-avatar{background:#ffffff0f;border:2.5px solid;border-radius:16px;flex-shrink:0;justify-content:center;align-items:center;width:72px;height:72px;display:flex;position:relative;overflow:hidden;box-shadow:0 4px 16px #0006}.pm-avatar img{object-fit:cover;object-position:top center;width:100%;height:100%;transition:opacity .35s;position:absolute;inset:0}.pm-avatar-letter{font-size:26px;font-weight:800;line-height:1}.pm-card-info{width:100%}.pm-candidate-name{color:#e8eaf6;word-break:break-word;margin-bottom:3px;font-size:11px;font-weight:700;line-height:1.3}.pm-constituency{color:#c8d2f080;word-break:break-word;font-size:10px;line-height:1.2}.pm-affidavit{opacity:.5;margin-top:5px;font-size:12px;text-decoration:none;transition:opacity .2s;display:inline-block}.pm-affidavit:hover{opacity:1}.loading-overlay{z-index:50;pointer-events:none;background:#050b18cc;flex-direction:column;justify-content:center;align-items:center;gap:16px;display:flex;position:absolute;inset:0}.loading-text{color:var(--color-text-dim);letter-spacing:1px;font-size:14px}.loading-spinner{border:3px solid #4fc3f733;border-top-color:#4fc3f7;border-radius:50%;width:40px;height:40px;animation:.9s linear infinite spin}@media (width>=768px){.info-panel{border-radius:var(--radius-lg);border:1px solid #4fc3f733;width:360px;max-height:calc(100dvh - 148px);position:fixed;inset:60px 16px 88px auto}.info-panel:before{display:none}.zoom-controls{bottom:104px}.app.panel-open .zoom-controls{right:388px}}.disclaimer-overlay{z-index:9000;-webkit-backdrop-filter:blur(12px);background:#020612eb;justify-content:center;align-items:center;padding:20px;animation:.3s fadeInUp;display:flex;position:fixed;inset:0}.disclaimer-modal{background:linear-gradient(160deg,#0a142dfc 0%,#050b18 100%);border:1px solid #4fc3f740;border-radius:24px;width:100%;max-width:400px;padding:28px 24px 24px;animation:.3s cubic-bezier(.34,1.56,.64,1) scaleIn;box-shadow:0 24px 80px #000c,0 0 0 1px #4fc3f714}.disclaimer-header{text-align:center;flex-direction:column;align-items:center;gap:10px;margin-bottom:20px;display:flex}.disclaimer-ballot{filter:drop-shadow(0 0 16px #f9a82599);font-size:42px}.disclaimer-title{font-family:var(--font-tamil), var(--font-main);background:linear-gradient(135deg,#f9a825,#e53935,#4fc3f7);-webkit-text-fill-color:transparent;text-align:center;-webkit-background-clip:text;background-clip:text;font-size:clamp(16px,4vw,20px);font-weight:700}.disclaimer-body{font-family:var(--font-tamil), var(--font-main);color:#dce6ffe0;text-align:center;flex-direction:column;gap:6px;font-size:clamp(13px,3.5vw,15px);line-height:1.75;display:flex}.disclaimer-body strong{color:#f9a825}.disclaimer-link{color:#4fc3f7;word-break:break-all;border-bottom:1px solid #4fc3f74d;font-size:12px;text-decoration:none;transition:color .2s}.disclaimer-link:hover{color:#81d4fa}.disclaimer-divider{background:#ffffff1f;width:50px;height:1px;margin:4px auto}.disclaimer-btn{color:#fff;width:100%;font-size:15px;font-weight:700;font-family:var(--font-tamil), var(--font-main);cursor:pointer;letter-spacing:.5px;-webkit-tap-highlight-color:transparent;background:linear-gradient(135deg,#1565c0,#0d47a1);border:none;border-radius:14px;margin-top:22px;padding:14px 20px;transition:all .2s;display:block;box-shadow:0 6px 24px #1565c066}.disclaimer-btn:hover,.disclaimer-btn:active{background:linear-gradient(135deg,#1976d2,#1565c0);transform:translateY(-1px);box-shadow:0 8px 32px #1565c099}.candidate-alliance{color:#c8d2f08c;margin-top:3px;font-size:10px;font-style:italic}.candidate-affidavit-link{color:#4fc3f7cc;letter-spacing:.3px;border:1px solid #4fc3f740;border-radius:8px;align-items:center;gap:4px;margin-top:6px;padding:2px 8px;font-size:10px;font-weight:600;text-decoration:none;transition:all .2s;display:inline-flex}.candidate-affidavit-link:hover{color:#4fc3f7;background:#4fc3f71a;border-color:#4fc3f780}.candidates-section-divider{color:#c8d2f066;text-transform:uppercase;letter-spacing:1px;align-items:center;gap:8px;margin:4px 0;font-size:10px;font-weight:600;display:flex}.candidates-section-divider:before,.candidates-section-divider:after{content:"";background:#ffffff14;flex:1;height:1px}.feedback-overlay{z-index:9100;-webkit-backdrop-filter:blur(12px);background:#020612e0;justify-content:center;align-items:center;padding:20px;animation:.25s fadeInUp;display:flex;position:fixed;inset:0}.feedback-modal{background:linear-gradient(160deg,#0a142dfc 0%,#050b18 100%);border:1px solid #4fc3f733;border-radius:24px;width:100%;max-width:380px;animation:.28s cubic-bezier(.34,1.56,.64,1) scaleIn;overflow:hidden;box-shadow:0 24px 80px #000c,0 0 0 1px #4fc3f70f}.feedback-modal-header{border-bottom:1px solid #4fc3f71a;justify-content:space-between;align-items:center;gap:12px;padding:20px 22px 16px;display:flex}.feedback-modal-title{font-family:var(--font-tamil), var(--font-main);background:linear-gradient(135deg,#4fc3f7,#81d4fa);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;font-size:clamp(14px,4vw,17px);font-weight:700}.feedback-close-btn{color:var(--color-text);cursor:pointer;-webkit-tap-highlight-color:transparent;background:#ffffff12;border:1px solid #ffffff26;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:34px;height:34px;font-family:inherit;font-size:13px;transition:all .2s;display:flex}.feedback-close-btn:hover,.feedback-close-btn:active{background:#e539354d;border-color:#e53935}.contact-body{flex-direction:column;gap:14px;padding:20px 22px 26px;display:flex}.contact-hint{font-family:var(--font-tamil), var(--font-main);color:var(--color-text-dim);text-align:center;font-size:12px;line-height:1.6}.contact-ig-btn{color:#fff;-webkit-tap-highlight-color:transparent;background:linear-gradient(135deg,#833ab4,#fd1d1d,#fcb045);border-radius:16px;align-items:center;gap:14px;padding:14px 18px;text-decoration:none;transition:transform .18s,box-shadow .18s;display:flex;box-shadow:0 6px 24px #833ab473}.contact-ig-btn:hover,.contact-ig-btn:active{transform:translateY(-2px);box-shadow:0 10px 32px #833ab499}.contact-ig-icon{flex-shrink:0;width:28px;height:28px}.contact-ig-text{flex-direction:column;flex:1;gap:2px;display:flex}.contact-ig-label{font-family:var(--font-tamil), var(--font-main);font-size:13px;font-weight:700;line-height:1.3}.contact-ig-handle{opacity:.85;font-size:11px;font-weight:500}.contact-ig-arrow{opacity:.8;flex-shrink:0;font-size:18px}.contact-share-row{gap:10px;display:flex}.contact-share-btn{color:#fff;-webkit-tap-highlight-color:transparent;border-radius:14px;flex:1;justify-content:center;align-items:center;gap:8px;padding:12px 10px;font-size:13px;font-weight:700;text-decoration:none;transition:transform .18s,box-shadow .18s;display:flex}.contact-share-btn:hover,.contact-share-btn:active{transform:translateY(-2px)}.contact-share-btn--wa{background:#25d366;box-shadow:0 5px 18px #25d36666}.contact-share-btn--wa:hover{box-shadow:0 8px 24px #25d3668c}.contact-share-btn--tg{background:#229ed9;box-shadow:0 5px 18px #229ed966}.contact-share-btn--tg:hover{box-shadow:0 8px 24px #229ed98c}.contact-share-icon{flex-shrink:0;width:20px;height:20px}.contact-divider{color:#c8d2f059;font-size:11px;font-family:var(--font-tamil), var(--font-main);align-items:center;gap:10px;display:flex}.contact-divider:before,.contact-divider:after{content:"";background:#ffffff14;flex:1;height:1px}.contact-email-row{-webkit-tap-highlight-color:transparent;background:#4fc3f70d;border:1px solid #4fc3f72e;border-radius:14px;align-items:center;gap:12px;padding:12px 16px;text-decoration:none;transition:background .18s,border-color .18s;display:flex}.contact-email-row:hover,.contact-email-row:active{background:#4fc3f71a;border-color:#4fc3f766}.contact-email-icon{flex-shrink:0;font-size:20px}.contact-email-addr{color:#4fc3f7e6;word-break:break-all;flex:1;font-size:13px;font-weight:600}.contact-email-arrow{color:#4fc3f780;flex-shrink:0;font-size:16px}
