:root{
  --bg:#050505;--bg2:#111;--card:#fffaf0;--gold:#d9a72e;--gold2:#8d5d00;
  --text:#17130d;--muted:#6f6659;--border:rgba(179,125,20,.34);
  --panel:#fff;--bad:#b51e4b;--good:#137d53;--purple:#111;--magenta:#ff2f8b
}
*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}
body{
  margin:0;color:var(--text);font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif;
  background:
    radial-gradient(circle at 50% 0%,rgba(255,255,255,.92),transparent 26%),
    linear-gradient(135deg,rgba(217,167,46,.12) 25%,transparent 25% 50%,rgba(217,167,46,.12) 50% 75%,transparent 75%) 0 0/28px 28px,
    linear-gradient(180deg,#fffdf8 0%,#f7f0e1 58%,#efe4cf 100%);
  min-height:100%;padding-top:env(safe-area-inset-top);padding-bottom:env(safe-area-inset-bottom)
}
body:before{
  content:"";position:fixed;inset:0;pointer-events:none;opacity:.35;
  background-image:
    radial-gradient(circle,rgba(217,167,46,.55) 0 1px,transparent 1.8px),
    radial-gradient(circle,rgba(255,47,139,.20) 0 1px,transparent 1.8px);
  background-size:48px 48px,76px 76px;background-position:0 0,24px 18px
}
body:after{
  content:"";position:fixed;left:0;right:0;top:0;height:145px;pointer-events:none;opacity:.42;
  background:
    linear-gradient(72deg,transparent 0 18%,rgba(255,255,255,.09) 18.4% 19%,transparent 19.5% 100%),
    linear-gradient(108deg,transparent 0 80%,rgba(255,255,255,.07) 80.4% 81%,transparent 81.5% 100%)
}
.shell{width:min(720px,100%);margin:auto;padding:18px 14px 44px;position:relative}
.shell:before,.shell:after{
  content:"";position:absolute;top:0;width:18px;height:210px;pointer-events:none;z-index:-1;
  background:linear-gradient(180deg,#d9a72e,#8f6417 62%,transparent)
}
.shell:before{left:0;border-radius:0 0 20px 0}.shell:after{right:0;border-radius:0 0 0 20px}
.hero{text-align:center;padding:20px 14px 24px;position:relative;overflow:hidden;border-radius:0 0 28px 28px;margin:-18px -14px 18px;background:linear-gradient(135deg,#050505 0%,#171717 48%,#050505 100%);box-shadow:0 16px 34px rgba(0,0,0,.18),inset 0 -1px rgba(217,167,46,.45)}
.stage-lights{display:flex;justify-content:center;gap:34px;height:16px;margin-bottom:2px}
.stage-lights span{
  width:10px;height:10px;border-radius:50%;background:#fff5c7;
  box-shadow:0 0 9px #fff5c7,0 0 22px rgba(244,206,102,.9)
}
.sparkles{color:var(--gold);font-size:22px;letter-spacing:.34em;text-shadow:0 0 15px rgba(244,206,102,.45)}
.eyebrow{color:var(--gold);font-size:10px;letter-spacing:.26em;font-weight:900;margin-top:8px}
h1{margin:6px 0 7px;font-size:36px;line-height:1.02;text-transform:uppercase;letter-spacing:.06em;color:white}
h1 span{
  display:block;font-family:Georgia,"Times New Roman",serif;font-style:italic;text-transform:none;
  font-size:42px;letter-spacing:-.03em;
  background:linear-gradient(180deg,#fff8cf 0%,#f3cf67 42%,#be7d22 100%);
  -webkit-background-clip:text;background-clip:text;color:transparent;
  text-shadow:0 0 22px rgba(244,206,102,.2)
}
.keep-dancing{
  display:inline-block;margin-top:8px;padding:7px 14px;border:1px solid #ff4a9c;border-radius:999px;
  color:white;font-size:10px;font-weight:950;letter-spacing:.22em;
  background:linear-gradient(90deg,#ff2f8b,#ff5ba7);box-shadow:0 0 22px rgba(255,47,139,.32)
}
h2{margin:0 0 8px;font-size:20px;color:#4a350d;font-family:Georgia,"Times New Roman",serif}
.hero p{margin:0;color:var(--muted);line-height:1.45}.muted{color:var(--muted);line-height:1.45}
.card{
  background:linear-gradient(180deg,#fffdf8,#fff7e9);
  border:1px solid rgba(185,132,26,.28);border-radius:20px;padding:16px;margin-bottom:14px;
  box-shadow:0 12px 28px rgba(74,52,15,.12),inset 0 1px rgba(255,255,255,.8);
  position:relative
}
.card:before{
  content:"";position:absolute;inset:0;border-radius:18px;pointer-events:none;
  background:linear-gradient(120deg,transparent 0 45%,rgba(255,255,255,.025) 47%,transparent 49% 100%)
}
.split{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.small{font-size:10px;letter-spacing:.17em;font-weight:900;color:var(--gold);margin-bottom:6px}
label{display:block;font-size:13px;font-weight:800;color:var(--gold2);margin-bottom:6px}
input,select{
  width:100%;min-height:50px;border:1px solid rgba(179,125,20,.28);border-radius:14px;
  background:white;color:#17130d;padding:10px 12px;font-size:16px;box-shadow:inset 0 1px 2px rgba(0,0,0,.04)
}
select option{color:#111;background:#fff}
.room-input{text-align:center;font-size:26px;font-weight:900;letter-spacing:.2em;margin-bottom:10px}
button{min-height:48px;border-radius:12px;padding:11px 13px;border:0;font-weight:900;font-size:15px}
.gold{
  background:linear-gradient(180deg,#ff5fac,#ff2f8b 64%,#d91367);color:white;width:100%;
  border:1px solid #ff92c4;box-shadow:inset 0 1px rgba(255,255,255,.35),0 8px 20px rgba(255,47,139,.22)
}
.secondary{background:#111;border:1px solid #2a2a2a;color:#fff;width:100%}
.danger{width:100%;background:rgba(255,255,255,.035);border:1px solid rgba(255,154,166,.5);color:#ffbcc4}
.leave{margin-top:10px}.hidden{display:none!important}
.room{display:flex;justify-content:space-between;align-items:center;gap:16px}
.week-badge{display:inline-block;margin-bottom:7px;padding:5px 9px;border-radius:999px;background:linear-gradient(180deg,#fff1ae,#d9a03a);color:#27130b;font-size:10px;font-weight:950;letter-spacing:.13em;border:1px solid #fff2b1}
.season-card{overflow:hidden}
#lobbyView{padding-bottom:92px}
.result-panel{animation:tabPanelIn .18s ease}
@keyframes tabPanelIn{from{opacity:.35;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}
.results-tabs{
  position:fixed;left:50%;bottom:max(10px,env(safe-area-inset-bottom));transform:translateX(-50%);
  z-index:100;width:min(690px,calc(100% - 20px));display:grid;grid-template-columns:repeat(3,1fr);gap:6px;
  padding:7px;border-radius:20px;background:rgba(8,8,8,.94);border:1px solid rgba(217,167,46,.42);
  box-shadow:0 14px 38px rgba(0,0,0,.34),inset 0 1px rgba(255,255,255,.06);
  -webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)
}
.results-tab{
  min-height:58px;padding:6px 5px;border-radius:14px;background:transparent;color:#e8dfd1;
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;
  font-size:10px;line-height:1.05;font-weight:850;border:1px solid transparent
}
.results-tab .tab-icon{font-size:18px;line-height:1;color:#d9a72e}
.results-tab.active{
  background:linear-gradient(180deg,#ff5fac,#ff2f8b 65%,#d91367);color:white;
  border-color:#ff90c2;box-shadow:0 6px 16px rgba(255,47,139,.28)
}
.results-tab.active .tab-icon{color:white}
.season-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}
.mini-glitterball{width:44px;height:44px;border-radius:50%;display:grid;place-items:center;color:white;background:radial-gradient(circle at 35% 28%,#fff 0 5%,#f7d976 6% 22%,#b7771e 23% 45%,#edc55a 46% 68%,#78430f 69%);border:2px solid #fff0a8;box-shadow:0 0 16px rgba(244,206,102,.35)}
.season-list{display:grid;gap:8px;margin-top:10px}.weekly-board-label{font-size:11px;font-weight:950;letter-spacing:.14em;color:var(--gold);text-transform:uppercase;padding:2px 2px 4px}.season-row{display:grid;grid-template-columns:34px 1fr auto;gap:10px;align-items:center;padding:10px;border:1px solid rgba(179,125,20,.18);border-radius:12px;background:#fff}
.season-pos{width:30px;height:30px;border-radius:50%;display:grid;place-items:center;background:linear-gradient(180deg,#fff0a7,#cc9131);color:#22120b;font-weight:950}.season-player{min-width:0}.season-player strong{display:block;color:var(--gold2)}.season-player span{display:block;margin-top:2px;color:var(--muted);font-size:11px}.season-wins{text-align:center}.season-wins strong{display:block;font-size:20px;color:var(--gold2);line-height:1}.season-wins span{display:block;margin-top:2px;font-size:9px;text-transform:uppercase;letter-spacing:.1em;color:var(--muted)}
.overall-leader{margin:10px 0 12px}.overall-leader-card{padding:12px;border:1px solid rgba(244,206,102,.22);border-radius:14px;background:linear-gradient(180deg,rgba(255,240,167,.08),rgba(165,38,143,.08))}.overall-leader-title{text-align:center;color:var(--gold2);font:900 17px Georgia,"Times New Roman",serif;margin-bottom:10px}.overall-total-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}.overall-total-box{text-align:center;padding:10px;border-radius:11px;background:rgba(255,255,255,.045);border:1px solid rgba(244,206,102,.14)}.overall-total-box span{display:block;font-weight:900;color:var(--gold2)}.overall-total-box strong{display:block;font:900 30px Georgia,"Times New Roman",serif;color:#fff2b2;line-height:1.05;margin:3px 0}.overall-total-box small{display:block;font-size:9px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
.weekbyweek-list{display:grid;gap:9px;margin-top:10px}.weekbyweek-row{display:grid;grid-template-columns:72px 1fr;gap:10px;align-items:stretch;padding:10px;border:1px solid rgba(244,206,102,.18);border-radius:12px;background:rgba(255,255,255,.035)}.weekbyweek-week{display:grid;place-items:center;text-align:center;border-radius:10px;background:linear-gradient(180deg,rgba(255,240,167,.16),rgba(204,145,49,.08));border:1px solid rgba(244,206,102,.22);color:var(--gold2);font-size:11px;font-weight:950;letter-spacing:.08em;text-transform:uppercase}.weekbyweek-scores{display:grid;gap:7px}.weekbyweek-player{display:flex;justify-content:space-between;gap:12px;align-items:center;padding-bottom:7px;border-bottom:1px solid rgba(255,255,255,.05)}.weekbyweek-player:last-child{padding-bottom:0;border-bottom:0}.weekbyweek-player span{font-weight:900;color:var(--gold2)}.weekbyweek-player strong{font-size:11px;color:var(--muted);text-align:right}
.history-list{display:grid;gap:8px;margin-top:10px}.history-week{border:1px solid rgba(244,206,102,.18);border-radius:12px;background:rgba(255,255,255,.035);overflow:hidden}.history-week summary{cursor:pointer;list-style:none;display:flex;justify-content:space-between;align-items:center;gap:12px;padding:12px}.history-week summary::-webkit-details-marker{display:none}.history-week summary strong{display:block;color:var(--gold2)}.history-week summary span{display:block;margin-top:3px;font-size:12px;color:var(--muted)}.history-winner{font-size:11px;font-weight:900;color:var(--gold);text-align:right}.history-rounds{border-top:1px solid rgba(244,206,102,.12);padding:8px 12px 12px}.history-round{display:flex;justify-content:space-between;gap:10px;padding:7px 0;border-bottom:1px solid rgba(255,255,255,.05);font-size:12px}.history-round:last-child{border-bottom:0}.history-round span{color:var(--muted)}.history-round strong{color:var(--gold2)}
.code{
  font-size:36px;font-weight:950;letter-spacing:.18em;color:#fff1aa;
  text-shadow:0 0 13px rgba(244,206,102,.45)
}
.live{
  font-size:11px;font-weight:950;color:var(--good);letter-spacing:.12em;
  padding:6px 9px;border:1px solid rgba(145,241,200,.25);border-radius:999px;background:rgba(145,241,200,.06)
}
.scoreboard{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;text-align:center;gap:12px}
.name{font-weight:900;color:var(--gold2);overflow-wrap:anywhere}
.total{
  display:grid;place-items:center;width:70px;height:70px;margin:8px auto 0;border-radius:8px;
  background:linear-gradient(180deg,#fffdf2,#f3e3b3);color:#171217;border:4px solid #fff;
  box-shadow:0 0 0 3px #d39b32,0 8px 18px rgba(0,0,0,.28);font:900 40px Georgia,serif
}
.vs{font-size:11px;font-weight:950;color:var(--gold);letter-spacing:.15em}
.leader{
  grid-column:1/-1;background:linear-gradient(90deg,rgba(84,22,109,.28),rgba(165,38,143,.18),rgba(84,22,109,.28));
  border:1px solid rgba(244,206,102,.19);border-radius:12px;padding:11px;font-weight:900;margin-top:7px
}
.actions{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:14px}
.round-head{display:flex;justify-content:space-between;gap:10px;align-items:flex-start}
.round-title{font-size:21px;font-weight:950;color:var(--gold2);font-family:Georgia,"Times New Roman",serif}
.round-title:before{content:"✦ ";color:var(--gold)}
.round-score{
  background:linear-gradient(180deg,rgba(255,241,170,.14),rgba(183,120,30,.08));
  border:1px solid var(--border);padding:7px 11px;border-radius:999px;font-weight:950;color:var(--gold2)
}
.round-sub{font-size:12px;color:var(--muted);margin-top:3px}
.my-panel,.opponent-panel{
  border:1px solid var(--border);border-radius:14px;padding:12px;margin-top:12px;
  background:linear-gradient(180deg,rgba(255,255,255,.035),rgba(255,255,255,.018))
}
.my-panel{border-width:2px}
.player-row{display:flex;justify-content:space-between;gap:10px;align-items:center;margin-bottom:10px}
.status{font-size:12px;color:var(--muted);font-weight:800}
.votes{display:grid;grid-template-columns:repeat(4,1fr);gap:9px;margin-top:12px}
.vote{
  background:linear-gradient(180deg,rgba(255,255,255,.08),rgba(255,255,255,.035));
  border:1px solid rgba(244,206,102,.2);border-radius:12px;padding:9px
}
.vote label{font-size:11px;color:var(--gold2);font-weight:800;margin-bottom:5px}
.judge-name{
  display:block;text-align:center;font:900 12px Georgia,"Times New Roman",serif;
  text-transform:uppercase;letter-spacing:.07em;color:#fff0b0;margin-bottom:8px
}
.submitted-judge{margin:0 0 8px}
.chip{
  background:linear-gradient(180deg,#fffefa,#f0ddb0);color:#171217;border:4px solid #fff;
  box-shadow:0 0 0 3px #d39b32,0 8px 16px rgba(0,0,0,.24);border-radius:6px;
  padding:12px 4px;text-align:center;font-family:Georgia,"Times New Roman",serif;font-size:26px;font-weight:950
}
.correct{display:flex!important;align-items:center;gap:7px;margin-top:8px!important;margin-bottom:0!important;font-size:12px!important;font-weight:900;color:var(--gold2)}
.correct input{width:22px;height:22px;min-height:0;padding:0;accent-color:#d5a43f}.submit{margin-top:11px}
.waiting{
  background:#fff;border:1px dashed rgba(179,125,20,.3);border-radius:12px;
  padding:14px;text-align:center;color:var(--muted)
}
.message{text-align:center;min-height:24px;color:var(--muted);font-size:13px;padding-top:8px}
.final-button{
  width:100%;margin:2px 0 10px;background:linear-gradient(180deg,#fff7bd,#efc557 52%,#bd7d20);
  color:#24130a;border:1px solid #fff0a8;box-shadow:0 0 0 2px rgba(244,206,102,.16),0 12px 28px rgba(244,206,102,.19);
  font-size:16px;letter-spacing:.02em
}
.finale{
  text-align:center;overflow:hidden;position:relative;
  background:
    radial-gradient(circle at 50% -6%,rgba(255,236,176,.24),transparent 34%),
    radial-gradient(circle at 10% 20%,rgba(165,38,143,.25),transparent 30%),
    linear-gradient(180deg,rgba(75,18,88,.98),rgba(22,4,29,.99))
}
.finale:before,.finale:after{content:"✦";position:absolute;color:rgba(255,236,176,.5);font-size:28px}
.finale:before{left:18px;top:18px}.finale:after{right:18px;top:28px}
.glitterball{
  width:96px;height:96px;margin:0 auto 12px;border-radius:50%;display:grid;place-items:center;font-size:36px;color:#fff;
  background:
    linear-gradient(45deg,transparent 46%,rgba(255,255,255,.22) 47% 53%,transparent 54%),
    linear-gradient(-45deg,transparent 46%,rgba(255,255,255,.18) 47% 53%,transparent 54%),
    radial-gradient(circle at 32% 28%,#fffbe8 0 4%,#f8dc82 5% 14%,#d5a43f 15% 32%,#9a6316 33% 48%,#f2ce68 49% 64%,#7a4611 65% 100%);
  background-size:20px 20px,20px 20px,auto;border:4px solid #fff1ad;
  box-shadow:0 0 34px rgba(244,206,102,.55),inset 0 0 20px rgba(255,255,255,.45)
}
.winner-name{
  font:italic 900 38px Georgia,"Times New Roman",serif;color:var(--gold2);
  text-shadow:0 0 18px rgba(244,206,102,.3);margin:8px 0
}
.winner-score{font-size:18px;font-weight:950;letter-spacing:.12em;color:white}.finale p{color:var(--muted);margin-bottom:0}
.install-card{display:grid;grid-template-columns:56px 1fr;gap:14px;align-items:center;border-color:#d9a72e;background:linear-gradient(145deg,#0a0a0a,#1b1b1b);color:white}.install-card h2{color:#ffe9a2}.install-card .muted{color:#ddd}
.install-card h2{margin-bottom:5px}.install-card p{margin:0}.install-icon{width:56px;height:56px;border-radius:16px;display:grid;place-items:center;font-size:24px;color:#fff;background:radial-gradient(circle at 35% 28%,#fff 0 5%,#f7d976 6% 22%,#b7771e 23% 45%,#edc55a 46% 68%,#78430f 69%);border:2px solid #fff0a8;box-shadow:0 0 18px rgba(244,206,102,.35)}
.app-splash{position:fixed;inset:0;z-index:9999;display:grid;place-content:center;justify-items:center;gap:12px;background:radial-gradient(circle at 50% 28%,#262626 0,#0d0d0d 48%,#000 100%);transition:opacity .28s ease,visibility .28s ease}
.app-splash.done{opacity:0;visibility:hidden;pointer-events:none}.splash-ball{width:110px;height:110px;border-radius:50%;display:grid;place-items:center;font-size:38px;color:#fff;background:radial-gradient(circle at 34% 28%,#fff 0 5%,#f8dc82 6% 18%,#d5a43f 19% 36%,#9a6316 37% 51%,#f2ce68 52% 70%,#70400f 71%);border:4px solid #fff1ad;box-shadow:0 0 42px rgba(244,206,102,.65)}
.splash-title{text-align:center;text-transform:uppercase;font-weight:950;letter-spacing:.05em;font-size:24px}.splash-title span{display:block;text-transform:none;font:italic 900 38px Georgia,"Times New Roman",serif;color:#f8dc82}.splash-sub{font-size:10px;font-weight:900;letter-spacing:.22em;color:#f8dc82}
@media(display-mode:standalone){body{overscroll-behavior:none}.shell{padding-top:max(12px,env(safe-area-inset-top))}.install-card{display:none}}
@media(max-width:560px){
  .split{grid-template-columns:1fr}.votes{grid-template-columns:repeat(2,1fr)}
  .total{width:64px;height:64px;font-size:37px}.winner-name{font-size:30px}
  h1{font-size:28px}h1 span{font-size:38px}
  .install-card{grid-template-columns:48px 1fr;padding:14px}.install-icon{width:48px;height:48px;border-radius:14px}
  .results-tabs{width:calc(100% - 16px);bottom:max(7px,env(safe-area-inset-bottom));padding:6px;gap:4px}
  .results-tab{min-height:56px;font-size:9px}.results-tab .tab-icon{font-size:17px}
}

/* Purple Glitter Liquid Glass */
:root{
  --bg:#0d0016;--bg2:#1e0332;--card:rgba(78,26,108,.30);
  --gold:#f5d77d;--gold2:#fff0ba;--text:#fff8ff;--muted:#d8c5e3;
  --border:rgba(255,255,255,.20);--panel:rgba(255,255,255,.10);
  --bad:#ff9bb6;--good:#9af3d2;--purple:#6b1b8f;--magenta:#dc49ff
}
body{
  color:var(--text);
  background:
    radial-gradient(circle at 14% 8%,rgba(194,83,255,.32),transparent 28%),
    radial-gradient(circle at 88% 16%,rgba(95,24,190,.42),transparent 30%),
    radial-gradient(circle at 50% 78%,rgba(227,67,255,.18),transparent 34%),
    linear-gradient(160deg,#0a0011 0%,#1a0627 40%,#2a0740 68%,#0b0013 100%);
  background-attachment:fixed;
}
body:before{
  opacity:.55;
  background-image:
    radial-gradient(circle,rgba(255,255,255,.95) 0 1px,transparent 1.7px),
    radial-gradient(circle,rgba(244,204,255,.95) 0 1.4px,transparent 2px),
    radial-gradient(circle,rgba(246,215,125,.9) 0 1px,transparent 1.8px);
  background-size:41px 41px,79px 79px,119px 119px;
  background-position:0 0,21px 31px,57px 9px;
  animation:glitterDrift 16s linear infinite;
}
body:after{
  inset:0;height:auto;opacity:.58;
  background:
    radial-gradient(ellipse at 25% -5%,rgba(255,255,255,.18),transparent 28%),
    radial-gradient(ellipse at 78% 5%,rgba(213,111,255,.18),transparent 24%),
    linear-gradient(110deg,transparent 16%,rgba(255,255,255,.06) 22%,transparent 29%);
}
@keyframes glitterDrift{to{background-position:41px 41px,100px 110px,176px 128px}}
.shell:before,.shell:after{
  width:34px;height:260px;opacity:.65;filter:blur(10px);
  background:linear-gradient(180deg,rgba(207,113,255,.65),rgba(90,17,133,.28) 60%,transparent)
}
.hero{
  margin:-18px -14px 18px;padding:24px 14px 28px;border-radius:0 0 34px 34px;
  background:
    radial-gradient(circle at 50% 0%,rgba(255,255,255,.22),transparent 28%),
    linear-gradient(135deg,rgba(95,23,140,.62),rgba(28,3,45,.72) 55%,rgba(111,27,151,.48));
  border-bottom:1px solid rgba(255,255,255,.22);
  box-shadow:0 24px 55px rgba(0,0,0,.35),inset 0 1px rgba(255,255,255,.18),inset 0 -1px rgba(246,215,125,.24);
  -webkit-backdrop-filter:blur(24px) saturate(145%);backdrop-filter:blur(24px) saturate(145%);
}
.stage-lights span{background:#fff;box-shadow:0 0 10px #fff,0 0 32px #d98cff,0 0 58px rgba(221,113,255,.75)}
.sparkles{color:#fff2bf;text-shadow:0 0 12px #fff,0 0 24px rgba(222,119,255,.75)}
.eyebrow{color:#f3d8ff}
h1{color:#fff}
h1 span{
  background:linear-gradient(180deg,#fff 0%,#f8e6ff 30%,#f2d281 68%,#b879ff 100%);
  -webkit-background-clip:text;background-clip:text;color:transparent;
  text-shadow:0 0 28px rgba(222,140,255,.38)
}
.keep-dancing{
  color:#fff;border:1px solid rgba(255,255,255,.28);
  background:linear-gradient(135deg,rgba(255,255,255,.20),rgba(198,88,255,.24));
  box-shadow:inset 0 1px rgba(255,255,255,.28),0 8px 28px rgba(132,32,184,.26);
  -webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)
}
h2{color:#fff0c0;text-shadow:0 0 16px rgba(244,211,255,.12)}
.muted,.round-sub,.status,.message{color:var(--muted)}
.small{color:#f5d77d;text-shadow:0 0 14px rgba(245,215,125,.16)}
label{color:#f1ddff}
.card{
  background:linear-gradient(135deg,rgba(255,255,255,.13),rgba(119,42,157,.18) 48%,rgba(255,255,255,.08));
  border:1px solid rgba(255,255,255,.20);border-radius:24px;
  box-shadow:0 18px 46px rgba(4,0,12,.34),inset 0 1px rgba(255,255,255,.23),inset 0 -1px rgba(255,255,255,.05);
  -webkit-backdrop-filter:blur(26px) saturate(160%);backdrop-filter:blur(26px) saturate(160%);
  overflow:hidden;
}
.card:before{
  border-radius:24px;
  background:
    linear-gradient(118deg,transparent 8%,rgba(255,255,255,.13) 22%,transparent 37%),
    radial-gradient(circle at 88% 8%,rgba(255,255,255,.16),transparent 26%);
}
input,select{
  color:#fff;background:rgba(255,255,255,.10);
  border:1px solid rgba(255,255,255,.22);
  box-shadow:inset 0 1px rgba(255,255,255,.13),0 8px 22px rgba(0,0,0,.15);
  -webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)
}
input::placeholder{color:#ccb9d7}
select option{color:#24122c;background:#f6e9fb}
.gold{
  color:#fff;
  background:linear-gradient(135deg,#b944f2 0%,#8a27cf 42%,#e467ff 100%);
  border:1px solid rgba(255,255,255,.35);
  box-shadow:inset 0 1px rgba(255,255,255,.42),0 10px 28px rgba(179,55,234,.30),0 0 22px rgba(222,106,255,.14)
}
.secondary{
  color:#f6e9fb;background:rgba(255,255,255,.08);
  border:1px solid rgba(255,255,255,.19);
  -webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)
}
.danger{background:rgba(255,97,145,.10);border-color:rgba(255,161,187,.35);color:#ffd0dc}
.week-badge{
  color:#2b1133;background:linear-gradient(180deg,#fff5c5,#e7c464);
  border:1px solid #fff7cb;box-shadow:0 0 18px rgba(245,215,125,.24)
}
.code{color:#fff3bf;text-shadow:0 0 18px rgba(249,221,134,.45)}
.live{color:#b2ffdf;background:rgba(99,255,194,.09);border-color:rgba(151,255,214,.24)}
.results-tabs{
  background:linear-gradient(135deg,rgba(74,17,103,.56),rgba(28,4,44,.66));
  border:1px solid rgba(255,255,255,.23);
  box-shadow:0 20px 50px rgba(0,0,0,.40),inset 0 1px rgba(255,255,255,.22);
  -webkit-backdrop-filter:blur(30px) saturate(170%);backdrop-filter:blur(30px) saturate(170%)
}
.results-tab{color:#ddcde7}
.results-tab .tab-icon{color:#f5d77d;text-shadow:0 0 16px rgba(245,215,125,.32)}
.results-tab.active{
  color:white;
  background:linear-gradient(135deg,rgba(212,89,255,.62),rgba(133,35,201,.64));
  border-color:rgba(255,255,255,.34);
  box-shadow:inset 0 1px rgba(255,255,255,.30),0 9px 26px rgba(183,66,238,.28)
}
.mini-glitterball,.glitterball{
  background:
    linear-gradient(45deg,transparent 46%,rgba(255,255,255,.32) 47% 53%,transparent 54%),
    linear-gradient(-45deg,transparent 46%,rgba(255,255,255,.24) 47% 53%,transparent 54%),
    radial-gradient(circle at 32% 26%,#fff 0 5%,#f2dfff 6% 19%,#d68cff 20% 34%,#7b2cb6 35% 50%,#f5d77d 51% 66%,#4e116e 67%);
  border-color:#f5dfff;
  box-shadow:0 0 28px rgba(221,126,255,.60),inset 0 0 18px rgba(255,255,255,.46)
}
.season-row,.weekbyweek-row,.history-week,.overall-leader-card,.overall-total-box,.waiting{
  color:var(--text);background:rgba(255,255,255,.075);
  border-color:rgba(255,255,255,.16);
  box-shadow:inset 0 1px rgba(255,255,255,.08);
  -webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)
}
.season-player strong,.season-wins strong,.weekbyweek-player span,.history-week summary strong,.history-round strong,.overall-leader-title,.overall-total-box span,.name,.round-title{color:#fff0bf}
.season-player span,.season-wins span,.weekbyweek-player strong,.history-week summary span,.history-round span,.overall-total-box small{color:#d7c3e1}
.overall-total-box strong{color:#fff;text-shadow:0 0 18px rgba(214,124,255,.38)}
.season-pos{
  color:#37133f;background:linear-gradient(180deg,#fff7d2,#e4bf59);
  box-shadow:0 0 16px rgba(245,215,125,.20)
}
.weekbyweek-week,.round-score,.leader{
  color:#fff0c0;background:rgba(126,38,171,.18);
  border-color:rgba(255,255,255,.15)
}
.total,.chip{
  color:#29102f;background:linear-gradient(180deg,#fffdfd,#ecdfff);
  border-color:#fff;
  box-shadow:0 0 0 3px rgba(218,136,255,.75),0 10px 24px rgba(0,0,0,.26),0 0 22px rgba(222,138,255,.24)
}
.my-panel,.opponent-panel,.vote{
  background:rgba(255,255,255,.06);
  border-color:rgba(255,255,255,.15);
  -webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)
}
.vote label,.judge-name,.correct{color:#f3dcff}
.final-button{
  color:#2a1130;
  background:linear-gradient(180deg,#fff8c8,#edcd6a 54%,#c99d3d);
  border-color:#fff4c1;box-shadow:0 0 0 1px rgba(255,255,255,.2),0 14px 32px rgba(239,205,106,.20)
}
.finale{
  background:
    radial-gradient(circle at 50% -4%,rgba(255,255,255,.22),transparent 32%),
    radial-gradient(circle at 15% 25%,rgba(208,93,255,.30),transparent 30%),
    linear-gradient(145deg,rgba(121,34,164,.42),rgba(22,2,35,.66));
}
.winner-name{color:#fff0bd;text-shadow:0 0 24px rgba(245,215,125,.25)}
.install-card{
  color:#fff;background:linear-gradient(135deg,rgba(255,255,255,.13),rgba(107,29,147,.25));
  border-color:rgba(255,255,255,.23)
}
.install-card h2{color:#fff0c0}.install-card .muted{color:#d9c7e2}
.install-icon{
  background:radial-gradient(circle at 35% 28%,#fff 0 6%,#e6c7ff 7% 22%,#b35af2 23% 46%,#f2d177 47% 65%,#5c157d 66%);
  border-color:#f6e8ff;box-shadow:0 0 24px rgba(214,113,255,.45)
}
.app-splash{
  background:
    radial-gradient(circle at 50% 28%,rgba(210,92,255,.40),transparent 29%),
    linear-gradient(160deg,#0a0011,#2b0741 55%,#12001c);
}
.splash-ball{border-color:#f5e7ff;box-shadow:0 0 52px rgba(215,111,255,.68),inset 0 0 24px rgba(255,255,255,.40)}
.splash-title span,.splash-sub{color:#fff0c1}
@media(max-width:560px){
  .card{border-radius:22px}
  .hero{border-radius:0 0 30px 30px}
}

/* Sharper Score Battle hero blended into the purple Liquid Glass theme */
.hero.hero-poster{
  position:relative;
  isolation:isolate;
  margin:-18px -14px 6px;
  padding:0;
  min-height:0;
  overflow:hidden;
  border:0;
  border-radius:0;
  background:#160022;
  box-shadow:none;
  -webkit-backdrop-filter:none;
  backdrop-filter:none;
}
.hero.hero-poster::before{
  content:"";
  position:absolute;
  inset:-28px;
  z-index:0;
  background:var(--hero-image) center/cover no-repeat;
  filter:blur(28px) saturate(1.28);
  opacity:.56;
  transform:scale(1.15);
}
.home-hero-image{
  position:relative;
  z-index:1;
  display:block;
  width:100%;
  height:auto;
  aspect-ratio:600/657;
  object-fit:cover;
  object-position:center;
  opacity:0;
  transform:none;
  filter:contrast(1.05) saturate(1.07);
  transition:opacity .22s ease;
  -webkit-mask-image:linear-gradient(to bottom,#000 0%,#000 88%,rgba(0,0,0,.96) 91%,rgba(0,0,0,.72) 95%,transparent 100%);
  mask-image:linear-gradient(to bottom,#000 0%,#000 88%,rgba(0,0,0,.96) 91%,rgba(0,0,0,.72) 95%,transparent 100%);
}
.hero-poster.loaded .home-hero-image{
  opacity:1;
  transform:none;
}
.hero-poster-shine{
  position:absolute;
  inset:0;
  z-index:2;
  pointer-events:none;
  background:
    linear-gradient(90deg,rgba(18,0,30,.18) 0%,transparent 7%,transparent 93%,rgba(18,0,30,.18) 100%),
    radial-gradient(circle at 50% 4%,rgba(255,255,255,.13),transparent 25%),
    linear-gradient(180deg,transparent 76%,rgba(37,3,58,.10) 86%,rgba(22,0,34,.94) 100%);
  mix-blend-mode:normal;
}
.hero-fallback{min-height:280px}
@media(max-width:560px){
  .hero.hero-poster{
    margin:-18px -14px 4px;
    border-radius:0;
  }
}

/* Glamorous ballroom poster home screen */
body{
  background:
    radial-gradient(circle at 10% 7%,rgba(255,105,224,.20),transparent 22%),
    radial-gradient(circle at 90% 8%,rgba(137,58,255,.34),transparent 27%),
    radial-gradient(circle at 50% 70%,rgba(255,77,190,.12),transparent 33%),
    linear-gradient(180deg,#07000f 0%,#190126 45%,#090011 100%);
}
.hero-poster{
  position:relative;
  margin:-18px -14px 18px;
  padding:0;
  aspect-ratio:1199/1312;
  min-height:0;
  overflow:hidden;
  border-radius:0 0 34px 34px;
  background:
    radial-gradient(circle at 50% 18%,rgba(214,112,255,.48),transparent 30%),
    linear-gradient(160deg,#140023,#2b0750 55%,#08000e);
  border-bottom:0;
  box-shadow:0 20px 48px rgba(25,0,45,.30),0 0 38px rgba(184,75,255,.16);
  -webkit-backdrop-filter:none;
  backdrop-filter:none;
}
.home-hero-image{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center top;
  display:block;
  opacity:0;
  transform:none;
  transition:opacity .28s ease;
  image-rendering:auto;
  -webkit-mask-image:linear-gradient(to bottom,#000 0%,#000 88%,rgba(0,0,0,.92) 93%,transparent 100%);
  mask-image:linear-gradient(to bottom,#000 0%,#000 88%,rgba(0,0,0,.92) 93%,transparent 100%);
}
.hero-poster.loaded .home-hero-image{opacity:1;transform:none}
.hero-poster-shine{
  position:absolute;
  inset:0;
  pointer-events:none;
  background:
    linear-gradient(180deg,rgba(6,0,14,.02) 0 55%,rgba(9,0,20,.16) 70%,rgba(8,0,18,.78) 100%),
    radial-gradient(circle at 50% 14%,rgba(255,255,255,.18),transparent 24%);
}
.hero-glass-caption{
  position:absolute;
  left:14px;
  right:14px;
  bottom:12px;
  padding:8px 12px 9px;
  border-radius:17px;
  text-align:center;
  background:linear-gradient(135deg,rgba(25,3,43,.42),rgba(116,33,151,.28));
  border:1px solid rgba(255,255,255,.27);
  box-shadow:inset 0 1px rgba(255,255,255,.24),0 10px 30px rgba(0,0,0,.28),0 0 20px rgba(209,94,255,.12);
  -webkit-backdrop-filter:blur(18px) saturate(175%);
  backdrop-filter:blur(18px) saturate(175%);
}
.hero-glass-caption span{
  display:block;
  margin-bottom:3px;
  color:#f8dcff;
  font-size:8px;
  font-weight:950;
  letter-spacing:.18em;
}
.hero-glass-caption strong{
  color:#fff1bd;
  font:italic 900 20px Georgia,"Times New Roman",serif;
  text-shadow:0 0 18px rgba(244,199,255,.36),0 0 22px rgba(246,208,108,.16);
}
.hero-fallback .home-hero-image{display:none}

.card{
  background:
    linear-gradient(140deg,rgba(41,8,65,.72),rgba(98,28,124,.37) 52%,rgba(15,2,31,.68));
  border:1px solid rgba(255,226,164,.20);
  box-shadow:
    0 18px 46px rgba(0,0,0,.38),
    inset 0 1px rgba(255,255,255,.18),
    inset 0 -1px rgba(255,255,255,.04),
    0 0 30px rgba(151,51,222,.10);
}
.card:before{
  background:
    linear-gradient(118deg,transparent 8%,rgba(255,255,255,.14) 21%,transparent 36%),
    radial-gradient(circle at 90% 7%,rgba(244,203,255,.15),transparent 25%);
}
.gold{
  color:#291231;
  background:linear-gradient(180deg,#fff6cf 0%,#f0cd73 42%,#c68c2b 100%);
  border:1px solid #fff1b3;
  box-shadow:
    inset 0 1px rgba(255,255,255,.72),
    0 10px 28px rgba(238,190,84,.20),
    0 0 22px rgba(213,111,255,.18);
}
.gold:active{transform:translateY(1px);filter:brightness(.96)}
input,select{
  background:linear-gradient(135deg,rgba(255,255,255,.13),rgba(121,42,160,.13));
  border-color:rgba(255,229,169,.22);
}
.results-tabs{
  background:linear-gradient(135deg,rgba(55,12,82,.72),rgba(17,1,31,.78));
  border-color:rgba(255,225,162,.27);
  box-shadow:
    0 22px 54px rgba(0,0,0,.46),
    inset 0 1px rgba(255,255,255,.22),
    0 0 26px rgba(185,67,239,.13);
}
.results-tab.active{
  background:linear-gradient(135deg,rgba(111,31,166,.82),rgba(214,77,244,.65));
  border-color:rgba(255,235,185,.44);
  box-shadow:
    inset 0 1px rgba(255,255,255,.28),
    0 8px 28px rgba(202,74,242,.28),
    0 0 19px rgba(245,215,125,.12);
}
.total,.chip{
  background:linear-gradient(180deg,#fffefa 0%,#f4e3ff 74%,#dfc4ef 100%);
  box-shadow:
    0 0 0 3px rgba(232,172,255,.74),
    0 10px 24px rgba(0,0,0,.30),
    0 0 28px rgba(222,138,255,.32);
}
.mini-glitterball,.glitterball{
  box-shadow:
    0 0 16px rgba(255,255,255,.28),
    0 0 38px rgba(221,126,255,.67),
    0 0 58px rgba(245,215,125,.18),
    inset 0 0 18px rgba(255,255,255,.48);
}
@media(max-width:560px){
  .hero-poster{border-radius:0 0 28px 28px}
  .hero-glass-caption{left:10px;right:10px;bottom:9px;padding:7px 10px 8px}
  .hero-glass-caption span{font-size:7px;letter-spacing:.15em}
  .hero-glass-caption strong{font-size:17px}
}

/* Latest Strictly Score artwork — full, sharp and softly blended */
.hero.hero-poster{
  margin:-18px -14px 8px;
  aspect-ratio:640/585;
  border-radius:0;
  overflow:hidden;
  background:#12001f;
  box-shadow:none;
}
.hero.hero-poster::before{
  inset:-34px -24px -46px;
  background:var(--hero-image) center/cover no-repeat;
  filter:blur(30px) saturate(1.18);
  opacity:.46;
  transform:scale(1.13);
}
.hero.hero-poster .home-hero-image{
  position:relative;
  inset:auto;
  width:100%;
  height:auto;
  aspect-ratio:640/585;
  object-fit:contain;
  object-position:center;
  opacity:0;
  transform:none;
  filter:none;
  image-rendering:auto;
  -webkit-mask-image:none;
  mask-image:none;
}
.hero.hero-poster.loaded .home-hero-image{
  opacity:1;
}
.hero.hero-poster .hero-poster-shine{
  z-index:2;
  background:
    linear-gradient(90deg,rgba(18,0,31,.10) 0%,transparent 6%,transparent 94%,rgba(18,0,31,.10) 100%),
    linear-gradient(180deg,transparent 0 90%,rgba(24,0,39,.18) 95%,#160022 100%);
}
@media(max-width:560px){
  .hero.hero-poster{
    margin:-18px -14px 6px;
    border-radius:0;
  }
}

/* Extra glitz + glam pass */
.hero-poster.hero-hidden{
  display:none;
}

.glam-sparkle-field{
  position:fixed;
  inset:0;
  z-index:0;
  pointer-events:none;
  overflow:hidden;
  opacity:.72;
  background:
    radial-gradient(circle at 8% 14%,rgba(255,244,190,.95) 0 1px,transparent 2px),
    radial-gradient(circle at 18% 46%,rgba(255,255,255,.9) 0 1.4px,transparent 2.4px),
    radial-gradient(circle at 28% 8%,rgba(232,166,255,.9) 0 1.2px,transparent 2.2px),
    radial-gradient(circle at 42% 31%,rgba(255,226,143,.9) 0 1px,transparent 2px),
    radial-gradient(circle at 57% 12%,rgba(255,255,255,.95) 0 1.3px,transparent 2.3px),
    radial-gradient(circle at 69% 39%,rgba(230,159,255,.88) 0 1.2px,transparent 2.2px),
    radial-gradient(circle at 81% 18%,rgba(255,235,165,.95) 0 1.4px,transparent 2.4px),
    radial-gradient(circle at 92% 52%,rgba(255,255,255,.85) 0 1px,transparent 2px);
  background-size:
    170px 190px,220px 210px,260px 240px,190px 260px,
    210px 230px,250px 200px,180px 250px,230px 220px;
  animation:glamTwinkle 8s ease-in-out infinite alternate,glamDrift 24s linear infinite;
}
.glam-sparkle-field::before,
.glam-sparkle-field::after{
  content:"";
  position:absolute;
  border-radius:50%;
  filter:blur(.2px);
}
.glam-sparkle-field::before{
  width:10px;height:10px;left:8%;top:23%;
  background:#fff8c8;
  box-shadow:
    54px 110px 0 -3px #fff,
    119px -64px 0 -4px #f7d9ff,
    201px 66px 0 -3px #ffe8a6,
    288px -26px 0 -4px #fff,
    356px 138px 0 -3px #e7b8ff,
    431px 17px 0 -4px #ffe7a2,
    514px 104px 0 -3px #fff,
    606px -41px 0 -4px #efc7ff;
  opacity:.68;
  animation:glamPulse 3.4s ease-in-out infinite alternate;
}
.glam-sparkle-field::after{
  width:6px;height:6px;right:9%;top:34%;
  background:#f6dcff;
  box-shadow:
    -70px 108px 0 -2px #fff6bd,
    -156px -92px 0 -2px #fff,
    -239px 62px 0 -2px #e8b7ff,
    -327px -41px 0 -2px #ffe4a0,
    -410px 125px 0 -2px #fff;
  opacity:.62;
  animation:glamPulse 4.2s ease-in-out infinite alternate-reverse;
}
@keyframes glamTwinkle{
  from{opacity:.48;filter:brightness(.95)}
  to{opacity:.84;filter:brightness(1.18)}
}
@keyframes glamDrift{
  to{transform:translate3d(0,-28px,0)}
}
@keyframes glamPulse{
  from{transform:scale(.8);opacity:.35}
  to{transform:scale(1.22);opacity:.9}
}

.shell{
  position:relative;
  z-index:1;
}

.card{
  border:1px solid rgba(255,232,171,.30);
  background:
    linear-gradient(145deg,rgba(255,255,255,.14),rgba(118,31,161,.25) 48%,rgba(27,3,45,.72)),
    radial-gradient(circle at 12% 0%,rgba(255,226,153,.10),transparent 26%);
  box-shadow:
    0 20px 52px rgba(0,0,0,.42),
    inset 0 1px rgba(255,255,255,.24),
    inset 0 -1px rgba(255,214,133,.08),
    0 0 32px rgba(191,76,245,.14);
}
.card::after{
  content:"✦";
  position:absolute;
  right:14px;
  top:10px;
  color:rgba(255,235,175,.68);
  font-size:12px;
  text-shadow:0 0 10px rgba(255,226,148,.75),0 0 20px rgba(209,104,255,.35);
  pointer-events:none;
}
.card h2{
  text-shadow:0 0 16px rgba(244,211,255,.22),0 0 26px rgba(247,210,118,.10);
}

.gold{
  color:#2a1230;
  background:
    linear-gradient(180deg,#fff9d8 0%,#f4d77d 38%,#d6a13f 72%,#b97922 100%);
  border:1px solid rgba(255,246,194,.92);
  box-shadow:
    inset 0 1px rgba(255,255,255,.85),
    inset 0 -1px rgba(132,72,10,.22),
    0 10px 30px rgba(238,190,84,.28),
    0 0 22px rgba(246,212,116,.30),
    0 0 34px rgba(206,94,255,.16);
  text-shadow:0 1px rgba(255,255,255,.42);
}

.results-tabs{
  border:1px solid rgba(255,233,176,.38);
  background:
    linear-gradient(135deg,rgba(76,16,111,.78),rgba(22,2,38,.86)),
    radial-gradient(circle at 50% 0%,rgba(255,255,255,.10),transparent 50%);
  box-shadow:
    0 24px 58px rgba(0,0,0,.48),
    inset 0 1px rgba(255,255,255,.25),
    0 0 28px rgba(202,83,255,.18),
    0 0 18px rgba(244,203,102,.08);
}
.results-tab{
  transition:transform .18s ease,background .18s ease,box-shadow .18s ease;
}
.results-tab .tab-icon{
  text-shadow:0 0 14px rgba(255,236,176,.48),0 0 24px rgba(222,119,255,.38);
}
.results-tab.active{
  background:
    linear-gradient(135deg,rgba(145,42,204,.94),rgba(226,87,248,.76)),
    radial-gradient(circle at 50% 0%,rgba(255,255,255,.22),transparent 58%);
  border-color:rgba(255,238,188,.66);
  box-shadow:
    inset 0 1px rgba(255,255,255,.34),
    0 9px 28px rgba(209,80,247,.33),
    0 0 24px rgba(246,215,125,.18);
  transform:translateY(-1px);
}

.season-card{
  background:
    linear-gradient(145deg,rgba(58,10,86,.78),rgba(113,31,143,.34) 48%,rgba(19,2,34,.78)),
    radial-gradient(circle at 85% 8%,rgba(255,223,150,.12),transparent 24%);
}
.season-row,.weekbyweek-row,.history-week,.overall-leader-card,.overall-total-box,.waiting{
  background:
    linear-gradient(135deg,rgba(255,255,255,.10),rgba(173,73,213,.08)),
    rgba(255,255,255,.035);
  border-color:rgba(255,229,169,.20);
  box-shadow:
    inset 0 1px rgba(255,255,255,.10),
    0 0 18px rgba(175,69,235,.06);
}

.mini-glitterball,.glitterball{
  animation:ballroomGlow 3s ease-in-out infinite alternate;
}
@keyframes ballroomGlow{
  from{filter:brightness(.95);transform:scale(.98)}
  to{filter:brightness(1.16);transform:scale(1.03)}
}

.total,.chip{
  box-shadow:
    0 0 0 3px rgba(236,180,255,.80),
    0 10px 24px rgba(0,0,0,.32),
    0 0 28px rgba(222,138,255,.38),
    0 0 42px rgba(247,214,125,.10);
}

@media(max-width:560px){
  .glam-sparkle-field{opacity:.60}
  .card::after{right:11px;top:9px;font-size:10px}
}

/* Live scoring redesign */
.scoring-card{
  position:relative;
  overflow:hidden;
  padding:14px;
  border:1px solid rgba(255,210,126,.30);
  background:
    radial-gradient(circle at 85% 0%,rgba(255,52,191,.18),transparent 24%),
    radial-gradient(circle at 10% 10%,rgba(188,82,255,.20),transparent 28%),
    linear-gradient(160deg,rgba(24,3,39,.94),rgba(48,5,69,.92) 52%,rgba(13,2,24,.96));
  box-shadow:
    0 22px 60px rgba(0,0,0,.52),
    inset 0 1px rgba(255,255,255,.17),
    0 0 34px rgba(224,66,255,.16),
    0 0 24px rgba(247,201,105,.08);
}
.scoring-card::before{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  background:
    radial-gradient(circle at 12% 18%,rgba(255,255,255,.75) 0 1px,transparent 2px),
    radial-gradient(circle at 76% 14%,rgba(255,218,127,.9) 0 1px,transparent 2px),
    radial-gradient(circle at 92% 45%,rgba(255,255,255,.65) 0 1px,transparent 2px),
    radial-gradient(circle at 22% 76%,rgba(236,165,255,.8) 0 1px,transparent 2px);
  background-size:130px 160px,170px 130px,190px 170px,150px 190px;
  opacity:.42;
}
.scoring-card > *{position:relative;z-index:1}

.live-scoring-head{
  align-items:flex-start;
  padding-bottom:10px;
  border-bottom:1px solid rgba(255,219,137,.18);
}
.round-kicker{
  font-size:9px;
  font-weight:950;
  letter-spacing:.22em;
  color:#f7d884;
  margin-bottom:3px;
}
.live-scoring-head .round-title{
  font:italic 900 28px Georgia,"Times New Roman",serif;
  color:#fff2bb;
  text-shadow:
    0 0 16px rgba(250,211,111,.35),
    0 0 28px rgba(228,78,255,.22);
}
.live-scoring-head .round-sub{
  color:#d9c6df;
}
.round-head-actions{
  display:flex;
  flex-direction:column;
  align-items:flex-end;
  gap:7px;
}
.scoring-live{
  color:white;
  border-color:rgba(255,99,203,.62);
  background:linear-gradient(180deg,#ff33bd,#db007e);
  box-shadow:
    inset 0 1px rgba(255,255,255,.38),
    0 0 16px rgba(255,22,160,.58);
  letter-spacing:.08em;
}
.scoring-card .round-score{
  min-width:48px;
  padding:5px 8px;
  border-radius:999px;
  text-align:center;
  color:#ffe8a0;
  font-weight:950;
  background:rgba(255,255,255,.06);
  border:1px solid rgba(255,222,143,.18);
}

.scoring-panel,.scoring-opponent-panel{
  padding:12px;
  margin-top:12px;
  border:1px solid rgba(245,180,255,.22);
  background:
    linear-gradient(145deg,rgba(255,255,255,.075),rgba(115,26,147,.09)),
    rgba(8,0,16,.30);
  box-shadow:
    inset 0 1px rgba(255,255,255,.10),
    0 0 22px rgba(211,73,255,.08);
}
.scoring-player-row strong{
  font:800 16px Georgia,"Times New Roman",serif;
  color:#ffe9a4;
}
.scoring-player-row .status{
  color:#e8c8f4;
}

.score-hidden-select{
  display:none!important;
}

.scoring-judge-grid{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:7px;
  margin-top:8px;
}
.scoring-judge-card{
  min-height:124px;
  padding:9px 4px 10px;
  border-radius:20px;
  border:1px solid rgba(220,115,255,.34);
  color:white;
  background:
    radial-gradient(circle at 50% 0%,rgba(255,255,255,.10),transparent 38%),
    linear-gradient(180deg,rgba(95,23,124,.60),rgba(18,2,29,.90));
  box-shadow:
    inset 0 1px rgba(255,255,255,.12),
    0 8px 20px rgba(0,0,0,.28);
  transition:.18s ease;
}
.scoring-judge-card.active{
  border-color:#ff73d2;
  transform:translateY(-2px);
  background:
    radial-gradient(circle at 50% 0%,rgba(255,255,255,.16),transparent 40%),
    linear-gradient(180deg,rgba(143,35,170,.78),rgba(35,3,52,.96));
  box-shadow:
    inset 0 1px rgba(255,255,255,.18),
    0 0 0 1px rgba(255,102,211,.30),
    0 0 24px rgba(255,35,178,.34);
}
.judge-avatar{
  width:52px;
  height:52px;
  margin:0 auto 6px;
  display:grid;
  place-items:center;
  border-radius:50%;
  font:900 22px Georgia,"Times New Roman",serif;
  color:#fff5c8;
  border:2px solid rgba(255,224,146,.86);
  background:
    radial-gradient(circle at 35% 26%,rgba(255,255,255,.34),transparent 18%),
    linear-gradient(145deg,#5b2377,#1b0828);
  box-shadow:
    inset 0 1px rgba(255,255,255,.22),
    0 0 0 3px rgba(113,32,145,.45),
    0 0 18px rgba(229,107,255,.22);
}
.scoring-judge-card:nth-child(2) .judge-avatar,
.submitted-judge-card:nth-child(2) .judge-avatar{
  background:linear-gradient(145deg,#8c285e,#25071d);
}
.scoring-judge-card:nth-child(3) .judge-avatar,
.submitted-judge-card:nth-child(3) .judge-avatar{
  background:linear-gradient(145deg,#6f356e,#1b0a22);
}
.scoring-judge-card:nth-child(4) .judge-avatar,
.submitted-judge-card:nth-child(4) .judge-avatar{
  background:linear-gradient(145deg,#854319,#26150b);
}
.judge-photo{
  overflow:hidden;
  background-repeat:no-repeat!important;
  background-size:400% 100%!important;
  background-color:#16041f!important;
  background-position-y:50%!important;
  image-rendering:auto;
}
.judge-photo-0{background-position:0% 50%!important}
.judge-photo-1{background-position:33.333% 50%!important}
.judge-photo-2{background-position:66.667% 50%!important}
.judge-photo-3{background-position:100% 50%!important}
.judge-photo-external{
  background-size:cover!important;
  background-repeat:no-repeat!important;
}
.judge-photo-external.judge-photo-0{background-position:50% 22%!important}
.judge-photo-external.judge-photo-3{background-position:50% 18%!important}
.judge-card-name{
  display:block;
  font:800 12px Georgia,"Times New Roman",serif;
  color:#fff;
}
.judge-current-score{
  display:block;
  margin-top:3px;
  font:900 26px Georgia,"Times New Roman",serif;
  color:#ffe496;
  text-shadow:0 0 14px rgba(248,207,102,.34);
}

.score-picker{
  margin-top:14px;
  padding:13px 10px 12px;
  border-radius:20px;
  border:1px solid rgba(255,123,220,.20);
  background:
    radial-gradient(circle at 50% 0%,rgba(255,61,189,.08),transparent 36%),
    rgba(3,0,9,.32);
}
.score-picker-title{
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:2px;
  margin-bottom:11px;
  text-align:center;
}
.score-picker-title strong{
  font:900 22px Georgia,"Times New Roman",serif;
  color:#ffe5a0;
}
.score-picker-title span{
  color:#cab8d2;
  font-size:11px;
}
.score-number-grid{
  display:grid;
  grid-template-columns:repeat(5,minmax(0,1fr));
  gap:10px 8px;
}
.score-number{
  aspect-ratio:1;
  min-height:0;
  padding:0;
  border-radius:50%;
  border:1.5px solid rgba(255,115,218,.68);
  color:#fff;
  font:900 19px Georgia,"Times New Roman",serif;
  background:
    radial-gradient(circle at 35% 25%,rgba(255,255,255,.08),transparent 22%),
    linear-gradient(180deg,rgba(52,15,66,.88),rgba(10,2,17,.96));
  box-shadow:
    inset 0 1px rgba(255,255,255,.12),
    0 4px 12px rgba(0,0,0,.24);
  transition:.15s ease;
}
.score-number:active{
  transform:scale(.94);
}
.score-number.selected{
  color:white;
  border-color:#ffd0ef;
  background:radial-gradient(circle at 35% 25%,#ff8bd8 0,#ff29b6 34%,#e60082 72%);
  box-shadow:
    inset 0 1px rgba(255,255,255,.46),
    0 0 0 2px rgba(255,88,199,.30),
    0 0 20px rgba(255,20,164,.80),
    0 0 34px rgba(255,20,164,.36);
}

.neon-submit{
  width:100%;
  margin-top:14px;
  color:#fff;
  border:1px solid rgba(255,212,240,.78);
  background:linear-gradient(180deg,#ff35c0 0%,#f40098 58%,#c90074 100%);
  box-shadow:
    inset 0 1px rgba(255,255,255,.42),
    0 10px 26px rgba(210,0,119,.30),
    0 0 24px rgba(255,22,165,.42);
  text-shadow:0 1px 0 rgba(89,0,47,.36);
}
.neon-submit:disabled{
  opacity:.55;
  filter:saturate(.65);
}

.submitted-judge-grid{
  grid-template-columns:repeat(4,minmax(0,1fr))!important;
  gap:7px!important;
}
.submitted-judge-card{
  padding:8px 5px 10px!important;
  border-radius:18px!important;
  text-align:center;
  background:
    radial-gradient(circle at 50% 0%,rgba(255,255,255,.08),transparent 36%),
    linear-gradient(180deg,rgba(88,21,112,.52),rgba(16,2,27,.88))!important;
}
.submitted-judge-card .judge-avatar{
  width:44px;
  height:44px;
  font-size:18px;
  margin-bottom:5px;
}
.submitted-judge-card .judge-name{
  margin-bottom:5px;
  font-size:10px;
  letter-spacing:.03em;
}
.submitted-judge-card .chip{
  width:50px;
  min-height:50px;
  margin:0 auto;
  padding:4px;
  display:grid;
  place-items:center;
  border-radius:50%;
  color:#fff1bd;
  font-size:25px;
  border:1px solid rgba(255,205,116,.60);
  background:linear-gradient(180deg,rgba(90,23,110,.94),rgba(24,3,38,.96));
  box-shadow:
    inset 0 1px rgba(255,255,255,.16),
    0 0 0 2px rgba(226,112,255,.22),
    0 0 17px rgba(211,71,255,.18);
}
.submitted-judge-card .correct{
  justify-content:center;
  flex-wrap:wrap;
  gap:3px;
  color:#f6d9ff!important;
  font-size:9px!important;
}
.submitted-judge-card .correct input{
  width:18px;
  height:18px;
  accent-color:#ff20ad;
}

@media(max-width:560px){
  .scoring-card{padding:11px}
  .live-scoring-head .round-title{font-size:25px}
  .live-scoring-head .round-sub{font-size:10px}
  .scoring-judge-grid{gap:5px}
  .scoring-judge-card{
    min-height:112px;
    padding:7px 2px 8px;
    border-radius:16px;
  }
  .judge-avatar{
    width:44px;
    height:44px;
    font-size:19px;
  }
  .judge-card-name{font-size:11px}
  .judge-current-score{font-size:23px}
  .score-picker{padding:12px 8px}
  .score-picker-title strong{font-size:20px}
  .score-number-grid{gap:8px 7px}
  .score-number{font-size:18px}
  .submitted-judge-grid{gap:5px!important}
  .submitted-judge-card{padding:7px 3px 9px!important}
  .submitted-judge-card .judge-avatar{width:38px;height:38px;font-size:16px}
  .submitted-judge-card .chip{width:44px;min-height:44px;font-size:22px}
}

/* Final glitter + glamour + liquid glass polish */
@keyframes liquidSheen{
  0%{transform:translateX(-125%) rotate(8deg);opacity:0}
  18%{opacity:.42}
  52%{opacity:.16}
  100%{transform:translateX(165%) rotate(8deg);opacity:0}
}
@keyframes jewelPulse{
  0%,100%{filter:brightness(1);transform:translateZ(0)}
  50%{filter:brightness(1.12);transform:translateZ(0)}
}
@keyframes sparkleFloat{
  0%{transform:translate3d(0,0,0) scale(.92);opacity:.34}
  50%{opacity:.82}
  100%{transform:translate3d(8px,-10px,0) scale(1.08);opacity:.42}
}

body{
  background:
    radial-gradient(circle at 12% 6%,rgba(232,126,255,.36),transparent 28%),
    radial-gradient(circle at 86% 12%,rgba(139,54,255,.34),transparent 30%),
    radial-gradient(circle at 52% 72%,rgba(255,67,202,.18),transparent 34%),
    radial-gradient(circle at 42% 112%,rgba(246,211,125,.11),transparent 28%),
    linear-gradient(160deg,#08000f 0%,#1a0528 38%,#2c0743 66%,#0a0012 100%);
}
body:before{
  opacity:.72;
  background-image:
    radial-gradient(circle,rgba(255,255,255,1) 0 1px,transparent 1.8px),
    radial-gradient(circle,rgba(249,212,255,.95) 0 1.5px,transparent 2.2px),
    radial-gradient(circle,rgba(255,226,145,.95) 0 1.2px,transparent 1.9px),
    radial-gradient(circle,rgba(255,83,205,.72) 0 1px,transparent 1.8px);
  background-size:38px 38px,73px 73px,113px 113px,157px 157px;
  background-position:2px 8px,27px 37px,59px 11px,101px 74px;
}
.glam-sparkle-field{
  opacity:.84;
  filter:saturate(1.18);
}
.glam-sparkle-field::before,
.glam-sparkle-field::after{
  animation:sparkleFloat 7s ease-in-out infinite alternate;
}

.card,
.scoring-panel,
.scoring-opponent-panel,
.results-tabs,
.season-row,
.weekbyweek-row,
.history-week,
.overall-leader-card,
.overall-total-box,
.waiting{
  -webkit-backdrop-filter:blur(34px) saturate(185%);
  backdrop-filter:blur(34px) saturate(185%);
}
.card{
  border:1px solid rgba(255,255,255,.27);
  background:
    radial-gradient(circle at 18% 0%,rgba(255,255,255,.18),transparent 26%),
    linear-gradient(145deg,rgba(255,255,255,.16),rgba(131,42,174,.20) 46%,rgba(255,255,255,.075));
  box-shadow:
    0 22px 58px rgba(0,0,0,.40),
    inset 0 1px rgba(255,255,255,.33),
    inset 0 -1px rgba(255,255,255,.055),
    0 0 34px rgba(213,91,255,.12);
}
.card:before{
  background:
    linear-gradient(118deg,transparent 6%,rgba(255,255,255,.19) 20%,transparent 36%),
    radial-gradient(circle at 86% 7%,rgba(255,255,255,.19),transparent 25%);
}
.card:after{
  color:rgba(255,240,188,.80);
  text-shadow:
    0 0 10px rgba(255,242,199,.92),
    0 0 24px rgba(224,97,255,.52);
}

button{
  position:relative;
  overflow:hidden;
  -webkit-tap-highlight-color:transparent;
}
button::after{
  content:"";
  position:absolute;
  top:-45%;
  bottom:-45%;
  width:32%;
  left:-42%;
  pointer-events:none;
  background:linear-gradient(90deg,transparent,rgba(255,255,255,.28),transparent);
  transform:skewX(-16deg);
  opacity:0;
}
button:active::after,
.results-tab.active::after,
.neon-submit::after{
  animation:liquidSheen .72s ease-out;
}

.results-tabs{
  background:
    radial-gradient(circle at 50% -18%,rgba(255,255,255,.22),transparent 40%),
    linear-gradient(145deg,rgba(92,24,126,.68),rgba(24,3,39,.76));
  border:1px solid rgba(255,244,211,.28);
  box-shadow:
    0 24px 64px rgba(0,0,0,.48),
    inset 0 1px rgba(255,255,255,.30),
    inset 0 -1px rgba(255,255,255,.045),
    0 0 34px rgba(217,74,255,.18);
}
.results-tab{
  border:1px solid rgba(255,255,255,.045);
  background:rgba(255,255,255,.028);
}
.results-tab.active{
  background:
    radial-gradient(circle at 35% 0%,rgba(255,255,255,.26),transparent 38%),
    linear-gradient(135deg,rgba(192,72,242,.86),rgba(238,88,231,.64));
  border-color:rgba(255,239,196,.48);
  box-shadow:
    inset 0 1px rgba(255,255,255,.38),
    0 10px 30px rgba(215,72,245,.36),
    0 0 22px rgba(255,211,120,.09);
}

.scoring-card{
  border-color:rgba(255,230,169,.40);
  background:
    radial-gradient(circle at 82% -2%,rgba(255,255,255,.16),transparent 24%),
    radial-gradient(circle at 12% 10%,rgba(220,111,255,.28),transparent 30%),
    radial-gradient(circle at 88% 48%,rgba(255,42,183,.12),transparent 24%),
    linear-gradient(160deg,rgba(31,4,48,.91),rgba(61,7,87,.86) 52%,rgba(14,2,25,.94));
  box-shadow:
    0 26px 70px rgba(0,0,0,.56),
    inset 0 1px rgba(255,255,255,.26),
    inset 0 -1px rgba(255,218,134,.08),
    0 0 42px rgba(220,71,255,.22),
    0 0 26px rgba(246,205,109,.10);
  -webkit-backdrop-filter:blur(38px) saturate(190%);
  backdrop-filter:blur(38px) saturate(190%);
}
.scoring-card::before{
  opacity:.62;
  animation:sparkleFloat 8s ease-in-out infinite alternate;
}

.scoring-panel,.scoring-opponent-panel{
  border:1px solid rgba(255,255,255,.22);
  background:
    radial-gradient(circle at 24% 0%,rgba(255,255,255,.12),transparent 30%),
    linear-gradient(145deg,rgba(255,255,255,.10),rgba(126,31,161,.11)),
    rgba(10,1,18,.30);
  box-shadow:
    inset 0 1px rgba(255,255,255,.18),
    inset 0 -1px rgba(255,255,255,.04),
    0 12px 30px rgba(0,0,0,.18),
    0 0 26px rgba(207,78,255,.10);
}

.scoring-judge-card{
  position:relative;
  overflow:hidden;
  border:1px solid rgba(255,226,169,.30);
  background:
    radial-gradient(circle at 50% -8%,rgba(255,255,255,.20),transparent 34%),
    linear-gradient(180deg,rgba(111,28,144,.66),rgba(19,2,31,.89));
  box-shadow:
    inset 0 1px rgba(255,255,255,.22),
    inset 0 -1px rgba(255,255,255,.04),
    0 9px 22px rgba(0,0,0,.30),
    0 0 16px rgba(204,76,255,.08);
  -webkit-backdrop-filter:blur(20px) saturate(180%);
  backdrop-filter:blur(20px) saturate(180%);
}
.scoring-judge-card::before{
  content:"";
  position:absolute;
  inset:0;
  border-radius:inherit;
  pointer-events:none;
  background:
    linear-gradient(118deg,rgba(255,255,255,.14),transparent 30% 70%,rgba(255,232,177,.06));
}
.scoring-judge-card.active{
  border-color:rgba(255,228,170,.78);
  background:
    radial-gradient(circle at 50% -8%,rgba(255,255,255,.28),transparent 36%),
    linear-gradient(180deg,rgba(164,44,190,.86),rgba(48,5,68,.95));
  box-shadow:
    inset 0 1px rgba(255,255,255,.32),
    0 0 0 1px rgba(255,112,217,.28),
    0 0 28px rgba(255,39,184,.48),
    0 0 18px rgba(246,209,116,.12);
  animation:jewelPulse 2.4s ease-in-out infinite;
}
.judge-avatar{
  border-color:rgba(255,237,184,.95);
  box-shadow:
    inset 0 1px rgba(255,255,255,.24),
    0 0 0 3px rgba(151,55,184,.50),
    0 0 18px rgba(238,117,255,.32),
    0 0 12px rgba(246,210,119,.15);
}
.scoring-judge-card.active .judge-avatar{
  box-shadow:
    inset 0 1px rgba(255,255,255,.30),
    0 0 0 3px rgba(255,218,133,.66),
    0 0 22px rgba(255,84,201,.48),
    0 0 20px rgba(250,217,126,.18);
}
.judge-current-score{
  color:#fff1ad;
  text-shadow:
    0 0 12px rgba(255,229,150,.58),
    0 0 20px rgba(225,95,255,.26);
}

.score-picker{
  border:1px solid rgba(255,255,255,.20);
  background:
    radial-gradient(circle at 50% -10%,rgba(255,255,255,.14),transparent 34%),
    linear-gradient(145deg,rgba(255,255,255,.07),rgba(85,17,111,.11)),
    rgba(4,0,10,.32);
  box-shadow:
    inset 0 1px rgba(255,255,255,.13),
    0 12px 28px rgba(0,0,0,.18),
    0 0 24px rgba(210,67,255,.08);
  -webkit-backdrop-filter:blur(28px) saturate(180%);
  backdrop-filter:blur(28px) saturate(180%);
}
.score-number{
  border-color:rgba(255,145,224,.72);
  background:
    radial-gradient(circle at 34% 20%,rgba(255,255,255,.16),transparent 24%),
    linear-gradient(180deg,rgba(65,20,82,.78),rgba(12,2,20,.92));
  box-shadow:
    inset 0 1px rgba(255,255,255,.18),
    inset 0 -1px rgba(255,255,255,.03),
    0 5px 15px rgba(0,0,0,.28),
    0 0 10px rgba(216,79,255,.08);
  -webkit-backdrop-filter:blur(14px) saturate(175%);
  backdrop-filter:blur(14px) saturate(175%);
}
.score-number.selected{
  border-color:#fff2fb;
  background:
    radial-gradient(circle at 34% 20%,#ffc5ec 0 7%,#ff61c9 21%,#ff1aaf 54%,#cf006f 100%);
  box-shadow:
    inset 0 1px rgba(255,255,255,.60),
    inset 0 -2px rgba(115,0,61,.18),
    0 0 0 2px rgba(255,106,207,.36),
    0 0 24px rgba(255,22,166,.95),
    0 0 48px rgba(255,22,166,.46),
    0 0 20px rgba(255,229,145,.12);
  text-shadow:0 0 9px rgba(255,255,255,.46);
  animation:jewelPulse 1.8s ease-in-out infinite;
}

.neon-submit{
  border-color:rgba(255,240,251,.90);
  background:
    radial-gradient(circle at 50% -25%,rgba(255,255,255,.52),transparent 42%),
    linear-gradient(180deg,#ff58cb 0%,#ff0faa 48%,#d50079 100%);
  box-shadow:
    inset 0 1px rgba(255,255,255,.58),
    inset 0 -2px rgba(112,0,62,.22),
    0 12px 30px rgba(205,0,119,.36),
    0 0 28px rgba(255,24,169,.58),
    0 0 54px rgba(255,24,169,.22);
}
.neon-submit::before{
  content:"";
  position:absolute;
  left:9%;
  right:9%;
  top:4px;
  height:34%;
  border-radius:999px;
  pointer-events:none;
  background:linear-gradient(180deg,rgba(255,255,255,.46),rgba(255,255,255,.03));
  opacity:.62;
}
.neon-submit::after{
  opacity:.58;
  animation:liquidSheen 3.8s ease-in-out infinite;
}

.gold,.secondary,.final-button,.danger{
  -webkit-backdrop-filter:blur(18px) saturate(170%);
  backdrop-filter:blur(18px) saturate(170%);
}
.gold{
  background:
    radial-gradient(circle at 50% -20%,rgba(255,255,255,.38),transparent 42%),
    linear-gradient(135deg,#c34cf4 0%,#922cd2 42%,#e96dff 100%);
}
.secondary{
  background:
    radial-gradient(circle at 50% -20%,rgba(255,255,255,.12),transparent 38%),
    rgba(255,255,255,.075);
  box-shadow:
    inset 0 1px rgba(255,255,255,.18),
    0 8px 20px rgba(0,0,0,.14);
}
.final-button{
  background:
    radial-gradient(circle at 50% -18%,rgba(255,255,255,.52),transparent 38%),
    linear-gradient(180deg,#fff7c9,#f0cf6b 54%,#c99835);
  box-shadow:
    inset 0 1px rgba(255,255,255,.68),
    0 14px 34px rgba(238,193,84,.22),
    0 0 26px rgba(246,213,122,.18);
}

.submitted-judge-card{
  border:1px solid rgba(255,234,187,.18)!important;
  background:
    radial-gradient(circle at 50% -8%,rgba(255,255,255,.16),transparent 34%),
    linear-gradient(180deg,rgba(99,27,128,.58),rgba(17,2,29,.88))!important;
  box-shadow:
    inset 0 1px rgba(255,255,255,.14),
    0 8px 18px rgba(0,0,0,.20);
}
.submitted-judge-card .chip{
  border-color:rgba(255,229,163,.68);
  background:
    radial-gradient(circle at 36% 22%,rgba(255,255,255,.18),transparent 22%),
    linear-gradient(180deg,rgba(105,31,126,.96),rgba(25,4,40,.98));
  box-shadow:
    inset 0 1px rgba(255,255,255,.18),
    0 0 0 2px rgba(226,112,255,.25),
    0 0 20px rgba(213,74,255,.22);
}

@media (prefers-reduced-motion:reduce){
  .glam-sparkle-field,
  .glam-sparkle-field::before,
  .glam-sparkle-field::after,
  .scoring-card::before,
  .scoring-judge-card.active,
  .score-number.selected,
  .neon-submit::after{
    animation:none!important;
  }
}

/* Midnight Ballroom — elegant plum, champagne and glass */
:root{
  --bg:#0b0710;
  --bg2:#17101d;
  --card:rgba(29,22,34,.54);
  --gold:#e7c77d;
  --gold2:#f2dfab;
  --text:#fffaf4;
  --muted:#c9bbc9;
  --border:rgba(231,199,125,.20);
  --panel:rgba(255,255,255,.07);
  --purple:#4a235a;
  --magenta:#e83fae;
}
body{
  background:
    radial-gradient(circle at 14% 7%,rgba(116,65,130,.23),transparent 29%),
    radial-gradient(circle at 88% 11%,rgba(74,35,90,.25),transparent 31%),
    radial-gradient(circle at 50% 78%,rgba(107,63,112,.12),transparent 36%),
    radial-gradient(circle at 44% 110%,rgba(231,199,125,.08),transparent 26%),
    linear-gradient(158deg,#08070a 0%,#0f0b13 34%,#17101d 64%,#09070b 100%);
}
body:before{
  opacity:.58;
  background-image:
    radial-gradient(circle,rgba(255,255,255,.95) 0 1px,transparent 1.8px),
    radial-gradient(circle,rgba(231,199,125,.92) 0 1.2px,transparent 2px),
    radial-gradient(circle,rgba(200,166,216,.60) 0 1px,transparent 1.8px);
  background-size:48px 48px,118px 118px,83px 83px;
  background-position:3px 8px,62px 19px,31px 44px;
}
body:after{
  opacity:.42;
  background:
    radial-gradient(ellipse at 18% -8%,rgba(255,255,255,.13),transparent 29%),
    radial-gradient(ellipse at 82% 0%,rgba(231,199,125,.08),transparent 23%),
    linear-gradient(112deg,transparent 18%,rgba(255,255,255,.045) 23%,transparent 30%);
}
.glam-sparkle-field{
  opacity:.60;
  filter:saturate(.75) brightness(1.04);
}
.glam-sparkle-field::before,
.glam-sparkle-field::after{
  opacity:.72;
}

.card{
  border-color:rgba(231,199,125,.22);
  background:
    radial-gradient(circle at 18% -2%,rgba(255,255,255,.13),transparent 26%),
    linear-gradient(145deg,rgba(255,255,255,.105),rgba(74,35,90,.10) 48%,rgba(15,11,18,.34));
  box-shadow:
    0 24px 62px rgba(0,0,0,.44),
    inset 0 1px rgba(255,255,255,.22),
    inset 0 -1px rgba(231,199,125,.04),
    0 0 24px rgba(231,199,125,.035);
}
.card:before{
  background:
    linear-gradient(116deg,transparent 7%,rgba(255,255,255,.15) 21%,transparent 37%),
    radial-gradient(circle at 86% 8%,rgba(231,199,125,.08),transparent 24%);
}
.card:after{
  color:rgba(242,223,171,.72);
  text-shadow:
    0 0 10px rgba(255,246,219,.72),
    0 0 20px rgba(231,199,125,.24);
}

h2,.small,.round-kicker,.scoring-player-row strong,.score-picker-title strong{
  color:#f2dfab;
  text-shadow:0 0 14px rgba(231,199,125,.13);
}
.muted,.round-sub,.status,.message{color:#c9bbc9}

.results-tabs{
  background:
    radial-gradient(circle at 50% -20%,rgba(255,255,255,.14),transparent 40%),
    linear-gradient(145deg,rgba(28,22,32,.84),rgba(12,9,14,.82));
  border-color:rgba(231,199,125,.24);
  box-shadow:
    0 26px 66px rgba(0,0,0,.52),
    inset 0 1px rgba(255,255,255,.20),
    inset 0 -1px rgba(231,199,125,.04),
    0 0 20px rgba(231,199,125,.04);
}
.results-tab{
  color:#cfc2d0;
  background:rgba(255,255,255,.022);
}
.results-tab .tab-icon{
  color:#d9ba72;
  text-shadow:0 0 12px rgba(231,199,125,.18);
}
.results-tab.active{
  color:#fff;
  background:
    radial-gradient(circle at 35% 0%,rgba(255,255,255,.20),transparent 38%),
    linear-gradient(145deg,rgba(89,47,102,.82),rgba(57,31,67,.90));
  border-color:rgba(231,199,125,.42);
  box-shadow:
    inset 0 1px rgba(255,255,255,.27),
    0 10px 28px rgba(0,0,0,.28),
    0 0 18px rgba(231,199,125,.08);
}

.scoring-card{
  border-color:rgba(231,199,125,.30);
  background:
    radial-gradient(circle at 82% -3%,rgba(255,255,255,.12),transparent 25%),
    radial-gradient(circle at 14% 9%,rgba(92,53,104,.18),transparent 31%),
    radial-gradient(circle at 88% 52%,rgba(231,199,125,.055),transparent 23%),
    linear-gradient(160deg,rgba(19,14,23,.93),rgba(32,23,38,.90) 52%,rgba(11,8,13,.96));
  box-shadow:
    0 28px 74px rgba(0,0,0,.58),
    inset 0 1px rgba(255,255,255,.19),
    inset 0 -1px rgba(231,199,125,.07),
    0 0 30px rgba(102,56,118,.09),
    0 0 18px rgba(231,199,125,.055);
}
.scoring-card::before{
  opacity:.46;
  background:
    radial-gradient(circle at 12% 18%,rgba(255,255,255,.72) 0 1px,transparent 2px),
    radial-gradient(circle at 76% 14%,rgba(231,199,125,.85) 0 1px,transparent 2px),
    radial-gradient(circle at 92% 45%,rgba(255,255,255,.54) 0 1px,transparent 2px),
    radial-gradient(circle at 22% 76%,rgba(200,166,216,.58) 0 1px,transparent 2px);
}
.live-scoring-head{
  border-bottom-color:rgba(231,199,125,.16);
}
.live-scoring-head .round-title{
  color:#f6e5b6;
  text-shadow:
    0 0 15px rgba(231,199,125,.20),
    0 0 24px rgba(120,73,132,.12);
}
.live-scoring-head .round-sub{color:#c9bbc9}
.scoring-live{
  background:linear-gradient(180deg,#eb5ab8,#d52d96);
  border-color:rgba(255,231,245,.62);
  box-shadow:
    inset 0 1px rgba(255,255,255,.34),
    0 0 14px rgba(232,63,174,.36);
}

.scoring-panel,.scoring-opponent-panel{
  border-color:rgba(231,199,125,.17);
  background:
    radial-gradient(circle at 24% 0%,rgba(255,255,255,.09),transparent 30%),
    linear-gradient(145deg,rgba(255,255,255,.065),rgba(74,35,90,.045)),
    rgba(8,6,10,.42);
  box-shadow:
    inset 0 1px rgba(255,255,255,.12),
    inset 0 -1px rgba(231,199,125,.035),
    0 14px 34px rgba(0,0,0,.22);
}

.scoring-judge-card{
  border-color:rgba(231,199,125,.22);
  background:
    radial-gradient(circle at 50% -8%,rgba(255,255,255,.13),transparent 34%),
    linear-gradient(180deg,rgba(58,36,65,.72),rgba(15,10,18,.92));
  box-shadow:
    inset 0 1px rgba(255,255,255,.15),
    inset 0 -1px rgba(231,199,125,.03),
    0 9px 22px rgba(0,0,0,.32);
}
.scoring-judge-card::before{
  background:
    linear-gradient(118deg,rgba(255,255,255,.10),transparent 31% 70%,rgba(231,199,125,.045));
}
.scoring-judge-card.active{
  border-color:rgba(231,199,125,.72);
  background:
    radial-gradient(circle at 50% -8%,rgba(255,255,255,.20),transparent 36%),
    linear-gradient(180deg,rgba(83,47,94,.84),rgba(29,18,35,.96));
  box-shadow:
    inset 0 1px rgba(255,255,255,.24),
    0 0 0 1px rgba(231,199,125,.16),
    0 0 24px rgba(126,78,139,.24),
    0 0 16px rgba(231,199,125,.12);
}
.judge-avatar{
  border-color:rgba(242,223,171,.94);
  box-shadow:
    inset 0 1px rgba(255,255,255,.22),
    0 0 0 3px rgba(74,35,90,.58),
    0 0 14px rgba(231,199,125,.13);
}
.scoring-judge-card.active .judge-avatar{
  box-shadow:
    inset 0 1px rgba(255,255,255,.27),
    0 0 0 3px rgba(231,199,125,.55),
    0 0 18px rgba(231,199,125,.16),
    0 0 18px rgba(112,65,124,.18);
}
.judge-card-name{color:#fffaf4}
.judge-current-score{
  color:#f2dfab;
  text-shadow:
    0 0 11px rgba(231,199,125,.34),
    0 0 18px rgba(111,66,121,.14);
}

.score-picker{
  border-color:rgba(231,199,125,.15);
  background:
    radial-gradient(circle at 50% -10%,rgba(255,255,255,.10),transparent 34%),
    linear-gradient(145deg,rgba(255,255,255,.045),rgba(74,35,90,.035)),
    rgba(5,4,7,.46);
  box-shadow:
    inset 0 1px rgba(255,255,255,.10),
    0 14px 30px rgba(0,0,0,.20);
}
.score-picker-title span{color:#bdaebe}

.score-number{
  border-color:rgba(200,166,216,.42);
  background:
    radial-gradient(circle at 34% 20%,rgba(255,255,255,.11),transparent 24%),
    linear-gradient(180deg,rgba(43,31,48,.80),rgba(11,8,14,.94));
  box-shadow:
    inset 0 1px rgba(255,255,255,.12),
    inset 0 -1px rgba(231,199,125,.025),
    0 5px 15px rgba(0,0,0,.28);
}
.score-number.selected{
  border-color:rgba(255,245,250,.92);
  background:
    radial-gradient(circle at 34% 20%,#ffd5ed 0 7%,#f077be 20%,#e83fae 55%,#b91f7e 100%);
  box-shadow:
    inset 0 1px rgba(255,255,255,.52),
    inset 0 -2px rgba(93,17,65,.18),
    0 0 0 2px rgba(232,63,174,.22),
    0 0 22px rgba(232,63,174,.62),
    0 0 34px rgba(231,199,125,.08);
}

.neon-submit{
  border-color:rgba(255,239,249,.80);
  background:
    radial-gradient(circle at 50% -25%,rgba(255,255,255,.43),transparent 42%),
    linear-gradient(180deg,#ef71bd 0%,#e83fae 48%,#bc277e 100%);
  box-shadow:
    inset 0 1px rgba(255,255,255,.50),
    inset 0 -2px rgba(84,17,56,.20),
    0 12px 30px rgba(135,31,91,.30),
    0 0 22px rgba(232,63,174,.34),
    0 0 22px rgba(231,199,125,.055);
}
.neon-submit::before{
  background:linear-gradient(180deg,rgba(255,255,255,.38),rgba(255,255,255,.025));
}

.gold{
  color:#241b26;
  background:
    radial-gradient(circle at 50% -20%,rgba(255,255,255,.42),transparent 42%),
    linear-gradient(180deg,#f5e6bb 0%,#e7c77d 52%,#b99145 100%);
  border-color:rgba(255,241,204,.86);
  box-shadow:
    inset 0 1px rgba(255,255,255,.68),
    0 10px 28px rgba(139,103,44,.18),
    0 0 18px rgba(231,199,125,.13);
  text-shadow:0 1px rgba(255,255,255,.36);
}
.secondary{
  background:
    radial-gradient(circle at 50% -20%,rgba(255,255,255,.09),transparent 38%),
    rgba(255,255,255,.05);
  border-color:rgba(231,199,125,.13);
}
.final-button{
  color:#251c20;
  border-color:rgba(255,241,204,.90);
  background:
    radial-gradient(circle at 50% -18%,rgba(255,255,255,.48),transparent 38%),
    linear-gradient(180deg,#f8eac1,#e7c77d 54%,#b98f40);
  box-shadow:
    inset 0 1px rgba(255,255,255,.64),
    0 14px 32px rgba(139,103,44,.20),
    0 0 22px rgba(231,199,125,.13);
}

.submitted-judge-card{
  border-color:rgba(231,199,125,.14)!important;
  background:
    radial-gradient(circle at 50% -8%,rgba(255,255,255,.10),transparent 34%),
    linear-gradient(180deg,rgba(52,34,59,.60),rgba(13,9,16,.90))!important;
}
.submitted-judge-card .chip{
  color:#f2dfab;
  border-color:rgba(231,199,125,.45);
  background:
    radial-gradient(circle at 36% 22%,rgba(255,255,255,.12),transparent 22%),
    linear-gradient(180deg,rgba(66,43,73,.94),rgba(18,12,22,.98));
  box-shadow:
    inset 0 1px rgba(255,255,255,.13),
    0 0 0 2px rgba(74,35,90,.28),
    0 0 14px rgba(231,199,125,.075);
}

.season-card{
  background:
    radial-gradient(circle at 84% 6%,rgba(231,199,125,.07),transparent 24%),
    linear-gradient(145deg,rgba(255,255,255,.08),rgba(74,35,90,.065) 48%,rgba(11,8,13,.36));
}
.season-row,.weekbyweek-row,.history-week,.overall-leader-card,.overall-total-box,.waiting{
  background:
    linear-gradient(135deg,rgba(255,255,255,.065),rgba(74,35,90,.035)),
    rgba(8,6,10,.34);
  border-color:rgba(231,199,125,.13);
  box-shadow:inset 0 1px rgba(255,255,255,.075);
}
.season-player strong,.season-wins strong,.weekbyweek-player span,.history-week summary strong,.history-round strong,.overall-leader-title,.overall-total-box span,.name,.round-title{
  color:#f2dfab;
}
.overall-total-box strong{color:#fffaf4;text-shadow:0 0 14px rgba(231,199,125,.13)}
.mini-glitterball,.glitterball{
  border-color:#f4e3b3;
  box-shadow:
    0 0 24px rgba(231,199,125,.30),
    inset 0 0 18px rgba(255,255,255,.34);
}

/* Party + rejoin experience */
.identity-card label+input{margin-bottom:12px}
.party-help{font-size:11px;margin:8px 0 0}
.pin-input{letter-spacing:.20em}
.recovery-button{margin-top:10px}
.party-list{display:grid;gap:9px;margin-top:10px}
.saved-party{
  width:100%;
  min-height:70px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  text-align:left;
  padding:12px 14px;
  color:#fffaf4;
  border:1px solid rgba(231,199,125,.18);
  background:
    radial-gradient(circle at 16% -12%,rgba(255,255,255,.11),transparent 36%),
    linear-gradient(145deg,rgba(255,255,255,.07),rgba(74,35,90,.055)),
    rgba(8,6,10,.32);
  box-shadow:
    inset 0 1px rgba(255,255,255,.10),
    0 10px 24px rgba(0,0,0,.18);
  -webkit-backdrop-filter:blur(22px) saturate(150%);
  backdrop-filter:blur(22px) saturate(150%);
}
.saved-party-main{display:block;min-width:0}
.saved-party-main strong{
  display:block;
  overflow:hidden;
  text-overflow:ellipsis;
  color:#f2dfab;
  font:800 16px Georgia,"Times New Roman",serif;
}
.saved-party-main small{
  display:block;
  margin-top:5px;
  color:#c9bbc9;
  font-size:10px;
  letter-spacing:.04em;
}
.saved-party-open{
  flex:none;
  color:#e7c77d;
  font-weight:900;
  font-size:13px;
}
.party-scoreboard-card{display:block}
.party-scoreboard{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:10px;
}
.party-score-player{
  position:relative;
  padding:12px 8px;
  border-radius:18px;
  text-align:center;
  border:1px solid rgba(231,199,125,.15);
  background:
    radial-gradient(circle at 50% -15%,rgba(255,255,255,.10),transparent 40%),
    linear-gradient(180deg,rgba(56,38,62,.50),rgba(14,10,17,.78));
  box-shadow:
    inset 0 1px rgba(255,255,255,.10),
    0 8px 20px rgba(0,0,0,.18);
}
.party-score-player.me{
  border-color:rgba(200,166,216,.34);
}
.party-score-player.top{
  border-color:rgba(231,199,125,.42);
  box-shadow:
    inset 0 1px rgba(255,255,255,.13),
    0 8px 22px rgba(0,0,0,.20),
    0 0 18px rgba(231,199,125,.08);
}
.party-score-player.top:before{
  content:"✦";
  position:absolute;
  right:8px;
  top:6px;
  color:#e7c77d;
  font-size:10px;
  text-shadow:0 0 10px rgba(231,199,125,.55);
}
.party-score-player .total{
  width:58px;
  height:58px;
  font-size:33px;
  border-radius:50%;
}
.party-scoreboard-card .leader{margin-top:12px}
#startNextWeek{margin:2px 0 10px}
.rejoin-card{margin-top:12px}
.rejoin-input{
  text-transform:uppercase;
  letter-spacing:.18em;
  font-weight:900;
  text-align:center;
  font-size:18px;
}
.rejoin-card .secondary{margin-top:10px}

@media(max-width:560px){
  .party-scoreboard{grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}
  .party-score-player{padding:10px 5px;border-radius:15px}
  .party-score-player .name{font-size:12px}
  .party-score-player .total{width:52px;height:52px;font-size:30px}
}

/* Competition dashboard + submission clarity */
.competition-dashboard{
  padding:18px;
  border-color:rgba(231,199,125,.28);
  background:
    radial-gradient(circle at 85% -10%,rgba(231,199,125,.09),transparent 30%),
    radial-gradient(circle at 14% 0%,rgba(255,255,255,.10),transparent 28%),
    linear-gradient(145deg,rgba(255,255,255,.075),rgba(74,35,90,.055)),
    rgba(8,6,10,.54);
}
.dashboard-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:14px;
  margin-bottom:14px;
}
.dashboard-head h2{
  margin:3px 0 0;
  font-size:24px;
  color:#f2dfab;
}
.dashboard-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:9px;
}
.dashboard-stat{
  min-height:72px;
  padding:11px 12px;
  border-radius:16px;
  border:1px solid rgba(231,199,125,.15);
  background:
    radial-gradient(circle at 30% -5%,rgba(255,255,255,.10),transparent 34%),
    rgba(255,255,255,.035);
  box-shadow:inset 0 1px rgba(255,255,255,.08);
}
.dashboard-stat span,
.dashboard-rejoin span{
  display:block;
  color:#bfaebe;
  font-size:9px;
  font-weight:800;
  letter-spacing:.11em;
  text-transform:uppercase;
}
.dashboard-stat strong{
  display:block;
  margin-top:6px;
  color:#fffaf4;
  font-size:18px;
}
.dashboard-code{
  letter-spacing:.14em;
  font-size:27px!important;
  color:#f2dfab!important;
}
.dashboard-progress-track{
  height:7px;
  margin-top:12px;
  overflow:hidden;
  border-radius:999px;
  background:rgba(255,255,255,.07);
  box-shadow:inset 0 1px 3px rgba(0,0,0,.35);
}
.dashboard-progress-track span{
  display:block;
  width:0;
  height:100%;
  border-radius:inherit;
  background:linear-gradient(90deg,#9f6ab3,#e7c77d);
  box-shadow:0 0 12px rgba(231,199,125,.25);
  transition:width .28s ease;
}
.dashboard-status{
  margin-top:9px;
  color:#d6cbd5;
  font-size:12px;
  font-weight:700;
  text-align:center;
}
.dashboard-rejoin{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  margin-top:12px;
  padding:10px 12px;
  border-radius:14px;
  border:1px solid rgba(231,199,125,.20);
  background:rgba(231,199,125,.055);
}
.dashboard-rejoin strong{
  color:#f2dfab;
  letter-spacing:.13em;
  font-size:14px;
}
.player-submit-status{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:24px;
  margin-top:8px;
  padding:4px 8px;
  border-radius:999px;
  font-size:9px;
  font-weight:900;
  letter-spacing:.04em;
  border:1px solid rgba(255,255,255,.10);
}
.player-submit-status.complete{
  color:#fff4c8;
  border-color:rgba(231,199,125,.40);
  background:rgba(231,199,125,.12);
  box-shadow:0 0 13px rgba(231,199,125,.08);
}
.player-submit-status.partial{
  color:#f2d8ff;
  border-color:rgba(200,166,216,.30);
  background:rgba(104,63,116,.18);
}
.player-submit-status.waiting{
  color:#c9bbc9;
  background:rgba(255,255,255,.045);
}

.result-confirm-help{
  margin:10px 0 8px;
  color:#c9bbc9;
  font-size:11px;
  line-height:1.45;
  text-align:center;
}
.next-dance-button{
  margin-top:8px;
  width:100%;
}
.result-waiting{
  margin-top:10px;
  text-align:center;
}

@media(max-width:560px){
  .competition-dashboard{padding:15px}
  .dashboard-head h2{font-size:21px}
  .dashboard-stat{min-height:67px;padding:10px}
  .dashboard-stat strong{font-size:16px}
  .dashboard-code{font-size:24px!important}
  .dashboard-rejoin{align-items:flex-start;flex-direction:column;gap:4px}
}

/* Round-complete game-show reveal */
body.celebrating{overflow:hidden}
.round-celebration{
  position:fixed;
  inset:0;
  z-index:9999;
  display:grid;
  place-items:center;
  padding:18px;
  opacity:0;
  pointer-events:none;
  transition:opacity .22s ease;
}
.round-celebration.show{
  opacity:1;
  pointer-events:auto;
}
.round-celebration.hidden{display:none}
.celebration-backdrop{
  position:absolute;
  inset:0;
  background:
    radial-gradient(circle at 50% 15%,rgba(231,199,125,.16),transparent 28%),
    radial-gradient(circle at 12% 38%,rgba(130,72,151,.28),transparent 30%),
    radial-gradient(circle at 88% 65%,rgba(232,63,174,.16),transparent 27%),
    rgba(5,3,7,.94);
  -webkit-backdrop-filter:blur(18px) saturate(150%);
  backdrop-filter:blur(18px) saturate(150%);
}
.celebration-content{
  position:relative;
  z-index:3;
  width:min(430px,100%);
  max-height:92vh;
  overflow:auto;
  padding:155px 18px 20px;
  border-radius:28px;
  text-align:center;
  border:1px solid rgba(231,199,125,.28);
  background:
    radial-gradient(circle at 50% -8%,rgba(255,255,255,.14),transparent 30%),
    linear-gradient(180deg,rgba(34,22,40,.94),rgba(11,8,14,.97));
  box-shadow:
    inset 0 1px rgba(255,255,255,.13),
    0 30px 80px rgba(0,0,0,.55),
    0 0 60px rgba(126,73,145,.14);
  transform:translateY(16px) scale(.97);
  transition:transform .34s cubic-bezier(.2,.8,.2,1);
}
.round-celebration.show .celebration-content{
  transform:translateY(0) scale(1);
}
.celebration-kicker{
  color:#e7c77d;
  font-size:10px;
  font-weight:900;
  letter-spacing:.24em;
}
.celebration-content h2{
  margin:7px 0 7px;
  color:#fffaf4;
  font:800 30px Georgia,"Times New Roman",serif;
}
.celebration-content>p{
  margin:0 0 16px;
  color:#c9bbc9;
  font-size:12px;
}
.celebration-section{
  margin-top:12px;
  padding:12px;
  border-radius:18px;
  border:1px solid rgba(231,199,125,.14);
  background:rgba(255,255,255,.035);
}
.overall-section{
  background:
    linear-gradient(145deg,rgba(231,199,125,.055),rgba(255,255,255,.025));
}
.celebration-label{
  margin-bottom:8px;
  color:#bca9bd;
  font-size:9px;
  font-weight:900;
  letter-spacing:.16em;
}
.celebration-leaderboard{
  display:grid;
  gap:7px;
}
.celebration-row{
  display:grid;
  grid-template-columns:34px minmax(0,1fr) auto;
  align-items:center;
  gap:10px;
  min-height:58px;
  padding:8px 10px;
  border-radius:15px;
  text-align:left;
  border:1px solid rgba(255,255,255,.08);
  background:rgba(255,255,255,.035);
  animation:leaderboardRise .48s both;
}
.celebration-row:nth-child(2){animation-delay:.07s}
.celebration-row:nth-child(3){animation-delay:.14s}
.celebration-row:nth-child(4){animation-delay:.21s}
.celebration-row.leader-row{
  border-color:rgba(231,199,125,.38);
  background:
    radial-gradient(circle at 10% 0%,rgba(231,199,125,.12),transparent 44%),
    rgba(231,199,125,.06);
  box-shadow:0 0 22px rgba(231,199,125,.07);
}
.celebration-position{
  display:grid;
  place-items:center;
  width:30px;
  height:30px;
  border-radius:50%;
  color:#e7c77d;
  font-weight:900;
  background:rgba(231,199,125,.08);
  border:1px solid rgba(231,199,125,.22);
}
.celebration-player strong{
  display:block;
  overflow:hidden;
  text-overflow:ellipsis;
  color:#fffaf4;
  font-size:14px;
}
.celebration-player span{
  display:block;
  margin-top:2px;
  color:#aa9aaa;
  font-size:9px;
}
.celebration-score{
  min-width:48px;
  color:#f2dfab;
  font:900 29px Georgia,"Times New Roman",serif;
  text-align:right;
  text-shadow:0 0 14px rgba(231,199,125,.16);
}
.celebration-continue{
  margin-top:15px;
  width:100%;
  min-height:48px;
}
.celebration-continue:disabled{
  opacity:.72;
  cursor:default;
  filter:saturate(.7);
}

/* CSS disco ball */
.disco-rig{
  position:absolute;
  top:0;
  left:50%;
  width:220px;
  height:148px;
  transform:translateX(-50%);
  pointer-events:none;
}
.disco-wire{
  position:absolute;
  top:-2px;
  left:50%;
  width:2px;
  height:38px;
  background:linear-gradient(rgba(255,255,255,.55),rgba(231,199,125,.45));
  transform:translateX(-50%);
}
.disco-ball{
  position:absolute;
  top:30px;
  left:50%;
  width:94px;
  height:94px;
  border-radius:50%;
  overflow:hidden;
  transform:translateX(-50%);
  border:1px solid rgba(255,255,255,.65);
  background:
    repeating-linear-gradient(0deg,transparent 0 11px,rgba(15,10,18,.36) 11px 13px),
    repeating-linear-gradient(90deg,transparent 0 11px,rgba(15,10,18,.34) 11px 13px),
    radial-gradient(circle at 31% 24%,#fff 0 3%,#f1dfad 4% 12%,#8b6992 38%,#241728 72%);
  box-shadow:
    0 0 22px rgba(255,255,255,.40),
    0 0 48px rgba(231,199,125,.30),
    0 0 80px rgba(148,82,165,.22);
  animation:discoFloat 2.8s ease-in-out infinite,discoGlow 1.6s ease-in-out infinite alternate;
}
.disco-ball:after{
  content:"";
  position:absolute;
  inset:-30%;
  background:linear-gradient(115deg,transparent 35%,rgba(255,255,255,.52) 48%,transparent 60%);
  animation:discoSweep 2.1s linear infinite;
}
.disco-ball span{
  position:absolute;
  width:5px;
  height:5px;
  border-radius:50%;
  background:#fff;
  box-shadow:0 0 12px #fff,0 0 24px rgba(231,199,125,.8);
  animation:twinkle .9s ease-in-out infinite alternate;
}
.disco-ball span:nth-child(1){left:22%;top:18%}
.disco-ball span:nth-child(2){left:66%;top:26%;animation-delay:.2s}
.disco-ball span:nth-child(3){left:45%;top:48%;animation-delay:.35s}
.disco-ball span:nth-child(4){left:18%;top:62%;animation-delay:.48s}
.disco-ball span:nth-child(5){left:72%;top:67%;animation-delay:.62s}
.disco-ball span:nth-child(6){left:50%;top:80%;animation-delay:.75s}
.disco-beam{
  position:absolute;
  top:90px;
  left:50%;
  width:22px;
  height:115px;
  transform-origin:50% 0;
  background:linear-gradient(rgba(231,199,125,.20),transparent);
  filter:blur(4px);
  opacity:.7;
}
.beam-one{transform:translateX(-50%) rotate(-35deg)}
.beam-two{transform:translateX(-50%) rotate(0deg);opacity:.45}
.beam-three{transform:translateX(-50%) rotate(35deg)}
.celebration-sparkles{
  position:absolute;
  inset:0;
  z-index:2;
  pointer-events:none;
  overflow:hidden;
}
.celebration-sparkles i{
  position:absolute;
  width:5px;
  height:5px;
  border-radius:50%;
  background:#fff;
  box-shadow:0 0 12px rgba(255,255,255,.85),0 0 22px rgba(231,199,125,.55);
  animation:sparkleDrift 2.4s ease-in-out infinite;
}
.celebration-sparkles i:nth-child(1){left:8%;top:18%;animation-delay:.1s}
.celebration-sparkles i:nth-child(2){left:18%;top:67%;animation-delay:.8s}
.celebration-sparkles i:nth-child(3){left:30%;top:33%;animation-delay:1.2s}
.celebration-sparkles i:nth-child(4){left:41%;top:78%;animation-delay:.35s}
.celebration-sparkles i:nth-child(5){left:53%;top:21%;animation-delay:1.55s}
.celebration-sparkles i:nth-child(6){left:64%;top:71%;animation-delay:.55s}
.celebration-sparkles i:nth-child(7){left:76%;top:29%;animation-delay:1.05s}
.celebration-sparkles i:nth-child(8){left:88%;top:59%;animation-delay:1.7s}
.celebration-sparkles i:nth-child(9){left:94%;top:14%;animation-delay:.25s}
.celebration-sparkles i:nth-child(10){left:6%;top:85%;animation-delay:1.35s}

.party-score-player,
.scoring-card,
.dashboard-stat{
  transition:transform .22s ease,border-color .22s ease,box-shadow .22s ease;
}
.party-score-player.top{
  animation:leaderGlow 1.8s ease-in-out infinite alternate;
}

@keyframes discoFloat{
  0%,100%{transform:translateX(-50%) translateY(0) rotate(-2deg)}
  50%{transform:translateX(-50%) translateY(5px) rotate(2deg)}
}
@keyframes discoGlow{
  from{filter:brightness(.95)}
  to{filter:brightness(1.18)}
}
@keyframes discoSweep{
  from{transform:translateX(-60%) rotate(0deg)}
  to{transform:translateX(60%) rotate(0deg)}
}
@keyframes twinkle{
  from{opacity:.25;transform:scale(.6)}
  to{opacity:1;transform:scale(1.35)}
}
@keyframes sparkleDrift{
  0%,100%{opacity:.15;transform:translateY(10px) scale(.7)}
  50%{opacity:1;transform:translateY(-10px) scale(1.35)}
}
@keyframes leaderboardRise{
  from{opacity:0;transform:translateY(10px) scale(.98)}
  to{opacity:1;transform:none}
}
@keyframes leaderGlow{
  from{box-shadow:inset 0 1px rgba(255,255,255,.13),0 8px 22px rgba(0,0,0,.20),0 0 12px rgba(231,199,125,.04)}
  to{box-shadow:inset 0 1px rgba(255,255,255,.13),0 8px 22px rgba(0,0,0,.20),0 0 24px rgba(231,199,125,.16)}
}

@media(max-width:560px){
  .round-celebration{padding:10px}
  .celebration-content{
    max-height:94vh;
    padding:145px 13px 15px;
    border-radius:24px;
  }
  .celebration-content h2{font-size:27px}
  .disco-rig{transform:translateX(-50%) scale(.92)}
}

.photo-credits{
  margin:14px 4px 0;
  color:#8f8190;
  font-size:9px;
  text-align:center;
}
.photo-credits summary{
  cursor:pointer;
  color:#a996aa;
}
.photo-credits p{
  margin:6px 0 0;
  line-height:1.45;
}

/* v39 — final-show polish: gold mirrored balls, glitter flares + brighter stage strobes */
body{
  background:
    radial-gradient(940px 650px at 16% -5%,rgba(136,72,173,.31),transparent 58%),
    radial-gradient(800px 580px at 98% 14%,rgba(87,51,156,.24),transparent 58%),
    radial-gradient(680px 520px at 50% 84%,rgba(218,79,170,.10),transparent 64%),
    linear-gradient(180deg,#060309 0%,#100716 36%,#1a0b23 68%,#060309 100%)!important;
}

/* Brighter, warmer show beams — deliberately slow so it feels like stage lighting, not harsh flicker. */
body:before{
  opacity:.96!important;
  background:
    conic-gradient(from 207deg at 7% -5%,
      transparent 0 10deg,
      rgba(255,226,154,.03) 11deg 14deg,
      rgba(255,226,154,.20) 15deg 24deg,
      transparent 25deg 39deg,
      rgba(255,255,255,.12) 40deg 46deg,
      transparent 47deg 360deg),
    conic-gradient(from 149deg at 93% -5%,
      transparent 0 12deg,
      rgba(255,209,118,.18) 13deg 22deg,
      transparent 23deg 36deg,
      rgba(255,255,255,.11) 37deg 43deg,
      transparent 44deg 360deg)!important;
  filter:blur(9px)!important;
  animation:stageLightSweepGold 6.8s ease-in-out infinite alternate!important;
}

body:after{
  opacity:.70!important;
  background:
    radial-gradient(ellipse at 50% -8%,rgba(255,246,215,.23),transparent 28%),
    conic-gradient(from 178deg at 50% -8%,
      transparent 0 18deg,
      rgba(255,255,255,.085) 19deg 25deg,
      transparent 26deg 46deg,
      rgba(255,217,132,.10) 47deg 55deg,
      transparent 56deg 360deg)!important;
  filter:blur(12px)!important;
  animation:centreFlashGold 7.5s ease-in-out infinite alternate!important;
}

/* Gold/champagne mirrored disco balls */
.glam-sparkle-field::before,
.glam-sparkle-field::after{
  background:
    repeating-linear-gradient(0deg,transparent 0 8px,rgba(70,43,9,.26) 8px 9px),
    repeating-linear-gradient(90deg,transparent 0 8px,rgba(70,43,9,.22) 8px 9px),
    radial-gradient(circle at 29% 21%,
      rgba(255,255,255,1) 0 4%,
      rgba(255,250,226,.99) 5% 12%,
      rgba(255,231,164,.98) 13% 28%,
      rgba(238,192,98,.94) 29% 47%,
      rgba(188,128,44,.86) 48% 65%,
      rgba(99,59,20,.58) 66% 82%,
      rgba(24,14,8,.28) 83% 100%)!important;
  box-shadow:
    0 0 14px rgba(255,255,255,.36),
    0 0 38px rgba(255,225,152,.42),
    0 0 82px rgba(244,186,72,.30),
    0 0 130px rgba(235,169,48,.14),
    inset 0 0 20px rgba(255,255,255,.34)!important;
  filter:saturate(1.16) brightness(1.14)!important;
}

.glam-sparkle-field::before{
  width:174px!important;
  height:174px!important;
  right:-22px!important;
  top:92px!important;
  opacity:.82!important;
  animation:discoBallGoldRight 6.2s ease-in-out infinite alternate!important;
}

.glam-sparkle-field::after{
  width:118px!important;
  height:118px!important;
  left:-17px!important;
  top:60%!important;
  opacity:.58!important;
  animation:discoBallGoldLeft 7.8s ease-in-out infinite alternate!important;
}

/* Two deliberate glitter flares rather than a wallpaper of white dots. */
.shell:before,
.shell:after{
  width:94px!important;
  height:94px!important;
  border-radius:50%!important;
  opacity:.70!important;
  filter:none!important;
  border:0!important;
  box-shadow:none!important;
  background:
    linear-gradient(90deg,transparent 46%,rgba(255,236,179,.94) 49%,rgba(255,255,255,.98) 50%,rgba(255,236,179,.94) 51%,transparent 54%),
    linear-gradient(0deg,transparent 46%,rgba(255,222,135,.78) 49%,rgba(255,255,255,.96) 50%,rgba(255,222,135,.78) 51%,transparent 54%),
    radial-gradient(circle,rgba(255,247,209,.98) 0 3%,rgba(243,198,97,.56) 4% 10%,transparent 28%)!important;
  animation:goldGlitterFlare 3.8s ease-in-out infinite alternate!important;
}

.shell:before{
  left:-32px!important;
  top:235px!important;
}
.shell:after{
  right:-37px!important;
  top:720px!important;
  animation-delay:-1.7s!important;
}

/* Warm reflective haze around the glass panels. */
#lobbyView,
#gameView{
  background-image:
    radial-gradient(circle at 6% 17%,rgba(176,101,202,.075),transparent 27%),
    radial-gradient(circle at 94% 42%,rgba(255,210,116,.075),transparent 24%),
    radial-gradient(circle at 46% 72%,rgba(241,184,83,.035),transparent 22%)!important;
}

@keyframes stageLightSweepGold{
  0%{transform:rotate(-4deg) scale(1.03);opacity:.72}
  48%{opacity:.97}
  100%{transform:rotate(5deg) scale(1.09);opacity:.84}
}
@keyframes centreFlashGold{
  0%{transform:translateX(-2%) rotate(-1deg);opacity:.46}
  52%{opacity:.72}
  100%{transform:translateX(2%) rotate(2deg);opacity:.58}
}
@keyframes discoBallGoldRight{
  0%{transform:translate3d(0,0,0) rotate(-5deg) scale(1);background-position:0 0,0 0,0 0}
  100%{transform:translate3d(-11px,17px,0) rotate(7deg) scale(1.035);background-position:20px 0,20px 0,0 0}
}
@keyframes discoBallGoldLeft{
  0%{transform:translate3d(0,0,0) rotate(4deg) scale(1);background-position:0 0,0 0,0 0}
  100%{transform:translate3d(11px,-15px,0) rotate(-7deg) scale(1.03);background-position:-16px 0,-16px 0,0 0}
}
@keyframes goldGlitterFlare{
  0%{transform:scale(.68) rotate(-8deg);opacity:.24}
  45%{opacity:.78}
  100%{transform:scale(1.08) rotate(8deg);opacity:.54}
}


@media(prefers-reduced-motion:reduce){
  .disco-ball,
  .disco-ball:after,
  .celebration-sparkles i,
  .party-score-player.top,
  .celebration-row{
    animation:none!important;
  }
  .round-celebration,
  .celebration-content{transition:none!important}
}

/* Ballroom Luxe v31 — elegant, glammy, glitzy */
:root{
  --bg:#07050a;
  --bg2:#160d1c;
  --card:rgba(22,16,28,.62);
  --gold:#e9ca82;
  --gold2:#fff0bd;
  --text:#fffaf6;
  --muted:#cdbfce;
  --border:rgba(233,202,130,.22);
  --panel:rgba(255,255,255,.075);
  --purple:#5a2b68;
  --magenta:#f05ab7;
}

html{
  background:#07050a;
}

body{
  background:
    radial-gradient(900px 520px at 50% -8%,rgba(117,58,135,.30),transparent 58%),
    radial-gradient(520px 420px at -8% 28%,rgba(240,90,183,.10),transparent 64%),
    radial-gradient(600px 480px at 108% 58%,rgba(233,202,130,.10),transparent 64%),
    linear-gradient(180deg,#07050a 0%,#100914 44%,#170d1c 72%,#08060a 100%);
  background-attachment:fixed;
}

body:before{
  opacity:.82!important;
  background-image:
    radial-gradient(circle,rgba(255,255,255,.82) 0 1px,transparent 1.5px),
    radial-gradient(circle,rgba(233,202,130,.60) 0 1px,transparent 1.4px),
    radial-gradient(circle,rgba(240,90,183,.34) 0 .8px,transparent 1.2px)!important;
  background-size:61px 61px,89px 89px,137px 137px!important;
  background-position:0 0,23px 41px,71px 12px!important;
  animation:luxeStarDrift 18s linear infinite;
}

body:after{
  content:"";
  position:fixed;
  inset:-20%;
  pointer-events:none;
  z-index:-1;
  background:
    conic-gradient(from 205deg at 50% 8%,
      transparent 0 15deg,
      rgba(255,244,214,.028) 16deg 21deg,
      transparent 22deg 41deg,
      rgba(233,202,130,.035) 42deg 47deg,
      transparent 48deg 360deg);
  filter:blur(10px);
  animation:luxeSpotlight 12s ease-in-out infinite alternate;
}

.glam-sparkle-field{
  opacity:.62;
  filter:saturate(.82) brightness(1.12);
}

.shell{
  position:relative;
}

.hero-poster{
  border:1px solid rgba(244,223,171,.22);
  box-shadow:
    0 28px 70px rgba(0,0,0,.48),
    0 0 42px rgba(99,48,113,.16),
    inset 0 1px rgba(255,255,255,.18);
}

.hero-poster:after{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  background:
    linear-gradient(115deg,transparent 12%,rgba(255,255,255,.035) 30%,transparent 47%),
    linear-gradient(180deg,transparent 48%,rgba(7,5,10,.28) 100%);
  mix-blend-mode:screen;
}

.hero-poster-shine{
  opacity:.60;
  background:
    linear-gradient(115deg,transparent 28%,rgba(255,255,255,.18) 45%,rgba(244,223,171,.10) 50%,transparent 65%);
  transform:translateX(-120%);
  animation:heroLuxeSweep 7.5s ease-in-out infinite;
}

.card,
.competition-dashboard,
.scoring-card,
.season-card{
  position:relative;
  overflow:hidden;
  border-color:rgba(233,202,130,.23)!important;
  background:
    radial-gradient(circle at 18% -8%,rgba(255,255,255,.105),transparent 35%),
    linear-gradient(145deg,rgba(255,255,255,.073),rgba(86,42,99,.055)),
    rgba(12,9,15,.58)!important;
  box-shadow:
    inset 0 1px rgba(255,255,255,.12),
    inset 0 0 0 1px rgba(255,255,255,.018),
    0 18px 42px rgba(0,0,0,.28),
    0 0 30px rgba(112,58,127,.06)!important;
  -webkit-backdrop-filter:blur(26px) saturate(155%);
  backdrop-filter:blur(26px) saturate(155%);
}

.card:before,
.competition-dashboard:before,
.scoring-card:before,
.season-card:before{
  content:"";
  position:absolute;
  pointer-events:none;
  inset:0;
  border-radius:inherit;
  background:
    linear-gradient(120deg,transparent 0 28%,rgba(255,255,255,.045) 39%,transparent 49%),
    radial-gradient(circle at 88% 6%,rgba(244,223,171,.07),transparent 26%);
  transform:translateX(-22%);
  opacity:.75;
}

.card h2,
.competition-dashboard h2,
.season-card h2,
.finale h2,
.celebration-content h2{
  text-shadow:
    0 1px 0 rgba(255,255,255,.05),
    0 0 22px rgba(233,202,130,.10);
}

.small{
  color:#dec891!important;
  letter-spacing:.15em!important;
  text-shadow:0 0 16px rgba(233,202,130,.11);
}

input,
select{
  border-color:rgba(233,202,130,.18)!important;
  background:
    linear-gradient(180deg,rgba(255,255,255,.058),rgba(255,255,255,.028)),
    rgba(8,6,10,.50)!important;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.08),
    0 8px 18px rgba(0,0,0,.14);
}

input:focus,
select:focus{
  border-color:rgba(244,223,171,.58)!important;
  box-shadow:
    0 0 0 3px rgba(233,202,130,.08),
    0 0 22px rgba(240,90,183,.07)!important;
}

button{
  position:relative;
  overflow:hidden;
  isolation:isolate;
}

button:not(:disabled):active{
  transform:translateY(1px) scale(.992);
}

.gold,
.final-button{
  color:#1a101d!important;
  border-color:rgba(255,244,214,.62)!important;
  background:
    linear-gradient(135deg,#b99448 0%,#f5dfa6 25%,#d9b765 52%,#fff0bd 73%,#ba944b 100%)!important;
  background-size:180% 180%!important;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.72),
    inset 0 -1px rgba(82,50,8,.28),
    0 10px 28px rgba(185,148,72,.21),
    0 0 22px rgba(233,202,130,.13)!important;
  animation:luxeGoldBreath 4.8s ease-in-out infinite;
}

.gold:before,
.final-button:before{
  content:"";
  position:absolute;
  z-index:-1;
  top:-60%;
  bottom:-60%;
  left:-45%;
  width:30%;
  background:linear-gradient(90deg,transparent,rgba(255,255,255,.55),transparent);
  transform:rotate(18deg);
  animation:luxeButtonShine 5.2s ease-in-out infinite;
}

.secondary{
  border-color:rgba(233,202,130,.20)!important;
  background:
    linear-gradient(145deg,rgba(255,255,255,.075),rgba(72,35,84,.06)),
    rgba(14,10,17,.56)!important;
  box-shadow:
    inset 0 1px rgba(255,255,255,.09),
    0 8px 20px rgba(0,0,0,.17)!important;
}

.results-tabs{
  border-color:rgba(233,202,130,.16)!important;
  background:rgba(8,6,10,.72)!important;
  box-shadow:
    0 16px 34px rgba(0,0,0,.32),
    inset 0 1px rgba(255,255,255,.08)!important;
  -webkit-backdrop-filter:blur(24px) saturate(150%);
  backdrop-filter:blur(24px) saturate(150%);
}

.results-tab.active{
  color:#fff4cc!important;
  background:
    radial-gradient(circle at 50% -20%,rgba(255,255,255,.10),transparent 46%),
    linear-gradient(145deg,rgba(109,59,126,.50),rgba(39,21,47,.82))!important;
  box-shadow:
    inset 0 1px rgba(255,255,255,.12),
    0 0 20px rgba(233,202,130,.08)!important;
}

.mini-glitterball,
.glitterball,
.splash-ball{
  position:relative;
  color:#fff4c8!important;
  background:
    repeating-linear-gradient(0deg,transparent 0 5px,rgba(20,11,24,.20) 5px 6px),
    repeating-linear-gradient(90deg,transparent 0 5px,rgba(20,11,24,.18) 5px 6px),
    radial-gradient(circle at 32% 24%,#fff 0 5%,#f4e3b3 11%,#8e6f97 48%,#2b192f 76%)!important;
  box-shadow:
    0 0 18px rgba(255,255,255,.30),
    0 0 34px rgba(233,202,130,.22),
    inset 0 0 14px rgba(255,255,255,.24)!important;
  animation:luxeDiscoPulse 2.8s ease-in-out infinite alternate;
}

.competition-dashboard{
  border-color:rgba(244,223,171,.34)!important;
  box-shadow:
    inset 0 1px rgba(255,255,255,.14),
    0 20px 48px rgba(0,0,0,.30),
    0 0 34px rgba(233,202,130,.07)!important;
}

.dashboard-stat{
  border-color:rgba(233,202,130,.18)!important;
  background:
    radial-gradient(circle at 24% -10%,rgba(255,255,255,.11),transparent 38%),
    linear-gradient(155deg,rgba(255,255,255,.05),rgba(64,31,74,.08)),
    rgba(8,6,10,.36)!important;
}

.dashboard-code{
  text-shadow:
    0 0 12px rgba(255,255,255,.08),
    0 0 24px rgba(233,202,130,.18);
}

.dashboard-progress-track span{
  background:
    linear-gradient(90deg,#6f397c 0%,#df6db3 34%,#f0d08a 74%,#fff0bd 100%)!important;
  background-size:180% 100%!important;
  animation:luxeProgressShimmer 3s linear infinite;
}

.party-score-player{
  border-color:rgba(233,202,130,.18)!important;
  background:
    radial-gradient(circle at 50% -12%,rgba(255,255,255,.12),transparent 42%),
    linear-gradient(180deg,rgba(72,41,81,.46),rgba(13,9,16,.84))!important;
}

.party-score-player.me{
  border-color:rgba(226,176,235,.42)!important;
  box-shadow:
    inset 0 1px rgba(255,255,255,.11),
    0 10px 22px rgba(0,0,0,.20),
    0 0 24px rgba(216,112,210,.07)!important;
}

.party-score-player.top{
  border-color:rgba(244,223,171,.54)!important;
}

.party-score-player .total{
  color:#fff8dc!important;
  border:1px solid rgba(244,223,171,.25);
  background:
    radial-gradient(circle at 35% 25%,rgba(255,255,255,.14),transparent 36%),
    linear-gradient(145deg,rgba(96,51,108,.68),rgba(27,15,32,.92))!important;
  box-shadow:
    inset 0 1px rgba(255,255,255,.10),
    0 0 22px rgba(233,202,130,.08)!important;
}

.scoring-card{
  border-color:rgba(233,202,130,.20)!important;
}

.scoring-judge-card,
.submitted-judge-card{
  border-color:rgba(233,202,130,.15)!important;
  background:
    radial-gradient(circle at 50% 0%,rgba(255,255,255,.10),transparent 38%),
    linear-gradient(180deg,rgba(47,29,53,.80),rgba(12,8,15,.91))!important;
  box-shadow:
    inset 0 1px rgba(255,255,255,.08),
    0 8px 18px rgba(0,0,0,.20)!important;
}

.scoring-judge-card.active{
  transform:translateY(-2px);
  border-color:rgba(244,223,171,.58)!important;
  background:
    radial-gradient(circle at 50% -5%,rgba(244,223,171,.13),transparent 40%),
    linear-gradient(180deg,rgba(93,49,104,.86),rgba(27,15,33,.96))!important;
  box-shadow:
    inset 0 1px rgba(255,255,255,.12),
    0 10px 24px rgba(0,0,0,.24),
    0 0 22px rgba(233,202,130,.13)!important;
}

.judge-avatar{
  border-color:rgba(244,223,171,.42)!important;
  box-shadow:
    0 0 0 2px rgba(65,31,75,.72),
    0 0 16px rgba(233,202,130,.14)!important;
}

.score-number-grid button{
  border-color:rgba(233,202,130,.14)!important;
  background:
    linear-gradient(180deg,rgba(255,255,255,.065),rgba(255,255,255,.025)),
    rgba(12,8,15,.65)!important;
}

.score-number-grid button.selected{
  color:#fff8e2!important;
  border-color:rgba(244,223,171,.56)!important;
  background:
    radial-gradient(circle at 50% 10%,rgba(255,255,255,.18),transparent 43%),
    linear-gradient(145deg,#bb4b9b,#7a3a8e)!important;
  box-shadow:
    0 0 0 2px rgba(233,202,130,.13),
    0 0 22px rgba(240,90,183,.22)!important;
}

.correct{
  border-color:rgba(233,202,130,.26)!important;
  background:rgba(233,202,130,.075)!important;
}

.player-submit-status.complete{
  color:#fff3c6!important;
  background:
    linear-gradient(145deg,rgba(233,202,130,.15),rgba(255,255,255,.035))!important;
}

.season-row,
.weekbyweek-row,
.history-week,
.overall-leader-card,
.overall-total-box,
.saved-party,
.waiting{
  border-color:rgba(233,202,130,.16)!important;
  background:
    radial-gradient(circle at 10% -20%,rgba(255,255,255,.08),transparent 42%),
    linear-gradient(145deg,rgba(255,255,255,.052),rgba(80,39,91,.035)),
    rgba(9,7,11,.43)!important;
}

.season-row:first-of-type,
.overall-total-box:first-child{
  border-color:rgba(244,223,171,.34)!important;
  box-shadow:
    inset 0 1px rgba(255,255,255,.09),
    0 0 22px rgba(233,202,130,.055)!important;
}

.round-celebration .celebration-backdrop{
  background:
    radial-gradient(circle at 50% 13%,rgba(255,239,190,.18),transparent 25%),
    radial-gradient(circle at 15% 45%,rgba(115,57,132,.32),transparent 32%),
    radial-gradient(circle at 88% 68%,rgba(240,90,183,.17),transparent 29%),
    linear-gradient(180deg,rgba(6,4,8,.93),rgba(12,6,15,.97))!important;
}

.celebration-content{
  border-color:rgba(244,223,171,.36)!important;
  background:
    radial-gradient(circle at 50% -6%,rgba(255,255,255,.15),transparent 31%),
    radial-gradient(circle at 100% 20%,rgba(233,202,130,.055),transparent 32%),
    linear-gradient(180deg,rgba(37,23,43,.95),rgba(9,6,12,.985))!important;
  box-shadow:
    inset 0 1px rgba(255,255,255,.16),
    0 34px 92px rgba(0,0,0,.62),
    0 0 70px rgba(130,66,148,.18),
    0 0 34px rgba(233,202,130,.08)!important;
}

.celebration-row.leader-row{
  border-color:rgba(244,223,171,.52)!important;
  background:
    radial-gradient(circle at 10% 0%,rgba(255,243,199,.15),transparent 46%),
    linear-gradient(145deg,rgba(233,202,130,.085),rgba(90,44,103,.055))!important;
  box-shadow:
    inset 0 1px rgba(255,255,255,.10),
    0 0 28px rgba(233,202,130,.10)!important;
}

.disco-ball{
  box-shadow:
    0 0 24px rgba(255,255,255,.50),
    0 0 54px rgba(233,202,130,.36),
    0 0 94px rgba(151,78,169,.28)!important;
}

.finale{
  border-color:rgba(244,223,171,.40)!important;
  background:
    radial-gradient(circle at 50% 0%,rgba(255,241,199,.12),transparent 35%),
    linear-gradient(165deg,rgba(82,43,92,.34),rgba(12,8,15,.93))!important;
  box-shadow:
    inset 0 1px rgba(255,255,255,.13),
    0 20px 48px rgba(0,0,0,.30),
    0 0 42px rgba(233,202,130,.09)!important;
}

.winner-name{
  color:#fff0bd!important;
  text-shadow:
    0 0 20px rgba(233,202,130,.28),
    0 0 42px rgba(240,90,183,.11)!important;
}

.live{
  color:#fff2c8!important;
  border-color:rgba(233,202,130,.34)!important;
  background:rgba(233,202,130,.075)!important;
  box-shadow:0 0 16px rgba(233,202,130,.07);
}

@keyframes luxeStarDrift{
  from{transform:translate3d(0,0,0)}
  to{transform:translate3d(24px,-36px,0)}
}
@keyframes luxeSpotlight{
  from{transform:rotate(-2deg) scale(1)}
  to{transform:rotate(3deg) scale(1.035)}
}
@keyframes heroLuxeSweep{
  0%,62%{transform:translateX(-125%)}
  78%,100%{transform:translateX(130%)}
}
@keyframes luxeButtonShine{
  0%,68%{left:-50%;opacity:0}
  74%{opacity:.85}
  89%,100%{left:125%;opacity:0}
}
@keyframes luxeGoldBreath{
  0%,100%{background-position:0% 50%}
  50%{background-position:100% 50%}
}
@keyframes luxeDiscoPulse{
  from{filter:brightness(.96);transform:scale(.98)}
  to{filter:brightness(1.10);transform:scale(1.03)}
}
@keyframes luxeProgressShimmer{
  from{background-position:0 0}
  to{background-position:180% 0}
}

@media(max-width:560px){
  .card,
  .competition-dashboard,
  .scoring-card,
  .season-card{
    box-shadow:
      inset 0 1px rgba(255,255,255,.11),
      0 14px 30px rgba(0,0,0,.24),
      0 0 20px rgba(112,58,127,.05)!important;
  }
  .gold,
  .final-button{animation-duration:5.6s}
}

/* Ballroom Motion Pack v32 */
.view-enter{
  animation:viewStageIn .48s cubic-bezier(.18,.78,.24,1) both;
}

.score-pick-pop{
  animation:scorePickPop .40s cubic-bezier(.18,.8,.25,1) both!important;
}

.judge-score-hit{
  animation:judgeScoreHit .52s ease both!important;
}

.lock-button-hit{
  animation:lockButtonHit .68s cubic-bezier(.2,.8,.2,1) both!important;
}

.locking-panel{
  position:relative;
  overflow:visible!important;
}
.locking-panel:after{
  content:"✓";
  position:absolute;
  z-index:6;
  left:50%;
  top:50%;
  display:grid;
  place-items:center;
  width:72px;
  height:72px;
  border-radius:50%;
  color:#241428;
  font-size:36px;
  font-weight:1000;
  background:
    radial-gradient(circle at 34% 25%,#fff8dd 0 12%,#efd18b 38%,#b88c3e 100%);
  box-shadow:
    0 0 0 8px rgba(233,202,130,.08),
    0 0 42px rgba(233,202,130,.34);
  pointer-events:none;
  animation:lockTickReveal .72s cubic-bezier(.17,.84,.25,1) both;
}

.correct-hit{
  animation:correctCardHit .56s cubic-bezier(.2,.8,.2,1) both!important;
}

.leaderboard-card-enter{
  animation:rankCardEnter .52s cubic-bezier(.18,.78,.24,1) both;
  animation-delay:var(--rank-delay,0ms);
}

.score-bump-card{
  animation:scoreCardBump .72s cubic-bezier(.17,.84,.25,1) both!important;
}

.score-bump-card .total{
  animation:scoreTotalPulse .72s cubic-bezier(.17,.84,.25,1) both!important;
}

/* Sequence the shared results reveal: disco first, copy second, boards third. */
.reveal-sequence .disco-rig{
  animation:revealRigDrop .58s cubic-bezier(.18,.8,.2,1) both;
}
.reveal-sequence .celebration-kicker{
  animation:revealTextUp .46s .34s both;
}
.reveal-sequence>h2{
  animation:revealTextUp .52s .43s both;
}
.reveal-sequence>p{
  animation:revealTextUp .48s .52s both;
}
.reveal-sequence .celebration-section:first-of-type{
  animation:revealPanelUp .56s .64s both;
}
.reveal-sequence .celebration-section:nth-of-type(2){
  animation:revealPanelUp .56s .76s both;
}
.reveal-sequence .celebration-continue{
  animation:revealTextUp .48s .90s both;
}

/* Make the glitterball feel alive during the reveal without becoming frantic. */
.round-celebration.show .disco-ball{
  animation:
    discoFloat 2.8s ease-in-out infinite,
    discoGlow 1.6s ease-in-out infinite alternate,
    discoTurn 8s linear infinite!important;
}
.round-celebration.show .beam-one{
  animation:beamSweepLeft 4.2s ease-in-out infinite alternate;
}
.round-celebration.show .beam-two{
  animation:beamSweepMiddle 3.8s ease-in-out infinite alternate;
}
.round-celebration.show .beam-three{
  animation:beamSweepRight 4.5s ease-in-out infinite alternate;
}

/* Final-result theatre */
.finale.winner-reveal{
  overflow:visible;
  animation:finaleStageIn .72s cubic-bezier(.18,.8,.22,1) both;
}
.finale.winner-reveal .glitterball{
  animation:finaleBallFlare 1.15s cubic-bezier(.2,.8,.2,1) both!important;
}
.finale.winner-reveal .small{
  animation:revealTextUp .46s .28s both;
}
.finale.winner-reveal #winnerTitle{
  animation:revealTextUp .52s .40s both;
}
.finale.winner-reveal #winnerName{
  animation:winnerNameReveal .82s .55s cubic-bezier(.17,.84,.25,1) both;
}
.finale.winner-reveal #winnerScore{
  animation:revealTextUp .54s .82s both;
}
.finale.winner-reveal #winnerCopy{
  animation:revealTextUp .48s 1.02s both;
}

.winner-score{
  display:flex;
  flex-wrap:wrap;
  justify-content:center;
  align-items:baseline;
  gap:6px;
}
.winner-score-item{
  white-space:nowrap;
}
.winner-score-item strong{
  display:inline-block;
  color:#fff0bd;
  min-width:.7em;
  text-shadow:0 0 16px rgba(233,202,130,.30);
}
.winner-score-dot{
  color:#aa8fb0;
}

/* Small one-shot sparkle burst used for correct ticks, locks and the winner. */
.glam-burst{
  position:absolute;
  z-index:20;
  left:50%;
  top:50%;
  width:1px;
  height:1px;
  pointer-events:none;
  overflow:visible;
}
.glam-burst i{
  position:absolute;
  left:0;
  top:0;
  width:6px;
  height:6px;
  border-radius:50%;
  background:#fff7dc;
  box-shadow:
    0 0 8px rgba(255,255,255,.9),
    0 0 18px rgba(233,202,130,.72);
  opacity:0;
  animation:burstStar .92s var(--delay,0ms) cubic-bezier(.16,.74,.26,1) forwards;
}
.glam-burst i:nth-child(3n){
  width:4px;
  height:4px;
  background:#ef9dd1;
  box-shadow:0 0 12px rgba(240,90,183,.68);
}
.glam-burst i:nth-child(4n){
  border-radius:1px;
  transform:rotate(45deg);
}

@keyframes viewStageIn{
  from{opacity:0;transform:translateY(14px) scale(.992);filter:blur(3px)}
  to{opacity:1;transform:none;filter:none}
}
@keyframes scorePickPop{
  0%{transform:scale(1)}
  42%{transform:scale(1.16);box-shadow:0 0 0 4px rgba(233,202,130,.11),0 0 30px rgba(240,90,183,.28)}
  100%{transform:scale(1)}
}
@keyframes judgeScoreHit{
  0%,100%{transform:translateY(-2px)}
  42%{transform:translateY(-5px) scale(1.025);box-shadow:inset 0 1px rgba(255,255,255,.16),0 12px 26px rgba(0,0,0,.24),0 0 32px rgba(233,202,130,.24)}
}
@keyframes lockButtonHit{
  0%{transform:scale(1)}
  34%{transform:scale(.975)}
  58%{transform:scale(1.025);filter:brightness(1.12)}
  100%{transform:scale(1)}
}
@keyframes lockTickReveal{
  0%{opacity:0;transform:translate(-50%,-50%) scale(.20) rotate(-18deg)}
  42%{opacity:1;transform:translate(-50%,-50%) scale(1.10) rotate(4deg)}
  72%{opacity:1;transform:translate(-50%,-50%) scale(.98)}
  100%{opacity:0;transform:translate(-50%,-50%) scale(1.04)}
}
@keyframes correctCardHit{
  0%{transform:scale(1)}
  45%{transform:scale(1.025);border-color:rgba(244,223,171,.62);box-shadow:0 0 28px rgba(233,202,130,.18)}
  100%{transform:scale(1)}
}
@keyframes rankCardEnter{
  from{opacity:0;transform:translateY(10px) scale(.98)}
  to{opacity:1;transform:none}
}
@keyframes scoreCardBump{
  0%,100%{transform:scale(1)}
  42%{transform:translateY(-3px) scale(1.025)}
}
@keyframes scoreTotalPulse{
  0%{transform:scale(1)}
  46%{transform:scale(1.16);filter:brightness(1.22)}
  100%{transform:scale(1)}
}
@keyframes revealRigDrop{
  from{opacity:0;transform:translateX(-50%) translateY(-28px) scale(.82)}
  to{opacity:1;transform:translateX(-50%) translateY(0) scale(1)}
}
@keyframes revealTextUp{
  from{opacity:0;transform:translateY(12px)}
  to{opacity:1;transform:none}
}
@keyframes revealPanelUp{
  from{opacity:0;transform:translateY(16px) scale(.98);filter:blur(2px)}
  to{opacity:1;transform:none;filter:none}
}
@keyframes discoTurn{
  from{background-position:0 0,0 0,0 0}
  to{background-position:24px 0,24px 0,0 0}
}
@keyframes beamSweepLeft{
  from{transform:translateX(-50%) rotate(-43deg);opacity:.28}
  to{transform:translateX(-50%) rotate(-25deg);opacity:.78}
}
@keyframes beamSweepMiddle{
  from{transform:translateX(-50%) rotate(-7deg);opacity:.20}
  to{transform:translateX(-50%) rotate(7deg);opacity:.54}
}
@keyframes beamSweepRight{
  from{transform:translateX(-50%) rotate(25deg);opacity:.72}
  to{transform:translateX(-50%) rotate(43deg);opacity:.30}
}
@keyframes finaleStageIn{
  from{opacity:0;transform:translateY(18px) scale(.975);filter:blur(3px)}
  to{opacity:1;transform:none;filter:none}
}
@keyframes finaleBallFlare{
  0%{opacity:.25;transform:scale(.55) rotate(-18deg);filter:brightness(.8)}
  52%{opacity:1;transform:scale(1.18) rotate(5deg);filter:brightness(1.42)}
  100%{opacity:1;transform:scale(1) rotate(0);filter:brightness(1)}
}
@keyframes winnerNameReveal{
  0%{opacity:0;transform:translateY(14px) scale(.72);letter-spacing:.04em;filter:blur(6px)}
  55%{opacity:1;transform:translateY(-2px) scale(1.075);letter-spacing:.015em;filter:none}
  100%{opacity:1;transform:none;letter-spacing:normal;filter:none}
}
@keyframes burstStar{
  0%{opacity:0;transform:translate(0,0) scale(.2) rotate(0)}
  18%{opacity:1}
  100%{opacity:0;transform:translate(var(--x),var(--y)) scale(.15) rotate(180deg)}
}


/* Home Page Motion v33 — ballroom entrance, parallax and ambient glitz */
#lobbyView{
  position:relative;
  isolation:isolate;
}

#lobbyView::before,
#lobbyView::after{
  content:"";
  position:absolute;
  z-index:-1;
  pointer-events:none;
  border-radius:50%;
  filter:blur(34px);
  opacity:.55;
}
#lobbyView::before{
  width:190px;
  height:190px;
  left:-85px;
  top:260px;
  background:radial-gradient(circle,rgba(217,102,188,.22),rgba(111,57,129,.06) 56%,transparent 72%);
  animation:homeOrbOne 9s ease-in-out infinite alternate;
}
#lobbyView::after{
  width:230px;
  height:230px;
  right:-110px;
  top:760px;
  background:radial-gradient(circle,rgba(244,223,171,.14),rgba(109,57,125,.05) 58%,transparent 74%);
  animation:homeOrbTwo 11s ease-in-out infinite alternate;
}

.home-motion-ready .home-reveal-item{
  opacity:0;
  transform:translateY(24px) scale(.985);
  filter:blur(4px);
}
.home-motion-ready .home-reveal-item.home-in-view{
  animation:homeSectionReveal .72s var(--home-delay,0ms) cubic-bezier(.18,.78,.22,1) forwards;
}

.split.home-in-view > .card:first-child{
  animation:homeSplitLeft .66s .10s cubic-bezier(.18,.78,.22,1) both;
}
.split.home-in-view > .card:last-child{
  animation:homeSplitRight .66s .18s cubic-bezier(.18,.78,.22,1) both;
}

/* Hero feels alive even when the page is sitting still. */
.hero.hero-poster .home-hero-image{
  transform:translate3d(0,var(--hero-shift,0px),0) scale(var(--hero-scale,1.015))!important;
  transform-origin:50% 38%;
  transition:transform .12s linear;
  animation:homeHeroGlow 7s ease-in-out infinite alternate;
  will-change:transform,filter;
}
.hero.hero-poster.loaded{
  animation:homeHeroFrameIn .82s cubic-bezier(.18,.78,.22,1) both;
}
.hero.hero-poster.loaded .hero-poster-shine{
  animation:heroLuxeSweep 6.5s ease-in-out infinite,homeHeroShimmerPulse 3.8s ease-in-out infinite alternate;
}
.hero.hero-poster{
  transition:box-shadow .35s ease,border-color .35s ease;
}
.hero.hero-poster:hover{
  border-color:rgba(244,223,171,.34);
  box-shadow:
    0 30px 76px rgba(0,0,0,.50),
    0 0 54px rgba(126,66,145,.20),
    inset 0 1px rgba(255,255,255,.20);
}

/* A soft travelling gleam moves through home cards at different times. */
#lobbyView > .card::after,
#lobbyView .split > .card::after{
  content:"";
  position:absolute;
  pointer-events:none;
  z-index:0;
  top:-45%;
  bottom:-45%;
  left:-55%;
  width:22%;
  background:linear-gradient(90deg,transparent,rgba(255,247,222,.065),transparent);
  transform:rotate(16deg);
  animation:homeCardGleam 8.5s ease-in-out infinite;
}
#lobbyView > .card:nth-of-type(2)::after{animation-delay:1.2s}
#lobbyView > .card:nth-of-type(3)::after{animation-delay:2.4s}
#lobbyView .split > .card:nth-child(1)::after{animation-delay:3.1s}
#lobbyView .split > .card:nth-child(2)::after{animation-delay:4.0s}

/* Keep content above the decorative gleam. */
#lobbyView .card > *{
  position:relative;
  z-index:1;
}

.install-icon{
  animation:homeIconFloat 3.4s ease-in-out infinite;
}
.install-card:hover .install-icon{
  animation:homeIconFloat 3.4s ease-in-out infinite,homeIconTwist .68s ease;
}

.mini-glitterball{
  animation:
    luxeDiscoPulse 2.8s ease-in-out infinite alternate,
    homeMiniBallDrift 5.6s ease-in-out infinite;
}

.saved-party{
  animation:homeRowIn .54s cubic-bezier(.18,.78,.22,1) both;
}
.saved-party:nth-child(2){animation-delay:.07s}
.saved-party:nth-child(3){animation-delay:.14s}
.saved-party:nth-child(4){animation-delay:.21s}
.saved-party:nth-child(5){animation-delay:.28s}

.saved-party-open{
  animation:homeArrowNudge 2.6s ease-in-out infinite;
}
.saved-party:active{
  transform:scale(.988);
}

.season-row,
.weekbyweek-row,
.history-week,
.overall-total-box{
  animation:homeRowIn .48s cubic-bezier(.18,.78,.22,1) both;
}
.season-row:nth-child(2),
.weekbyweek-row:nth-child(2),
.history-week:nth-child(2),
.overall-total-box:nth-child(2){animation-delay:.06s}
.season-row:nth-child(3),
.weekbyweek-row:nth-child(3),
.history-week:nth-child(3),
.overall-total-box:nth-child(3){animation-delay:.12s}
.season-row:nth-child(4),
.weekbyweek-row:nth-child(4),
.history-week:nth-child(4),
.overall-total-box:nth-child(4){animation-delay:.18s}

.results-tabs{
  animation:homeDockRise .72s .18s cubic-bezier(.18,.78,.22,1) both;
}
.results-tab{
  transition:transform .22s ease,background .22s ease,box-shadow .22s ease;
}
.results-tab:active{
  transform:scale(.95);
}
.results-tab.active .tab-icon{
  animation:homeTabIconDance 2.6s ease-in-out infinite;
  text-shadow:0 0 14px rgba(255,240,189,.30);
}
.results-tab.active::after{
  content:"";
  position:absolute;
  left:20%;
  right:20%;
  bottom:4px;
  height:1px;
  border-radius:999px;
  background:linear-gradient(90deg,transparent,#fff1bd,transparent);
  box-shadow:0 0 9px rgba(233,202,130,.32);
  animation:homeTabUnderline 2.8s ease-in-out infinite;
}

.home-tab-reveal{
  animation:homeTabReveal .58s cubic-bezier(.18,.78,.22,1) both!important;
}

#lobbyView .gold{
  transition:transform .20s ease,box-shadow .25s ease,filter .25s ease;
}
#lobbyView .gold:not(:disabled):active{
  transform:scale(.975);
  filter:brightness(1.08);
}

.identity-card:focus-within{
  border-color:rgba(244,223,171,.40)!important;
  box-shadow:
    inset 0 1px rgba(255,255,255,.14),
    0 20px 46px rgba(0,0,0,.29),
    0 0 34px rgba(233,202,130,.09)!important;
  transform:translateY(-2px);
  transition:transform .25s ease,box-shadow .3s ease,border-color .3s ease;
}

@keyframes homeSectionReveal{
  0%{opacity:0;transform:translateY(24px) scale(.985);filter:blur(4px)}
  58%{opacity:1;filter:blur(0)}
  100%{opacity:1;transform:none;filter:none}
}
@keyframes homeSplitLeft{
  from{opacity:0;transform:translateX(-16px) translateY(8px) scale(.985)}
  to{opacity:1;transform:none}
}
@keyframes homeSplitRight{
  from{opacity:0;transform:translateX(16px) translateY(8px) scale(.985)}
  to{opacity:1;transform:none}
}
@keyframes homeHeroFrameIn{
  from{opacity:.35;transform:translateY(-8px) scale(.99);filter:blur(4px)}
  to{opacity:1;transform:none;filter:none}
}
@keyframes homeHeroGlow{
  from{filter:brightness(.98) saturate(1.02)}
  to{filter:brightness(1.075) saturate(1.10)}
}
@keyframes homeHeroShimmerPulse{
  from{opacity:.40}
  to{opacity:.70}
}
@keyframes homeCardGleam{
  0%,68%{left:-55%;opacity:0}
  74%{opacity:1}
  88%,100%{left:128%;opacity:0}
}
@keyframes homeIconFloat{
  0%,100%{transform:translateY(0) rotate(-1deg)}
  50%{transform:translateY(-5px) rotate(1deg)}
}
@keyframes homeIconTwist{
  0%{transform:scale(1) rotate(0)}
  50%{transform:scale(1.10) rotate(9deg)}
  100%{transform:scale(1) rotate(0)}
}
@keyframes homeMiniBallDrift{
  0%,100%{transform:translateY(0) rotate(-2deg)}
  50%{transform:translateY(-4px) rotate(2deg)}
}
@keyframes homeRowIn{
  from{opacity:0;transform:translateY(10px) scale(.987)}
  to{opacity:1;transform:none}
}
@keyframes homeArrowNudge{
  0%,72%,100%{transform:translateX(0);opacity:.86}
  82%{transform:translateX(4px);opacity:1}
}
@keyframes homeDockRise{
  from{opacity:0;transform:translateX(-50%) translateY(28px) scale(.97)}
  to{opacity:1;transform:translateX(-50%) translateY(0) scale(1)}
}
@keyframes homeTabIconDance{
  0%,100%{transform:translateY(0) rotate(0) scale(1)}
  45%{transform:translateY(-2px) rotate(-5deg) scale(1.08)}
  60%{transform:translateY(-1px) rotate(4deg) scale(1.05)}
}
@keyframes homeTabUnderline{
  0%,100%{opacity:.35;transform:scaleX(.65)}
  50%{opacity:1;transform:scaleX(1)}
}
@keyframes homeTabReveal{
  from{opacity:.15;transform:translateY(14px) scale(.985);filter:blur(3px)}
  to{opacity:1;transform:none;filter:none}
}
@keyframes homeOrbOne{
  from{transform:translate3d(0,0,0) scale(.92)}
  to{transform:translate3d(34px,42px,0) scale(1.12)}
}
@keyframes homeOrbTwo{
  from{transform:translate3d(0,0,0) scale(1)}
  to{transform:translate3d(-30px,-38px,0) scale(1.16)}
}

@media(max-width:560px){
  .hero.hero-poster .home-hero-image{
    transition:transform .10s linear;
  }
  #lobbyView::before{top:220px;left:-110px}
  #lobbyView::after{top:900px;right:-135px}
}


/* Amethyst Liquid Glass v34 — visibly glassier purple theme */
:root{
  --bg:#0a0610;
  --bg2:#1b0c27;
  --card:rgba(39,22,50,.46);
  --gold:#f0d69a;
  --gold2:#fff0c5;
  --text:#fff9ff;
  --muted:#d6c8db;
  --border:rgba(255,255,255,.18);
  --panel:rgba(255,255,255,.075);
  --purple:#7b49a5;
  --magenta:#e75bb7;
}

body{
  background:
    radial-gradient(900px 620px at 18% -4%,rgba(148,83,190,.34),transparent 58%),
    radial-gradient(760px 560px at 96% 16%,rgba(92,58,170,.24),transparent 58%),
    radial-gradient(620px 500px at 50% 82%,rgba(231,91,183,.12),transparent 64%),
    linear-gradient(180deg,#08050d 0%,#120919 38%,#1a0c25 68%,#08050d 100%)!important;
}

.glam-sparkle-field{
  opacity:.82!important;
  filter:brightness(1.14) saturate(1.08);
}

/* Stronger liquid-glass treatment */
.card,
.competition-dashboard,
.scoring-card,
.season-card,
.saved-party,
.dashboard-stat,
.party-score-player,
.scoring-judge-card,
.submitted-judge-card,
.overall-leader-card,
.overall-total-box,
.season-row,
.weekbyweek-row,
.history-week,
.waiting{
  border:1px solid rgba(255,255,255,.18)!important;
  background:
    radial-gradient(circle at 14% 0%,rgba(255,255,255,.16),transparent 31%),
    radial-gradient(circle at 86% 100%,rgba(130,70,165,.14),transparent 38%),
    linear-gradient(145deg,rgba(255,255,255,.105),rgba(255,255,255,.035) 45%,rgba(116,60,150,.055) 100%),
    rgba(26,14,35,.40)!important;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.22),
    inset 0 -1px 0 rgba(255,255,255,.035),
    0 18px 42px rgba(0,0,0,.27),
    0 0 0 1px rgba(104,58,130,.06),
    0 0 34px rgba(124,67,151,.07)!important;
  -webkit-backdrop-filter:blur(34px) saturate(170%) brightness(1.04)!important;
  backdrop-filter:blur(34px) saturate(170%) brightness(1.04)!important;
}

/* Bright specular rim */
.card:before,
.competition-dashboard:before,
.scoring-card:before,
.season-card:before,
.saved-party:before,
.dashboard-stat:before,
.party-score-player:before{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  border-radius:inherit;
  background:
    linear-gradient(180deg,rgba(255,255,255,.13),rgba(255,255,255,.018) 22%,transparent 46%),
    linear-gradient(115deg,rgba(255,255,255,.07),transparent 24%,transparent 72%,rgba(195,150,225,.045));
  opacity:.95;
}

.card:after,
.competition-dashboard:after,
.scoring-card:after,
.season-card:after{
  content:"";
  position:absolute;
  left:8%;
  right:8%;
  top:0;
  height:1px;
  pointer-events:none;
  background:linear-gradient(90deg,transparent,rgba(255,255,255,.72),rgba(240,214,154,.36),transparent);
  opacity:.75;
  filter:blur(.2px);
}

#lobbyView > .card,
#lobbyView .split > .card{
  border-radius:24px!important;
}

.identity-card,
.rejoin-card,
.install-card{
  background:
    radial-gradient(circle at 8% -8%,rgba(255,255,255,.18),transparent 36%),
    linear-gradient(145deg,rgba(111,57,139,.23),rgba(255,255,255,.055) 46%,rgba(56,28,73,.28)),
    rgba(23,13,31,.44)!important;
}

.install-card{
  color:#fff!important;
}
.install-card h2{color:#fff4d6!important}
.install-card .muted{color:#dccfe2!important}

input,
select{
  border:1px solid rgba(255,255,255,.17)!important;
  background:
    linear-gradient(180deg,rgba(255,255,255,.09),rgba(255,255,255,.035)),
    rgba(18,10,25,.47)!important;
  color:#fffafc!important;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.13),
    inset 0 -1px rgba(255,255,255,.025),
    0 10px 22px rgba(0,0,0,.16)!important;
  -webkit-backdrop-filter:blur(18px) saturate(150%);
  backdrop-filter:blur(18px) saturate(150%);
}
input::placeholder{color:#a895ac}
input:focus,
select:focus{
  border-color:rgba(221,182,243,.52)!important;
  box-shadow:
    0 0 0 3px rgba(166,92,201,.12),
    inset 0 1px rgba(255,255,255,.15),
    0 0 28px rgba(146,79,177,.14)!important;
}

/* Purple glass actions instead of heavy gold blocks */
#lobbyView .gold,
#gameView .gold{
  color:#fff9ff!important;
  border:1px solid rgba(255,255,255,.24)!important;
  background:
    radial-gradient(circle at 30% 0%,rgba(255,255,255,.20),transparent 38%),
    linear-gradient(135deg,rgba(157,86,190,.95),rgba(111,56,145,.96) 48%,rgba(197,76,160,.90))!important;
  background-size:160% 160%!important;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.30),
    0 12px 26px rgba(74,28,95,.30),
    0 0 26px rgba(180,91,204,.13)!important;
}

#lobbyView .gold:before,
#gameView .gold:before{
  background:linear-gradient(90deg,transparent,rgba(255,255,255,.45),transparent)!important;
}

.secondary{
  border:1px solid rgba(255,255,255,.14)!important;
  background:
    linear-gradient(145deg,rgba(255,255,255,.075),rgba(255,255,255,.025)),
    rgba(26,14,34,.48)!important;
  color:#f5edf7!important;
  -webkit-backdrop-filter:blur(20px) saturate(155%);
  backdrop-filter:blur(20px) saturate(155%);
}

/* Home hero gets a proper glass blend into the page */
.hero.hero-poster{
  border-radius:0 0 28px 28px!important;
  border:1px solid rgba(255,255,255,.14)!important;
  border-top:0!important;
  background:
    linear-gradient(180deg,rgba(23,7,34,.28),rgba(14,7,19,.74)),
    #13091b!important;
  box-shadow:
    0 26px 64px rgba(0,0,0,.42),
    0 0 48px rgba(121,61,149,.16),
    inset 0 -1px rgba(255,255,255,.08)!important;
  -webkit-backdrop-filter:blur(24px) saturate(150%);
  backdrop-filter:blur(24px) saturate(150%);
}

.hero.hero-poster:after{
  background:
    linear-gradient(115deg,transparent 12%,rgba(255,255,255,.08) 30%,transparent 47%),
    linear-gradient(180deg,transparent 58%,rgba(9,4,14,.18) 77%,rgba(10,5,15,.70) 100%)!important;
}

.hero.hero-poster .hero-poster-shine{
  background:
    linear-gradient(105deg,transparent 26%,rgba(255,255,255,.10) 43%,rgba(244,223,171,.12) 49%,transparent 61%),
    linear-gradient(180deg,transparent 0 76%,rgba(40,17,50,.18) 84%,rgba(10,5,15,.72) 100%)!important;
}

.results-tabs{
  border:1px solid rgba(255,255,255,.17)!important;
  background:
    linear-gradient(145deg,rgba(255,255,255,.095),rgba(255,255,255,.025)),
    rgba(20,11,27,.60)!important;
  box-shadow:
    inset 0 1px rgba(255,255,255,.14),
    0 18px 42px rgba(0,0,0,.38),
    0 0 30px rgba(112,55,137,.11)!important;
  -webkit-backdrop-filter:blur(32px) saturate(180%)!important;
  backdrop-filter:blur(32px) saturate(180%)!important;
}

.results-tab.active{
  border:1px solid rgba(255,255,255,.20)!important;
  background:
    radial-gradient(circle at 50% -14%,rgba(255,255,255,.16),transparent 42%),
    linear-gradient(145deg,rgba(144,75,178,.72),rgba(82,39,108,.78))!important;
  box-shadow:
    inset 0 1px rgba(255,255,255,.17),
    0 0 24px rgba(166,89,195,.14)!important;
}

.season-pos,
.party-score-player .total,
.chip{
  border-color:rgba(255,255,255,.33)!important;
  background:
    radial-gradient(circle at 34% 18%,rgba(255,255,255,.25),transparent 37%),
    linear-gradient(145deg,rgba(156,99,183,.72),rgba(66,34,82,.92))!important;
  color:#fffafc!important;
  box-shadow:
    inset 0 1px rgba(255,255,255,.20),
    0 0 0 1px rgba(255,255,255,.06),
    0 8px 20px rgba(0,0,0,.22)!important;
}

/* Glass bubbles in the background make the material more obvious */
.shell:before,
.shell:after{
  z-index:-1!important;
  width:170px!important;
  height:170px!important;
  border-radius:50%!important;
  top:180px!important;
  filter:blur(2px);
  background:
    radial-gradient(circle at 30% 24%,rgba(255,255,255,.12),transparent 22%),
    linear-gradient(145deg,rgba(157,91,193,.13),rgba(255,255,255,.025))!important;
  border:1px solid rgba(255,255,255,.06);
  box-shadow:
    inset 0 1px rgba(255,255,255,.10),
    0 20px 60px rgba(0,0,0,.10)!important;
  opacity:.75;
}
.shell:before{left:-120px!important}
.shell:after{right:-125px!important;top:650px!important}

/* More visible liquid movement across home cards */
#lobbyView > .card::after,
#lobbyView .split > .card::after{
  width:34%!important;
  background:
    linear-gradient(90deg,transparent,rgba(255,255,255,.12),rgba(221,184,242,.07),transparent)!important;
  filter:blur(3px);
}

/* Make headings and gold details softer against the purple glass */
h2,
.dashboard-head h2,
.round-title{
  color:#f7e9ff!important;
}
.small,
label,
.saved-party-open,
.dashboard-code,
.season-wins strong,
.weekbyweek-player span{
  color:#f1d9ff!important;
}
.muted,
.party-help,
.status,
.message,
.dashboard-status{
  color:#cdbed2!important;
}

/* More obvious frosted glass on game panels too */
.my-panel,
.opponent-panel,
.scoring-panel,
.scoring-opponent-panel{
  border:1px solid rgba(255,255,255,.14)!important;
  background:
    radial-gradient(circle at 12% -6%,rgba(255,255,255,.12),transparent 32%),
    linear-gradient(145deg,rgba(255,255,255,.07),rgba(103,55,130,.05)),
    rgba(21,12,28,.42)!important;
  -webkit-backdrop-filter:blur(26px) saturate(165%)!important;
  backdrop-filter:blur(26px) saturate(165%)!important;
  box-shadow:
    inset 0 1px rgba(255,255,255,.11),
    0 10px 24px rgba(0,0,0,.18)!important;
}

@media(max-width:560px){
  .card,
  .competition-dashboard,
  .scoring-card,
  .season-card{
    border-radius:22px!important;
    -webkit-backdrop-filter:blur(28px) saturate(165%)!important;
    backdrop-filter:blur(28px) saturate(165%)!important;
  }
  .hero.hero-poster{border-radius:0 0 24px 24px!important}
}


/* v35 — lock the app to the phone viewport */
html,
body{
  width:100%;
  max-width:100%;
  overflow-x:hidden!important;
  overscroll-behavior-x:none;
}

body{
  touch-action:pan-y pinch-zoom;
}

.shell,
#lobbyView,
#gameView,
.split,
.card,
.season-card,
.competition-dashboard,
.scoring-card{
  min-width:0;
  max-width:100%;
}

.shell,
#lobbyView,
#gameView{
  overflow-x:clip;
}

/* Keep home entrances vertical so nothing appears to push the page sideways. */
.split.home-in-view > .card:first-child,
.split.home-in-view > .card:last-child{
  animation:homeSectionReveal .66s var(--home-delay,0ms) cubic-bezier(.18,.78,.22,1) both!important;
}

@media(max-width:560px){
  .shell{
    width:100%;
    overflow-x:clip;
  }
  .results-tabs{
    max-width:calc(100vw - 16px);
  }
}


/* v36 — blend the home artwork into the purple glass page */
.hero.hero-poster{
  margin-bottom:-2px!important;
  border:0!important;
  border-radius:0 0 30px 30px!important;
  background:transparent!important;
  box-shadow:none!important;
  isolation:isolate;
}

/* Use the same artwork as a soft atmospheric halo behind the sharp image. */
.hero.hero-poster::before{
  inset:-32px -34px -54px!important;
  background:
    linear-gradient(180deg,rgba(19,8,28,.02) 0%,rgba(21,10,30,.08) 58%,rgba(19,9,27,.64) 86%,#100817 100%),
    var(--hero-image) center/cover no-repeat!important;
  filter:blur(34px) saturate(1.22) brightness(.86)!important;
  opacity:.72!important;
  transform:scale(1.15)!important;
}

/* Keep the artwork sharp in the centre but visually soften its outer edges. */
.hero.hero-poster .home-hero-image{
  position:relative;
  z-index:1;
  filter:saturate(1.06) contrast(.98) brightness(.98)!important;
  border-radius:0 0 28px 28px;
  -webkit-mask-image:
    linear-gradient(to bottom,#000 0%,#000 75%,rgba(0,0,0,.98) 82%,rgba(0,0,0,.84) 90%,rgba(0,0,0,.28) 97%,transparent 100%)!important;
  mask-image:
    linear-gradient(to bottom,#000 0%,#000 75%,rgba(0,0,0,.98) 82%,rgba(0,0,0,.84) 90%,rgba(0,0,0,.28) 97%,transparent 100%)!important;
}

/* Purple glass colour wash + bottom fade removes the 'boxed image' edge. */
.hero.hero-poster::after{
  content:"";
  position:absolute;
  z-index:2;
  inset:0;
  pointer-events:none;
  border-radius:inherit;
  background:
    radial-gradient(circle at 50% 18%,rgba(190,119,224,.055),transparent 43%),
    linear-gradient(90deg,rgba(13,7,20,.22) 0%,transparent 9%,transparent 91%,rgba(13,7,20,.22) 100%),
    linear-gradient(180deg,
      rgba(89,38,112,.04) 0%,
      transparent 48%,
      rgba(18,9,26,.05) 66%,
      rgba(17,8,24,.36) 82%,
      rgba(16,8,23,.82) 94%,
      #100817 100%)!important;
  box-shadow:
    inset 0 0 46px rgba(16,8,23,.20),
    inset 0 -34px 38px rgba(16,8,23,.22);
}

/* Keep the moving sheen, but make it part of the glass rather than a hard overlay. */
.hero.hero-poster .hero-poster-shine{
  z-index:3!important;
  border-radius:inherit;
  opacity:.48!important;
  mix-blend-mode:screen;
  background:
    linear-gradient(108deg,transparent 28%,rgba(255,255,255,.075) 43%,rgba(231,190,245,.09) 49%,transparent 62%),
    linear-gradient(180deg,transparent 0 76%,rgba(98,49,119,.04) 84%,rgba(16,8,23,.34) 100%)!important;
}

/* Continue the hero colour into the first part of the home page. */
#lobbyView{
  background:
    linear-gradient(180deg,#100817 0,rgba(16,8,23,.72) 30px,transparent 120px);
  border-radius:30px 30px 0 0;
  padding-top:12px;
  margin-top:-14px;
}

#lobbyView > :first-child{
  margin-top:4px;
}

@media(max-width:560px){
  .hero.hero-poster{
    border-radius:0 0 26px 26px!important;
  }
  .hero.hero-poster .home-hero-image{
    border-radius:0 0 24px 24px;
  }
  #lobbyView{
    margin-top:-12px;
    padding-top:10px;
  }
}


/* v37 — extra glitz pass: more sparkle, shine and ballroom glamour */
.glam-sparkle-field{
  opacity:.96!important;
  background:
    radial-gradient(circle at 7% 13%,rgba(255,249,214,.98) 0 1.2px,transparent 2.3px),
    radial-gradient(circle at 17% 43%,rgba(255,255,255,.94) 0 1.6px,transparent 2.6px),
    radial-gradient(circle at 27% 8%,rgba(235,179,255,.94) 0 1.3px,transparent 2.3px),
    radial-gradient(circle at 39% 29%,rgba(255,224,145,.94) 0 1.1px,transparent 2.1px),
    radial-gradient(circle at 52% 15%,rgba(255,255,255,.98) 0 1.5px,transparent 2.5px),
    radial-gradient(circle at 66% 41%,rgba(235,170,255,.92) 0 1.4px,transparent 2.4px),
    radial-gradient(circle at 79% 17%,rgba(255,238,173,.98) 0 1.5px,transparent 2.5px),
    radial-gradient(circle at 91% 49%,rgba(255,255,255,.92) 0 1.2px,transparent 2.2px),
    radial-gradient(circle at 11% 72%,rgba(245,188,255,.72) 0 .9px,transparent 1.9px),
    radial-gradient(circle at 72% 76%,rgba(255,230,155,.78) 0 1px,transparent 2px)!important;
  background-size:
    148px 168px,190px 180px,218px 206px,172px 232px,
    188px 202px,216px 176px,164px 218px,204px 192px,
    126px 158px,142px 174px!important;
  animation:glamTwinkle 5.8s ease-in-out infinite alternate,glamDrift 20s linear infinite!important;
}

.glam-sparkle-field::before{
  opacity:.82!important;
  filter:drop-shadow(0 0 5px rgba(255,242,194,.34));
}

.glam-sparkle-field::after{
  opacity:.76!important;
  filter:drop-shadow(0 0 6px rgba(229,167,255,.34));
}

/* Hero gets tiny moving star flashes over the ballroom artwork. */
.hero.hero-poster .hero-poster-shine::before,
.hero.hero-poster .hero-poster-shine::after{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  border-radius:inherit;
}

.hero.hero-poster .hero-poster-shine::before{
  background:
    radial-gradient(circle at 20% 24%,rgba(255,255,255,.98) 0 1.3px,transparent 2.5px),
    radial-gradient(circle at 76% 19%,rgba(255,236,168,.96) 0 1.5px,transparent 2.7px),
    radial-gradient(circle at 64% 56%,rgba(239,192,255,.92) 0 1.2px,transparent 2.4px),
    radial-gradient(circle at 33% 66%,rgba(255,248,216,.94) 0 1.3px,transparent 2.6px),
    radial-gradient(circle at 84% 72%,rgba(255,255,255,.90) 0 1.1px,transparent 2.3px);
  animation:heroStarTwinkle 3.2s ease-in-out infinite alternate;
}

.hero.hero-poster .hero-poster-shine::after{
  left:-18%;
  right:-18%;
  background:
    linear-gradient(112deg,transparent 34%,rgba(255,255,255,.00) 39%,rgba(255,255,255,.16) 46%,rgba(236,190,255,.11) 49%,transparent 57%);
  transform:translateX(-85%);
  animation:heroGlitterSweep 7.2s ease-in-out infinite;
}

/* Stronger polished-glass gleam on the home cards. */
#lobbyView > .card,
#lobbyView .split > .card{
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.25),
    inset 0 -1px 0 rgba(255,255,255,.035),
    0 18px 44px rgba(0,0,0,.28),
    0 0 36px rgba(147,78,174,.09)!important;
}

#lobbyView > .card::after,
#lobbyView .split > .card::after{
  width:42%!important;
  background:
    linear-gradient(90deg,
      transparent,
      rgba(255,255,255,.03) 12%,
      rgba(255,255,255,.17) 44%,
      rgba(247,219,255,.11) 53%,
      rgba(255,235,178,.07) 61%,
      transparent)!important;
  filter:blur(2px)!important;
  animation-duration:7.1s!important;
}

/* Sparkle pin at the corner of the more important home cards. */
.identity-card::marker{content:""}
.identity-card,
.rejoin-card,
.season-card{
  overflow:hidden;
}

.identity-card > .small::after,
.rejoin-card > .small::after,
.season-heading .small::after{
  content:" ✦";
  display:inline-block;
  margin-left:4px;
  color:#fff0b9;
  text-shadow:0 0 9px rgba(255,239,183,.68),0 0 18px rgba(216,142,246,.30);
  animation:tinyStarPulse 1.9s ease-in-out infinite alternate;
}

/* Brighter liquid-glass headings */
#lobbyView h2{
  background:linear-gradient(90deg,#fff 0%,#f5ddff 36%,#fff0bd 60%,#f8eaff 100%);
  -webkit-background-clip:text;
  background-clip:text;
  color:transparent!important;
  text-shadow:none!important;
}

/* Buttons get a more obvious satin shimmer without reverting to heavy gold. */
#lobbyView .gold{
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.36),
    0 13px 30px rgba(77,30,99,.34),
    0 0 30px rgba(190,100,214,.18)!important;
  animation:luxeGoldBreath 3.8s ease-in-out infinite!important;
}

#lobbyView .gold::after{
  content:"";
  position:absolute;
  inset:1px;
  border-radius:inherit;
  pointer-events:none;
  background:
    linear-gradient(180deg,rgba(255,255,255,.12),transparent 36%),
    radial-gradient(circle at 18% 10%,rgba(255,255,255,.14),transparent 24%);
  mix-blend-mode:screen;
}

/* Bottom glass dock gets more jewellery-like highlights. */
.results-tabs{
  box-shadow:
    inset 0 1px rgba(255,255,255,.18),
    inset 0 -1px rgba(255,255,255,.03),
    0 18px 44px rgba(0,0,0,.40),
    0 0 34px rgba(136,69,163,.14)!important;
}

.results-tabs::before{
  content:"";
  position:absolute;
  left:8%;
  right:8%;
  top:0;
  height:1px;
  pointer-events:none;
  background:linear-gradient(90deg,transparent,rgba(255,255,255,.78),rgba(255,232,174,.30),transparent);
  opacity:.75;
}

.results-tab.active{
  box-shadow:
    inset 0 1px rgba(255,255,255,.22),
    0 0 25px rgba(179,91,205,.20),
    0 0 10px rgba(255,233,177,.06)!important;
}

/* Small sparkle halo around the glitterball icons. */
.mini-glitterball,
.install-icon{
  box-shadow:
    0 0 16px rgba(255,255,255,.28),
    0 0 32px rgba(230,176,255,.28),
    0 0 46px rgba(240,214,154,.10),
    inset 0 0 16px rgba(255,255,255,.30)!important;
}

@keyframes heroStarTwinkle{
  0%{opacity:.26;filter:brightness(.9)}
  48%{opacity:.72;filter:brightness(1.20)}
  100%{opacity:.40;filter:brightness(1.02)}
}
@keyframes heroGlitterSweep{
  0%,64%{transform:translateX(-90%);opacity:0}
  72%{opacity:.75}
  88%,100%{transform:translateX(90%);opacity:0}
}
@keyframes tinyStarPulse{
  from{opacity:.45;transform:scale(.86) rotate(-8deg)}
  to{opacity:1;transform:scale(1.14) rotate(8deg)}
}


/* v38 — ballroom stage background: disco balls + moving flash lights */
body{
  background:
    radial-gradient(900px 620px at 18% -4%,rgba(132,70,170,.30),transparent 58%),
    radial-gradient(760px 560px at 96% 16%,rgba(79,48,151,.22),transparent 58%),
    radial-gradient(620px 500px at 50% 82%,rgba(216,78,171,.10),transparent 64%),
    linear-gradient(180deg,#07040b 0%,#110817 38%,#190b22 68%,#07040b 100%)!important;
}

/* Replace the white-dot field with soft moving stage beams. */
body:before{
  content:"";
  position:fixed;
  inset:-18% -12%;
  z-index:-1;
  pointer-events:none;
  opacity:.78!important;
  background:
    conic-gradient(from 208deg at 8% -4%,
      transparent 0 13deg,
      rgba(199,151,232,.00) 13deg 16deg,
      rgba(199,151,232,.12) 17deg 24deg,
      transparent 25deg 43deg,
      rgba(255,230,169,.085) 44deg 49deg,
      transparent 50deg 360deg),
    conic-gradient(from 148deg at 92% -5%,
      transparent 0 15deg,
      rgba(232,111,194,.10) 16deg 22deg,
      transparent 23deg 40deg,
      rgba(255,240,188,.065) 41deg 46deg,
      transparent 47deg 360deg)!important;
  background-size:auto!important;
  background-position:center!important;
  filter:blur(13px);
  transform-origin:50% 0%;
  animation:stageLightSweep 10s ease-in-out infinite alternate!important;
}

/* A softer central flash gives the page a real show-floor feel. */
body:after{
  content:"";
  position:fixed;
  inset:-8% -18%;
  z-index:-1;
  pointer-events:none;
  opacity:.48!important;
  background:
    radial-gradient(ellipse at 50% -7%,rgba(255,247,220,.14),transparent 29%),
    conic-gradient(from 178deg at 50% -8%,
      transparent 0 22deg,
      rgba(255,255,255,.035) 23deg 27deg,
      transparent 28deg 50deg,
      rgba(185,108,216,.055) 51deg 57deg,
      transparent 58deg 360deg)!important;
  filter:blur(16px);
  animation:centreFlashMove 13s ease-in-out infinite alternate!important;
}

/* Repurpose the old sparkle layer into two subtle mirrored disco balls. */
.glam-sparkle-field{
  position:fixed;
  inset:0;
  z-index:0;
  pointer-events:none;
  overflow:hidden;
  opacity:1!important;
  background:none!important;
  filter:none!important;
  animation:none!important;
}

.glam-sparkle-field::before,
.glam-sparkle-field::after{
  content:"";
  position:absolute;
  border-radius:50%;
  background:
    repeating-linear-gradient(0deg,transparent 0 9px,rgba(13,7,18,.34) 9px 10px),
    repeating-linear-gradient(90deg,transparent 0 9px,rgba(13,7,18,.28) 9px 10px),
    radial-gradient(circle at 31% 23%,
      rgba(255,255,255,.98) 0 4%,
      rgba(250,235,194,.92) 5% 13%,
      rgba(200,165,217,.86) 14% 31%,
      rgba(110,72,131,.74) 32% 55%,
      rgba(37,23,45,.68) 56% 78%,
      rgba(10,7,13,.35) 79% 100%)!important;
  box-shadow:
    0 0 18px rgba(255,255,255,.20),
    0 0 44px rgba(228,190,245,.22),
    0 0 74px rgba(238,211,151,.08),
    inset 0 0 18px rgba(255,255,255,.24)!important;
  filter:saturate(.88) brightness(.92)!important;
}

.glam-sparkle-field::before{
  width:124px!important;
  height:124px!important;
  right:-42px!important;
  left:auto!important;
  top:145px!important;
  opacity:.42!important;
  animation:discoBallFloatRight 9s ease-in-out infinite alternate!important;
}

.glam-sparkle-field::after{
  width:82px!important;
  height:82px!important;
  left:-28px!important;
  right:auto!important;
  top:63%!important;
  opacity:.28!important;
  animation:discoBallFloatLeft 11s ease-in-out infinite alternate!important;
}

/* Keep the old decorative shell bubbles quiet so the stage treatment stays clean. */
.shell:before,
.shell:after{
  opacity:.18!important;
  filter:blur(8px)!important;
}

/* Very soft reflected light behind glass cards — no dotty texture. */
#lobbyView,
#gameView{
  background-image:
    radial-gradient(circle at 8% 18%,rgba(154,88,185,.065),transparent 28%),
    radial-gradient(circle at 93% 44%,rgba(235,196,127,.045),transparent 25%);
}

@keyframes stageLightSweep{
  0%{transform:rotate(-3deg) scale(1.03);opacity:.62}
  50%{opacity:.82}
  100%{transform:rotate(4deg) scale(1.08);opacity:.70}
}
@keyframes centreFlashMove{
  0%{transform:translateX(-2%) rotate(-1deg);opacity:.34}
  100%{transform:translateX(2%) rotate(2deg);opacity:.56}
}
@keyframes discoBallFloatRight{
  0%{transform:translate3d(0,0,0) rotate(-5deg);background-position:0 0,0 0,0 0}
  100%{transform:translate3d(-10px,18px,0) rotate(6deg);background-position:18px 0,18px 0,0 0}
}
@keyframes discoBallFloatLeft{
  0%{transform:translate3d(0,0,0) rotate(4deg);background-position:0 0,0 0,0 0}
  100%{transform:translate3d(11px,-15px,0) rotate(-7deg);background-position:-14px 0,-14px 0,0 0}
}


@media(prefers-reduced-motion:reduce){
  body:before,
  body:after,
  .hero-poster-shine,
  .gold,
  .final-button,
  .gold:before,
  .final-button:before,
  .mini-glitterball,
  .glitterball,
  .splash-ball,
  .dashboard-progress-track span,
  .view-enter,
  .score-pick-pop,
  .judge-score-hit,
  .lock-button-hit,
  .correct-hit,
  .leaderboard-card-enter,
  .score-bump-card,
  .score-bump-card .total,
  .reveal-sequence *,
  .round-celebration.show .disco-ball,
  .round-celebration.show .disco-beam,
  .finale.winner-reveal,
  .finale.winner-reveal *,
  .glam-burst i,
  #lobbyView::before,
  #lobbyView::after,
  .home-reveal-item,
  .home-in-view,
  .split.home-in-view > .card,
  .hero.hero-poster,
  .hero.hero-poster .home-hero-image,
  .hero.hero-poster .hero-poster-shine,
  #lobbyView > .card::after,
  #lobbyView .split > .card::after,
  .install-icon,
  .mini-glitterball,
  .saved-party,
  .saved-party-open,
  .season-row,
  .weekbyweek-row,
  .history-week,
  .overall-total-box,
  .results-tabs,
  .results-tab.active .tab-icon,
  .results-tab.active::after,
  .home-tab-reveal,
  .hero.hero-poster .hero-poster-shine::before,
  .hero.hero-poster .hero-poster-shine::after,
  .identity-card > .small::after,
  .rejoin-card > .small::after,
  .season-heading .small::after,
  .glam-sparkle-field::before,
  .glam-sparkle-field::after{
    animation:none!important;
    transition:none!important;
  }
  .home-motion-ready .home-reveal-item{opacity:1!important;transform:none!important;filter:none!important}
  .locking-panel:after,
  .glam-burst{display:none!important}
}

/* v40 — LIVE FINAL BACKGROUND OVERRIDE
   Intentionally last in the stylesheet so it wins over the older v38 stage treatment. */
body{
  background:
    radial-gradient(980px 680px at 14% -6%,rgba(143,77,180,.34),transparent 58%),
    radial-gradient(820px 600px at 100% 14%,rgba(91,52,162,.27),transparent 58%),
    radial-gradient(700px 540px at 50% 86%,rgba(220,80,171,.11),transparent 64%),
    linear-gradient(180deg,#050208 0%,#100615 35%,#1a0a22 69%,#050208 100%)!important;
}

/* Prominent warm strobes */
body:before{
  content:""!important;
  position:fixed!important;
  inset:-18% -12%!important;
  pointer-events:none!important;
  z-index:-1!important;
  opacity:1!important;
  background:
    conic-gradient(from 206deg at 7% -5%,
      transparent 0 9deg,
      rgba(255,224,145,.04) 10deg 13deg,
      rgba(255,224,145,.27) 14deg 24deg,
      transparent 25deg 38deg,
      rgba(255,255,255,.16) 39deg 46deg,
      transparent 47deg 360deg),
    conic-gradient(from 150deg at 93% -5%,
      transparent 0 11deg,
      rgba(255,201,95,.23) 12deg 22deg,
      transparent 23deg 35deg,
      rgba(255,255,255,.15) 36deg 43deg,
      transparent 44deg 360deg)!important;
  background-image:none;
  filter:blur(7px)!important;
  transform-origin:50% 0!important;
  animation:v40StageSweep 5.8s ease-in-out infinite alternate!important;
}

body:after{
  content:""!important;
  position:fixed!important;
  inset:-9% -18%!important;
  pointer-events:none!important;
  z-index:-1!important;
  opacity:.78!important;
  background:
    radial-gradient(ellipse at 50% -7%,rgba(255,247,215,.30),transparent 27%),
    conic-gradient(from 179deg at 50% -8%,
      transparent 0 17deg,
      rgba(255,255,255,.11) 18deg 25deg,
      transparent 26deg 44deg,
      rgba(255,214,121,.14) 45deg 55deg,
      transparent 56deg 360deg)!important;
  filter:blur(10px)!important;
  animation:v40Flash 6.5s ease-in-out infinite alternate!important;
}

/* Large gold mirrored disco balls */
.glam-sparkle-field{
  position:fixed!important;
  inset:0!important;
  z-index:0!important;
  pointer-events:none!important;
  overflow:hidden!important;
  opacity:1!important;
  background:none!important;
  filter:none!important;
  animation:none!important;
}

.glam-sparkle-field::before,
.glam-sparkle-field::after{
  content:""!important;
  position:absolute!important;
  border-radius:50%!important;
  background:
    repeating-linear-gradient(0deg,transparent 0 8px,rgba(76,45,6,.28) 8px 9px),
    repeating-linear-gradient(90deg,transparent 0 8px,rgba(76,45,6,.24) 8px 9px),
    radial-gradient(circle at 28% 20%,
      #ffffff 0 4%,
      #fff8dc 5% 12%,
      #ffe49a 13% 28%,
      #efbd55 29% 46%,
      #c88725 47% 63%,
      #754411 64% 81%,
      rgba(24,13,5,.30) 82% 100%)!important;
  box-shadow:
    0 0 18px rgba(255,255,255,.52),
    0 0 50px rgba(255,224,145,.58),
    0 0 100px rgba(245,184,61,.45),
    0 0 155px rgba(236,162,34,.22),
    inset 0 0 24px rgba(255,255,255,.45)!important;
  filter:saturate(1.22) brightness(1.22)!important;
}

.glam-sparkle-field::before{
  width:196px!important;
  height:196px!important;
  right:-18px!important;
  left:auto!important;
  top:72px!important;
  opacity:.95!important;
  animation:v40DiscoRight 5.2s ease-in-out infinite alternate!important;
}

.glam-sparkle-field::after{
  width:136px!important;
  height:136px!important;
  left:-12px!important;
  right:auto!important;
  top:59%!important;
  opacity:.74!important;
  animation:v40DiscoLeft 6.8s ease-in-out infinite alternate!important;
}

/* Bold gold starbursts near the stage edges */
.shell:before,
.shell:after{
  z-index:-1!important;
  width:118px!important;
  height:118px!important;
  border-radius:50%!important;
  opacity:.84!important;
  filter:drop-shadow(0 0 12px rgba(255,211,112,.35))!important;
  border:0!important;
  box-shadow:none!important;
  background:
    linear-gradient(90deg,transparent 47%,rgba(255,225,142,.90) 49%,#fff 50%,rgba(255,225,142,.90) 51%,transparent 53%),
    linear-gradient(0deg,transparent 47%,rgba(255,205,91,.82) 49%,#fff 50%,rgba(255,205,91,.82) 51%,transparent 53%),
    linear-gradient(45deg,transparent 48%,rgba(255,225,153,.45) 49.5%,transparent 51.5%),
    linear-gradient(-45deg,transparent 48%,rgba(255,225,153,.45) 49.5%,transparent 51.5%),
    radial-gradient(circle,rgba(255,250,219,1) 0 3%,rgba(244,194,79,.72) 4% 11%,transparent 30%)!important;
  animation:v40GlitterFlare 2.9s ease-in-out infinite alternate!important;
}
.shell:before{left:-42px!important;top:220px!important}
.shell:after{right:-45px!important;top:700px!important;animation-delay:-1.3s!important}

/* Gold reflected haze behind the glass */
#lobbyView,
#gameView{
  background-image:
    radial-gradient(circle at 4% 16%,rgba(184,102,205,.08),transparent 27%),
    radial-gradient(circle at 96% 40%,rgba(255,205,103,.11),transparent 25%),
    radial-gradient(circle at 50% 72%,rgba(245,184,66,.05),transparent 22%)!important;
}

@keyframes v40StageSweep{
  0%{transform:rotate(-5deg) scale(1.03);opacity:.72}
  42%{opacity:1}
  100%{transform:rotate(6deg) scale(1.10);opacity:.88}
}
@keyframes v40Flash{
  0%{transform:translateX(-2.5%) rotate(-1deg);opacity:.50}
  48%{opacity:.82}
  100%{transform:translateX(2.5%) rotate(2deg);opacity:.64}
}
@keyframes v40DiscoRight{
  0%{transform:translate3d(0,0,0) rotate(-5deg) scale(1);background-position:0 0,0 0,0 0}
  100%{transform:translate3d(-12px,18px,0) rotate(8deg) scale(1.045);background-position:22px 0,22px 0,0 0}
}
@keyframes v40DiscoLeft{
  0%{transform:translate3d(0,0,0) rotate(5deg) scale(1);background-position:0 0,0 0,0 0}
  100%{transform:translate3d(12px,-16px,0) rotate(-8deg) scale(1.04);background-position:-18px 0,-18px 0,0 0}
}
@keyframes v40GlitterFlare{
  0%{transform:scale(.62) rotate(-9deg);opacity:.28}
  44%{opacity:.94}
  100%{transform:scale(1.12) rotate(9deg);opacity:.58}
}

@media(prefers-reduced-motion:reduce){
  body:before,
  body:after,
  .glam-sparkle-field::before,
  .glam-sparkle-field::after,
  .shell:before,
  .shell:after{
    animation:none!important;
  }
}