@import"https://fonts.googleapis.com/css2?family=DM+Mono:wght@400;500&family=Manrope:wght@400;500;600;700&family=Newsreader:opsz,wght@6..72,500;6..72,600&display=swap";:root{color:#eaf3fb;background:#07111e;font-family:Manrope,system-ui,sans-serif;font-synthesis:none;text-rendering:optimizeLegibility;--ink: #eaf3fb;--muted: #98abc0;--dim: #6f849b;--line: rgba(154, 191, 220, .16);--panel: rgba(13, 29, 47, .86);--panel-strong: #10263d;--cyan: #65d6e8;--blue: #63a6ff;--amber: #f4c76f;--coral: #ff8d81;--green: #7de0b2}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;min-width:320px;min-height:100vh;background:#07111e}button,input{font:inherit}button{color:inherit}button:focus-visible,a:focus-visible,input:focus-visible{outline:3px solid rgba(101,214,232,.76);outline-offset:3px}a{color:var(--cyan)}.lesson-shell{min-height:100vh}.lesson-hero{width:min(880px,calc(100% - 48px));margin:0 auto;padding:24px 0 50px;border-bottom:1px solid var(--line)}.course-bar{display:flex;align-items:center;justify-content:space-between;gap:20px}.brand,.course-bar>span{color:var(--muted);font-family:DM Mono,monospace;font-size:11px;letter-spacing:.08em;text-decoration:none;text-transform:uppercase}.brand{color:var(--ink)}.course-nav{display:flex;gap:8px;margin-top:28px}.course-nav a{padding:8px 11px;border-bottom:1px solid transparent;color:var(--muted);font-size:13px;text-decoration:none}.course-nav a.current{border-color:var(--cyan);color:var(--ink)}.hero-copy{max-width:760px;margin-top:54px}.eyebrow{margin:0 0 14px;color:var(--cyan);font-family:DM Mono,monospace;font-size:11px;letter-spacing:.1em;text-transform:uppercase}h1,h2,h3,p{margin-top:0}h1,.lesson-content h2{font-family:Newsreader,Georgia,serif;letter-spacing:-.035em}h1{max-width:760px;margin-bottom:18px;font-size:clamp(44px,7vw,72px);font-weight:500;line-height:1}.hero-summary{max-width:680px;margin-bottom:0;color:#b9cadd;font-size:17px;line-height:1.65}.lesson-grid{width:min(880px,calc(100% - 48px));margin:0 auto;padding:34px 0 110px}.lesson-grid>*{min-width:0}.chapter-rail{display:flex;gap:22px;padding-bottom:22px;overflow-x:auto;border-bottom:1px solid var(--line)}.chapter-rail a{display:flex;flex:0 0 auto;gap:8px;align-items:center;color:var(--muted);font-size:12px;text-decoration:none}.chapter-rail a:hover{color:var(--ink)}.chapter-rail a span{color:var(--dim);font-family:DM Mono,monospace;font-size:10px}.lesson-content section{scroll-margin-top:36px}.lesson-content section+section{margin-top:86px;padding-top:64px;border-top:1px solid var(--line)}.lesson-content h2{margin-bottom:24px;color:#f2f7fb;font-size:clamp(34px,5vw,50px);font-weight:500;line-height:1.05}.lesson-content h3{margin-top:46px;margin-bottom:16px;color:#f1f7fc;font-size:22px;line-height:1.25}.lesson-content>section>p{color:#b7c6d5;font-size:17px;line-height:1.78}.lesson-content strong{color:#f1f7fb}.lesson-content ol,.lesson-content ul{color:#b7c6d5;font-size:16px;line-height:1.75}.source-note{margin-top:30px!important;padding-left:18px;border-left:2px solid rgba(101,214,232,.35);color:var(--dim)!important;font-size:13px!important;line-height:1.65!important}.lab{margin:42px 0;padding:clamp(20px,4vw,32px);border:1px solid var(--line);border-radius:16px;background:var(--panel)}.lab-heading{display:flex;gap:24px;align-items:flex-start;justify-content:space-between;margin-bottom:28px}.lab-heading h3{margin:0;font-size:clamp(21px,3vw,29px)}.lab-heading output{display:grid;flex:0 0 auto;justify-items:end;color:var(--muted);font-family:DM Mono,monospace;font-size:10px}.lab-heading output strong{color:var(--cyan);font-size:25px;font-weight:500}.lab figcaption{margin-top:24px;color:var(--muted);font-size:13px;line-height:1.65}.status-good,.status-bad{color:var(--green)!important;font:500 12px/1.4 DM Mono,monospace!important;text-align:right}.status-bad{color:var(--coral)!important}.mode-switch{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-bottom:24px}.mode-switch button{padding:11px 13px;border:1px solid var(--line);border-radius:9px;background:transparent;color:var(--muted);cursor:pointer}.mode-switch button[aria-pressed=true]{border-color:var(--cyan);color:var(--ink)}.handoff-chart{display:block;width:100%;margin-bottom:12px}.handoff-chart path,.handoff-chart circle,.handoff-chart line{fill:none;stroke-width:2}.handoff-chart .signal-a{fill:var(--cyan);stroke:var(--cyan)}.handoff-chart .signal-b{fill:var(--amber);stroke:var(--amber)}.handoff-overlap{fill:#65d6e80f}.handoff-gap{fill:#ff8d8129}.chart-threshold{stroke:var(--dim);stroke-dasharray:5 6}.time-marker{stroke:var(--ink)}.handoff-chart text{fill:var(--muted);font:11px DM Mono,monospace}.handoff-chart .threshold-label,.handoff-chart .overlap-label{fill:var(--dim);font-size:9px}.resource-readout{display:grid;grid-template-columns:repeat(3,1fr);margin:24px 0 18px;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.resource-readout div{padding:16px 12px}.resource-readout div+div{border-left:1px solid var(--line)}.resource-readout dt{color:var(--muted);font-size:12px}.resource-readout dd{margin:6px 0 0;color:var(--ink);font:500 22px DM Mono,monospace}.resource-meter{position:relative;height:12px;overflow:hidden;border-radius:3px;background:#ffffff12}.resource-meter span{display:block;height:100%;background:var(--blue)}.resource-meter i{position:absolute;top:-4px;width:2px;height:20px;background:var(--amber)}.fade-meter .fade-spent{background:var(--coral)}.obstruction-chart{display:block;width:100%;margin:8px 0 18px}.ground-line{stroke:var(--line);stroke-width:2}.obstruction-object{fill:#f4c76f59;stroke:var(--amber)}.sight-clear{stroke:var(--cyan);stroke-width:2}.sight-blocked{stroke:var(--coral);stroke-width:2;stroke-dasharray:6 5}.dish-mark{fill:var(--ink)}.sat-clear{fill:var(--cyan)}.sat-blocked{fill:var(--coral)}.obstruction-chart text{fill:var(--muted);font:11px DM Mono,monospace}.resource-legend{display:flex;justify-content:space-between;margin-top:8px;color:var(--dim);font-size:10px}.lesson-content table{display:table;width:100%;margin:30px 0;border-collapse:collapse;color:#b7c6d5;font-size:14px;line-height:1.55}.lesson-content th,.lesson-content td{padding:12px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}.lesson-content th{color:var(--ink)}.route-status{flex:0 0 auto;padding:8px 11px;border:1px solid currentColor;border-radius:999px;color:var(--green);font-family:DM Mono,monospace;font-size:10px}.route-status.blocked{color:var(--coral)}.route-status.direct{color:var(--amber)}.route-controls{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.route-controls button{display:grid;grid-template-columns:auto 1fr auto;gap:11px;align-items:center;padding:13px 14px;border:1px solid var(--line);border-radius:12px;background:#05101d9e;color:var(--muted);cursor:pointer;text-align:left}.route-controls button[aria-pressed=true]{border-color:#65d6e861;color:var(--ink);background:#1f4a6070}.route-controls strong{color:var(--cyan);font-family:DM Mono,monospace;font-size:10px;text-transform:uppercase}.control-light{width:8px;height:8px;border-radius:50%;background:#526274}button[aria-pressed=true] .control-light{background:var(--cyan);box-shadow:0 0 12px #65d6e899}.route-map{display:block;width:100%;margin-top:12px;overflow:visible}.route-edge{fill:none;stroke:#7897b429;stroke-dasharray:4 7;stroke-linecap:round;stroke-width:2;transition:stroke .2s ease,filter .2s ease}.route-edge.active{stroke:#70d9e9;filter:drop-shadow(0 0 5px rgba(101,214,232,.46))}.route-node{fill:#9eb1c4;stroke:#9eb1c4;stroke-linejoin:round;stroke-width:2}.route-node text{fill:#8fa4b8;stroke:none;font-family:DM Mono,monospace;font-size:9px;text-anchor:middle}.route-node.satellite{fill:#183c5d;stroke:#78cfe3}.route-node.gateway-node{fill:#173a55;stroke:#f4c76f}.route-node.internet-node{fill:#112c47;stroke:#7de0b2}.packet-dot{fill:#f7fcff;stroke:var(--cyan);stroke-width:4}.range-control{display:grid;gap:12px;padding:18px;border:1px solid var(--line);border-radius:14px;background:#05101d80;color:var(--muted);font-size:13px}.range-control>span:first-child{display:flex;justify-content:space-between}.range-control strong{color:var(--cyan);font-family:DM Mono,monospace;font-weight:500}input[type=range]{width:100%;height:4px;border-radius:999px;appearance:none;background:linear-gradient(90deg,var(--cyan),rgba(99,166,255,.45));cursor:ew-resize}input[type=range]::-webkit-slider-thumb{width:20px;height:20px;border:4px solid #0e263d;border-radius:50%;appearance:none;background:#f0fbff;box-shadow:0 0 0 1px var(--cyan),0 0 15px #65d6e86b}.range-ends{display:flex;justify-content:space-between;color:var(--dim);font-family:DM Mono,monospace;font-size:9px}.latency-bars{display:grid;gap:18px;margin-top:28px}.latency-row{display:grid;grid-template-columns:150px 1fr;gap:20px;align-items:center}.latency-row>div{display:flex;justify-content:space-between;color:var(--muted);font-size:12px}.latency-row span{color:var(--muted);font-family:DM Mono,monospace;font-size:10px}.bar-track{display:block;height:13px;overflow:hidden;border-radius:999px;background:#040d18b3}.bar-fill{display:block;height:100%;min-width:6px;border-radius:inherit}.bar-fill.leo{background:linear-gradient(90deg,var(--cyan),var(--blue));box-shadow:0 0 15px #65d6e859}.bar-fill.geo{width:100%;background:linear-gradient(90deg,#6c6682,#9a7790)}.equation-strip{display:flex;flex-wrap:wrap;gap:10px 16px;align-items:center;justify-content:center;margin-top:30px;padding:16px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);color:var(--dim);font-size:11px}.equation-strip code{color:var(--amber);font-family:DM Mono,monospace;font-size:13px}.capacity-stage{position:relative;margin-top:20px;overflow:hidden;border:1px solid var(--line);border-radius:18px;background:#05101d94}.capacity-stage svg{display:block;width:100%}.region-outline{fill:#21516f29;stroke:#79aecf6b;stroke-dasharray:6 7;stroke-width:2}.capacity-cell circle:first-child{fill:#354b601a;stroke:#6f89a02e;stroke-width:1;transition:fill .18s ease,stroke .18s ease}.capacity-cell circle:nth-child(2){fill:#4e6377}.capacity-cell text{fill:#536a7f;font-family:DM Mono,monospace;font-size:8px}.capacity-cell.active circle:first-child{fill:#65d6e81f;stroke:#65d6e8b8;filter:drop-shadow(0 0 8px rgba(101,214,232,.2))}.capacity-cell.active circle:nth-child(2){fill:var(--cyan)}.capacity-cell.active text{fill:#a8e8f1}.capacity-readout{display:grid;grid-template-columns:repeat(2,1fr);border-top:1px solid var(--line)}.capacity-readout>div{display:grid;gap:4px;padding:18px 20px}.capacity-readout>div+div{border-left:1px solid var(--line)}.capacity-readout span{color:var(--dim);font-family:DM Mono,monospace;font-size:9px;letter-spacing:.08em;text-transform:uppercase}.capacity-readout strong{color:var(--green);font-size:14px}.checkpoint{margin:42px 0;padding:clamp(20px,4vw,32px);border:1px solid var(--line);border-radius:16px;background:var(--panel)}.checkpoint.is-solved{border-color:#7de0b26b}.checkpoint-status{margin:0 0 12px;color:var(--green);font:10px DM Mono,monospace;text-transform:uppercase}.checkpoint h3{max-width:640px;margin:0 0 24px;font-size:clamp(21px,3vw,28px);line-height:1.4}.answer-grid{display:grid;gap:10px}.answer{display:grid;grid-template-columns:34px 1fr;gap:12px;align-items:center;padding:14px;border:1px solid var(--line);border-radius:13px;background:#06111d94;color:#b7c6d5;cursor:pointer;text-align:left;transition:transform .14s ease,border-color .14s ease,background .14s ease}.answer:hover{border-color:#65d6e86b;background:#173347b8}.answer>span{display:grid;width:30px;height:30px;place-items:center;border:1px solid var(--line);border-radius:9px;color:var(--muted);font-family:DM Mono,monospace;font-size:10px}.answer.correct{border-color:#7de0b2b3;background:#205b4659;color:#d9f7e9}.answer.incorrect{border-color:#ff8d819e;background:#5f2a2d4d}.answer-feedback{min-height:72px;margin-top:20px;color:var(--muted);font-size:14px;line-height:1.6}.answer-feedback strong{color:var(--ink)}.answer-feedback p{margin:5px 0 0}.learning-report{padding-bottom:20px}.learning-report>div:first-child>p{max-width:690px;color:var(--muted);line-height:1.7}.report-card{display:grid;gap:16px;margin-top:20px;padding:20px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.report-card p,.report-card small{margin:0}.report-card p{color:#c7d7e5;line-height:1.65}.report-card small{color:var(--muted);line-height:1.6}.report-status,.report-actions{display:flex;gap:14px;align-items:center;justify-content:space-between}.report-status span{color:var(--muted);font-family:DM Mono,monospace;font-size:11px;text-transform:uppercase;letter-spacing:.08em}.report-status strong{color:var(--cyan);font-size:13px}.report-actions{justify-content:flex-start;flex-wrap:wrap}.report-actions button{padding:12px 16px;border:1px solid var(--cyan);border-radius:11px;background:var(--cyan);color:#071521;font:600 12px DM Mono,monospace;cursor:pointer}.report-payload{display:grid;gap:9px;color:var(--amber);font-size:12px}.report-payload textarea{width:100%;min-height:190px;padding:12px;resize:vertical;border:1px solid var(--line);border-radius:10px;background:#030d17c7;color:var(--ink);font:11px/1.55 DM Mono,monospace}.report-actions button:disabled{cursor:not-allowed;opacity:.42}.report-actions .button-secondary{border-color:var(--line);background:transparent;color:var(--muted)}.report-actions button:focus-visible{outline:2px solid var(--amber);outline-offset:3px}.term{border-bottom:1px dotted rgba(101,214,232,.7);cursor:help}.explainer-card{position:fixed;z-index:40;display:grid;gap:6px;width:min(320px,calc(100vw - 24px));padding:12px 14px;border:1px solid var(--line);border-radius:12px;background:#0c1b2c;box-shadow:0 16px 40px #00000059}.explainer-card strong{color:var(--cyan);font-family:DM Mono,monospace;font-size:13px;font-weight:500}.explainer-say{color:var(--amber);font-size:12px;line-height:1.4}.explainer-card p{margin:0;color:#c7d7e5;font-size:13px;line-height:1.55}@media(max-width:820px){.lesson-hero,.lesson-grid{width:min(760px,calc(100% - 36px))}}@media(max-width:580px){.lesson-hero{padding-top:20px}.course-bar{align-items:flex-start}.course-bar>span{text-align:right}.course-nav{overflow-x:auto}.hero-copy{margin-top:42px}.hero-summary{font-size:16px}.lesson-content section+section{margin-top:70px;padding-top:52px}.lab{margin-right:-8px;margin-left:-8px;padding:18px}.lab-heading,.mode-switch,.resource-readout{grid-template-columns:1fr}.lab-heading{display:grid}.lab-heading output,.status-good,.status-bad{justify-items:start;text-align:left}.route-controls{grid-template-columns:1fr}.route-map{min-width:620px;transform:translate(-56px)}.route-lab{overflow:hidden}.latency-row{grid-template-columns:1fr;gap:8px}.capacity-readout{grid-template-columns:1fr}.capacity-readout>div+div,.resource-readout div+div{border-top:1px solid var(--line);border-left:0}.lesson-content table{font-size:12px}.lesson-content th,.lesson-content td{padding:9px 6px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.transport-meter .pipe-underfilled{background:var(--amber)}.timer-timeline{position:relative;height:92px;margin:32px 0 20px}.timeline-track{position:absolute;top:42px;right:0;left:0;height:2px;background:var(--line)}.timeline-event{position:absolute;top:26px;display:grid;gap:8px;color:var(--muted);font:10px DM Mono,monospace;white-space:nowrap;transform:translate(-50%)}.timeline-event i{width:10px;height:10px;margin:0 auto;border:2px solid var(--cyan);border-radius:50%;background:var(--surface)}.timeline-event.send-event{align-items:start;transform:none}.timer-event i{border-color:var(--amber)}.timer-event.fires-first{color:var(--coral)}.timer-event.fires-first i{border-color:var(--coral)}.timer-event>span{transform:translateY(-48px)}
