:root{--bg:#070b18;--panel:#0f1730;--panel2:#121e3c;--text:#f6f8ff;--muted:#94a2c4;--line:#26385f;--cyan:#49d8ff;--blue:#5d7dff;--purple:#a15cff;--pink:#ee55a8;--green:#55e6a5;--yellow:#ffd45c;--red:#ff6674;--shadow:0 24px 70px rgba(0,0,0,.38)}*{box-sizing:border-box}html,body{min-height:100%}body{margin:0;background:var(--bg);color:var(--text);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;overflow-x:hidden}.bg{position:fixed;inset:0;overflow:hidden;pointer-events:none}.grid{position:absolute;inset:-40%;background-image:linear-gradient(rgba(87,113,183,.08) 1px,transparent 1px),linear-gradient(90deg,rgba(87,113,183,.08) 1px,transparent 1px);background-size:44px 44px;transform:perspective(580px) rotateX(66deg) translateY(18%);transform-origin:center bottom;opacity:.45}.glow{position:absolute;width:55vw;height:55vw;border-radius:50%;filter:blur(90px);opacity:.17}.glow-a{background:#357dff;top:-25vw;left:-15vw}.glow-b{background:#b747ff;right:-20vw;bottom:-30vw}.float{position:absolute;font-size:2.3rem;opacity:.16;filter:drop-shadow(0 10px 20px #000);animation:drift 8s ease-in-out infinite}.f1{left:5%;top:12%}.f2{right:9%;top:18%;animation-delay:-2s}.f3{left:10%;bottom:11%;animation-delay:-4s}.f4{right:6%;bottom:18%;animation-delay:-6s}@keyframes drift{50%{transform:translateY(-18px) rotate(8deg)}}.app-shell{position:relative;z-index:1;width:min(1100px,100%);margin:0 auto;padding:28px 18px 60px}.screen{display:none}.screen.active{display:block}.home-screen{min-height:76vh;display:none;grid-template-columns:1.05fr .95fr;gap:42px;align-items:center;padding:52px 10px}.home-screen.active{display:grid}.eyebrow{font-size:.76rem;letter-spacing:.18em;font-weight:900;color:var(--cyan);text-transform:uppercase}.hero-copy h1{font-size:clamp(3.2rem,8vw,6.8rem);line-height:.84;margin:14px 0 24px;letter-spacing:-.06em}.hero-copy h1 span{display:block;color:transparent;-webkit-text-stroke:2px var(--cyan);text-shadow:0 0 40px rgba(73,216,255,.18)}.lead{font-size:1.14rem;line-height:1.65;color:#c4cee5;max-width:650px}.small-lead{font-size:1rem}.hero-badges{display:flex;flex-wrap:wrap;gap:8px;margin:23px 0}.hero-badges span,.category-chip,.host-chip,.count-badge,.score-chip,.question-number{padding:7px 10px;border:1px solid var(--line);border-radius:999px;background:rgba(15,25,50,.76);font-size:.78rem;font-weight:800}.actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:25px}.btn{border:0;border-radius:14px;padding:13px 17px;font:inherit;font-weight:900;cursor:pointer;transition:.18s ease}.btn:hover{transform:translateY(-1px);filter:brightness(1.08)}.btn:disabled{cursor:not-allowed;opacity:.42;transform:none;filter:none}.primary{background:linear-gradient(135deg,var(--cyan),#6f6cff 58%,#a65eff);color:#06101d;box-shadow:0 11px 28px rgba(75,130,255,.23)}.secondary{background:#111a32;color:#d9e5ff;border:1px solid #31466f}.small-btn{padding:10px 13px}.wide-btn{width:100%;margin-top:18px}.version{color:#657498;font-size:.76rem;margin-top:18px}.hero-art{position:relative;min-height:430px}.console-card{position:absolute;border:1px solid rgba(122,161,255,.28);background:linear-gradient(145deg,rgba(21,33,66,.92),rgba(9,15,32,.96));border-radius:24px;box-shadow:var(--shadow),inset 0 1px rgba(255,255,255,.05);backdrop-filter:blur(10px)}.console-card.big{width:72%;height:52%;left:11%;top:17%;padding:28px;transform:rotate(-5deg)}.console-card.big strong{display:block;font-size:2rem;margin:25px 0 18px}.mini{font-size:.7rem;letter-spacing:.16em;color:var(--cyan);font-weight:900}.bars{display:grid;gap:9px}.bars i{height:16px;border-radius:99px;background:linear-gradient(90deg,#49d8ff,#7168ff);opacity:.75}.bars i:nth-child(2){width:82%;background:linear-gradient(90deg,#ff5d9a,#a85bff)}.bars i:nth-child(3){width:68%;background:linear-gradient(90deg,#62e4a6,#45c8ff)}.bars i:nth-child(4){width:54%;background:linear-gradient(90deg,#ffd45c,#ff8f5c)}.console-card.small{width:145px;height:100px;display:flex;flex-direction:column;justify-content:center;align-items:center}.console-card.small span{color:var(--green);font-weight:1000;font-size:1.45rem}.console-card.top{right:4%;top:8%;transform:rotate(7deg)}.console-card.bottom{left:3%;bottom:8%;transform:rotate(5deg)}.controller{position:absolute;right:8%;bottom:3%;width:170px;height:105px;border-radius:55px 55px 42px 42px;background:linear-gradient(145deg,#18274a,#0d162c);border:1px solid #3b4e76;box-shadow:var(--shadow);transform:rotate(-7deg)}.controller i{position:absolute;width:13px;height:42px;background:#7184ad;left:38px;top:32px;border-radius:5px}.controller i:nth-child(2){transform:rotate(90deg)}.controller b{position:absolute;width:29px;height:29px;border-radius:50%;display:grid;place-items:center;background:#202f52;border:1px solid #52658e;right:35px;top:30px;color:#7de6ff}.controller b:last-child{right:14px;top:50px;color:#ff7fbb}.panel{width:min(760px,100%);margin:24px auto;padding:28px;border:1px solid rgba(98,126,188,.32);border-radius:26px;background:linear-gradient(145deg,rgba(13,21,43,.96),rgba(10,15,31,.97));box-shadow:var(--shadow),inset 0 1px rgba(255,255,255,.035);backdrop-filter:blur(18px)}.wide-panel{width:min(1000px,100%)}.narrow{width:min(580px,100%)}.back,.text-btn{background:none;border:0;color:#8fa0c6;font:inherit;font-weight:800;cursor:pointer;padding:4px 0}.back:hover,.text-btn:hover{color:white}.panel-head{display:flex;align-items:center;gap:14px;margin:20px 0}.panel-head h2{margin:4px 0;font-size:2rem}.icon-box{width:52px;height:52px;display:grid;place-items:center;border-radius:16px;background:linear-gradient(145deg,#17284e,#111b35);border:1px solid #30466f;font-size:1.45rem}.field{display:grid;gap:8px;color:#c6d1e9;font-weight:800;margin:15px 0}.field input{width:100%;background:#091126;color:white;border:1px solid #283c66;border-radius:13px;padding:13px 14px;font:inherit;outline:0}.field input:focus{border-color:var(--cyan);box-shadow:0 0 0 3px rgba(73,216,255,.08)}.setup-block{margin:22px 0;padding:18px;border:1px solid #263a61;border-radius:18px;background:rgba(13,22,44,.72)}.setup-block.compact{margin:0}.block-title,.section-line,.lobby-top,.game-top,.player-status-row{display:flex;justify-content:space-between;align-items:center;gap:12px}.block-title small{display:block;color:var(--muted);font-weight:500;margin-top:3px}.category-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:9px;margin-top:14px}.category-btn{display:grid;gap:5px;text-align:left;padding:13px;border-radius:14px;border:1px solid #2b3e65;background:#0d1730;color:#dce5f7;cursor:pointer}.category-btn span{font-size:1.35rem}.category-btn small{color:#7f8fb3}.category-btn.selected{border-color:#58d9ff;background:linear-gradient(145deg,#102849,#171b45);box-shadow:0 0 0 2px rgba(73,216,255,.07)}.setup-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.segmented{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;margin-top:12px}
.segmented.four{grid-template-columns:repeat(4,1fr)}
@media(max-width:560px){.segmented.four{grid-template-columns:repeat(2,1fr)}}.segmented button{padding:10px;border-radius:11px;border:1px solid #2c416c;background:#0b1530;color:#aebbd7;font-weight:900;cursor:pointer}.segmented button.selected{background:linear-gradient(135deg,#214e7b,#4b3d89);border-color:#5bcff1;color:white}.rule-note{display:flex;gap:12px;padding:15px;border-left:3px solid var(--green);background:rgba(40,108,88,.12);border-radius:10px}.rule-note p{margin:4px 0 0;color:#aab9d5}.msg{min-height:18px;color:#ff8791;font-weight:700}.room-code{font-size:3.2rem;font-weight:1000;letter-spacing:.18em;text-shadow:0 0 30px rgba(73,216,255,.24)}.settings-summary{display:flex;gap:8px;flex-wrap:wrap;margin:15px 0}.settings-summary span{font-size:.78rem;padding:7px 9px;border-radius:999px;background:#0b1730;border:1px solid #253a62;color:#b7c6e4}.settings-summary.centered{justify-content:center}.players-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:9px;margin:16px 0 22px}.player-card{padding:12px;border:1px solid #2a3e65;border-radius:14px;background:linear-gradient(145deg,#0d1730,#111e3b);overflow:hidden}.player-card b{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.player-card small{color:#7181a3}.player-card .dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--green);box-shadow:0 0 10px rgba(85,230,165,.55);margin-right:6px}.center{text-align:center}.muted{color:var(--muted)}.center-screen{text-align:center}.waiting-orb{width:115px;height:115px;border-radius:50%;display:grid;place-items:center;margin:36px auto 20px;font-size:2.3rem;background:radial-gradient(circle at 35% 28%,#304e8a,#101b38 64%,#080e20);border:1px solid #3b5584;box-shadow:0 0 45px rgba(74,132,255,.18);position:relative}.waiting-orb span{position:absolute;inset:-12px;border:1px dashed rgba(73,216,255,.38);border-radius:50%;animation:spin 8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.game-panel{margin-top:14px}.host-chip{margin-right:8px;color:#dbe8ff}.category-chip{color:#8fe8ff}.question-number{color:#9aabd0}.question-layout{display:grid;grid-template-columns:1fr 170px;gap:26px;align-items:start;margin-top:18px}.question-area h2,.player-question{font-size:clamp(1.5rem,4vw,2.35rem);line-height:1.23;margin:8px 0 20px}.choices{display:grid;grid-template-columns:1fr 1fr;gap:11px}.choice{min-height:76px;text-align:left;padding:16px;border:1px solid #2e426b;border-radius:16px;background:linear-gradient(145deg,#111d3b,#0d172f);color:#f5f7ff;font:inherit;font-weight:800;cursor:pointer;transition:.15s;display:flex;align-items:center;gap:11px}.choice .letter{flex:0 0 31px;width:31px;height:31px;border-radius:9px;display:grid;place-items:center;background:#1f3159;color:#8de9ff;font-size:.8rem}.choice:hover:not(:disabled){border-color:#59d9ff;transform:translateY(-1px)}.choice:disabled{cursor:default}.choice.selected{border-color:#a069ff;box-shadow:0 0 0 2px rgba(160,105,255,.11)}.choice.correct{border-color:var(--green);background:linear-gradient(145deg,#123c35,#102c2a)}.choice.wrong{border-color:var(--red);background:linear-gradient(145deg,#3a1a28,#281525)}.host-choices .choice{opacity:.92}.side-status{display:grid;gap:13px;position:sticky;top:18px}.timer-ring{width:130px;height:130px;border-radius:50%;display:grid;place-items:center;align-content:center;margin:auto;background:radial-gradient(circle,#0e1934 57%,transparent 58%),conic-gradient(var(--cyan) 0deg,#21365f 0deg);border:1px solid #314871;box-shadow:0 0 30px rgba(73,216,255,.13)}.timer-ring span{font-size:2.2rem;font-weight:1000}.timer-ring small{color:#7586ad;letter-spacing:.14em}.answered-box{padding:13px;border:1px solid #2b4068;border-radius:14px;background:#0a1430;text-align:center;color:#b7c5e0;font-weight:800}.timer-pill{padding:8px 10px;border-radius:999px;background:#121f3e;border:1px solid #30476f;font-weight:900}.player-game-panel{width:min(780px,100%)}.player-status-row{margin:16px 0}.score-chip{color:#8cf0bd}.player-choices{grid-template-columns:1fr 1fr}.answer-state{margin:16px 0;padding:16px;border:1px dashed #50688f;border-radius:14px;text-align:center;background:#0b1730}.answer-state span{display:block;color:#8fa1c5;margin-top:5px}.reveal-card{margin-top:18px;padding:18px;border-radius:16px;border:1px solid #335078;background:linear-gradient(145deg,#10213c,#111a33)}.reveal-card.success{border-color:#2f8869;background:linear-gradient(145deg,#11372d,#112a27)}.reveal-card.fail{border-color:#8a3d53;background:linear-gradient(145deg,#3a1b28,#281721)}.reveal-card strong{font-size:1.08rem}.hidden{display:none!important}.mini-scores{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-top:18px}.mini-score{padding:10px;border-radius:12px;background:#0c1730;border:1px solid #263b62;font-size:.82rem}.mini-score b{float:right;color:#8be9ff}.leaderboard-screen,.final-screen{text-align:center}.leaderboard-list{display:grid;gap:9px;margin:22px auto;max-width:700px}.rank-row{display:grid;grid-template-columns:45px 1fr auto;gap:12px;align-items:center;text-align:left;padding:13px 15px;border:1px solid #2b4067;border-radius:15px;background:linear-gradient(145deg,#0e1934,#111f3d)}.rank-row .rank{font-size:1.3rem;font-weight:1000;color:#7ee5ff}.rank-row .pts{font-weight:1000;color:#82edb8}.rank-row:first-child{border-color:#8c7532;background:linear-gradient(145deg,#332b16,#1e2032)}.rank-row:first-child .rank{color:#ffd75f}.auto-next{color:#7889ac;font-size:.85rem}.confetti{color:#ffd65d;letter-spacing:.3em;font-size:1.6rem}.final-screen h1{font-size:clamp(2rem,6vw,4rem)}.final-list .rank-row:first-child{transform:scale(1.02);box-shadow:0 12px 30px rgba(255,205,69,.08)}
@media(max-width:820px){.home-screen.active{grid-template-columns:1fr;padding-top:28px}.hero-art{min-height:300px}.console-card.big{height:58%}.category-grid{grid-template-columns:repeat(2,1fr)}.setup-grid{grid-template-columns:1fr}.players-grid{grid-template-columns:repeat(2,1fr)}.question-layout{grid-template-columns:1fr}.side-status{grid-template-columns:110px 1fr;position:static;align-items:center}.timer-ring{width:95px;height:95px}.timer-ring span{font-size:1.65rem}.mini-scores{grid-template-columns:repeat(2,1fr)}}
@media(max-width:560px){.app-shell{padding:12px 10px 40px}.panel{padding:19px;border-radius:20px}.hero-copy h1{font-size:3.7rem}.actions{display:grid}.hero-art{min-height:245px}.console-card.big{width:78%;left:5%;top:15%;padding:18px}.console-card.big strong{font-size:1.35rem}.console-card.small{width:115px;height:78px}.controller{transform:scale(.72) rotate(-7deg);transform-origin:right bottom}.category-grid{grid-template-columns:1fr 1fr}.choices,.player-choices{grid-template-columns:1fr}.choice{min-height:64px}.room-code{font-size:2.35rem}.lobby-top{align-items:flex-start}.players-grid{grid-template-columns:1fr 1fr}.question-area h2,.player-question{font-size:1.55rem}.side-status{grid-template-columns:90px 1fr}.timer-ring{width:82px;height:82px}.mini-scores{grid-template-columns:1fr 1fr}.rank-row{grid-template-columns:34px 1fr auto;padding:11px}.hero-badges{gap:6px}.hero-badges span{font-size:.7rem}}

.audio-credit{margin:5px 0 0;color:#657498;font-size:.76rem}.audio-credit a{color:#8496bd;text-decoration:none}.audio-credit a:hover,.audio-credit a:focus-visible{color:var(--cyan);text-decoration:underline}

/* v2.2 beta UX pass */
body{font-family:"Segoe UI",Roboto,"Noto Sans",Arial,sans-serif}.hero-lead{text-wrap:balance}.home-flow{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:17px;color:#8fa0c6;font-size:.83rem;font-weight:800}.home-flow b{color:var(--cyan)}.share-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}.invite-code{display:inline-flex;padding:8px 11px;margin:0 0 4px;border:1px solid #2f4d78;border-radius:999px;background:#0b1730;color:#9de9ff;font-size:.82rem;font-weight:900}.play-toggle{display:flex;align-items:flex-start;gap:11px;margin:18px 0;padding:14px 15px;border:1px solid #2a4169;border-radius:15px;background:#0b1730;cursor:pointer}.play-toggle input{position:absolute;opacity:0;pointer-events:none}.toggle-box{flex:0 0 24px;width:24px;height:24px;border-radius:8px;border:1px solid #3b5687;background:#091126;position:relative}.play-toggle input:checked+.toggle-box{background:linear-gradient(135deg,var(--cyan),#7168ff);border-color:#72ddff}.play-toggle input:checked+.toggle-box:after{content:"✓";position:absolute;inset:0;display:grid;place-items:center;color:#07101e;font-weight:1000}.play-toggle small{display:block;color:var(--muted);font-weight:500;line-height:1.45;margin-top:3px}.answer-phone{position:absolute;right:7%;bottom:0;width:150px;height:255px;border-radius:28px;background:linear-gradient(160deg,#18284a,#080f22);border:2px solid #3d527c;box-shadow:var(--shadow);transform:rotate(7deg);padding:23px 13px 16px}.phone-speaker{width:42px;height:5px;border-radius:99px;background:#4e618a;margin:0 auto 22px}.phone-title{text-align:center;color:#aebcda;font-size:.68rem;font-weight:900;margin-bottom:13px}.phone-answers{display:grid;grid-template-columns:1fr 1fr;gap:8px}.phone-answers i{height:62px;border-radius:14px;display:grid;place-items:center;font-style:normal;font-weight:1000;font-size:1.1rem;color:white;border:1px solid rgba(255,255,255,.16)}.phone-answers i:nth-child(1){background:#b83e5c}.phone-answers i:nth-child(2){background:#2d68b6}.phone-answers i:nth-child(3){background:#bd8d2f}.phone-answers i:nth-child(4){background:#33815c}.controller{display:none}.player-card-top{display:flex;align-items:center;justify-content:space-between;gap:8px}.remove-mini{width:24px;height:24px;border:0;border-radius:8px;background:#291827;color:#ff95a0;font:inherit;font-size:1.1rem;font-weight:900;cursor:pointer}.player-card .dot.offline{background:#66728f;box-shadow:none}.host-tools-row{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.icon-btn{width:40px;height:40px;border-radius:12px;border:1px solid #31486f;background:#101a34;color:white;font-size:1.05rem;cursor:pointer}.host-tools{display:flex;gap:9px;align-items:flex-start;flex-wrap:wrap;padding:13px;margin-bottom:14px;border:1px solid #2c4168;border-radius:15px;background:#0a1430}.danger{background:#321925;color:#ffc4ca;border:1px solid #75404d}.remove-player-box{width:100%;padding-top:4px}.remove-player-box>b{display:block;margin-bottom:8px;color:#cbd6eb;font-size:.82rem}.remove-player-list{display:flex;gap:7px;flex-wrap:wrap}.remove-player-btn{border:1px solid #51405b;border-radius:999px;background:#22182a;color:#e7cfe9;padding:7px 10px;font:inherit;font-size:.76rem;font-weight:800;cursor:pointer}.paused-banner{padding:10px 12px;margin-bottom:12px;border-radius:12px;border:1px solid #735f2d;background:#2d2716;color:#ffe08b;text-align:center;font-weight:900}.system-toast{position:fixed;z-index:20;left:50%;bottom:24px;transform:translateX(-50%);max-width:min(92vw,560px);padding:11px 15px;border-radius:12px;background:#111d39;border:1px solid #3a5687;box-shadow:var(--shadow);color:#eaf2ff;font-weight:800;text-align:center}.player-game-panel .host-chip{padding:7px 10px}.lobby-top{align-items:center}

@media(max-width:560px){
  .home-screen.active{padding:14px 4px 20px;min-height:auto}.hero-copy h1{font-size:3.05rem;margin:9px 0 15px}.hero-copy .lead{font-size:.98rem;line-height:1.48}.hero-badges{margin:15px 0 12px}.actions{margin-top:12px;gap:8px}.actions .btn{width:100%;padding:13px 14px}.player-action{order:1}.host-action{order:2}.home-flow{margin-top:13px;gap:6px;font-size:.75rem}.version{margin-top:12px}.hero-art{display:none}.share-actions{width:100%;justify-content:stretch}.share-actions .btn{flex:1}.lobby-top{flex-direction:column}.room-code{font-size:2.15rem}.play-toggle{padding:12px}.panel-head{margin:14px 0}.panel-head h2{font-size:1.7rem}.host-tools{display:grid}.host-tools.hidden{display:none!important}.system-toast{bottom:14px}}

/* v2.3 game feedback */
.category-grid{grid-template-columns:repeat(3,1fr)}
.category-selection{display:flex;align-items:flex-end;gap:3px;flex-direction:column}.selection-status{color:var(--cyan);font-size:.78rem;font-weight:900}.category-selection .text-btn{font-size:.75rem}
.sound-toggle{position:fixed;z-index:30;top:16px;right:16px;width:44px;height:44px;border-radius:14px;border:1px solid #31486f;background:rgba(16,26,52,.9);color:white;font-size:1.15rem;cursor:pointer;box-shadow:0 12px 30px rgba(0,0,0,.28);backdrop-filter:blur(10px)}
.tie-time{display:block;margin-top:4px;color:#93a7cc;font-size:.72rem;font-weight:700}
.question-history-row{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:13px;padding-top:12px;border-top:1px solid #23375d;color:#8395ba}.question-history-row small{font-size:.78rem}.question-history-row .text-btn{font-size:.78rem;white-space:nowrap}@media(max-width:560px){.question-history-row{align-items:flex-start;flex-direction:column}.question-history-row .text-btn{padding:5px 0}}
.sound-toggle:hover{border-color:var(--cyan);transform:translateY(-1px)}
.start-countdown{position:fixed;z-index:40;inset:0;display:grid;place-items:center;background:radial-gradient(circle,rgba(31,57,111,.72),rgba(5,9,20,.94));backdrop-filter:blur(8px);pointer-events:auto}
.start-countdown strong{font-size:clamp(5rem,24vw,13rem);line-height:1;font-weight:1000;letter-spacing:-.05em;color:white;text-shadow:0 0 24px rgba(73,216,255,.8),0 0 70px rgba(161,92,255,.65);animation:countdown-pop .72s ease both}
@keyframes countdown-pop{0%{opacity:.2;transform:scale(.55)}45%{opacity:1;transform:scale(1.12)}100%{opacity:.92;transform:scale(1)}}
.feedback-success{animation:success-pulse .62s ease}
.feedback-fail{animation:fail-shake .45s ease}
@keyframes success-pulse{35%{box-shadow:0 0 0 3px rgba(85,230,165,.65),0 0 65px rgba(85,230,165,.28),var(--shadow)}}
@keyframes fail-shake{20%,60%{transform:translateX(-5px)}40%,80%{transform:translateX(5px)}}
.reveal-card.success{animation:reveal-in .42s ease}
.reveal-card.fail{animation:reveal-in .42s ease}
@keyframes reveal-in{from{opacity:0;transform:translateY(10px) scale(.98)}to{opacity:1;transform:none}}
.confetti-burst{position:fixed;z-index:35;inset:0;overflow:hidden;pointer-events:none}
.confetti-burst i{position:absolute;left:var(--x);top:-24px;width:10px;height:18px;border-radius:3px;background:var(--color);opacity:.95;animation:confetti-fall var(--duration) cubic-bezier(.2,.65,.35,1) var(--delay) forwards}
@keyframes confetti-fall{to{transform:translate3d(var(--drift),110vh,0) rotate(var(--turns));opacity:.8}}
.final-screen.active .confetti{animation:celebrate 1.1s ease-in-out infinite alternate}
@keyframes celebrate{to{transform:scale(1.08);filter:drop-shadow(0 0 10px #ffd65d)}}
@media(prefers-reduced-motion:reduce){.start-countdown strong,.feedback-success,.feedback-fail,.reveal-card.success,.reveal-card.fail,.confetti-burst i,.final-screen.active .confetti{animation:none}}

/* v2.7 final sharing and feedback */
.final-actions{display:flex;justify-content:center;gap:9px;flex-wrap:wrap;margin:20px 0 24px}.final-actions a{text-decoration:none;display:inline-flex;align-items:center;justify-content:center}.feedback-card{max-width:620px;margin:0 auto 22px;padding:22px;border:1px solid #2d426b;border-radius:18px;background:linear-gradient(145deg,#0d1933,#111d39);text-align:left}.feedback-card h2{text-align:center;margin:0 0 15px;font-size:1.25rem}.feedback-vote{display:flex;justify-content:center;gap:10px}.feedback-choice.selected{border-color:var(--cyan);background:linear-gradient(135deg,#173c5c,#352b68);box-shadow:0 0 0 2px rgba(73,216,255,.09)}.feedback-comment{display:grid;gap:8px;margin-top:17px;color:#c6d1e9;font-weight:800}.feedback-comment textarea{width:100%;resize:vertical;background:#091126;color:white;border:1px solid #2b4069;border-radius:13px;padding:12px 13px;font:inherit;outline:0}.feedback-comment textarea:focus{border-color:var(--cyan);box-shadow:0 0 0 3px rgba(73,216,255,.08)}.feedback-card #submitFeedbackBtn{display:block;margin:13px auto 0}.feedback-message{min-height:18px;margin:10px 0 0;text-align:center;color:#ff9ba5;font-weight:700}.feedback-thanks{margin:0;text-align:center;color:var(--green);font-weight:900}.feedback-sent{padding:17px}.final-screen>#restartBtn{margin-top:3px}
@media(max-width:560px){.final-actions{display:grid;grid-template-columns:1fr 1fr}.final-actions .btn{width:100%}.feedback-card{padding:17px}.feedback-vote .btn{flex:1}}

/* v2.21.43 — personalized final-result sharing + optional home-screen shortcut */
.share-result-card{max-width:700px;margin:18px auto 10px;padding:17px 19px;border:1px solid rgba(73,216,255,.35);border-radius:17px;background:linear-gradient(145deg,rgba(18,48,78,.82),rgba(35,28,72,.72));text-align:left}
.share-result-card b{display:block;margin-bottom:7px;color:#8fe8ff;font-size:.9rem}
.share-result-card p{margin:0;color:#eef4ff;font-weight:800;line-height:1.55}
@media(max-width:560px){.share-result-card{padding:14px 15px}.final-actions{grid-template-columns:1fr}.final-actions .btn{min-height:46px}}

/* v2.9 premium 3D avatar sets */
.avatar-list{display:block}.avatar-tabs{display:flex;gap:6px;margin-bottom:10px}.avatar-tabs button{padding:7px 11px;border:1px solid #2d426b;border-radius:999px;background:#0b1530;color:#9cacca;font:inherit;font-size:.76rem;font-weight:900;cursor:pointer}.avatar-tabs button.selected{border-color:#55d9ff;background:#173454;color:#fff}.avatar-options{display:flex;gap:8px;flex-wrap:wrap}.avatar-option{width:58px;height:58px;padding:2px;border:1px solid #30466f;border-radius:18px;background:#0d1730;overflow:hidden;font-size:0;cursor:pointer;transition:transform .16s,border-color .16s,box-shadow .16s}.avatar-option img{display:block;width:100%;height:100%;border-radius:14px;object-fit:cover}.avatar-option:hover{transform:translateY(-2px);border-color:#6ddfff}.avatar-option.selected{border-color:var(--cyan);background:#122442;box-shadow:0 0 0 3px rgba(73,216,255,.14),0 8px 22px rgba(0,0,0,.28);transform:translateY(-2px) scale(1.06)}.player-avatar{display:inline-block;width:32px;height:32px;margin-right:6px;border-radius:10px;background:#172547;object-fit:cover;vertical-align:middle}.avatar-legacy{display:inline-grid;place-items:center;font-size:1.05rem}.inline-avatar{width:54px;height:54px;border:2px solid #49d8ff;border-radius:17px;object-fit:cover}.inline-avatar.avatar-legacy{display:inline-grid}.player-lobby-name,#playerLobbyName{display:flex;justify-content:center;align-items:center;gap:10px}.rank-avatar{display:block;flex:0 0 42px;width:42px;height:42px;border-radius:13px;background:#172547;border:1px solid #30466f;object-fit:cover}.rank-avatar.avatar-legacy{display:grid;font-size:1.35rem}.winner-avatar{width:126px;height:126px;padding:4px;overflow:hidden}.winner-avatar-image{display:block;width:100%;height:100%;border-radius:50%;object-fit:cover}
@media(max-width:560px){.avatar-options{gap:6px}.avatar-option{width:50px;height:50px}.winner-avatar{width:104px;height:104px}.rank-avatar{flex-basis:34px;width:34px;height:34px}}

/* v2.8 avatars, home music and winner reveal */
.avatar-picker{margin:14px 0 18px;padding:0;border:0}.avatar-picker legend{margin-bottom:9px;color:#c6d1e9;font-size:.88rem;font-weight:900}.avatar-list{display:flex;gap:8px;flex-wrap:wrap}.avatar-option{width:45px;height:45px;padding:0;border:1px solid #30466f;border-radius:14px;background:#0d1730;font-size:1.45rem;cursor:pointer;transition:transform .16s,border-color .16s,background .16s}.avatar-option:hover{transform:translateY(-2px);border-color:#6ddfff}.avatar-option.selected{border-color:var(--cyan);background:linear-gradient(145deg,#173557,#352a65);box-shadow:0 0 0 3px rgba(73,216,255,.1);transform:translateY(-2px) scale(1.06)}.player-avatar{display:inline-grid;place-items:center;width:28px;height:28px;margin-right:6px;border-radius:9px;background:#172547;font-size:1.05rem;vertical-align:middle}.rank-player{display:flex;align-items:center;gap:10px;min-width:0}.rank-avatar{display:grid;place-items:center;flex:0 0 38px;width:38px;height:38px;border-radius:12px;background:#172547;border:1px solid #30466f;font-size:1.35rem}.winner-showcase{isolation:isolate;position:relative;display:grid;justify-items:center;max-width:600px;margin:10px auto 20px;padding:26px 20px 20px;overflow:hidden;border-radius:26px;background:radial-gradient(circle at 50% 36%,rgba(255,212,92,.16),transparent 54%)}.winner-rays{position:absolute;z-index:-1;width:390px;height:390px;top:-112px;border-radius:50%;opacity:.34;background:repeating-conic-gradient(from 0deg,rgba(255,214,93,.8) 0deg 8deg,transparent 8deg 22deg)}.winner-avatar{position:relative;display:grid;place-items:center;width:116px;height:116px;margin-bottom:8px;border:2px solid #ffd45c;border-radius:50%;background:linear-gradient(145deg,#29325b,#151a37);box-shadow:0 0 0 9px rgba(255,212,92,.08),0 18px 45px rgba(0,0,0,.35);font-size:4.6rem}.winner-showcase h1{margin:5px 0 3px}.winner-label{margin:0;color:#ffd45c;font-size:.77rem;font-weight:1000;letter-spacing:.24em}.winner-enter .winner-rays{animation:winner-rays 7s linear infinite}.winner-enter .winner-avatar{animation:winner-pop .9s cubic-bezier(.2,.9,.25,1.25) both}.winner-enter h1{animation:winner-name .7s ease .28s both}.winner-enter .winner-label{animation:winner-name .7s ease .42s both}@keyframes winner-rays{to{transform:rotate(1turn)}}@keyframes winner-pop{0%{opacity:0;transform:translateY(25px) scale(.35) rotate(-14deg)}62%{opacity:1;transform:translateY(-7px) scale(1.14) rotate(5deg)}100%{transform:none}}@keyframes winner-name{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
@media(max-width:560px){.avatar-list{gap:6px}.avatar-option{width:41px;height:41px;font-size:1.3rem}.winner-showcase{padding:20px 10px 16px}.winner-avatar{width:96px;height:96px;font-size:3.8rem}.rank-avatar{flex-basis:32px;width:32px;height:32px;font-size:1.1rem}.rank-player{gap:7px}}
@media(prefers-reduced-motion:reduce){.winner-enter .winner-rays,.winner-enter .winner-avatar,.winner-enter h1,.winner-enter .winner-label{animation:none}}
@media(max-width:560px){.category-grid{grid-template-columns:1fr 1fr}.block-title{align-items:flex-start}.category-selection{max-width:52%;text-align:right}.selection-status{font-size:.72rem}.sound-toggle{top:10px;right:10px;width:40px;height:40px}.start-countdown strong{font-size:6rem}}

/* v2.4 mobile game flow and answer identity */
.game-meta-row{display:grid;grid-template-columns:minmax(0,1fr) auto auto auto;align-items:center;gap:8px;margin:10px 0 14px}
.game-meta-row .category-chip{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.game-meta-row .question-number,.game-meta-row .score-chip,.game-meta-row .timer-pill{white-space:nowrap}

/* v2.18 hero artwork */
.hero-art{min-height:470px;display:grid;place-items:center;isolation:isolate}
.hero-game-art{display:block;width:min(128%,620px);max-width:none;height:auto;filter:drop-shadow(0 28px 34px rgba(0,0,0,.34));transform:translateX(2%);animation:hero-game-float 6s ease-in-out infinite;will-change:transform}
@keyframes hero-game-float{50%{transform:translate(2%,-8px)}}
@media(max-width:820px){.hero-art{min-height:390px}.hero-game-art{width:min(88vw,520px);transform:none}@keyframes hero-game-float{50%{transform:translateY(-7px)}}}
@media(max-width:560px){.hero-art{display:none}}
@media(prefers-reduced-motion:reduce){.hero-game-art{animation:none}}
.reveal-card{margin:0 0 14px}
.choice.answer-0:not(.correct):not(.wrong){background:linear-gradient(145deg,#351827,#241426);border-color:#6f3048}
.choice.answer-1:not(.correct):not(.wrong){background:linear-gradient(145deg,#132b50,#111e3d);border-color:#315789}
.choice.answer-2:not(.correct):not(.wrong){background:linear-gradient(145deg,#3a2d16,#292218);border-color:#735a2a}
.choice.answer-3:not(.correct):not(.wrong){background:linear-gradient(145deg,#153426,#14271f);border-color:#2d684c}
.choice.answer-0 .letter{background:#a83d5a;color:white}.choice.answer-1 .letter{background:#2f66b1;color:white}.choice.answer-2 .letter{background:#a87825;color:white}.choice.answer-3 .letter{background:#2f7955;color:white}
.choice.selected{border-color:#f0f5ff!important;box-shadow:0 0 0 2px rgba(240,245,255,.2),0 8px 24px rgba(0,0,0,.2)}
.choice.correct{border-color:var(--green)!important;background:linear-gradient(145deg,#123c35,#102c2a)!important}.choice.wrong{border-color:var(--red)!important;background:linear-gradient(145deg,#3a1a28,#281525)!important}
.rank-row.winner{border-color:#8c7532;background:linear-gradient(145deg,#332b16,#1e2032)}
.rank-row.winner .rank{color:#ffd75f}
.final-list .rank-row.winner{transform:scale(1.02);box-shadow:0 12px 30px rgba(255,205,69,.08)}

@media(max-width:560px){
  .player-game-panel{margin-top:8px;padding:14px 12px 18px}
  .host-tools-row{margin-bottom:8px}
  .game-meta-row{grid-template-columns:minmax(0,1fr) auto auto auto;gap:4px;margin:6px 0 10px}
  .game-meta-row .category-chip,.game-meta-row .question-number,.game-meta-row .score-chip,.game-meta-row .timer-pill{padding:5px 6px;font-size:.66rem}
  .question-area h2,.player-question{font-size:1.34rem;line-height:1.2;margin:8px 0 12px}
  .reveal-card{padding:13px;margin:0 0 10px;font-size:.9rem}
  .reveal-card p{margin:7px 0;line-height:1.35}
  .player-choices{gap:8px}
  .choice{min-height:58px;padding:11px 12px;line-height:1.25}
  .answer-state{margin:10px 0;padding:11px}
}

/* v2.10 responsive 3D quiz characters */
.avatar-options{gap:10px}
.avatar-option{width:70px;height:70px;border-radius:20px;will-change:transform}
.avatar-option img{border-radius:16px;object-position:center 18%}
.avatar-option:hover{transform:translateY(-4px) rotate(-1deg)}
.avatar-option.selected{animation:avatar-selected 1.8s ease-in-out infinite}
.player-avatar{width:42px;height:42px;border-radius:13px;object-position:center 18%}
.player-card .player-avatar{animation:avatar-idle 3.6s ease-in-out infinite}
.player-card:nth-child(2n) .player-avatar{animation-delay:-1.2s}
.player-card:nth-child(3n) .player-avatar{animation-delay:-2.4s}
.inline-avatar{width:64px;height:64px;border-radius:19px;object-position:center 18%}
.rank-row{grid-template-columns:52px 1fr auto;overflow:hidden}
.rank-avatar{flex-basis:54px;width:54px;height:54px;border-radius:16px;object-position:center 18%;animation:rank-avatar-enter .48s cubic-bezier(.2,.8,.2,1) both}
.rank-row:nth-child(2) .rank-avatar{animation-delay:.06s}.rank-row:nth-child(3) .rank-avatar{animation-delay:.12s}.rank-row:nth-child(4) .rank-avatar{animation-delay:.18s}.rank-row:nth-child(n+5) .rank-avatar{animation-delay:.24s}
.winner-avatar.has-fullbody{width:220px;height:270px;padding:0;border:0;border-radius:0;background:transparent;box-shadow:none}
.winner-avatar-image.fullbody{width:100%;height:100%;border-radius:0;object-fit:contain;object-position:center bottom;filter:drop-shadow(0 18px 22px rgba(0,0,0,.45))}
.winner-enter .winner-avatar.has-fullbody{animation:winner-fullbody-enter 1s cubic-bezier(.16,.9,.25,1.18) both}
@keyframes avatar-selected{0%,100%{transform:translateY(-2px) scale(1.06)}50%{transform:translateY(-6px) scale(1.09)}}
@keyframes avatar-idle{0%,100%{transform:translateY(0) rotate(0)}50%{transform:translateY(-3px) rotate(1.5deg)}}
@keyframes rank-avatar-enter{from{opacity:0;transform:translateX(-12px) scale(.72) rotate(-6deg)}to{opacity:1;transform:none}}
@keyframes winner-fullbody-enter{0%{opacity:0;transform:translateY(45px) scale(.7) rotate(-4deg)}65%{opacity:1;transform:translateY(-8px) scale(1.04) rotate(1deg)}100%{transform:none}}

@media(max-width:560px){
  .avatar-options{gap:7px}
  .avatar-option{width:56px;height:56px;border-radius:17px}
  .avatar-option img{border-radius:13px}
  .player-avatar{width:35px;height:35px;border-radius:11px}
  .inline-avatar{width:52px;height:52px;border-radius:16px}
  .rank-row{grid-template-columns:35px minmax(0,1fr) auto;gap:8px;padding:10px}
  .rank-avatar{flex-basis:42px;width:42px;height:42px;border-radius:13px}
  .rank-player{gap:8px;min-width:0}.rank-player b{display:block;max-width:32vw;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .rank-row .pts{font-size:.78rem;white-space:nowrap}
  .winner-avatar.has-fullbody{width:154px;height:190px}
}

@media(max-width:370px){
  .avatar-option{width:50px;height:50px}
  .rank-avatar{flex-basis:38px;width:38px;height:38px}
  .rank-row .pts{font-size:.7rem}
}

@media(prefers-reduced-motion:reduce){
  .avatar-option.selected,.player-card .player-avatar,.rank-avatar,.winner-enter .winner-avatar.has-fullbody{animation:none}
}
.problem-card{max-width:620px;margin:0 auto 22px;padding:18px;border:1px solid #2d426b;border-radius:18px;background:#0a142b;text-align:left}.problem-card h2{margin:0 0 7px;text-align:center;font-size:1.08rem}.problem-card p{margin:7px 0 12px;text-align:center;color:#aebbd5;font-size:.9rem}.problem-card textarea{display:block;width:100%;resize:vertical;background:#091126;color:#fff;border:1px solid #2b4069;border-radius:13px;padding:11px;font:inherit;box-sizing:border-box}.problem-card button{display:block;margin:12px auto 0}

/* v2.14.0 — optional rounds mode */
.game-mode-picker{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:12px}.game-mode-card{display:grid;gap:5px;padding:16px;text-align:left;border:1px solid #30466f;border-radius:15px;background:#0d1730;color:#fff;font:inherit;cursor:pointer}.game-mode-card small{color:var(--muted);line-height:1.4}.game-mode-card.selected{border-color:var(--cyan);background:linear-gradient(145deg,#173557,#352a65);box-shadow:0 0 0 3px rgba(73,216,255,.1)}.round-category-screen{text-align:center}.round-picker-avatar{min-height:58px;display:grid;place-items:center;margin:16px auto 6px}.round-picker-avatar .inline-avatar{width:74px;height:74px}.round-category-grid{margin:22px 0}.round-category-grid button:disabled{cursor:default;opacity:.58}.round-category-grid button.selected{opacity:1}.round-category-screen>#rerollPlayerBtn{margin:4px auto 0}
@media(max-width:560px){.game-mode-picker{grid-template-columns:1fr}.round-category-grid{grid-template-columns:1fr 1fr}.round-category-grid .category-btn{min-height:92px;padding:10px}.round-category-grid .category-btn span{font-size:1.5rem}}

/* v2.15.0 pair mode */
.pair-mode-info{border:1px solid rgba(255,255,255,.12)}
.game-mode-picker{grid-template-columns:repeat(auto-fit,minmax(190px,1fr))}

.pair-role-banner{margin:16px 0 10px;padding:18px 18px 17px;border:3px solid #d8e2f0;border-radius:18px;background:#fff;color:#101a2d;box-shadow:0 10px 28px rgba(0,0,0,.22);font-weight:900;line-height:1.35;text-align:left}.pair-role-banner b{display:block;font-size:1.08rem;letter-spacing:.015em}.pair-role-banner .pair-step{display:inline-block;margin-bottom:7px;padding:4px 8px;border-radius:999px;background:#e8eef7;color:#46536a;font-size:.69rem;font-weight:1000;letter-spacing:.08em}.pair-role-banner.target{border-color:#55dca3;background:#f7fffb}.pair-role-banner.target .pair-step{background:#dff8ec;color:#176645}.pair-role-banner.guesser-wait{border-color:#f1c85a;background:#fffdf6}.pair-role-banner.guesser-wait .pair-step{background:#fff0bd;color:#73540b}.pair-role-banner.guesser-go{border-color:#49d8ff;background:#f5fcff;box-shadow:0 0 0 4px rgba(73,216,255,.13),0 10px 28px rgba(0,0,0,.22)}.pair-role-banner.guesser-go .pair-step{background:#dff7ff;color:#12607a}.pair-role-banner.spectator{border-color:#a8b7ce}.pair-role-banner small{display:block;margin-top:7px;color:#536077;font-weight:750;line-height:1.45}@media(max-width:560px){.pair-role-banner{padding:16px 15px}.pair-role-banner b{font-size:1rem}}

/* v2.20.1 — αναφορά ερώτησης */
.question-report-trigger{display:block;margin:16px auto 0;padding:7px 10px;border:0;background:transparent;color:#91a3c7;font-family:inherit;font-size:.78rem;font-weight:700;line-height:1.2;cursor:pointer;text-decoration:underline;text-underline-offset:3px}.question-report-trigger:hover,.question-report-trigger:focus-visible{color:#fff}.question-report-dialog{width:min(92vw,560px);padding:0;border:1px solid #38517f;border-radius:20px;background:#0c1730;color:#fff;box-shadow:0 24px 80px rgba(0,0,0,.58)}.question-report-dialog::backdrop{background:rgba(2,7,18,.78);backdrop-filter:blur(4px)}.question-report-dialog form{display:grid;gap:16px;padding:22px}.report-dialog-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px}.report-dialog-head h2{margin:4px 0 0}.dialog-close{flex:0 0 auto;width:36px;height:36px;border:1px solid #3a5078;border-radius:11px;background:#101f3d;color:#fff;font-family:inherit;font-size:1.5rem;font-weight:700;line-height:1;cursor:pointer}.reported-question-preview{margin:0;padding:13px 14px;border-left:3px solid var(--cyan);border-radius:9px;background:#091329;color:#dbe5f8;font-weight:750;line-height:1.45}.report-reasons{display:grid;gap:9px;margin:0;padding:0;border:0}.report-reasons legend{margin-bottom:8px;font-weight:900}.report-reasons label{display:flex;align-items:flex-start;gap:9px;color:#d6def0;line-height:1.35}.report-reasons input{margin-top:3px;accent-color:var(--cyan)}.report-comment{display:grid;gap:7px;font-weight:850}.report-comment span{color:#91a3c7;font-size:.82rem;font-weight:650}.report-comment textarea{width:100%;box-sizing:border-box;resize:vertical;padding:11px 12px;border:1px solid #30466f;border-radius:12px;background:#081126;color:#fff;font:inherit}.report-dialog-actions{display:flex;justify-content:flex-end;gap:9px}.report-dialog-actions .btn{width:auto}
@media(max-width:560px){.question-report-dialog form{padding:17px}.report-dialog-actions{display:grid;grid-template-columns:1fr 1fr}.report-dialog-actions .btn{width:100%;padding-inline:10px}}

/* v2.21.38 — new-question category badge */
.category-btn .new-category-badge{
  width:max-content;
  max-width:100%;
  margin-top:3px;
  padding:4px 7px;
  border:1px solid rgba(85,230,165,.42);
  border-radius:999px;
  background:rgba(40,120,88,.18);
  color:#8ff0bd;
  font-size:.64rem;
  font-weight:900;
  line-height:1.15;
  letter-spacing:.01em;
  white-space:nowrap;
}
@media(max-width:560px){
  .category-btn .new-category-badge{font-size:.58rem;padding:4px 6px}
}

/* v2.21.9 invite / in-app browser flow */
.invite-browser-notice{margin:10px 0 14px;padding:13px 14px;border:1px solid #3c557f;border-radius:14px;background:#0c1731;color:#eaf2ff}
.invite-browser-notice>b{display:block;margin-bottom:5px;color:#9de9ff}
.invite-browser-notice p{margin:0;color:#aab7d3;font-size:.82rem;line-height:1.45}
.invite-browser-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:11px}
.invite-browser-actions .btn{flex:1;min-width:150px}
.invite-own-game{display:block;margin:12px auto 0;border:0;background:none;color:#91a8d2;text-decoration:underline;text-underline-offset:3px;font:inherit;font-size:.82rem;cursor:pointer}
.invite-own-game:hover{color:#dbe9ff}
#playerLobby #leaveRoomBtn{margin-top:16px}
@media(max-width:560px){.invite-browser-actions{display:grid;grid-template-columns:1fr}.invite-browser-actions .btn{width:100%}}


/* v2.21.26 footer + host lobby close control */
.copyright-notice{
  width:100%;
  max-width:1100px;
  margin:22px auto 16px;
  padding:0 16px;
  text-align:center;
  color:#7f8fb3;
  font-size:.72rem;
  font-weight:600;
  letter-spacing:.025em;
  line-height:1.5;
}
#hostLobby{position:relative}
.lobby-close-btn{
  position:absolute;
  top:12px;
  right:12px;
  z-index:2;
  width:34px;
  height:34px;
  display:grid;
  place-items:center;
  border:1px solid #3a4765;
  border-radius:10px;
  background:rgba(12,20,40,.8);
  color:#9eacc7;
  font:700 1.35rem/1 system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  cursor:pointer;
  transition:background .15s ease,border-color .15s ease,color .15s ease,transform .15s ease;
}
.lobby-close-btn:hover{
  background:#321925;
  border-color:#75404d;
  color:#ffc4ca;
  transform:scale(1.04);
}
.lobby-close-btn:focus-visible{
  outline:2px solid var(--cyan);
  outline-offset:2px;
}
#hostLobby .lobby-top{padding-right:34px}
@media(max-width:560px){
  .copyright-notice{margin:16px auto 12px;font-size:.68rem}
  .lobby-close-btn{top:9px;right:9px;width:32px;height:32px}
  #hostLobby .lobby-top{padding-right:30px}
}

/* v2.21.29 version check + test mode */
.version-update-banner{
  position:fixed;z-index:60;left:50%;top:12px;transform:translateX(-50%);
  width:min(94vw,680px);display:flex;align-items:center;justify-content:space-between;gap:12px;
  padding:11px 13px;border:1px solid #5bcff1;border-radius:14px;
  background:rgba(9,17,38,.97);box-shadow:0 12px 35px rgba(0,0,0,.35);
  color:#eaf6ff;font-weight:800;
}
.version-update-actions{display:flex;gap:7px;flex-shrink:0}
.test-mode-badge{
  position:fixed;z-index:55;right:10px;bottom:10px;
  padding:5px 8px;border-radius:8px;border:1px solid #8b6b2d;
  background:rgba(45,39,22,.94);color:#ffe08b;font-size:.68rem;font-weight:900;letter-spacing:.06em;
}
@media(max-width:560px){
  .version-update-banner{align-items:stretch;flex-direction:column;top:8px}
  .version-update-actions{width:100%}
  .version-update-actions .btn{flex:1}
}

/* v2.21.31 — Pair mode redesign: simultaneous answers + shared result */
.pair-role-banner.pair-subject{
  border-color:#55dca3;
  background:linear-gradient(145deg,#f7fffb,#e9fff5);
  box-shadow:0 0 0 4px rgba(85,220,163,.12),0 10px 28px rgba(0,0,0,.22);
}
.pair-role-banner.pair-subject .pair-step{background:#dff8ec;color:#176645}
.pair-role-banner.pair-guesser{
  border-color:#a789ff;
  background:linear-gradient(145deg,#fbf9ff,#f1ecff);
  box-shadow:0 0 0 4px rgba(167,137,255,.13),0 10px 28px rgba(0,0,0,.22);
}
.pair-role-banner.pair-guesser .pair-step{background:#e9e0ff;color:#5d3caf}
.choice.pair-actual{border-color:#55dca3;box-shadow:inset 0 0 0 2px rgba(85,220,163,.2)}
.choice.pair-guess{border-color:#a789ff;box-shadow:inset 0 0 0 2px rgba(167,137,255,.2)}
.pair-reveal{text-align:center}
.pair-reveal-grid{
  display:grid;grid-template-columns:1fr auto 1fr;gap:12px;align-items:stretch;margin:16px 0;
}
.pair-reveal-person{
  display:grid;justify-items:center;align-content:start;gap:7px;padding:14px 10px;
  border:1px solid rgba(255,255,255,.13);border-radius:14px;background:rgba(4,12,26,.28);
}
.pair-reveal-avatar{width:58px;height:58px;object-fit:cover;border-radius:50%}
.pair-reveal-role{font-size:.66rem;font-weight:1000;letter-spacing:.09em;color:#aebbd7}
.pair-reveal-person b{font-size:.96rem}
.pair-reveal-person p{margin:2px 0 0;font-weight:900;color:#fff}
.pair-reveal-vs{align-self:center;font-size:1.7rem;font-weight:1000;color:#ffd75f}
.pair-final-avatars{display:flex;align-items:center;justify-content:center}
.pair-final-avatar{width:88px;height:88px;object-fit:cover;border-radius:50%;border:3px solid #28476e;background:#0c1730}
.pair-final-heart{margin:0 -8px;z-index:2;font-size:2rem}
.pair-final-card{
  max-width:540px;margin:18px auto 24px;padding:22px;border:1px solid #405b88;border-radius:20px;
  background:linear-gradient(145deg,#101f3d,#171a3e);text-align:center;
}
.pair-final-percent{font-size:clamp(2.7rem,10vw,5rem);font-weight:1000;line-height:1;color:#83ebff}
.pair-final-card strong{display:block;margin-top:10px;font-size:1.08rem}
.pair-final-card p{margin:8px 0;color:#dbe6fb;font-weight:800}
.pair-final-card small{color:#92a3c5}
@media(max-width:560px){
  .pair-reveal-grid{grid-template-columns:1fr 34px 1fr;gap:7px}
  .pair-reveal-person{padding:11px 7px}
  .pair-reveal-avatar{width:48px;height:48px}
  .pair-reveal-person p{font-size:.88rem}
  .pair-final-avatar{width:72px;height:72px}
}

/* v2.21.43 — optional home-screen shortcut */
.pwa-shortcut-box{display:flex;align-items:center;gap:11px;margin-top:13px;padding:11px 13px;border:1px solid rgba(73,216,255,.28);border-radius:14px;background:rgba(10,24,49,.72);max-width:620px}
.pwa-shortcut-box small{color:#9cabc9;line-height:1.4}
.pwa-shortcut-btn{flex:0 0 auto;border:0;background:transparent;color:#8de9ff;font:inherit;font-size:.84rem;font-weight:900;cursor:pointer;padding:3px 0;text-align:left}
.pwa-shortcut-btn:hover,.pwa-shortcut-btn:focus-visible{color:#fff;text-decoration:underline;text-underline-offset:3px}
.pwa-help-dialog{width:min(92vw,520px);padding:0;border:1px solid #38517f;border-radius:20px;background:#0c1730;color:#fff;box-shadow:0 24px 80px rgba(0,0,0,.58)}
.pwa-help-dialog::backdrop{background:rgba(2,7,18,.78);backdrop-filter:blur(4px)}
.pwa-help-content{display:grid;gap:14px;padding:22px}
.pwa-help-content p{margin:0;line-height:1.55}
.pwa-help-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px}
.pwa-help-head h2{margin:4px 0 0;font-size:1.35rem}
.pwa-help-content>.btn{justify-self:end}
@media(max-width:560px){
  .pwa-shortcut-box{display:grid;gap:4px;padding:10px 12px}
  .pwa-shortcut-box small{font-size:.75rem}
  .pwa-help-content{padding:18px}
  .pwa-help-content>.btn{width:100%}
}
