/* v10.47 — persistent illustrated themes, identical question/reveal geometry, dramatic shared-plane race */
#gsOverlay .gsWrap{position:relative;isolation:isolate}
#gsOverlay .gsVisualBackdrop{position:fixed;inset:0;z-index:-1;pointer-events:none;opacity:1;background-color:var(--gs-theme-base,#101d39);background-image:linear-gradient(170deg,rgba(4,10,21,.35),rgba(4,10,21,.53)),var(--gs-scene),radial-gradient(ellipse at 73% 30%,var(--gs-theme-accent,#7559e8),var(--gs-theme-base,#101d39));background-size:cover,cover,cover;background-position:center center;background-repeat:no-repeat;transition:background-color .55s ease,opacity .55s ease}
#gsOverlay .gsVisualBackdrop.gsCollegeTheme{background-image:radial-gradient(circle at 75% 24%,var(--gs-theme-accent,#778) 0%,transparent 42%),repeating-linear-gradient(125deg,transparent 0px,transparent 110px,#ffffff0b 111px,#ffffff0b 114px),linear-gradient(135deg,var(--gs-theme-base,#171717),#09152a);background-size:cover}
/* Presenter body has a lightly translucent overlay so choosing a different theme visibly changes both scene and margins, not just accents. */
#gsOverlay .gsWrap.gsTV:has(.gsPresenterStage) .gsPresenterStage{background:linear-gradient(125deg,#0b1826ab,#162644b0);border-radius:20px;box-shadow:inset 0 0 0 1px #ffffff2c}
#gsOverlay .gsPresenterStage .gsTVQuestion{background:transparent!important}
#gsOverlay .gsWrap.gsTV .gsTVChoice{background:#19304ad9}
#gsOverlay .gsWrap.gsTV:has(.gsLobbySplit) .gsLobbySplit .gsLobbyAvatarHalf,
#gsOverlay .gsWrap.gsTV:has(.gsLobbySplit) .gsLobbySplit .gsLobbyScanHalf{background:#15253cdb}

