/* M04K09 · Dispersion in media */
.dispersion-hero{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(330px,.85fr);gap:42px;align-items:center;padding-block:88px 74px;border-top:1px solid var(--line)}
.dispersion-hero-copy{min-width:0}.dispersion-hero :is(h1,h2){max-width:920px;margin:14px 0 20px;font-size:clamp(2.8rem,6vw,5.7rem);line-height:.96;letter-spacing:-.055em}.dispersion-hero :is(h1,h2) em{font-style:normal;color:var(--accent-3)}.dispersion-hero-copy>p{max-width:810px;margin:0;color:var(--muted);font-size:1.07rem}.dispersion-hero-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:28px}
.dispersion-hero-card{padding:24px;border:1px solid var(--line);border-radius:var(--radius);background:linear-gradient(145deg,color-mix(in srgb,var(--accent-3) 9%,var(--panel)),var(--panel));box-shadow:var(--shadow)}.dispersion-hero-card>span{color:var(--accent-3);font-size:.76rem;font-weight:800;letter-spacing:.11em;text-transform:uppercase}.dispersion-hero-card>p{margin:14px 0 0;color:var(--muted)}
.dispersion-equation{display:flex;align-items:center;justify-content:center;min-height:72px;margin:16px 0;padding:14px 16px;border:1px solid var(--line);border-radius:16px;background:color-mix(in srgb,var(--bg) 72%,transparent);font-family:"SFMono-Regular",Consolas,"Liberation Mono",monospace;font-size:clamp(.94rem,2vw,1.18rem);line-height:1.45;text-align:center;overflow-wrap:anywhere}.dispersion-equation.large{min-height:94px;font-size:clamp(1rem,2.2vw,1.28rem)}
.dispersion-mini-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:18px}.dispersion-mini-grid>div{padding:11px;border:1px solid var(--line);border-radius:13px;background:color-mix(in srgb,var(--bg) 45%,transparent)}.dispersion-mini-grid span{display:block;color:var(--muted);font-size:.72rem;text-transform:uppercase;letter-spacing:.07em}.dispersion-mini-grid strong{display:block;margin-top:4px;font-family:"SFMono-Regular",Consolas,"Liberation Mono",monospace;font-size:.9rem}
.dispersion-kinematics,.dispersion-packet,.dispersion-synthesis{padding-block:74px}.dispersion-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-top:30px}.dispersion-card,.dispersion-packet-card{padding:22px;border:1px solid var(--line);border-radius:var(--radius);background:var(--panel)}.dispersion-card.primary,.dispersion-packet-card.primary{background:linear-gradient(145deg,color-mix(in srgb,var(--accent-3) 8%,var(--panel)),var(--panel));border-color:color-mix(in srgb,var(--accent-3) 34%,var(--line))}.dispersion-card>span,.dispersion-packet-card>span{color:var(--accent-3);font-size:.75rem;font-weight:800;text-transform:uppercase;letter-spacing:.09em}.dispersion-card p,.dispersion-packet-card p{margin:0;color:var(--muted)}
.dispersion-note,.dispersion-caution{display:grid;grid-template-columns:auto 1fr;gap:18px;align-items:start;margin-top:20px;padding:18px 20px;border:1px solid var(--line);border-radius:16px;background:color-mix(in srgb,var(--panel) 85%,transparent)}.dispersion-note strong,.dispersion-caution strong{color:var(--accent-2);white-space:nowrap}.dispersion-note p,.dispersion-caution p{margin:0;color:var(--muted)}.dispersion-caution strong{color:var(--warm)}
.dispersion-packet-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-top:30px}
.dispersion-lab-section{padding-block:82px}.dispersion-lab-shell{display:grid;grid-template-columns:minmax(250px,310px) minmax(0,1fr);gap:18px;align-items:start;margin-top:30px}.dispersion-controls{position:sticky;top:92px;padding:18px;border:1px solid var(--line);border-radius:var(--radius);background:var(--panel);box-shadow:var(--shadow)}.dispersion-controls label{display:grid;grid-template-columns:1fr auto;gap:7px 10px;align-items:center;margin-top:18px;color:var(--muted);font-size:.88rem}.dispersion-controls label input{grid-column:1/-1;width:100%}.dispersion-controls output{font-family:"SFMono-Regular",Consolas,"Liberation Mono",monospace;color:var(--text);font-size:.84rem}.dispersion-preset-set{display:grid;grid-template-columns:1fr 1fr;gap:7px;padding:0;border:0}.dispersion-preset-set legend{grid-column:1/-1;margin-bottom:8px;color:var(--muted);font-size:.75rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.dispersion-preset-set button{min-height:40px;padding:8px 10px;border:1px solid var(--line);border-radius:11px;background:color-mix(in srgb,var(--bg) 65%,transparent);color:var(--muted);font:inherit;cursor:pointer}.dispersion-preset-set button.is-active{border-color:color-mix(in srgb,var(--accent-3) 65%,var(--line));background:color-mix(in srgb,var(--accent-3) 12%,var(--panel));color:var(--text)}.dispersion-actions{display:flex;margin-top:18px}.dispersion-actions .button{width:100%;justify-content:center}.dispersion-lab-note{margin-top:18px;padding:14px;border:1px solid var(--line);border-radius:13px;background:color-mix(in srgb,var(--bg) 55%,transparent)}.dispersion-lab-note strong{font-size:.78rem;text-transform:uppercase;letter-spacing:.07em;color:var(--accent-2)}.dispersion-lab-note p{margin:6px 0 0;color:var(--muted);font-size:.82rem;line-height:1.55}
.dispersion-stage{display:grid;gap:16px;min-width:0}.dispersion-panel{min-width:0;padding:18px;border:1px solid var(--line);border-radius:var(--radius);background:var(--panel);overflow:hidden}.dispersion-panel-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:12px}.dispersion-panel-head span{display:block;color:var(--muted);font-size:.72rem;font-weight:800;text-transform:uppercase;letter-spacing:.075em}.dispersion-panel-head strong{display:block;margin-top:3px;font-size:.95rem}.dispersion-status{max-width:230px;padding:7px 10px;border:1px solid color-mix(in srgb,var(--accent-3) 40%,var(--line));border-radius:999px;background:color-mix(in srgb,var(--accent-3) 10%,transparent);color:var(--accent-3);font-size:.72rem;font-weight:800;text-align:right}.dispersion-status.is-linear{border-color:color-mix(in srgb,var(--accent) 40%,var(--line));background:color-mix(in srgb,var(--accent) 10%,transparent);color:var(--accent)}.dispersion-status.is-anomalous{border-color:color-mix(in srgb,var(--warm) 45%,var(--line));background:color-mix(in srgb,var(--warm) 10%,transparent);color:var(--warm)}
.dispersion-curve-svg,.dispersion-phase-svg,.dispersion-pulse-svg{display:block;width:100%;height:auto;overflow:visible}.dsp-axis{stroke:color-mix(in srgb,var(--muted) 55%,transparent);stroke-width:1.5}.dsp-curve{fill:none;stroke:var(--accent-3);stroke-width:4;stroke-linecap:round;stroke-linejoin:round}.dsp-tangent{stroke:var(--accent);stroke-width:2.2;stroke-dasharray:9 7}.dsp-phase-line{stroke:var(--warm);stroke-width:2.2;stroke-dasharray:4 6}.dsp-band{stroke:var(--accent-2);stroke-width:5;stroke-linecap:round}.dsp-carrier{fill:var(--text);stroke:var(--bg);stroke-width:3}.dsp-svg-label{fill:var(--muted);font-family:"SFMono-Regular",Consolas,"Liberation Mono",monospace;font-size:18px}.dsp-svg-label.accent{fill:var(--accent-2)}.dispersion-legend,.dispersion-pulse-legend{display:flex;flex-wrap:wrap;gap:12px 18px;margin-top:8px;color:var(--muted);font-size:.78rem}.dispersion-legend span,.dispersion-pulse-legend span{display:inline-flex;align-items:center;gap:7px}.dispersion-legend i,.dispersion-pulse-legend i{display:block;width:20px;height:3px;border-radius:4px;background:var(--accent-3)}.dispersion-legend .tangent i{background:var(--accent)}.dispersion-legend .phase i{background:var(--warm)}.dispersion-legend .band i{background:var(--accent-2)}
.dispersion-detail-grid{display:grid;grid-template-columns:minmax(0,.88fr) minmax(0,1.12fr);gap:16px}.dsp-phase-curve{fill:none;stroke:var(--accent-2);stroke-width:3.5;stroke-linecap:round;stroke-linejoin:round}.dsp-phase-edge{stroke:color-mix(in srgb,var(--accent-2) 40%,transparent);stroke-width:1.4;stroke-dasharray:5 7}.dsp-pulse{fill:none;stroke-width:3.4;stroke-linecap:round;stroke-linejoin:round}.dsp-pulse.initial{stroke:color-mix(in srgb,var(--muted) 80%,var(--text));stroke-dasharray:8 7}.dsp-pulse.propagated{stroke:var(--accent-3)}.dispersion-pulse-legend .initial i{background:color-mix(in srgb,var(--muted) 80%,var(--text))}.dispersion-pulse-legend .propagated i{background:var(--accent-3)}
.dispersion-reading{display:grid;gap:16px}.dispersion-metrics{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));border:1px solid var(--line);border-radius:15px;overflow:hidden}.dispersion-metrics>div{padding:12px 10px;border-right:1px solid var(--line);background:color-mix(in srgb,var(--bg) 40%,transparent)}.dispersion-metrics>div:last-child{border-right:0}.dispersion-metrics span{display:block;color:var(--muted);font-size:.68rem;text-transform:uppercase;letter-spacing:.055em}.dispersion-metrics strong{display:block;margin-top:5px;font-family:"SFMono-Regular",Consolas,"Liberation Mono",monospace;font-size:.88rem}.dispersion-reading-copy>span{color:var(--accent-3);font-size:.72rem;font-weight:800;text-transform:uppercase;letter-spacing:.08em}.dispersion-reading-copy h3{margin:5px 0 7px;font-size:1.05rem}.dispersion-reading-copy p{margin:0;color:var(--muted)}.dispersion-check{display:grid;grid-template-columns:1fr 1fr;gap:10px}.dispersion-check>div{padding:12px;border:1px solid var(--line);border-radius:12px}.dispersion-check span{display:block;color:var(--muted);font-size:.7rem;text-transform:uppercase;letter-spacing:.06em}.dispersion-check strong{display:block;margin-top:4px;font-family:"SFMono-Regular",Consolas,"Liberation Mono",monospace;font-size:.82rem;overflow-wrap:anywhere}.dispersion-cross-reference{margin:18px 0 0;color:var(--muted);font-size:.9rem}.dispersion-cross-reference a{color:var(--accent-2)}
@media(max-width:1050px){.dispersion-hero{grid-template-columns:1fr}.dispersion-hero-card{max-width:760px}.dispersion-lab-shell{grid-template-columns:1fr}.dispersion-controls{position:static;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 18px}.dispersion-preset-set,.dispersion-actions,.dispersion-lab-note{grid-column:1/-1}.dispersion-metrics{grid-template-columns:repeat(3,minmax(0,1fr))}.dispersion-metrics>div{border-bottom:1px solid var(--line)}.dispersion-metrics>div:nth-child(3n){border-right:0}.dispersion-metrics>div:nth-last-child(-n+3){border-bottom:0}}
@media(max-width:760px){.dispersion-hero{padding-block:68px 58px}.dispersion-hero :is(h1,h2){font-size:clamp(2.45rem,13vw,4.2rem)}.dispersion-grid,.dispersion-packet-grid{grid-template-columns:1fr}.dispersion-note,.dispersion-caution{grid-template-columns:1fr;gap:8px}.dispersion-note strong,.dispersion-caution strong{white-space:normal}.dispersion-mini-grid{grid-template-columns:1fr}.dispersion-controls{display:block}.dispersion-panel-head{flex-direction:column}.dispersion-status{max-width:none;text-align:left}.dispersion-detail-grid{grid-template-columns:1fr}.dispersion-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.dispersion-metrics>div{border-right:1px solid var(--line)!important;border-bottom:1px solid var(--line)!important}.dispersion-metrics>div:nth-child(2n){border-right:0!important}.dispersion-metrics>div:nth-last-child(-n+2){border-bottom:0!important}.dispersion-check{grid-template-columns:1fr}.dispersion-curve-svg{min-height:270px}.dispersion-phase-svg,.dispersion-pulse-svg{min-height:250px}.dsp-svg-label{font-size:22px}}
@media(max-width:430px){.dispersion-lab-section{padding-block:64px}.dispersion-controls{padding:15px}.dispersion-preset-set{grid-template-columns:1fr 1fr}.dispersion-metrics{grid-template-columns:1fr}.dispersion-metrics>div{border-right:0!important;border-bottom:1px solid var(--line)!important}.dispersion-metrics>div:last-child{border-bottom:0!important}.dispersion-curve-svg{min-height:245px}.dispersion-phase-svg,.dispersion-pulse-svg{min-height:225px}.dsp-svg-label{font-size:24px}.dispersion-equation.large{font-size:.9rem;padding-inline:10px}}
@media(max-width:760px){.dispersion-hero :is(h1,h2){overflow-wrap:anywhere;hyphens:auto}}
@media(max-width:430px){.dispersion-grid>* ,.dispersion-packet-grid>* ,.dispersion-card,.dispersion-packet-card,.dispersion-kinematics .section-heading,.dispersion-packet .section-heading{min-width:0;overflow-wrap:anywhere}.dispersion-kinematics h2,.dispersion-packet h2,.dispersion-synthesis h2{overflow-wrap:anywhere;hyphens:auto}}
