.harmonic-grid{margin-top:42px;padding-top:42px;position:relative}.harmonic-grid-key{color:var(--muted-on-dark);align-items:baseline;gap:12px;margin:0;font-size:11px;line-height:1.4;display:flex;position:absolute;top:0;left:0}.harmonic-grid-key span{letter-spacing:.08em;text-transform:uppercase}.harmonic-grid-key strong{color:#ece8df;font-family:var(--font-geist-mono), monospace;font-weight:500}.harmonic-grid .harmonic-plot{margin-top:0}.lab-play{transition:background var(--motion-duration) var(--motion-curve), box-shadow var(--motion-duration) var(--motion-curve), transform var(--motion-duration) var(--motion-curve)}.lab-play.is-sounding{background:var(--mint);transform:translateY(-2px);box-shadow:inset 0 0 0 3px #d8ff5fd1}.lab-play.is-sounding:focus-visible{box-shadow:inset 0 0 0 3px #d8ff5fd1, 0 0 0 3px var(--focus-halo)}.lab-play:active{transform:scale(.97)}.harmonic-plot button{transition:background var(--motion-duration) var(--motion-curve), box-shadow var(--motion-duration) var(--motion-curve), color var(--motion-duration) var(--motion-curve), opacity var(--motion-duration) var(--motion-curve)}.harmonic-plot .harmonic-bar{transform-origin:bottom;transition:height var(--motion-duration) var(--motion-curve), background var(--motion-duration) var(--motion-curve), box-shadow var(--motion-duration) var(--motion-curve), transform var(--motion-duration) var(--motion-curve)}.harmonic-plot button.is-sounding{box-shadow:inset 0 -3px 0 var(--acid);color:#f4f1e8;background:linear-gradient(#0000 28%,#8ee7d124)}.harmonic-plot button.is-sounding:focus-visible{box-shadow:inset 0 -3px 0 var(--acid), 0 0 0 3px var(--focus-halo)}.harmonic-plot button.is-sounding .harmonic-bar{background:linear-gradient(to top, var(--acid), #fffbd1);box-shadow:inset 0 -3px 0 var(--acid)}.harmonic-plot button.is-sounding small{color:var(--acid)}.hl-missing{transition:background var(--motion-duration) var(--motion-curve), transform var(--motion-duration) var(--motion-curve);background:#ffffff09;border:1px solid #ffffff29;grid-template-columns:minmax(0,1fr) minmax(260px,.72fr);align-items:center;gap:32px;margin-top:46px;padding:24px;display:grid}.hl-missing[data-stage=missing]{background:#8ee7d114}.hl-missing-copy>p{color:var(--mint);letter-spacing:.1em;text-transform:uppercase;margin:0 0 10px;font-size:11px}.hl-missing-copy h3{max-width:26ch;margin:0;font-family:Georgia,serif;font-size:clamp(25px,3vw,38px);font-weight:400;line-height:1.06}.hl-missing-copy>span,.hl-missing-copy>strong{max-width:58ch;color:var(--muted-on-dark);margin-top:12px;font-size:11px;font-weight:400;line-height:1.55;display:block}.hl-missing-copy>strong{color:#dce8df}.hl-missing-meter{border-bottom:1px solid #ffffff29;align-items:flex-end;gap:8px;height:70px;padding:0 6px 8px;display:flex}.hl-missing-meter i{width:100%;height:max(8px, var(--hl-level));background:linear-gradient(to top, var(--mint), var(--acid));opacity:.9;transition:height var(--motion-duration) var(--motion-curve), opacity var(--motion-duration) var(--motion-curve), transform var(--motion-duration) var(--motion-curve)}.hl-missing-meter i.is-muted{opacity:.12;transform-origin:bottom;transform:scaleY(.1)}.hl-missing-action>small{min-height:18px;color:var(--muted-on-dark);margin-top:9px;font-size:11px;line-height:1.45;display:block}.hl-missing-action button{background:var(--acid);color:#11140d;cursor:pointer;width:100%;min-height:48px;transition:transform var(--motion-duration) var(--motion-curve), opacity var(--motion-duration) var(--motion-curve);border:0;border-radius:999px;justify-content:space-between;align-items:center;margin-top:14px;padding:0 18px;font-size:11px;font-weight:700;display:flex}.hl-missing-action button:active{opacity:.78;transform:scale(.97)}@media (width<=680px){.harmonic-grid{margin-top:34px;padding-top:54px}.harmonic-grid-key{gap:3px;display:grid}.hl-missing{grid-template-columns:1fr;gap:22px;margin-top:34px;padding:20px}}@media (width>=681px) and (height<=500px){.harmonic-lab{padding-top:12px}.harmonic-grid{margin-top:10px;padding-top:22px}.harmonic-grid .harmonic-plot{height:292px}}@media (prefers-reduced-motion:reduce){.lab-play,.harmonic-plot button,.harmonic-plot .harmonic-bar,.hl-missing,.hl-missing-meter i,.hl-missing-action button{transition:none}}