/* Answer reveal is THE SAME exact question slide: identical stem, image and A–E grid. */
#gsOverlay .gsPresenterStage.gsAnswersStage .gsTVStem,
#gsOverlay .gsPresenterStage.gsAnswersStage .gsTVFigures,
#gsOverlay .gsPresenterStage.gsAnswersStage .gsTVChoices,
#gsOverlay .gsPresenterStage.gsAnswersStage .gsTVChoice{animation:none!important;transition:background-color .4s ease,border-color .4s ease}
#gsOverlay .gsPresenterStage .gsTVChoice{position:relative}
#gsOverlay .gsPresenterStage .gsTVChoice.gsCorrectRevealed{background:#0d684bde!important;border:3px solid #91ffca!important;box-shadow:0 0 0 1px #a3ffd6,0 0 22px #4bffc033}
#gsOverlay .gsPresenterStage .gsTVChoice.gsCorrectRevealed>span:first-child{background:#15aa79;color:white}
#gsOverlay .gsPresenterStage .gsTVChoicePercent{position:absolute;top:6px;right:9px;display:flex;align-items:center;justify-content:center;min-width:54px;width:auto!important;height:auto!important;max-width:39%;padding:4px 9px;border-radius:12px;background:#1b3b62ed;color:#fff;line-height:1.15;font-size:clamp(13px,1.38vw,22px);font-weight:950;border:1px solid #ffffff50;box-shadow:0 2px 8px #0004;z-index:2}
#gsOverlay .gsPresenterStage .gsCorrectRevealed .gsTVChoicePercent{background:#087b51;color:#fff;box-shadow:0 2px 12px #00da8e5e;border-color:#c3ffe2}
#gsOverlay .gsPresenterStage .gsTVChoiceRevealed p{padding-right:clamp(52px,6vw,85px);}
@media(max-width:620px){#gsOverlay .gsPresenterStage .gsTVChoicePercent{font-size:13px;min-width:42px;top:3px;right:4px;padding:3px 5px}#gsOverlay .gsPresenterStage .gsTVChoiceRevealed p{padding-right:43px}}

/* One dramatic 3D-looking highway with all cars overtaking on the same plane. */
#gsOverlay .gsRankingsStage{align-items:stretch;justify-content:center}
#gsOverlay .gsRankingsStage .gsRaceShow{display:flex;flex:1;min-height:0;flex-direction:column;justify-content:center;gap:9px}
#gsOverlay .gsRaceHead{padding:2px 10px 4px}
#gsOverlay .gsRaceHead h2{font-size:clamp(23px,3.2vw,48px);margin:0;color:#f4fbff;text-shadow:0 4px 8px #0b1727}
#gsOverlay .gsRaceHead span{font-size:clamp(12px,1.2vw,17px);font-weight:730;color:#e3eaf5}
#gsOverlay .gsRankingsStage .gsRacingRoad.gsPerspectiveRoad{display:block!important;flex:1;position:relative;isolation:isolate;width:100%;min-height:0;max-height:min(72vh,735px);padding:0!important;overflow:hidden;border-radius:24px;border:7px solid #647d8c;box-shadow:inset 0 12px 28px #08111fa6,inset 0 -16px 24px #0008,0 13px 28px #060e199f;background:linear-gradient(180deg,#465a69,#283d4c 56%,#233446)}
#gsOverlay .gsPerspectiveRoad .gsRoadSurface{position:absolute;inset:0;z-index:0;pointer-events:none;background:radial-gradient(ellipse at 50% 12%,#dcecfb12,transparent 75%),repeating-linear-gradient(3deg,#ffffff06 0,#ffffff06 1px,transparent 1px,transparent 29px),linear-gradient(90deg,#1c2c39,#344e60 9%,#405362 56%,#263d4d 92%,#10202c);transform:perspective(750px) rotateX(7deg) scale(1.06)}
#gsOverlay .gsPerspectiveRoad .gsRoadSurface::before{content:'';position:absolute;inset:0 6%;border-left:5px solid #ffffff2c;border-right:5px solid #ffffff2c;background:repeating-linear-gradient(90deg,transparent 0,transparent 7%,#ecf1cb80 7.4%,#ecf1cb80 10%,transparent 10.4%,transparent 18%);mask-image:linear-gradient(0deg,transparent 0%,#000 36%,#000 61%,transparent 100%);opacity:.5}
#gsOverlay .gsPerspectiveRoad .gsRoadSurface::after{content:'';position:absolute;top:49%;left:0;right:0;height:5px;background:repeating-linear-gradient(90deg,#e9eef5c8 0px,#e9eef5c8 62px,transparent 62px,transparent 112px);box-shadow:0 0 6px #091f31;opacity:.55}
#gsOverlay .gsPerspectiveRoad .gsRacingStart{writing-mode:vertical-rl;top:8%;bottom:8%;left:0;width:clamp(22px,3vw,48px);font-size:clamp(11px,1.5vw,21px);font-weight:950;letter-spacing:.28em;color:#e9e3cf;z-index:2;background:linear-gradient(90deg,#1b3449ce,#ffd9906b,transparent);border-right:2px dashed #ffebac9a;transform:none}
#gsOverlay .gsPerspectiveRoad .gsRacingFinish{display:flex;flex-direction:column;justify-content:center;align-items:center;gap:9px;right:0;top:0;bottom:0;width:clamp(35px,5vw,72px);font-weight:950;font-size:clamp(10px,1.35vw,19px);letter-spacing:.09em;color:#fff;transform:none;z-index:1;background:repeating-conic-gradient(#101c2a 0% 25%,#ecf6ff 0% 50%) 0 0/24px 24px;box-shadow:-8px 0 25px #08132288;border-left:4px solid #e8f5fc}
#gsOverlay .gsPerspectiveRoad .gsRacingFinish span{writing-mode:vertical-rl;background:#12283ae5;padding:7px 5px;border-radius:7px;font-size:inherit;color:#fff}
#gsOverlay .gsPerspectiveRoad .gsRacingFinish b{font-size:clamp(21px,2.7vw,38px);text-shadow:0 2px 4px black}
#gsOverlay .gsPerspectiveRoad .gsRacingVehicle{position:absolute;top:var(--gsCarToY);left:var(--gsCarTo);z-index:4;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:0;width:clamp(127px,20vw,245px)!important;max-width:none;min-width:0;transform:translate(-50%,-50%) scale(var(--gsCarScale));transform-origin:center;animation:gsOvertakingMove 3.25s cubic-bezier(.16,.74,.2,1) both;animation-delay:var(--gsMoveDelay);filter:drop-shadow(0 9px 7px #08111f99);overflow:visible!important}
#gsOverlay .gsPerspectiveRoad .gsRacingVehicle:nth-of-type(2n){z-index:5}
#gsOverlay .gsPerspectiveRoad .gsVehicleName{max-width:100%;width:max-content;min-width:76px;white-space:normal;overflow:visible;text-overflow:clip;overflow-wrap:anywhere;position:relative;z-index:5;text-align:center;padding:4px 9px;font-size:clamp(13px,1.4vw,22px);line-height:1.08;color:#fff;font-weight:950;background:#0b2449f5;border:2px solid #f8f9ffe3;border-radius:12px;text-shadow:0 1px 3px black;box-shadow:0 3px 9px #0008}
#gsOverlay .gsPerspectiveRoad .gsVehicleName b{display:inline-block;color:#f9cf76;margin-right:2px}
#gsOverlay .gsPerspectiveRoad .gsVehicleArt{height:auto;width:100%;display:block;position:relative}
#gsOverlay .gsPerspectiveRoad .gsVehicleShell{width:100%!important;height:auto!important;display:block;transform:none!important;filter:drop-shadow(3px 7px 4px #020c16cf)}
#gsOverlay .gsPerspectiveRoad .gsVehicleCharacter{position:absolute;z-index:6;width:clamp(40px,6vw,82px)!important;height:clamp(40px,6vw,82px)!important;top:-33%;left:34%;filter:drop-shadow(0 3px 4px #000a);transform:rotate(-7deg)}
#gsOverlay .gsPerspectiveRoad .gsVehicleCharacter svg{width:100%;height:100%;display:block}
#gsOverlay .gsPerspectiveRoad .gsRacingPoints{position:relative;right:auto;top:auto;transform:none;color:#fffdf3;font-size:clamp(13px,1.3vw,19px);text-shadow:0 3px 6px black;background:#102a3fcf;padding:2px 8px;border-radius:8px;border:1px solid #ffffff70}
#gsOverlay .gsOneRoadRace .gsRaceFoot{font-size:clamp(11px,1vw,14px);margin:0 8px 3px;color:#e0eeff}
@keyframes gsOvertakingMove{0%{left:var(--gsCarFrom);top:var(--gsCarFromY);transform:translate(-50%,-50%) scale(.75);opacity:.55}42%{transform:translate(-50%,-56%) scale(1.19);opacity:1}100%{left:var(--gsCarTo);top:var(--gsCarToY);transform:translate(-50%,-50%) scale(var(--gsCarScale));opacity:1}}
@media(max-width:820px){#gsOverlay .gsRankingsStage .gsRacingRoad.gsPerspectiveRoad{max-height:69vh}#gsOverlay .gsPerspectiveRoad .gsRacingVehicle{width:clamp(90px,24vw,165px)!important}#gsOverlay .gsPerspectiveRoad .gsVehicleCharacter{width:clamp(32px,7vw,58px)!important;height:clamp(32px,7vw,58px)!important}#gsOverlay .gsPerspectiveRoad .gsVehicleName{font-size:clamp(10px,1.8vw,15px)}#gsOverlay .gsPerspectiveRoad .gsRacingFinish{width:31px}#gsOverlay .gsRaceHead{flex-wrap:wrap}}
@media(max-width:450px){#gsOverlay .gsPerspectiveRoad .gsRacingVehicle{width:clamp(83px,25vw,120px)!important}#gsOverlay .gsPerspectiveRoad .gsVehicleName{font-size:10px;padding:3px 4px}#gsOverlay .gsPerspectiveRoad .gsVehicleCharacter{width:33px!important;height:33px!important}#gsOverlay .gsRankingsStage .gsRacingRoad.gsPerspectiveRoad{max-height:64vh}#gsOverlay .gsRaceHead h2{font-size:22px}}
@media(prefers-reduced-motion:reduce){#gsOverlay .gsPerspectiveRoad .gsRacingVehicle{animation:none!important;left:var(--gsCarTo)!important;top:var(--gsCarToY)!important;transform:translate(-50%,-50%) scale(var(--gsCarScale))!important}}

/* Login polish: place the logo and login card a little above visual center.
   Increasing lower whitespace avoids a transformed card obscuring page scroll. */
@media(min-width:701px) and (min-height:650px){
 #usergate{padding-top:20px!important;padding-bottom:clamp(65px,10vh,116px)!important;box-sizing:border-box}
}
@media(min-width:701px) and (max-height:649px){
 #usergate{padding:10px 20px 12px!important;align-items:flex-start!important;justify-content:flex-start!important}
 #usergate .mdnaHomeStack{max-height:none!important;overflow-y:visible!important}
}
/* Breathing room between mode selector and subsequent login controls. */
#usergate .mdnaHomeStack>.userbox>.mdnaEntrySwitch{margin-bottom:clamp(13px,2vh,21px)!important}
@media(max-width:700px){
 #usergate{padding-top:8px!important}
 #usergate .mdnaHomeStack>.userbox>.mdnaEntrySwitch{margin-bottom:15px!important}
}

/* Theme art must be visible INSIDE the presenter canvas, not only in thin margins. */
#gsOverlay .gsWrap.gsTV:has(.gsPresenterStage) .gsPresenterStage{
 background-image:linear-gradient(125deg,#0b1826b8,#162644b0),var(--gs-scene),linear-gradient(135deg,var(--gs-theme-base),var(--gs-theme-accent))!important;
 background-size:cover,cover,cover!important;background-position:center!important;background-repeat:no-repeat!important;
}
/* Keep full name above a larger visible avatar above each car (not behind its nameplate). */
#gsOverlay .gsPerspectiveRoad .gsVehicleCharacter{top:-9%!important;}
