@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=DM+Serif+Display:ital@0;1&display=swap');
:root{font-family:'DM Sans',sans-serif;color:#172720;background:#bdcfd0;--lime:#d6b37a;--ink:#172720}*{box-sizing:border-box}body{margin:0}button,input{font:inherit}button{cursor:pointer}button:disabled{cursor:wait;opacity:.55}button:focus-visible,a:focus-visible,input:focus-visible{outline:3px solid #5a982d;outline-offset:4px}[hidden]{display:none!important}#world,#vignette{position:fixed;inset:0}#vignette{pointer-events:none;background:linear-gradient(90deg,#f3f2e9 0%,#f3f2e9ee 29%,#f3f2e96b 53%,transparent 77%)}body[data-phase=flight] #vignette{background:linear-gradient(#0e211f55,transparent 30%,transparent 75%,#0e211f55)}#brand{position:fixed;z-index:5;top:30px;left:42px;right:42px;display:flex;justify-content:space-between;align-items:center;pointer-events:none}#brand a{display:flex;align-items:center;gap:12px;text-decoration:none;color:inherit;pointer-events:auto}#brand svg{width:42px;fill:none;stroke:currentColor;stroke-width:2}#brand span{font-size:15px;letter-spacing:2px}#brand b{font-weight:400}#brand small{display:block;font-size:8px;letter-spacing:2px;margin-top:5px}.preview{font-size:10px!important;background:#f5f4e9d9;padding:10px 14px;border-radius:30px}.preview i{display:inline-block;width:6px;height:6px;border-radius:50%;background:#548859;margin-left:8px}body[data-phase=flight] #brand{color:white}body[data-phase=flight] .preview{display:none}#home{position:relative;z-index:2;min-height:100dvh;padding:128px 6vw 80px;display:flex;align-items:center;justify-content:space-between;gap:50px}.hero-copy{width:480px;max-width:100%}.eyebrow{font-size:10px;letter-spacing:2px;font-weight:700;margin:0 0 16px}h1,h2{font-family:'DM Serif Display',Georgia,serif;font-weight:400;margin:0}h1{font-size:clamp(52px,5.2vw,78px);line-height:1.02;letter-spacing:-2px}h1 em{font-weight:400;color:#517353}.intro{font-size:16px;line-height:1.6;margin:22px 0}form{max-width:390px}label,legend{font-size:10px;font-weight:700;letter-spacing:1.5px}input{display:block;width:100%;border:1px solid #17272033;background:#fff9;border-radius:8px;padding:13px 16px;margin:9px 0;color:var(--ink)}#name-hint{font-size:10px;color:#53645c}fieldset{padding:0;border:0;margin:22px 0 20px}legend{margin-bottom:10px}#difficulty,.tabs{display:flex;gap:5px;background:#1727200b;padding:4px;border-radius:9px}#difficulty button,.tabs button{flex:1;border:0;border-radius:6px;padding:10px;background:transparent;color:inherit;font-weight:600;font-size:12px}#difficulty button.selected,.tabs button.selected{background:var(--ink);color:white}#difficulty-description{font-size:12px;margin:10px 0 0;color:#53645c;min-height:18px}.primary{border:0;background:var(--lime);color:var(--ink);border-radius:8px;padding:16px 20px;font-weight:700;width:100%;display:flex;align-items:center;justify-content:space-between;gap:16px}.primary span{font-size:21px}#load-status{font-size:11px;color:#53645c;margin:10px 0}.home-controls{font-size:11px;color:#53645c;margin-top:24px}.home-controls b{font-size:10px}.leaderboard{width:350px;max-width:100%;background:#f5f4ecee;border:1px solid #fff9;border-radius:16px;box-shadow:0 15px 60px #16272020;padding:26px;backdrop-filter:blur(12px);margin-top:40px}.board-heading{display:flex;justify-content:space-between;align-items:center}.board-heading .eyebrow{font-size:8px;margin-bottom:6px}.board-heading h2{font-size:30px}.board-heading>span{font-size:30px}.tabs{margin:20px 0 18px}.board-labels{display:flex;justify-content:space-between;font-size:8px;letter-spacing:1.3px;color:#64756c}#board{list-style:none;padding:0;margin:8px 0}#board li{display:flex;align-items:center;gap:10px;border-top:1px solid #17272015;padding:12px 0;font-size:12px}#board .rank{width:20px;color:#728275;font-size:10px}#board .pilot{flex:1;overflow-wrap:anywhere}#board .result{text-align:right;font-weight:700}#board .result small{display:block;color:#718076;font-size:10px;font-weight:400;margin-top:3px}#board-status{font-size:12px;color:#65756a;line-height:1.5}.board-note{font-size:10px;color:#718076;line-height:1.6;border-top:1px solid #17272018;padding-top:14px;margin:18px 0 0}#legal{position:fixed;z-index:9;bottom:0;left:0;right:0;display:flex;justify-content:space-between;align-items:flex-end;gap:8px;padding:7px 16px;background:#172720c9;color:white;font-size:8px;pointer-events:none}#credits{pointer-events:auto;max-width:78%;text-align:right;font-size:9px}#credits a{color:white}.cesium-viewer-bottom{display:none}.cesium-credit-textContainer,.cesium-credit-logoContainer{display:inline!important}#flight-ui{position:fixed;inset:0;z-index:3;pointer-events:none}#flight-ui button,#touch-controls{pointer-events:auto}.run-stats{position:absolute;top:28px;right:32px;display:flex;gap:24px;align-items:center;background:#172720dc;color:white;padding:12px 16px;border:1px solid #ffffff26;border-radius:12px}.run-stats small{display:block;font-size:8px;letter-spacing:1.5px;color:#d6ded0;margin-bottom:4px}.run-stats b{font-size:22px;font-variant-numeric:tabular-nums}.run-stats button{background:#ffffff18;border:1px solid #ffffff33;color:white;border-radius:8px;width:38px;height:38px}.objective{position:absolute;top:116px;left:42px;width:310px;background:#f4f3e9f2;padding:22px;border-radius:12px;box-shadow:0 12px 40px #17272020}.objective .eyebrow{font-size:9px;margin-bottom:9px}.objective h2{font-size:30px;line-height:1.1}.objective>p:not(.eyebrow){font-size:12px;line-height:1.55;color:#58695d;margin:12px 0}#dots{display:flex;gap:5px;margin-top:18px}#dots i{flex:1;height:4px;border-radius:4px;background:#17272022}#dots i.done{background:#638356}#dots i.current{background:#8ba53d}#navigation{position:absolute;top:118px;right:32px;display:flex;align-items:center;gap:12px;color:white;background:#172720d9;border:1px solid #ffffff26;border-radius:12px;padding:14px 20px}#direction-arrow{display:block;font-size:48px;line-height:1;width:44px;text-align:center;color:var(--lime)}#navigation b{font-size:18px}#navigation small{display:block;margin-top:5px;font-size:11px;color:#e2e9d9}#radar{position:absolute;right:32px;bottom:100px;width:210px;background:#172720e8;color:white;padding:10px;border:1px solid #ffffff26;border-radius:12px}.radar-caption{display:flex;justify-content:space-between;font-size:8px;letter-spacing:1px;margin:4px}.radar-caption b{color:var(--lime)}#radar svg{width:100%;display:block}#radar>small{font-size:8px;color:#c4d0c5}.telemetry{position:absolute;bottom:104px;left:42px;display:flex;gap:16px;background:#172720c9;color:white;border-radius:8px;padding:10px 14px;font-size:11px;font-variant-numeric:tabular-nums}.flight-controls{position:absolute;bottom:47px;left:42px;display:flex;gap:22px;color:white;font-size:10px;align-items:center}kbd{display:inline-block;padding:4px 6px;border:1px solid #ffffff55;border-radius:4px;margin-right:3px;background:#17272088;font:inherit}#touch-controls{display:none}#dialog-backdrop{position:fixed;z-index:10;inset:0;background:#0c211f77;backdrop-filter:blur(6px);display:flex;align-items:center;justify-content:center;padding:24px;overflow:auto}#dialog{background:#f5f4eb;border-radius:18px;padding:36px;width:540px;max-width:100%;max-height:calc(100dvh - 48px);overflow:auto;box-shadow:0 20px 100px #0e211f44}#dialog h2{font-size:37px;line-height:1.1}#dialog p{font-size:14px;line-height:1.6;color:#536458}#dialog .eyebrow{font-size:10px;color:#5b715d;margin-bottom:12px}#question-prompt{font-weight:600;color:var(--ink)!important;margin:24px 0 14px}.answer{display:flex;gap:12px;text-align:left;width:100%;padding:15px;border:1px solid #17272022;background:#fff8;border-radius:9px;margin:9px 0;color:var(--ink);font-size:14px;line-height:1.4}.answer b{font-size:11px;border:1px solid #17272033;border-radius:4px;width:24px;min-width:24px;height:24px;text-align:center;line-height:22px}.answer.correct{background:#d6b37a88;border-color:#7c963a}.answer.wrong{background:#ead9cb}.answer:disabled{cursor:default;opacity:1}#feedback{font-size:13px!important}#continue{margin-top:20px}.secondary{border:1px solid #17272033;border-radius:8px;padding:13px 18px;color:var(--ink);background:transparent;width:100%;margin-top:10px}.finish-stats{display:flex;gap:40px;margin:25px 0}.finish-stats small{display:block;font-size:10px;letter-spacing:1px}.finish-stats strong{font-family:'DM Serif Display',serif;font-size:44px;font-weight:400}.source{font-size:11px;color:#52754e}#toast{position:fixed;z-index:12;left:50%;bottom:40px;transform:translateX(-50%);background:#172720ef;color:white;padding:13px 20px;border-radius:9px;font-size:12px;max-width:90%;text-align:center}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}
@media(max-width:900px){#brand{left:24px;right:24px;top:24px}.preview{display:none}#home{padding:110px 24px 70px;gap:25px}.hero-copy{width:400px}h1{font-size:56px}.leaderboard{width:300px;padding:20px}.objective{left:24px;width:270px}.run-stats{right:24px}.telemetry,.flight-controls{left:24px}#radar{right:24px}}
@media(max-width:650px){#brand{top:17px;left:20px;right:20px}#brand svg{width:32px}#brand span{font-size:12px}#brand small{font-size:7px}#home{display:block;padding:102px 24px 70px}#vignette{background:linear-gradient(90deg,#f3f2e9f2,#f3f2e9bc)}h1{font-size:53px}.intro{font-size:14px;margin:18px 0}.hero-copy{width:100%}form{max-width:none}.leaderboard{width:100%;margin:34px 0 0}.home-controls{font-size:10px;margin-top:18px}#legal>span{display:none}#credits{max-width:100%;width:100%}body[data-phase=flight] #brand{top:18px;left:16px}body[data-phase=flight] #brand small,body[data-phase=flight] #brand svg{display:none}.run-stats{top:51px;right:16px;left:16px;justify-content:space-between;gap:14px;padding:9px 13px}.run-stats b{font-size:20px}.objective{top:128px;left:16px;right:16px;width:auto;padding:15px 17px}.objective h2{font-size:25px}.objective .eyebrow{margin-bottom:5px}.objective>p:not(.eyebrow){margin:7px 0;font-size:11px}#dots{margin-top:10px}#navigation{top:287px;right:16px;padding:8px 12px;gap:8px}#direction-arrow{font-size:34px;width:32px}#navigation b{font-size:14px}#navigation small{font-size:10px}.telemetry{bottom:183px;left:16px;font-size:9px;padding:7px 9px;gap:10px}.flight-controls{display:none}#touch-controls{display:flex;position:absolute;bottom:45px;left:20px;right:20px;justify-content:space-between;align-items:flex-end;pointer-events:none}#stick{width:112px;height:112px;border-radius:50%;border:1px solid #ffffff66;background:#17272077;position:relative;touch-action:none;pointer-events:auto}#nub{position:absolute;width:44px;height:44px;border-radius:50%;background:#e8eddfb3;top:33px;left:33px;pointer-events:none}#stick small{position:absolute;color:#fff9;font-size:8px;letter-spacing:1.5px;bottom:10px;width:100%;text-align:center}.vertical-controls{display:flex;flex-direction:column;gap:8px;pointer-events:auto}.vertical-controls button{width:55px;height:52px;border:1px solid #ffffff55;border-radius:12px;background:#17272099;color:white;font-size:24px;touch-action:none}.vertical-controls small{display:block;font-size:7px;letter-spacing:1px}#radar{width:150px;bottom:182px;right:16px;padding:7px}#radar .radar-caption{font-size:6px}#radar>small{font-size:7px}#dialog-backdrop{padding:16px}#dialog{padding:24px;max-height:calc(100dvh - 32px)}#dialog h2{font-size:30px}.answer{font-size:13px;padding:13px;min-height:52px}#dialog p{font-size:13px}.finish-stats{gap:30px}.finish-stats strong{font-size:38px}}
@media(pointer:coarse) and (min-width:651px){#touch-controls{display:flex;position:absolute;bottom:55px;left:42px;right:42px;justify-content:space-between;pointer-events:none}#stick{width:110px;height:110px;background:#17272088;border:1px solid #ffffff66;border-radius:50%;position:relative;touch-action:none;pointer-events:auto}#nub{position:absolute;width:44px;height:44px;left:33px;top:33px;background:#fff9;border-radius:50%}#stick small{display:none}.vertical-controls{display:flex;gap:8px;pointer-events:auto}.vertical-controls button{background:#17272099;color:white;border:1px solid #fff6;border-radius:10px;width:60px;height:60px;font-size:24px;touch-action:none}.vertical-controls small{display:block;font-size:8px}.flight-controls{display:none}.telemetry{bottom:185px}#radar{bottom:190px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}
@media(pointer:coarse) and (orientation:landscape) and (max-height:550px){body[data-phase=flight] #brand{top:19px;left:16px}body[data-phase=flight] #brand svg,body[data-phase=flight] #brand small{display:none}body[data-phase=flight] #brand span{font-size:12px}.run-stats{top:10px;right:16px;left:auto;padding:7px 12px;gap:20px}.run-stats b{font-size:18px}.run-stats small{font-size:7px}.objective{top:75px;left:16px;width:280px;padding:12px 15px}.objective h2{font-size:24px}.objective .eyebrow{font-size:8px;margin-bottom:6px}.objective>p:not(.eyebrow){font-size:10px;line-height:1.4;margin:7px 0}#dots{margin-top:10px}#touch-controls{bottom:35px;left:20px;right:20px;align-items:flex-end}#stick{width:90px;height:90px}#nub{left:24px;top:24px;width:40px;height:40px}.vertical-controls{flex-direction:column;gap:6px}.vertical-controls button{width:52px;height:48px}.telemetry{left:16px;bottom:138px;font-size:9px;padding:6px 9px}#radar{width:140px;right:90px;bottom:40px;padding:6px}#radar .radar-caption{font-size:6px}#radar>small{font-size:6px}#navigation{right:16px;top:80px;padding:8px 12px}#direction-arrow{font-size:32px}#navigation b{font-size:14px}#navigation small{font-size:10px}}
/* Ring completion and question choreography: transforms/opacity only. */
.ring-clear{position:fixed;inset:0;z-index:8;pointer-events:none;overflow:hidden}.ring-wave{position:absolute;left:50%;top:45%;width:160px;height:160px;margin:-80px;border:7px solid #cda065;border-radius:50%;box-shadow:0 0 0 3px #fff9,inset 0 0 0 3px #fff9;animation:ring-wave .8s cubic-bezier(.15,.65,.2,1) both}.ring-wave.second{animation-delay:.1s;border-width:2px;box-shadow:none;border-color:#ece8df}.ring-points{position:absolute;left:50%;top:45%;text-align:center;color:white;transform:translate(-50%,-50%);text-shadow:0 2px 14px #07152f;animation:ring-reward .8s ease both}.ring-points small,.ring-points span{display:block;font-size:10px;letter-spacing:2px;font-weight:700}.ring-points strong{display:block;font-size:62px;line-height:1.2;color:#fff}.ring-points span{color:#ddc398}.ring-spark{position:absolute;left:50%;top:45%;width:5px;height:22px;border-radius:6px;background:#cda065;animation:ring-spark .65s ease-out both;transform-origin:center}.ring-spark:nth-child(even){background:#ece8df}#dialog-backdrop:not([hidden]){animation:dialog-fade .28s ease both}#dialog-backdrop:not([hidden]) #dialog{animation:dialog-arrive .45s cubic-bezier(.16,1,.3,1) both;transform-origin:center 65%}#dialog-backdrop[data-mode=question] .answer{animation:answer-arrive .34s ease both}#dialog-backdrop[data-mode=question] .answer:nth-child(1){animation-delay:.12s}#dialog-backdrop[data-mode=question] .answer:nth-child(2){animation-delay:.17s}#dialog-backdrop[data-mode=question] .answer:nth-child(3){animation-delay:.22s}#dialog-backdrop[data-mode=question] .answer.correct{animation:answer-confirm .32s ease both;animation-delay:0s}#dialog-backdrop[data-mode=question] .answer.wrong{animation:answer-retry .24s ease both;animation-delay:0s}.answer{transition:background-color .2s,border-color .2s}.answer:not(:disabled):hover{background:#fff;border-color:#607757}#continue:not([hidden]){animation:answer-arrive .25s ease both}
@keyframes ring-wave{0%{transform:scale(.45);opacity:0}15%{opacity:1}100%{transform:scale(3.2);opacity:0}}@keyframes ring-reward{0%{opacity:0;transform:translate(-50%,-30%) scale(.85)}20%,60%{opacity:1;transform:translate(-50%,-50%) scale(1)}100%{opacity:0;transform:translate(-50%,-75%) scale(1)}}@keyframes ring-spark{0%{opacity:0;transform:rotate(var(--angle)) translateY(-45px) scale(.7)}15%{opacity:1}100%{opacity:0;transform:rotate(var(--angle)) translateY(-210px) scale(.2)}}@keyframes dialog-fade{from{opacity:0}to{opacity:1}}@keyframes dialog-arrive{from{opacity:0;transform:translateY(28px) scale(.94)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes answer-arrive{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes answer-confirm{50%{transform:scale(1.025)}100%{transform:scale(1)}}@keyframes answer-retry{25%{transform:translateX(-4px)}75%{transform:translateX(4px)}100%{transform:translateX(0)}}
body[data-render-profile=mobile] #dialog-backdrop{backdrop-filter:none}body[data-render-profile=mobile] .ring-wave.second{display:none}body[data-render-profile=mobile] #dialog-backdrop:not([hidden]) #dialog{animation-duration:.32s}
@media(prefers-reduced-motion:reduce){.ring-wave,.ring-spark{display:none}.ring-points,#dialog-backdrop:not([hidden]),#dialog-backdrop:not([hidden]) #dialog,#dialog-backdrop[data-mode=question] .answer,#continue:not([hidden]){animation:none!important}.ring-points{transform:translate(-50%,-50%)}.answer{transition:none}}

/* Muted aviation palette over the real city. */
:root{--ink:#252b2d;color:#252b2d;--lime:#d6b37a}h1 em{color:#666d68}.primary{background:#d6b37a;color:#242a2c}.run-stats,#navigation,#radar{background:#222a2ee8}.objective,#dialog{background:#f2f0e9f5}.answer.correct{background:#d4dfd2;border-color:#788d74}#dots i.done{background:#7e927b}#dots i.current{background:#b99056}.ring-wave{border-color:#cda065}.ring-points{background:#222a2ec9;border:1px solid #ddc39866;border-radius:12px;padding:14px 24px;text-shadow:none}.ring-points strong{font-size:48px}.ring-points small,.ring-points span{font-size:8px}
#run-menu{border:0;border-radius:18px;background:#f2f0e9;color:#252b2d;padding:30px;width:min(420px,calc(100vw - 32px));box-shadow:0 20px 100px #0e211f44}#run-menu::backdrop{background:#0c211f99;backdrop-filter:blur(6px)}#run-menu h2{font-size:30px}#run-menu p{font-size:14px;line-height:1.6;margin:14px 0 24px}.menu-link{display:block;text-align:center;font-size:13px;text-decoration:none}.home-controls+.menu-link{margin-top:12px}
