.dropzone{isolation:isolate;border:1px dashed var(--color-line);background:radial-gradient(120% 80% at 50% 0%, #191926 0%, transparent 70%), var(--color-raised);cursor:pointer;border-radius:1.25rem;min-height:clamp(16rem,36vh,22rem);padding:clamp(2rem,5vw,3.5rem);transition:border-color .24s,background-color .24s;display:block;position:relative}.dropzone.is-busy{cursor:progress}.dropzone:hover,.dropzone:focus-within,.dropzone.is-dragging{border-color:color-mix(in oklab, var(--color-bone) 35%, transparent)}.dropzone.is-dragging{border-style:solid}.dropzone-body{z-index:1;text-align:center;flex-direction:column;align-items:center;gap:.6rem;margin-bottom:clamp(2rem,9vh,4.5rem);display:flex;position:relative}.dropzone-headline{font-family:var(--font-display);letter-spacing:-.02em;font-size:clamp(1.5rem,3.2vw,2.125rem);font-weight:700}.dropzone-sub{color:var(--color-mute);overflow-wrap:anywhere;max-width:30rem;font-size:.9375rem}.dropzone-link{color:var(--color-bone);text-underline-offset:3px;text-decoration:underline;text-decoration-thickness:1px}.dropzone-terms{font-family:var(--font-mono);letter-spacing:.16em;text-transform:uppercase;color:color-mix(in oklab, var(--color-mute) 80%, transparent);margin-top:.35rem;font-size:.6875rem}.progress{background:var(--color-line);border-radius:999px;width:min(20rem,60vw);height:3px;margin-top:.85rem;display:block;overflow:hidden}.progress-fill{background:var(--color-bone);height:100%;transition:width .18s linear;display:block}.analyzer-error{color:#f2a2a2;margin:.9rem 0 0;font-size:.9375rem}.chroma{pointer-events:none;border-radius:inherit;grid-template-columns:repeat(12,1fr);align-items:end;padding:0 clamp(.75rem,3vw,2rem) .85rem;display:grid;position:absolute;inset:0;overflow:hidden}.chroma .lane{flex-direction:column;justify-content:flex-end;align-items:center;gap:.55rem;height:100%;display:flex}.chroma .bar{width:58%;max-width:2.75rem;height:calc(var(--w) * 34%);background:linear-gradient(to top, hsl(var(--h) 62% 60% / .42), hsl(var(--h) 72% 68% / .06));transform-origin:bottom;min-height:3px;transition:transform .52s cubic-bezier(.2,.8,.2,1),filter .52s;transition-delay:calc(var(--i) * 22ms);filter:saturate(.75);border-radius:3px 3px 0 0}.chroma .tick{font-family:var(--font-mono);letter-spacing:.06em;color:hsl(var(--h) 30% 70% / .4);font-size:.5625rem}.dropzone:hover .chroma .bar,.dropzone:focus-within .chroma .bar,.chroma.is-active .bar{filter:saturate(1.15)brightness(1.15);transform:scaleY(1.35)}.result{border:1px solid var(--color-line);background:var(--color-raised);border-radius:1.25rem;padding:clamp(1.25rem,3vw,2rem)}.result-head{border-bottom:1px solid var(--color-line);grid-template-columns:repeat(auto-fit,minmax(7rem,1fr));gap:1rem 1.5rem;padding-bottom:1.25rem;display:grid}.stat{flex-direction:column;gap:.3rem;display:flex}.stat-label{font-family:var(--font-mono);letter-spacing:.16em;text-transform:uppercase;color:var(--color-mute);font-size:.625rem}.stat-value{font-family:var(--font-display);letter-spacing:-.02em;font-size:1.25rem;font-weight:700}.transport{flex-wrap:wrap;align-items:center;gap:.75rem 1rem;padding:1.25rem 0 1rem;display:flex}.transport-time{font-family:var(--font-mono);color:var(--color-mute);font-size:.8125rem}.transport-now{font-family:var(--font-display);letter-spacing:-.02em;min-width:3ch;font-size:1.5rem;font-weight:700}.transport-file{color:var(--color-mute);overflow-wrap:anywhere;margin-left:auto;font-size:.8125rem}.timeline{background:#0e0e18;border-radius:.75rem;height:6.5rem;position:relative;overflow:hidden}.chord{color:var(--color-bone);font:inherit;cursor:pointer;border:0;border-left:1px solid #0000;justify-content:center;align-items:center;padding:0;transition:filter .16s;display:flex;position:absolute;top:0;bottom:0;overflow:hidden}.chord:hover{filter:brightness(1.35)}.chord.is-current{filter:brightness(1.5)}.chord.is-current .chord-label{transform:scale(1.08)}.chord-label{font-family:var(--font-display);letter-spacing:-.02em;white-space:nowrap;text-shadow:0 1px 6px #0000008c;font-size:1.0625rem;font-weight:700;transition:transform .16s}.ruler{height:1.4rem;margin-top:.4rem;position:relative}.tick-mark{font-family:var(--font-mono);color:var(--color-mute);border-top:1px solid var(--color-line);padding-top:.3rem;font-size:.625rem;position:absolute;top:0;transform:translate(-50%)}.tick-mark:first-child{transform:none}.playhead{background:var(--color-bone);pointer-events:none;width:1px;position:absolute;top:0;bottom:0}.result-actions{flex-wrap:wrap;gap:.6rem;margin-top:1.25rem;display:flex}.result-actions button,.play{border:1px solid var(--color-line);color:var(--color-bone);font:inherit;cursor:pointer;background:0 0;border-radius:.5rem;padding:.5rem .9rem;font-size:.875rem;transition:border-color .16s,background-color .16s}.result-actions button:hover,.play:hover{border-color:color-mix(in oklab, var(--color-bone) 40%, transparent);background:#1b1b28}.result-actions .ghost{color:var(--color-mute);margin-left:auto}@media (prefers-reduced-motion:reduce){.chroma .bar,.progress-fill,.chord-label{transition:none}.dropzone:hover .chroma .bar,.dropzone:focus-within .chroma .bar,.chroma.is-active .bar{transform:none}}.chord-degree{text-align:center;font-family:var(--font-mono);letter-spacing:.06em;opacity:.75;font-size:.625rem;position:absolute;bottom:.45rem;left:0;right:0}.shapes{border-top:1px solid var(--color-line);margin-top:1.5rem;padding-top:1.25rem}.shapes-title{font-family:var(--font-mono);letter-spacing:.16em;text-transform:uppercase;color:var(--color-mute);margin:0 0 1rem;font-size:.625rem}.shapes-grid{grid-template-columns:repeat(auto-fill,minmax(6.5rem,1fr));gap:1rem;display:grid}.shape{border:1px solid var(--color-line);background:#0e0e18;border-radius:.75rem;flex-direction:column;align-items:center;gap:.45rem;padding:.85rem .5rem .7rem;display:flex}.shape svg{display:block}.shape-name{font-family:var(--font-display);letter-spacing:-.02em;color:currentColor;font-size:1.0625rem;font-weight:700}.shape-notes{font-family:var(--font-mono);letter-spacing:.1em;color:var(--color-mute);font-size:.625rem}
