:root{
  --navy:#05071b; --navy2:#0b1237; --navy3:#101a4f;
  --pink:#ff42ad; --hot:#ff2f85; --orange:#ff8a2f; --yellow:#ffd85a;
  --cyan:#2bdcff; --blue:#238cff; --green:#8df05b; --white:#fff8e9; --muted:#b7c8f5;
  --panel:rgba(8,13,42,.86); --border:rgba(94,155,255,.30);
  --shadow:0 14px 32px rgba(0,0,0,.34);
}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html,body{margin:0;width:100%;height:100%;overflow:hidden;background:#030516;color:var(--white);font-family:Arial,Helvetica,sans-serif}
button,input{font:inherit}button{cursor:pointer}
.app{width:100%;height:100%;display:flex;flex-direction:column;background:radial-gradient(circle at 50% -20%,rgba(90,61,184,.35),transparent 52%),linear-gradient(180deg,#06081e,#05071b 70%)}
.topbar{height:54px;flex:0 0 54px;display:grid;grid-template-columns:160px 1fr 405px;align-items:center;padding:6px 10px;border-bottom:1px solid rgba(93,143,255,.26);background:rgba(3,5,22,.92);position:relative;z-index:40}
.topbar-left,.topbar-right{display:flex;align-items:center;gap:7px}.topbar-right{justify-content:flex-end}.top-logo{height:38px;max-width:min(52vw,520px);object-fit:contain;justify-self:center;filter:drop-shadow(0 5px 10px rgba(0,0,0,.35))}
.nav-btn{height:38px;padding:0 13px;border-radius:12px;border:1px solid rgba(118,164,255,.30);background:linear-gradient(180deg,#243b83,#111a4d);color:#fff;font-family:Impact,'Arial Black',sans-serif;font-size:12px;letter-spacing:.055em;text-transform:uppercase;box-shadow:0 4px 0 #02040f,inset 0 1px 0 rgba(255,255,255,.12)}
.nav-btn:active{transform:translateY(2px);box-shadow:0 2px 0 #02040f}.icon-btn{min-width:62px}.nav-btn.off{color:#9aa6ca;filter:saturate(.4);background:linear-gradient(180deg,#172044,#0c112e)}
.viewport{position:relative;flex:1;min-height:0;overflow:hidden}.screen{display:none;position:absolute;inset:0}.screen.active{display:block}.scene-screen{background:#030516}.menu-screen{padding:10px;background:radial-gradient(circle at 50% 10%,rgba(66,54,174,.28),transparent 48%),linear-gradient(180deg,#0b123b,#06091f 78%)}
.menu-shell{height:100%;border:1px solid rgba(89,145,255,.23);border-radius:22px;padding:14px 18px 16px;overflow:hidden;background:linear-gradient(180deg,rgba(18,30,92,.56),rgba(5,9,31,.76));box-shadow:inset 0 1px 0 rgba(255,255,255,.03);position:relative}.menu-shell:before{content:'';position:absolute;inset:0;pointer-events:none;opacity:.18;background-image:linear-gradient(rgba(75,111,211,.25) 1px,transparent 1px),linear-gradient(90deg,rgba(75,111,211,.25) 1px,transparent 1px);background-size:32px 32px}
.screen-heading-row{height:52px;display:flex;align-items:flex-start;justify-content:space-between;gap:16px;position:relative;z-index:2}.screen-heading-row>span{font-family:'Arial Black',sans-serif;font-size:11px;letter-spacing:.08em;color:#d3e0ff;text-transform:uppercase;padding-top:8px}.screen-heading{margin:0;font-family:Impact,'Arial Black',sans-serif;font-size:38px;line-height:1;text-transform:uppercase;letter-spacing:.04em;background:linear-gradient(180deg,#ffe17a 0%,#ff8d31 32%,#ff4daa 66%,#b264ff 100%);-webkit-background-clip:text;background-clip:text;color:transparent;-webkit-text-stroke:.5px rgba(255,236,181,.38);text-shadow:2px 2px 0 rgba(36,226,255,.55)}
.arcade-btn{min-width:210px;height:58px;padding:0 22px;border:none;border-radius:15px;font-family:Impact,'Arial Black',sans-serif;font-size:18px;letter-spacing:.045em;text-transform:uppercase;color:#061027;box-shadow:0 7px 0 rgba(0,0,0,.44),0 12px 24px rgba(0,0,0,.28),inset 0 2px 0 rgba(255,255,255,.35);transition:transform .08s}.arcade-btn:active{transform:translateY(3px)}.arcade-btn.green{background:linear-gradient(180deg,#aef56a,#68cf45)}.arcade-btn.blue{background:linear-gradient(180deg,#63e6ff,#2799ff)}.arcade-btn.orange{background:linear-gradient(180deg,#ffe36f,#ff9c31)}.arcade-btn.pink{background:linear-gradient(180deg,#ff77cb,#ff3c97)}.arcade-btn.wide{width:100%;min-width:0}
.scene-canvas{position:absolute;inset:0;width:100%;height:100%;display:block}.scene-vignette{position:absolute;inset:0;pointer-events:none;background:radial-gradient(ellipse at 55% 48%,transparent 36%,rgba(3,5,20,.12) 72%,rgba(2,3,12,.48) 100%)}
.home-content{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:13px;padding:18px}.hero-logo{width:min(68vw,820px);max-height:31vh;object-fit:contain;filter:drop-shadow(0 14px 22px rgba(0,0,0,.52))}.fletcher-intro{display:flex;align-items:flex-end;gap:0;transform:translateY(-4px);max-width:min(850px,90vw)}.fletcher-card{width:150px;height:178px;border-radius:22px;overflow:hidden;border:2px solid rgba(255,80,173,.6);box-shadow:0 0 0 4px rgba(38,218,255,.13),0 16px 30px rgba(0,0,0,.4);z-index:2;transform:translateX(12px)}.fletcher-card img{width:100%;height:100%;object-fit:cover}.speech-panel{min-width:470px;padding:18px 22px 16px 35px;border-radius:22px;background:linear-gradient(180deg,rgba(5,13,50,.92),rgba(5,8,30,.95));border:2px solid rgba(255,65,181,.72);box-shadow:0 0 0 3px rgba(44,220,255,.12),var(--shadow)}.speech-kicker{font-family:Impact,'Arial Black',sans-serif;color:#ffe36f;font-size:26px;letter-spacing:.04em}.speech-copy{font-size:20px;font-weight:700;margin:5px 0 13px}.home-actions{display:flex;gap:10px;flex-wrap:wrap}.home-actions .arcade-btn{height:50px;font-size:15px;min-width:190px}
.player-count-grid{position:relative;z-index:2;width:min(720px,92%);height:calc(100% - 56px);margin:0 auto;display:grid;grid-template-columns:repeat(4,1fr);grid-template-rows:repeat(3,1fr);gap:12px;align-content:center;padding:20px 0 16px}.count-card{border:1.5px solid rgba(51,207,255,.45);border-radius:18px;background:linear-gradient(180deg,rgba(25,50,126,.92),rgba(7,16,54,.97));color:#fff8df;box-shadow:0 8px 0 #02071d,0 14px 28px rgba(0,0,0,.24),inset 0 1px 0 rgba(255,255,255,.1);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;transition:transform .08s,filter .12s}.count-card:hover{filter:brightness(1.12)}.count-card:active{transform:translateY(3px)}.count-num{font-family:Impact,'Arial Black',sans-serif;font-size:42px;line-height:1}.count-label{font-family:'Arial Black',sans-serif;font-size:10px;letter-spacing:.09em;color:#bee9ff;text-transform:uppercase}
.character-shell{display:flex;flex-direction:column}.character-grid{position:relative;z-index:2;flex:1;min-height:0;display:grid;grid-template-columns:repeat(7,minmax(0,1fr));grid-template-rows:repeat(3,minmax(0,1fr));gap:8px;padding:4px 0 1px}.character-card{min-width:0;min-height:0;border-radius:14px;overflow:hidden;border:1.5px solid rgba(71,157,255,.28);background:#0a123c;box-shadow:0 7px 16px rgba(0,0,0,.25);position:relative;padding:0;animation:bob 3.1s ease-in-out infinite}.character-card:nth-child(3n){animation-delay:.45s}.character-card:nth-child(4n){animation-delay:.8s}@keyframes bob{50%{transform:translateY(-2px)}}.character-card img{width:100%;height:100%;object-fit:contain;display:block;background:#091039}.character-card:after{content:'';position:absolute;inset:0;box-shadow:inset 0 0 0 1px rgba(255,255,255,.04);pointer-events:none}.character-card:hover,.character-card.selected{border-color:#ffe268;box-shadow:0 0 0 2px rgba(255,226,104,.42),0 0 24px rgba(255,74,169,.24),0 9px 18px rgba(0,0,0,.3);z-index:4}.character-card.taken{filter:saturate(.25) brightness(.46);pointer-events:none}.character-card.taken:before{content:'TAKEN';position:absolute;inset:0;display:grid;place-items:center;color:#fff;font-family:Impact,sans-serif;font-size:17px;letter-spacing:.08em;background:rgba(4,7,25,.18);z-index:2}
.name-shell{display:flex;flex-direction:column}.name-layout{position:relative;z-index:2;display:grid;grid-template-columns:minmax(170px,26%) 1fr;gap:22px;flex:1;min-height:0;align-items:center;padding:4px 2%}.name-avatar-wrap{width:min(100%,260px);aspect-ratio:.82;border-radius:22px;overflow:hidden;border:2px solid rgba(67,205,255,.55);box-shadow:0 0 0 4px rgba(255,66,173,.10),var(--shadow);justify-self:center}.name-avatar-wrap img{width:100%;height:100%;object-fit:cover}.keyboard-panel{padding:12px 14px 14px;border-radius:22px;background:linear-gradient(180deg,rgba(7,16,54,.9),rgba(4,9,33,.94));border:1px solid rgba(79,154,255,.28);box-shadow:var(--shadow)}.name-display{width:100%;height:64px;display:block;padding:0 16px;border-radius:13px;background:#07112f;border:2px solid rgba(47,204,255,.64);font-family:Impact,'Arial Black',sans-serif;font-size:38px;letter-spacing:.045em;color:#fff9e9;margin-bottom:10px;overflow:hidden;outline:none;text-transform:uppercase;caret-color:#2bdcff;box-shadow:inset 0 0 18px rgba(32,125,255,.08)}.name-display:focus{border-color:#ffd85a;box-shadow:0 0 0 3px rgba(255,216,90,.12),inset 0 0 18px rgba(32,125,255,.08)}.name-display::placeholder{color:rgba(183,200,245,.46);text-transform:uppercase}.keyboard{display:flex;flex-direction:column;gap:7px}.key-row{display:flex;justify-content:center;gap:7px}.key{height:47px;min-width:48px;padding:0 12px;border-radius:9px;border:1px solid rgba(147,181,255,.45);background:linear-gradient(180deg,#253762,#111a3b);color:#fff;font-family:Impact,'Arial Black',sans-serif;font-size:22px;box-shadow:0 4px 0 #030713}.key:active{transform:translateY(2px);box-shadow:0 2px 0 #030713}.keyboard-actions{display:flex;gap:8px;justify-content:flex-end;margin-top:8px}.key.special{min-width:76px}.key.space{min-width:112px}.key.confirm{background:linear-gradient(180deg,#74ee68,#31a83b);font-size:26px;min-width:96px}
.difficulty-grid{position:relative;z-index:2;height:calc(100% - 54px);display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;width:min(1120px,95%);margin:auto;align-items:center}.difficulty-card{height:min(460px,88%);border-radius:22px;overflow:hidden;padding:11px;border:2px solid var(--accent);background:linear-gradient(180deg,#0c1644,#070c2b);box-shadow:0 0 20px rgba(0,0,0,.22),var(--shadow);display:flex;flex-direction:column;gap:8px;color:#fff;position:relative}.difficulty-titlebar{font-family:Impact,'Arial Black',sans-serif;font-size:30px;line-height:1;text-align:center;text-transform:uppercase;letter-spacing:.035em;color:var(--accent);text-shadow:2px 2px 0 rgba(0,0,0,.32)}.difficulty-art{flex:1;min-height:0;border-radius:15px;overflow:hidden;background-size:cover;background-position:center;position:relative;border:1px solid rgba(255,255,255,.07)}.difficulty-art:before{content:'';position:absolute;inset:0;background:linear-gradient(180deg,rgba(6,9,29,.05),rgba(6,9,29,.06) 56%,rgba(5,8,26,.68) 100%)}.difficulty-sun{position:absolute;width:86px;height:86px;border-radius:50%;left:50%;transform:translate(-50%,-50%);background:radial-gradient(circle at 44% 38%,#fffbd0 0 14%,#ffe177 29%,#ffad53 64%,#ff6f76 100%);box-shadow:0 0 30px rgba(255,196,92,.7)}.difficulty-sun:after{content:'';position:absolute;inset:28% 8%;height:3px;background:rgba(255,72,156,.36);box-shadow:0 11px 0 rgba(255,72,156,.38),0 22px 0 rgba(255,72,156,.4),0 33px 0 rgba(255,72,156,.4)}.difficulty-info{padding:1px 8px 2px;text-align:center}.difficulty-range{font-family:Impact,'Arial Black',sans-serif;font-size:29px;color:#fff7de}.difficulty-copy{font-size:11px;color:#c9d4f4;margin-top:3px}.difficulty-card:active{transform:translateY(3px)}
.location-shell{display:flex;flex-direction:column}.location-carousel{position:relative;z-index:2;flex:1;min-height:0;display:grid;grid-template-columns:72px 1fr 72px;gap:13px;align-items:center}.carousel-arrow{height:86px;border-radius:18px;border:1px solid rgba(54,203,255,.35);background:linear-gradient(180deg,#1e3c8f,#0c184c);color:#33dbff;font-family:Impact,sans-serif;font-size:54px;line-height:1;box-shadow:0 6px 0 #02071c}.carousel-arrow:active{transform:translateY(2px)}.location-card{height:min(100%,540px);border-radius:24px;overflow:hidden;border:1px solid rgba(89,161,255,.35);box-shadow:var(--shadow);position:relative;background:#080d2d}.location-card-bg{position:absolute;inset:0;background-size:cover;background-position:center}.location-card-bg:after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,rgba(5,9,30,.88) 0%,rgba(5,9,30,.54) 39%,rgba(5,9,30,.08) 68%),linear-gradient(180deg,rgba(5,9,30,.08),rgba(5,9,30,.28))}.location-info{position:absolute;left:24px;bottom:24px;width:min(520px,52%);padding:17px 18px 16px;border-radius:18px;background:rgba(6,11,38,.82);border:1px solid rgba(94,162,255,.28);backdrop-filter:blur(9px);box-shadow:var(--shadow)}.location-name{font-family:Impact,'Arial Black',sans-serif;font-size:38px;line-height:.95;text-transform:uppercase;letter-spacing:.035em;background:linear-gradient(180deg,#ffe173,#ff922f 33%,#ff4dac 68%,#ae64ff);-webkit-background-clip:text;background-clip:text;color:transparent;text-shadow:2px 2px 0 rgba(32,222,255,.45);margin-bottom:7px}.location-place{font-family:'Arial Black',sans-serif;font-size:11px;letter-spacing:.08em;color:#d9e5ff;text-transform:uppercase}.location-blurb{font-size:13px;line-height:1.35;color:#fff9e8;margin:7px 0 11px}.location-lock{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:rgba(4,7,25,.56);backdrop-filter:blur(3px)}.lock-card{padding:16px 20px;border-radius:18px;background:rgba(5,10,36,.9);border:1px solid rgba(255,255,255,.13);text-align:center}.lock-card strong{display:block;font-family:Impact,sans-serif;font-size:26px;color:#ffe070}.lock-card span{font-size:12px;color:#d4def7}.carousel-dots{position:relative;z-index:2;height:18px;display:flex;justify-content:center;align-items:center;gap:7px}.carousel-dot{width:8px;height:8px;border-radius:50%;background:#35426e}.carousel-dot.active{background:#ffd85a;box-shadow:0 0 8px #ffd85a}
.scene-stage{position:absolute;inset:5px;overflow:hidden;border-radius:22px;border:1px solid rgba(79,159,255,.34);box-shadow:0 18px 42px rgba(0,0,0,.38);background:#040719}.game-hud{position:absolute;inset:0;pointer-events:none}.game-heading{position:absolute;left:17px;top:15px;font-family:Impact,'Arial Black',sans-serif;font-size:28px;text-transform:uppercase;letter-spacing:.035em;background:linear-gradient(180deg,#ffe075,#ff8f30 34%,#ff4fae 70%,#ae66ff);-webkit-background-clip:text;background-clip:text;color:transparent;text-shadow:2px 2px 0 rgba(34,223,255,.44)}.location-badge{position:absolute;right:15px;top:16px;padding:7px 10px;border-radius:999px;background:rgba(5,10,34,.68);border:1px solid rgba(255,255,255,.12);font-family:'Arial Black',sans-serif;font-size:9px;letter-spacing:.07em;text-transform:uppercase;color:#fff8df}.timer{position:absolute;left:50%;top:15px;transform:translateX(-50%);font-family:Impact,'Arial Black',sans-serif;font-size:72px;line-height:1;color:#ffe36b;text-shadow:2px 2px 0 #27d9ff,-2px -2px 0 rgba(255,64,172,.25),0 8px 24px rgba(0,0,0,.34);letter-spacing:.04em}.timer.hidden{display:none}.timer.tick{animation:timerTick .16s ease}@keyframes timerTick{50%{transform:translateX(-50%) scale(1.045)}}
.guess-panel{position:absolute;right:14px;bottom:14px;width:205px;padding:12px;border-radius:18px;background:linear-gradient(180deg,rgba(5,10,37,.92),rgba(4,8,29,.96));border:1px solid rgba(95,165,255,.30);box-shadow:var(--shadow);backdrop-filter:blur(8px);transition:transform .35s ease,opacity .35s ease}.guess-panel.hide{transform:translateX(125%);opacity:0;pointer-events:none}.guess-title{font-family:Impact,'Arial Black',sans-serif;text-align:center;font-size:20px;line-height:.95;color:#ffe066;letter-spacing:.03em;margin-bottom:9px}.time-steppers{display:flex;gap:8px;justify-content:center}.time-unit{width:76px;padding:4px 5px 6px;border-radius:12px;background:#07112f;border:1px solid rgba(82,161,255,.30)}.step-btn{width:100%;height:30px;border-radius:8px;border:1px solid rgba(104,164,255,.32);background:linear-gradient(180deg,#24458f,#12255c);color:#fff;font-size:17px;font-weight:900}.step-btn:active{transform:translateY(1px)}.time-value{height:40px;display:grid;place-items:center;font-family:Impact,'Arial Black',sans-serif;font-size:31px;color:#fff9e5}.time-label{text-align:center;font-family:'Arial Black',sans-serif;font-size:8px;letter-spacing:.09em;color:#b9cdfa}.guess-panel .arcade-btn{height:44px;font-size:14px;margin-top:8px}.guess-hint{text-align:center;color:#b9c9ed;font-size:8px;line-height:1.25;margin-top:8px;text-transform:uppercase;font-weight:800;letter-spacing:.04em}

.reaction-overlay{position:absolute;left:8%;right:20%;bottom:100px;display:flex;justify-content:center;gap:10px;z-index:22;pointer-events:none;opacity:0;transform:translateY(10px);transition:.25s}.reaction-overlay.show{opacity:1;transform:translateY(0)}.scene-reaction{max-width:120px;padding:7px 9px;border-radius:13px;background:#fff3cf;color:#25152c;font-family:'Arial Black',sans-serif;font-size:9px;line-height:1.15;text-align:center;box-shadow:0 8px 16px rgba(0,0,0,.28);border:2px solid rgba(255,255,255,.55)}.scene-reaction.win{background:#d4ff9d;border-color:#8df05b}.scene-reaction.perfect{background:#fff499;border-color:#ffe36a;box-shadow:0 0 24px rgba(146,255,94,.42),0 8px 16px rgba(0,0,0,.28)}

.player-strip{position:absolute;left:12px;right:230px;bottom:10px;height:105px;display:flex;align-items:flex-end;justify-content:center;gap:7px;pointer-events:none;transition:opacity .3s ease,transform .3s ease}.player-strip.hide{opacity:0;transform:translateY(22px)}.player-chip{width:70px;display:flex;flex-direction:column;align-items:center;gap:2px;transition:transform .2s,filter .2s}.player-chip.current{transform:translateY(-7px) scale(1.08)}.player-chip.dim{filter:brightness(.58) saturate(.7)}.player-avatar-card{width:52px;height:64px;border-radius:11px;overflow:hidden;border:2px solid rgba(255,255,255,.13);box-shadow:0 8px 14px rgba(0,0,0,.3)}.player-avatar-card img{width:100%;height:100%;object-fit:cover}.player-guess{min-width:48px;padding:3px 6px;border-radius:999px;background:rgba(4,8,27,.82);border:1px solid rgba(255,255,255,.13);font-family:Impact,sans-serif;font-size:12px;color:#fff8e3;text-align:center}.player-name{font-family:'Arial Black',sans-serif;font-size:7px;max-width:68px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-transform:uppercase;color:#fff8e0;text-shadow:0 2px 5px rgba(0,0,0,.5)}
.ready-overlay,.perfect-overlay{position:absolute;inset:0;display:none;place-items:center;z-index:30;pointer-events:none}.ready-overlay.show{display:grid;background:rgba(3,6,22,.24);backdrop-filter:blur(2px)}.ready-overlay>div{font-family:Impact,'Arial Black',sans-serif;font-size:110px;color:#ffe36b;text-shadow:4px 4px 0 #ff3c9e,-4px -4px 0 #2adfff,0 15px 35px rgba(0,0,0,.45);animation:readyPop .8s ease}@keyframes readyPop{0%{transform:scale(.45);opacity:0}65%{transform:scale(1.08)}100%{transform:scale(1);opacity:1}}.perfect-overlay.show{display:grid;background:radial-gradient(circle,rgba(114,255,86,.48),rgba(255,241,92,.14) 35%,rgba(4,8,28,.12) 66%);animation:flashScreen .22s steps(2) 5}@keyframes flashScreen{50%{opacity:.55}}.green-flash,.perfect-word{font-family:Impact,'Arial Black',sans-serif;text-align:center}.green-flash{font-size:52px;color:#a8ff73;text-shadow:0 0 24px rgba(126,255,76,.72),3px 3px 0 #07572c}.perfect-word{font-size:108px;color:#fff9b0;text-shadow:4px 4px 0 #ff3d9f,-4px -4px 0 #23e2ff,0 0 34px rgba(126,255,76,.75)}
.results-shell,.final-shell{display:flex;flex-direction:column}.results-shell:after,.final-shell:after{content:'';position:absolute;left:50%;top:54%;width:330px;height:330px;transform:translate(-50%,-50%);border-radius:50%;background:radial-gradient(circle at 50% 40%,rgba(255,230,106,.22),rgba(255,67,171,.12) 45%,rgba(43,220,255,.04) 68%,transparent 72%);box-shadow:0 0 80px rgba(255,73,175,.08);pointer-events:none}.round-results{position:relative;z-index:2;flex:1;min-height:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,280px));gap:12px;align-content:center;justify-content:center;width:min(1200px,94%);margin:0 auto}.round-results.many{grid-template-columns:repeat(4,minmax(0,1fr));width:min(1260px,97%)}.round-results.many .result-card{height:92px;grid-template-columns:42px 1fr;gap:6px;padding:6px}.round-results.many .result-avatar{width:42px;height:54px;border-radius:8px}.round-results.many .result-rank{font-size:10px}.round-results.many .result-name{font-size:14px}.round-results.many .result-score{font-size:22px}.round-results.many .result-detail{font-size:6px}.round-results.many .reaction{display:none}

.result-card{height:190px;animation:resultPop .42s cubic-bezier(.2,.8,.2,1) both;padding:11px;border-radius:18px;background:linear-gradient(180deg,rgba(16,30,87,.92),rgba(5,10,35,.96));border:1px solid rgba(83,154,255,.28);display:grid;grid-template-columns:74px 1fr;gap:10px;box-shadow:var(--shadow);position:relative}.result-card.winner{border-color:#ffe06a;box-shadow:0 0 0 2px rgba(255,224,106,.22),0 0 26px rgba(255,69,165,.18),var(--shadow)}@keyframes resultPop{from{opacity:0;transform:translateY(18px) scale(.96)}to{opacity:1;transform:none}}
.result-avatar{width:74px;height:92px;align-self:center;border-radius:13px;overflow:hidden;border:2px solid rgba(255,255,255,.13)}.result-avatar img{width:100%;height:100%;object-fit:cover}.result-copy{align-self:center}.result-rank{font-family:Impact,sans-serif;color:#ffe16d;font-size:17px}.result-name{font-family:Impact,'Arial Black',sans-serif;font-size:24px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.result-score{font-family:Impact,sans-serif;font-size:39px;color:#fff}.result-detail{font-size:10px;color:#bfcdf3;line-height:1.4}.reaction{margin-top:5px;font-size:11px;color:#ffeaca;font-weight:700}.results-actions{position:relative;z-index:2;height:58px;display:flex;justify-content:center;gap:12px;align-items:center}.results-actions .arcade-btn{height:48px;font-size:14px;min-width:180px}
.final-podium{position:relative;z-index:2;flex:1;min-height:0;display:flex;justify-content:center;align-items:flex-end;gap:10px;padding:8px 7% 0}.podium-place{width:210px;display:flex;animation:podiumRise .6s cubic-bezier(.2,.8,.2,1) both;flex-direction:column;align-items:center}@keyframes podiumRise{from{opacity:0;transform:translateY(40px)}to{opacity:1;transform:none}}
.podium-avatar{width:116px;height:146px;border-radius:17px;overflow:hidden;border:2px solid rgba(255,255,255,.13);box-shadow:var(--shadow);margin-bottom:8px}.podium-avatar img{width:100%;height:100%;object-fit:cover}.podium-block{width:100%;border-radius:18px 18px 0 0;padding:14px 10px;text-align:center;color:#081226;font-family:Impact,'Arial Black',sans-serif;box-shadow:0 12px 24px rgba(0,0,0,.28)}.podium-place.first .podium-block{height:210px;background:linear-gradient(180deg,#fff3a5,#ffd554 56%,#ffae2e)}.podium-place.second .podium-block{height:170px;background:linear-gradient(180deg,#e7f7ff,#94d3ff 60%,#56b1ff)}.podium-place.third .podium-block{height:135px;background:linear-gradient(180deg,#ffe0c6,#ffb77e 60%,#ff8a4d)}.podium-rank{font-size:42px}.podium-player{font-size:22px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.podium-points{font-size:30px}.other-players{position:relative;z-index:2;min-height:72px;display:flex;justify-content:center;gap:7px;align-items:center;overflow:hidden}.loser-chip{width:54px;display:flex;flex-direction:column;align-items:center;opacity:.72;position:relative}.loser-chip img{width:42px;height:52px;border-radius:9px;object-fit:cover;filter:saturate(.7) brightness(.74)}.loser-chip span{font-size:7px;font-weight:800;max-width:54px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.loser-chip:after{content:'💧';position:absolute;right:0;top:13px;font-size:12px;animation:tear 1.4s ease-in infinite}@keyframes tear{from{transform:translateY(0);opacity:1}to{transform:translateY(18px);opacity:0}}
.scores-shell{display:flex;flex-direction:column}.score-list{position:relative;z-index:2;width:min(820px,90%);margin:14px auto 0;display:flex;flex-direction:column;gap:7px;overflow:auto}.score-row{height:52px;display:grid;grid-template-columns:50px 1fr 110px 120px;align-items:center;padding:0 13px;border-radius:12px;background:linear-gradient(180deg,rgba(17,31,88,.82),rgba(7,12,41,.92));border:1px solid rgba(76,149,255,.2)}.score-rank{font-family:Impact,sans-serif;font-size:22px;color:#ffe06a}.score-name{font-weight:900}.score-score{font-family:Impact,sans-serif;font-size:24px}.score-date{font-size:10px;color:#b7c8ef;text-align:right}
.narrator{position:absolute;left:16px;bottom:16px;width:min(370px,44vw);min-height:92px;padding:10px 36px 10px 86px;border-radius:18px;background:rgba(4,9,34,.92);border:1px solid rgba(255,67,178,.55);box-shadow:0 12px 28px rgba(0,0,0,.38);z-index:55;transform:translateY(140%);opacity:0;transition:transform .32s ease,opacity .32s ease;pointer-events:none}.narrator.show{transform:translateY(0);opacity:1;pointer-events:auto}.narrator img{position:absolute;left:8px;bottom:8px;width:68px;height:84px;object-fit:cover;border-radius:12px;border:1px solid rgba(255,255,255,.12)}.narrator strong{display:block;font-family:Impact,sans-serif;color:#ffe06a;font-size:17px}.narrator span{display:block;font-size:11px;line-height:1.28;color:#fff7e7}.narrator button{position:absolute;right:7px;top:7px;width:24px;height:24px;border-radius:50%;border:none;background:#202b56;color:#fff;font-weight:900}.toast{position:absolute;left:50%;bottom:16px;transform:translate(-50%,20px);opacity:0;z-index:60;padding:9px 16px;border-radius:999px;background:rgba(4,9,31,.94);border:1px solid rgba(255,255,255,.13);font-size:11px;font-weight:800;transition:.22s}.toast.show{transform:translate(-50%,0);opacity:1}
.rotate-gate{display:none;position:fixed;inset:0;z-index:200;background:#05071b;align-items:center;justify-content:center}.rotate-card{width:min(360px,88vw);text-align:center;padding:24px;border-radius:22px;border:1px solid rgba(90,158,255,.3);background:#0b1237}.rotate-card img{width:100%;max-height:100px;object-fit:contain}.rotate-phone{font-size:52px;color:#2bdcff;margin:8px}.rotate-card strong,.rotate-card span{display:block}.rotate-card strong{font-family:Impact,sans-serif;font-size:28px;color:#ffe06b;text-transform:uppercase}.rotate-card span{font-size:13px;color:#cbd7f7;margin-top:5px}
@media (orientation:portrait) and (max-width:900px){.rotate-gate{display:flex}}
@media (max-width:1100px){
 .topbar{grid-template-columns:116px 1fr 330px}.top-logo{height:32px}.nav-btn{height:34px;padding:0 9px;font-size:10px}.icon-btn{min-width:54px}
 .screen-heading{font-size:30px}.screen-heading-row{height:43px}.player-count-grid{height:calc(100% - 47px);gap:9px;padding:10px 0}.count-card{border-radius:14px}.count-num{font-size:34px}.count-label{font-size:8px}
 .character-grid{gap:5px}.character-card{border-radius:10px}.name-layout{grid-template-columns:160px 1fr;gap:14px}.name-display{height:48px;font-size:28px}.key{height:34px;min-width:37px;padding:0 8px;font-size:16px}.keyboard{gap:5px}.key-row{gap:5px}
 .difficulty-grid{gap:10px}.difficulty-card{height:88%}.difficulty-titlebar{font-size:23px}.difficulty-range{font-size:22px}.difficulty-copy{font-size:9px}.difficulty-sun{width:64px;height:64px}
 .location-carousel{grid-template-columns:54px 1fr 54px;gap:8px}.carousel-arrow{height:68px;font-size:42px}.location-info{left:15px;bottom:15px;width:min(450px,57%);padding:12px 13px}.location-name{font-size:30px}.location-blurb{font-size:11px}.location-place{font-size:9px}.location-info .arcade-btn{height:42px;font-size:12px;min-width:160px}
.game-heading{font-size:22px}.timer{font-size:57px}.guess-panel{right:8px;bottom:8px;width:170px;padding:9px}.guess-title{font-size:16px}.time-unit{width:62px}.time-value{height:32px;font-size:25px}.step-btn{height:25px}.guess-panel .arcade-btn{height:37px;font-size:11px}.player-strip{right:190px;height:82px;gap:3px}.player-chip{width:56px}.player-avatar-card{width:42px;height:51px}.player-guess{font-size:10px}.player-name{font-size:6px}
 .ready-overlay>div{font-size:82px}.green-flash{font-size:40px}.perfect-word{font-size:80px}
 .result-card{height:150px;grid-template-columns:60px 1fr;padding:8px}.result-avatar{width:60px;height:76px}.result-name{font-size:18px}.result-score{font-size:31px}.result-detail,.reaction{font-size:8px}.final-podium{gap:6px}.podium-place{width:165px}.podium-avatar{width:84px;height:105px}.podium-place.first .podium-block{height:150px}.podium-place.second .podium-block{height:125px}.podium-place.third .podium-block{height:102px}.podium-rank{font-size:32px}.podium-player{font-size:16px}.podium-points{font-size:23px}
 .fletcher-card{width:112px;height:134px}.speech-panel{min-width:390px;padding:13px 15px 12px 27px}.speech-kicker{font-size:21px}.speech-copy{font-size:15px}.home-actions .arcade-btn{min-width:155px;height:40px;font-size:12px}.hero-logo{width:min(68vw,640px)}
}
@media (max-height:520px){
 .topbar{height:46px;flex-basis:46px}.top-logo{height:28px}.nav-btn{height:31px}.menu-screen{padding:6px}.menu-shell{border-radius:15px;padding:8px 11px 9px}.screen-heading-row{height:36px}.screen-heading{font-size:25px}.screen-heading-row>span{font-size:8px;padding-top:5px}
 .player-count-grid{height:calc(100% - 38px);padding:5px 0;gap:7px}.count-num{font-size:30px}.count-card{border-radius:11px}.count-label{font-size:7px}
 .character-grid{gap:4px}.character-card{border-radius:8px}.name-layout{grid-template-columns:128px 1fr;gap:10px;padding:0 1%}.name-avatar-wrap{border-radius:12px}.keyboard-panel{padding:7px 8px 8px}.name-display{height:36px;font-size:22px;margin-bottom:6px}.keyboard{gap:3px}.key-row{gap:3px}.key{height:27px;min-width:31px;padding:0 6px;font-size:13px;border-radius:6px}.keyboard-actions{margin-top:4px}.key.confirm{font-size:18px;min-width:70px}.key.special{min-width:58px}
 .difficulty-grid{height:calc(100% - 38px);gap:8px}.difficulty-card{height:92%;border-radius:14px}.difficulty-info{padding:6px 8px 8px}.difficulty-titlebar{font-size:20px}.difficulty-range{font-size:19px}.difficulty-copy{font-size:7px}.difficulty-sun{width:48px;height:48px}
 .location-card{height:100%;border-radius:15px}.location-carousel{grid-template-columns:42px 1fr 42px}.carousel-arrow{height:52px;border-radius:12px;font-size:34px}.location-info{left:10px;bottom:10px;padding:9px 10px;border-radius:12px}.location-name{font-size:24px}.location-blurb{font-size:9px;margin:4px 0 7px}.location-place{font-size:7px}.location-info .arcade-btn{height:33px;font-size:9px;min-width:125px}.carousel-dots{height:10px}
 .scene-stage{inset:2px;border-radius:14px}.game-heading{font-size:18px;left:10px;top:9px}.location-badge{top:10px;right:9px;font-size:6px;padding:5px 7px}.timer{font-size:48px;top:8px}.guess-panel{width:145px;right:6px;bottom:6px;padding:7px;border-radius:12px}.guess-title{font-size:13px;margin-bottom:5px}.time-unit{width:52px;padding:3px}.step-btn{height:20px;font-size:12px}.time-value{height:25px;font-size:20px}.time-label{font-size:6px}.guess-panel .arcade-btn{height:30px;margin-top:5px;font-size:9px}.guess-hint{font-size:6px;margin-top:4px}.player-strip{right:157px;bottom:5px;height:65px}.player-chip{width:44px}.player-avatar-card{width:33px;height:40px;border-radius:7px}.player-guess{min-width:36px;font-size:8px;padding:2px 4px}.player-name{font-size:5px}.ready-overlay>div{font-size:64px}.green-flash{font-size:30px}.perfect-word{font-size:60px}
 .round-results{gap:7px}.round-results.many .result-card{height:72px}.round-results.many .result-avatar{width:32px;height:40px}.round-results.many .result-score{font-size:17px}.round-results.many .result-name{font-size:10px}.result-card{height:113px;border-radius:11px;grid-template-columns:44px 1fr;gap:6px;padding:6px}.result-avatar{width:44px;height:55px}.result-rank{font-size:12px}.result-name{font-size:14px}.result-score{font-size:24px}.result-detail,.reaction{font-size:6px}.results-actions{height:40px}.results-actions .arcade-btn{height:35px;font-size:10px;min-width:130px}
 .podium-place{width:125px}.podium-avatar{width:62px;height:78px;margin-bottom:4px}.podium-place.first .podium-block{height:108px}.podium-place.second .podium-block{height:90px}.podium-place.third .podium-block{height:74px}.podium-block{padding:7px 5px}.podium-rank{font-size:24px}.podium-player{font-size:12px}.podium-points{font-size:17px}.other-players{min-height:48px}.loser-chip img{width:30px;height:36px}.loser-chip{width:40px}.results-actions{height:37px}
 .hero-logo{width:min(66vw,500px);max-height:22vh}.home-content{gap:7px;padding:8px}.fletcher-card{width:80px;height:96px;border-radius:12px}.speech-panel{min-width:320px;padding:9px 11px 8px 20px;border-radius:13px}.speech-kicker{font-size:17px}.speech-copy{font-size:12px;margin:3px 0 7px}.home-actions{gap:6px}.home-actions .arcade-btn{height:32px;min-width:135px;font-size:9px;border-radius:9px}.narrator{width:min(320px,54vw);min-height:72px;padding:8px 28px 8px 65px;left:8px;bottom:8px}.narrator img{width:50px;height:62px}.narrator strong{font-size:13px}.narrator span{font-size:8px}
}


/* === V15 character stage overhaul === */

.difficulty-grid{width:min(1240px,96%);gap:22px}
.difficulty-card{padding:12px 12px 14px}
.difficulty-art{min-height:255px;display:flex;align-items:flex-end;justify-content:flex-start;overflow:hidden}
.difficulty-art::before{background:linear-gradient(180deg,rgba(6,9,29,.10),rgba(6,9,29,.08) 46%,rgba(5,8,26,.72) 100%)}
.difficulty-art::after{content:'';position:absolute;inset:0;pointer-events:none}
.difficulty-art-easy{filter:brightness(.58) saturate(.7)}
.difficulty-art-easy::after{background:linear-gradient(180deg,rgba(22,33,90,.62),rgba(79,46,132,.26) 46%,rgba(6,12,34,.18) 72%,rgba(7,9,26,.55) 100%)}
.difficulty-art-medium{filter:brightness(.92) saturate(1.08)}
.difficulty-art-medium::after{background:linear-gradient(180deg,rgba(57,43,131,.22),rgba(255,112,70,.14) 48%,rgba(7,9,26,.40) 100%)}
.difficulty-art-aggressive{filter:brightness(1.12) saturate(1.14)}
.difficulty-art-aggressive::after{background:linear-gradient(180deg,rgba(255,243,162,.26),rgba(255,193,97,.12) 52%,rgba(7,9,26,.36) 100%)}
.difficulty-sky-copy{position:relative;z-index:1;margin:0 0 10px 10px;padding:7px 11px;border-radius:999px;background:rgba(3,8,24,.72);border:1px solid rgba(255,255,255,.14);font:800 10px/1 Arial,sans-serif;letter-spacing:.12em;color:#fff8e7;text-transform:uppercase;backdrop-filter:blur(5px)}
.difficulty-copy{font-size:12px;line-height:1.35;margin-top:5px}
.difficulty-list{display:flex;flex-wrap:wrap;justify-content:center;gap:7px;margin-top:10px}
.difficulty-list span{padding:6px 10px;border-radius:999px;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.09);font:700 10px/1 Arial,sans-serif;letter-spacing:.06em;color:#eff5ff;text-transform:uppercase}

.player-strip{left:22px;right:210px;bottom:0;height:33%;display:flex;align-items:flex-end;justify-content:center;gap:12px;padding-bottom:8px;pointer-events:none;transition:opacity .3s ease,transform .3s ease}
.player-strip.hide{opacity:0;transform:translateY(22px)}
.player-strip.many{gap:6px}
.player-chip{width:min(10vw,118px);display:flex;flex-direction:column;align-items:center;justify-content:flex-end;gap:4px;position:relative;transform-origin:bottom center;transition:transform .2s,filter .2s,opacity .2s}
.player-chip.many{width:min(7.4vw,84px)}
.player-chip.current{transform:translateY(-7px) scale(1.08)}
.player-chip.locked{opacity:.92}
.player-chip.dim{filter:brightness(.62) saturate(.7);opacity:.7}
.player-chip.watching{animation:avatarSway 2.8s ease-in-out infinite}
.player-chip:nth-child(2n).watching{animation-delay:.35s}.player-chip:nth-child(3n).watching{animation-delay:.8s}
@keyframes avatarSway{0%,100%{transform:translateY(0)}50%{transform:translateY(-6px)}}
.player-avatar-card{width:100%;height:auto;border:none;box-shadow:none;background:none;overflow:visible;display:flex;justify-content:center;align-items:flex-end}
.player-avatar-card img{width:100%;max-height:26vh;object-fit:contain;display:block;filter:drop-shadow(0 10px 18px rgba(0,0,0,.42))}
.player-chip.current .player-avatar-card img{transform:translateY(-3px) scale(1.06)}
.player-guess{order:-1;min-width:60px;padding:6px 10px;border-radius:999px;background:rgba(4,8,27,.86);border:1px solid rgba(255,255,255,.16);font-family:Impact,sans-serif;font-size:15px;color:#fff8e3;text-align:center;box-shadow:0 8px 18px rgba(0,0,0,.28)}
.player-chip.many .player-guess{min-width:44px;padding:4px 7px;font-size:11px}
.player-name{font-family:'Arial Black',sans-serif;font-size:10px;max-width:118px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-transform:uppercase;color:#fff8e0;text-shadow:0 2px 5px rgba(0,0,0,.5);background:rgba(4,8,27,.54);padding:2px 8px;border-radius:999px;border:1px solid rgba(255,255,255,.10)}
.player-chip.many .player-name{font-size:8px;max-width:84px;padding:2px 6px}

.round-results{width:min(1380px,96%);gap:20px;align-content:center;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));padding:6px 0 8px}
.round-results.large{grid-template-columns:repeat(auto-fit,minmax(280px,1fr))}
.round-results.many{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.result-card{min-height:320px;height:auto;padding:0;background:transparent;border:none;box-shadow:none;display:grid;grid-template-rows:1fr auto;gap:8px;align-items:end;justify-items:center;text-align:center}
.result-card.winner{filter:drop-shadow(0 0 22px rgba(255,230,106,.22))}
.result-stage{position:relative;display:flex;align-items:flex-end;justify-content:center;width:100%;min-height:210px}
.result-avatar{width:min(18vw,220px);height:min(34vh,340px);border:none;border-radius:0;background:none;box-shadow:none;overflow:visible}
.result-avatar img{width:100%;height:100%;object-fit:contain;filter:drop-shadow(0 14px 24px rgba(0,0,0,.45))}
.result-card.winner .result-avatar img{transform:scale(1.04)}
.result-mood{position:absolute;top:0;display:flex;align-items:center;gap:7px;padding:8px 12px;border-radius:999px;background:rgba(5,10,36,.82);border:1px solid rgba(255,255,255,.15);font:900 12px/1 Arial,sans-serif;letter-spacing:.09em;text-transform:uppercase;color:#fff7e5;box-shadow:0 8px 16px rgba(0,0,0,.22)}
.result-mood span{font-size:18px;line-height:1}
.result-mood.winner{background:rgba(255,224,106,.18);border-color:rgba(255,224,106,.55)}
.result-mood.perfect{background:rgba(164,255,110,.18);border-color:rgba(164,255,110,.55)}
.result-mood.close{background:rgba(255,166,79,.18);border-color:rgba(255,166,79,.55)}
.result-copy{width:min(100%,320px);padding:14px 16px 16px;border-radius:18px;background:linear-gradient(180deg,rgba(13,23,68,.90),rgba(6,10,32,.94));border:1px solid rgba(82,148,255,.24);box-shadow:0 10px 24px rgba(0,0,0,.24)}
.result-rank{font-family:Impact,sans-serif;font-size:17px;color:#ffe06a;letter-spacing:.06em}.result-name{font-family:Impact,sans-serif;font-size:28px;line-height:1;color:#fff8e8;margin-top:4px}.result-score{font-family:Impact,sans-serif;font-size:46px;line-height:1;color:#fff8dd;margin-top:6px}.result-detail{font-size:11px;font-weight:900;letter-spacing:.07em;color:#b9caef;margin-top:7px}.reaction{font-size:12px;line-height:1.35;color:#fff5dd;margin-top:8px}
.round-results.many .result-card{min-height:210px}.round-results.many .result-avatar{width:min(12vw,140px);height:min(20vh,200px)}.round-results.many .result-copy{padding:10px 10px 12px}.round-results.many .result-name{font-size:18px}.round-results.many .result-score{font-size:28px}.round-results.many .result-detail,.round-results.many .reaction{font-size:9px}.round-results.many .result-mood{padding:5px 8px;font-size:9px}

.final-podium{gap:18px;padding:10px 4% 0;align-items:flex-end}
.podium-place{width:min(24vw,280px)}
.podium-avatar{width:min(16vw,180px);height:min(30vh,300px);margin-bottom:8px;border:none;border-radius:0;background:none;box-shadow:none;overflow:visible}
.podium-avatar img{width:100%;height:100%;object-fit:contain;filter:drop-shadow(0 14px 24px rgba(0,0,0,.45))}
.podium-block{width:100%;padding:14px 12px;border-radius:18px 18px 10px 10px}
.podium-place.first .podium-block{height:200px}.podium-place.second .podium-block{height:168px}.podium-place.third .podium-block{height:146px}
.podium-rank{font-size:48px}.podium-player{font-size:24px}.podium-points{font-size:34px}
.other-players{min-height:94px;gap:12px;flex-wrap:wrap}.loser-chip{width:82px;display:flex;flex-direction:column;align-items:center;opacity:.82;position:relative}.loser-chip img{width:64px;height:78px;border-radius:0;object-fit:contain;filter:drop-shadow(0 8px 14px rgba(0,0,0,.34))}.loser-chip span{font-size:9px;font-weight:900;max-width:78px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.loser-chip em{font-style:normal;font-size:9px;color:#b7c8ef}.loser-chip:after{display:none}

@media (max-width:1100px){
  .difficulty-grid{gap:12px}.difficulty-art{min-height:200px}.difficulty-copy{font-size:10px}.difficulty-list span{font-size:8px;padding:5px 8px}
  .player-strip{right:180px;height:28%;gap:8px}.player-chip{width:min(9.6vw,88px)}.player-chip.many{width:min(7vw,70px)}.player-avatar-card img{max-height:22vh}.player-guess{font-size:12px;min-width:52px;padding:5px 8px}.player-name{font-size:8px;max-width:88px}
  .round-results{gap:14px}.result-card{min-height:270px}.result-avatar{width:min(17vw,170px);height:min(28vh,250px)}.result-name{font-size:22px}.result-score{font-size:38px}.result-detail,.reaction{font-size:10px}
  .final-podium{gap:10px}.podium-place{width:min(26vw,210px)}.podium-avatar{width:min(15vw,120px);height:min(24vh,180px)}.podium-place.first .podium-block{height:160px}.podium-place.second .podium-block{height:138px}.podium-place.third .podium-block{height:120px}.podium-rank{font-size:36px}.podium-player{font-size:18px}.podium-points{font-size:26px}
}
@media (max-height:520px){
  .difficulty-art{min-height:128px}.difficulty-copy{font-size:8px}.difficulty-list{gap:4px;margin-top:6px}.difficulty-list span{font-size:7px;padding:4px 6px}
  .player-strip{right:150px;height:26%;gap:4px;padding-bottom:2px}.player-chip{width:min(8.5vw,70px)}.player-chip.many{width:min(6vw,52px)}.player-avatar-card img{max-height:18vh}.player-guess{font-size:9px;min-width:36px;padding:3px 6px}.player-name{font-size:6px;max-width:60px;padding:2px 5px}
  .result-card{min-height:170px}.result-stage{min-height:110px}.result-avatar{width:min(13vw,96px);height:min(16vh,120px)}.result-mood{padding:4px 6px;font-size:8px}.result-mood span{font-size:12px}.result-copy{padding:8px 9px 10px}.result-rank{font-size:11px}.result-name{font-size:16px}.result-score{font-size:26px}.result-detail,.reaction{font-size:7px}
  .podium-place{width:135px}.podium-avatar{width:70px;height:92px}.podium-place.first .podium-block{height:114px}.podium-place.second .podium-block{height:96px}.podium-place.third .podium-block{height:82px}.podium-rank{font-size:24px}.podium-player{font-size:12px}.podium-points{font-size:18px}.other-players{min-height:54px;gap:6px}.loser-chip{width:48px}.loser-chip img{width:34px;height:44px}.loser-chip span,.loser-chip em{font-size:6px}
}


/* === V16 font + heading polish === */

:root{--arcade-font:Impact,'Arial Black','Trebuchet MS',sans-serif}
.screen-heading{
  font-family:var(--arcade-font);
  font-size:56px;
  letter-spacing:.045em;
  line-height:.95;
  background:linear-gradient(180deg,#fff1a5 0%,#ffcf57 16%,#ff8f35 42%,#ff4ea9 71%,#8f6dff 100%);
  -webkit-background-clip:text;background-clip:text;color:transparent;
  -webkit-text-stroke:1.2px rgba(255,240,190,.42);
  text-shadow:
    0 2px 0 rgba(38,220,255,.55),
    0 4px 0 rgba(30,122,255,.32),
    0 8px 18px rgba(0,0,0,.34),
    3px 3px 0 rgba(24,12,63,.72);
  filter:drop-shadow(0 8px 14px rgba(0,0,0,.24));
}
.screen-heading-row{height:74px;align-items:flex-start}
.screen-heading-row>span{
  font-family:var(--arcade-font);
  font-size:12px;
  letter-spacing:.12em;
  color:#e7f3ff;
  text-shadow:0 2px 8px rgba(0,0,0,.4);
  padding-top:18px;
}
.game-heading{
  left:16px;top:14px;
  font-family:var(--arcade-font);
  font-size:44px;
  letter-spacing:.04em;
  line-height:.94;
  background:linear-gradient(180deg,#fff0a2 0%,#ffc957 18%,#ff9133 45%,#ff57b3 75%,#906fff 100%);
  -webkit-background-clip:text;background-clip:text;color:transparent;
  -webkit-text-stroke:1px rgba(255,241,208,.40);
  text-shadow:
    0 3px 0 rgba(33,220,255,.55),
    0 6px 0 rgba(24,102,202,.28),
    4px 4px 0 rgba(23,12,67,.78),
    0 10px 20px rgba(0,0,0,.36);
}
.location-badge{
  right:18px;top:18px;
  padding:10px 16px;
  border-radius:16px;
  background:linear-gradient(180deg,rgba(10,18,54,.86),rgba(5,8,24,.92));
  border:1px solid rgba(255,255,255,.14);
  box-shadow:0 10px 22px rgba(0,0,0,.26), inset 0 1px 0 rgba(255,255,255,.12);
  font-family:var(--arcade-font);
  font-size:14px;
  line-height:1;
  letter-spacing:.085em;
  color:#fff4d6;
  text-transform:uppercase;
  text-shadow:0 2px 0 rgba(44,220,255,.36), 0 4px 8px rgba(0,0,0,.34);
}
.timer{
  top:12px;
  font-family:var(--arcade-font);
  font-size:104px;
  line-height:.92;
  letter-spacing:.035em;
  background:linear-gradient(180deg,#fff6ba 0%,#ffd85c 20%,#ffb137 54%,#ff7c2e 100%);
  -webkit-background-clip:text;background-clip:text;color:transparent;
  -webkit-text-stroke:1.3px rgba(255,242,196,.36);
  text-shadow:
    0 4px 0 rgba(44,220,255,.60),
    0 8px 0 rgba(18,106,220,.30),
    5px 5px 0 rgba(29,14,74,.72),
    0 16px 26px rgba(0,0,0,.36);
  filter:drop-shadow(0 10px 20px rgba(0,0,0,.24));
}
.timer.tick{animation:timerTick .16s ease}
@keyframes timerTick{50%{transform:translateX(-50%) scale(1.06)}}
.speech-kicker,.guess-title,.result-rank,.podium-rank,.difficulty-titlebar,.count-num{
  font-family:var(--arcade-font);
}
.guess-title{
  font-size:20px;
  letter-spacing:.05em;
  text-shadow:0 2px 0 rgba(41,218,255,.35), 0 6px 14px rgba(0,0,0,.28);
}
@media (max-width:1100px){
  .screen-heading{font-size:46px}
  .screen-heading-row{height:64px}.screen-heading-row>span{padding-top:14px;font-size:11px}
  .game-heading{font-size:34px}
  .location-badge{font-size:11px;padding:8px 12px}
  .timer{font-size:82px}
}
@media (max-height:520px){
  .screen-heading{font-size:34px;-webkit-text-stroke:.7px rgba(255,240,190,.35)}
  .screen-heading-row{height:50px}.screen-heading-row>span{padding-top:10px;font-size:8px}
  .game-heading{font-size:24px;top:10px;left:10px}
  .location-badge{top:10px;right:10px;font-size:8px;padding:6px 9px;border-radius:12px}
  .timer{top:8px;font-size:58px;-webkit-text-stroke:.8px rgba(255,242,196,.36)}
  .guess-title{font-size:14px}
}


/* === V17 character fix === */

.character-grid{
  grid-template-columns:repeat(6,minmax(0,1fr));
  grid-auto-rows:minmax(0,1fr);
  gap:10px;
}
.character-card{
  background:linear-gradient(180deg,rgba(16,28,78,.98),rgba(8,15,49,.98));
  border:1.5px solid rgba(78,156,255,.34);
  box-shadow:0 10px 20px rgba(0,0,0,.26), inset 0 1px 0 rgba(255,255,255,.04);
}
.character-art{
  width:100%;height:100%;display:flex;align-items:flex-end;justify-content:center;
  background:
    radial-gradient(circle at 50% 18%, rgba(255,244,211,.94) 0%, rgba(255,206,116,.82) 20%, rgba(255,146,86,.42) 38%, rgba(98,120,193,.16) 60%, rgba(8,16,57,.00) 70%),
    linear-gradient(180deg,rgba(255,255,255,.02),rgba(255,255,255,0));
}
.character-card img{
  width:auto;height:auto;max-width:88%;max-height:96%;object-fit:contain;display:block;background:none;
  filter:drop-shadow(0 16px 18px rgba(0,0,0,.34));
}
.character-card:hover,.character-card.selected{
  transform:translateY(-2px) scale(1.01);
}
.character-card.taken{
  filter:none; opacity:.42;
}
.character-card.taken .character-art{filter:grayscale(.35) saturate(.7)}
.fletcher-card,
.name-avatar-wrap,
.narrator img{
  background:radial-gradient(circle at 50% 18%, rgba(255,241,206,.98), rgba(255,194,109,.84) 28%, rgba(255,139,86,.32) 48%, rgba(10,17,58,.04) 72%);
}
.fletcher-card img,
.name-avatar-wrap img,
.narrator img{
  object-fit:contain;
}
.fletcher-card{display:flex;align-items:flex-end;justify-content:center;padding:10px;height:190px}
.fletcher-card img{width:auto;height:100%;max-width:100%;filter:drop-shadow(0 14px 24px rgba(0,0,0,.34))}
.narrator{padding-left:98px}
.narrator img{width:80px;height:92px;left:8px;bottom:6px;border:none;border-radius:0;object-fit:contain;filter:drop-shadow(0 12px 20px rgba(0,0,0,.32))}
.player-avatar-card img,.result-avatar img,.podium-avatar img,.loser-chip img{
  image-rendering:auto;
}
@media (max-width:1280px){
  .character-grid{grid-template-columns:repeat(5,minmax(0,1fr))}
}
@media (max-height:700px){
  .character-grid{grid-template-columns:repeat(6,minmax(0,1fr));gap:8px}
  .character-card img{max-width:84%;max-height:94%}
}
@media (max-height:520px){
  .character-grid{grid-template-columns:repeat(6,minmax(0,1fr));gap:5px}
}


/* === V18 home + character rebuild === */
.home-content-v18{
  position:absolute; inset:0;
  display:flex; flex-direction:column; align-items:center; justify-content:center;
  gap:18px; padding:26px 20px 34px;
}
.home-logo-wrap{
  position:relative; z-index:2;
  display:flex; align-items:center; justify-content:center;
  width:min(72vw,840px);
}
.home-logo-wrap::before{
  content:''; position:absolute; left:50%; top:48%; transform:translate(-50%,-50%);
  width:min(26vw,280px); aspect-ratio:1; border-radius:50%;
  background:radial-gradient(circle, rgba(255,231,131,.95) 0%, rgba(255,177,58,.72) 26%, rgba(255,107,48,.28) 48%, rgba(255,107,48,0) 70%);
  filter:blur(8px); z-index:-1; opacity:.92;
}
.hero-logo-v18{
  width:100%; max-height:31vh; object-fit:contain;
  filter:drop-shadow(0 18px 28px rgba(0,0,0,.52));
}
.home-dialog-v18{
  position:relative; z-index:2;
  display:flex; align-items:flex-end; justify-content:center; gap:0;
  width:min(760px,80vw); transform:translateY(-6px);
}
.home-avatar-v18{
  width:116px; height:136px; flex:0 0 auto; display:flex; align-items:flex-end; justify-content:center;
  margin-right:-10px; padding:6px 4px 0;
  border-radius:18px; overflow:hidden;
  background:linear-gradient(180deg,rgba(12,22,70,.56),rgba(7,10,32,.18));
  border:1px solid rgba(91,216,255,.35);
  box-shadow:0 10px 18px rgba(0,0,0,.28), inset 0 1px 0 rgba(255,255,255,.14);
}
.home-avatar-v18 img{
  width:auto; height:100%; max-width:100%; object-fit:contain;
  filter:drop-shadow(0 12px 20px rgba(0,0,0,.34));
}
.speech-panel-v18{
  min-width:min(560px,72vw); padding:18px 22px 16px 28px; border-radius:18px;
  background:linear-gradient(180deg,rgba(8,17,56,.92),rgba(5,9,30,.96));
  border:2px solid rgba(255,65,181,.72);
  box-shadow:0 0 0 3px rgba(44,220,255,.12), 0 18px 28px rgba(0,0,0,.34);
}
.speech-panel-v18 .speech-kicker{font-size:28px; line-height:.95}
.speech-panel-v18 .speech-copy{font-size:21px; font-weight:800; margin:6px 0 14px}
.speech-panel-v18 .home-actions{gap:12px}
.speech-panel-v18 .arcade-btn{min-width:196px; height:52px; font-size:15px}

#charactersScreen .menu-shell{padding-bottom:12px}
.character-grid{
  grid-template-columns:repeat(5,minmax(0,1fr)) !important;
  grid-template-rows:repeat(4,minmax(0,1fr));
  gap:12px !important;
  padding:4px 2px 2px;
}
.character-card{
  display:flex; align-items:stretch; justify-content:stretch;
  border-radius:18px !important;
  background:linear-gradient(180deg,rgba(11,22,70,.98),rgba(7,12,38,.98)) !important;
  border:1.6px solid rgba(91,165,255,.34) !important;
  box-shadow:0 10px 18px rgba(0,0,0,.28), inset 0 1px 0 rgba(255,255,255,.05) !important;
}
.character-art{
  width:100%; height:100%; display:flex; align-items:flex-end; justify-content:center;
  background:
    radial-gradient(circle at 50% 14%, rgba(255,251,233,.94) 0%, rgba(255,213,127,.86) 17%, rgba(255,149,85,.44) 34%, rgba(82,118,193,.18) 54%, rgba(6,12,43,0) 70%),
    linear-gradient(180deg, rgba(255,255,255,.04), rgba(255,255,255,0) 26%);
}
.character-card img{
  width:auto !important; height:auto !important; max-width:92% !important; max-height:96% !important;
  object-fit:contain !important; display:block; background:none !important;
  filter:drop-shadow(0 16px 18px rgba(0,0,0,.36)) !important;
}
.character-card:hover,.character-card.selected{
  transform:translateY(-3px) scale(1.012);
  border-color:#ffe36f !important;
  box-shadow:0 0 0 2px rgba(255,227,111,.34), 0 0 24px rgba(255,74,169,.18), 0 12px 22px rgba(0,0,0,.30) !important;
}
.character-card.taken{opacity:.43 !important; filter:none !important}
.character-card.taken::before{content:'TAKEN'; position:absolute; inset:auto 10px 10px auto; padding:5px 9px; border-radius:999px; background:rgba(3,6,18,.82); color:#fff4da; font:900 11px/1 Impact, Arial Black, sans-serif; letter-spacing:.08em; z-index:3}

.name-avatar-wrap, .fletcher-card, .player-avatar-card, .result-avatar, .podium-avatar, .loser-chip, .home-avatar-v18, .narrator img {
  overflow:visible;
}
.name-avatar-wrap img, .player-avatar-card img, .result-avatar img, .podium-avatar img, .loser-chip img, .narrator img {
  object-fit:contain !important; background:none !important;
}
.name-avatar-wrap{
  display:flex; align-items:flex-end; justify-content:center;
  background:radial-gradient(circle at 50% 12%, rgba(255,243,208,.96), rgba(255,196,109,.82) 24%, rgba(255,145,85,.34) 44%, rgba(10,17,58,.04) 72%);
}
.name-avatar-wrap img{max-width:100%; max-height:100%; filter:drop-shadow(0 14px 24px rgba(0,0,0,.32))}
.narrator{padding-left:100px}
.narrator img{width:84px; height:94px; left:8px; bottom:6px; border:none; border-radius:0; filter:drop-shadow(0 12px 20px rgba(0,0,0,.32))}

@media (max-width:1280px){
  .character-grid{grid-template-columns:repeat(4,minmax(0,1fr)) !important; grid-template-rows:repeat(5,minmax(0,1fr)); gap:10px !important}
  .home-logo-wrap{width:min(76vw,740px)}
  .speech-panel-v18{min-width:min(520px,74vw)}
}
@media (max-height:760px){
  .hero-logo-v18{max-height:28vh}
  .home-content-v18{gap:12px}
  .home-avatar-v18{width:98px; height:118px}
  .speech-panel-v18{padding:15px 18px 14px 24px}
  .speech-panel-v18 .speech-kicker{font-size:23px}
  .speech-panel-v18 .speech-copy{font-size:18px; margin:5px 0 10px}
  .speech-panel-v18 .arcade-btn{height:46px; min-width:180px; font-size:13px}
  .character-grid{gap:8px !important}
}
@media (max-height:620px){
  .character-grid{grid-template-columns:repeat(5,minmax(0,1fr)) !important; gap:6px !important}
  .character-card{border-radius:12px !important}
}


/* === V22: exact character assets + home mockup + Fletcher's Cove banner === */
.home-content-v22{
  position:absolute; inset:0; z-index:4; pointer-events:none;
}
.home-logo-wrap-v22{
  position:absolute; left:50%; top:41%; transform:translate(-50%,-50%);
  width:min(84vw,1040px); height:auto; display:flex; align-items:center; justify-content:center;
  pointer-events:none;
}
.hero-logo-v22{
  width:100%; max-height:43vh; object-fit:contain; display:block;
  filter:drop-shadow(0 20px 34px rgba(0,0,0,.58));
}
.home-host-v22{
  position:absolute; right:3.4%; bottom:1.2%;
  display:flex; align-items:flex-end; justify-content:flex-end;
  width:min(720px,66vw); height:min(300px,39vh); pointer-events:none;
}
.home-fletcher-v22{
  position:relative; z-index:3; width:auto; height:100%; max-width:34%; object-fit:contain; object-position:bottom right;
  filter:drop-shadow(0 16px 24px rgba(0,0,0,.48)); pointer-events:none;
}
.home-speech-v22{
  position:relative; z-index:4; align-self:center; margin-right:-12px; margin-bottom:30px;
  width:min(500px,46vw); padding:21px 24px 20px;
  border-radius:22px;
  background:linear-gradient(180deg,rgba(8,17,56,.95),rgba(4,8,29,.97));
  border:2px solid rgba(255,71,183,.82);
  box-shadow:0 0 0 3px rgba(43,218,255,.16), 0 20px 34px rgba(0,0,0,.42);
  pointer-events:auto;
}
.home-speech-v22::after{
  content:''; position:absolute; right:-24px; bottom:44px; width:0; height:0;
  border-top:15px solid transparent; border-bottom:15px solid transparent; border-left:25px solid rgba(255,71,183,.90);
  filter:drop-shadow(2px 3px 2px rgba(0,0,0,.22));
}
.home-speech-v22 .speech-kicker{font-size:31px; line-height:.95; margin:0 0 6px}
.home-speech-v22 .speech-copy{font-size:21px; line-height:1.15; font-weight:900; margin:0 0 16px}
.home-actions-v22{display:flex; gap:14px; flex-wrap:nowrap}
.home-actions-v22 .arcade-btn{
  min-width:230px; height:68px; border-radius:15px; font-size:18px; letter-spacing:.025em; padding:0 18px;
}

/* Use the newly supplied PNGs as-is. No mask, crop, alpha manipulation, or blend/filter effects. */
.character-card img,
.name-avatar-wrap img,
.player-avatar-card img,
.result-avatar img,
.podium-avatar img,
.loser-chip img,
.home-fletcher-v22,
.narrator img{
  object-fit:contain !important;
  mix-blend-mode:normal !important;
  mask:none !important; -webkit-mask:none !important;
}

/* Fletcher's Cove custom upper-left location banner. Source file stays untouched; black is visually neutralized with screen blending. */
.location-banner-v22{
  position:absolute; left:24px; top:84px; z-index:7;
  width:min(650px,44vw); height:min(150px,15vh); overflow:hidden;
  opacity:0; pointer-events:none; transition:opacity .18s ease;
  mix-blend-mode:screen;
}
.location-banner-v22.show{opacity:1}
.location-banner-v22 img{
  position:absolute; width:192%; max-width:none; height:auto;
  left:-17.4%; top:-14.2%; display:block;
}
.location-badge-v22{display:none !important}
.location-badge-v22.show-fallback{display:block !important}

@media (max-width:1100px){
  .home-logo-wrap-v22{width:min(88vw,900px); top:38%}
  .home-host-v22{right:2%; width:min(650px,72vw); height:min(250px,38vh)}
  .home-fletcher-v22{max-width:31%}
  .home-speech-v22{width:min(450px,49vw); padding:17px 18px 16px; margin-bottom:22px}
  .home-speech-v22 .speech-kicker{font-size:25px}.home-speech-v22 .speech-copy{font-size:17px;margin-bottom:12px}
  .home-actions-v22{gap:10px}.home-actions-v22 .arcade-btn{min-width:190px;height:58px;font-size:15px}
  .location-banner-v22{left:16px;top:66px;width:min(530px,49vw);height:min(128px,16vh)}
}
@media (max-height:600px){
  .home-logo-wrap-v22{top:33%; width:min(76vw,720px)}
  .hero-logo-v22{max-height:36vh}
  .home-host-v22{right:2%;bottom:0;height:42vh;width:min(600px,67vw)}
  .home-fletcher-v22{max-width:29%}
  .home-speech-v22{width:min(400px,43vw);padding:12px 14px 12px;margin-bottom:12px;border-radius:15px}
  .home-speech-v22 .speech-kicker{font-size:20px}.home-speech-v22 .speech-copy{font-size:14px;margin-bottom:8px}
  .home-actions-v22{gap:8px}.home-actions-v22 .arcade-btn{min-width:165px;height:46px;font-size:12px;border-radius:11px}
  .location-banner-v22{left:12px;top:48px;width:min(410px,43vw);height:94px}
}


/* === V22 final QA corrections === */
/* Exactly 21 characters: 7 columns x 3 rows so every character stays on one screen. */
#charactersScreen .character-grid{
  grid-template-columns:repeat(7,minmax(0,1fr)) !important;
  grid-template-rows:repeat(3,minmax(0,1fr)) !important;
  gap:8px !important;
  overflow:hidden !important;
}
#charactersScreen .character-card{min-height:0 !important; overflow:hidden !important}
#charactersScreen .character-card img{max-width:92% !important; max-height:96% !important}

/* Exact visual crop of the uploaded 1920x1080 Fletcher's Cove banner without changing its source file. */
.location-banner-v22{
  aspect-ratio:754 / 180;
  height:auto !important;
}
.location-banner-v22 img{
  width:254.64% !important;
  left:0 !important; top:0 !important;
  transform:translate(-10.365%,-8.148%);
  transform-origin:top left;
}
.home-actions-v22 .arcade-btn{
  height:75px;
  min-width:255px;
  font-size:19px;
}
@media (max-width:1100px){
  #charactersScreen .character-grid{grid-template-columns:repeat(7,minmax(0,1fr)) !important;grid-template-rows:repeat(3,minmax(0,1fr)) !important;gap:5px !important}
  .home-actions-v22 .arcade-btn{height:62px;min-width:205px;font-size:15px}
}
@media (max-height:600px){
  #charactersScreen .character-grid{grid-template-columns:repeat(7,minmax(0,1fr)) !important;grid-template-rows:repeat(3,minmax(0,1fr)) !important;gap:4px !important}
  #charactersScreen .character-card img{max-width:90% !important;max-height:94% !important}
  .home-actions-v22 .arcade-btn{height:51px;min-width:175px;font-size:12px}
}


/* === V23: rules screen, difficulty art swap, mobile viewport fix === */
:root{
  --app-height:100dvh;
}
html,body{
  position:fixed;
  inset:0;
  height:var(--app-height);
  min-height:var(--app-height);
  overscroll-behavior:none;
}
body{
  width:100%;
}
.app{
  position:relative;
  width:100%;
  height:var(--app-height) !important;
  min-height:var(--app-height);
  max-height:var(--app-height);
  overflow:hidden;
}
.viewport{
  min-height:0;
  overflow:hidden;
}
.menu-screen{
  padding-top:max(10px, calc(env(safe-area-inset-top) + 6px));
  padding-bottom:max(10px, calc(env(safe-area-inset-bottom) + 6px));
}
.scene-stage{
  inset:6px 6px max(6px, env(safe-area-inset-bottom)) 6px;
}
.game-heading{top:max(16px, calc(env(safe-area-inset-top) + 8px))}
.timer{top:max(14px, calc(env(safe-area-inset-top) + 6px))}
.location-badge{top:max(18px, calc(env(safe-area-inset-top) + 10px))}
.location-banner-v22{top:max(84px, calc(env(safe-area-inset-top) + 74px))}

.home-host-v22{width:min(780px,68vw)}
.home-promo-bubble-v23{
  position:absolute;
  right:22%;
  bottom:6%;
  z-index:2;
  width:min(290px,20vw);
  padding:12px 14px;
  border-radius:16px;
  background:linear-gradient(180deg,rgba(10,18,54,.96),rgba(5,9,30,.97));
  border:2px solid rgba(255,221,106,.82);
  box-shadow:0 14px 28px rgba(0,0,0,.36), 0 0 0 2px rgba(43,218,255,.10);
  color:#fff5d3;
  font-family:'Arial Black',Arial,sans-serif;
  font-size:11px;
  line-height:1.22;
  text-transform:uppercase;
  letter-spacing:.03em;
  pointer-events:none;
}
.home-promo-bubble-v23::after{
  content:'';
  position:absolute;
  right:-12px;
  bottom:18px;
  width:0;height:0;
  border-top:10px solid transparent;
  border-bottom:10px solid transparent;
  border-left:12px solid rgba(255,221,106,.82);
}
.rules-shell-v23{display:flex;flex-direction:column}
.rules-layout-v23{
  position:relative;z-index:2;flex:1;min-height:0;
  display:grid;grid-template-columns:minmax(210px,26%) 1fr;gap:24px;align-items:center;
  padding:8px 1.5% 4px;
}
.rules-fletcher-v23{
  align-self:end;display:flex;align-items:flex-end;justify-content:center;height:100%;
  border-radius:24px;
  background:radial-gradient(circle at 50% 14%, rgba(255,243,208,.96), rgba(255,196,109,.82) 24%, rgba(255,145,85,.34) 44%, rgba(10,17,58,.04) 72%);
}
.rules-fletcher-v23 img{max-width:100%;max-height:92%;object-fit:contain;filter:drop-shadow(0 18px 26px rgba(0,0,0,.34))}
.rules-dialog-v23{
  padding:22px 24px;border-radius:24px;
  background:linear-gradient(180deg,rgba(8,17,56,.95),rgba(4,8,29,.97));
  border:2px solid rgba(255,71,183,.82);
  box-shadow:0 0 0 3px rgba(43,218,255,.16), 0 20px 34px rgba(0,0,0,.42);
}
.rules-dialog-copy-v23{
  color:#fff8ea;font-size:18px;line-height:1.44;font-weight:700;
}
.rules-actions-v23{display:flex;gap:14px;justify-content:flex-start;flex-wrap:wrap;margin-top:18px}
.difficulty-art-image{padding:0;overflow:hidden}
.difficulty-art-image img{width:100%;height:100%;display:block;object-fit:cover}
.difficulty-sun{display:none !important}

.player-chip.current .player-avatar-card,
.player-chip.current .player-name,
.player-chip.current .player-guess{
  box-shadow:0 0 0 2px rgba(255,226,104,.35),0 0 18px rgba(255,74,169,.16),0 10px 18px rgba(0,0,0,.26);
}
.player-chip.current .player-name{
  background:rgba(10,18,54,.88);
  padding:3px 6px;
  border-radius:999px;
  color:#fff8df;
}

@media (max-width:1100px){
  .home-promo-bubble-v23{right:23%;bottom:7%;width:min(250px,24vw);font-size:10px;padding:10px 12px}
  .rules-layout-v23{grid-template-columns:minmax(180px,24%) 1fr;gap:18px}
  .rules-dialog-copy-v23{font-size:15px;line-height:1.36}
}
@media (max-height:700px){
  .rules-dialog-copy-v23{font-size:14px;line-height:1.34}
  .rules-actions-v23 .arcade-btn{height:48px;min-width:185px;font-size:14px}
  .home-promo-bubble-v23{bottom:4%;font-size:9px;line-height:1.18}
}
@media (max-height:600px){
  .location-banner-v22{top:max(48px, calc(env(safe-area-inset-top) + 40px))}
  .rules-layout-v23{grid-template-columns:minmax(150px,22%) 1fr;gap:14px;padding-top:4px}
  .rules-dialog-v23{padding:14px 16px;border-radius:18px}
  .rules-dialog-copy-v23{font-size:12px;line-height:1.28}
  .rules-actions-v23{margin-top:12px;gap:10px}
  .rules-actions-v23 .arcade-btn{height:42px;min-width:155px;font-size:12px}
  .home-promo-bubble-v23{width:min(215px,28vw);right:24%;padding:8px 10px;font-size:8px}
}


/* === V24: home bubble reposition + larger Fletcher === */
.home-host-v24{
  align-items:flex-end;
  gap:10px;
}
.home-copy-stack-v24{
  position:relative;
  z-index:4;
  display:flex;
  flex-direction:column;
  align-items:flex-end;
  justify-content:flex-end;
  gap:14px;
  margin-bottom:16px;
  flex:1 1 auto;
  min-width:0;
}
.home-host-v24 .home-speech-v22{
  align-self:flex-end;
  margin-right:-10px;
  margin-bottom:0;
  width:min(500px,46vw);
}
.home-fletcher-v24{
  height:108%;
  max-width:36%;
}
.home-promo-bubble-v24{
  position:relative;
  right:auto;
  bottom:auto;
  z-index:5;
  width:min(360px,24vw);
  margin-right:38px;
  padding:13px 16px;
  font-size:12px;
  line-height:1.24;
}
.home-promo-bubble-v24::after{
  right:24px;
  bottom:-12px;
  border-left:10px solid transparent;
  border-right:10px solid transparent;
  border-top:12px solid rgba(255,221,106,.82);
  border-bottom:none;
}

@media (max-width:1100px){
  .home-copy-stack-v24{gap:10px;margin-bottom:12px}
  .home-host-v24 .home-speech-v22{width:min(450px,49vw)}
  .home-fletcher-v24{height:106%;max-width:34%}
  .home-promo-bubble-v24{width:min(310px,28vw);margin-right:30px;font-size:10px;padding:11px 13px}
}
@media (max-height:700px){
  .home-copy-stack-v24{gap:9px;margin-bottom:10px}
  .home-fletcher-v24{height:104%;max-width:33%}
  .home-promo-bubble-v24{width:min(290px,26vw);font-size:9px;padding:10px 12px;margin-right:26px}
}
@media (max-height:600px){
  .home-copy-stack-v24{gap:6px;margin-bottom:8px}
  .home-host-v24 .home-speech-v22{width:min(400px,43vw)}
  .home-fletcher-v24{height:102%;max-width:31%}
  .home-promo-bubble-v24{width:min(245px,30vw);font-size:8px;line-height:1.18;padding:8px 10px;margin-right:18px}
}

/* === V25: player-count promo move + rules/podium nudge + stroke banner support === */
.home-copy-stack-v24{
  gap:10px;
}
.home-fletcher-v24{
  height:112%;
  max-width:37%;
}

.players-shell-v25{display:flex;flex-direction:column}
.players-layout-v25{
  position:relative;
  z-index:2;
  flex:1;
  min-height:0;
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(220px,28%);
  gap:18px;
  align-items:end;
  padding:4px 0 2px;
}
.player-count-grid-v25{
  width:100%;
  max-width:none;
  height:100%;
  margin:0;
  padding:4px 0 2px;
  gap:10px;
}
.player-count-grid-v25 .count-card{
  border-radius:16px;
}
.player-count-grid-v25 .count-num{font-size:38px}
.player-count-grid-v25 .count-label{font-size:9px}
.players-fletcher-panel-v25{
  align-self:end;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:flex-end;
  gap:10px;
  min-height:0;
  padding-bottom:6px;
}
.players-promo-bubble-v25{
  position:relative;
  width:min(300px,100%);
  padding:12px 14px;
  border-radius:16px;
  background:linear-gradient(180deg,rgba(10,18,54,.96),rgba(5,9,30,.97));
  border:2px solid rgba(255,221,106,.82);
  box-shadow:0 14px 28px rgba(0,0,0,.36), 0 0 0 2px rgba(43,218,255,.10);
  color:#fff5d3;
  font-family:'Arial Black',Arial,sans-serif;
  font-size:10px;
  line-height:1.22;
  text-transform:uppercase;
  letter-spacing:.03em;
  text-align:center;
}
.players-promo-bubble-v25::after{
  content:'';
  position:absolute;
  right:26px;
  bottom:-12px;
  width:0;height:0;
  border-left:10px solid transparent;
  border-right:10px solid transparent;
  border-top:12px solid rgba(255,221,106,.82);
}
.players-fletcher-v25{
  width:min(210px,100%);
  max-height:48vh;
  object-fit:contain;
  filter:drop-shadow(0 16px 24px rgba(0,0,0,.42));
}

.rules-layout-v23{
  padding:2px 1.5% 2px;
}
.rules-dialog-v23{
  transform:translateY(-14px);
}
.rules-actions-v23{
  margin-top:14px;
}

.final-podium{
  padding-top:22px;
  transform:translateY(8px);
}
.other-players{
  transform:translateY(8px);
}

@media (max-width:1100px){
  .players-layout-v25{grid-template-columns:minmax(0,1fr) minmax(190px,26%);gap:14px}
  .player-count-grid-v25{gap:8px}
  .player-count-grid-v25 .count-num{font-size:34px}
  .players-promo-bubble-v25{font-size:9px;padding:10px 12px}
  .players-fletcher-v25{width:min(180px,100%)}
  .rules-dialog-v23{transform:translateY(-10px)}
  .final-podium{padding-top:18px;transform:translateY(7px)}
  .other-players{transform:translateY(7px)}
}
@media (max-height:700px){
  .players-layout-v25{gap:12px}
  .player-count-grid-v25 .count-num{font-size:30px}
  .player-count-grid-v25 .count-label{font-size:8px}
  .players-promo-bubble-v25{font-size:8px;padding:9px 11px}
  .players-fletcher-v25{width:min(150px,100%);max-height:40vh}
  .rules-dialog-v23{transform:translateY(-8px)}
  .rules-dialog-copy-v23{font-size:13px;line-height:1.28}
  .rules-actions-v23 .arcade-btn{height:44px;min-width:170px;font-size:13px}
  .final-podium{padding-top:14px;transform:translateY(6px)}
  .other-players{transform:translateY(6px)}
}
@media (max-height:600px){
  .players-layout-v25{grid-template-columns:minmax(0,1fr) minmax(145px,22%);gap:10px;padding:0}
  .player-count-grid-v25{padding:2px 0 0;gap:7px}
  .player-count-grid-v25 .count-card{border-radius:12px}
  .player-count-grid-v25 .count-num{font-size:27px}
  .player-count-grid-v25 .count-label{font-size:7px}
  .players-promo-bubble-v25{width:min(210px,100%);font-size:7px;line-height:1.16;padding:7px 8px}
  .players-fletcher-v25{width:min(118px,100%);max-height:32vh}
  .rules-layout-v23{padding:0 1% 0;gap:12px}
  .rules-fletcher-v23 img{max-height:84%}
  .rules-dialog-v23{transform:translateY(-6px);padding:12px 14px}
  .rules-dialog-copy-v23{font-size:11px;line-height:1.22}
  .rules-actions-v23{margin-top:10px;gap:8px}
  .rules-actions-v23 .arcade-btn{height:38px;min-width:140px;font-size:11px}
  .final-podium{padding-top:10px;transform:translateY(5px)}
  .other-players{transform:translateY(5px)}
}

/* V25 final: use the newly supplied transparent location banners directly. */
.location-banner-v22{
  mix-blend-mode:normal !important;
  overflow:visible !important;
  width:min(760px,52vw) !important;
  height:min(170px,17vh) !important;
}
.location-banner-v22 img{
  position:absolute !important;
  width:255% !important;
  max-width:none !important;
  height:auto !important;
  left:-26.4% !important;
  top:-19.4% !important;
  display:block !important;
}
@media (max-width:1100px){
  .location-banner-v22{width:min(610px,56vw) !important;height:min(145px,18vh) !important}
}
@media (max-height:600px){
  .location-banner-v22{width:min(500px,50vw) !important;height:112px !important}
}
/* Exact crop for the supplied 1920×1080 transparent banner canvases (visible art bbox 199,88 → 953,269). */
.location-banner-v22{
  width:min(690px,48vw) !important;
  height:min(166px,16vh) !important;
}
.location-banner-v22 img{
  width:254.64% !important;
  left:-26.39% !important;
  top:-48.62% !important;
}
@media (max-width:1100px){
  .location-banner-v22{width:min(560px,50vw) !important;height:min(135px,16vh) !important}
}
@media (max-height:600px){
  .location-banner-v22{width:min(430px,43vw) !important;height:103px !important}
}
