:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--safe-top:env(safe-area-inset-top,0px);--safe-right:env(safe-area-inset-right,0px);--safe-bottom:env(safe-area-inset-bottom,0px);--safe-left:env(safe-area-inset-left,0px)}*{box-sizing:border-box}html,body,#root{width:100%;height:100%;margin:0}body{overscroll-behavior:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent;background:#000;font-family:ui-monospace,SF Mono,Menlo,Consolas,monospace;overflow:hidden}input,textarea{-webkit-user-select:text;user-select:text}#root{position:fixed;inset:0}canvas{touch-action:none;cursor:crosshair;display:block}.osd{--osd:#2bff8c;z-index:10;pointer-events:none;-webkit-user-select:none;user-select:none;color:var(--osd);letter-spacing:.06em;text-transform:uppercase;text-shadow:0 0 6px #2bff8c8c;font-family:ui-monospace,SF Mono,SFMono-Regular,Menlo,Consolas,monospace;font-size:14px;font-weight:700;position:fixed;inset:0}.osd .label{opacity:.65;letter-spacing:.1em;font-size:10px}.osd .value{font-size:22px;line-height:1}.osd .unit{opacity:.7;margin-left:2px;font-size:11px}.osd .readout{position:absolute}.osd .alt{top:50%;left:28px;transform:translateY(-50%)}.osd .spd{text-align:right;top:50%;right:28px;transform:translateY(-50%)}.osd .vspd{opacity:.75;margin-top:6px;font-size:11px}.osd .mode{background:#00190c40;border:1px solid #2bff8c99;padding:2px 10px;font-size:15px;top:16px;left:50%;transform:translate(-50%)}.osd .heading{font-size:16px;top:52px;left:50%;transform:translate(-50%)}.osd .timer{font-size:16px;top:16px;right:24px}.osd .place{max-width:42vw;top:58px;left:24px}.osd .place-hood{letter-spacing:.08em;font-size:16px}.osd .place-nav{opacity:.82;white-space:nowrap;margin-top:4px;font-size:12px}.osd .paused-badge{letter-spacing:.2em;background:#00190c4d;border:1px solid #2bff8c99;padding:3px 14px;font-size:15px;position:absolute;top:16px;left:50%;transform:translate(-50%)}.osd .paused-hint{opacity:.55;letter-spacing:.08em;white-space:nowrap;font-size:11px;position:absolute;bottom:14px;left:50%;transform:translate(-50%)}.osd .wp-chevron{color:#fd0;text-shadow:0 0 8px #ffdd00d9;pointer-events:none;font-size:22px;line-height:1;position:absolute}.osd .crosshair{opacity:.85;font-size:20px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.osd .horizon-clip{width:62vw;height:48vh;position:absolute;top:50%;left:50%;overflow:hidden;transform:translate(-50%,-50%)}.osd .horizon{transform-origin:50%;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.osd .horizon-line{border-top:2px solid var(--osd);opacity:.85;width:150%;height:0;position:relative;box-shadow:0 0 6px #2bff8c66}.osd .horizon-line:before,.osd .horizon-line:after{content:"";background:var(--osd);width:2px;height:9px;position:absolute;top:-1px}.osd .horizon-line:before{left:18%}.osd .horizon-line:after{right:18%}.osd .throttle{text-align:center;width:240px;position:absolute;bottom:34px;left:50%;transform:translate(-50%)}.osd .throttle-track{background:#00190c40;border:1px solid #2bff8c99;height:10px;margin-top:3px}.osd .throttle-fill{background:var(--osd);opacity:.85;height:100%}.osd .center-msg{text-align:center;font-size:13px;position:absolute;top:calc(50% + 40px);left:50%;transform:translate(-50%)}.osd .crash{color:#ff4d4d;text-shadow:0 0 8px #ff4d4db3;animation:.4s steps(2,start) infinite blink}.osd .engage{opacity:.8;animation:1.4s ease-in-out infinite pulse}@keyframes blink{0%{opacity:1}to{opacity:.2}}@keyframes pulse{0%,to{opacity:.45}50%{opacity:.9}}.osd .stick{width:96px;position:absolute;bottom:24px}.osd .stick.left{left:26px}.osd .stick.right{left:134px;right:auto}.osd .stick-box{background:#00190c2e;border:1px solid #2bff8c80;width:96px;height:96px;position:relative}.osd .stick-cross-h,.osd .stick-cross-v{background:#2bff8c47;position:absolute}.osd .stick-cross-h{height:1px;top:50%;left:0;right:0}.osd .stick-cross-v{width:1px;top:0;bottom:0;left:50%}.osd .stick-dot{background:var(--osd);width:10px;height:10px;box-shadow:0 0 6px var(--osd);border-radius:50%;margin:-5px 0 0 -5px;position:absolute}.osd .stick-label{text-align:center;opacity:.7;margin-top:5px;font-size:10px}.osd .hint{opacity:.45;letter-spacing:.08em;white-space:nowrap;font-size:10px;position:absolute;bottom:6px;left:50%;transform:translate(-50%)}.osd .scanlines{pointer-events:none;background:repeating-linear-gradient(#0000 0 2px,#00000029 3px);animation:4s steps(60,end) infinite flicker;position:absolute;inset:0}.osd .vhs-vignette{pointer-events:none;background:radial-gradient(#0000 55%,#00000047 100%);position:absolute;inset:0}@keyframes flicker{0%,to{opacity:.55}48%{opacity:.5}50%{opacity:.62}52%{opacity:.5}}.osd.is-touch .alt{top:calc(8px + var(--safe-top));left:calc(12px + var(--safe-left));transform:none}.osd.is-touch .spd{top:calc(8px + var(--safe-top));right:calc(12px + var(--safe-right));left:auto;transform:none}.osd.is-touch .value{font-size:18px}.osd.is-touch .vspd,.osd.is-touch .mode{display:none}.osd.is-touch .heading{top:calc(52px + var(--safe-top));font-size:14px}.osd.is-touch .timer{top:calc(34px + var(--safe-top));right:calc(12px + var(--safe-right));font-size:12px}.osd.is-touch .place{top:calc(76px + var(--safe-top));text-align:center;max-width:86vw;left:50%;right:auto;transform:translate(-50%)}.osd.is-touch .place-hood{font-size:13px}.osd.is-touch .throttle{display:none}.osd.is-touch .horizon-clip{height:40vh}.osd.osd-paused.is-touch .paused-badge{top:calc(10px + var(--safe-top))}.osd.osd-paused.is-touch .paused-hint{bottom:calc(10px + var(--safe-bottom))}.ff-loading{z-index:30;color:#2bff8c;text-transform:uppercase;letter-spacing:.14em;text-shadow:0 0 8px #2bff8c8c;pointer-events:none;background:radial-gradient(#0c1116 0%,#05080b 100%);justify-content:center;align-items:center;font-family:ui-monospace,SF Mono,SFMono-Regular,Menlo,Consolas,monospace;display:flex;position:fixed;inset:0}.ff-loading.ff-oom{color:#ffc44d;text-shadow:0 0 8px #ffc44d8c}.ff-loading.ff-oom .ff-loading-sub{opacity:.9;animation:none}.ff-loading-inner{text-align:center}.ff-loading-title{font-size:22px;font-weight:700}.ff-loading-sub{opacity:.7;letter-spacing:.1em;margin-top:10px;font-size:12px;animation:1.4s ease-in-out infinite ff-pulse}.ff-loading-bar{border:1px solid #2bff8c80;width:260px;height:6px;margin:18px auto 0;overflow:hidden}.ff-loading-bar-fill{opacity:.85;background:#2bff8c;width:40%;height:100%;animation:1.1s ease-in-out infinite ff-sweep}.ff-notice{z-index:30;text-align:center;color:#2bff8c;letter-spacing:.06em;text-shadow:0 0 6px #2bff8c80;pointer-events:none;background:#00140a8c;border:1px solid #2bff8c80;max-width:90vw;padding:8px 14px;font-family:ui-monospace,SF Mono,SFMono-Regular,Menlo,Consolas,monospace;font-size:11px;line-height:1.5;position:fixed;bottom:64px;left:50%;transform:translate(-50%)}.ff-notice code{color:#aaffd5;background:#2bff8c1f;padding:0 4px}.ff-notice-err{color:#ffc44d;text-shadow:0 0 6px #ffc44d80;border-color:#ffc44d99}@keyframes ff-sweep{0%{margin-left:-40%}to{margin-left:100%}}@keyframes ff-pulse{0%,to{opacity:.45}50%{opacity:.9}}:root{--ff-green:#2bff8c;--ff-green-dim:#2bff8c80;--ff-green-faint:#2bff8c29;--ff-panel:#06140db8}.ff-sticks{z-index:15;pointer-events:none;font-family:ui-monospace,SF Mono,SFMono-Regular,Menlo,Consolas,monospace;transition:opacity .18s;position:fixed;inset:0}.ff-sticks--hidden{opacity:0;pointer-events:none}.ff-sticks--hidden .ff-stick-zone{pointer-events:none}.ff-stick-zone{pointer-events:auto;touch-action:none;-webkit-user-select:none;user-select:none;width:40%;height:52%;position:fixed;bottom:0}.ff-stick-zone.left{padding-left:var(--safe-left);left:0}.ff-stick-zone.right{padding-right:var(--safe-right);right:0}.ff-stick-base{opacity:.35;pointer-events:none;width:144px;height:144px;transition:opacity .15s;position:absolute;top:0;left:0}.ff-stick-base.active{opacity:.95}.ff-stick-ring{border:1.5px solid var(--ff-green-dim);background:radial-gradient(circle at center, var(--ff-green-faint) 0%, transparent 70%);border-radius:50%;position:absolute;inset:0;box-shadow:0 0 14px #2bff8c2e}.ff-stick-ring:before,.ff-stick-ring:after{content:"";background:var(--ff-green-dim);opacity:.5;position:absolute}.ff-stick-ring:before{height:1px;top:50%;left:18%;right:18%;transform:translateY(-.5px)}.ff-stick-ring:after{width:1px;top:18%;bottom:18%;left:50%;transform:translate(-.5px)}.ff-stick-nub{background:radial-gradient(circle at 38% 34%, #b4ffdaf2, var(--ff-green) 70%);border-radius:50%;width:42%;height:42%;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:0 0 12px #2bff8cb3,inset 0 0 6px #00281466}.ff-stick-tag{bottom:calc(10px + var(--safe-bottom));text-align:center;letter-spacing:.16em;color:var(--ff-green-dim);text-shadow:0 0 6px #2bff8c66;font-size:10px;position:absolute;left:0;right:0}.ff-btns{top:calc(6px + var(--safe-top));z-index:30;pointer-events:none;gap:8px;font-family:ui-monospace,SF Mono,SFMono-Regular,Menlo,Consolas,monospace;display:flex;position:fixed;left:50%;transform:translate(-50%)}.ff-btn{pointer-events:auto;border:1px solid var(--ff-green-dim);background:var(--ff-panel);min-width:46px;height:40px;color:var(--ff-green);letter-spacing:.08em;text-shadow:0 0 6px #2bff8c66;-webkit-tap-highlight-color:transparent;touch-action:manipulation;border-radius:9px;place-items:center;padding:0 10px;font-size:14px;font-weight:700;display:grid}.ff-btn:active{color:#06140d;background:#2bff8c38}.ff-btn-wide{min-width:62px;font-size:12px}.ff-sheet-scrim{z-index:40;pointer-events:auto;background:#00000073;justify-content:flex-end;display:flex;position:fixed;inset:0}.ff-sheet{width:min(320px,86vw);height:100%;padding:calc(14px + var(--safe-top)) calc(16px + var(--safe-right)) calc(14px + var(--safe-bottom)) 16px;border-left:1px solid var(--ff-green-dim);color:var(--ff-green);background:#06140df0;flex-direction:column;gap:18px;font-family:ui-monospace,SF Mono,SFMono-Regular,Menlo,Consolas,monospace;display:flex;overflow-y:auto;box-shadow:-8px 0 24px #00000080}.ff-sheet-head{letter-spacing:.16em;justify-content:space-between;align-items:center;font-size:14px;font-weight:700;display:flex}.ff-set-row{flex-direction:column;gap:8px;display:flex}.ff-set-label{letter-spacing:.12em;opacity:.9;font-size:11px;font-weight:700}.ff-set-val{color:#baffdc;margin-left:6px}.ff-set-sub{opacity:.5;letter-spacing:.06em;margin-top:2px;font-size:9px}.ff-seg{gap:8px;display:flex}.ff-seg-btn{border:1px solid var(--ff-green-dim);height:40px;color:var(--ff-green);letter-spacing:.1em;pointer-events:auto;-webkit-tap-highlight-color:transparent;background:0 0;border-radius:8px;flex:1;font-family:inherit;font-weight:700}.ff-seg-btn.on{background:var(--ff-green);color:#06140d}.ff-sheet input[type=range]{width:100%;height:30px;accent-color:var(--ff-green)}.ff-sheet-foot{opacity:.5;letter-spacing:.06em;margin-top:auto;font-size:9px}.ff-look-layer{z-index:12;pointer-events:none;touch-action:none;position:fixed;inset:0}.ff-look-layer.active{pointer-events:auto}.ff-rotate{z-index:80;color:var(--ff-green);text-align:center;pointer-events:auto;padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left);background:radial-gradient(#0c1116 0%,#05080b 100%);justify-content:center;align-items:center;font-family:ui-monospace,SF Mono,SFMono-Regular,Menlo,Consolas,monospace;display:flex;position:fixed;inset:0}.ff-rotate-inner{flex-direction:column;align-items:center;gap:12px;padding:24px;display:flex}.ff-rotate-icon{filter:drop-shadow(0 0 8px #2bff8c80);animation:2.4s ease-in-out infinite ff-rot-tip}@keyframes ff-rot-tip{0%,60%,to{transform:rotate(0)}80%{transform:rotate(-90deg)}}.ff-rotate-title{letter-spacing:.18em;text-shadow:0 0 8px #2bff8c8c;font-size:18px;font-weight:700}.ff-rotate-sub{opacity:.7;letter-spacing:.08em;font-size:12px}.ff-rotate-btn{height:44px;margin-top:8px;padding:0 18px}.ff-rotate-note{opacity:.45;letter-spacing:.06em;max-width:80vw;margin-top:4px;font-size:10px}.ff-thr-gauge{left:calc(8px + var(--safe-left));pointer-events:none;flex-direction:column;align-items:center;gap:6px;display:flex;position:fixed;top:50%;transform:translateY(-50%)}.ff-thr-track{border:1px solid var(--ff-green-dim);background:#06140d80;align-items:flex-end;width:8px;height:34vh;max-height:240px;display:flex;overflow:hidden}.ff-thr-fill{transform-origin:bottom;background:linear-gradient(to top, var(--ff-green), #b4ffdae6);width:100%;height:100%;transform:scaleY(.45);box-shadow:0 0 8px #2bff8c99}.ff-thr-label{letter-spacing:.14em;color:var(--ff-green-dim);text-shadow:0 0 6px #2bff8c66;font-size:10px}.gp-chip{left:50%;bottom:calc(58px + env(safe-area-inset-bottom,0px));z-index:20;pointer-events:none;color:#2bff8cd1;letter-spacing:.12em;text-transform:uppercase;white-space:nowrap;opacity:.5;background:#06140d8c;border:1px solid #2bff8c52;border-radius:4px;align-items:center;gap:6px;padding:3px 10px;font-family:ui-monospace,SF Mono,SFMono-Regular,Menlo,Consolas,monospace;font-size:10px;font-weight:600;transition:opacity .3s,border-color .3s,color .3s;display:flex;position:fixed;transform:translate(-50%)}.gp-chip.is-connected{opacity:.92;color:#2bff8c;border-color:#2bff8cb3;box-shadow:0 0 8px #2bff8c40}.gp-glyph{font-size:12px;line-height:1}.ff-install{left:50%;bottom:calc(10px + env(safe-area-inset-bottom,0px));z-index:45;color:#2bff8c;letter-spacing:.06em;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#06140dd1;border:1px solid #2bff8c8c;border-radius:8px;align-items:center;gap:8px;max-width:92vw;padding:6px 8px 6px 12px;font-family:ui-monospace,SF Mono,SFMono-Regular,Menlo,Consolas,monospace;font-size:12px;display:flex;position:fixed;transform:translate(-50%);box-shadow:0 0 14px #2bff8c33}.ff-install-text{white-space:normal;font-weight:600;line-height:1.3}.ff-install-text b{color:#9effc6}.ff-install-btn{appearance:none;color:#2bff8c;font:inherit;letter-spacing:.1em;cursor:pointer;background:0 0;border:0;padding:2px 4px;font-weight:700}.ff-install-x{appearance:none;color:#2bff8ccc;font:inherit;cursor:pointer;background:0 0;border:1px solid #2bff8c66;border-radius:6px;flex:none;padding:4px 7px;font-size:12px;line-height:1}.ff-onb-scrim{z-index:120;padding:max(16px, env(safe-area-inset-top)) max(16px, env(safe-area-inset-right)) max(16px, env(safe-area-inset-bottom)) max(16px, env(safe-area-inset-left));-webkit-backdrop-filter:blur(4px);background:#020805c7;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.ff-onb{box-sizing:border-box;color:#2bff8c;background:#06140df5;border:1px solid #2bff8c8c;border-radius:12px;width:min(440px,100%);max-height:90dvh;padding:20px 22px;font-family:ui-monospace,SF Mono,SFMono-Regular,Menlo,Consolas,monospace;overflow-y:auto;box-shadow:0 0 28px #2bff8c2e,inset 0 0 40px #2bff8c0a}.ff-onb-head{text-align:center;margin-bottom:14px}.ff-onb-title{letter-spacing:.22em;text-shadow:0 0 12px #2bff8c80;font-size:30px;font-weight:800}.ff-onb-sub{letter-spacing:.18em;color:#2bff8c9e;margin-top:4px;font-size:11px}.ff-onb-rows{flex-direction:column;gap:8px;margin:4px 0 14px;display:flex}.ff-onb-row{grid-template-columns:96px 1fr;align-items:baseline;gap:10px;display:grid}.ff-onb-k{letter-spacing:.05em;color:#9effc6;text-align:right;white-space:nowrap;font-size:12px;font-weight:700}.ff-onb-d{color:#dcffeeeb;font-size:12.5px;line-height:1.35}.ff-onb-tip{color:#2bff8cb3;border-top:1px solid #2bff8c2e;margin-bottom:16px;padding-top:12px;font-size:11.5px;line-height:1.4}.ff-onb-go{appearance:none;color:#2bff8c;width:100%;font:inherit;letter-spacing:.14em;cursor:pointer;background:#2bff8c1f;border:1px solid #2bff8cb3;border-radius:8px;padding:11px;font-size:14px;font-weight:800;transition:background .15s,box-shadow .15s;display:block}.ff-onb-go:hover,.ff-onb-go:active{background:#2bff8c38;box-shadow:0 0 16px #2bff8c4d}@media (height<=430px){.ff-onb{padding:14px 18px}.ff-onb-title{font-size:22px}.ff-onb-rows{gap:6px;margin-bottom:10px}.ff-onb-tip{margin-bottom:12px;padding-top:8px}.ff-onb-go{padding:9px}}
