:root{--navy:#071a3d;--navy2:#0b2c67;--blue:#087cff;--cyan:#1fc8ff;--green:#54ef20;--green2:#1ebd16;--gold:#ffd43b;--orange:#ff9e16;--pink:#ff2d7d;--red:#ff334f;--white:#fff;--ink:#09204b;--soft:#eef8ff;--line:#b7ddff;--muted:#52709a}*{box-sizing:border-box}body{margin:0;color:var(--ink);font-family:Arial,Helvetica,sans-serif;min-height:100vh;background:radial-gradient(circle at 12% 8%,#fff8b8 0 8%,transparent 24%),radial-gradient(circle at 88% 10%,#d8f8ff 0 8%,transparent 25%),linear-gradient(145deg,#fefefe 0%,#eaf8ff 42%,#fff5cf 100%)}body:before{content:"";position:fixed;inset:0;pointer-events:none;opacity:.18;background-image:radial-gradient(circle,#087cff 1.2px,transparent 1.5px),radial-gradient(circle,#ff2d7d 1px,transparent 1.3px);background-size:38px 38px,52px 52px;background-position:0 0,18px 15px}.shell{position:relative;width:min(1180px,94%);margin:auto;padding:18px 0 50px}.brand{text-align:center;margin:2px 0 14px}.logo{display:block;width:min(560px,92%);height:auto;margin:0 auto;filter:drop-shadow(0 10px 12px #0a2d6a2b)}.brand p{font-weight:800;color:var(--navy2);margin:0}.nav{display:flex;flex-wrap:wrap;justify-content:center;gap:9px;margin:8px 0 18px}.card,.stat{background:linear-gradient(180deg,#ffffff 0%,#f4fbff 100%);border:2px solid #8fcfff;border-radius:20px;box-shadow:0 10px 26px #0a4d9d18}.card{padding:20px;margin:14px 0}.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px}.stat{padding:16px}.stat b{font-size:28px;display:block;margin-top:5px;color:var(--navy)}.label{font-size:12px;text-transform:uppercase;letter-spacing:1.4px;color:#3264a2;font-weight:900}.note{color:var(--muted);font-size:14px}.statusLive{color:#18a72b;font-weight:1000}.actions{display:flex;flex-wrap:wrap;gap:10px}button,.btn{border:0;border-radius:14px;min-height:50px;padding:12px 18px;font-size:16px;font-weight:1000;cursor:pointer;color:#fff;background:linear-gradient(180deg,#22a6ff,#0871e8);box-shadow:inset 0 2px #ffffff77,0 5px 0 #0452aa,0 8px 15px #087cff25;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;gap:7px}button:hover,.btn:hover{filter:brightness(1.06);transform:translateY(-1px)}button:disabled{opacity:.38;cursor:not-allowed;transform:none}.gold{background:linear-gradient(180deg,#ffe968,#ffb414);color:#442900;box-shadow:inset 0 2px #fff9,0 5px 0 #c97a00,0 8px 15px #ffb41435}.red{background:linear-gradient(180deg,#ff5b83,#ed174b);box-shadow:inset 0 2px #fff8,0 5px 0 #a90934,0 8px 15px #ff2d7d35}.green{background:linear-gradient(180deg,#8cff42,#25c91e);color:#063a0a;box-shadow:inset 0 2px #fff9,0 5px 0 #159514,0 8px 15px #54ef2035}.dark{background:linear-gradient(180deg,#174e9d,#0a2b67);box-shadow:inset 0 2px #ffffff55,0 5px 0 #061c46}.stage{text-align:center;padding:38px 20px;border:3px solid #1596ff;background:radial-gradient(circle at 50% 10%,#e8fbff,#b9e8ff 48%,#8bd4ff 100%);border-radius:24px;box-shadow:inset 0 0 0 5px #fff8,0 14px 30px #087cff25;position:relative;overflow:hidden}.stage:before,.stage:after{content:"★";position:absolute;color:#ffd43b;font-size:40px;filter:drop-shadow(0 2px #ff9e16)}.stage:before{left:4%;top:10%}.stage:after{right:4%;bottom:10%}.stage h2{font-size:clamp(30px,5vw,62px);margin:12px 0;color:var(--navy);text-shadow:0 3px #fff,0 5px #8cc9ff}.stage .kicker{color:#e48600;font-weight:1000;letter-spacing:2px}.stage .detail{color:#183e73;font-weight:700;font-size:clamp(16px,2vw,22px);max-width:850px;margin:10px auto;line-height:1.45}.twist{border-color:#ff2d7d;background:radial-gradient(circle at top,#fff2a6 0,#ffd5e6 42%,#ff9fc3 100%)}.twist .kicker{color:#d30048}.timer{font-size:clamp(58px,11vw,115px);font-weight:1000;color:#e12649;text-shadow:0 4px #fff,0 7px #ffbdc9;font-variant-numeric:tabular-nums}.field{margin:13px 0}.field label{display:block;font-weight:900;margin-bottom:6px;color:var(--navy)}input,select{width:100%;min-height:50px;border-radius:12px;border:2px solid #8fcfff;background:#fff;color:var(--navy);padding:10px 12px;font-size:16px;outline:none}input:focus,select:focus{border-color:#087cff;box-shadow:0 0 0 4px #087cff20}.switchrow{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:13px 0;border-bottom:1px solid #cbe8ff}.switchrow input{width:24px;min-height:auto;height:24px;accent-color:#25c91e}.list{display:grid;gap:8px}.person,.history{display:flex;justify-content:space-between;gap:10px;padding:10px 12px;background:#fff;border:2px solid #d1ebff;border-radius:12px}.score{color:#159514;font-weight:1000}.hidden{display:none!important}.choice{display:flex;gap:10px;align-items:flex-start;padding:12px;border:2px solid #c9e7ff;border-radius:12px;margin:8px 0;background:#fff}.choice input{width:22px;height:22px;min-height:auto;accent-color:#25c91e}.bigjoin{max-width:650px;margin:auto}.leader{font-size:20px}.leader .person:first-child{border-color:#ffbf16;background:#fff7c9}.joinHero{text-align:center;padding:8px 0 4px}.joinHero h2{font-size:clamp(26px,5vw,46px);color:#0b64c8;margin:4px 0}.joinHero p{font-size:18px;font-weight:800;color:#5b3c8c}.categoryRow{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin:16px 0}.cat{padding:12px 5px;text-align:center;border-radius:14px;background:#fff;border:2px solid #b9e1ff;font-weight:900}.cat span{display:block;font-size:28px}.adminHead{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.badge{padding:8px 12px;border-radius:999px;font-weight:1000;background:#dfffd2;color:#13750f;border:2px solid #75e85b}@media(max-width:600px){.shell{padding-top:8px}.card{padding:15px}.actions>*{flex:1 1 100%}.stage{padding:28px 12px}.categoryRow{grid-template-columns:repeat(2,1fr)}.logo{width:96%}}

.stage.selecting{background:radial-gradient(circle at 50% 15%,#fff8a8 0,#bfeaff 38%,#70c8ff 72%,#3ea5ff 100%);border-color:#ffd43b;box-shadow:inset 0 0 0 5px #fff9,0 0 35px #ffd43b88,0 16px 34px #087cff35}.stage.selecting h2{font-size:clamp(42px,8vw,92px);color:#0a2b67;text-transform:uppercase;letter-spacing:1px}.stage.selecting .kicker{color:#e12649;font-size:clamp(16px,2.2vw,25px);animation:fatePulse .7s ease-in-out infinite alternate}.stage.locked{border-color:#54ef20;box-shadow:inset 0 0 0 6px #fff,0 0 48px #54ef20,0 16px 34px #087cff35}.stage.locked h2{color:#159514;transform:scale(1.06)}@keyframes fatePulse{from{transform:scale(1);opacity:.78}to{transform:scale(1.06);opacity:1}}@media(prefers-reduced-motion:reduce){.stage.selecting .kicker{animation:none}}

/* V4 dramatic randomizer reels + celebration */
.reelWrap{max-width:820px;margin:16px auto 8px;position:relative;overflow:hidden;border:4px solid #ffd43b;border-radius:22px;background:linear-gradient(180deg,#08245a,#0b4ca3);box-shadow:inset 0 0 0 4px #fff5,0 0 28px #ffd43b88}
.reelWrap:before,.reelWrap:after{content:"";position:absolute;left:0;right:0;height:28%;z-index:3;pointer-events:none}.reelWrap:before{top:0;background:linear-gradient(#08245a,transparent)}.reelWrap:after{bottom:0;background:linear-gradient(transparent,#08245a)}
.reelLine{min-height:72px;display:flex;align-items:center;justify-content:center;padding:8px 18px;color:#b9ddff;font-weight:1000;font-size:clamp(24px,4vw,48px);text-transform:uppercase;opacity:.45;transition:transform .09s ease,opacity .09s ease,color .09s ease}
.reelLine.focus{min-height:92px;color:#fff34c;font-size:clamp(38px,6vw,72px);opacity:1;text-shadow:0 3px #ff8a00,0 0 18px #fff;transform:scale(1.04);border-top:2px solid #ffffff55;border-bottom:2px solid #ffffff55;background:#ffffff10}
.reelLine.fateFocus{color:#7cff3c}
.stage.celebrate{border-color:#54ef20;box-shadow:inset 0 0 0 6px #fff,0 0 55px #54ef20,0 16px 34px #087cff35}
.fxLayer{position:absolute;inset:0;overflow:hidden;pointer-events:none;z-index:20}
.confettiPiece{position:absolute;top:-12%;width:10px;height:20px;border-radius:3px;animation:confettiFall 2.5s linear forwards}
.spark{position:absolute;width:9px;height:9px;border-radius:50%;animation:sparkBurst .9s ease-out forwards;box-shadow:0 0 12px currentColor}
@keyframes confettiFall{to{transform:translate(var(--drift),1250px) rotate(900deg);opacity:.9}}
@keyframes sparkBurst{0%{transform:translate(0,0) scale(1);opacity:1}100%{transform:translate(var(--x),var(--y)) scale(.15);opacity:0}}
@media(prefers-reduced-motion:reduce){.confettiPiece,.spark{animation-duration:.01ms}.reelLine{transition:none}}
