/* GeoGames expedition skin. Scientific stages keep their own scales and controls. */
body[data-screen="play"]{background-color:#073c68;background-image:radial-gradient(circle at 8% 10%,#20c9e544,transparent 32%),radial-gradient(circle at 95% 50%,#4f66d455,transparent 40%),linear-gradient(150deg,#07527b,#102f62);color:#fff}
[data-screen="play"] .gs-topbar{background:#082d59e8;border-bottom:3px solid #48d9f44d;box-shadow:0 4px 0 #031e3929}
[data-screen="play"] .gs-icon-btn{border:2px solid #ffffff55;background:#174c7e;border-radius:15px;box-shadow:0 4px 0 #061e3d;color:white;min-height:44px;min-width:44px}
[data-screen="play"] .gs-hud-score{background:#fff2b4;color:#71420d;border:2px solid #ffd255;border-radius:15px;box-shadow:0 4px 0 #9d6718;padding:8px 16px;transform:rotate(-2deg)}
[data-screen="play"] .play-heading{padding-top:22px}
[data-screen="play"] .play-heading h1{font-size:clamp(22px,3vw,34px);text-shadow:0 3px 0 #042b55}
[data-screen="play"] .play-heading .eyebrow{color:#91e6fa;font-size:11px}
[data-screen="play"] .game-icon{background:#fff1c4;border:3px solid #ffce60;border-radius:19px;box-shadow:0 5px 0 #032c54;transform:rotate(-7deg);width:58px;height:58px;font-size:32px}
[data-screen="play"] .schedule-link{color:#fff0bb}
[data-screen="play"] .geogo-guide{position:relative;display:grid;grid-template-columns:155px minmax(0,1fr) 118px;gap:22px;align-items:center;min-height:164px;padding:12px 24px 12px 12px;margin:12px 0 25px;background:linear-gradient(110deg,#0b527b,#0d416b);border:2px solid #5fbed588;border-radius:28px;box-shadow:0 7px 0 #04294c;overflow:visible}
.geogo-character{position:relative;display:flex;align-items:center;justify-content:center;min-height:150px;background:radial-gradient(ellipse,#6de9f855,transparent 68%)}
[data-screen="play"] .guide-mascot{position:relative;order:0;width:145px;height:151px;object-fit:contain;margin:-22px 0 -5px;filter:drop-shadow(0 7px 3px #001f3f66);z-index:1}
.partner-badge{position:absolute;top:-11px;left:0;z-index:2;background:#ffc958;color:#60390d;font:900 8px/1.4 var(--ui);letter-spacing:.08em;padding:5px 9px;border-radius:7px;transform:rotate(-5deg)}
.geogo-name{position:absolute;bottom:0;z-index:2;font:900 14px DynaPuff;color:#fff;text-shadow:0 2px 0 #07527b;letter-spacing:.08em}
.geogo-dialogue{position:relative;background:#fffef0;border:3px solid #fff;border-radius:20px;padding:14px 19px;color:#153452;box-shadow:0 5px 0 #002b4866}
.geogo-dialogue:before{content:"";position:absolute;left:-15px;top:32px;border-width:10px 15px 10px 0;border-style:solid;border-color:transparent #fff transparent transparent}
.geogo-caption{font:900 10px var(--ui);letter-spacing:.1em;color:#126c8b}
[data-screen="play"] .guide-message{max-width:none;font:800 15px/1.5 var(--ui);color:#183f61;margin:5px 0 9px;padding:0;background:none}
.geogo-tip{font:900 12px var(--ui);background:#d8f4ff;color:#07527b;border:1px solid #86cadd;border-bottom:3px solid #86cadd;border-radius:10px;padding:8px 12px;min-height:36px;cursor:pointer}
.geogo-tip-text{font:700 13px/1.6 var(--ui);padding-top:10px;margin:8px 0 0;border-top:1px dashed #9ac5cb}
.expedition-seal{width:108px;height:108px;display:flex;flex-direction:column;align-items:center;justify-content:center;border:3px dashed #f8d67888;border-radius:50%;transform:rotate(12deg);color:#ffe9a7;font:900 10px/1.6 var(--ui);text-align:center}
.expedition-seal span{font-size:33px}
[data-mood="celebrate"] .geogo-caption{color:#177452}
[data-mood="celebrate"] .geogo-dialogue{background:#f0ffe8;border-color:#a9ed89}
[data-mood="encourage"] .geogo-dialogue{background:#fff4de;border-color:#ffd780}
[data-screen="play"] .stats{gap:10px;margin-bottom:13px;flex-wrap:wrap}
[data-screen="play"] .stats span,[data-screen="play"] .stats span+span{background:#123d6e;color:#c9f1ff;border:1px solid #72bdd366;border-radius:10px;padding:7px 12px;box-shadow:0 3px 0 #032b4b;margin-left:0;font-size:11px}
[data-screen="play"] .stats span:first-child{background:#ffce62;color:#603d0e;border-color:#ffe49b}
[data-screen="play"] progress{height:12px;border:2px solid #7ac5de66;border-radius:20px;background:#082f52;margin-bottom:17px;overflow:hidden}
[data-screen="play"] progress::-webkit-progress-bar{background:#082f52}
[data-screen="play"] progress::-webkit-progress-value{background:repeating-linear-gradient(120deg,#ffcf58 0 12px,#ffe28b 12px 22px);border-radius:20px}
[data-screen="play"] progress::-moz-progress-bar{background:#ffd567}
[data-screen="play"] .challenge-card{border:3px solid #d7f4ff;border-radius:26px;box-shadow:0 9px 0 #03274488;overflow:hidden;background:#fffdf5}
[data-screen="play"] .challenge-question{position:relative;background:linear-gradient(110deg,#fff4ce,#fffdf2 75%);border-bottom:2px dashed #e0c88b;padding:21px 25px}
[data-screen="play"] .challenge-question .task-label{color:#99621a;font-size:10px;letter-spacing:.13em}
[data-screen="play"] .challenge-question h2{color:#143c60;font-size:clamp(20px,2.3vw,29px);font-weight:900;line-height:1.35}
[data-screen="play"] .answer-panel{background:#fffdf5;padding:24px}
[data-screen="play"] .answer-panel-heading{color:#125772;border-bottom:2px dashed #c9dce2;padding-bottom:13px;margin-bottom:18px}
[data-screen="play"] .answer-panel-heading>span{font:800 13px DynaPuff}
[data-screen="play"] .options{gap:12px}
[data-screen="play"] .options button{position:relative;display:flex;align-items:center;gap:12px;min-height:64px;padding:10px 15px 10px 10px;border:2px solid #b8d7e5;border-bottom-width:5px;border-radius:17px;background:linear-gradient(#fff,#edf8ff);box-shadow:0 2px 0 #c5dfec;color:#17476a;font:900 15px/1.35 var(--ui);text-align:left;transition:transform .14s,border-color .14s,background .14s}
[data-screen="play"] .options button:nth-child(2n){background:linear-gradient(#fff,#f1efff);border-color:#c9c5e7}
[data-screen="play"] .options button:not(:disabled):hover{transform:translateY(-3px) rotate(-.4deg);border-color:#20a7d5;background:#e0f7ff}
[data-screen="play"] .options button:not(:disabled):active{transform:translateY(3px);border-bottom-width:2px}
[data-screen="play"] .answer-letter{flex:0 0 35px;display:grid;place-items:center;width:35px;height:35px;border:2px solid #fff;border-radius:12px;background:#118bb7;color:#fff;font:800 16px DynaPuff;box-shadow:0 3px 0 #076186;transform:rotate(-5deg)}
[data-screen="play"] .options button:nth-child(2n) .answer-letter{background:#8060bc;box-shadow:0 3px 0 #583d8c;transform:rotate(5deg)}
[data-screen="play"] .options button.correct{background:#e3f9cf;border-color:#77ba50;color:#225121;opacity:1}
[data-screen="play"] .options button.incorrect{background:#fff0dd;border-color:#e5a054;color:#76431e;opacity:1}
[data-screen="play"] .options button:disabled:not(.correct):not(.incorrect){opacity:.57}
[data-screen="play"] .options button.correct .answer-letter{background:#438b35;box-shadow:0 3px 0 #24541e}
[data-screen="play"] .continue-button,[data-screen="play"] .confirm-location:not(:disabled),[data-screen="play"] #again{background:linear-gradient(#ffdb73,#ffbb3e);color:#593708;border:2px solid #ffeaa8;border-bottom:5px solid #bc791c;border-radius:15px;box-shadow:0 3px 0 #ead6a2;font:900 15px var(--ui);min-height:52px;padding:13px 20px}
[data-screen="play"] .continue-button:hover,[data-screen="play"] .confirm-location:not(:disabled):hover{filter:brightness(1.06);transform:translateY(-2px)}
[data-screen="play"] .confirm-location:disabled{border:2px dashed #b9ccd7;background:#eaf0f4;color:#617988;border-radius:15px;min-height:52px}
[data-screen="play"] .feedback{border:2px solid #a9d78b;border-left:7px solid #77b34e;border-radius:16px;background:#f0fbe7;box-shadow:0 4px 0 #d8e7cc}
[data-screen="play"] .feedback.wrong{background:#fff3dc;border-color:#edc583;border-left-color:#df9e37;box-shadow:0 4px 0 #efdfc2}
[data-screen="play"] .hint-navigation button{border-radius:12px;border-bottom-width:4px}
[data-screen="play"] .hint-navigation button[aria-pressed="true"]{background:#ffe7a7;color:#593b0f;border-color:#d5a248}
[data-screen="play"] input{border-radius:12px;border-width:2px}
[data-screen="play"] .map-toolbar button,[data-screen="play"] .instrument-toolbar button{border-radius:11px;min-width:44px;min-height:44px;border-bottom-width:3px}
.discovery-stamp{display:inline-block;margin-top:12px;border:2px dashed #bf8128;color:#986019;border-radius:8px;padding:5px 10px;font:900 10px var(--ui);transform:rotate(-3deg);background:#fff7e4}
.discovery-stamp.is-win{color:#357932;border-color:#73a750;background:#f2ffe5}
.star-burst{position:absolute;left:90px;top:60px;pointer-events:none;z-index:5}
.star-burst i{position:absolute;color:#ffdb66;font-style:normal;font-size:25px;animation:geogo-stars 1s ease-out both}
@keyframes geogo-stars{0%{opacity:0;transform:translate(0,0) scale(.2)}20%{opacity:1}100%{opacity:0;transform:translate(var(--x),-100px) rotate(var(--r)) scale(.7)}}
@media(min-width:1000px){[data-screen="play"] .geogo-guide{grid-template-columns:175px minmax(0,1fr) 118px}[data-screen="play"] .guide-mascot{height:170px;width:165px;margin-top:-32px}}
@media(max-width:650px){[data-screen="play"] .play-layout{padding:0 12px 16px}[data-screen="play"] .play-heading{padding:18px 14px 10px}[data-screen="play"] .game-icon{width:44px;height:44px;font-size:26px}[data-screen="play"] .geogo-guide{grid-template-columns:82px minmax(0,1fr);gap:9px;min-height:118px;margin:10px 0 20px;padding:10px 10px 10px 5px;border-radius:20px}.geogo-character{min-height:110px}[data-screen="play"] .guide-mascot{width:85px;height:115px;margin:0}.partner-badge{font-size:6px;padding:3px 4px;top:0}.geogo-name{font-size:10px;bottom:-2px}.geogo-dialogue{padding:10px;border-radius:15px}.geogo-caption{font-size:8px}[data-screen="play"] .guide-message{font-size:12px;line-height:1.4;margin:5px 0 7px}.geogo-tip{font-size:11px;padding:7px 9px;min-height:36px}.geogo-tip-text{font-size:12px}.expedition-seal{display:none}[data-screen="play"] .challenge-question{padding:18px 16px}[data-screen="play"] .answer-panel{padding:18px 14px}[data-screen="play"] .options button{min-height:59px;font-size:14px}[data-screen="play"] .stats span,[data-screen="play"] .stats span+span{font-size:9px;padding:6px 8px}.star-burst{left:45px;top:40px}}
@media(prefers-reduced-motion:reduce){[data-screen="play"] *,[data-screen="play"] *:before,[data-screen="play"] *:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
[data-screen="play"] button:focus-visible,[data-screen="play"] a:focus-visible{outline:3px solid #ee9a13;outline-offset:4px}
[data-screen="play"] .geogo-guide{top:auto}
[data-screen="play"] .guide-mascot{grid-column:auto;grid-row:auto}
[data-screen="play"] .guide-message{grid-column:auto;grid-row:auto}
.geogo-lesson{display:inline-block;margin:6px 0 0 12px;color:#185c79;font:800 11px var(--ui);text-underline-offset:3px}
[data-screen="play"] .feedback{position:relative;min-height:95px;padding-left:86px}
[data-screen="play"] .feedback:before{content:"";position:absolute;left:10px;top:15px;width:60px;height:65px;background:url('/shared/geogo/geogo-win.webp') center/contain no-repeat;filter:drop-shadow(0 3px 1px #215c3022)}
[data-screen="play"] .feedback.wrong:before{background-image:url('/shared/geogo/geogo-point.webp')}
@media(max-width:650px){[data-screen="play"] .feedback{padding-left:69px}[data-screen="play"] .feedback:before{left:7px;width:48px;height:58px}}
/* Keep the current clue above the globe, close to its navigation on every screen. */
.hint-unlock-note{color:#315774;font:800 12px/1.5 var(--ui);margin:0 0 10px}
.daily-challenge .hint-monitor{margin-top:0;scroll-margin-block:90px;outline-offset:4px}
.daily-challenge .hint-navigation{margin-bottom:18px}
.daily-challenge .hint-navigation button>i{display:block;font-size:8px;font-style:normal;line-height:1.3}
.daily-challenge .hint-monitor:focus-visible{outline:3px solid #e5a526}
/* Stable vector atlas: redraw only after direct user input. */
.flat-atlas{display:flex;flex-direction:column;min-height:0;background:linear-gradient(145deg,#153e5a,#0d2b45);border:2px solid #417c9a66;border-radius:18px;overflow:hidden}
.flat-atlas .scene-toolbar{position:static;padding:15px 16px 8px;flex-wrap:wrap}
.world-atlas{display:block;width:100%;height:auto;aspect-ratio:2950/1750;min-height:150px;max-height:380px;touch-action:pan-y;cursor:grab;outline-offset:-4px}
.world-atlas:active{cursor:grabbing}
.world-atlas:focus-visible{outline:3px solid #ffcf62}
.atlas-land{fill:#91c8ac;stroke:#d4ead8;stroke-width:1.2;stroke-linejoin:round}
.atlas-lakes{fill:#153e5a;stroke:none}
.atlas-grid{fill:none;stroke:#91c9e3;stroke-width:1;opacity:.22}
.atlas-grid .atlas-equator{stroke:#ffe3a2;stroke-width:2;stroke-dasharray:10 12}
.atlas-footer{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 15px 14px;border-top:1px solid #70a7c330}
.atlas-footer>span{font:700 10px/1.5 var(--ui);color:#c1dce9;max-width:55%}
.atlas-controls{display:flex;align-items:center;gap:6px}
.atlas-controls button{display:grid;place-items:center;min-width:40px;min-height:40px;border:1px solid #78adc466;border-bottom:3px solid #09253d;border-radius:10px;background:#285673;color:#fff1be;font:900 21px var(--ui);cursor:pointer}
.atlas-controls button:hover{background:#3a7390}
.atlas-controls output{font:800 10px var(--ui);color:#d3e8f1;min-width:30px;text-align:center}
.atlas-event-pin{fill:#ffd771;stroke:#fff2c4;stroke-width:3}
.atlas-event-pin .atlas-pin-halo{fill:#ffc34e33;stroke:#ffd77199;stroke-width:2}
.atlas-event-pin path{fill:none;stroke-width:4}
@media(max-width:650px){.flat-atlas .scene-toolbar{padding:12px 11px 5px}.atlas-footer{flex-wrap:wrap;padding:9px 10px;gap:7px}.atlas-footer>span{max-width:100%;flex:1 1 130px;font-size:9px}.atlas-controls button{min-width:36px;min-height:38px}.world-atlas{min-height:175px;touch-action:none}}
.political-country{stroke:#254455;stroke-width:1.2;stroke-linejoin:round;vector-effect:non-scaling-stroke}
.political-country.is-subject{fill:#ffca55;stroke:#855219;stroke-width:2.4}
.political-label{text-anchor:middle;dominant-baseline:middle;font:800 20px var(--ui);fill:#17344d;stroke:#fff9e6;stroke-width:3px;paint-order:stroke;pointer-events:none}
.political-label.is-subject-label{font-size:25px;font-weight:1000;fill:#653e0c;stroke:#fff0b6;stroke-width:5px}
.province-label{font-size:10px;stroke-width:2px}
.province-label.is-subject-label{font-size:15px;stroke-width:3px}
.atlas-context-legend{padding:8px 14px 11px;font:800 11px/1.5 var(--ui);color:#ffe5a1;background:#102c44}
.question-location{margin-top:16px}
.question-location[hidden]{display:none}
.question-location .flat-atlas{margin:0}
