:root{--skysim-ink:#e8f0f8;--skysim-dim:#9fb3c6;--skysim-panel:#080e16c7;--skysim-edge:#8cb4dc38;--skysim-good:#7ee08a;--skysim-warn:#ffcf6b;--skysim-bad:#ff7b72;--skysim-mono:ui-monospace, "SF Mono", "JetBrains Mono", Menlo, Consolas, monospace}*{box-sizing:border-box}html,body{height:100%;color:var(--skysim-ink);overscroll-behavior:none;background:#05080c;margin:0;padding:0;font-family:system-ui,-apple-system,Segoe UI,sans-serif;overflow:hidden}#skysim-canvas{touch-action:none;cursor:grab;width:100vw;height:100dvh;display:block}#skysim-canvas:active{cursor:grabbing}.boot{z-index:20;background:linear-gradient(160deg,#0a1522,#05080c);place-content:center;justify-items:center;gap:.75rem;transition:opacity .42s;display:grid;position:fixed;inset:0}.boot--hidden{opacity:0;pointer-events:none}.boot__mark{color:#e8f0f89e;width:clamp(38px,8vw,58px);height:clamp(38px,8vw,58px)}.boot__title{letter-spacing:.42em;text-indent:.42em;color:var(--skysim-ink);font-size:clamp(2rem,7vw,3.5rem);font-weight:200}.boot__status{font-family:var(--skysim-mono);color:var(--skysim-dim);letter-spacing:.06em;font-size:.8rem}.perf{z-index:10;border:1px solid var(--skysim-edge);background:var(--skysim-panel);backdrop-filter:blur(8px);min-width:268px;font-family:var(--skysim-mono);color:var(--skysim-ink);user-select:none;pointer-events:none;border-radius:8px;padding:10px 12px;font-size:11.5px;line-height:1.55;position:fixed;top:12px;left:12px}.perf[hidden]{display:none}.perf__title{border-bottom:1px solid var(--skysim-edge);letter-spacing:.08em;text-transform:uppercase;color:var(--skysim-dim);justify-content:space-between;gap:1.5rem;margin-bottom:6px;padding-bottom:5px;font-size:10px;font-weight:600;display:flex}.perf__row{justify-content:space-between;gap:1.5rem;display:flex}.perf__row--group{border-top:1px dashed var(--skysim-edge);margin-top:6px;padding-top:5px}.perf__label{color:var(--skysim-dim)}.perf__value{font-variant-numeric:tabular-nums;text-align:right;white-space:pre}.perf__value--good{color:var(--skysim-good)}.perf__value--warn{color:var(--skysim-warn)}.perf__value--bad{color:var(--skysim-bad)}.perf__hint{border-top:1px solid var(--skysim-edge);color:var(--skysim-dim);margin-top:6px;padding-top:5px;font-size:10px}.error-overlay{z-index:100;background:#06090ef0;place-content:center;padding:6vh 6vw;display:grid;position:fixed;inset:0;overflow:auto}.error-overlay[hidden]{display:none}.error-overlay__card{background:#140c0ed9;border:1px solid #ff7b7273;border-radius:10px;max-width:780px;padding:24px 28px}.error-overlay__title{color:var(--skysim-bad);margin:0 0 4px;font-size:1.1rem;font-weight:600}.error-overlay__subtitle{color:var(--skysim-dim);margin:0 0 16px;font-size:.85rem}.error-overlay__body{font-family:var(--skysim-mono);white-space:pre-wrap;word-break:break-word;color:var(--skysim-ink);user-select:text;background:#00000073;border-radius:6px;max-height:46vh;margin:0;padding:14px;font-size:11.5px;line-height:1.5;overflow:auto}.error-overlay__actions{flex-wrap:wrap;gap:8px;margin-top:16px;display:flex}.error-overlay__button{border:1px solid var(--skysim-edge);color:var(--skysim-ink);font-family:var(--skysim-mono);letter-spacing:.08em;cursor:pointer;background:#0c141eb3;border-radius:6px;padding:8px 14px;font-size:11px;font-weight:600;text-decoration:none}.error-overlay__button--primary{background:#284e7699;border-color:#a0d2ff8c}.error-overlay__button[hidden]{display:none}.error-overlay__button:hover,.error-overlay__button:focus-visible{background:#284e76cc;border-color:#a0d2ffd9;outline:none}.status-pill{bottom:calc(46px + env(safe-area-inset-bottom));z-index:10;border:1px solid var(--skysim-edge);background:var(--skysim-panel);backdrop-filter:blur(8px);font-family:var(--skysim-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--skysim-dim);user-select:none;pointer-events:none;border-radius:999px;padding:6px 14px;font-size:11px;position:fixed;left:50%;transform:translate(-50%)}.status-pill[hidden]{display:none}.help{z-index:9;padding:8px 14px calc(8px + env(safe-area-inset-bottom));font-family:var(--skysim-mono);color:var(--skysim-dim);user-select:none;pointer-events:none;background:linear-gradient(#05080c00,#05080cd1);flex-wrap:wrap;justify-content:center;align-items:center;gap:4px 10px;font-size:11px;display:flex;position:fixed;bottom:0;left:0;right:0}.help[hidden]{display:none}.help__chip{border:1px solid #0000;border-radius:5px;align-items:baseline;gap:5px;padding:2px 6px;transition:color .16s,border-color .16s,background-color .16s;display:inline-flex}.help__chip--active{color:var(--skysim-good);background:#7ee08a1f;border-color:#7ee08a80}.help__keys{letter-spacing:.04em;color:var(--skysim-ink);font-family:inherit;font-size:10.5px;font-weight:600}.help__chip--active .help__keys{color:var(--skysim-good)}.help__label{letter-spacing:.02em}.help__divider{background:var(--skysim-edge);width:1px;height:12px}@media (width<=720px){.help{gap:3px 7px;font-size:10px}}.hud{z-index:10;border:1px solid var(--skysim-edge);background:var(--skysim-panel);backdrop-filter:blur(8px);min-width:190px;font-family:var(--skysim-mono);color:var(--skysim-ink);user-select:none;pointer-events:none;border-radius:8px;padding:10px 12px;font-size:11.5px;line-height:1.55;position:fixed;top:12px;right:12px}.hud[hidden],.hud--compact .hud__row--detail{display:none}.hud__title{border-bottom:1px solid var(--skysim-edge);letter-spacing:.08em;text-transform:uppercase;color:var(--skysim-dim);margin-bottom:6px;padding-bottom:5px;font-size:10px;font-weight:600}.hud__row{justify-content:space-between;gap:1.25rem;display:flex}.hud__row--group{border-top:1px dashed var(--skysim-edge);margin-top:6px;padding-top:5px}.hud__label{color:var(--skysim-dim)}.hud__value{font-variant-numeric:tabular-nums;text-align:right}.hud__value--warn{color:var(--skysim-warn)}.hud__value--bad{color:var(--skysim-bad)}.spawn{z-index:50;backdrop-filter:blur(3px);background:#04070b9e;place-items:center;padding:5vh 4vw;display:grid;position:fixed;inset:0}.spawn[hidden]{display:none}.spawn__panel{border:1px solid var(--skysim-edge);background:#080e16f0;border-radius:12px;flex-direction:column;gap:10px;width:min(680px,100%);max-height:100%;padding:18px 20px;display:flex;box-shadow:0 24px 70px #0000008c}.spawn__title{letter-spacing:.14em;text-transform:uppercase;color:var(--skysim-dim);font-size:10px;font-weight:600}.spawn__input{border:1px solid var(--skysim-edge);width:100%;color:var(--skysim-ink);font-family:var(--skysim-mono);background:#00000059;border-radius:8px;padding:10px 12px;font-size:14px}.spawn__input:focus{border-color:#8cbeff99;outline:none}.spawn__results{flex-direction:column;gap:1px;max-height:44vh;display:flex;overflow-y:auto}.spawn__result{color:var(--skysim-ink);font-family:var(--skysim-mono);text-align:left;cursor:pointer;background:0 0;border:1px solid #0000;border-radius:6px;grid-template-columns:4.5rem 1fr auto;align-items:baseline;gap:10px;padding:7px 10px;font-size:12px;display:grid}.spawn__result:hover,.spawn__result--active{border-color:var(--skysim-edge);background:#8cbeff1a}.spawn__icao{letter-spacing:.06em;font-weight:600}.spawn__name{text-overflow:ellipsis;white-space:nowrap;color:var(--skysim-ink);overflow:hidden}.spawn__meta,.spawn__message{color:var(--skysim-dim);font-size:11px}.spawn__message{font-family:var(--skysim-mono);padding:10px}.spawn__detail{border-top:1px solid var(--skysim-edge);flex-direction:column;gap:8px;padding-top:10px;display:flex}.spawn__detailTitle{font-family:var(--skysim-mono);color:var(--skysim-dim);font-size:11px}.spawn__ends,.spawn__modes{flex-wrap:wrap;gap:6px;display:flex}.spawn__end,.spawn__mode{border:1px solid var(--skysim-edge);color:var(--skysim-ink);font-family:var(--skysim-mono);cursor:pointer;background:#0000004d;border-radius:999px;padding:5px 11px;font-size:11px}.spawn__end:hover,.spawn__mode:hover{background:#8cbeff24;border-color:#8cbeff99}.spawn__mode--active{border-color:var(--skysim-good);color:var(--skysim-good)}.spawn__hint{font-family:var(--skysim-mono);color:var(--skysim-dim);font-size:10px}.envpanel{z-index:6;backdrop-filter:blur(8px);color:#cfd8e3;pointer-events:auto;background:#0c1016d1;border:1px solid #96b4dc29;border-radius:10px;width:230px;padding:12px 14px 10px;font:11px/1.5 ui-monospace,SFMono-Regular,Menlo,monospace;position:fixed;bottom:56px;left:12px}.envpanel[hidden]{display:none}.envpanel__title{letter-spacing:.16em;color:#8fa4bd;border-bottom:1px solid #96b4dc29;margin-bottom:8px;padding-bottom:6px;font-size:10px}.envpanel__label{letter-spacing:.1em;color:#7f92a9;margin:10px 0 4px;font-size:10px}.envpanel__row{justify-content:space-between;gap:8px;margin:3px 0;display:flex}.envpanel__rowlabel{color:#8fa4bd}.envpanel__rowvalue{color:#eaf1f8;font-variant-numeric:tabular-nums}.envpanel__slider{accent-color:#7fb2ff;width:100%;margin:4px 0 6px}.envpanel__buttons{flex-wrap:wrap;gap:4px;display:flex}.envpanel__button{color:#b9c8da;font:inherit;cursor:pointer;background:#ffffff0a;border:1px solid #96b4dc33;border-radius:5px;flex:auto;padding:3px 6px}.envpanel__button:hover{background:#ffffff1a}.envpanel__button--active{color:#eaf1f8;background:#7fb2ff38;border-color:#7fb2ff80}.envpanel__hint{color:#6d7f95;margin-top:10px;font-size:10px}.hud-overlay{pointer-events:none;z-index:5;position:fixed;inset:0}.hud-overlay[hidden]{display:none}.menu{z-index:40;overscroll-behavior:contain;background:radial-gradient(120% 90% at 50% 0,#182a42e6,#05080cfa),#05080c;justify-content:center;align-items:center;padding:4vh 4vw;display:flex;position:fixed;inset:0;overflow-y:auto}.menu--overlay{backdrop-filter:blur(6px);background:#05080cd1}.menu[hidden]{display:none}.menu__screen{width:min(920px,100%);margin:auto}.menu__screen[hidden]{display:none}.menu__title{letter-spacing:.06em;text-transform:uppercase;margin:0 0 .2em;font-size:clamp(2rem,5vw,3.2rem);font-weight:700}.menu__subtitle{color:var(--skysim-dim);max-width:60ch;margin:0 0 2rem;font-size:.95rem}.menu__list{flex-direction:column;gap:.4rem;margin-bottom:2rem;display:flex}.menu__list--footer{flex-flow:wrap;margin-top:1.5rem}.menu__item{border:1px solid var(--skysim-edge);color:var(--skysim-ink);font:inherit;letter-spacing:.04em;text-align:left;cursor:pointer;background:#0c141e99;border-radius:6px;align-items:baseline;gap:1rem;padding:.85rem 1.1rem;font-size:1.05rem;font-weight:600;transition:background .12s,border-color .12s,transform .12s;display:flex}.menu__item:hover,.menu__item:focus-visible{background:#284e768c;border-color:#a0d2ff99;outline:none;transform:translate(3px)}.menu__hint{color:var(--skysim-dim);letter-spacing:0;margin-left:auto;font-size:.8rem;font-weight:400}.menu__section{color:var(--skysim-dim);letter-spacing:.18em;text-transform:uppercase;margin:1.8rem 0 .6rem;font-size:.75rem;font-weight:700}.menu__rows{flex-direction:column;gap:.35rem;display:flex}.menu__row{background:#0a101880;border-radius:5px;align-items:center;gap:.75rem;padding:.5rem .7rem;display:flex}.menu__row--clash{box-shadow:inset 0 0 0 1px var(--skysim-bad)}.menu__rowLabel{flex:16rem;font-size:.9rem}.menu__value{min-width:5.5rem;color:var(--skysim-dim);font-family:var(--skysim-mono);text-align:right;font-size:.8rem}.menu__slider{accent-color:#6fb0ee;flex:0 16rem}.menu__slider--narrow{flex:0 8rem}.menu__toggle,.menu__chip,.menu__binding{border:1px solid var(--skysim-edge);color:var(--skysim-ink);font:inherit;letter-spacing:.06em;cursor:pointer;background:#0c141eb3;border-radius:4px;padding:.35rem .7rem;font-size:.78rem;font-weight:600}.menu__binding{min-width:9rem;font-family:var(--skysim-mono);letter-spacing:0}.menu__toggle:hover,.menu__chip:hover,.menu__binding:hover,.menu__toggle:focus-visible,.menu__chip:focus-visible,.menu__binding:focus-visible{border-color:#a0d2ffb3;outline:none}.menu__toggle[aria-pressed=true],.menu__chip--active{background:#3c76b0bf;border-color:#aad7ffcc}.menu__choice{flex-wrap:wrap;gap:.3rem;display:flex}.menu__prose{max-width:70ch;color:var(--skysim-ink);font-size:.92rem;line-height:1.65}.menu__note{color:var(--skysim-dim);font-size:.82rem}.menu__creditHeading{color:var(--skysim-dim);letter-spacing:.09em;text-transform:uppercase;margin-top:1.1rem;font-size:.74rem}.menu__prose a{color:var(--skysim-ink);text-decoration-color:color-mix(in srgb, var(--skysim-ink) 45%, transparent);text-underline-offset:.18em}.menu__prose a:hover,.menu__prose a:focus-visible{text-decoration-color:currentColor}.menu__helpGrid{grid-template-columns:auto 1fr;align-items:center;gap:.45rem 1rem;max-width:46rem;font-size:.9rem;display:grid}.menu__kbd{border:1px solid var(--skysim-edge);font-family:var(--skysim-mono);white-space:nowrap;background:#0c141ecc;border-bottom-width:2px;border-radius:4px;padding:.2rem .5rem;font-size:.8rem}.touch{z-index:8;padding:0 calc(14px + env(safe-area-inset-right)) calc(14px + env(safe-area-inset-bottom)) calc(14px + env(safe-area-inset-left));pointer-events:none;user-select:none;touch-action:none;justify-content:space-between;align-items:flex-end;display:flex;position:fixed;inset:0}.touch[hidden]{display:none}.touch__left,.touch__right{align-items:flex-end;gap:12px;display:flex}.touch__left{flex-direction:column;align-items:center}.touch__stick{backdrop-filter:blur(6px);pointer-events:auto;touch-action:none;background:radial-gradient(circle,#14223280,#080e16ad);border:1px solid #a0c8f04d;border-radius:50%;width:132px;height:132px;position:relative}.touch__stick:before,.touch__stick:after{content:"";background:#a0c8f02e;position:absolute;top:50%;left:50%}.touch__stick:before{width:26px;height:1px;transform:translate(-50%,-50%)}.touch__stick:after{width:1px;height:26px;transform:translate(-50%,-50%)}.touch__knob{pointer-events:none;background:#406892a8;border:1px solid #bee1ff8c;border-radius:50%;width:54px;height:54px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:0 4px 16px #00000073}.touch__rudder{gap:10px;display:flex}.touch__button,.touch__rudderButton{backdrop-filter:blur(6px);min-width:56px;min-height:44px;color:var(--skysim-ink);font-family:var(--skysim-mono);letter-spacing:.06em;pointer-events:auto;touch-action:none;background:#080e16ad;border:1px solid #a0c8f04d;border-radius:10px;place-items:center;padding:0 10px;font-size:12px;font-weight:600;display:grid}.touch__rudderButton{min-width:60px;font-size:15px}.touch__button--fire{color:#ffb2ad;border-color:#ff7b7273}.touch__button--down{color:var(--skysim-good);background:#7ee08a33;border-color:#7ee08a99}.touch__buttons{grid-template-columns:repeat(2,auto);gap:8px;display:grid}.touch__throttle{backdrop-filter:blur(6px);pointer-events:auto;touch-action:none;background:#080e16ad;border:1px solid #a0c8f04d;border-radius:12px;align-items:flex-end;width:58px;height:176px;display:flex;position:relative;overflow:hidden}.touch__throttleFill{background:linear-gradient(#86ccff9e,#4b8fd0bf);width:100%;height:0%}.touch__throttleLabel{text-align:center;color:var(--skysim-ink);font-family:var(--skysim-mono);font-variant-numeric:tabular-nums;text-shadow:0 1px 3px #000000b3;font-size:11px;position:absolute;top:8px;left:0;right:0}@media (orientation:landscape) and (height<=420px){.touch__stick{width:112px;height:112px}.touch__knob{width:46px;height:46px}.touch__throttle{height:148px}.touch__button,.touch__rudderButton{min-height:40px}}.rotate{z-index:60;background:linear-gradient(160deg,#0a1522,#05080c);place-content:center;padding:8vh 10vw;display:grid;position:fixed;inset:0}.rotate[hidden]{display:none}.rotate__card{text-align:center;justify-items:center;gap:14px;max-width:34ch;display:grid}.rotate__glyph{color:#e8f0f899}.rotate__glyph svg{width:92px;height:64px}.rotate__title{letter-spacing:.04em;color:var(--skysim-ink);font-size:1.15rem;font-weight:600}.rotate__note{color:var(--skysim-dim);margin:0;font-size:.85rem;line-height:1.6}.notice{top:calc(10px + env(safe-area-inset-top));z-index:12;border:1px solid var(--skysim-edge);background:var(--skysim-panel);backdrop-filter:blur(8px);max-width:min(660px,100vw - 320px);font-family:var(--skysim-mono);color:var(--skysim-ink);border-radius:999px;align-items:center;gap:10px;padding:7px 8px 7px 14px;font-size:11.5px;line-height:1.45;display:flex;position:fixed;left:50%;transform:translate(-50%)}.notice[hidden]{display:none}.notice--warn{border-color:#ffcf6b73}.notice--warn .notice__message{color:var(--skysim-warn)}.notice__message{min-width:0;color:var(--skysim-dim)}.notice__action,.notice__close{border:1px solid var(--skysim-edge);color:var(--skysim-ink);font:inherit;cursor:pointer;background:#0000004d;border-radius:999px;flex:none}.notice__action{letter-spacing:.08em;padding:4px 11px;font-size:10px}.notice__close{width:22px;height:22px;color:var(--skysim-dim);place-items:center;padding:0 0 2px;font-size:14px;line-height:1;display:grid}.notice__action[hidden],.notice__close[hidden]{display:none}.notice__action:hover,.notice__close:hover,.notice__action:focus-visible,.notice__close:focus-visible{color:var(--skysim-ink);background:#284e7699;border-color:#a0d2ffb3;outline:none}@media (width<=720px){.notice{font-size:10.5px}}.skysim-touch .notice{max-width:calc(100vw - 140px)}.shot{right:12px;bottom:calc(52px + env(safe-area-inset-bottom));z-index:11;border:1px solid var(--skysim-edge);background:var(--skysim-panel);backdrop-filter:blur(8px);width:40px;height:40px;color:var(--skysim-dim);cursor:pointer;border-radius:10px;place-items:center;padding:0;transition:color .14s,border-color .14s,background-color .14s;display:grid;position:fixed}.shot[hidden]{display:none}.shot svg{width:21px;height:21px}.shot:hover,.shot:focus-visible{color:var(--skysim-ink);background:#284e7699;border-color:#a0d2ff99;outline:none}.shot--flash{animation:.42s ease-out shot-flash}@keyframes shot-flash{0%{color:var(--skysim-ink);box-shadow:0 0 #e8f0f8d9}to{box-shadow:0 0 0 14px #e8f0f800}}.shot-toast{right:60px;bottom:calc(52px + env(safe-area-inset-bottom));z-index:11;border:1px solid var(--skysim-edge);background:var(--skysim-panel);backdrop-filter:blur(8px);max-width:min(560px,100vw - 84px);font-family:var(--skysim-mono);color:var(--skysim-ink);border-radius:10px;align-items:center;gap:10px;padding:8px 12px;font-size:11px;display:flex;position:fixed}.shot-toast[hidden]{display:none}.shot-toast__message{text-overflow:ellipsis;white-space:nowrap;color:var(--skysim-dim);user-select:none;overflow:hidden}.shot-toast__message--selectable{white-space:normal;color:var(--skysim-ink);user-select:text}.shot-toast__action{border:1px solid var(--skysim-edge);color:var(--skysim-ink);font:inherit;letter-spacing:.06em;cursor:pointer;background:#0000004d;border-radius:5px;flex:none;padding:4px 8px;font-size:10px}.shot-toast__action[hidden]{display:none}.shot-toast__action:hover,.shot-toast__action:focus-visible{background:#284e7699;border-color:#a0d2ffb3;outline:none}.skysim-touch .shot{bottom:auto;right:auto;left:calc(12px + env(safe-area-inset-left));top:calc(12px + env(safe-area-inset-top))}.skysim-touch .shot-toast{bottom:auto;right:auto;left:calc(60px + env(safe-area-inset-left));top:calc(12px + env(safe-area-inset-top));max-width:calc(100vw - 84px - env(safe-area-inset-left))}.menu__loadingTitle{color:var(--skysim-dim);letter-spacing:.1em;text-transform:uppercase;margin-bottom:1rem;font-size:.95rem}.menu__barTrack{background:#ffffff1f;border-radius:3px;width:min(520px,80vw);height:6px;overflow:hidden}.menu__barFill{background:linear-gradient(90deg,#4b8fd0,#86ccff);border-radius:3px;width:0%;height:100%;transition:width .18s ease-out}.menu__loadingLabel{color:var(--skysim-dim);font-family:var(--skysim-mono);margin-top:.7rem;font-size:.8rem}
