:root{
 --bg:#040712;--panel:#081528e8;--panel2:#0b1e38e8;--white:#f6fbff;
 --cyan:#19e9ff;--pink:#ff2c83;--violet:#8f39ff;--yellow:#ffe144;
 --green:#48ef9a;--red:#ff4260;--muted:#8fa8bf;--line:#ffffff1d;
 --shadow:0 14px 50px #0008;
}
*{box-sizing:border-box}
html,body{width:100%;height:100%;margin:0;overflow:hidden;background:transparent}
body{font-family:Inter,Arial,Helvetica,sans-serif;color:var(--white)}
.stage{
 position:relative;width:100%;height:100%;overflow:hidden;
 background:
  radial-gradient(circle at 14% 0%,#0d426b 0,transparent 27%),
  radial-gradient(circle at 87% 7%,#481668 0,transparent 25%),
  radial-gradient(circle at 50% 100%,#092445 0,transparent 36%),
  linear-gradient(135deg,#030611 0%,#06101f 52%,#100617 100%);
 isolation:isolate;
}
.stage:before{
 content:"";position:absolute;inset:0;z-index:-3;
 background-image:linear-gradient(#19e9ff0d 1px,transparent 1px),linear-gradient(90deg,#19e9ff0d 1px,transparent 1px);
 background-size:70px 70px;transform:perspective(600px) rotateX(58deg) scale(1.7) translateY(22%);
 transform-origin:center bottom;opacity:.6;
}
.stage:after{
 content:"";position:absolute;inset:0;z-index:90;pointer-events:none;opacity:.11;
 background:repeating-linear-gradient(0deg,transparent 0 3px,#ffffff12 4px);
 mix-blend-mode:screen;
}
.noise{position:absolute;inset:0;z-index:-2;opacity:.14;pointer-events:none;
 background-image:radial-gradient(#fff 0.7px,transparent .8px);background-size:5px 5px}
.neonbar{height:3px;background:linear-gradient(90deg,transparent,var(--cyan),var(--pink),var(--yellow),transparent);box-shadow:0 0 25px var(--cyan)}
.logo{font-weight:1000;text-transform:uppercase;font-style:italic;letter-spacing:-.055em;line-height:.88;text-shadow:0 0 24px #19e9ff66,4px 4px 0 #591c75}
.logo small{display:block;letter-spacing:.28em;color:var(--yellow);font-style:normal;text-shadow:none}
.livechip{display:flex;align-items:center;gap:.55em;font-weight:1000;letter-spacing:.12em;border:2px solid #ff315e;padding:.65em .9em;background:#120711cc;box-shadow:0 0 24px #ff315e66}
.livechip i{width:.65em;height:.65em;border-radius:50%;background:#ff315e;box-shadow:0 0 0 .35em #ff315e24;animation:pulse 1.3s infinite}
@keyframes pulse{50%{box-shadow:0 0 0 .8em transparent}}
.glass{background:linear-gradient(180deg,#0d213be9,#071425e9);border:1px solid var(--line);box-shadow:var(--shadow);backdrop-filter:blur(12px)}
.cut{clip-path:polygon(16px 0,100% 0,100% calc(100% - 16px),calc(100% - 16px) 100%,0 100%,0 16px)}
.section-title{text-transform:uppercase;font-weight:1000;letter-spacing:.1em;color:#dffaff}
.section-title b{color:var(--yellow)}
.parties{display:grid}
.party{
 position:relative;overflow:hidden;border:1px solid #ffffff18;background:linear-gradient(140deg,#0c1c33ed,#071322e9);
 box-shadow:inset 4px 0 0 var(--pc),0 8px 24px #0005;transition:.45s cubic-bezier(.2,.8,.2,1)
}
.party.hot{transform:scale(1.025);box-shadow:inset 6px 0 0 var(--pc),0 0 40px color-mix(in srgb,var(--pc),transparent 68%)}
.party .head{display:flex;align-items:center;justify-content:space-between}
.party .id{background:var(--pc);font-weight:1000;display:grid;place-items:center;color:#fff;text-shadow:0 1px 2px #0008}
.party .name{font-weight:900;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.party .pct{font-weight:1000;letter-spacing:-.055em}
.party .pct small{color:#8da4ba;font-weight:800}
.party .seats{font-weight:1000;color:#e8f7ff}
.party .delta.up{color:var(--green)}.party .delta.down{color:var(--red)}.party .delta.flat{color:#8fa8bf}
.party .bar{height:5px;background:#ffffff10;overflow:hidden}
.party .bar i{display:block;height:100%;background:var(--pc);box-shadow:0 0 15px var(--pc);transition:width .7s}
.face{
 position:absolute;right:-4%;bottom:-11%;aspect-ratio:1/1;border-radius:50%;
 background:radial-gradient(circle at 50% 35%,color-mix(in srgb,var(--pc),white 15%),color-mix(in srgb,var(--pc),#000 65%));
 opacity:.18;border:2px solid var(--pc);display:grid;place-items:center;font-weight:1000;
 filter:saturate(1.2);transition:.4s
}
.party:hover .face,.party.hot .face{opacity:.35;transform:scale(1.05)}
.face img{width:100%;height:100%;object-fit:cover;border-radius:50%}
.majority{
 position:relative;background:#071321db;border:1px solid #ffffff18;overflow:hidden
}
.majority .track{position:relative;height:100%;display:flex;background:#0a1726}
.majority .redside{background:linear-gradient(90deg,#ef3350,#ff4c86);width:50%;transition:.8s}
.majority .blueside{background:linear-gradient(90deg,#16a8ed,#4966ff);flex:1}
.majority .mid{position:absolute;left:50%;top:0;bottom:0;width:2px;background:#fff;box-shadow:0 0 15px #fff}
.majority .mid:after{content:"175";position:absolute;background:#fff;color:#06101d;font-weight:1000;border-radius:5px;transform:translateX(-50%)}
.seatmap{display:flex;flex-wrap:wrap;justify-content:center;align-content:center}
.seat{border-radius:50%;background:#263c50;box-shadow:0 1px 3px #0008;transition:.35s}
.ticker{display:flex;align-items:center;overflow:hidden;background:#040b14e8;border-top:1px solid #ffffff1b}
.ticker .tag{height:100%;display:flex;align-items:center;background:linear-gradient(120deg,#f72568,#a126f2);font-weight:1000;letter-spacing:.14em;z-index:2;box-shadow:8px 0 20px #0008}
.ticker .marquee{white-space:nowrap;font-weight:850;color:#cbe4f7;animation:marquee 28s linear infinite}
@keyframes marquee{from{transform:translateX(20%)}to{transform:translateX(-100%)}}
.alertShade{position:absolute;inset:0;background:#02040be8;opacity:0;pointer-events:none;z-index:50;transition:.25s}
.alertShade.show{opacity:.76}
.alert{
 position:absolute;z-index:55;opacity:0;pointer-events:none;
 background:linear-gradient(135deg,#16091cef,#071b31f7);border:3px solid var(--yellow);
 box-shadow:0 0 90px #ffcf345c,14px 14px 0 #d21e68;
 transition:.35s cubic-bezier(.17,.89,.32,1.35)
}
.alert.show{opacity:1}
.alert:before{content:"";position:absolute;inset:-9px;border:1px solid #19e9ff88;pointer-events:none}
.alert .kicker{font-weight:1000;letter-spacing:.28em;color:var(--cyan)}
.alert h2{margin:.12em 0;text-transform:uppercase;font-style:italic;line-height:.88;letter-spacing:-.045em}
.alert p{margin:0;color:#d6e8f7;font-weight:650}
.flash{animation:flash .55s ease-out}
@keyframes flash{0%{filter:brightness(2.8)}100%{filter:brightness(1)}}
.shake{animation:shake .5s}
@keyframes shake{0%,100%{transform:translate(0)}20%{transform:translate(-7px,3px)}40%{transform:translate(6px,-3px)}60%{transform:translate(-4px,-2px)}80%{transform:translate(3px,2px)}}
.burst{position:absolute;inset:0;pointer-events:none;z-index:40;overflow:hidden}
.spark{position:absolute;width:8px;height:28px;background:var(--yellow);box-shadow:0 0 12px currentColor;animation:spark 1.1s forwards ease-out}
@keyframes spark{to{transform:translate(var(--dx),var(--dy)) rotate(620deg);opacity:0}}
.source-pill{text-transform:uppercase;letter-spacing:.1em;color:#a7bed2;font-weight:800}
.clock{font-variant-numeric:tabular-nums;font-weight:1000;color:#fff}

/* ===========================
   V2 LIVE EVENT FEED
   =========================== */
.eventFeed{display:flex;flex-direction:column;gap:.45em;min-height:0}
.eventCard{position:relative;overflow:hidden;background:linear-gradient(100deg,#0c1d33e8,#071220e8);border:1px solid #ffffff18;box-shadow:inset 3px 0 0 var(--ec,#19e9ff);animation:eventIn .45s cubic-bezier(.2,.8,.2,1)}
.eventCard strong{display:block;text-transform:uppercase;font-style:italic;letter-spacing:-.02em}
.eventCard small{color:#9eb5c8;font-weight:750}
.eventCard .eventIcon{display:grid;place-items:center;background:#ffffff0c;color:var(--yellow);font-weight:1000}
.eventEmpty{color:#7891a8;font-weight:750}
@keyframes eventIn{from{opacity:0;transform:translateX(-24px)}to{opacity:1;transform:translateX(0)}}
