@font-face{font-family:Game;src:local('Trebuchet MS')}*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;overflow:hidden}body{font-family:Game,'Segoe UI',sans-serif;color:#f5f5dd;background:#0b3440;font-size:14px}button,a,input{-webkit-tap-highlight-color:transparent}button{font:inherit;color:inherit;cursor:pointer}button{border:0}button:focus-visible,a:focus-visible,input:focus-visible{outline:3px solid #ffe079;outline-offset:4px}button:hover{filter:brightness(1.12)}button:disabled{opacity:.45;cursor:wait}[hidden]{display:none!important}#simulator{position:relative;width:100%;height:100%;isolation:isolate;outline:0}#world{width:100%;height:100%;display:block}.vignette{position:absolute;inset:0;pointer-events:none;background:linear-gradient(180deg,rgba(3,44,59,.5),transparent 32%,transparent 57%,rgba(3,39,49,.6)),linear-gradient(90deg,rgba(6,53,65,.14),transparent 55%);z-index:1}.topbar{position:absolute;z-index:3;left:32px;right:32px;top:0;height:88px;border-bottom:1px solid #eaffeb33;display:flex;align-items:center;justify-content:space-between}.brand{display:flex;align-items:center;gap:12px;text-decoration:none;color:inherit;font-size:20px;font-weight:900;letter-spacing:2px}.brand small{display:block;font-size:8px;letter-spacing:1.8px;font-weight:500;margin-top:5px;color:#d6ece6}.brand-mark{position:relative;border:1px solid #e5efe76b;border-radius:12px 3px 12px 3px;width:44px;height:43px;display:grid;place-items:center;font-size:26px;font-style:italic;letter-spacing:-4px}.brand-mark span{font-size:18px;position:absolute;right:3px;top:0;color:#fbd883}.world-tag{font-size:10px;letter-spacing:2px;display:flex;gap:10px;align-items:center}.world-tag span{font-size:8px;color:#d6e9e3b5;letter-spacing:1px;border-left:1px solid #c9e7e64f;padding-left:16px;margin-left:6px}i{font-style:normal}.world-tag i,footer i,.camera-heading i,.start-card .eyebrow i{width:5px;height:5px;display:inline-block;border-radius:50%;background:#a4f4c2;box-shadow:0 0 8px #88ffbd}.topbar nav{display:flex;align-items:center;gap:8px}.icon-button,.pause-button{height:34px;width:34px;display:grid;place-items:center;background:#0e465954;border:1px solid #c6f4f53b;border-radius:50%;font-size:19px}.pause-button{background:#f5df9e;color:#194652;border-color:#f5df9e;font-size:15px}.eyebrow{font-size:9px;letter-spacing:1.6px;font-weight:700;color:#ffe39e;display:block}.mission{position:absolute;top:117px;left:39px;z-index:2;width:325px}.mission .eyebrow{display:flex;align-items:center;gap:14px}.mission .eyebrow span{font-size:8px;color:#cce7e5;letter-spacing:1px}.mission h1{font-size:42px;line-height:1;margin:17px 0 9px;letter-spacing:-2px;font-weight:900}.mission h1 em{font-style:normal;color:#ffe5a1}.mission p{font-size:11px;color:#dbf0ec;margin:0 0 21px}.mission-route{display:flex;justify-content:space-between;font-size:9px;letter-spacing:.6px;color:#ebf2dd}.progress{position:relative;margin-top:10px;height:2px;background:#d9e9d73b}#progress-fill{height:2px;background:#ffe1a2;width:0;transition:width .2s}.progress-dots{position:absolute;inset:0;display:flex;align-items:center;justify-content:space-between;padding-left:15%}.progress-dots i{width:6px;height:6px;border:1px solid #dae7d4;border-radius:50%;background:#3b919b}.progress-dots i.passed{background:#ffe1a2;border-color:#ffe1a2}.progress-dots i.missed{background:#ef796a;border-color:#ef796a}.scores{position:absolute;right:42px;top:118px;z-index:2;display:flex;gap:17px;align-items:center}.scores strong{font-size:29px;font-weight:600;letter-spacing:-1px;display:block}.scores strong small{font-size:15px;color:#dfeddf99}.scores div>span{font-size:8px;letter-spacing:1.2px;color:#e4f1e6}.score-icon{font-size:45px;color:#ffe6a7;line-height:1}.book-icon{font-size:43px;color:#c5f4d8;line-height:1;transform:rotate(-12deg)}.score-divider{height:34px;width:1px;background:#e8f1d638;margin:0 7px}.start-card{position:absolute;left:39px;top:285px;z-index:4;width:333px;background:linear-gradient(125deg,#133e4ad9,#185266bf);border:1px solid #c5e2da42;padding:23px 24px 17px;border-radius:3px 20px 3px 20px;backdrop-filter:blur(12px);box-shadow:0 15px 35px #0529351c}.start-card .eyebrow{font-size:8px;display:flex;align-items:center;gap:8px;color:#c4e7ce}.start-card h2{font-size:24px;font-weight:500;line-height:1.25;letter-spacing:-.7px;margin:13px 0 12px}.start-card h2 em{color:#ffe5a1;font-style:normal}.start-card p{font-size:10px;line-height:1.8;color:#d2e8e4;margin:0 0 17px}.primary{background:#ffe3a0;color:#24454c;width:100%;min-height:44px;border-radius:5px;padding:0 16px;display:flex;align-items:center;justify-content:space-between;font-weight:700;font-size:11px;box-shadow:0 3px 0 #b9a473}.primary span{font-size:21px}.secondary{margin-top:9px;background:#c8e7dd0a;border:1px solid #bad4d354;border-radius:5px;width:100%;height:37px;font-size:10px;display:flex;justify-content:space-between;align-items:center;padding:0 16px}.secondary span{font-size:18px}.privacy{font-size:7px;color:#c9e0db9e;margin-top:14px;text-align:center;letter-spacing:.1px}.privacy span{margin-right:4px}.target{position:absolute;top:119px;left:50%;transform:translateX(-50%);text-align:center;z-index:2;background:#10485c55;border:1px solid #d5f5ef42;border-radius:0 0 15px 15px;padding:11px 22px 12px;backdrop-filter:blur(8px)}.target-top{font-size:8px;letter-spacing:1.4px;color:#e9f2da}.target strong{display:block;font-size:32px;font-weight:500;margin:3px 0}.target strong span{color:#ffe2a4;font-size:23px}.target small{font-size:9px;color:#dbf3e3}.right-rail{position:absolute;z-index:2;right:37px;top:235px;width:107px;text-align:right}.rail-label{font-size:8px;letter-spacing:1px;color:#d5efdf9c;padding-bottom:13px;border-bottom:1px solid #f0ffdc38}.rail-label span{color:#e6f4ce;margin-left:8px}.instrument{position:relative;margin-top:21px}.instrument>span,.heading>span{display:block;font-size:8px;letter-spacing:2px;color:#dceee1}.instrument strong{font-size:42px;line-height:1.18;font-weight:400;letter-spacing:-2px}.instrument small{font-size:8px;letter-spacing:1px;color:#d4e9d7;margin-left:7px}.meter{height:2px;background:#d2ece126;margin:8px 0 0}.meter i{height:2px;background:#ffe4a3;display:block;transition:width .2s}.instrument.compact{border-top:1px solid #f0ffdc26;padding-top:17px}.instrument.compact strong{font-size:25px;letter-spacing:0}.heading{border-top:1px solid #f0ffdc26;margin-top:19px;padding-top:18px}.heading strong{display:block;font-size:20px;font-weight:400;margin:8px 0 10px}.heading>div{font-size:9px;color:#d5efdf;letter-spacing:7px}.heading i{color:#ffe6a9}.camera-card{position:absolute;z-index:3;bottom:55px;left:39px;width:218px;background:#0d394bd4;border:1px solid #e3f6df40;border-radius:11px;overflow:hidden;backdrop-filter:blur(12px)}.camera-heading{height:31px;display:flex;align-items:center;justify-content:space-between;padding:0 12px;font-size:8px;letter-spacing:1.2px}.camera-heading i{background:#d0d6c7;box-shadow:none;margin-right:6px}.camera-heading i.tracking{background:#9affa9;box-shadow:0 0 6px #8f9}.camera-heading button{background:transparent;color:#c6e9dc;font-size:16px}.camera-feed{position:relative;width:100%;height:116px;background:radial-gradient(ellipse at center,#255f6a,#133e4b);overflow:hidden}.camera-feed video,.camera-feed canvas{position:absolute;width:100%;height:100%;object-fit:contain;inset:0}.camera-feed video{transform:scaleX(-1)}#camera-placeholder{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:7px}#camera-placeholder svg{height:58px;width:100px;fill:none;stroke:#bbd5c79c;stroke-width:1.7}#camera-placeholder span{font-size:8px;color:#c2ded0;text-align:center;padding:0 7px}.local-tag{position:absolute;bottom:7px;left:9px;font-size:6px;letter-spacing:1px;color:#a9d3bb}.mode-switch{display:flex;padding:6px;gap:4px}.mode-switch button{flex:1;height:25px;font-size:9px;letter-spacing:.3px;background:transparent;border-radius:5px;color:#a9c9c2}.mode-switch button.active{background:#d9e9c626;color:#fff0bb}.control-card{position:absolute;left:277px;bottom:55px;z-index:3;width:374px;background:#103f4dce;border:1px solid #dcf4dd3b;backdrop-filter:blur(12px);border-radius:10px;padding:15px 17px}.control-top{display:flex;gap:11px;align-items:center}.control-symbol{font-size:21px;color:#ffe6a9;border:1px solid #dce5c24f;border-radius:50%;width:31px;height:31px;display:grid;place-items:center}.control-top strong{font-size:11px;display:block;font-weight:500}.control-top small{font-size:8px;color:#b7d3ca;display:block;margin-top:4px}.control-top>span:last-child{font-size:9px;margin-left:auto;align-self:flex-start;color:#e2f0dc}.throttle-row{margin-top:16px;display:flex;align-items:center;gap:10px;font-size:7px;color:#cee2d3}.throttle-row>span:first-child{letter-spacing:.8px}.throttle-row strong{color:#ffe6a9;font-size:9px}.throttle-track{height:3px;background:#bbdfcc38;flex:1}.throttle-track i{background:#ffe6a9;height:3px;display:block;width:0}.throttle-row>span:last-child{font-size:7px}.arms{display:flex;align-items:center;justify-content:space-between;font-size:7px;color:#b2cfc4;margin-top:12px;border-top:1px solid #daefd41a;padding-top:9px}.arms b{color:#ecf6dd;margin-left:5px;font-size:9px}.arms button{font-size:7px;background:transparent;color:#efdfa8}.arms button:disabled{cursor:default;opacity:.5}#keyboard-panel{margin-top:10px;padding-top:10px;border-top:1px solid #c4dece38}#keyboard-panel label{display:flex;justify-content:space-between;font-size:8px;color:#b7d2c6}#manual-angle{width:100%;height:3px;accent-color:#ffe4a0;margin:13px 0}.keyboard-presets{display:flex;gap:5px}.keyboard-presets button{flex:1;background:#d6eed618;border:1px solid #d6eed625;border-radius:4px;height:23px;font-size:8px}.keyboard-presets button.selected{background:#d9c89555;color:#ffe5a6}.keyboard-presets button[aria-pressed=true]{background:#e6d09b55}.view-control{position:absolute;right:37px;bottom:62px;z-index:3;text-align:right}.view-control button{display:flex;gap:10px;align-items:center;background:#103e4d91;border:1px solid #dff1d247;border-radius:5px;padding:10px 12px;font-size:9px}.view-control button>span{margin:0 10px 0 0}.view-control>span{display:block;font-size:7px;color:#d4e9d6;letter-spacing:1px;margin-top:11px}.view-control i{margin:0 6px}kbd{font-family:inherit;font-size:9px;border:1px solid #d6e4c24a;border-radius:3px;padding:2px 4px;color:#e9edce}footer{position:absolute;z-index:3;bottom:0;left:32px;right:32px;height:37px;border-top:1px solid #d1ead333;display:flex;align-items:center;justify-content:space-between;font-size:7px;letter-spacing:1px;color:#d1e4d0}footer i{width:4px;height:4px;margin-right:6px}footer b{margin:0 8px;font-weight:400;color:#d9e9bf66}footer span:nth-child(2){letter-spacing:.5px;font-size:8px}.crosshair{position:absolute;top:46%;left:50%;transform:translateX(-50%);width:68px;height:18px;display:flex;align-items:center;gap:8px;opacity:.55;pointer-events:none}.crosshair i{height:1px;background:#fcf8cd;width:21px}.crosshair span{width:7px;height:7px;border:1px solid #fbf6cc;border-radius:50%}.toast{position:absolute;z-index:5;left:50%;top:29%;transform:translate(-50%,-10px);background:#173d4ae8;border:1px solid #e9efc35c;border-radius:8px;padding:12px 20px;color:#f8ecc5;font-size:11px;opacity:0;pointer-events:none;transition:.25s;max-width:90%;text-align:center}.toast.visible{opacity:1;transform:translate(-50%,0)}.book-warning{position:absolute;z-index:5;left:50%;transform:translateX(-50%);top:208px;background:#5b3c29e8;border:1px solid #ffd28e;border-radius:8px;display:flex;gap:13px;align-items:center;padding:12px 18px;box-shadow:0 5px 35px #66331244}.book-warning>span{color:#ffe3a7;width:26px;height:26px;border-radius:50%;border:1px solid #ffe3a7;display:grid;place-items:center;font-weight:900}.book-warning strong{font-size:11px;letter-spacing:1px;color:#ffdfa0;display:block}.book-warning small{font-size:9px;color:#efdec3;display:block;margin-top:4px}.book-warning>i{font-size:28px;color:#ffe3a7}.result{position:absolute;z-index:6;inset:88px 0 37px;background:linear-gradient(90deg,transparent 20%,#123a4866 60%,#0c3346c9);display:flex;align-items:center;justify-content:flex-end;padding-right:9vw;backdrop-filter:blur(1px)}.result-card{width:390px;padding:32px;border:1px solid #f0e6bd54;border-radius:5px 26px 5px 26px;background:#123e4bea;box-shadow:0 25px 70px #03263655;animation:enter .5s both}.result h2{font-size:33px;letter-spacing:-1.3px;margin:18px 0 12px;line-height:1.1;color:#ffe4aa}.result p{font-size:12px;line-height:1.8;color:#d6e9e0;margin-bottom:23px}.result-stats{display:flex;justify-content:space-between;gap:15px;border-block:1px solid #d4e7cd2b;padding:18px 0;margin-bottom:24px}.result-stats strong{display:block;font-size:22px;font-weight:400}.result-stats span{font-size:7px;letter-spacing:.3px;color:#d0dfbf;display:block;margin-top:5px}.result-card>small{font-size:8px;display:block;text-align:center;color:#b6cfbf;margin-top:17px}.result-card kbd{font-size:8px;margin-right:4px}.finished .result{background:#0e3e51b0}.finished .result-card{margin:auto}.crashed .camera-card,.crashed .control-card,.crashed .target,.finished .control-card{opacity:.12;pointer-events:none}dialog{width:520px;max-width:calc(100% - 30px);color:#e3eedd;background:#113e4c;border:1px solid #a9d9cf80;border-radius:16px;padding:35px;box-shadow:0 20px 80px #0006}dialog::backdrop{background:#052f40b3;backdrop-filter:blur(8px)}dialog h2{font-size:34px;letter-spacing:-1px;margin:16px 0}dialog p,dialog li{font-size:12px;line-height:1.7;color:#c9ded3}dialog ol{padding-left:17px}dialog li{padding:4px 0}.close{position:absolute;right:15px;top:12px;background:transparent;font-size:26px;color:#d5e9cc}.help-note{font-size:10px;background:#d9efc60d;padding:12px;border-radius:6px}.shortcuts{font-size:10px;line-height:1.8;color:#f0dfaa;margin:19px 0}#fatal-error{position:absolute;z-index:20;inset:0;display:grid;align-content:center;justify-content:center;text-align:center;background:#103c4a}#fatal-error button{color:#143e4e;background:#ffe6a9;padding:12px}.paused .pause-button{background:#b6eed5}.playing .mission{width:282px}.playing .start-card{display:none}@keyframes enter{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}
@media(min-height:900px){.mission{top:133px}.start-card{top:312px}.camera-feed{height:142px}.control-card{bottom:55px}.start-card h2{font-size:27px}.start-card{padding:27px 26px 21px;width:350px}.start-card p{font-size:11px}.primary{min-height:48px}.secondary{height:41px}.privacy{font-size:8px}}
@media(max-height:760px) and (min-width:901px){.topbar{height:70px}.mission{top:94px}.mission h1{font-size:35px;margin:12px 0 8px}.mission p{margin-bottom:15px}.start-card{top:232px;padding:17px 21px;width:315px}.start-card h2{font-size:22px;margin:10px 0}.start-card p{font-size:9px;margin-bottom:12px}.primary{min-height:38px}.secondary{height:32px}.privacy{margin-top:11px}.camera-card{width:195px;bottom:49px}.camera-feed{height:94px}.control-card{left:251px;bottom:49px;width:350px}.right-rail{top:205px}.scores{top:95px}.result{inset:70px 0 37px}.target{top:92px}.book-warning{top:185px}}
@media(max-width:1100px){.world-tag span{display:none}.mission{left:26px}.camera-card{left:26px;width:190px}.control-card{left:234px;width:337px}.topbar{left:24px;right:24px}.start-card{left:26px}.right-rail{right:26px}.scores{right:26px}.view-control{right:26px}.scores{gap:10px}.result{padding-right:4vw}.result-card{width:360px}footer span:last-child{display:none}}
@media(max-width:900px){.world-tag{display:none}.mission h1{font-size:32px}.mission{width:265px;top:100px}.mission .eyebrow span{display:none}.mission p{font-size:10px}.scores{top:100px;gap:10px}.scores strong{font-size:24px}.scores .score-icon{font-size:35px}.score-divider{margin:0}.book-icon{font-size:31px}.right-rail{top:205px;width:82px}.instrument strong{font-size:31px}.rail-label{font-size:6px}.start-card{top:245px;width:310px}.control-card{width:calc(100% - 385px);min-width:285px}.target{top:100px;padding:10px 12px}.target-top{font-size:6px}.view-control{bottom:230px}.view-control>span{display:none}footer #keyboard-hint{font-size:6px}footer b{margin:0 3px}.result-card{width:330px;padding:25px}.result h2{font-size:28px}}
@media(max-width:650px){.topbar{left:16px;right:16px;height:68px}.brand{font-size:15px;gap:8px;letter-spacing:1.4px}.brand-mark{width:33px;height:33px;font-size:22px}.brand small{font-size:6px;letter-spacing:1px}.topbar nav{gap:5px}.icon-button,.pause-button{width:28px;height:28px;font-size:16px}.mission{left:19px;top:90px;width:216px}.mission h1{font-size:30px;margin:10px 0}.mission p{font-size:8px;margin-bottom:15px}.mission-route{font-size:8px}.scores{right:18px;top:94px;gap:5px}.scores strong{font-size:21px}.scores div>span{font-size:6px;letter-spacing:0}.scores .score-icon,.book-icon{display:none}.scores .score-divider{margin:0 4px}.right-rail{top:203px;right:18px;width:64px}.rail-label{letter-spacing:0;font-size:5px}.instrument{margin-top:18px}.instrument strong{font-size:27px}.instrument small{font-size:6px;margin-left:3px}.instrument>span{font-size:7px}.heading{display:none}.start-card{left:19px;top:239px;width:calc(100% - 111px);max-width:320px;padding:18px}.start-card h2{font-size:23px}.start-card p{font-size:9px}.primary{font-size:10px}.camera-card{left:16px;bottom:46px;width:140px}.camera-heading{font-size:6px;padding:0 8px;height:27px}.camera-feed{height:84px}.camera-feed svg{height:42px!important}.mode-switch{padding:4px}.mode-switch button{font-size:8px;height:23px}.local-tag{font-size:4px}#camera-placeholder span{font-size:6px}.control-card{bottom:46px;left:167px;min-width:0;width:calc(100% - 183px);padding:12px 11px}.control-symbol{display:none}.control-top{gap:4px}.control-top strong{font-size:9px}.control-top small{font-size:6px;max-width:135px;line-height:1.4}.control-top>span:last-child{font-size:7px}.throttle-row{font-size:6px;gap:6px;margin-top:12px}.throttle-row>span:last-child{display:none}.arms{font-size:6px;gap:4px;flex-wrap:wrap}.arms button{font-size:6px}.arms b{font-size:7px}#keyboard-panel label{font-size:7px}.keyboard-presets{gap:3px}.keyboard-presets button{font-size:6px;padding:0 3px}footer{height:31px;left:16px;right:16px;font-size:5px;letter-spacing:.6px}footer #keyboard-hint{display:none}.view-control{bottom:220px;right:17px}.view-control button{font-size:7px;padding:8px;gap:5px}.view-control button>span{margin-right:0}.view-control kbd{font-size:6px}.target{top:192px;padding:7px 12px;left:43%}.target strong{font-size:20px;margin:1px 0}.target-top{font-size:5px}.target small{font-size:7px}.book-warning{top:295px;width:230px;padding:10px 12px;gap:9px}.book-warning strong{font-size:9px}.book-warning small{font-size:8px}.result{inset:68px 0 31px;align-items:flex-end;padding:0 17px 30px;background:linear-gradient(0deg,#0c3346f5,transparent)}.result-card{width:100%;padding:22px;background:#123e4bec}.result h2{font-size:28px;margin:12px 0 8px}.result p{font-size:10px;margin-bottom:12px}.result-stats{padding:12px 0;margin-bottom:15px}.result-stats strong{font-size:19px}.result-stats span{font-size:6px}.result-card>small{font-size:7px;margin-top:12px}dialog{padding:25px}dialog h2{font-size:28px}dialog p,dialog li{font-size:11px}}
@media(max-height:650px){.start-card{top:205px}.start-card h2{font-size:19px;margin:7px 0}.start-card p{margin-bottom:10px}.start-card{padding:14px 18px}.start-card .privacy{margin-top:9px}.camera-card{width:165px}.camera-feed{height:68px}.control-card{left:210px}.camera-heading{height:25px}.right-rail .heading{display:none}.instrument{margin-top:12px}.instrument.compact{padding-top:12px}.mission{top:87px}.mission h1{font-size:30px}.mission p{margin-bottom:12px}.scores{top:90px}.view-control{bottom:50px}footer{height:30px}}
.right-rail{background:linear-gradient(160deg,#144f61bd,#194c5fb0);border:1px solid #cceade35;border-radius:10px;padding:13px 11px;backdrop-filter:blur(8px)}
.right-rail .rail-label{line-height:1.5;letter-spacing:.3px}.right-rail .rail-label span{margin-left:2px}
@media(max-width:650px){.right-rail{padding:10px 6px;border-radius:7px}.right-rail .rail-label{font-size:5px}}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}
