*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:system-ui,-apple-system,Segoe UI,sans-serif;color:#18354a;background:#f7fcff;line-height:1.5}a{color:#0b617a}button,input,select{font:inherit}button{cursor:pointer}.wrap{max-width:1120px;margin:auto;padding:0 22px}.skip{position:absolute;top:-100px;left:10px;background:white;z-index:50}.skip:focus{top:10px}.top{background:#fff;border-bottom:1px solid #dceaf0;position:sticky;top:0;z-index:10}.topbar{display:flex;align-items:center;justify-content:space-between;min-height:73px;gap:20px}.brand{text-decoration:none;font-weight:900;font-size:22px;color:#12536f}.brand small{display:block;font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:#5f7b8a}.top nav{display:flex;gap:18px;flex-wrap:wrap}.top nav a{font-size:14px;font-weight:700;text-decoration:none}.hero{margin:25px 0 0;background:linear-gradient(120deg,#d8f8e7,#dcefff);border:2px solid #cbe9ec;border-radius:26px;padding:clamp(26px,5vw,60px)}.eyebrow{font-size:13px;font-weight:900;text-transform:uppercase;color:#147288;letter-spacing:.09em}.hero h1{font-size:clamp(32px,5vw,55px);line-height:1.05;max-width:690px;margin:12px 0}.hero p{max-width:690px}.heroactions{display:flex;gap:12px;flex-wrap:wrap;margin-top:23px}.button{border:2px solid #126a82;background:#126a82;color:white;text-decoration:none;padding:12px 20px;border-radius:14px;display:inline-block;font-weight:800;min-height:48px}.button.secondary{color:#126a82;background:#fff}.button:disabled{opacity:.48;cursor:not-allowed}.parent{font-size:13px;color:#47636e}.section{padding:65px 0 10px;scroll-margin-top:80px}.section h2{font-size:clamp(28px,4vw,39px);line-height:1.2;margin:6px 0}.section-title{display:flex;justify-content:space-between;gap:15px;align-items:start}.count{border-radius:30px;background:#dbf5fc;padding:9px 14px;white-space:nowrap;font-weight:800}.filters{display:flex;gap:16px;flex-wrap:wrap;margin:22px 0}.filters label,.game-top label,.map-chooser{font-size:14px;font-weight:700}input,select{display:block;width:100%;min-height:45px;border:2px solid #b9d6e3;border-radius:10px;background:#fff;padding:8px 11px;margin-top:4px}.filters label:first-child{flex:2 1 220px}.filters label:last-child{flex:1 1 180px}.countrygrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:13px}.countrycard{min-height:166px;border:2px solid #d9eaf0;border-radius:17px;background:white;padding:15px;text-align:left;display:flex;align-items:flex-start;flex-direction:column;gap:8px;box-shadow:0 3px 0 #e7f2f6}.countrycard:hover,.countrycard:focus-visible{border-color:#11829b}.countrycard strong{font-size:16px}.countrycard small{color:#557483}.flag-img{display:block;width:96px;height:62px;object-fit:contain;border:1px solid #d8e3e8;background:#fff;border-radius:3px}.flag-emoji{font-size:58px;line-height:1;display:inline-block;min-height:62px}.gamewrap{padding-top:78px}.game-panel{background:#fff;border:2px solid #cde5ee;border-radius:22px;padding:25px;margin-top:20px;max-width:750px}.game-top,.game-bottom{display:flex;justify-content:space-between;align-items:center;gap:20px}.game-top label{max-width:190px;flex:1}.big-flag{min-height:170px;display:grid;place-items:center;padding:20px}.big-flag img{width:min(320px,100%);height:165px;object-fit:contain;border:1px solid #dce8ee}.big-flag .flag-emoji{font-size:125px;line-height:1}.answers{display:grid;grid-template-columns:1fr 1fr;gap:12px}.answer{border:2px solid #bddbe3;background:#f4fbfe;color:#123f55;min-height:58px;border-radius:13px;font-weight:800;padding:10px}.answer.correct{background:#dcf8df;border-color:#218a52}.answer.wrong{background:#ffebea;border-color:#bc514d}.answer:disabled{cursor:default}.feedback{min-height:27px;font-weight:800}.map-layout{display:grid;grid-template-columns:minmax(0,2fr) minmax(220px,1fr);gap:18px;margin-top:20px}.map-surface,.map-details{background:#fff;border:2px solid #d5e8ef;border-radius:18px;padding:13px}.map-surface svg{width:100%;height:auto;display:block}.map-note{font-size:12px;color:#607b88}.map-details{padding:20px}.map-details .flag-img{width:130px;height:88px}.map-details .flag-emoji{font-size:72px}.map-pin{cursor:pointer;fill:#ed694d;stroke:white;stroke-width:2.5;paint-order:stroke;outline:none}.map-pin:focus-visible,.map-pin:hover{fill:#a23a27;stroke:#153b4c;stroke-width:4}.map-chooser{display:block;max-width:380px;margin-top:15px}.parent-panel{margin:70px 0;padding:25px;background:#e9f8ef;border-radius:20px}.footer{padding:30px 0;background:#11394b;color:white;margin-top:50px}.footer a{color:#c9f4ff}@media(max-width:700px){.topbar{align-items:flex-start;padding-top:14px;padding-bottom:14px;flex-direction:column;gap:6px}.top nav{gap:13px}.section{padding-top:42px}.map-layout{grid-template-columns:1fr}.answers{grid-template-columns:1fr}.hero{margin-top:12px}.section-title{flex-wrap:wrap}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
/* World Ranger Flight Explorer v0.2 */
.flight-shell{border:2px solid #b6d7e4;background:#fff;border-radius:22px;overflow:hidden;margin-top:18px;box-shadow:0 8px 25px #0b5b7c15}.flight-toolbar{display:flex;justify-content:space-between;gap:12px;align-items:center;background:#0f617c;color:#fff;padding:12px 16px;flex-wrap:wrap}.flight-buttons{display:flex;gap:6px;flex-wrap:wrap}.flight-buttons button{min-height:43px;border-radius:10px;border:1px solid #b7edf7;background:#fff;color:#12546b;font-weight:800;padding:6px 11px}.flight-stage{height:min(70vh,650px);min-height:290px;overflow:hidden;background:#c8eaff;position:relative}.flight-stage svg{width:100%;height:100%;display:block;touch-action:none;user-select:none;cursor:grab}.flight-stage svg:active{cursor:grabbing}.geo-land{fill:#b8e4bd;stroke:#76a48e;stroke-width:.7;vector-effect:non-scaling-stroke;stroke-linejoin:round}.map-pin{fill:#ff7651;stroke:#fff;stroke-width:2.5;paint-order:stroke;cursor:pointer;vector-effect:non-scaling-stroke}.map-pin.selected{fill:#f9ba31;stroke:#173b55;stroke-width:4}.flight-trail{stroke:#fff;stroke-width:3;stroke-dasharray:7 5;opacity:.95;vector-effect:non-scaling-stroke}.flight-bottom{display:flex;align-items:center;gap:18px;justify-content:space-between;padding:15px;flex-wrap:wrap}.flight-bottom label{flex:1;min-width:200px;font-weight:800}.flight-info{flex:2;display:flex;align-items:center;gap:12px;min-height:70px;border-radius:15px;padding:10px 15px;background:#f0f9fc}.flight-info strong,.flight-info small{display:block}.flight-info small{color:#57717c}.flight-flag{font-size:40px}.flight-shell .map-note{margin:0;padding:0 15px 15px}.flight-shell:fullscreen,.flight-shell.fullscreen-fallback{background:#f6fcff;display:flex;flex-direction:column;width:100vw;height:100dvh;border:0;border-radius:0}.flight-shell:fullscreen .flight-stage,.flight-shell.fullscreen-fallback .flight-stage{flex:1;min-height:0;height:auto}.flight-shell.fullscreen-fallback{position:fixed;inset:0;z-index:1000}@media(max-width:700px){.flight-toolbar strong{font-size:13px}.flight-buttons button{font-size:13px}.flight-stage{height:51vh;min-height:300px}.flight-bottom{gap:8px}.flight-info{flex-basis:100%}}

/* v0.3: separate game screens and flag explorer welcome */
.page-view[hidden],.map-flashcard[hidden]{display:none!important}
.page-view{min-height:40vh}.page-back{padding-top:26px}.page-back .button{display:inline-flex}
.gamewrap{padding-top:30px}.top nav a[aria-current="page"]{text-decoration:underline;text-underline-offset:6px}
.map-flashcard{position:absolute;z-index:10;bottom:14px;left:14px;right:14px;max-width:510px;display:flex;align-items:flex-start;gap:8px;background:#fff;border:3px solid #1a819b;border-radius:19px;box-shadow:0 6px 30px #08344755;padding:12px}
.flight-shell{position:relative}.map-flashcard .flight-info{padding:0;min-height:0;background:transparent;flex:1;display:flex;gap:12px}
.map-card-flag .flag-img{height:74px;width:104px}.map-card-flag .flag-emoji{font-size:60px}.map-card-copy{display:flex;flex-direction:column;gap:3px}.map-card-copy strong{font-size:21px;color:#0c4155}.map-card-copy span{font-size:13px}.map-card-eyebrow{font-weight:800;color:#15836c;text-transform:uppercase;font-size:10px!important;letter-spacing:.07em}
#close-map-card{border:0;background:#e8f4f8;border-radius:9px;padding:6px 9px;cursor:pointer;color:#17465a;font-size:18px}
.flight-bottom{justify-content:flex-start}.flight-bottom label{flex:1 1 180px}.flight-set-home{background:#e9f5fc;border:2px solid #15677f;color:#0e4a61;border-radius:12px;padding:11px;font-weight:800;min-height:45px}
.flight-shell:fullscreen .map-flashcard,.flight-shell.fullscreen-fallback .map-flashcard{bottom:110px;max-width:520px}
@media(max-width:700px){.map-flashcard{left:8px;right:8px;bottom:8px;padding:9px}.map-card-flag .flag-img{width:72px;height:51px}.map-card-copy strong{font-size:17px}.map-card-copy span{font-size:11px}.flight-shell:fullscreen .map-flashcard,.flight-shell.fullscreen-fallback .map-flashcard{bottom:125px}.flight-bottom label{min-width:140px}}

/* V0.4 MOBILE-FIRST FINAL */
body[data-page="game"] .parent-panel,body[data-page="map"] .parent-panel,body[data-page="game"] .footer,body[data-page="map"] .footer{display:none}
.game-setup{background:linear-gradient(155deg,#ecfaff,#f7fbfd);padding:clamp(24px,5vw,58px);border:2px solid #cbe9ef;border-radius:24px;max-width:640px;margin:auto;text-align:center;display:flex;flex-direction:column;gap:16px;align-items:stretch}
.game-setup .setup-icon{font-size:60px}.game-setup h2{margin:0;font-size:clamp(28px,5vw,42px)}.game-setup select{min-height:54px;border:2px solid #84bccb;border-radius:15px;font-size:17px;padding:10px}.start-game{padding:17px;font-size:21px}.tiny-note{font-size:13px;color:#557688}
.game-play[hidden],.game-setup[hidden]{display:none!important}.game-play{background:linear-gradient(160deg,#e7f5fe,#f8fcff);padding:24px;border-radius:24px;min-height:65vh;text-align:center;display:flex;flex-direction:column;align-items:center;gap:14px}.game-play-header{width:100%;display:flex;align-items:center;justify-content:space-between;gap:10px}.game-exit{border:0;background:#fff;color:#14516c;padding:12px 15px;border-radius:12px;font-weight:800;min-height:48px}.game-progress{width:100%;max-width:700px;height:14px;background:#c9e3ef;border-radius:99px;overflow:hidden}.game-progress>div{height:100%;background:#3cb89a;transition:width .25s}.game-play .big-flag{margin:8px auto}.game-play .answers{width:100%;max-width:690px}.game-play .answer{min-height:64px;font-size:19px}.game-play .game-bottom{width:100%;max-width:690px}.game-play:fullscreen,.game-play.game-immersive{position:fixed;inset:0;width:100vw;height:100dvh;overflow:auto;z-index:99999;border-radius:0;padding:calc(14px + env(safe-area-inset-top)) 16px calc(18px + env(safe-area-inset-bottom));background:linear-gradient(160deg,#d7f1ff,#f6fbff)}
#map-airplane{filter:drop-shadow(1px 3px 2px #16445966);pointer-events:none}.flight-toolbar{position:relative;z-index:1}.flight-stage{height:min(73vh,720px)}.flight-bottom{padding:12px 16px}.flight-bottom label{font-size:14px}
.map-flashcard{position:absolute;left:50%;right:auto;transform:translateX(-50%);width:min(100% - 24px,580px);bottom:0;max-width:580px;border:2px solid #57b7ce;border-bottom:0;border-radius:24px 24px 0 0;box-shadow:0 -12px 30px #103e5455;padding:0 15px 16px;display:block;max-height:min(52vh,400px);overflow-y:auto;z-index:12}.map-flashcard .sheet-grab{height:5px;width:46px;margin:9px auto 14px;background:#aacbd4;border-radius:99px}.map-flashcard .sheet-content{display:flex;align-items:flex-start;gap:12px}.map-flashcard .flight-info{flex:1;display:flex;background:none;padding:0;gap:14px}.map-card-copy{gap:5px}.map-card-copy strong{font-size:25px}.map-card-copy .place-label{font-size:10px;font-weight:900;color:#0b8075;letter-spacing:.08em;margin-top:9px}.map-card-copy .place-name{font-size:17px;font-weight:800;color:#0d3c5b}.map-flashcard .flag-img{width:90px;height:65px;object-fit:contain}.map-flashcard .flag-emoji{font-size:52px}
.flight-shell:fullscreen .map-flashcard,.flight-shell.fullscreen-fallback .map-flashcard{bottom:0;max-width:580px}.map-flashcard[hidden]{display:none!important}
@media(max-width:700px){.flight-shell{border-radius:16px}.flight-stage{height:67dvh}.flight-toolbar{padding:9px}.flight-toolbar strong{width:100%;font-size:14px}.flight-buttons button{min-height:44px}.flight-bottom{display:grid;grid-template-columns:1fr 1fr}.flight-bottom label{min-width:0;font-size:13px}.flight-bottom select{width:100%;font-size:15px}.map-flashcard{width:calc(100% - 16px);max-height:46vh}.map-card-copy strong{font-size:20px}.map-card-copy .place-name{font-size:15px}.map-flashcard .flag-img{width:68px;height:50px}.map-flashcard .flag-emoji{font-size:40px}.game-play .answer{min-height:60px}.game-play .answers{grid-template-columns:1fr 1fr;gap:9px}}

/* V0.5 mobile-first visual upgrade */
body{background:linear-gradient(180deg,#e9f5ff 0%,#fbfeff 46%,#edf9f8 100%)}
.hero{position:relative;overflow:hidden;color:white;border:0;background:radial-gradient(circle at 85% 25%,#72d6e5aa,transparent 30%),linear-gradient(125deg,#084a77 0%,#137eac 50%,#79c1a0 100%);box-shadow:0 16px 40px #1357732b}
.hero:before{content:"🌍";position:absolute;right:4%;top:0;opacity:.19;font-size:clamp(120px,27vw,320px);line-height:1}
.hero>*{position:relative}.hero h1{color:#fff;text-shadow:0 3px 10px #093d5b55}.hero .eyebrow{color:#e4fcbb}.hero .parent{color:#ebf8fa}
.heroactions .button{box-shadow:0 6px 18px #00384b22}.countrycard{box-shadow:0 8px 22px #1652730d}
.game-setup,.landmark-card,.map-start-panel{background:linear-gradient(150deg,#ffffff,#eaf7ff);border:2px solid #c4e6ee;border-radius:28px;box-shadow:0 15px 35px #135e7a1c;padding:clamp(22px,5vw,40px);margin:25px auto;max-width:760px;text-align:center}
.game-setup select,.map-start-panel select{max-width:440px;margin:12px auto 20px}.map-start-panel[hidden]{display:none!important}
.map-start-art{font-size:clamp(65px,11vw,115px);line-height:1.4}.map-start-panel h3{font-size:30px;margin:8px}
.landmark-game{max-width:920px;margin:auto}.landmark-card h3{font-size:clamp(22px,4vw,33px)}
.landmark-card .answers{margin:24px 0}.landmark-card .answer{font-size:18px}
.game-result[hidden]{display:none!important}.game-result{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;max-width:690px;width:100%;flex:1;isolation:isolate}
.game-play.result-view>.big-flag,.game-play.result-view>#answers,.game-play.result-view>.feedback,.game-play.result-view>.game-bottom,.game-play.result-view>.game-progress,.game-play.result-view>h2{display:none!important}
.game-result h2{font-size:clamp(28px,6vw,48px);margin:0}.game-result p{font-size:18px;margin:0}.game-result strong{font-size:28px;color:#155e75}
.result-medal{font-size:100px;filter:drop-shadow(0 10px 12px #274e7430)}.result-actions{display:flex;flex-wrap:wrap;gap:12px;justify-content:center}
#confetti-layer{pointer-events:none;position:absolute;inset:0;overflow:hidden;z-index:-1}
#confetti-layer i{position:absolute;top:-15px;width:11px;height:17px;animation:confetti-drop 3.1s linear forwards}
@keyframes confetti-drop{0%{opacity:1;translate:0 -15px;rotate:0deg}100%{opacity:0;translate:50px 85vh;rotate:720deg}}
.map-flashcard{min-height:min(50dvh,470px);max-height:60dvh;width:min(100%,680px);padding:10px 22px calc(18px + env(safe-area-inset-bottom));background:linear-gradient(160deg,#fff,#f0fbfe);border-radius:26px 26px 0 0;box-shadow:0 -15px 50px #123d6550}
.flight-shell:fullscreen .map-flashcard,.flight-shell.fullscreen-fallback .map-flashcard{bottom:0;max-width:680px}
.map-flashcard .sheet-content{padding-top:12px}.map-flashcard .map-card-copy strong{font-size:clamp(24px,5vw,34px)}
.flight-stage{background:linear-gradient(155deg,#bce6ff,#d8f4fa)}.geo-land{fill:#bbdfb6;stroke:#71a994}
@media(max-width:700px){.map-flashcard{height:50dvh;min-height:0;max-height:55dvh;width:100%;border-radius:22px 22px 0 0}.hero{padding:27px}.top nav{gap:10px}.top nav a{font-size:12px}.game-setup{padding:20px}}
@media(prefers-reduced-motion:reduce){#confetti-layer i{animation:none!important}}

/* V0.6: Flag Explorer prioritized, reusable country flashcards and polished independent games */
#adventures{scroll-margin-top:90px}.adventures{padding-top:16px;padding-bottom:20px}
#explore{padding-top:26px}
#explore .section-title h2{font-size:clamp(22px,4vw,34px)}
.game-menu{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px;margin-top:22px}
.game-menu .button{text-align:center;padding:20px 13px;font-size:17px;border-radius:18px;box-shadow:0 10px 24px #1a536124}
.game-menu .button:nth-child(1){background:#176fb7;border-color:#176fb7}.game-menu .button:nth-child(2){background:#0d977d;border-color:#0d977d;color:white}.game-menu .button:nth-child(3){background:#edaf42;border-color:#edaf42;color:#283d52}
.flag-modal[hidden]{display:none!important}.flag-modal{position:fixed;inset:0;z-index:2000;display:grid;place-items:center;padding:16px}
.flag-modal-backdrop{position:absolute;inset:0;background:#072d49b8;backdrop-filter:blur(3px)}
.flag-dialog{position:relative;width:min(520px,100%);max-height:90dvh;overflow-y:auto;background:#fff;border-radius:25px;padding:28px 23px;box-shadow:0 20px 70px #081e3150}
.dialog-close{position:absolute;right:16px;top:14px;z-index:3;width:46px;height:46px;background:#e8f4f8;color:#17465a;border:0;border-radius:14px;font-size:23px}
.country-discovery{display:flex;flex-direction:column;gap:10px;min-width:0}
.discovery-title{display:flex;gap:15px;align-items:center;padding-right:38px}
.discovery-flag .flag-emoji{font-size:58px;line-height:1}.discovery-title h3{font-size:clamp(25px,5vw,35px);margin:0;color:#163e53}.discovery-title p{margin:0;color:#527083}
.place-label{color:#09837b;font-weight:900;letter-spacing:.05em;font-size:11px}
.discovery-destination{font-size:clamp(19px,4vw,25px);color:#154358}
.destination-photo{position:relative;height:clamp(170px,26dvh,270px);min-height:150px;background:#e9f6fd;border-radius:17px;overflow:hidden;display:grid;place-items:center}
.destination-photo-img{width:100%;height:100%;object-fit:cover;display:block}
.destination-photo-fallback{display:flex;align-items:center;justify-content:center;flex-direction:column;gap:5px;color:#3f6d81}
.destination-photo-fallback span{font-size:65px}.destination-photo-fallback small{font-size:13px}
.destination-photo-credit{position:absolute;bottom:0;left:0;right:0;background:#082c449e;color:white;font-size:10px;padding:5px 8px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
#map-details{width:100%;min-height:0;display:block;background:transparent;padding:0}
.map-flashcard{left:50%!important;right:auto!important;transform:translateX(-50%);width:min(700px,100%)!important;bottom:0!important;height:min(56dvh,540px);max-height:min(60dvh,600px)!important;overflow-y:auto;border-radius:26px 26px 0 0!important;align-items:stretch}
.map-flashcard .sheet-content{display:block;position:relative;width:100%;padding-right:0}
.map-flashcard #close-map-card{position:absolute;top:12px;right:0;z-index:4;min-height:44px;min-width:44px}
.map-flashcard .destination-photo{height:clamp(150px,22dvh,260px)}
.flight-shell:fullscreen .flight-toolbar,.flight-shell.fullscreen-fallback .flight-toolbar{flex-shrink:0}
#map-exit{background:#fff0ed;border-color:#ffcbc6;color:#a43d32}
.landmark-quiz-photo{width:min(550px,100%);margin:0 auto 18px;display:flex;align-items:center;flex-direction:column;gap:10px}
.landmark-quiz-photo .quiz-photo-media{width:100%;height:clamp(155px,27dvh,280px);border-radius:19px;overflow:hidden;position:relative;background:#e8f6fd;display:grid;place-items:center}
.landmark-quiz-photo #lm-clue{color:#194c62;font-size:clamp(18px,3vw,23px)}
#lm-play .game-result[hidden]{display:none!important}
#lm-play.result-view>.game-progress,#lm-play.result-view>h2,#lm-play.result-view>.landmark-quiz-photo,#lm-play.result-view>#lm-answers,#lm-play.result-view>#lm-feedback,#lm-play.result-view>.game-bottom{display:none!important}
.confetti-layer{pointer-events:none;position:absolute;inset:0;overflow:hidden;z-index:-1}
.confetti-layer i{position:absolute;top:-15px;width:11px;height:17px;animation:confetti-drop 3.1s linear forwards}
#lm-play .answers{width:min(680px,100%);margin:0 auto}
#lm-play .game-bottom{width:min(680px,100%);margin:10px auto}
#lm-play .feedback{width:min(680px,100%);margin:12px auto}
body[data-page="landmark"] .footer{display:none}
body.modal-open{overflow:hidden}
@media(max-width:700px){.flag-dialog{padding:24px 17px}.map-flashcard{height:56dvh;min-height:0;max-height:60dvh}.map-flashcard .destination-photo{height:19dvh}.game-menu{grid-template-columns:1fr 1fr;gap:9px}.game-menu .button{font-size:14px;padding:15px 6px}.flight-buttons{align-items:center}.flight-toolbar strong{max-width:100%}}
@media(prefers-reduced-motion:reduce){.confetti-layer i{animation:none!important}}

.visually-hidden{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
