:is(
    [data-unit-visual-extension="wave_particle_transport"],
    [data-unit-visual-extension="wave_type_particles"],
    [data-unit-visual-extension="wave_graph_reader"],
    [data-unit-visual-extension="phase_cycle_model"],
    [data-unit-visual-extension="cro_measurement"],
    [data-unit-visual-extension="wave_equation_train"],
    [data-unit-visual-extension="intensity_spreading"],
    [data-unit-visual-extension="doppler_wavefronts"],
    [data-unit-visual-extension="em_spectrum_scale"],
    [data-unit-visual-extension="polarisation_model"]
) {
    --ch07-ink: #17344d;
    --ch07-muted: #66798a;
    --ch07-line: #7a91a4;
    --ch07-grid: #dbe7ee;
    --ch07-surface: #f3f8fb;
    --ch07-accent: #1f78a8;
    --ch07-particle: #c85b54;
    --ch07-energy: #0e8a78;
    --ch07-secondary: #6e5ea7;
    --ch07-neutral: #586a78;
    margin: clamp(1.05rem, 2.5vw, 1.7rem) 0;
    padding: clamp(0.95rem, 2.4vw, 1.4rem);
    border: 1px solid color-mix(in srgb, var(--ch07-accent) 16%, transparent);
    border-radius: 1.25rem;
    background: linear-gradient(145deg, #fdfefe 0%, var(--ch07-surface) 100%);
    color: var(--ch07-ink);
    box-shadow: 0 0.8rem 2rem rgb(23 52 77 / 0.065);
    overflow: clip;
}

:is(
    [data-unit-visual-extension="wave_particle_transport"],
    [data-unit-visual-extension="wave_type_particles"],
    [data-unit-visual-extension="wave_graph_reader"],
    [data-unit-visual-extension="phase_cycle_model"],
    [data-unit-visual-extension="cro_measurement"],
    [data-unit-visual-extension="wave_equation_train"],
    [data-unit-visual-extension="intensity_spreading"],
    [data-unit-visual-extension="doppler_wavefronts"],
    [data-unit-visual-extension="em_spectrum_scale"],
    [data-unit-visual-extension="polarisation_model"]
) .ch07-visual-heading {
    display: grid;
    gap: 0.18rem;
    margin-bottom: 0.85rem;
}

:is(
    [data-unit-visual-extension="wave_particle_transport"],
    [data-unit-visual-extension="wave_type_particles"],
    [data-unit-visual-extension="wave_graph_reader"],
    [data-unit-visual-extension="phase_cycle_model"],
    [data-unit-visual-extension="cro_measurement"],
    [data-unit-visual-extension="wave_equation_train"],
    [data-unit-visual-extension="intensity_spreading"],
    [data-unit-visual-extension="doppler_wavefronts"],
    [data-unit-visual-extension="em_spectrum_scale"],
    [data-unit-visual-extension="polarisation_model"]
) .ch07-visual-heading h3 {
    margin: 0;
    color: var(--ch07-ink);
    font-size: var(--unit-text-heading-medium, 17px);
    font-weight: 750;
    line-height: 1.2;
    letter-spacing: -0.015em;
}

:is(
    [data-unit-visual-extension="wave_particle_transport"],
    [data-unit-visual-extension="wave_type_particles"],
    [data-unit-visual-extension="wave_graph_reader"],
    [data-unit-visual-extension="phase_cycle_model"],
    [data-unit-visual-extension="cro_measurement"],
    [data-unit-visual-extension="wave_equation_train"],
    [data-unit-visual-extension="intensity_spreading"],
    [data-unit-visual-extension="doppler_wavefronts"],
    [data-unit-visual-extension="em_spectrum_scale"],
    [data-unit-visual-extension="polarisation_model"]
) .ch07-visual-kicker {
    margin: 0;
    color: var(--ch07-accent);
    font-size: var(--unit-text-micro, 11px);
    font-weight: 800;
    letter-spacing: 0.085em;
    text-transform: uppercase;
}

:is(
    [data-unit-visual-extension="wave_particle_transport"],
    [data-unit-visual-extension="wave_type_particles"],
    [data-unit-visual-extension="wave_graph_reader"],
    [data-unit-visual-extension="phase_cycle_model"],
    [data-unit-visual-extension="cro_measurement"],
    [data-unit-visual-extension="wave_equation_train"],
    [data-unit-visual-extension="intensity_spreading"],
    [data-unit-visual-extension="doppler_wavefronts"],
    [data-unit-visual-extension="em_spectrum_scale"],
    [data-unit-visual-extension="polarisation_model"]
) .ch07-visual-controls.unit-dynamics-controls {
    display: grid;
    grid-template-columns: repeat(var(--ch07-control-count, 3), minmax(0, 1fr));
    gap: 0.42rem;
    margin: 0 0 0.82rem;
}

:is(
    [data-unit-visual-extension="wave_particle_transport"],
    [data-unit-visual-extension="wave_type_particles"],
    [data-unit-visual-extension="wave_graph_reader"],
    [data-unit-visual-extension="phase_cycle_model"],
    [data-unit-visual-extension="cro_measurement"],
    [data-unit-visual-extension="wave_equation_train"],
    [data-unit-visual-extension="intensity_spreading"],
    [data-unit-visual-extension="doppler_wavefronts"],
    [data-unit-visual-extension="em_spectrum_scale"],
    [data-unit-visual-extension="polarisation_model"]
) .ch07-motion-controls {
    display: grid;
    grid-template-columns: 4.5rem minmax(0, 1fr) 5.2rem;
    align-items: center;
    gap: 0.72rem;
    min-height: 2.55rem;
    margin: -0.2rem 0 0.82rem;
    padding: 0.36rem 0.48rem;
    border-radius: 0.8rem;
    background: color-mix(in srgb, var(--ch07-accent) 7%, transparent);
}

[data-unit-visual-extension] .ch07-motion-controls[hidden] {
    display: none !important;
}

:is(
    [data-unit-visual-extension="wave_particle_transport"],
    [data-unit-visual-extension="wave_type_particles"],
    [data-unit-visual-extension="wave_graph_reader"],
    [data-unit-visual-extension="phase_cycle_model"],
    [data-unit-visual-extension="cro_measurement"],
    [data-unit-visual-extension="wave_equation_train"],
    [data-unit-visual-extension="intensity_spreading"],
    [data-unit-visual-extension="doppler_wavefronts"],
    [data-unit-visual-extension="em_spectrum_scale"],
    [data-unit-visual-extension="polarisation_model"]
) .ch07-motion-toggle {
    min-width: 0;
    min-height: 1.95rem;
    padding: 0.32rem 0.58rem;
    border: 0;
    border-radius: 999px;
    background: var(--ch07-accent);
    color: #fff;
    font: inherit;
    font-size: var(--unit-text-meta, 12px);
    font-weight: 760;
    line-height: 1;
    white-space: nowrap;
    cursor: pointer;
}

:is(
    [data-unit-visual-extension="wave_particle_transport"],
    [data-unit-visual-extension="wave_type_particles"],
    [data-unit-visual-extension="wave_graph_reader"],
    [data-unit-visual-extension="phase_cycle_model"],
    [data-unit-visual-extension="cro_measurement"],
    [data-unit-visual-extension="wave_equation_train"],
    [data-unit-visual-extension="intensity_spreading"],
    [data-unit-visual-extension="doppler_wavefronts"],
    [data-unit-visual-extension="em_spectrum_scale"],
    [data-unit-visual-extension="polarisation_model"]
) .ch07-motion-scrubber {
    width: 100%;
    min-width: 0;
    margin: 0;
    accent-color: var(--ch07-accent);
}

:is(
    [data-unit-visual-extension="wave_particle_transport"],
    [data-unit-visual-extension="wave_type_particles"],
    [data-unit-visual-extension="wave_graph_reader"],
    [data-unit-visual-extension="phase_cycle_model"],
    [data-unit-visual-extension="cro_measurement"],
    [data-unit-visual-extension="wave_equation_train"],
    [data-unit-visual-extension="intensity_spreading"],
    [data-unit-visual-extension="doppler_wavefronts"],
    [data-unit-visual-extension="em_spectrum_scale"],
    [data-unit-visual-extension="polarisation_model"]
) .ch07-motion-phase {
    color: var(--ch07-muted);
    font-size: var(--unit-text-meta, 12px);
    font-weight: 720;
    line-height: 1;
    text-align: right;
    white-space: nowrap;
}

:is(
    [data-unit-visual-extension="wave_particle_transport"],
    [data-unit-visual-extension="wave_type_particles"],
    [data-unit-visual-extension="wave_graph_reader"],
    [data-unit-visual-extension="phase_cycle_model"],
    [data-unit-visual-extension="cro_measurement"],
    [data-unit-visual-extension="wave_equation_train"],
    [data-unit-visual-extension="intensity_spreading"],
    [data-unit-visual-extension="doppler_wavefronts"],
    [data-unit-visual-extension="em_spectrum_scale"],
    [data-unit-visual-extension="polarisation_model"]
) .unit-dynamics-control {
    min-width: 0;
    height: 40px;
    padding: 0.45rem 0.54rem;
    border: 1px solid color-mix(in srgb, var(--ch07-line) 62%, transparent);
    border-radius: 0.72rem;
    background: rgb(255 255 255 / 0.9);
    color: var(--ch07-ink);
    font: inherit;
    font-size: var(--unit-text-meta, 12px);
    font-weight: 740;
    line-height: 1;
    white-space: nowrap;
    text-overflow: ellipsis;
    overflow: hidden;
    cursor: pointer;
}

:is(
    [data-unit-visual-extension="wave_particle_transport"],
    [data-unit-visual-extension="wave_type_particles"],
    [data-unit-visual-extension="wave_graph_reader"],
    [data-unit-visual-extension="phase_cycle_model"],
    [data-unit-visual-extension="cro_measurement"],
    [data-unit-visual-extension="wave_equation_train"],
    [data-unit-visual-extension="intensity_spreading"],
    [data-unit-visual-extension="doppler_wavefronts"],
    [data-unit-visual-extension="em_spectrum_scale"],
    [data-unit-visual-extension="polarisation_model"]
) .unit-dynamics-control:hover {
    border-color: var(--ch07-accent);
}

:is(
    [data-unit-visual-extension="wave_particle_transport"],
    [data-unit-visual-extension="wave_type_particles"],
    [data-unit-visual-extension="wave_graph_reader"],
    [data-unit-visual-extension="phase_cycle_model"],
    [data-unit-visual-extension="cro_measurement"],
    [data-unit-visual-extension="wave_equation_train"],
    [data-unit-visual-extension="intensity_spreading"],
    [data-unit-visual-extension="doppler_wavefronts"],
    [data-unit-visual-extension="em_spectrum_scale"],
    [data-unit-visual-extension="polarisation_model"]
) .unit-dynamics-control[aria-pressed="true"] {
    border-color: var(--ch07-accent);
    background: var(--ch07-accent);
    color: #fff;
    box-shadow: 0 0.32rem 0.85rem rgb(31 120 168 / 0.2);
}

:is(
    [data-unit-visual-extension="wave_particle_transport"],
    [data-unit-visual-extension="wave_type_particles"],
    [data-unit-visual-extension="wave_graph_reader"],
    [data-unit-visual-extension="phase_cycle_model"],
    [data-unit-visual-extension="cro_measurement"],
    [data-unit-visual-extension="wave_equation_train"],
    [data-unit-visual-extension="intensity_spreading"],
    [data-unit-visual-extension="doppler_wavefronts"],
    [data-unit-visual-extension="em_spectrum_scale"],
    [data-unit-visual-extension="polarisation_model"]
) .unit-dynamics-auto {
    color: var(--ch07-accent);
}

:is(
    [data-unit-visual-extension="wave_particle_transport"],
    [data-unit-visual-extension="wave_type_particles"],
    [data-unit-visual-extension="wave_graph_reader"],
    [data-unit-visual-extension="phase_cycle_model"],
    [data-unit-visual-extension="cro_measurement"],
    [data-unit-visual-extension="wave_equation_train"],
    [data-unit-visual-extension="intensity_spreading"],
    [data-unit-visual-extension="doppler_wavefronts"],
    [data-unit-visual-extension="em_spectrum_scale"],
    [data-unit-visual-extension="polarisation_model"]
) .ch07-visual-drawing {
    position: relative;
    width: 100%;
    aspect-ratio: var(--ch07-drawing-ratio, 720 / 360);
    border-radius: 0.82rem;
    background: rgb(255 255 255 / 0.62);
    container-type: inline-size;
    overflow: clip;
}

:is(
    [data-unit-visual-extension="wave_particle_transport"],
    [data-unit-visual-extension="wave_type_particles"],
    [data-unit-visual-extension="wave_graph_reader"],
    [data-unit-visual-extension="phase_cycle_model"],
    [data-unit-visual-extension="cro_measurement"],
    [data-unit-visual-extension="wave_equation_train"],
    [data-unit-visual-extension="intensity_spreading"],
    [data-unit-visual-extension="doppler_wavefronts"],
    [data-unit-visual-extension="em_spectrum_scale"],
    [data-unit-visual-extension="polarisation_model"]
) .ch07-visual-drawing > svg {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    max-height: none;
    overflow: hidden;
}

:is(
    [data-unit-visual-extension="wave_particle_transport"],
    [data-unit-visual-extension="wave_type_particles"],
    [data-unit-visual-extension="wave_graph_reader"],
    [data-unit-visual-extension="phase_cycle_model"],
    [data-unit-visual-extension="cro_measurement"],
    [data-unit-visual-extension="wave_equation_train"],
    [data-unit-visual-extension="intensity_spreading"],
    [data-unit-visual-extension="doppler_wavefronts"],
    [data-unit-visual-extension="em_spectrum_scale"],
    [data-unit-visual-extension="polarisation_model"]
) :is(.ch07-math-label, .ch07-text-label) {
    position: absolute;
    z-index: 3;
    max-width: 40%;
    transform: translate(-50%, -50%);
    color: var(--ch07-ink);
    font-size: clamp(0.7rem, 2.15cqi, 0.94rem);
    font-weight: 680;
    line-height: 1.05;
    white-space: nowrap;
    pointer-events: none;
}

:is(
    [data-unit-visual-extension="wave_particle_transport"],
    [data-unit-visual-extension="wave_type_particles"],
    [data-unit-visual-extension="wave_graph_reader"],
    [data-unit-visual-extension="phase_cycle_model"],
    [data-unit-visual-extension="cro_measurement"],
    [data-unit-visual-extension="wave_equation_train"],
    [data-unit-visual-extension="intensity_spreading"],
    [data-unit-visual-extension="doppler_wavefronts"],
    [data-unit-visual-extension="em_spectrum_scale"],
    [data-unit-visual-extension="polarisation_model"]
) :is(.ch07-math-label, .ch07-text-label)[data-math-anchor="start"] {
    transform: translate(0, -50%);
}

:is(
    [data-unit-visual-extension="wave_particle_transport"],
    [data-unit-visual-extension="wave_type_particles"],
    [data-unit-visual-extension="wave_graph_reader"],
    [data-unit-visual-extension="phase_cycle_model"],
    [data-unit-visual-extension="cro_measurement"],
    [data-unit-visual-extension="wave_equation_train"],
    [data-unit-visual-extension="intensity_spreading"],
    [data-unit-visual-extension="doppler_wavefronts"],
    [data-unit-visual-extension="em_spectrum_scale"],
    [data-unit-visual-extension="polarisation_model"]
) :is(.ch07-math-label, .ch07-text-label)[data-math-anchor="end"] {
    transform: translate(-100%, -50%);
}

:is(
    [data-unit-visual-extension="wave_particle_transport"],
    [data-unit-visual-extension="wave_type_particles"],
    [data-unit-visual-extension="wave_graph_reader"],
    [data-unit-visual-extension="phase_cycle_model"],
    [data-unit-visual-extension="cro_measurement"],
    [data-unit-visual-extension="wave_equation_train"],
    [data-unit-visual-extension="intensity_spreading"],
    [data-unit-visual-extension="doppler_wavefronts"],
    [data-unit-visual-extension="em_spectrum_scale"],
    [data-unit-visual-extension="polarisation_model"]
) :is(.ch07-text-label.is-spectrum) {
    max-width: 12%;
    color: #fff;
    font-size: clamp(0.7rem, 1.55cqi, 0.76rem);
    font-weight: 760;
}

:is(
    [data-unit-visual-extension="em_spectrum_scale"]
) :is(.ch07-text-label.is-visible-letter) {
    max-width: 8%;
    color: #fff;
    font-size: clamp(0.7rem, 1.8cqi, 0.78rem);
    font-weight: 820;
}

[data-unit-visual-extension="em_spectrum_scale"] .ch07-text-label.is-visible-letter.is-dark {
    color: #183640;
}

[data-unit-visual-extension="em_spectrum_scale"] .ch07-text-label.is-visible-endpoint {
    color: var(--ch07-ink);
    font-size: clamp(0.7rem, 1.95cqi, 0.84rem);
    font-weight: 760;
}

:is(
    [data-unit-visual-extension="wave_particle_transport"],
    [data-unit-visual-extension="wave_type_particles"],
    [data-unit-visual-extension="wave_graph_reader"],
    [data-unit-visual-extension="phase_cycle_model"],
    [data-unit-visual-extension="cro_measurement"],
    [data-unit-visual-extension="wave_equation_train"],
    [data-unit-visual-extension="intensity_spreading"],
    [data-unit-visual-extension="doppler_wavefronts"],
    [data-unit-visual-extension="em_spectrum_scale"],
    [data-unit-visual-extension="polarisation_model"]
) :is(.is-accent) { color: var(--ch07-accent); }

:is(
    [data-unit-visual-extension="wave_particle_transport"],
    [data-unit-visual-extension="wave_type_particles"],
    [data-unit-visual-extension="wave_graph_reader"],
    [data-unit-visual-extension="phase_cycle_model"],
    [data-unit-visual-extension="cro_measurement"],
    [data-unit-visual-extension="wave_equation_train"],
    [data-unit-visual-extension="intensity_spreading"],
    [data-unit-visual-extension="doppler_wavefronts"],
    [data-unit-visual-extension="em_spectrum_scale"],
    [data-unit-visual-extension="polarisation_model"]
) :is(.is-particle, .is-p, .is-tagged) { color: var(--ch07-particle); }

:is(
    [data-unit-visual-extension="wave_particle_transport"],
    [data-unit-visual-extension="wave_type_particles"],
    [data-unit-visual-extension="wave_graph_reader"],
    [data-unit-visual-extension="phase_cycle_model"],
    [data-unit-visual-extension="cro_measurement"],
    [data-unit-visual-extension="wave_equation_train"],
    [data-unit-visual-extension="intensity_spreading"],
    [data-unit-visual-extension="doppler_wavefronts"],
    [data-unit-visual-extension="em_spectrum_scale"],
    [data-unit-visual-extension="polarisation_model"]
) :is(.is-energy) { color: var(--ch07-energy); }

:is(
    [data-unit-visual-extension="wave_particle_transport"],
    [data-unit-visual-extension="wave_type_particles"],
    [data-unit-visual-extension="wave_graph_reader"],
    [data-unit-visual-extension="phase_cycle_model"],
    [data-unit-visual-extension="cro_measurement"],
    [data-unit-visual-extension="wave_equation_train"],
    [data-unit-visual-extension="intensity_spreading"],
    [data-unit-visual-extension="doppler_wavefronts"],
    [data-unit-visual-extension="em_spectrum_scale"],
    [data-unit-visual-extension="polarisation_model"]
) :is(.is-source) {
    color: #fff;
    font-size: clamp(0.7rem, 1.7cqi, 0.76rem);
}

:is(
    [data-unit-visual-extension="wave_particle_transport"],
    [data-unit-visual-extension="wave_type_particles"],
    [data-unit-visual-extension="wave_graph_reader"],
    [data-unit-visual-extension="phase_cycle_model"],
    [data-unit-visual-extension="cro_measurement"],
    [data-unit-visual-extension="wave_equation_train"],
    [data-unit-visual-extension="intensity_spreading"],
    [data-unit-visual-extension="doppler_wavefronts"],
    [data-unit-visual-extension="em_spectrum_scale"],
    [data-unit-visual-extension="polarisation_model"]
) :is(.is-secondary, .is-q) { color: var(--ch07-secondary); }

[data-unit-visual-extension] .ch07-axis {
    stroke: var(--ch07-ink);
    stroke-width: 1.35;
}

[data-unit-visual-extension] .ch07-equilibrium,
[data-unit-visual-extension] .ch07-divider,
[data-unit-visual-extension] .ch07-grid,
[data-unit-visual-extension] .ch07-guide {
    stroke: var(--ch07-grid);
    stroke-width: 1;
    stroke-dasharray: 5 5;
}

[data-unit-visual-extension] .ch07-wave-line {
    fill: none;
    stroke: var(--ch07-accent);
    stroke-width: 2.25;
}

[data-unit-visual-extension] .ch07-progressive-trace {
    stroke-linecap: round;
}

[data-unit-visual-extension] .ch07-wave-line.is-secondary {
    stroke: var(--ch07-secondary);
}

[data-unit-visual-extension] .ch07-vector {
    fill: none;
    stroke-width: 2.1;
    stroke-linecap: round;
}

[data-unit-visual-extension] .ch07-vector.is-accent { stroke: var(--ch07-accent); }
[data-unit-visual-extension] .ch07-vector.is-particle { stroke: var(--ch07-particle); }
[data-unit-visual-extension] .ch07-vector.is-energy { stroke: var(--ch07-energy); }
[data-unit-visual-extension] .ch07-vector.is-secondary { stroke: var(--ch07-secondary); }
[data-unit-visual-extension] .ch07-vector.is-neutral { stroke: var(--ch07-neutral); }

[data-unit-visual-extension] .ch07-arrowhead {
    fill: none;
    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;
}

[data-unit-visual-extension] .ch07-arrowhead.is-accent { stroke: var(--ch07-accent); }
[data-unit-visual-extension] .ch07-arrowhead.is-particle { stroke: var(--ch07-particle); }
[data-unit-visual-extension] .ch07-arrowhead.is-energy { stroke: var(--ch07-energy); }
[data-unit-visual-extension] .ch07-arrowhead.is-secondary { stroke: var(--ch07-secondary); }
[data-unit-visual-extension] .ch07-arrowhead.is-neutral { stroke: var(--ch07-neutral); }

[data-unit-visual-extension] .ch07-point {
    fill: var(--ch07-accent);
    stroke: #fff;
    stroke-width: 1.6;
}

[data-unit-visual-extension] .ch07-point.is-tagged,
[data-unit-visual-extension] .ch07-point.is-p { fill: var(--ch07-particle); }
[data-unit-visual-extension] .ch07-point.is-q { fill: var(--ch07-secondary); }
[data-unit-visual-extension] .ch07-point.is-source { fill: var(--ch07-energy); }

[data-unit-visual-extension] .ch07-cro-screen {
    fill: #f7fbfd;
    stroke: #b9cbd5;
    stroke-width: 1.3;
}

[data-unit-visual-extension] .ch07-area-plane {
    fill: color-mix(in srgb, var(--ch07-secondary) 18%, #fff);
    stroke: var(--ch07-secondary);
    stroke-width: 1.4;
}

[data-unit-visual-extension] .ch07-sphere,
[data-unit-visual-extension] .ch07-wavefront {
    fill: none;
    stroke: color-mix(in srgb, var(--ch07-energy) 62%, #fff);
    stroke-width: 1.15;
}

[data-unit-visual-extension] .ch07-sphere.is-secondary { stroke-dasharray: 5 5; }

[data-unit-visual-extension] .ch07-source {
    fill: var(--ch07-accent);
    stroke: #fff;
    stroke-width: 1.8;
}

[data-unit-visual-extension] .ch07-observer {
    fill: #dfe8ed;
    stroke: var(--ch07-neutral);
    stroke-width: 1.4;
}

[data-unit-visual-extension] .ch07-observer-line {
    stroke: var(--ch07-neutral);
    stroke-width: 2;
    stroke-linecap: round;
}

[data-unit-visual-extension] .ch07-spectrum-region,
[data-unit-visual-extension] .ch07-visible-band {
    stroke: rgb(255 255 255 / 0.72);
    stroke-width: 1;
}

[data-unit-visual-extension] .colour-0 { fill: #446b91; }
[data-unit-visual-extension] .colour-1 { fill: #3e88a8; }
[data-unit-visual-extension] .colour-2 { fill: #b05c45; }
[data-unit-visual-extension] .colour-3 { fill: #628c57; }
[data-unit-visual-extension] .colour-4 { fill: #8161a6; }
[data-unit-visual-extension] .colour-5 { fill: #56617d; }
[data-unit-visual-extension] .colour-6 { fill: #75506d; }

[data-unit-visual-extension="em_spectrum_scale"] .visible-0 { fill: #c9364f; }
[data-unit-visual-extension="em_spectrum_scale"] .visible-1 { fill: #e6782f; }
[data-unit-visual-extension="em_spectrum_scale"] .visible-2 { fill: #f1cf45; }
[data-unit-visual-extension="em_spectrum_scale"] .visible-3 { fill: #58a85b; }
[data-unit-visual-extension="em_spectrum_scale"] .visible-4 { fill: #347fc0; }
[data-unit-visual-extension="em_spectrum_scale"] .visible-5 { fill: #4e54a4; }
[data-unit-visual-extension="em_spectrum_scale"] .visible-6 { fill: #763d96; }

[data-unit-visual-extension] .ch07-classifier {
    stroke: var(--ch07-accent);
    stroke-width: 1.2;
    stroke-dasharray: 4 4;
}

[data-unit-visual-extension] .ch07-filter {
    fill: rgb(83 121 144 / 0.13);
    stroke: #5f8298;
    stroke-width: 1.4;
}

[data-unit-visual-extension] .ch07-filter.is-analyser {
    fill: rgb(110 94 167 / 0.12);
    stroke: var(--ch07-secondary);
}

[data-unit-visual-extension] .ch07-filter-axis {
    stroke: var(--ch07-neutral);
    stroke-width: 1.2;
    stroke-dasharray: 4 4;
}

[data-unit-visual-extension] .ch07-field {
    stroke: var(--ch07-particle);
    stroke-width: 1.5;
}

[data-unit-visual-extension] .ch07-vector.ch07-field.is-secondary {
    stroke: var(--ch07-secondary);
}

[data-unit-visual-extension] .ch07-field.is-faint { opacity: 0.48; }

[data-unit-visual-extension="polarisation_model"] .ch07-detector-screen {
    fill: var(--ch07-secondary);
    stroke: color-mix(in srgb, var(--ch07-secondary) 72%, #223944);
    stroke-width: 1.35;
}

[data-unit-visual-extension="polarisation_model"] .ch07-text-label.is-screen {
    color: var(--ch07-neutral);
    font-size: clamp(0.7rem, 1.75cqi, 0.78rem);
    font-weight: 760;
}

[data-unit-visual-extension] .ch07-visual-state-title {
    margin: 0.72rem 0 0.2rem;
    color: var(--ch07-ink);
    font-size: var(--unit-text-heading-small, 15px);
    font-weight: 750;
    line-height: 1.25;
}

[data-unit-visual-extension] .ch07-visual-caption {
    margin: 0;
    color: var(--ch07-muted);
    font-size: var(--unit-text-body, 15.5px);
    line-height: 1.52;
}

@media (max-width: 560px) {
    :is(
        [data-unit-visual-extension="wave_particle_transport"],
        [data-unit-visual-extension="wave_type_particles"],
        [data-unit-visual-extension="wave_graph_reader"],
        [data-unit-visual-extension="phase_cycle_model"],
        [data-unit-visual-extension="cro_measurement"],
        [data-unit-visual-extension="wave_equation_train"],
        [data-unit-visual-extension="intensity_spreading"],
        [data-unit-visual-extension="doppler_wavefronts"],
        [data-unit-visual-extension="em_spectrum_scale"],
        [data-unit-visual-extension="polarisation_model"]
    ) {
        margin-inline: -0.16rem;
        padding: 0.82rem;
        border-radius: 1.05rem;
    }

    :is(
        [data-unit-visual-extension="wave_particle_transport"],
        [data-unit-visual-extension="wave_type_particles"],
        [data-unit-visual-extension="wave_graph_reader"],
        [data-unit-visual-extension="phase_cycle_model"],
        [data-unit-visual-extension="cro_measurement"],
        [data-unit-visual-extension="wave_equation_train"],
        [data-unit-visual-extension="intensity_spreading"],
        [data-unit-visual-extension="doppler_wavefronts"],
        [data-unit-visual-extension="em_spectrum_scale"],
        [data-unit-visual-extension="polarisation_model"]
    ) .ch07-visual-controls.unit-dynamics-controls {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    :is(
        [data-unit-visual-extension="wave_particle_transport"],
        [data-unit-visual-extension="wave_type_particles"],
        [data-unit-visual-extension="wave_graph_reader"],
        [data-unit-visual-extension="phase_cycle_model"],
        [data-unit-visual-extension="cro_measurement"],
        [data-unit-visual-extension="wave_equation_train"],
        [data-unit-visual-extension="intensity_spreading"],
        [data-unit-visual-extension="doppler_wavefronts"],
        [data-unit-visual-extension="em_spectrum_scale"],
        [data-unit-visual-extension="polarisation_model"]
    ) .ch07-motion-controls {
        grid-template-columns: 4rem minmax(2.6rem, 1fr) 5.25rem;
        gap: 0.38rem;
        padding-inline: 0.36rem;
    }

    :is(
        [data-unit-visual-extension="wave_particle_transport"],
        [data-unit-visual-extension="wave_type_particles"],
        [data-unit-visual-extension="wave_graph_reader"],
        [data-unit-visual-extension="phase_cycle_model"],
        [data-unit-visual-extension="cro_measurement"],
        [data-unit-visual-extension="wave_equation_train"],
        [data-unit-visual-extension="intensity_spreading"],
        [data-unit-visual-extension="doppler_wavefronts"],
        [data-unit-visual-extension="em_spectrum_scale"],
        [data-unit-visual-extension="polarisation_model"]
    ) .unit-dynamics-control {
        height: 38px;
        font-size: max(var(--unit-text-meta, 12px), 11px);
    }
}

@media (prefers-reduced-motion: reduce) {
    :is(
        [data-unit-visual-extension="wave_particle_transport"],
        [data-unit-visual-extension="wave_type_particles"],
        [data-unit-visual-extension="wave_graph_reader"],
        [data-unit-visual-extension="phase_cycle_model"],
        [data-unit-visual-extension="cro_measurement"],
        [data-unit-visual-extension="wave_equation_train"],
        [data-unit-visual-extension="intensity_spreading"],
        [data-unit-visual-extension="doppler_wavefronts"],
        [data-unit-visual-extension="em_spectrum_scale"],
        [data-unit-visual-extension="polarisation_model"]
    ) * {
        scroll-behavior: auto !important;
        animation: none !important;
        transition: none !important;
    }
}
