/* v10.48 — fixed reveal order, transitions, common answer colors, stable type, and bigger short-lived chat. */
/* A-E palette is identical on TV and on the phone remote, by LETTER rather than index. */
#gsOverlay [data-answer-letter="A"].gsTVChoice > span:first-child,#gsOverlay [data-answer-letter="A"].gsChoice .gsLetter{background:#286ad0!important}
#gsOverlay [data-answer-letter="B"].gsTVChoice > span:first-child,#gsOverlay [data-answer-letter="B"].gsChoice .gsLetter{background:#c9792a!important}
#gsOverlay [data-answer-letter="C"].gsTVChoice > span:first-child,#gsOverlay [data-answer-letter="C"].gsChoice .gsLetter{background:#098e65!important}
#gsOverlay [data-answer-letter="D"].gsTVChoice > span:first-child,#gsOverlay [data-answer-letter="D"].gsChoice .gsLetter{background:#8c4ad5!important}
#gsOverlay [data-answer-letter="E"].gsTVChoice > span:first-child,#gsOverlay [data-answer-letter="E"].gsChoice .gsLetter{background:#a74068!important}
#gsOverlay .gsTVChoice.gsCorrectRevealed > span:first-child{box-shadow:0 0 0 3px #b1ffda80}
#gsOverlay .gsPresenterStage .gsTVStem{font-size:clamp(20px,2.15vw,33px);line-height:1.25;overflow-y:auto;scrollbar-width:thin}
#gsOverlay .gsPresenterStage .gsTVChoice p{font-size:clamp(15px,1.56vw,25px);line-height:1.2;overflow-y:auto;max-height:100%;scrollbar-width:thin}
#gsOverlay .gsPresenterStage .gsTVQuestion{animation:none!important;transform:none!important}
/* Slides enter gracefully without scaling the entire question text. */
#gsOverlay .gsPresenterStage.gsAnswersStage{animation:mdna48RevealIn .44s ease-out both}
#gsOverlay .gsABFMStage{animation:mdna48ExplanationIn .65s cubic-bezier(.18,.77,.24,1) both}
#gsOverlay .gsRankingsStage{animation:mdna48RaceIn .83s cubic-bezier(.12,.75,.27,1) both}
@keyframes mdna48RevealIn{from{opacity:.35;filter:brightness(.7)}to{opacity:1;filter:brightness(1)}}
@keyframes mdna48ExplanationIn{from{opacity:0;translate:0 18px;filter:blur(3px)}to{opacity:1;translate:0 0;filter:blur(0)}}
@keyframes mdna48RaceIn{from{opacity:0;translate:0 32px;filter:blur(5px)}to{opacity:1;translate:0 0;filter:blur(0)}}
/* A true intro slide before the podium, not only text appearing on the results page. */
#gsOverlay .gsTop3Screen{position:relative;isolation:isolate}
#gsOverlay .gsWinnersIntro{position:absolute;inset:-14px;z-index:100;display:flex;flex-direction:column;gap:20px;align-items:center;justify-content:center;text-align:center;border-radius:18px;background:radial-gradient(circle at 50% 40%,#60467f,#151b41 67%,#070f29);box-shadow:inset 0 0 100px #fcd88330;animation:mdna48IntroCurtain 3.13s ease-in-out both;pointer-events:auto}
#gsOverlay .gsWinnersIntro h1{font-size:clamp(42px,7.8vw,116px)!important;color:#fff0b1;letter-spacing:.02em;text-shadow:0 0 40px #ffd35d8f}
#gsOverlay .gsWinnersIntro small{font-size:clamp(15px,2vw,28px);font-weight:900;letter-spacing:.3em;color:#f8d7fc}
#gsOverlay .gsWinnersIntro p{font-size:clamp(19px,2vw,30px);color:#e4e7ff}
#gsOverlay .gsWinnersLight{font-size:clamp(35px,6vw,88px);color:#ffe38a;animation:mdna48Glitter 1.2s ease-in-out infinite alternate}
@keyframes mdna48IntroCurtain{0%{opacity:1;transform:scale(1.035)}15%{opacity:1;transform:scale(1)}83%{opacity:1;transform:scale(1)}100%{opacity:0;transform:scale(.98)}}
#gsOverlay .gsWinnersIntro h1{animation:mdna48WinnersTitleIn 1s ease-out .17s both}
@keyframes mdna48WinnersTitleIn{from{opacity:0;transform:translateY(17px) scale(.84)}to{opacity:1;transform:translateY(0) scale(1)}}
@keyframes mdna48Glitter{from{filter:brightness(1);transform:scale(.96)}to{filter:brightness(1.5);transform:scale(1.08)}}
#gsOverlay .gsChatBubble{transform:scale(1.08);transform-origin:bottom right;max-width:min(510px,88vw);font-size:clamp(14px,1.4vw,20px)!important;animation:mdna48Bubble .28s ease-out both}
#gsOverlay .gsChatBubbleText span{font-size:inherit;line-height:1.35}
@keyframes mdna48Bubble{from{opacity:0;translate:0 10px}to{opacity:1;translate:0 0}}
#gsOverlay .gsPresenterTopActions .gsSfxToggle{display:inline-flex!important;align-items:center;justify-content:center;min-width:33px;min-height:33px}
@media(max-width:620px){#gsOverlay .gsPresenterStage .gsTVStem{font-size:20px}#gsOverlay .gsPresenterStage .gsTVChoice p{font-size:16px}#gsOverlay .gsWinnersIntro{inset:0}#gsOverlay .gsWinnersIntro h1{font-size:clamp(32px,8vw,55px)!important}#gsOverlay .gsChatBubble{transform:scale(1.03)}}
@media(prefers-reduced-motion:reduce){#gsOverlay .gsPresenterStage.gsAnswersStage,#gsOverlay .gsABFMStage,#gsOverlay .gsRankingsStage,#gsOverlay .gsWinnersIntro,#gsOverlay .gsWinnersLight,#gsOverlay .gsChatBubble{animation:none!important;filter:none!important;translate:none!important;transform:none!important}}

/* Let every medal announcement finish before the next one. */
#gsOverlay .gsTop3Screen .gsVictoryFooter{animation:gsFooterIn .7s 17.1s both!important}
#gsOverlay .gsTop3Screen .gsPodiumActions{animation:gsFooterIn .7s 17.3s both!important}
@media(prefers-reduced-motion:reduce){#gsOverlay .gsTop3Screen .gsVictoryFooter,#gsOverlay .gsTop3Screen .gsPodiumActions{animation:none!important;opacity:1!important}}
/* Keep the question and revealed-answer geometry stable as the toolbar switches controls. */
@media(min-width:621px){#gsOverlay .gsWrap.gsTV:has(.gsPresenterStage) .gsCompactTop{height:68px!important;min-height:68px!important;flex:0 0 68px!important;box-sizing:border-box}}
@media(max-width:620px){#gsOverlay .gsWrap.gsTV:has(.gsPresenterStage) .gsCompactTop{height:119px!important;min-height:119px!important;flex:0 0 119px!important;box-sizing:border-box}}

/* Match answer letters on presenter and phones, regardless of answer order. */
#gsOverlay [data-answer-letter="A"].gsRemoteChoice{background:#286ad0!important}
#gsOverlay [data-answer-letter="B"].gsRemoteChoice{background:#c9792a!important}
#gsOverlay [data-answer-letter="C"].gsRemoteChoice{background:#098e65!important}
#gsOverlay [data-answer-letter="D"].gsRemoteChoice{background:#8c4ad5!important}
#gsOverlay [data-answer-letter="E"].gsRemoteChoice{background:#a74068!important}
#gsOverlay [data-answer-letter="A"].gsTVChoice>span:first-child{background:#286ad0!important}
#gsOverlay [data-answer-letter="B"].gsTVChoice>span:first-child{background:#c9792a!important}
#gsOverlay [data-answer-letter="C"].gsTVChoice>span:first-child{background:#098e65!important}
#gsOverlay [data-answer-letter="D"].gsTVChoice>span:first-child{background:#8c4ad5!important}
#gsOverlay [data-answer-letter="E"].gsTVChoice>span:first-child{background:#a74068!important}
#gsOverlay .gsTVChoice.gsCorrectRevealed>span:first-child{outline:3px solid #a9ffdf;outline-offset:1px}
/* Compact combined controls for desktop, laptop, and portrait phones. */
#gsOverlay .gsSetupCombined{gap:7px!important;padding-block:10px!important}
#gsOverlay .gsCombinedControls{display:grid;grid-template-columns:minmax(175px,1.25fr) repeat(3,minmax(116px,1fr)) minmax(115px,.8fr);gap:10px;align-items:center;width:100%}
#gsOverlay .gsSettingsPlayer{display:flex;flex-direction:column;gap:4px;min-width:0}
#gsOverlay .gsSettingsSubhead{font-weight:900;font-size:12px}
#gsOverlay .gsCombinedControls .gsSmallLabel{display:flex;flex-direction:column;gap:4px;min-width:0}
#gsOverlay .gsCombinedControls .gsSmallLabel .gsInput{width:100%;max-width:100%;min-width:0}
#gsOverlay .gsCombinedControls .gsInlineCheck{white-space:normal}
#gsOverlay .gsCombinedChat{align-self:center}
@media(max-width:950px){#gsOverlay .gsCombinedControls{grid-template-columns:repeat(3,minmax(0,1fr))}#gsOverlay .gsSettingsPlayer{grid-column:span 2}}
@media(max-width:620px){#gsOverlay .gsCombinedControls{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}#gsOverlay .gsSettingsPlayer{grid-column:span 2}#gsOverlay .gsCombinedChat{grid-column:span 2}}
