:root{color:#edf4ff;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;--panel:#07111fd6;--panel-solid:#0b1727;--line:#a4c5e929;--muted:#8ca4c0;--cyan:#69d6e8;--gold:#ffc857;background:#000;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}html,body,#app{width:100%;height:100%;margin:0;overflow:hidden}body{background:#000}button,input{font:inherit}button{color:inherit}.app-shell{width:100%;height:100%;position:relative;overflow:hidden}.scene-container{background:#000;position:absolute;inset:0}.scene-canvas{touch-action:none;width:100%;height:100%;display:block}.map-container,.ui-root{pointer-events:none;position:absolute;inset:0}.fatal-error{color:#edf4ff;text-align:center;place-content:center;height:100%;padding:2rem;display:grid}.fatal-error p{color:var(--muted)}.control-panel{pointer-events:auto;background:var(--panel);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);border:1px solid #99bfe638;border-radius:16px;flex-direction:column;width:min(360px,100vw - 2rem);max-height:calc(100vh - 2rem);display:flex;position:absolute;top:1rem;left:1rem;overflow:hidden;box-shadow:0 18px 48px #00000057,inset 0 1px #ffffff0d}[hidden]{display:none!important}.control-panel[data-mode=orbitExamples] .selected-group{display:none}.control-panel[data-mode=orbitExamples] #ground-track-readouts,.control-panel[data-mode=orbitExamples] #sensor-controls,.control-panel[data-mode=orbitExamples] #sensor-readouts{display:block}.control-panel[data-mode=tleInspector] .selected-group{display:none}.control-panel[data-mode=tleInspector] #tle-metadata,.control-panel[data-mode=tleInspector] #sensor-controls,.control-panel[data-mode=tleInspector] #sensor-readouts{display:block}.control-panel[data-mode=realWorldObjects] .selected-group{display:none}.control-panel[data-mode=realWorldObjects] #sensor-controls,.control-panel[data-mode=realWorldObjects] #sensor-readouts,.control-panel[data-mode=realWorldObjects] #tle-metadata{display:block}.panel-header{flex-shrink:0;max-height:64px}.panel-content{min-height:0}.panel-header>span:first-child{min-width:0}.panel-header strong,.panel-header small{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.comparison-actions{gap:.5rem;margin-bottom:.8rem;display:flex}.mode-label select{flex:1;min-width:0}select{color:#eaf8ff;font:inherit;background:#152738;border:1px solid #486073;border-radius:5px;padding:.4rem}textarea{box-sizing:border-box;resize:vertical;color:#edf4ff;background:#101f2f;border:1px solid #41566c;border-radius:6px;width:100%;min-height:9rem;padding:.55rem;font:.68rem/1.35 ui-monospace,SFMono-Regular,Consolas,monospace;display:block}.object-row{border:1px solid var(--line);border-radius:7px;margin:.4rem 0;padding:.4rem}.object-row.is-selected{border-color:var(--cyan);background:#69d6e814}.object-select{text-align:left;cursor:pointer;background:0 0;border:0;align-items:center;gap:.45rem;width:100%;padding:.2rem 0;font-size:.74rem;display:flex}.object-name{overflow-wrap:anywhere;flex:1;min-width:0}.object-swatch{border-radius:50%;flex:0 0 9px;height:9px}.selection-label{color:var(--cyan);visibility:hidden;font-size:.6rem}.is-selected .selection-label{visibility:visible}.object-actions{color:var(--muted);flex-wrap:wrap;align-items:center;gap:.65rem;font-size:.67rem;display:flex}.object-actions label{align-items:center;gap:.25rem;min-height:28px;display:flex}.object-actions input{accent-color:var(--cyan)}.remove-object{color:#f3b3aa;min-height:28px;font:inherit;cursor:pointer;background:0 0;border:0;margin-left:auto}.preset-card{border:1px solid var(--line);border-radius:8px;margin:.6rem 0;padding:.7rem;font-size:.75rem}.preset-card p,.example-intro,.starting-example,#empty-prompt,#object-limit{color:var(--muted);font-size:.69rem;line-height:1.5}.starting-example{padding:.5rem 0}.color-control{justify-content:space-between;align-items:center;font-size:.72rem;display:flex}button:disabled,input:disabled,select:disabled{opacity:.45;cursor:default}.control-panel :focus-visible,.toggle-row input:focus-visible+.toggle-ui{outline:2px solid var(--cyan);outline-offset:2px}.panel-header{border:0;border-bottom:1px solid var(--line);cursor:pointer;text-align:left;background:0 0;justify-content:space-between;align-items:center;gap:1rem;width:100%;padding:.9rem 1rem;display:flex}.panel-header strong{letter-spacing:.01em;font-size:.93rem;display:block}.panel-header small{color:var(--muted);margin-top:.16rem;font-size:.7rem;display:block}.panel-chevron{color:var(--cyan);font-size:1.25rem;transition:transform .16s}.is-collapsed .panel-chevron{transform:rotate(180deg)}.is-collapsed .panel-content{display:none}.panel-content{scrollbar-width:thin;max-height:calc(100vh - 5.5rem);padding:.85rem 1rem 1rem;overflow-y:auto}.panel-content::-webkit-scrollbar{width:5px}.panel-content::-webkit-scrollbar-thumb{background:#8ca4c04d;border-radius:9px}.mode-label{color:var(--cyan);background:#69d6e814;border-radius:8px;align-items:center;gap:.55rem;margin-bottom:.9rem;padding:.52rem .65rem;font-size:.78rem;display:flex}.mode-label span:first-child{letter-spacing:.14em;opacity:.68;font-size:.6rem}.mode-label strong{color:#eaf8ff;font-weight:600}.mode-caret{color:var(--muted);margin-left:auto}.panel-group{border-top:1px solid var(--line);padding:.85rem 0}.panel-group:first-of-type{border-top:0;padding-top:0}.compact-group{padding-bottom:.6rem}.group-heading{color:#e8f1fb;letter-spacing:.025em;justify-content:space-between;align-items:baseline;gap:.5rem;margin-bottom:.66rem;font-size:.77rem;font-weight:650;display:flex}.group-hint{color:var(--muted);font-size:.62rem;font-weight:400}.live-dot{color:#8af0c0;letter-spacing:.12em;font-size:.58rem}.live-dot:before{content:"";background:#8af0c0;border-radius:50%;width:5px;height:5px;margin:0 4px 1px 0;display:inline-block;box-shadow:0 0 8px #8af0c0}.slider-row{margin:.6rem 0;display:block}.slider-label{color:#cbd9e9;justify-content:space-between;align-items:baseline;gap:.75rem;font-size:.72rem;display:flex}.slider-label output{color:var(--cyan);font-variant-numeric:tabular-nums;white-space:nowrap}.angle-entry{color:var(--cyan);white-space:nowrap;align-items:baseline;gap:.15rem;display:inline-flex}.angle-input{color:#e7fbff;width:5.6rem;min-height:26px;font:inherit;font-variant-numeric:tabular-nums;text-align:right;background:#69d6e814;border:1px solid #69d6e861;border-radius:5px;padding:.1rem .2rem .1rem .35rem}.angle-input:focus-visible{outline:2px solid var(--cyan);outline-offset:1px}.slider-note{color:var(--muted);overflow-wrap:anywhere;font-size:.64rem;line-height:1.4;display:block}.control-subheading{color:#e8f1fb;margin:.9rem 0 .1rem;font-size:.7rem;font-weight:650}input[type=range]{cursor:pointer;width:100%;height:2rem;accent-color:var(--cyan);touch-action:none;margin:.02rem 0 0;display:block}input[type=range]::-webkit-slider-runnable-track{background:#91b4d842;border-radius:4px;height:3px}input[type=range]::-webkit-slider-thumb{background:var(--cyan);-webkit-appearance:none;border:2px solid #09202b;border-radius:50%;width:14px;height:14px;margin-top:-5.5px;box-shadow:0 0 0 2px #69d6e82e}input[type=range]::-moz-range-track{background:#91b4d842;border-radius:4px;height:3px}input[type=range]::-moz-range-thumb{background:var(--cyan);border:2px solid #09202b;border-radius:50%;width:11px;height:11px}.button-row{align-items:center;gap:.7rem;margin-bottom:.38rem;display:flex}#speed-steps{flex-wrap:wrap}.action-button{color:#e7fbff;cursor:pointer;background:#69d6e81f;border:1px solid #69d6e861;border-radius:7px;min-height:32px;padding:.35rem .8rem;font-size:.72rem;font-weight:650}.action-button:hover,.action-button:focus-visible{background:#69d6e838;outline:none}.speed-readout{color:var(--gold);font-variant-numeric:tabular-nums;font-size:.78rem}.toggle-row{color:#cbd9e9;cursor:pointer;justify-content:space-between;align-items:center;margin-top:.35rem;font-size:.72rem;display:flex;position:relative}.toggle-row input{opacity:0;pointer-events:none;position:absolute}.toggle-ui{background:#91b4d842;border-radius:12px;width:34px;height:19px;transition:background .16s;position:relative}.toggle-ui:after{content:"";background:#b3c5d8;border-radius:50%;width:13px;height:13px;transition:transform .16s,background .16s;position:absolute;top:3px;left:3px}.toggle-row input:checked+.toggle-ui{background:#69d6e87a}.toggle-row input:checked+.toggle-ui:after{background:#e7fdff;transform:translate(15px)}.teaching-note{border-left:2px solid var(--gold);color:#f5d995;background:#ffc85717;border-radius:0 6px 6px 0;margin-top:.6rem;padding:.58rem .65rem;font-size:.66rem;line-height:1.45;display:none}.teaching-note.is-visible{display:block}.ground-track-lesson strong{color:#f8df9a}.readout-grid{color:var(--muted);grid-template-columns:1fr auto;gap:.42rem .7rem;font-size:.7rem;display:grid}.readout-grid strong{color:#edf4ff;font-variant-numeric:tabular-nums;font-weight:550}.model-note{color:#718aa6;text-align:center;margin:.45rem 0 0;font-size:.6rem}.time-group>output{color:#edf4ff;font-variant-numeric:tabular-nums;margin-bottom:.65rem;font-size:.78rem;display:block}.time-input-label{color:var(--muted);gap:.4rem;margin-bottom:.65rem;font-size:.7rem;display:grid}.time-input-label input{box-sizing:border-box;color:#edf4ff;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;width:100%;min-width:0;font:inherit;background:#182736;border:1px solid #41566c;border-radius:6px;padding:.5rem}.time-input-label input:focus-visible{outline:2px solid var(--cyan);outline-offset:2px}.time-note{color:var(--muted);margin:.5rem 0 0;font-size:.65rem;line-height:1.5}.time-note:empty{display:none}.text-row{color:var(--muted);gap:.35rem;margin:.45rem 0;font-size:.7rem;display:grid}.text-row input{color:#edf4ff;background:#182736;border:1px solid #41566c;border-radius:6px;min-width:0;padding:.45rem}#catalogue-results{gap:.45rem;margin-top:.6rem;display:grid}.catalogue-result{border:1px solid var(--line);border-radius:7px;gap:.25rem;padding:.5rem;display:grid}.catalogue-result strong{overflow-wrap:anywhere;color:#edf4ff;font-size:.7rem}.catalogue-result span{color:var(--muted);font-size:.61rem;line-height:1.35}.catalogue-result-actions,.catalogue-detail-actions,.catalogue-comparison-actions{flex-wrap:wrap;gap:.35rem;display:flex}.catalogue-result .action-button,.catalogue-detail-actions .action-button,.catalogue-comparison-actions .action-button{justify-self:start}.catalogue-result .catalogue-source{color:#cfe0f5}.catalogue-result .catalogue-derived{color:#f5d995}.catalogue-warning{margin-top:.45rem}.catalogue-attribution{gap:.15rem;display:grid}.catalogue-attribution a{color:inherit;overflow-wrap:anywhere;text-decoration:underline}.catalogue-filter-fieldset{border:1px solid var(--line);border-radius:7px;flex-wrap:wrap;gap:.5rem;margin:.65rem 0;padding:.55rem;display:flex}.catalogue-filter-fieldset legend{color:#e8f1fb;padding:0 .25rem;font-size:.67rem}.catalogue-filter-option{min-width:0;color:var(--muted);align-items:center;gap:.35rem;font-size:.67rem;display:inline-flex}.catalogue-filter-option input{flex:none}.catalogue-year-input{min-width:8rem;color:var(--muted);gap:.25rem;font-size:.65rem;display:grid}.catalogue-year-input input,#catalogue-controls select,#catalogue-controls input[type=number]{box-sizing:border-box;color:#edf4ff;background:#182736;border:1px solid #41566c;border-radius:6px;max-width:100%;min-height:32px;padding:.35rem .45rem}#catalogue-filters{margin-top:.55rem}#catalogue-filters>summary{cursor:pointer;color:#e8f1fb;font-size:.72rem;font-weight:650}#catalogue-overview{gap:.35rem;margin-top:.6rem;display:grid}#catalogue-overview h3,#catalogue-details h3,#catalogue-compare h3{color:#e8f1fb;margin:.65rem 0 .25rem;font-size:.77rem}.catalogue-overview-row{flex-wrap:wrap;gap:.35rem;display:flex}.catalogue-chip{color:#e7fbff;cursor:pointer;background:#69d6e81a;border:1px solid #69d6e861;border-radius:999px;min-height:28px;padding:.25rem .55rem;font-size:.65rem}.catalogue-chip:hover,.catalogue-chip:focus-visible{background:#69d6e838;outline:none}.catalogue-details,.catalogue-compare{border-top:1px solid var(--line);margin-top:.7rem;padding-top:.65rem}.catalogue-detail-group{margin-top:.65rem}.catalogue-detail-group h4{color:#e8f1fb;margin:0;font-size:.7rem}.catalogue-detail-rows{grid-template-columns:minmax(0,1fr) minmax(0,1.25fr);gap:.25rem .55rem;margin:.35rem 0 0;font-size:.65rem;display:grid}.catalogue-detail-rows dt{color:var(--muted);overflow-wrap:anywhere}.catalogue-detail-rows dd{color:#edf4ff;overflow-wrap:anywhere;margin:0}.catalogue-compare{overflow:hidden}.catalogue-compare table{table-layout:fixed;border-collapse:collapse;width:100%;font-size:.62rem}.catalogue-compare th,.catalogue-compare td{border-bottom:1px solid var(--line);text-align:left;vertical-align:top;overflow-wrap:anywhere;padding:.35rem}.catalogue-compare th:first-child{min-width:9rem;color:var(--muted)}.catalogue-compare td{color:#edf4ff}.catalogue-compare .time-note{max-width:13rem}@media (width<=480px){#catalogue-controls,#catalogue-controls input,#catalogue-controls select,#catalogue-controls button{max-width:100%}#catalogue-controls .text-row,#catalogue-controls .mode-label,#catalogue-controls .catalogue-year-input,#catalogue-controls .text-row input,#catalogue-controls .mode-label select,#catalogue-controls .catalogue-filter-fieldset select,#catalogue-controls .catalogue-year-input input{width:100%}#catalogue-controls .catalogue-year-input{min-width:0}.catalogue-detail-rows{grid-template-columns:minmax(0,1fr);gap:.08rem}.catalogue-detail-rows dd{margin-bottom:.3rem}.catalogue-compare table{font-size:.55rem}.catalogue-compare th,.catalogue-compare td{padding:.25rem}}.loading-overlay{z-index:5;background:#050b15e6;place-items:center;transition:opacity .26s,visibility .26s;display:grid;position:absolute;inset:0}.loading-overlay.is-hidden{opacity:0;visibility:hidden;pointer-events:none}.loading-card{text-align:center;background:#0a1728e6;border:1px solid #99bfe633;border-radius:15px;width:min(320px,100vw - 3rem);padding:1.8rem;box-shadow:0 20px 60px #00000057}.loading-card strong{font-size:.92rem;display:block}.loading-card p,.loading-card small{color:var(--muted);margin:.6rem 0 0;font-size:.72rem;line-height:1.5;display:block}.loading-message{color:var(--muted);margin:.6rem 0 .9rem;font-size:.7rem;display:block}.loading-progress{background:#91b4d82e;border-radius:4px;height:4px;overflow:hidden}.loading-progress i{background:var(--cyan);border-radius:4px;width:0;height:100%;transition:width .18s;display:block}.loading-orbit{border:1px solid #69d6e880;border-radius:50%;width:38px;height:38px;margin:0 auto 1rem;transform:rotate(-25deg)skew(-14deg);box-shadow:0 0 16px #69d6e82e}.loading-orbit:after{content:"";background:var(--gold);border-radius:50%;width:7px;height:7px;margin:2px 0 0 25px;display:block}.loading-overlay.is-error .loading-orbit,.loading-overlay.is-error .loading-progress{display:none}@media (width<=639px){.control-panel{border-radius:14px;width:auto;max-height:calc(100dvh - 1.2rem);inset:auto .6rem .6rem}.panel-content{max-height:min(70dvh,620px)}.control-panel:not(.is-collapsed){max-height:calc(100dvh - 1.2rem)}.control-panel:not(.is-collapsed) .panel-content{max-height:calc(100dvh - 4.4rem)}.control-panel.is-collapsed .panel-header{border-bottom:0}}.ground-track-map{pointer-events:auto;background:#060f1bed;border:1px solid #99bfe638;border-radius:14px;flex-direction:column;gap:.55rem;width:min(768px,100vw - 2rem);padding:.7rem .8rem .8rem;display:flex;position:absolute;bottom:1rem;right:1rem;box-shadow:0 18px 48px #0000006b,inset 0 1px #ffffff0d}.map-heading{justify-content:space-between;align-items:center;gap:.75rem;display:flex}.map-title{color:#e8f1fb;letter-spacing:.025em;font-size:.77rem;font-weight:650}.map-close{min-height:28px;padding:.25rem .7rem}.ground-track-map :focus-visible{outline:2px solid var(--cyan);outline-offset:2px}.map-frame{aspect-ratio:2;border-radius:8px;width:100%;position:relative;overflow:hidden}.map-layer{pointer-events:none;display:block;position:absolute;inset:0}.map-status{color:#f5d995;margin:0;font-size:.64rem;line-height:1.45}.map-status:empty{display:none}.map-legend{flex-direction:column;gap:.35rem;display:flex}.map-legend-objects{flex-wrap:wrap;gap:.3rem .85rem;margin:0;padding:0;list-style:none;display:flex}.map-legend-row{color:#cbd9e9;align-items:center;gap:.35rem;font-size:.66rem;display:flex}.map-legend-swatch{border-radius:50%;width:9px;height:9px}.map-legend-key,.map-legend-note,.map-empty{color:var(--muted);margin:0;font-size:.62rem;line-height:1.45}.map-empty{color:#f5d995}@media (width<=639px){.ground-track-map{top:calc(.6rem + env(safe-area-inset-top));right:calc(.6rem + env(safe-area-inset-right));bottom:auto;left:calc(.6rem + env(safe-area-inset-left));border-radius:12px;width:auto;max-height:45dvh;padding:.55rem .6rem .6rem;overflow:hidden}.map-frame{max-height:26dvh}.map-legend-key,.map-legend-note{display:none}}
