.wave-lab { margin: 32px -24px; border: 1px solid #d8d9ce; background: #f1f2e9; border-radius: 4px; overflow: hidden; }
.lab-heading { padding: 27px 28px 0; }
.lab-heading .eyebrow { margin-bottom: 10px; }
.lab-heading h3 { font: 400 25px/1.2 Georgia, serif; letter-spacing: -.025em; color: #183e35; }
.lab-heading > p:last-child { font-size: 13px; color: #54635b; margin-top: 12px; }
.wave-fallback { width: 100%; height: auto; }
[hidden] { display: none !important; }
.wave-interactive { padding: 22px 28px 28px; }
.wave-legend { display: flex; flex-wrap: wrap; gap: 8px 20px; font: 11px/1.5 var(--mono); }
.packet-a { color: #3569a0; }
.packet-b { color: #a64b30; }
.packet-sum { color: #172f2a; }
.wave-interactive svg { display: block; width: 100%; height: auto; margin: 10px 0; }
.wave-interactive svg path { fill: none; stroke-linejoin: round; }
.wave-axis { stroke: #c9cec3; stroke-width: 1; }
.wave-axis-label { font: 12px var(--mono); fill: #68766a; }
.wave-a { stroke: #3569a0; stroke-width: 2; }
.wave-b { stroke: #a64b30; stroke-width: 2; stroke-dasharray: 5 4; }
.wave-sum { stroke: #172f2a; stroke-width: 3; }
.time-control { display: grid; gap: 4px; }
.time-control label { font-size: 13px; font-weight: 600; }
.time-control output { font-size: 12px; line-height: 1.6; min-height: 38px; color: #4d6258; }
.time-control input { accent-color: #285b49; width: 100%; min-height: 44px; margin: 0; cursor: pointer; }
.wave-presets { display: flex; gap: 8px; margin-top: 12px; }
.wave-presets button { flex: 1; min-height: 44px; padding: 8px; color: #3d5349; background: transparent; border: 1px solid #bbc6b9; border-radius: 3px; font: 12px var(--sans); cursor: pointer; }
.wave-presets button:hover { background: #e2e7d9; }
.wave-presets button[aria-pressed="true"] { background: #244e40; border-color: #244e40; color: #fff; }
.wave-lab figcaption { padding: 17px 28px; border-top: 1px solid #d8d9ce; font-size: 12px; line-height: 1.7; color: #5b685f; }

@media(max-width:900px){.wave-lab{margin-left:0;margin-right:0}}
@media(max-width:680px){.wave-lab{margin:28px -8px}.lab-heading,.wave-interactive{padding-left:18px;padding-right:18px}.wave-lab figcaption{padding:15px 18px}.wave-presets{gap:6px}.wave-presets button{font-size:11px}}
