:root{color:#d9fbff;background:#05070b;--cyan: #7df9ff;--cyan-hot: #2bd9ff;--magenta: #ff2bd6;--amber: #ffcc66;--glass: rgba(5, 7, 11, .76);--panel-border: rgba(125, 249, 255, .32);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;touch-action:none;-webkit-user-select:none;user-select:none}*{box-sizing:border-box}html,body,#app{width:100%;height:100%;margin:0;overflow:hidden}body{position:fixed;inset:0;overscroll-behavior:none}button,input{font:inherit}button{color:inherit}.game{--throttle-width: clamp(78px, 12vw, 112px);position:relative;width:100vw;height:100dvh;overflow:hidden;background:radial-gradient(circle at 50% 50%,rgba(43,217,255,.08),transparent 28%),radial-gradient(circle at 80% 18%,rgba(255,43,214,.1),transparent 24%),#05070b}.canvas-host,canvas{position:absolute;inset:0;width:100%;height:100%;display:block}.hud{pointer-events:none;position:absolute;inset:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left);color:#bdfcff;text-shadow:0 0 8px rgba(43,217,255,.7)}.reticle{position:absolute;left:50%;top:50%;width:74px;height:74px;transform:translate(-50%,-50%);border:1px solid rgba(125,249,255,.62);border-radius:50%;box-shadow:0 0 22px #2bd9ff38,inset 0 0 18px #2bd9ff14}.reticle:before,.reticle:after{content:"";position:absolute;background:#7df9ffcc}.reticle:before{left:50%;top:14px;bottom:14px;width:1px}.reticle:after{top:50%;left:14px;right:14px;height:1px}.horizon{position:absolute;inset:0;overflow:hidden}.horizon:before,.horizon:after{content:"";position:absolute;left:50%;width:1px;height:34%;background:linear-gradient(transparent,rgba(125,249,255,.18),transparent)}.horizon:before{top:0}.horizon:after{bottom:0}.horizon-line{position:absolute;left:50%;top:50%;width:34vw;min-width:170px;max-width:360px;height:2px;background:linear-gradient(90deg,transparent,#7df9ff 18%,#7df9ff 82%,transparent);box-shadow:0 0 12px #7df9ffd9;will-change:transform}.horizon-line:before,.horizon-line:after{content:"";position:absolute;top:-6px;width:22%;height:13px;border-top:2px solid rgba(125,249,255,.68)}.horizon-line:before{right:calc(50% + 45px);border-left:2px solid rgba(125,249,255,.68)}.horizon-line:after{left:calc(50% + 45px);border-right:2px solid rgba(125,249,255,.68)}.pitch-rung{position:absolute;left:50%;width:92px;transform:translate(-50%);color:#bdfcffa6;font-size:10px;font-weight:900;text-align:center}.pitch-rung:before,.pitch-rung:after{content:"";position:absolute;top:50%;width:28px;height:1px;background:#7df9ff8c}.pitch-rung:before{right:calc(50% + 16px)}.pitch-rung:after{left:calc(50% + 16px)}.pitch-rung-up{bottom:34px}.pitch-rung-down{top:34px}.bank-scale{position:absolute;left:50%;top:50%;width:0;height:0}.bank-scale i{position:absolute;left:-1px;top:-66px;width:2px;height:10px;background:#7df9ff99;box-shadow:0 0 8px #7df9ff66;transform-origin:1px 66px;transform:rotate(var(--bank))}.bank-scale i:nth-child(4){height:16px;background:#d9fbff}.fpv-wings{position:absolute;left:50%;top:50%;width:140px;height:22px;transform:translate(-50%,-50%)}.fpv-wings:before{content:"";position:absolute;left:50%;top:50%;width:8px;height:8px;border:2px solid #d9fbff;border-radius:50%;transform:translate(-50%,-50%);box-shadow:0 0 10px #7df9ffd9}.fpv-wings span{position:absolute;top:50%;width:50px;height:2px;background:#d9fbff;box-shadow:0 0 10px #7df9ffd9}.fpv-wings span:first-child{right:calc(50% + 16px)}.fpv-wings span:last-child{left:calc(50% + 16px)}.flight-metrics{position:absolute;left:50%;top:calc(50% + 54px);transform:translate(-50%);display:flex;gap:22px;align-items:center;justify-content:center;font-variant-numeric:tabular-nums}.metric{display:grid;grid-template-columns:auto auto;grid-template-areas:"label unit" "value value";column-gap:5px;min-width:70px;text-align:center;color:#d9fbff}.metric b{grid-area:label;font-size:10px;letter-spacing:.16em;color:#bdfcffb3}.metric small{grid-area:unit;font-size:9px;align-self:center;color:#bdfcff9e}.metric .value{grid-area:value;font-size:clamp(22px,4vw,36px);line-height:.95;font-weight:950}.at-max-speed .speed-readout .value{color:#fc6;text-shadow:0 0 12px rgba(255,204,102,.8)}.status,.collision-toast{position:absolute;left:50%;transform:translate(-50%);padding:6px 11px;border:1px solid rgba(125,249,255,.24);background:#05070b5c;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-radius:999px;letter-spacing:.12em;font-size:11px;font-weight:950;text-align:center;text-transform:uppercase}.status{top:10px;color:#d9fbffc7}.status:empty{display:none}.collision-toast{bottom:58px;color:var(--amber);border-color:#ffcc6657}.collision-toast:empty{display:none}.gyro-debug{position:absolute;right:12px;bottom:12px;display:none;gap:3px;width:92px;font-size:10px;font-weight:900;letter-spacing:.04em;opacity:.34}.game.preflight .gyro-debug{display:grid}.gyro-row{display:grid;grid-template-columns:10px 1fr;gap:5px;align-items:center}.gyro-row span{color:#bdfcffc7}.gyro-bar{position:relative;height:5px;background:#7df9ff1f;overflow:hidden}.gyro-fill{position:absolute;left:50%;width:50%;height:100%;background:#7df9ff;box-shadow:0 0 7px #7df9ff}.gyro-fill.negative{left:auto;right:50%;background:#fc6;box-shadow:0 0 7px #fc6}.controls{position:absolute;inset:0;pointer-events:none}.throttle-pad{pointer-events:auto;position:absolute;left:env(safe-area-inset-left);top:max(8px,env(safe-area-inset-top));bottom:max(8px,env(safe-area-inset-bottom));width:var(--throttle-width);border:1px solid rgba(125,249,255,.3);border-left:0;border-radius:0 24px 24px 0;background:linear-gradient(180deg,#7df9ff1a,#ffffff05),#05070b52;overflow:hidden;touch-action:none;box-shadow:inset -12px 0 24px #00000038,0 0 18px #2bd9ff1c}.throttle-pad:before{content:"";position:absolute;left:8px;top:10px;bottom:10px;width:calc(var(--throttle-width) * .42);background:repeating-linear-gradient(0deg,rgba(217,251,255,.18) 0 1px,transparent 1px 10%);opacity:.8}.throttle-pad.active{border-color:#7df9ff9e;box-shadow:inset -12px 0 24px #0000002e,0 0 22px #2bd9ff57}.throttle-fill{position:absolute;left:0;width:50%;bottom:0;height:0;background:linear-gradient(0deg,#2bd9ffc7,#ff2bd6d1);box-shadow:0 0 18px #2bd9ffb3}.throttle-fill:after{content:"";position:absolute;left:6px;right:6px;top:0;height:4px;transform:translateY(-2px);border-radius:999px;background:#d9fbff;box-shadow:0 0 12px #d9fbffe6}.throttle-label,.throttle-value{position:absolute;z-index:1;left:0;width:50%;text-align:center;font-size:12px;font-weight:950;letter-spacing:.08em;text-shadow:0 0 8px #000}.throttle-label{top:max(12px,env(safe-area-inset-top));color:#d9fbff9e}.throttle-value{bottom:max(12px,env(safe-area-inset-bottom));color:#d9fbffc7;opacity:.76}.action-row{pointer-events:auto;position:absolute;left:calc(env(safe-area-inset-left) + var(--throttle-width) + 14px);bottom:max(14px,env(safe-area-inset-bottom));display:flex;gap:8px}.action-row button{border:1px solid rgba(125,249,255,.45);border-radius:50%;color:#d9fbff;background:#05070bad;box-shadow:0 0 14px #2bd9ff40,inset 0 -3px #00000059;padding:0;width:54px;min-width:54px;height:54px;min-height:54px;font-weight:950;letter-spacing:.04em;touch-action:manipulation}.action-row button:active{transform:translateY(1px) scale(.98);box-shadow:0 0 10px #2bd9ff2e,inset 0 2px #00000059}.action-row button.active{border-color:#ff2bd6cc;color:#ffe7fb;background:#36082eb8;box-shadow:0 0 18px #ff2bd68c,inset 0 -3px #00000059}.game.preflight .controls{opacity:0;pointer-events:none}.icon-button{pointer-events:auto;display:grid;place-items:center;width:44px;height:44px;border:1px solid rgba(125,249,255,.42);border-radius:50%;color:#d9fbff;background:#05070bad;box-shadow:0 0 14px #2bd9ff38,inset 0 -3px #00000059;font-weight:950;touch-action:manipulation}.config-button{position:absolute;z-index:7;top:max(12px,env(safe-area-inset-top));right:max(12px,env(safe-area-inset-right));font-size:21px}.laser-button{position:relative;color:#ffe7fbe6!important;font-size:24px}.laser-button:before{content:"";position:absolute;left:50%;bottom:7px;width:8px;height:8px;border-radius:50%;transform:translate(-50%);background:#ff2bd652;box-shadow:0 0 8px #ff2bd64d}.laser-button.active:before{background:#ff2bd6;box-shadow:0 0 14px #ff2bd6f2,0 0 28px #ff2bd680}.scope-button{border-color:#2bd9ffb8!important;font-size:18px;letter-spacing:.12em}.preflight-panel,.settings-panel{pointer-events:auto;position:absolute;z-index:6;color:#d9fbff;border:1px solid var(--panel-border);border-radius:24px;background:linear-gradient(135deg,rgba(43,217,255,.1),transparent 38%),linear-gradient(315deg,rgba(255,43,214,.08),transparent 44%),var(--glass);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);box-shadow:0 0 34px #2bd9ff29,inset 0 0 0 1px #ffffff09}.preflight-panel{left:50%;top:50%;width:min(780px,calc(100vw - 24px));max-height:calc(100dvh - 24px);overflow:hidden;padding:clamp(10px,2.5dvh,16px);display:grid;grid-template-columns:minmax(210px,.86fr) minmax(250px,1.14fr);grid-template-areas:"copy scope" "readout scope" "status actions";gap:clamp(8px,2dvh,12px) clamp(12px,3vw,18px);transform:translate(-50%,-50%)}.preflight-panel.collapsed,.settings-panel.collapsed{opacity:0;pointer-events:none;transform:translate(-50%,calc(-50% - 12px))}.game:not(.preflight) .preflight-panel{display:none}.preflight-copy{grid-area:copy}.eyebrow{margin:0 0 4px;color:#fc6!important;font-size:11px!important;font-weight:950;letter-spacing:.16em;text-transform:uppercase}.preflight-panel h1,.settings-panel h1{margin:0 0 8px;font-size:clamp(18px,3vw,30px);line-height:.95;letter-spacing:.04em;text-transform:uppercase}.preflight-panel p,.settings-panel p{margin:0 0 8px;color:#d9fbffc2;font-size:12px;line-height:1.3}.drone-calibration-scope{grid-area:scope;position:relative;min-height:clamp(190px,46dvh,310px);border:1px solid rgba(125,249,255,.22);border-radius:20px;background:radial-gradient(circle at 50% 50%,rgba(43,217,255,.2),transparent 32%),linear-gradient(rgba(125,249,255,.08) 1px,transparent 1px),linear-gradient(90deg,rgba(125,249,255,.08) 1px,transparent 1px),#00000038;background-size:auto,26px 26px,26px 26px,auto;overflow:hidden;perspective:620px}.scope-ring{position:absolute;inset:34px;border:1px dashed rgba(125,249,255,.35);border-radius:50%}.preview-drone{position:absolute;left:50%;top:50%;width:116px;height:116px;transform-style:preserve-3d;transition:transform 80ms linear}.drone-body{position:absolute;left:50%;top:50%;width:34px;height:58px;border-radius:45% 45% 55% 55%;background:linear-gradient(#d9fbff,#2bd9ff 55%,#0d4c68);transform:translate(-50%,-50%);box-shadow:0 0 18px #2bd9ffb3}.drone-body:before{content:"";position:absolute;left:50%;top:-18px;width:0;height:0;border-left:13px solid transparent;border-right:13px solid transparent;border-bottom:24px solid #7df9ff;transform:translate(-50%)}.drone-arm{position:absolute;left:50%;top:50%;width:106px;height:5px;border-radius:999px;background:#d9fbffc7;transform:translate(-50%,-50%)}.arm-z{transform:translate(-50%,-50%) rotate(90deg)}.preview-drone i{position:absolute;width:18px;height:18px;border:2px solid #ffcc66;border-radius:50%;box-shadow:0 0 10px #ffcc66bf}.preview-drone i:nth-of-type(1){left:0;top:0}.preview-drone i:nth-of-type(2){right:0;top:0}.preview-drone i:nth-of-type(3){left:0;bottom:0}.preview-drone i:nth-of-type(4){right:0;bottom:0}.preview-vector{position:absolute;left:50%;top:50%;width:156px;height:3px;transform-origin:left center;transition:transform 80ms linear,width 80ms linear,opacity 80ms linear}.preview-vector:after{content:"";position:absolute;right:-1px;top:50%;border-left:12px solid currentColor;border-top:7px solid transparent;border-bottom:7px solid transparent;transform:translateY(-50%)}.preview-vector span{position:absolute;right:0;bottom:9px;font-size:9px;font-weight:950;letter-spacing:.12em}.forward-vector{color:#2bd9ff;background:#2bd9ff;transform:translateY(-50%) rotate(-90deg)}.thrust-vector{color:#ff2bd6;background:#ff2bd6;transform:translateY(-50%) rotate(-90deg)}.preview-axis-readout{grid-area:readout;display:grid;gap:6px;align-content:end}.preview-axis-readout>div{display:grid;grid-template-columns:42px 1fr;gap:8px;align-items:center;font-size:10px;font-weight:950;letter-spacing:.1em}.preview-axis-bar{position:relative;height:8px;border-radius:999px;background:#7df9ff24;overflow:hidden}.preview-axis-bar i{position:absolute;left:50%;width:50%;height:100%;background:#2bd9ff;transform:scaleX(0);box-shadow:0 0 8px #2bd9ffcc}.preview-axis-bar i.negative{left:auto;right:50%;background:#fc6}.onboarding-arm-status{grid-area:status;min-height:18px;color:var(--amber)!important;font-weight:900;letter-spacing:.04em}.preflight-actions{grid-area:actions;display:flex;flex-wrap:nowrap;justify-content:flex-end;align-items:end;gap:8px}.preflight-actions button,.settings-panel button{min-height:44px;border:1px solid rgba(125,249,255,.45);border-radius:999px;color:#d9fbff;background:#05070bad;padding:9px 14px;font-weight:950;letter-spacing:.08em}.onboarding-start-button:enabled{border-color:#ff2bd6cc;background:#36082ec7;box-shadow:0 0 18px #ff2bd673}.settings-panel{z-index:8;top:max(12px,env(safe-area-inset-top));right:max(12px,env(safe-area-inset-right));width:min(680px,calc(100vw - 24px));max-height:calc(100dvh - 24px);overflow:hidden;padding:clamp(10px,2.3dvh,14px);display:grid;grid-template-columns:minmax(170px,.82fr) minmax(230px,1.18fr);gap:8px 14px;transform:none}.settings-panel.collapsed{transform:translateY(-10px)}.settings-header{grid-column:1 / -1;display:flex;justify-content:space-between;gap:12px;align-items:start}.settings-close-button{flex:0 0 auto}.settings-panel h2{margin:6px 0 5px;color:var(--amber);font-size:11px;letter-spacing:.14em;text-transform:uppercase}.fpv-angle-control,.sensitivity-control{display:grid;gap:5px;margin:4px 0;font-size:12px;font-weight:850;letter-spacing:.05em}.fpv-angle-control input,.sensitivity-control input{width:min(100%,420px);accent-color:var(--cyan-hot)}.sensitivity-controls{display:grid;gap:3px}.sensitivity-control b,.fpv-angle-control b{color:var(--amber)}.axis-section{grid-column:1 / -1}.axis-section p{display:none}.axis-summary{margin:4px 0 7px;font-size:12px;font-weight:950;color:var(--amber);letter-spacing:.08em}.axis-buttons{display:flex;flex-wrap:wrap;gap:7px}.axis-buttons button{min-width:72px;min-height:38px;padding:7px 10px;font-size:11px}@media(max-width:720px)and (orientation:portrait){.preflight-panel{grid-template-columns:1fr;grid-template-areas:"copy" "scope" "readout" "status" "actions"}.drone-calibration-scope{min-height:230px}.preview-vector{width:116px}}@media(max-height:430px)and (orientation:landscape){.preflight-copy p:not(.eyebrow),.preview-vector span{display:none}.preflight-panel h1,.settings-panel h1{font-size:clamp(17px,4.2dvh,24px)}.preflight-actions button,.settings-panel button{min-height:40px;padding-block:7px}.settings-panel{grid-template-columns:minmax(150px,.72fr) minmax(220px,1.28fr)}}.dead:after{content:"SIGNAL LOST";position:absolute;inset:0;display:grid;place-items:center;color:#ff4f7d;font-size:clamp(34px,8vw,86px);font-weight:1000;letter-spacing:.12em;background:radial-gradient(circle,transparent 25%,rgba(255,0,40,.22));text-shadow:0 0 20px rgba(255,0,80,.9)}.rotate-warning{display:none;position:absolute;inset:0;z-index:10;place-items:center;text-align:center;padding:30px;background:#05070b;color:#d9fbff;font-size:20px;font-weight:800}@media(orientation:portrait){.rotate-warning{display:grid}}
