/* M09K02 · Electromagnetic spectrum revisited */
.sp-hero,.sp-foundation,.sp-lab-section,.sp-boundary{padding-block:clamp(4rem,8vw,7rem)}
.sp-hero{scroll-margin-top:calc(var(--header-h) + 24px)}
.sp-hero{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(320px,.8fr);gap:clamp(2rem,5vw,5rem);align-items:center}
.sp-hero-copy{min-width:0}.sp-hero :is(h1,h2){font-size:clamp(3rem,7vw,6.4rem);line-height:.94;letter-spacing:-.055em;max-width:12ch;margin:.55rem 0 1.15rem}.sp-hero :is(h1,h2) em{font-style:normal;color:var(--accent-2)}.sp-hero p{max-width:72ch;color:var(--muted);font-size:clamp(1rem,1.5vw,1.16rem);line-height:1.7}.sp-hero-actions{display:flex;flex-wrap:wrap;gap:.8rem;margin-top:1.6rem}
.sp-hero-card{border:1px solid var(--line);border-radius:1.35rem;padding:clamp(1.25rem,3vw,2rem);background:linear-gradient(160deg,color-mix(in srgb,var(--panel) 92%,var(--accent-2) 8%),var(--panel));box-shadow:var(--shadow);min-width:0}.sp-hero-card>span,.sp-card>span,.sp-boundary-grid article>span,.sp-control-head span,.sp-metric span,.sp-reading span{display:block;color:var(--muted);font-size:.78rem;letter-spacing:.08em;text-transform:uppercase}.sp-equation{font-family:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", monospace;font-size:clamp(1rem,2.1vw,1.35rem);margin:.72rem 0;overflow-wrap:anywhere}.sp-equation.large{font-size:clamp(1.5rem,3.4vw,2.35rem);color:var(--accent-2)}.sp-mini-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.7rem;margin-top:1.2rem}.sp-mini-grid div{border:1px solid var(--line);border-radius:.8rem;padding:.78rem;min-width:0}.sp-mini-grid span{display:block;color:var(--muted);font-size:.72rem}.sp-mini-grid strong{display:block;margin-top:.2rem;font-size:.94rem;overflow-wrap:anywhere}
.sp-foundation-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;margin-top:2rem}.sp-card{border:1px solid var(--line);border-radius:1rem;padding:1.25rem;background:var(--panel);min-width:0}.sp-card.primary{background:linear-gradient(145deg,color-mix(in srgb,var(--panel) 86%,var(--accent) 14%),var(--panel))}.sp-card h3{margin:.45rem 0 .55rem;font-size:1.12rem}.sp-card p,.sp-note p,.sp-boundary-grid p{color:var(--muted);line-height:1.62;margin:0}.sp-note{margin-top:1rem;border-left:3px solid var(--accent-2);padding:1rem 1.15rem;background:color-mix(in srgb,var(--panel) 80%,transparent);border-radius:0 .8rem .8rem 0}.sp-note strong{display:block;margin-bottom:.35rem}
.sp-spectrum-strip{margin-top:1.25rem;border:1px solid var(--line);border-radius:1rem;overflow:hidden;background:var(--panel)}.sp-spectrum-bands{display:grid;grid-template-columns:1.6fr 1.25fr 1.35fr .7fr .95fr 1.1fr .9fr;min-height:92px}.sp-spectrum-bands div{padding:.85rem .65rem;border-right:1px solid color-mix(in srgb,var(--line) 70%,transparent);display:flex;flex-direction:column;justify-content:flex-end;min-width:0}.sp-spectrum-bands div:last-child{border-right:0}.sp-spectrum-bands span{font-size:.72rem;color:var(--muted)}.sp-spectrum-bands strong{font-size:.82rem;line-height:1.15;overflow-wrap:anywhere}.sp-spectrum-caption{display:flex;justify-content:space-between;gap:1rem;border-top:1px solid var(--line);padding:.7rem .85rem;color:var(--muted);font-size:.78rem}
.sp-lab-shell{display:grid;grid-template-columns:minmax(250px,320px) minmax(0,1fr);gap:1rem;margin-top:1.8rem;align-items:start}.sp-controls,.sp-stage,.sp-panel{border:1px solid var(--line);border-radius:1rem;background:var(--panel);min-width:0}.sp-controls{padding:1rem;position:sticky;top:calc(var(--header-height,72px) + 1rem)}.sp-control-head{display:flex;justify-content:space-between;gap:.75rem;align-items:flex-start;border-bottom:1px solid var(--line);padding-bottom:.9rem;margin-bottom:.85rem}.sp-control-head strong{display:block;margin-top:.2rem}.sp-status{border:1px solid var(--line);border-radius:999px;padding:.28rem .52rem;white-space:nowrap}.sp-controls label{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.3rem .75rem;align-items:center;padding:.72rem 0;border-bottom:1px solid color-mix(in srgb,var(--line) 70%,transparent)}.sp-controls label>span{font-size:.86rem}.sp-controls output{font-family:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", monospace;font-size:.78rem;max-width:9rem;text-align:right;overflow-wrap:anywhere}.sp-controls input[type=range]{grid-column:1/-1;width:100%;accent-color:var(--accent-2)}.sp-presets{border:0;padding:0;margin:1rem 0 0}.sp-presets legend{font-size:.78rem;color:var(--muted);margin-bottom:.55rem}.sp-presets div{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.45rem}.sp-presets button,.sp-reset{border:1px solid var(--line);background:var(--panel-solid);color:var(--text);border-radius:.7rem;padding:.62rem .7rem;cursor:pointer;font:inherit;font-size:.78rem}.sp-presets button:hover,.sp-presets button.is-active,.sp-reset:hover{border-color:var(--accent-2)}.sp-reset{width:100%;margin-top:.55rem}
.sp-stage{padding:1rem;overflow:hidden}.sp-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.6rem;margin-bottom:.8rem}.sp-metric{border:1px solid var(--line);border-radius:.75rem;padding:.65rem;min-width:0}.sp-metric strong{display:block;margin-top:.24rem;font-family:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", monospace;font-size:.82rem;overflow-wrap:anywhere}.sp-top-grid{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);gap:.8rem}.sp-panel{padding:.8rem}.sp-panel h3{font-size:.9rem;margin:.1rem 0 .65rem}.sp-spectrum-svg,.sp-density-svg{width:100%;height:auto;display:block;aspect-ratio:1.68}.sp-svg-grid{stroke:var(--line);stroke-width:1;vector-effect:non-scaling-stroke}.sp-svg-axis{stroke:var(--muted);stroke-width:1.2;vector-effect:non-scaling-stroke}.sp-svg-band{fill:color-mix(in srgb,var(--accent-2) 16%,transparent);stroke:var(--accent-2);stroke-width:1.4;vector-effect:non-scaling-stroke}.sp-svg-current{stroke:var(--warm);stroke-width:2;stroke-dasharray:5 5;vector-effect:non-scaling-stroke}.sp-svg-curve{fill:none;stroke:var(--accent-2);stroke-width:2.2;vector-effect:non-scaling-stroke}.sp-svg-flat{fill:none;stroke:var(--accent);stroke-width:2.2;vector-effect:non-scaling-stroke}.sp-svg-marker{fill:var(--warm);stroke:var(--panel);stroke-width:2;vector-effect:non-scaling-stroke}.sp-svg-label{fill:var(--text);font:600 13px Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif}.sp-svg-small{fill:var(--muted);font:12px Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif}.sp-svg-accent{fill:var(--accent-2);font:600 12px Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif}.sp-svg-warm{fill:var(--warm);font:600 12px Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif}
.sp-reading{margin-top:.8rem;border:1px solid var(--line);border-radius:.85rem;padding:.9rem;background:var(--panel-solid)}.sp-reading strong{display:block;margin:.25rem 0 .35rem}.sp-reading p{margin:0;color:var(--muted);line-height:1.55}.sp-check-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.55rem;margin-top:.8rem}.sp-check-grid div{border:1px solid var(--line);border-radius:.7rem;padding:.65rem;min-width:0}.sp-check-grid span{display:block;color:var(--muted);font-size:.7rem;text-transform:uppercase;letter-spacing:.06em}.sp-check-grid strong{display:block;margin-top:.2rem;font-family:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", monospace;font-size:.75rem;overflow-wrap:anywhere}
.sp-boundary-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;margin-top:1.4rem}.sp-boundary-grid article{border:1px solid var(--line);border-radius:1rem;padding:1.1rem;background:var(--panel);min-width:0}.sp-boundary-grid strong{display:block;margin:.35rem 0 .45rem}.sp-upcoming{padding-top:2rem}
@media(max-width:1024px){.sp-hero{grid-template-columns:1fr}.sp-hero-card{max-width:760px}.sp-foundation-grid{grid-template-columns:1fr 1fr}.sp-foundation-grid article:last-child{grid-column:1/-1}.sp-lab-shell{grid-template-columns:1fr}.sp-controls{position:static}.sp-top-grid{grid-template-columns:1fr}.sp-spectrum-svg,.sp-density-svg{aspect-ratio:1.78}.sp-boundary-grid{grid-template-columns:1fr 1fr}.sp-boundary-grid article:last-child{grid-column:1/-1}}
@media(max-width:700px){.sp-hero,.sp-foundation,.sp-lab-section,.sp-boundary{padding-block:3.2rem}.sp-foundation-grid,.sp-boundary-grid{grid-template-columns:1fr}.sp-foundation-grid article:last-child,.sp-boundary-grid article:last-child{grid-column:auto}.sp-metrics,.sp-check-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.sp-spectrum-bands{grid-template-columns:repeat(2,minmax(0,1fr))}.sp-spectrum-bands div{border-bottom:1px solid color-mix(in srgb,var(--line) 70%,transparent)}.sp-spectrum-caption{flex-direction:column;gap:.25rem}.sp-spectrum-svg,.sp-density-svg{aspect-ratio:1.38}.sp-hero :is(h1,h2){font-size:clamp(2.25rem,12vw,3.75rem)}}
@media(max-width:380px){.sp-mini-grid,.sp-metrics,.sp-check-grid{grid-template-columns:1fr}.sp-presets div{grid-template-columns:1fr}.sp-controls output{max-width:8rem}.sp-hero :is(h1,h2),.sp-foundation .section-heading h2,.sp-boundary .section-heading h2{overflow-wrap:anywhere}}
.sp-controls,.sp-control-head,.sp-stage,.sp-panel,.sp-metrics,.sp-top-grid,.sp-foundation-grid,.sp-boundary-grid{min-width:0;max-width:100%}.sp-foundation .section-heading h2,.sp-boundary .section-heading h2{min-width:0;overflow-wrap:anywhere;word-break:break-word}
