/* FlightLab plates: warm paper, precise ink, copper face and olive club movement. */
.precision-chart{--chart-ink:#343a30;--chart-muted:#696c5b;--chart-flight:#7b6542;--chart-face:#a6613f;--chart-path:#58684a;--chart-line:#c9c4b4;--chart-paper:#f7f4e9;margin:0;min-width:0;padding:22px 18px 18px;border:1px solid #ded7c6;border-radius:16px;background:radial-gradient(ellipse at 32% 0%,#fffdf6 0%,#f7f4e9 70%);color:var(--chart-ink);text-align:left;box-shadow:0 3px 3px #1d241408,0 14px 34px #1d24140a;overflow:hidden}
.chart-meta{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0 4px 14px;color:#7a715c;font:500 10px/1.4 'Avenir Next',system-ui,sans-serif;text-transform:uppercase;letter-spacing:.13em}.chart-view{border:1px solid #d8d2c1;border-radius:4px;padding:4px 7px;letter-spacing:.07em;color:#59624e;white-space:nowrap}
.chart-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin:0 4px 20px;min-height:46px}.chart-heading h4{margin:0;font:400 23px/1.2 Georgia,serif;letter-spacing:-.025em;color:var(--chart-ink);max-width:18ch}.chart-value{font:400 37px/1 Georgia,serif;font-variant-numeric:tabular-nums;letter-spacing:-.04em;color:#625337;text-align:right;white-space:nowrap}.chart-value small{display:block;font:12px/1.5 'Avenir Next',system-ui,sans-serif;letter-spacing:0;color:var(--chart-muted);margin-top:5px;white-space:normal}
.chart-canvas{position:relative;aspect-ratio:520/320;width:100%;min-width:0;margin:0;isolation:isolate;overflow:visible}.chart-canvas>.precision-svg{display:block;width:100%;height:100%;max-height:none;min-width:0;overflow:visible;position:absolute;inset:0;border-radius:0;box-shadow:none}.chart-axis-labels{position:absolute;inset:0;pointer-events:none}.chart-tick{position:absolute;font:12px/1.2 'Avenir Next',system-ui,sans-serif;color:var(--chart-muted);font-variant-numeric:tabular-nums;white-space:nowrap}.tick-x{transform:translate(-50%,7px)}.tick-y{transform:translate(calc(-100% - 8px),-50%)}
.chart-axis-title,.chart-axis-bottom{display:flex;justify-content:space-between;gap:8px;font-size:12px;line-height:1.4;color:var(--chart-muted);padding:0 6px}.chart-axis-title{margin-bottom:4px}.chart-axis-bottom{justify-content:center;margin:-7px 0 12px}.chart-axis-bottom:has(>span){justify-content:space-between}.chart-axis-bottom>span{font-size:12px}.chart-legend{display:flex;gap:9px 20px;flex-wrap:wrap;margin:16px 4px 0;font-size:12px;color:#555d4b}.chart-legend span{display:inline-flex;align-items:center;gap:7px;line-height:1.5}.chart-legend i{display:inline-block;width:19px;height:0;border-top:2px solid var(--chart-flight)}.chart-legend .legend-land{width:7px;height:7px;border:0;border-radius:50%;background:var(--chart-face)}.chart-legend .legend-roll{border-color:#757f6b;border-top-style:dashed}.chart-legend .legend-path{border-color:var(--chart-path)}.chart-legend .legend-face{border-color:var(--chart-face)}.chart-legend .legend-target{border-color:#777f70;border-top:1px dashed}.chart-legend .legend-start{width:7px;height:7px;border:1px solid #5c624f;border-radius:50%;background:#faf8ee}.chart-legend .legend-section{height:6px;border:1px solid #a09a86;background:#cec8b7;border-radius:2px}.chart-note{font:12px/1.6 'Avenir Next',system-ui,sans-serif;color:#6b6c5b;margin:14px 4px 0;padding-top:12px;border-top:1px solid #d8d4c5}
.precision-svg{shape-rendering:geometricPrecision}.precision-svg path,.precision-svg line{stroke-linecap:round;stroke-linejoin:round}.chart-flight{fill:none;stroke:var(--chart-flight,#c8aa78);stroke-width:2.5}.chart-area{stroke:none}.chart-grid{stroke:#7c806d;stroke-opacity:.15;stroke-width:.75}.chart-ground{stroke:#8a8e7b;stroke-width:1}.chart-guide{stroke:#8b8f7a;stroke-opacity:.65;stroke-width:1;stroke-dasharray:3 5}.chart-target{stroke:#737d68;stroke-opacity:1;stroke-width:1;stroke-dasharray:5 6}.chart-roll{stroke:#757f6b;stroke-width:2;stroke-dasharray:4 5}.chart-clubpath{fill:none;stroke:var(--chart-path,#91a582);stroke-width:2.5}.chart-face{fill:none;stroke:var(--chart-face,#d2a176);stroke-width:2.5}.chart-face-section{stroke:#827b66;stroke-width:.75}.chart-face-edge{stroke:#f1e8d5;stroke-width:1}.chart-angle{fill:none;stroke:#ac8559;stroke-width:1}.chart-sector{fill:#b6976420;stroke:none}.chart-ruler{fill:none;stroke:#9b9d891f;stroke-width:1}.chart-construction{stroke:#8c928040;stroke-width:1}.chart-arrowhead{fill:none;stroke-width:2}.chart-start{fill:#fffdf2;stroke:#5a624e;stroke-width:1.3}.chart-apex{fill:#9d8356;stroke:#fffaf0;stroke-width:1.5}.chart-land{fill:#a6613f;stroke:#fffaf0;stroke-width:1.5}.chart-stop{fill:#6c7962;stroke:#fffaf0;stroke-width:1.5}.chart-halo{fill:#b28b5410;stroke:#ab8857;stroke-width:1}.chart-origin-ring{fill:#fcfaf0;fill-opacity:.8;stroke:#8c9276;stroke-width:1;stroke-opacity:.35}.chart-cursor{fill:#7b6542;stroke:#fffaf0;stroke-width:2}.chart-cursor-guide{stroke:#8b7652;stroke-width:1;stroke-opacity:.5;stroke-dasharray:2 5}.chart-axis-spin{stroke:#a6613f;stroke-width:2}.chart-spin{fill:none;stroke:#7b6542;stroke-width:2}.chart-ball-large{fill:#f5eedf;stroke:#c4c1af;stroke-width:1}.chart-ball-outline{stroke:#bbb7a6;stroke-width:.75}.chart-ball-shadow{fill:#464c3320}.chart-dimple{fill:#cac6b644;stroke:#b9b5a466;stroke-width:.45}.chart-equator{fill:none;stroke:#a0a38f;stroke-width:.7;stroke-opacity:.5;stroke-dasharray:3 4}.chart-metal-edge{stroke:#908875;stroke-width:1}.chart-metal-inset{fill:none;stroke:#f5eedd;stroke-width:1;stroke-opacity:.65}.chart-groove{stroke:#888371;stroke-width:.85}.chart-impact-axis{stroke:#777960;stroke-width:.8;stroke-dasharray:3 5;stroke-opacity:.6}.chart-impact-halo{fill:#a6613f18;stroke:#a6613f;stroke-width:1;stroke-opacity:.35}.chart-impact-mark{fill:#a6613f;stroke:#fff8e8;stroke-width:2}.chart-impact-center{fill:#fff9e9;stroke:none}.chart-speed-streak{stroke:#9b957e;stroke-width:1;stroke-opacity:.5}
.diagram-readings{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:4px 4px 16px}.diagram-readings>div{padding:12px 14px;border:1px solid #d9d4c2;border-radius:9px;background:#f0eedf80}.diagram-readings span{display:flex;align-items:center;gap:7px;font-size:12px;color:#626b55}.diagram-readings b{display:block;margin-top:7px;font-size:19px;font-weight:500;color:#424b36;font-variant-numeric:tabular-nums}.diagram-readings i{width:12px;height:2px;display:inline-block;background:#a6613f}.diagram-readings .reading-path{background:#58684a}
.flight-chart-heading{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:6px 4px 22px}.flight-chart-heading>div:first-child>span{font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:#c5b28c}.flight-chart-heading h3{font:32px/1.2 Georgia,serif;font-weight:400;margin:8px 0 0;color:#fff3da;letter-spacing:-.02em}.flight-chart-heading>div:last-child{text-align:right}.flight-chart-heading strong{font:42px/1 Georgia,serif;color:#e9d0a7}.flight-chart-heading>div:last-child>span{display:block;font-size:12px;color:#c3bba8;margin-top:6px}.flight-chart-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;padding:17px 4px 24px;border-top:1px solid #d7c7a723}.flight-chart-stats>span{font-size:12px;line-height:1.5;color:#c9c0ab}.flight-chart-stats b{display:block;font-size:18px;font-weight:500;color:#f3e8d0;font-variant-numeric:tabular-nums}.flight-charts-grid{display:grid;grid-template-columns:1fr;gap:16px}.vertical-flight-visual{container-type:inline-size;background:radial-gradient(ellipse at 10% 0%,#444937,#2e352a 75%);padding:22px;border:1px solid #555d45;border-radius:16px}
.chart-explorer{margin:20px 0 14px;padding:16px 14px;border:1px solid #cfc4ac33;border-radius:12px;background:#ffffff04}.chart-explorer label{display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:14px;color:#f0e2ca}.chart-explorer output{font-variant-numeric:tabular-nums;color:#e4c99d}.chart-explorer input[type=range]{width:100%;min-height:36px;margin:8px 0;accent-color:#dabe8e;background:transparent}.chart-explorer-values{display:flex;gap:10px 20px;justify-content:space-between;flex-wrap:wrap;color:#c4bba8;font-size:12px}.chart-explorer-values b{font-weight:500;color:#f3e8d0}
.observed-plot{--chart-flight:#806843;--chart-muted:#686d57;min-width:0;padding:16px 12px 12px;background:linear-gradient(145deg,#faf7ed,#ece9da);border:1px solid #d9d3c0;border-radius:12px;color:#414937;margin-top:20px}.observed-plot .chart-canvas{max-width:440px;margin:8px auto 0;aspect-ratio:520/340}.observed-plot .chart-note{text-align:center}.mini-precision{width:100%;height:84px!important;margin:0}.mini-precision .chart-flight{stroke:#65704b;stroke-width:2}.mini-precision .chart-target{stroke:#a99b81}.mini-precision .chart-land{fill:#a46a47;stroke:none}.mini-precision .chart-start{fill:#625b49;stroke:none}.visual-panel .precision-chart{padding:16px 10px;border:1px solid #ded7c6;margin-top:16px}.visual-panel .chart-value{font-size:29px}.visual-panel .chart-heading h4{font-size:21px}.qualitative-chart-grid{display:grid;gap:16px}
.glossary-chart{margin:0;padding:24px;background:radial-gradient(ellipse at 0 0,#454b36,#30372a 85%);color:#f7ecd7}.chart-source{display:flex;align-items:center;gap:9px;font-size:12px;line-height:1.5;color:#d5c5a9;margin:0 0 17px}.chart-source::before{content:'';display:inline-block;flex:0 0 5px;width:5px;height:5px;border-radius:50%;background:#c7ad78}.glossary-chart .precision-chart{padding:24px}.glossary-chart .chart-value{font-size:43px}.glossary-chart .chart-heading h4{font-size:28px}.glossary-chart .schematic-canvas{max-width:620px;margin-inline:auto}.glossary-chart-reading{display:block;font-size:14px;line-height:1.65;color:#e7ddca;margin:22px 4px 0}.glossary-chart-reading b{display:block;font-size:11px;font-weight:500;letter-spacing:.08em;text-transform:uppercase;color:#c9b38e;margin-bottom:7px}.chart-data-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.chart-data-grid>div{background:#f7f3e7;padding:18px;border:1px solid #d8cfb9;border-radius:12px}.chart-data-grid span{font-size:12px;color:#61684f}.chart-data-grid strong{display:block;font:30px/1.4 Georgia,serif;margin-top:7px;color:#6b5939}.glossary-badges .measured{background:#e6e0c5;color:#4f5b3a}.glossary-badges .derived{background:#dce6d4;color:#4d6041}.glossary-badges .observed{background:#f0e0cb;color:#785637}
.diagram-lab{margin-top:18px;border:1px solid #777c624a;border-radius:12px;background:#ffffff05;color:#f4e6c9;overflow:hidden}.diagram-lab>summary{display:flex;align-items:center;justify-content:space-between;gap:10px;list-style:none;cursor:pointer;padding:17px 18px;font-size:14px;font-weight:500}.diagram-lab>summary::-webkit-details-marker{display:none}.diagram-lab>summary::after{content:'+';font-size:22px;font-weight:400;color:#d0b989}.diagram-lab[open]>summary::after{content:'−'}.diagram-lab>div{padding:0 18px 18px}.diagram-lab-intro{font-size:12px;line-height:1.6;color:#c9c2ab;margin:0 0 18px}.diagram-lab-controls{display:grid;grid-template-columns:1fr 1fr;gap:20px 22px}.diagram-lab-control label{display:flex;justify-content:space-between;gap:10px;font-size:13px;color:#e9d9b7;margin-bottom:7px}.diagram-lab-control output{color:#e3c696;font-variant-numeric:tabular-nums}.diagram-lab .metric-inputs{gap:12px}.diagram-lab input[type=range]{width:100%;min-height:36px;accent-color:#d0b587}.diagram-lab .metric-inputs input[type=number]{width:80px;flex-basis:80px;background:#434936;border-color:#737b5f;color:#fff6e0;font-size:16px}.diagram-lab-footer{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-top:18px;padding-top:14px;border-top:1px solid #777c624a}.diagram-lab-footer span{font-size:12px;color:#cfc4a9}.diagram-reset{border:1px solid #9c9277;border-radius:7px;padding:9px 12px;min-height:40px;background:transparent;color:#f3e5c6;font-size:12px;cursor:pointer}.diagram-reset:disabled{opacity:.45;cursor:default}
@container(min-width:690px){.flight-charts-grid{grid-template-columns:1fr 1fr}.flight-charts-grid .chart-canvas{min-height:205px}}
@media(max-width:600px){.vertical-flight-visual{padding:16px 6px}.learning-details:has(.vertical-flight-module)>.details-content{padding:0 0 8px}.vertical-flight-layout{padding:8px 0}.flight-chart-heading{gap:12px}.flight-chart-heading h3{font-size:26px}.flight-chart-heading strong{font-size:32px}.flight-chart-stats{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 20px}.precision-chart{padding:16px 8px 12px;border-radius:12px}.chart-meta{font-size:9px;gap:6px;letter-spacing:.06em;margin-bottom:14px}.chart-view{padding:3px 5px;font-size:9px}.chart-heading{gap:10px;margin-bottom:16px}.chart-heading h4{font-size:21px}.chart-value{font-size:29px}.chart-canvas{min-height:180px}.schematic-canvas{min-height:0}.chart-legend{gap:8px 14px}.chart-axis-bottom{margin-top:0}.chart-explorer{padding:14px 10px}.chart-explorer-values{gap:7px}.glossary-chart{padding:16px 10px}.glossary-chart .precision-chart{padding:18px 10px}.glossary-chart .chart-value{font-size:34px}.glossary-chart .chart-heading h4{font-size:24px}.diagram-readings{gap:8px;margin-inline:0}.diagram-readings>div{padding:10px}.chart-data-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.chart-data-grid>div{padding:14px}.chart-data-grid strong{font-size:27px}.observed-plot .chart-canvas{min-height:180px}.observed-plot .chart-note{margin-top:0}.diagram-lab-controls{grid-template-columns:1fr;gap:16px}.diagram-lab>summary{padding:15px 12px}.diagram-lab>div{padding:0 12px 16px}.diagram-lab-footer{align-items:flex-start}.diagram-lab-footer span{max-width:18ch}}
@media(prefers-reduced-motion:reduce){.precision-chart *{animation:none!important;transition:none!important}}
@media print{.precision-chart,.glossary-chart{break-inside:avoid;print-color-adjust:exact;-webkit-print-color-adjust:exact}.chart-explorer,.diagram-lab{display:none}}

/* Keep the true launch angle readable independently of fixed flight axes. */
.launch-angle-reading{display:grid;grid-template-columns:minmax(100px,150px) minmax(0,1fr);align-items:center;gap:18px;padding:14px 18px;margin-bottom:16px;background:#f1f2e9;border:1px solid #d9dfce;border-radius:18px}
.launch-angle-reading svg{display:block;width:100%;height:auto;aspect-ratio:210/175;overflow:visible}
.launch-angle-reading span{font-size:11px;letter-spacing:.09em;color:#647055}.launch-angle-reading strong{display:block;font:400 34px/1.15 Georgia,serif;color:#8d632e;margin:5px 0}.launch-angle-reading p{font-size:13px;line-height:1.5;margin:0;color:#626d5d}
.launch-true-arc{fill:none;stroke:#ab8050;stroke-width:1.8}
.profile-flight-facts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:0 0 20px;padding:14px 4px;border-bottom:1px solid #d9dfce}.profile-flight-facts span{display:block;font-size:12px;color:#65715f}.profile-flight-facts strong{display:block;font:500 23px/1.4 'Avenir Next',system-ui,sans-serif;color:#314c39;font-variant-numeric:tabular-nums;white-space:nowrap}.profile-flight-facts small{font-size:13px}
@media(max-width:480px){.launch-angle-reading{grid-template-columns:100px minmax(0,1fr);gap:12px;padding:12px}.launch-angle-reading strong{font-size:28px}.profile-flight-facts strong{font-size:19px}}

.launch-angle-reading .chart-launch-initial{fill:none;stroke:#a26d33;stroke-width:3;stroke-linecap:round;stroke-linejoin:round}.launch-profile-chart .chart-value small{display:inline;font-size:22px;vertical-align:top;margin-left:3px}.launch-profile-chart .chart-heading{align-items:center}.launch-profile-chart .chart-heading h4{font-size:24px}

.chart-path-contrast{fill:none;stroke:#fffdf5;stroke-width:6;stroke-opacity:.95;pointer-events:none}
.chart-path-overlay{pointer-events:none}
