@import"https://fonts.googleapis.com/css2?family=Barlow+Condensed:wght@600;700;800&family=Inter:wght@400;500;600;700&display=swap";:root{--ink:#102c38;--paper:#eef2ea;--muted:#a6b8b9;--blue:#2f5bea;--font:"Inter",sans-serif;--display:"Barlow Condensed",sans-serif}*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;overflow:hidden;color:var(--paper);font-family:var(--font);background:var(--ink);touch-action:none;overscroll-behavior:none}button,a{-webkit-tap-highlight-color:transparent}button{cursor:pointer;color:inherit;font:inherit;touch-action:none}button:focus-visible,a:focus-visible{outline:3px solid #e9efea;outline-offset:3px}button:disabled{cursor:wait;opacity:.5}a{color:inherit}#view{position:fixed;top:0;right:0;bottom:0;left:0;width:100%;height:100%;display:block}[hidden]{display:none!important}#top{position:fixed;top:max(16px,env(safe-area-inset-top));left:max(20px,env(safe-area-inset-left));right:max(20px,env(safe-area-inset-right));display:flex;justify-content:space-between;align-items:start;pointer-events:none;gap:20px}#top>*{pointer-events:auto}.wordmark{text-decoration:none;font:800 25px var(--display);letter-spacing:.04em;text-shadow:0 2px 6px #102c38}.wordmark span{color:#d2e6f4;margin-left:3px}#mission{text-align:center;padding:10px 24px;background:#102c38dd;border-radius:4px;border-top:2px solid var(--paper);min-width:220px}#mission small,#mission span{display:block;font-size:9px;letter-spacing:.14em;color:#b5c7ca}#mission strong{display:block;font:700 25px var(--display);margin:3px 0}#mission span{font-size:10px;letter-spacing:.06em}.tools{display:flex;gap:6px}.tools button{border:1px solid #ffffff44;background:#102c38cc;border-radius:4px;min-height:38px;padding:0 11px;font-size:11px}#instruments{position:fixed;left:24px;bottom:70px;display:flex;gap:30px;background:#102c38db;padding:15px 20px;border-radius:4px;border-left:3px solid var(--paper)}#instruments div{display:flex;flex-direction:column}#instruments small{font-size:8px;letter-spacing:.12em;color:#b5c7ca}#instruments strong{font:700 30px var(--display);line-height:1.2}#instruments span{font-size:9px;color:#c4d0cc}#map-wrap{position:fixed;right:24px;bottom:70px;width:180px;background:#102c38dd;padding:8px;border-radius:4px;border:1px solid #ffffff33}#map{display:block;width:100%;height:auto}#district{display:block;font-size:8px;letter-spacing:.16em;text-align:center;margin-top:4px}#target{position:fixed;top:124px;left:50%;transform:translate(-50%);display:flex;gap:8px;align-items:center;padding:7px 12px;border-radius:20px;background:#102c38d9;font-size:12px;pointer-events:none}#target-arrow{font-size:22px;display:inline-block}#target-height{font-size:10px;color:#d0dfdf}#lesson{position:fixed;top:174px;left:50%;transform:translate(-50%);max-width:500px;white-space:nowrap;text-align:center;padding:9px 14px;background:#102c38bd;border-radius:3px;font-size:11px;pointer-events:none}#toast{position:fixed;top:45%;left:50%;transform:translate(-50%,-50%);padding:12px 20px;background:#102c38dd;border:1px solid #ffffff44;border-radius:5px;font:700 26px var(--display);opacity:0;pointer-events:none;transition:opacity .2s}#toast.on{opacity:1}#keyboard-controls{position:fixed;left:24px;bottom:25px;font-size:10px;background:#102c38d9;padding:10px 12px;border-radius:4px;color:#c8d5d5}kbd{font:600 10px var(--font);color:var(--paper);padding:3px 5px;border:1px solid #ffffff44;border-radius:3px;margin:0 3px}#touch-controls{display:none}#attribution{position:fixed;right:12px;bottom:5px;font-size:8px;padding:2px 4px;background:#102c38a8;color:#dde5e0;z-index:10}#attribution button{border:0;background:none;font-size:8px;padding:0}.menu #top,.menu #instruments,.menu #map-wrap,.menu #target,.menu #lesson,.menu #keyboard-controls,.menu #touch-controls{display:none}#start{position:fixed;top:0;right:0;bottom:0;left:0;display:grid;grid-template-columns:1fr 420px;align-items:center;gap:60px;padding:6vh 7vw;background:linear-gradient(90deg,#102c38d9,#102c3840 52%,#102c38c2);overflow:auto}.eyebrow{font-size:9px;letter-spacing:.2em;font-weight:600;color:#c0d0ce}h1{font:800 clamp(80px,12vw,170px)/.8 var(--display);letter-spacing:-.035em;margin:24px 0}h1 em{font-style:normal;color:#d5e8f4}.intro>p{font-size:18px;line-height:1.6;color:#d4e1dc}.intro #city-status{font-size:10px;letter-spacing:.06em;margin-top:24px;color:#afc4c4}.dispatch{padding:28px;background:#102c38e8;border:1px solid #d6e4df33;border-radius:7px;box-shadow:0 24px 70px #102c3833}.crafts{display:grid;gap:8px;margin:18px 0}.crafts button{background:#ffffff06;border:1px solid #ffffff22;border-radius:4px;min-height:78px;text-align:left;padding:13px 16px;position:relative}.crafts button.selected{border-color:#c4d7e7;background:#2f5bea24;box-shadow:inset 3px 0 #c4d7e7}.crafts span{float:right;font:700 26px var(--display);color:#879d9f}.crafts strong{font:700 24px var(--display);display:block}.crafts small{font-size:10px;color:#b4c5c5;display:block;margin-top:5px}.route-preview{border-top:1px solid #ffffff22;padding-top:16px;margin:14px 0}.route-preview>span{font-size:8px;letter-spacing:.1em;color:#b1c5c8}.route-preview strong{display:block;font:600 21px var(--display);margin:7px 0}.route-preview p{font-size:11px;line-height:1.5;color:#b1c5c8;margin:0}#launch,.overlay button:first-of-type{width:100%;background:var(--paper);color:var(--ink);border:0;border-radius:3px;padding:13px;font-weight:700;font-size:13px}#explore{width:100%;border:0;background:none;padding:12px;font-size:11px;text-decoration:underline}.control-copy{font-size:10px;line-height:1.6;color:#b8ccce;margin:6px 0}.touch-copy{display:none}.city-note{display:block;font-size:9px;line-height:1.5;color:#9eb5b7;margin-top:12px}.football{display:inline-block;font-size:9px;color:#9eb5b7;margin-top:12px}.overlay{position:fixed;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;background:#102c38eb;padding:24px;overflow:auto;z-index:15}.overlay>div{width:min(100%,460px)}h2{font:800 58px/.95 var(--display);margin:15px 0 24px}.overlay p{font-size:12px;line-height:1.8;color:#bccdd0}.overlay button{display:block;width:100%;padding:13px;border:1px solid #ffffff33;border-radius:3px;margin:8px 0;background:transparent;font-size:12px}.overlay a{font-size:12px}.overlay #result{font-size:20px;color:var(--paper)}@media(pointer:coarse){#keyboard-controls,.pc-copy{display:none}.touch-copy{display:block}#touch-controls{display:block;position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none}#pad{position:absolute;left:max(22px,env(safe-area-inset-left));bottom:max(34px,env(safe-area-inset-bottom));width:124px;height:124px;border:1px solid #ffffff70;border-radius:50%;background:#102c3870;pointer-events:auto;touch-action:none}#knob{position:absolute;left:50%;top:50%;width:48px;height:48px;border-radius:50%;background:#eef2eacc;transform:translate(-50%,-50%)}#pad>span{position:absolute;bottom:-19px;left:0;right:0;text-align:center;font-size:8px;letter-spacing:.06em;text-shadow:0 1px 2px #102c38}.actions{position:absolute;right:max(22px,env(safe-area-inset-right));bottom:max(34px,env(safe-area-inset-bottom));display:flex;gap:12px;align-items:end;pointer-events:auto}.actions button{width:76px;height:76px;border:1px solid #ffffff88;border-radius:50%;font:700 18px var(--display);background:#102c38ad}.actions button#boost{width:88px;height:88px;background:#2f5beac9}.actions small{display:block;font:8px var(--font);margin-top:5px}.actions button.held{background:#eef2ea!important;color:#102c38}#instruments{left:16px;bottom:auto;top:74px;gap:18px;padding:8px 12px}#instruments strong{font-size:23px}#map-wrap{right:18px;bottom:145px;width:130px}#top{left:16px;right:16px;top:12px}.wordmark{font-size:21px}#mission{min-width:170px;padding:6px 10px}#mission strong{font-size:21px}#mission small{font-size:7px}.tools button{font-size:9px;min-height:32px;padding:0 8px}.tools{gap:4px}#target{top:82px}#lesson{top:123px;font-size:10px;max-width:65vw;white-space:normal;width:max-content}#start{gap:25px;padding:20px 5vw;grid-template-columns:1fr 330px}h1{font-size:90px;margin:14px 0}.intro>p{font-size:13px}.dispatch{padding:18px}.crafts{margin:12px 0;gap:6px}.crafts button{min-height:58px;padding:8px 12px}.crafts strong{font-size:21px}.crafts small{font-size:9px}.route-preview{padding-top:10px;margin:10px 0}.route-preview p,.city-note,.football{display:none}.route-preview strong{font-size:18px}#launch{padding:11px}#explore{padding:9px}.control-copy{font-size:9px}.intro #city-status{font-size:9px;margin-top:16px}}@media(max-width:600px)and (orientation:portrait){#start{grid-template-columns:1fr;gap:14px;padding:28px 24px;align-content:center}.intro h1{font-size:76px;line-height:.85;margin:12px 0}.intro h1 br{display:none}.intro>p{font-size:12px;margin:8px 0}.intro>p br{display:none}.eyebrow{font-size:8px}.intro #city-status{margin-top:10px}.dispatch{padding:18px}#top{flex-wrap:wrap;gap:8px}.wordmark{order:0}.tools{order:1}#mission{order:2;width:100%;text-align:left}#mission strong{display:inline-block;font-size:20px;margin:4px 12px 0 0}#mission span{display:inline-block}#instruments{top:auto;bottom:191px;left:18px;gap:18px}#map-wrap{bottom:191px;right:14px;width:90px;padding:4px}#target{top:140px;max-width:95vw;white-space:nowrap}#lesson{top:185px;max-width:88vw;font-size:10px}#pad{bottom:54px;width:120px;height:120px}.actions{right:18px;bottom:56px;gap:8px}.actions button{width:66px;height:66px}.actions button#boost{width:76px;height:76px}#attribution{font-size:7px}}@media(max-height:390px)and (orientation:landscape){#start{padding:12px 5vw}.intro h1{font-size:80px}.intro>p{font-size:12px}.dispatch{padding:12px 16px}.crafts{margin:8px 0}.crafts button{min-height:51px}.route-preview{margin:7px 0;padding-top:8px}.route-preview strong{font-size:17px}#launch{padding:10px}.control-copy,.intro #city-status{font-size:8px}#map-wrap{width:100px;bottom:128px}#instruments{top:70px;padding:6px 9px;gap:12px}#instruments strong{font-size:20px}#instruments small{font-size:7px}#lesson{top:118px}#target{top:76px;font-size:10px}.actions{bottom:28px}#pad{width:110px;height:110px;bottom:28px}}#reticle{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);font:300 28px sans-serif;color:#eef2ea99;pointer-events:none}body.menu #reticle{display:none}@media(max-width:600px)and (orientation:portrait){#instruments{top:240px;bottom:auto;gap:14px;padding:8px 10px}#map-wrap{top:240px;bottom:auto}#instruments small{font-size:7px}#instruments strong{font-size:24px}#instruments span{font-size:8px}}
