*{box-sizing:border-box} :root{color-scheme:light;--ink:#233b4d;--muted:#657887;--line:#dce4e9;--blue:#2c6690}body{margin:0;background:#f5f6f4;color:var(--ink);font:15px/1.55 -apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}main{max-width:1320px;margin:auto;padding:26px 36px 70px}header{display:flex;justify-content:space-between;align-items:center;padding-bottom:22px;border-bottom:1px solid var(--line);color:var(--muted)}a{color:var(--blue)}.brand{font-size:18px;letter-spacing:.16em;font-weight:700;text-decoration:none;color:var(--ink)}.heading{display:flex;align-items:center;justify-content:space-between;gap:24px;margin:28px 0 22px}.eyebrow{font-size:11px;letter-spacing:.14em;color:var(--muted);margin:0 0 12px}h1{font-weight:500;font-size:clamp(28px,3vw,42px);line-height:1.12;margin:0 0 12px;letter-spacing:-.025em}h2{font-size:21px;font-weight:500;margin:0 0 12px}h3{font-size:16px;font-weight:600}.heading p:last-child{margin:0;color:var(--muted)}.badge{white-space:nowrap;font-size:12px;border:1px solid var(--line);padding:8px 12px;border-radius:24px}.hero,#start,.controls,.observations,#image-panel,#scene-panel,#bit-panel,#history-panel{background:#fff;border:1px solid var(--line);border-radius:10px;margin:18px 0;padding:24px}.hero{padding:0;overflow:hidden}.scene-top{display:flex;justify-content:space-between;align-items:center;padding:20px 24px 12px}.scene-top h2{margin:0;font-size:19px}.scene-top p{font-size:12px;color:var(--muted);margin:4px 0}.scene-top>span{font-size:12px;color:var(--muted);text-align:right;max-width:240px}#scene-view{height:410px;position:relative;background:#e8eff3}#scene-view canvas{display:block;width:100%;height:100%;touch-action:none}.scene-label{position:absolute;pointer-events:none;color:#536b7b;font-size:10px;letter-spacing:.12em;background:#ffffffc4;padding:4px 8px;border-radius:3px;z-index:1}.station{left:36%;bottom:14%}.satellite{right:8%;top:7%}.scene-toolbar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:14px 24px;border-bottom:1px solid var(--line)}button,select,input{font:inherit}button{cursor:pointer;background:#fff;color:var(--ink);border:1px solid #c5d1db;border-radius:5px;padding:9px 14px}button:hover{background:#eef3f6}button:disabled{opacity:.45;cursor:default}#activate,#run{background:var(--blue);border-color:var(--blue);color:#fff}select,input[type=number]{background:#fff;border:1px solid #c5d1db;border-radius:4px;padding:8px;color:var(--ink);max-width:100%}input[type=range]{width:100%;accent-color:var(--blue)}input[type=checkbox]{accent-color:var(--blue)}.scene-toolbar label{font-size:12px;color:var(--muted);display:flex;align-items:center;gap:8px}.scene-toolbar select{padding:6px}.scene-toolbar small{margin-left:auto;color:var(--muted)}.hud{display:grid;grid-template-columns:repeat(5,1fr);padding:18px 24px;gap:20px}.hud small{display:block;color:var(--muted);font-size:11px}.hud strong{font-size:20px;font-weight:500}.scene-controls{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px 22px;padding:0 24px}.scene-controls label{font-size:12px;display:flex;justify-content:space-between}.scene-controls input,.scene-controls select{margin-bottom:12px}.scene-controls label:nth-of-type(1){grid-column:1/-1}.scene-controls select:first-of-type{grid-column:1/-1}.scene-controls label{grid-row:auto}.scene-caption,.references{font-size:12px;color:var(--muted);padding:0 24px}.scene-caption{margin:12px 0}.references{margin-bottom:18px}summary{cursor:pointer}.layout{display:grid;grid-template-columns:340px 1fr;gap:20px}.layout>section{margin-top:0}.controls label{display:flex;justify-content:space-between;margin:12px 0 4px;font-size:13px}.controls select,.controls input[type=number]{width:100%}.value{color:var(--blue);margin-left:12px}.note{font-size:12px;color:var(--muted)}.presets,.flow{display:flex;gap:8px;flex-wrap:wrap;margin:12px 0}.presets button{font-size:12px;padding:7px}.flow span{font-size:11px;color:#496272;padding:5px 10px;background:#e8eef1;border-radius:4px}.session{font-size:13px;color:#397554}.metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:20px}.metric{padding:12px;background:#f6f8f8;border:1px solid #e8ecef;border-radius:5px;overflow-wrap:anywhere}.metric span,.metric small{display:block;font-size:11px;color:var(--muted)}.metric strong{display:block;font-size:25px;font-weight:500;line-height:1.5}#result{white-space:pre-wrap;font-size:14px}#message{min-height:24px;color:var(--blue)}.image-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}figure{margin:0}figcaption{font-size:12px;color:var(--muted);margin-bottom:8px}figure canvas{width:100%;image-rendering:pixelated;border:1px solid var(--line);border-radius:3px;aspect-ratio:1}.controls figure canvas{max-width:160px}#source-preview{margin:16px 0}#source-preview p{font-size:11px;color:var(--muted)}.charts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.chart{padding:20px;background:#fff;border:1px solid var(--line);border-radius:8px}.chart svg{width:100%;height:auto}.chart h2{font-size:17px}.legend{display:flex;gap:16px;font-size:12px}.legend i{display:inline-block;width:10px;height:10px;margin-right:5px}.series-0{background:#326ca0}.series-1{background:#bb7634}.chart details{margin-top:15px;font-size:12px;max-height:240px;overflow:auto}table{border-collapse:collapse;font-size:12px;min-width:100%}td,th{padding:7px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}.table-scroll{overflow:auto}.bit-row{margin:12px 0}.bit-row strong{font-size:12px}.bit-grid{display:grid;grid-template-columns:repeat(32,1fr);gap:3px;margin-top:5px}.bit{background:#eef4f1;text-align:center;font:11px monospace}.bit.error{background:#f5ddd9;color:#943b31}.components{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}.components article{border-top:2px solid #a6b7c3;padding:10px 0}.components strong{font-size:12px;color:var(--blue)}.components p{font-size:12px;color:var(--muted)}[hidden]{display:none!important}@media(max-width:800px){main{padding:18px 16px 40px}header{font-size:12px}.brand{font-size:15px}.heading{display:block}.badge{display:none}#scene-view{height:320px}.scene-top{padding:16px}.scene-top h2{font-size:16px}.scene-top>span{max-width:130px;font-size:10px}.hud{grid-template-columns:repeat(3,1fr);gap:14px;padding:16px}.hud strong{font-size:17px}.scene-controls{grid-template-columns:1fr;padding:0 16px;gap:0}.scene-toolbar{padding:12px 16px;gap:7px}.scene-toolbar small{width:100%}.layout,.charts{grid-template-columns:1fr}.metrics{grid-template-columns:repeat(2,1fr)}.image-grid,.components{grid-template-columns:repeat(2,1fr)}.hero,#start,.controls,.observations,#image-panel,#bit-panel,#scene-panel,#history-panel{padding:16px}.hero{padding:0}.bit-grid{grid-template-columns:repeat(16,1fr)}.scene-caption,.references{padding:0 16px}}
.scene-controls .field{min-width:0}.scene-controls .field select{width:100%}.scene-controls .field label{display:flex;justify-content:space-between}.scene-controls .field:first-child{grid-column:1/-1}
.portrait-label{position:absolute;bottom:8px;font-size:10px;letter-spacing:.07em;pointer-events:none;color:#617887}.portrait-1{left:12px}.portrait-2{left:calc(50% + 12px)}#scene-view{height:510px}@media(max-width:800px){#scene-view{height:410px}.portrait-label{font-size:8px;max-width:44%}}
.scene-label.altitude{background:#fff9ed;color:#866d43;font-size:11px}.scene-label.satellite{max-width:220px}.scene-label.station{max-width:160px}@media(max-width:800px){.scene-label{font-size:8px}.scene-label.satellite{max-width:150px}.scene-label.altitude{font-size:9px}}
.demo-tabs{display:flex;gap:8px;margin-top:22px}.demo-tabs button[aria-pressed=true]{background:#2c6690;color:#fff;border-color:#2c6690}.demo-tabs button{font-size:14px}.controls .field[hidden]{display:none}#capability-note{padding:12px;background:#f0f4f5;border-radius:5px}

.link-legend,.relay-status{padding:10px 24px;color:var(--muted);font-size:12px;margin:0;background:#f8faf9}.relay-status{padding-top:0}.hud{grid-template-columns:repeat(5,minmax(0,1fr))}@media(max-width:800px){.link-legend,.relay-status{padding-left:16px;padding-right:16px}.hud{grid-template-columns:repeat(3,minmax(0,1fr))}}

#baseline-panel{padding:20px 24px;background:#fff;border:1px solid var(--line);border-radius:8px;margin:18px 0}#baseline-panel h2{font-size:18px}#baseline-table{max-height:320px}
.access-notice{padding:14px 18px;border:1px solid #dfc5a1;border-radius:6px;background:#fff8ec;color:#785526;font-size:14px}#run-status{min-height:36px}
