:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#100f0d;--surface:#1a1916;--surface-2:#23211d;--border:#2e2b26;--text:#f3efe7;--muted:#a59f93;--faint:#6f6a61;--accent:#f2a93b;--accent-text:#f6b95c;--on-accent:#1d1406;--accent-soft:#f2a93b24;--danger:#f07a6a;--ok:#7cc68a;--star:#f7c948;--shadow:0 1px 2px #0006, 0 8px 24px #00000059;--tag-l:.8;--tag-c:.13;--tag-bg-a:.16;--radius:4px;--radius-sm:3px;--page:1120px;--font:system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif}@media (prefers-color-scheme:light){:root:not([data-theme=dark]){--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg:#f6f3ee;--surface:#fff;--surface-2:#efebe4;--border:#e2ddd3;--text:#1c1a17;--muted:#5b554b;--faint:#736d62;--accent:#e0951f;--accent-text:#93570a;--on-accent:#1d1406;--accent-soft:#e0951f24;--danger:#b4382a;--ok:#2f7a3c;--star:#e2a500;--shadow:0 1px 2px #281e0a14, 0 8px 24px #281e0a14;--tag-l:.5;--tag-c:.12;--tag-bg-a:.13}}:root[data-theme=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg:#f6f3ee;--surface:#fff;--surface-2:#efebe4;--border:#e2ddd3;--text:#1c1a17;--muted:#5b554b;--faint:#736d62;--accent:#e0951f;--accent-text:#93570a;--on-accent:#1d1406;--accent-soft:#e0951f24;--danger:#b4382a;--ok:#2f7a3c;--star:#e2a500;--shadow:0 1px 2px #281e0a14, 0 8px 24px #281e0a14;--tag-l:.5;--tag-c:.12;--tag-bg-a:.13}:root[data-accent=rose]{--accent:#ff95ae;--accent-text:#ffa9bc;--on-accent:#211014;--accent-soft:#ff95ae24}:root[data-accent=green]{--accent:#5fd58f;--accent-text:#7adea0;--on-accent:#0a1a10;--accent-soft:#5fd58f24}:root[data-accent=blue]{--accent:#81bfff;--accent-text:#98caff;--on-accent:#0b1722;--accent-soft:#81bfff24}@media (prefers-color-scheme:light){:root:not([data-theme=dark])[data-accent=rose]{--accent:#f37c9a;--accent-text:#9b485f;--on-accent:#211014;--accent-soft:#f37c9a24}:root:not([data-theme=dark])[data-accent=green]{--accent:#48c27d;--accent-text:#217a4a;--on-accent:#0a1a10;--accent-soft:#48c27d24}:root:not([data-theme=dark])[data-accent=blue]{--accent:#57acff;--accent-text:#2d6aa5;--on-accent:#0b1722;--accent-soft:#57acff24}}:root[data-theme=light][data-accent=rose]{--accent:#f37c9a;--accent-text:#9b485f;--on-accent:#211014;--accent-soft:#f37c9a24}:root[data-theme=light][data-accent=green]{--accent:#48c27d;--accent-text:#217a4a;--on-accent:#0a1a10;--accent-soft:#48c27d24}:root[data-theme=light][data-accent=blue]{--accent:#57acff;--accent-text:#2d6aa5;--on-accent:#0b1722;--accent-soft:#57acff24}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{background:var(--bg);color:var(--text);font:15px/1.5 var(--font);-webkit-font-smoothing:antialiased;margin:0}h1,h2,h3,p{margin:0}a{color:inherit;text-decoration:none}img{display:block}button,input{font:inherit;color:inherit}button:disabled{cursor:default;opacity:.6}:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:var(--radius-sm)}.num{font-variant-numeric:tabular-nums}.muted{color:var(--muted)}.visually-hidden{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}#root{flex-direction:column;min-height:100dvh;display:flex}#root>main,#root>.site-footer{width:100%}main.page-loading{flex-direction:column;flex:1;justify-content:center;display:flex}.page{max-width:var(--page);margin:0 auto;padding:32px 24px 64px}.page-header{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:16px;margin-bottom:24px;display:flex}.page-header h1{letter-spacing:-.02em;font-size:28px}@media (width<=720px){.admin-header{flex-direction:column;align-items:flex-start}}.section-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;margin:40px 0 12px;display:flex}.section-header h2{font-size:18px}.eyebrow{letter-spacing:.08em;text-transform:uppercase;color:var(--muted);font-size:12px;font-weight:600}.site-header{z-index:10;background:color-mix(in srgb, var(--bg) 85%, transparent);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid var(--border);position:sticky;top:0}.site-header .inner{max-width:var(--page);align-items:center;gap:24px;height:60px;margin:0 auto;padding:0 24px;display:flex}.brand{letter-spacing:-.01em;align-items:center;gap:10px;margin-right:auto;font-size:17px;font-weight:700;display:flex}.brand svg{color:var(--accent)}.brand:hover svg{animation:.7s flip}@keyframes flip{0%{transform:perspective(200px)rotateY(0)}to{transform:perspective(200px)rotateY(360deg)}}.site-nav{gap:4px;display:flex}.site-nav a{border-radius:var(--radius-sm);color:var(--muted);padding:6px 12px;font-weight:500;transition:color .15s,background-color .15s}.site-nav a:hover,.site-nav a.active{color:var(--text);background:var(--surface-2)}.nav-menu{display:flex;position:relative}.nav-submenu{z-index:30;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);min-width:150px;box-shadow:var(--shadow);flex-direction:column;gap:2px;padding:4px;display:none;position:absolute;top:calc(100% + 6px);left:0}.nav-submenu:before{content:"";height:8px;position:absolute;top:-8px;left:0;right:0}@media (hover:hover) and (pointer:fine){.nav-menu:hover .nav-submenu{display:flex}.nav-menu:has(:focus-visible) .nav-submenu{display:flex}}.button{border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--surface);cursor:pointer;align-items:center;gap:8px;padding:9px 16px;font-weight:600;transition:background-color .15s,border-color .15s;display:inline-flex}.button:hover{background:var(--surface-2)}.button.primary{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}.button.primary:hover{filter:brightness(1.06)}.button.small{padding:5px 12px;font-size:14px}.button.large{padding:12px 22px;font-size:16px}.button.block{justify-content:center;width:100%}.button.danger{color:var(--danger)}.button.danger:hover{border-color:var(--danger)}.button.danger.solid{background:var(--danger);border-color:var(--danger);color:var(--bg)}.field{align-items:center;display:flex;position:relative}.field svg{color:var(--faint);pointer-events:none;position:absolute;left:12px}.field input{border-radius:var(--radius);border:1px solid var(--border);background:var(--surface);width:100%;padding:10px 14px 10px 38px;transition:border-color .15s,box-shadow .15s}.field input::placeholder{color:var(--faint)}.field input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft);outline:none}.field.large input{padding:14px 16px 14px 44px;font-size:17px}.field.large svg{left:15px}.cover{aspect-ratio:1;object-fit:cover;border-radius:var(--radius-sm);background:var(--surface-2);width:100%}.cover.loading{opacity:0}.cover.fade-in{animation:.35s ease-out cover-in}@keyframes cover-in{0%{opacity:0}}.cover.placeholder{background:radial-gradient(circle at center, var(--accent) 0 9%, var(--surface-2) 9.5% 10.5%, transparent 11%), repeating-radial-gradient(circle at center, #1b1a18 0 1.2%, #262421 1.4% 2%)}.record-grid{grid-template-columns:repeat(auto-fill,minmax(176px,1fr));gap:28px 20px;display:grid}.record-card{flex-direction:column;gap:10px;display:flex}.record-card .cover{box-shadow:var(--shadow);transition:transform .2s,box-shadow .2s}.record-card:hover .cover{transform:translateY(-3px)}.record-card h3{-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:15px;font-weight:600;line-height:1.3;display:-webkit-box;overflow:hidden}.record-card p{color:var(--muted);white-space:nowrap;text-overflow:ellipsis;font-size:13px;overflow:hidden}.record-card .meta{color:var(--faint)}.hero{grid-template-columns:220px 1fr;align-items:end;gap:32px;display:grid}.hero .cover{box-shadow:var(--shadow)}.hero.track-hero{grid-template-columns:240px 1fr;align-items:start}.hero-text{flex-direction:column;gap:8px;min-width:0;display:flex}.hero h1{letter-spacing:-.025em;font-size:clamp(26px,4vw,40px);line-height:1.1}.hero .byline{color:var(--muted);font-size:17px}.hero .byline a:hover{color:var(--text);text-underline-offset:3px;text-decoration:underline}.chips{flex-wrap:wrap;gap:6px;margin-top:6px;display:flex}.chip{border-radius:var(--radius-sm);border:1px solid var(--border);color:var(--muted);padding:3px 10px;font-size:12px}.text-link{color:var(--accent-text);font-weight:500}.text-link:hover{text-underline-offset:3px;text-decoration:underline}button.text-link{font:inherit;cursor:pointer;background:0 0;border:0;padding:0;font-weight:500}.stats{flex-wrap:wrap;gap:28px;margin-top:12px;display:flex}.stat{text-align:center;flex-direction:column;align-items:center;display:flex}.stat .value{letter-spacing:-.02em;box-sizing:content-box;align-items:center;gap:10px;min-height:1.2em;font-size:28px;font-weight:700;line-height:1.2;display:flex}.stat .label{color:var(--muted);font-size:12px}.stat.lined .value{border-bottom:1px solid var(--border);justify-content:center;align-self:stretch;padding-bottom:6px}.stat.lined .label{padding-top:6px}.stat .label.text-link{color:var(--accent-text)}.table-wrap{position:relative;overflow-x:auto}.track-table{border-collapse:collapse;width:100%}.track-table th{text-align:left;color:var(--muted);border-bottom:1px solid var(--border);padding:8px 12px;font-size:12px;font-weight:600}.track-table td{border-bottom:1px solid var(--border);vertical-align:middle;padding:10px 12px}.track-table tbody tr{transition:background-color .12s}.track-table tbody tr:hover{background:var(--surface)}.track-table tbody tr.linked{cursor:pointer}.track-table tbody tr.linked:hover .track-title{color:var(--accent-text)}.track-table .col-pos{width:48px;color:var(--faint)}.track-table .col-bpm,.track-table .col-delta,.track-table .col-key{text-align:center;white-space:nowrap}.track-table .col-dur{text-align:right;width:64px}.track-table .col-delta{width:80px}.track-table .col-bpm{width:104px;position:relative}.track-table .col-bpm .reanalyse{position:absolute;top:50%;left:4px;transform:translateY(-50%)}.track-table .col-key{width:112px}.track-table .col-play{text-align:right;width:48px}.track-title{font-weight:600}.favourite{width:26px;height:26px;color:var(--border);vertical-align:middle;cursor:pointer;background:0 0;border:0;flex:none;justify-content:center;align-items:center;margin:-4px 4px -4px -6px;padding:0;display:inline-flex}.favourite svg{stroke:var(--faint);transition:color .15s,transform .15s}.favourite:hover svg{stroke:var(--muted)}.favourite.on{color:var(--star)}.favourite.on svg{stroke:var(--star)}.favourite:active svg{transform:scale(.85)}.favourite.large{width:36px;height:36px;margin:0 4px 0 -6px}.title-line{align-items:center;display:flex}a.track-title:hover{color:var(--accent-text)}.track-sub{color:var(--muted);font-size:13px}.unknown{color:var(--faint)}.delta.close{color:var(--accent-text)}.multiple{color:var(--muted);margin-right:6px;font-size:11px;font-weight:600}.key{white-space:nowrap;align-items:center;gap:8px;display:inline-flex}.key-code{border-radius:var(--radius-sm);font-variant-numeric:tabular-nums;min-width:36px;color:oklch(var(--tag-l) var(--tag-c) var(--h));background:oklch(.65 .15 var(--h) / var(--tag-bg-a));place-items:center;padding:2px 6px;font-size:12px;font-weight:700;display:inline-grid}.key-name{color:var(--muted);font-size:13px}.harmonic{color:var(--accent-text);font-size:12px;font-weight:700}.key-code.flippable{cursor:pointer;-webkit-tap-highlight-color:transparent}.key-code.turning{animation:.3s ease-in-out key-flip}.key-code.named{letter-spacing:-.02em;white-space:nowrap;font-size:10px;overflow:hidden}.stat .key-code.named{font-size:13px}@keyframes key-flip{50%{transform:perspective(80px)rotateX(90deg)}}.stat .key-code{min-width:48px;padding:4px 8px;font-size:16px}.play{border:1px solid var(--border);background:var(--surface);cursor:pointer;border-radius:50%;place-items:center;width:32px;height:32px;transition:background-color .15s,border-color .3s,color .15s;display:inline-grid}.play:hover:not(:disabled,.playing,.loading){border-color:var(--accent);color:var(--accent-text)}.play.playing,.play.loading{background:var(--accent-soft);color:var(--accent-text);border-color:#0000}.play:disabled{opacity:.35;cursor:default}.play.large{width:44px;height:44px}.play{position:relative}.play-ring{pointer-events:none;width:calc(100% + 8px);height:calc(100% + 8px);position:absolute;inset:-4px;overflow:visible;transform:rotate(-90deg)}.play-ring circle{fill:none;stroke:var(--accent);stroke-width:2.5px;stroke-linecap:round;stroke-dasharray:1;stroke-dashoffset:calc(1 - var(--progress,0));opacity:0;transition:opacity .2s}.play.playing .play-ring circle,.play.loading .play-ring circle{opacity:1}.play.loading .play-ring{animation:.9s linear infinite spin}.play.loading .play-ring circle.done{stroke-dashoffset:.8px}.match-controls{flex-wrap:wrap;align-items:center;gap:20px;display:flex}.fader{--fader-width:132px;border-radius:var(--radius);border:1px solid var(--border);background:var(--surface);align-items:center;gap:14px;padding:8px 14px 6px;display:flex}.fader label{color:var(--muted);white-space:nowrap;font-size:13px}.fader output{white-space:nowrap;min-width:96px;font-size:14px;font-weight:600}.fader-body{width:var(--fader-width);padding-top:6px;position:relative}.fader-scale{background:repeating-linear-gradient(to right, var(--border) 0 1px, transparent 1px calc(100% / 8)) left / calc(100% + 1px) 100% no-repeat;height:16px;position:relative}.fader-scale:before{content:"";background:var(--surface-2);border-radius:2px;height:4px;position:absolute;top:6px;left:0;right:0;box-shadow:inset 0 1px 2px #00000059}.fader-band{background:var(--accent);border-radius:2px;height:4px;transition:width 80ms;position:absolute;top:6px;left:0}.fader-input{appearance:none;cursor:ew-resize;background:0 0;width:100%;height:28px;margin:0;position:absolute;top:0;left:0}.fader-input:focus-visible{outline:none}@media (pointer:coarse){.fader-body{touch-action:pan-y;padding:16px 0 10px}.fader-input{pointer-events:none;top:10px}}.fader-input::-webkit-slider-runnable-track{background:0 0;height:28px}.fader-input::-moz-range-track{background:0 0;height:28px}.fader-input::-webkit-slider-thumb{-webkit-appearance:none;background:linear-gradient(var(--accent), var(--accent)) center / 100% 2px no-repeat, repeating-linear-gradient(#4a4640 0 2px, #2e2b27 2px 4px);border:1px solid #0a0908;border-radius:3px;width:14px;height:26px;margin-top:1px;box-shadow:0 2px 4px #00000073}.fader-input::-moz-range-thumb{background:linear-gradient(var(--accent), var(--accent)) center / 100% 2px no-repeat, repeating-linear-gradient(#4a4640 0 2px, #2e2b27 2px 4px);border:1px solid #0a0908;border-radius:3px;width:14px;height:26px;box-shadow:0 2px 4px #00000073}.fader-input:focus-visible::-webkit-slider-thumb{outline:2px solid var(--accent);outline-offset:2px}.fader-input:focus-visible::-moz-range-thumb{outline:2px solid var(--accent);outline-offset:2px}.fader-labels{color:var(--faint);font-variant-numeric:tabular-nums;justify-content:space-between;margin-top:2px;font-size:10px;display:flex}.fader-labels span{justify-content:center;width:0;display:flex}.toggle{cursor:pointer;white-space:nowrap;align-items:center;gap:8px;font-size:14px;display:inline-flex}.toggle input{width:16px;height:16px;accent-color:var(--accent)}.updating{opacity:.55;transition:opacity .2s}.search{max-width:640px;margin-bottom:32px}.result-grid{grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:12px;display:grid}.result{border-radius:var(--radius);border:1px solid var(--border);background:var(--surface);grid-template-columns:64px 1fr auto;align-items:center;gap:14px;padding:10px;transition:border-color .15s,transform .15s;display:grid}.result:hover{border-color:var(--accent)}button.result{width:100%;font:inherit;color:inherit;text-align:left;cursor:pointer}.release-card{width:min(560px,100vw - 32px)}.release-card-head{grid-template-columns:120px minmax(0,1fr);align-items:start;gap:16px;display:grid}.release-card-text{flex-direction:column;gap:6px;min-width:0;display:flex}.release-card-text .muted{font-size:14px}.release-card-tags{flex-wrap:wrap;gap:6px;display:flex}.release-card-owned{color:var(--accent-text);font-size:14px;font-weight:600}.release-tracks{max-height:40vh;margin:16px 0 0;padding:0;font-size:14px;list-style:none;overflow-y:auto}.release-tracks li{border-top:1px solid var(--border);grid-template-columns:36px minmax(0,1fr) auto;gap:10px;padding:7px 0;display:grid}@media (width<=480px){.release-card-head{grid-template-columns:88px minmax(0,1fr)}}.result .cover{width:64px}.result-text{min-width:0}.result-text h3{white-space:nowrap;text-overflow:ellipsis;font-size:15px;overflow:hidden}.result-text p{color:var(--muted);white-space:nowrap;text-overflow:ellipsis;font-size:13px;overflow:hidden}.result .add{color:var(--accent-text);padding-right:6px;font-size:13px;font-weight:600}.result .add.added{color:var(--muted)}.added-list{flex-wrap:wrap;align-items:center;gap:8px;margin:-8px 0 20px;font-size:14px;display:flex}.added-list .chip{text-overflow:ellipsis;white-space:nowrap;max-width:100%;overflow:hidden}.batch-add textarea{border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--bg);width:100%;color:inherit;resize:vertical;padding:10px 12px;font:13px/1.5 ui-monospace,SFMono-Regular,Menlo,monospace}.state{text-align:center;color:var(--muted);flex-direction:column;align-items:center;gap:12px;padding:72px 24px;display:flex}.state h2{color:var(--text);font-size:20px}.state.error h2{color:var(--danger)}.state p{max-width:420px}.state .actions{gap:10px;margin-top:8px;display:flex}.vinyl{--size:min(280px, 70vw);width:var(--size);height:var(--size);box-shadow:var(--shadow), inset 0 0 0 2px #2a2824;background:repeating-radial-gradient(circle,#151412 0 1.1%,#24221f 1.3% 1.9%),#151412;border-radius:50%;place-items:center;animation:1.8s linear infinite spin;display:grid}.vinyl.small{--size:40px;box-shadow:none}.state .vinyl.small{animation:1.8s linear infinite spin,1.2s ease-in-out infinite record-pulse}.state .vinyl.small .label{animation:1.2s ease-in-out infinite label-glow}@keyframes record-pulse{50%{scale:1.14}}@keyframes label-glow{50%{box-shadow:0 0 0 2px #151412, 0 0 10px 2px color-mix(in srgb, var(--accent) 60%, transparent)}}.vinyl .label{background:var(--accent) center / cover;border-radius:50%;width:36%;height:36%;position:relative;box-shadow:0 0 0 2px #151412}.vinyl .label:after{content:"";background:var(--bg);border-radius:50%;position:absolute;inset:46%}.vinyl.art{background:repeating-radial-gradient(circle at center, #00000029 0 0.5%, transparent 0.5% 1.6%), var(--art) center / cover no-repeat, #151412;box-shadow:var(--shadow), inset 0 0 0 3px #00000059}.vinyl .hole{background:var(--bg);border-radius:50%;width:7%;height:7%;box-shadow:0 0 0 3px #0000004d}@keyframes spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.vinyl{animation-duration:8s}.state .vinyl.small{animation:8s linear infinite spin}.state .vinyl.small .label,.brand:hover svg{animation:none}.record-card .cover{transition:none}.cover.fade-in{animation:none}}@media (width<=720px){.page{padding:20px 16px 48px}.site-header .inner{gap:12px;padding:0 16px}.brand span{display:none}.record-grid{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:20px 14px}.hero,.hero.track-hero{grid-template-columns:1fr;gap:20px}.hero .cover{max-width:160px}.stats{gap:20px}.stat .value{font-size:22px}.play.large{width:36px;height:36px}.track-table .track-sub{white-space:nowrap;text-overflow:ellipsis;max-width:46vw;overflow:hidden}.track-table .col-dur,.track-table .key-name,.track-table .col-pos{display:none}.track-table td,.track-table th{padding-left:6px;padding-right:6px}.track-table .col-delta{width:60px}.track-table .col-bpm:has(.reanalyse){padding-left:28px}.track-table .col-bpm .reanalyse{left:2px}.track-table .col-play{width:40px}.track-table .col-key{width:auto}.match-controls,.fader{width:100%}.fader{flex-wrap:wrap;row-gap:4px}.fader-body{flex:1;min-width:120px}.result-grid{grid-template-columns:1fr}}.discogs-link{align-self:flex-start;align-items:center;gap:6px;margin-top:8px;display:inline-flex}.field.filter{width:min(100%,280px)}.reanalyse{vertical-align:middle;border-radius:var(--radius-sm);background:var(--accent-soft);width:24px;height:24px;color:var(--accent-text);cursor:pointer;border:1px solid #0000;justify-content:center;align-items:center;gap:6px;margin-right:8px;transition:border-color .15s,background-color .15s;display:inline-flex}.reanalyse:hover:not(:disabled){border-color:var(--accent)}.reanalyse.labelled{border-radius:var(--radius-sm);width:auto;height:auto;margin:8px 0 0;padding:4px 10px;font-size:12px;font-weight:600}.reanalyse.busy,.reanalyse:disabled{cursor:progress}.reanalyse.busy svg,.reanalyse-all.busy svg{animation:.9s linear infinite spin}.reanalyse.failed{background:color-mix(in srgb, var(--danger) 16%, transparent);color:var(--danger)}.reanalyse-all-wrap{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:8px 12px;display:inline-flex}.reanalyse-all.busy{color:var(--accent-text);align-items:center;gap:8px;font-size:14px;font-weight:600;display:inline-flex}.failed-note{color:var(--danger);font-size:13px}.skeleton{vertical-align:middle;background:linear-gradient(90deg, var(--surface-2) 0%, var(--border) 50%, var(--surface-2) 100%);background-size:200% 100%;border-radius:4px;width:40px;height:.9em;animation:1.4s ease-in-out infinite shimmer;display:inline-block}.skeleton.wide{width:64px}.stat .skeleton{width:88px;height:.8em}@keyframes shimmer{0%{background-position:100% 0}to{background-position:-100% 0}}.tempo{align-items:center;gap:6px;display:inline-flex}.refining{color:var(--accent-text);display:inline-flex}.refining svg,.queue-badge svg{animation:1.2s linear infinite spin}.uncertain{color:var(--muted);text-underline-offset:3px;cursor:help;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}.queue-badge{border-radius:var(--radius-sm);background:var(--accent-soft);color:var(--accent-text);white-space:nowrap;align-items:center;gap:6px;padding:4px 10px;font-size:12px;font-weight:600;display:inline-flex}@media (prefers-reduced-motion:reduce){.skeleton,.refining svg,.queue-badge svg{animation-duration:6s}}.site-nav a{white-space:nowrap}@media (width<=720px){.queue-badge .badge-label{display:none}.site-nav a{padding:6px 8px}}@media (width<=440px){.site-nav{gap:0}.site-nav a{padding:6px;font-size:14px}}@media (width<=360px){.site-nav>a[href=\/]{display:none}}.form{flex-direction:column;gap:16px;display:flex}.form-field{flex-direction:column;gap:6px;display:flex}.form-field>label,.form-field>.field-label{font-size:14px;font-weight:600}.confirm-box{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-2);flex-direction:column;gap:8px;padding:12px;font-size:14px;display:flex}.confirm-box .modal-actions{margin-top:0}.form-field input,.form-field textarea{border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--bg);padding:10px 12px;transition:border-color .15s,box-shadow .15s}.form-field textarea{font:inherit;color:inherit;resize:vertical}.form-field input:focus,.form-field textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft);outline:none}.form-field small{font-size:13px}.form-error{color:var(--danger);font-size:14px}.form-actions{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.saved{color:var(--accent-text);font-size:14px;font-weight:600}.auth-page{max-width:420px;padding-top:56px}.auth-card{border-radius:var(--radius);border:1px solid var(--border);background:var(--surface);box-shadow:var(--shadow);flex-direction:column;gap:20px;padding:32px;display:flex}.auth-card>svg{color:var(--accent)}.auth-card h1{letter-spacing:-.01em;font-size:24px}.auth-footer{text-align:center;margin-top:20px}.auth-footer .text-link{color:var(--accent-text);font-weight:600}.landing{overflow-x:clip}.landing-hero{grid-template-columns:1.2fr 1fr;align-items:center;gap:48px;padding:40px 0 64px;display:grid}.landing-text{flex-direction:column;gap:20px;display:flex}.landing-text h1{letter-spacing:-.03em;font-size:clamp(36px,6vw,60px);line-height:1.05}.lede{color:var(--muted);max-width:34em;font-size:18px}.landing-text .actions{flex-wrap:wrap;gap:12px;margin-top:8px;display:flex}.landing-disc{place-items:center;display:grid}.landing-disc .vinyl{--size:min(380px, 70vw)}.features{border-top:1px solid var(--border);grid-template-columns:repeat(3,1fr);gap:32px;margin:0;padding:32px 0 0;list-style:none;display:grid}.feature{flex-direction:column;gap:8px;display:flex}.feature-num{color:var(--accent-text);font-size:13px;font-weight:700}.feature h2{font-size:18px}@media (width<=720px){.landing-hero{grid-template-columns:1fr;gap:32px;padding-top:8px}.landing-disc{order:-1}.landing-disc .vinyl{--size:min(220px, 60vw)}.features{grid-template-columns:1fr;gap:24px}}.page.narrow,.admin-narrow{max-width:680px}.panels{flex-direction:column;gap:20px;display:flex}.panel{border-radius:var(--radius);border:1px solid var(--border);background:var(--surface);flex-direction:column;gap:18px;padding:24px;scroll-margin-top:76px;display:flex}.panel.danger{border-color:color-mix(in srgb, var(--danger) 40%, var(--border))}.panel-head{flex-direction:column;gap:4px;display:flex}.panel-head h2{font-size:18px}.panel-head p{font-size:14px}.devices{margin:0;padding:0;list-style:none}.device{border-top:1px solid var(--border);flex-direction:column;gap:2px;padding:12px 0;font-size:14px;display:flex}.device:first-child{border-top:none;padding-top:0}.device>div{align-items:center;gap:8px;display:flex}.device .chip{font-size:12px}.record-footer{border-top:1px solid var(--border);align-items:center;gap:12px;margin-top:40px;padding-top:24px;display:flex}.edit-previews{position:relative}.edit-previews summary{list-style:none}.edit-previews summary::-webkit-details-marker{display:none}.edit-previews .menu{z-index:5;min-width:220px;inset:auto auto calc(100% + 8px) 0}.edit-previews .menu button{flex-direction:column;gap:2px;display:flex}.edit-previews .menu .muted{font-size:13px}.user-menu{position:relative}.user-menu summary{cursor:pointer;border-radius:var(--radius-sm);list-style:none}.user-menu summary::-webkit-details-marker{display:none}.avatar{border-radius:var(--radius-sm);background:var(--accent);width:34px;height:34px;color:var(--on-accent);place-items:center;font-weight:700;display:grid}.user-menu[open] .avatar{box-shadow:0 0 0 3px var(--accent-soft)}.menu{border-radius:var(--radius);border:1px solid var(--border);background:var(--surface);min-width:250px;max-width:calc(100vw - 32px);box-shadow:var(--shadow);flex-direction:column;padding:6px;display:flex;position:absolute;top:calc(100% + 8px);right:0}.menu .menu-head{border-bottom:1px solid var(--border);border-radius:var(--radius-sm) var(--radius-sm) 0 0;overflow-wrap:anywhere;flex-direction:column;gap:2px;margin-bottom:4px;padding:8px 10px 10px;font-size:14px;display:flex}.menu-head .muted{font-size:13px}.menu-theme{justify-content:space-between;align-items:center;gap:12px;padding:6px 4px 6px 10px;font-size:14px;display:flex}.menu-theme .segmented{flex-wrap:nowrap}.menu .menu-theme button{padding:4px 9px;font-size:13px}.menu .menu-theme button:hover{background:0 0}.menu .menu-theme button.active{background:var(--surface-2)}.menu .menu-logout{border-top:1px solid var(--border);border-radius:0 0 var(--radius-sm) var(--radius-sm);margin-top:4px}.site-nav .nav-admin{align-items:center;gap:6px;margin-left:8px;display:inline-flex}.menu .menu-admin{align-items:center;gap:8px;display:none}@media (width<=720px){.site-nav .nav-admin{display:none}.menu .menu-admin{display:flex}}.count-badge{background:var(--accent);min-width:18px;height:18px;color:var(--on-accent);border-radius:9px;place-items:center;padding:0 5px;font-size:11px;font-weight:700;line-height:1;display:inline-grid}.menu a,.menu button{text-align:left;border-radius:var(--radius-sm);cursor:pointer;background:0 0;border:none;padding:8px 10px;font-size:14px}.menu a:hover,.menu button:hover{background:var(--surface-2)}.site-nav .button.small{color:var(--on-accent);margin-left:4px}.site-nav .button.small:hover{color:var(--on-accent);background:var(--accent)}@media (width<=720px){.site-header .inner{gap:12px;padding:0 16px}.auth-card{padding:24px 20px}}.tempo.edited:after,.key.edited:after,.length.edited:after{content:"";background:var(--accent);vertical-align:super;border-radius:50%;width:5px;height:5px;margin-left:4px;display:inline-block}.infotip-trigger.edited{column-gap:0}.infotip-trigger.edited:after,.key.edited:after{align-self:flex-start;margin-top:.2em;margin-left:2px}.key.edited:after{margin-left:-6px}.hero-tags{flex-wrap:wrap;align-items:center;gap:8px;margin-top:16px;display:flex}.form-row{grid-template-columns:1fr 1.6fr;gap:16px;display:grid}.form-row.three{grid-template-columns:1fr 1fr}.form-row.three>:nth-child(2){order:3;grid-column:1/-1}.listen p{font-size:14px}.listen-live{grid-template-columns:auto minmax(48px,1fr) auto;align-items:center;gap:10px 14px;display:grid}.listen-clock{align-items:center;gap:8px;font-weight:600;display:inline-flex}.rec-dot{background:var(--danger);border-radius:50%;width:10px;height:10px;animation:1.2s steps(2,jump-none) infinite rec-blink}@keyframes rec-blink{50%{opacity:.25}}.listen-meter{background:var(--surface-2);border-radius:3px;height:6px;overflow:hidden}.listen-meter span{background:var(--accent);transform-origin:0;height:100%;display:block;transform:scaleX(0)}.listen-actions{gap:8px;display:flex}@media (width<=560px){.listen-live{grid-template-columns:auto minmax(0,1fr)}.listen-actions{grid-column:1/-1;grid-template-columns:1fr 1fr;display:grid}.listen-actions .button,.listen-start .button{justify-content:center;width:100%}}.listen-unsure{margin-left:8px}.form-field.highlight input{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft);animation:1.2s 2 field-pulse}.form-field.highlight label{color:var(--accent-text)}@keyframes field-pulse{50%{box-shadow:0 0 0 6px var(--accent-soft)}}.form-field select{border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--bg);color:inherit;font:inherit;padding:10px 12px}.tag-input{border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--bg);flex-wrap:wrap;align-items:center;gap:6px;padding:6px 8px;display:flex}.tag-input:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.form-field .tag-input input{min-width:120px;box-shadow:none;background:0 0;border:none;flex:1;padding:4px}.chip.removable{align-items:center;gap:4px;padding-right:4px;display:inline-flex}.chip.removable button{color:var(--muted);cursor:pointer;background:0 0;border:none;padding:0 4px;font-size:15px;line-height:1}.chip.removable button:hover{color:var(--text)}.suggestions{flex-wrap:wrap;gap:6px;display:flex}.chip.suggestion{border:1px dashed var(--border);color:var(--muted);cursor:pointer;font:inherit;background:0 0;font-size:13px}.chip.suggestion:hover{color:var(--text);border-color:var(--accent)}.modal{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);width:min(520px,100vw - 32px);max-height:calc(100dvh - 32px);color:var(--text);box-shadow:var(--shadow);padding:0}.modal::backdrop{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#0000008c}.modal-body{flex-direction:column;gap:16px;padding:24px;display:flex}.modal-body h2{font-size:19px}.modal-head{z-index:2;background:var(--surface);justify-content:space-between;align-items:flex-start;gap:12px;margin:-24px -24px 0;padding:20px 20px 10px 24px;display:flex;position:sticky;top:0}.modal-head h2{overflow-wrap:anywhere;padding-top:3px}.modal-close{border-color:#0000;flex:none}.modal-actions{flex-wrap:wrap;justify-content:flex-end;gap:10px;display:flex}.modal-actions .reset{margin-right:auto}.infotip{display:inline-flex;position:relative}.infotip-trigger{font:inherit;color:inherit;cursor:help;background:0 0;border:none;align-items:center;gap:6px;padding:0;display:inline-flex}.infotip-bubble{z-index:20;border-radius:var(--radius);border:1px solid var(--border);background:var(--surface-2);width:max-content;max-width:min(260px,80vw);box-shadow:var(--shadow);color:var(--text);letter-spacing:normal;text-align:left;white-space:normal;padding:10px 12px;font-size:13px;font-weight:400;line-height:1.45;position:absolute;top:calc(100% + 8px);left:50%;transform:translate(-50%)}.help-tip{border:1px solid var(--border);width:18px;height:18px;color:var(--muted);vertical-align:middle;border-radius:50%;place-items:center;margin-left:6px;font-size:12px;font-weight:600;display:inline-grid}.help-tip:hover,.help-tip[aria-expanded=true]{color:var(--text);border-color:var(--muted)}.review-help{flex-direction:column;gap:6px;width:min(300px,80vw);display:flex}.options{border:none;flex-direction:column;gap:20px;margin:0;padding:0;display:flex}.option{cursor:pointer;grid-template-columns:auto 1fr;align-items:center;gap:4px 14px;font-size:14px;display:grid}.option>:not(.switch){grid-column:2}.option-description{max-width:60ch}.option.choice{cursor:default;grid-template-columns:1fr;padding-left:54px}.option.choice>*{grid-column:1;justify-self:start}.switch{appearance:none;background:var(--surface-2);border:1px solid var(--border);cursor:pointer;border-radius:11px;flex:none;width:40px;height:22px;margin:0;transition:background-color .15s;position:relative}.switch:after{content:"";background:var(--muted);border-radius:50%;width:16px;height:16px;transition:transform .15s,background-color .15s;position:absolute;top:2px;left:2px}.switch:checked{background:var(--accent);border-color:var(--accent)}.switch:checked:after{background:var(--on-accent);transform:translate(18px)}.notice{color:var(--accent-text);font-size:14px}.notice .text-link,.form-error .text-link{font:inherit;color:inherit;cursor:pointer;background:0 0;border:none;padding:0;text-decoration:underline}.import-progress{flex-direction:column;gap:6px;font-size:14px;display:flex}.import-progress progress{appearance:none;background:var(--surface-2);border:none;border-radius:3px;width:100%;height:6px;overflow:hidden}.import-progress progress::-webkit-progress-bar{background:var(--surface-2)}.import-progress progress::-webkit-progress-value{background:var(--accent)}.import-progress progress::-moz-progress-bar{background:var(--accent)}.failures{font-size:14px}.failures summary{cursor:pointer;color:var(--muted)}.failures ul{margin:8px 0 0;padding-left:18px}@media (width<=720px){.form-row,.form-row.three{grid-template-columns:1fr}}.details{flex-direction:column;display:flex}.detail-row{border-top:1px solid var(--border);justify-content:space-between;align-items:center;gap:16px;padding:12px 0;display:flex}.detail-row:first-child{border-top:none;padding-top:0}.detail-row>div{flex-direction:column;min-width:0;display:flex}.detail-label{color:var(--muted);font-size:13px}.detail-value{overflow-wrap:anywhere;font-weight:600}.collection-tools{align-items:center;gap:12px;max-width:100%;display:flex}.collection-tools .sort{flex:none}.collection-tools .sort select,.collection-tools .field input{height:42px;padding-top:0;padding-bottom:0}.collection-tools .field.filter{flex:0 280px;width:auto;min-width:0}@media (width<=720px){.collection-tools{width:100%}.collection-tools .field.filter{flex:auto}}.sort{color:var(--muted);align-items:center;gap:8px;font-size:14px;display:flex}.sort select,.key-picker input{border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--surface);color:var(--text);font:inherit;padding:9px 12px}.record-section+.record-section{margin-top:32px}.record-section h2{margin-bottom:14px;font-size:17px}.record-section h2 .muted{font-size:14px;font-weight:500}.key-picker{position:relative}.key-picker input{background:var(--bg);width:100%}.key-picker input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft);outline:none}.key-options{z-index:5;border-radius:var(--radius);border:1px solid var(--border);background:var(--surface-2);max-height:240px;box-shadow:var(--shadow);margin:0;padding:4px;list-style:none;position:absolute;top:calc(100% + 4px);left:0;right:0;overflow-y:auto}.key-options li{border-radius:var(--radius-sm);cursor:pointer;align-items:center;gap:10px;padding:7px 8px;font-size:14px;display:flex}.key-options li.active{background:var(--accent-soft)}.key-options li.none{color:var(--muted);cursor:default}.key-options .key-code{min-width:36px}.muted.small,.text-link.small{font-size:13px}.form-row-split{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.verify-banner{background:var(--accent-soft);color:var(--text);text-align:center;flex-wrap:wrap;justify-content:center;align-items:center;gap:6px 12px;padding:8px 16px;font-size:14px;display:flex}.verify-banner .text-link,.verify-banner button{font:inherit;color:var(--accent-text);cursor:pointer;background:0 0;border:none;padding:0;font-weight:600;text-decoration:underline}.chip.unconfirmed{color:var(--accent-text);border-color:color-mix(in srgb, var(--accent) 40%, var(--border));margin-left:8px;font-size:12px;font-weight:600}.invite-link{gap:8px;display:flex}.invite-link input{border-radius:var(--radius-sm);border:1px solid var(--accent);background:var(--bg);min-width:0;color:var(--text);font:inherit;flex:1;padding:9px 12px;font-size:14px}.invites{margin:0;padding:0;list-style:none}.invite{border-top:1px solid var(--border);align-items:center;gap:12px;padding:12px 0;font-size:14px;display:flex}.invite:first-child{border-top:none;padding-top:0}.invite>div{overflow-wrap:anywhere;flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.invite>div .chip{align-self:flex-start;font-size:12px}.invite-state{white-space:nowrap;font-size:13px}.invite-state.open{color:var(--accent-text);font-weight:600}.invite-state.off{color:var(--faint)}.invite-state.done{color:var(--muted)}@media (width<=720px){.invite{flex-wrap:wrap}}.segmented{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);flex-wrap:wrap;align-self:flex-start;gap:2px;padding:2px;display:inline-flex}.segmented button{border-radius:var(--radius-sm);color:var(--muted);font:inherit;cursor:pointer;background:0 0;border:0;padding:6px 12px;font-size:14px}.segmented button:hover{color:var(--text)}.segmented button.active{background:var(--surface-2);color:var(--text);font-weight:600}.accent-choice button{align-items:center;gap:8px;display:inline-flex}.accent-choice svg{color:var(--swatch);flex:none}@media (width<=560px){.accent-choice{grid-template-columns:1fr 1fr;align-self:stretch;display:grid}}.dashboard{flex-direction:column;gap:16px;display:flex}.dashboard-heading{letter-spacing:.08em;text-transform:uppercase;color:var(--muted);font-size:13px;font-weight:600}.dashboard .panels{margin-top:16px}.tiles{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px;display:grid}.tile{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);flex-direction:column;gap:2px;min-width:0;padding:16px;display:flex}.tile-label{color:var(--muted);font-size:12px}.tile-value{letter-spacing:-.02em;font-size:26px;font-weight:700}.tile-detail{color:var(--muted);font-size:12px}.tile.alert{border-color:color-mix(in srgb, var(--danger) 55%, var(--border));box-shadow:inset 3px 0 0 var(--danger)}.tile.alert .tile-detail{color:var(--text)}.data-table{border-collapse:collapse;width:100%;font-size:14px}.data-table th{text-align:left;color:var(--muted);border-bottom:1px solid var(--border);white-space:nowrap;padding:6px 10px;font-size:12px;font-weight:600}.data-table td{border-bottom:1px solid var(--border);white-space:nowrap;padding:8px 10px}.data-table tr:last-child td{border-bottom:none}.data-table .num{text-align:right;font-variant-numeric:tabular-nums}.data-table td.wrap{white-space:normal;overflow-wrap:anywhere;min-width:240px}.data-table .chip{margin-left:8px}.events{max-height:560px;margin:0;padding:0;list-style:none;overflow-y:auto}.event{border-top:1px solid var(--border);grid-template-columns:104px 1fr auto;align-items:baseline;gap:12px;padding:10px 0;font-size:14px;display:grid}.event:first-child{border-top:none;padding-top:0}.event-body{flex-direction:column;gap:2px;min-width:0;display:flex}.event-body .muted{font-size:12px}.event-message{overflow-wrap:anywhere}.event-time{white-space:nowrap;font-size:12px}.event-kind{color:var(--muted);font-size:12px;font-weight:600}.event-kind.rate_limit,.event-kind.throttle{color:var(--accent-text)}.event-kind.error{color:var(--danger)}@media (width<=720px){.event{grid-template-columns:1fr auto}.event-body{grid-area:2/1/auto/-1}}.header-actions{flex-wrap:wrap;align-items:center;gap:12px;max-width:100%;display:flex}.collection-header{grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"title add""tools tools";align-items:center;gap:14px 16px;display:grid}.collection-title{grid-area:title}.collection-add{grid-area:add;justify-self:end}.collection-header .collection-tools{grid-area:tools;justify-self:end}@media (width>=900px){.collection-header{grid-template-columns:auto minmax(0,1fr) auto;grid-template-areas:"title tools add";gap:16px 24px}}@media (width<=720px){.collection-header .collection-tools{justify-self:stretch}}.sort.boxed{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);gap:0;height:42px;padding-left:12px;transition:border-color .15s,box-shadow .15s}.sort.boxed:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.sort.boxed>span{border-right:1px solid var(--border);color:var(--faint);flex-direction:column;justify-content:center;align-self:stretch;padding-right:10px;font-size:11px;line-height:1.1;display:flex}.collection-tools .sort.boxed select{background:0 0;border:none;outline:none;height:100%;padding:0 10px}.setlist-cards{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px;margin:0;padding:0;list-style:none;display:grid}.setlist-card{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);flex-direction:column;gap:4px;height:100%;padding:16px 18px;font-size:14px;transition:border-color .15s;display:flex}.setlist-card:hover{border-color:var(--accent)}.setlist-card strong{font-size:16px}.setlist-card-description{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.setlist-header-text{text-box:trim-both cap alphabetic}.setlist-header-text .eyebrow{width:fit-content;display:block}.continue-text strong,.missing-text strong{text-box:trim-start cap alphabetic}.setlist-description{white-space:pre-line;max-width:70ch;margin-top:6px}.setlist-table .col-grip{width:36px;padding-right:0}.setlist-table .col-mix{width:120px}.setlist-table .col-remove{text-align:right;width:40px}.grip{border-radius:var(--radius-sm);width:28px;height:32px;color:var(--faint);cursor:grab;touch-action:none;background:0 0;border:0;justify-content:center;align-items:center;margin:-4px 0;padding:0;display:inline-flex}.grip:hover,.grip:focus-visible{color:var(--text);background:var(--surface-2)}.setlist-table.dragging,.setlist-table.dragging .grip{cursor:grabbing;-webkit-user-select:none;user-select:none}.setlist-table tr.lifted td{background:var(--surface-2)}.setlist-table tr.lifted td:first-child{box-shadow:inset 3px 0 0 var(--accent)}.remove-track,.add-to-setlist{border-radius:var(--radius-sm);width:28px;height:28px;color:var(--faint);cursor:pointer;vertical-align:middle;background:0 0;border:1px solid #0000;justify-content:center;align-items:center;padding:0;display:inline-flex}.remove-track:hover{color:var(--danger);border-color:var(--border)}.add-to-setlist{border:1px solid var(--border);color:var(--accent-text);border-radius:6px}.add-to-setlist:hover{border-color:var(--accent);background:var(--accent-soft)}.track-table .col-add{text-align:center;width:44px}.pitch{font-variant-numeric:tabular-nums}.pitch.far{color:var(--danger);font-weight:600}.set-pitch{align-items:center;gap:2px;display:inline-flex}.set-bpm{border-radius:var(--radius-sm);color:inherit;font:inherit;text-align:left;white-space:nowrap;cursor:pointer;background:0 0;border:1px dashed #0000;margin:-2px -4px;padding:2px 4px}.set-bpm:hover,.set-bpm:focus-visible{border-color:var(--border)}.set-bpm.set{color:var(--accent-text);font-weight:600}.pitch-bpm{color:var(--muted)}.set-bpm.set .pitch-bpm{color:inherit}.set-follow{color:var(--faint);cursor:pointer;background:0 0;border:0;padding:0 4px;font-size:15px;line-height:1}.set-follow:hover{color:var(--text)}.set-key{white-space:nowrap;align-items:center;gap:6px;display:inline-flex}.set-key.clash .moved-key .key-code{box-shadow:0 0 0 1.5px var(--danger)}.set-key.clash:not(:has(.moved-key)) .key-code{box-shadow:0 0 0 1.5px var(--danger)}.clash-tip{background:var(--danger);width:16px;height:16px;color:var(--bg);cursor:pointer;border-radius:50%;place-items:center;font-size:11px;font-weight:700;line-height:1;display:inline-grid;position:relative}.clash-tip:before{content:"";position:absolute;inset:-10px}.clash-tip:hover,.clash-tip[aria-expanded=true]{box-shadow:0 0 0 3px color-mix(in srgb, var(--danger) 30%, transparent)}.clash-help{white-space:normal;max-width:min(220px,85vw - 26px);display:block}.set-bpm-input{border:1px solid var(--accent);border-radius:var(--radius-sm);background:var(--bg);width:72px;color:inherit;font:inherit;text-align:right;padding:4px 6px}.new-setlist{gap:8px;display:flex}.new-setlist input{border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--bg);min-width:0;color:var(--text);font:inherit;flex:1;padding:9px 12px}.new-setlist input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft);outline:none}.setlist-picker,.track-results{border-top:1px solid var(--border);max-height:min(50dvh,420px);margin:0;padding:0;list-style:none;overflow-y:auto}.setlist-picker li{border-bottom:1px solid var(--border)}.setlist-picker button{width:100%;color:inherit;font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;justify-content:space-between;align-items:center;gap:12px;padding:10px 4px;display:flex}.setlist-picker button:hover{background:var(--surface-2)}.setlist-picker-name{flex-direction:column;min-width:0;font-size:14px;display:flex}.setlist-picker-name .muted{font-size:12px}.setlist-picker-state{color:var(--accent-text);flex:none;font-size:13px;font-weight:600}.setlist-picker-state.done{color:var(--muted)}.modal.wide{width:min(720px,100vw - 32px)}.track-results{flex-direction:column;gap:8px;padding-top:12px;display:flex}.track-results .track-result{border:1px solid var(--border);border-radius:var(--radius);background:var(--bg);grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px;padding:10px 12px;font-size:14px;display:grid}.track-result-text{flex-direction:column;gap:2px;min-width:0;display:flex}.track-result-text .muted{text-overflow:ellipsis;white-space:nowrap;font-size:12px;overflow:hidden}.track-result-meta{flex-wrap:wrap;align-items:center;gap:4px 12px;margin-top:2px;font-size:13px;display:flex}.setlist-table .col-bpm{width:72px}.setlist-table .col-mix{text-align:left;width:150px}.setlist-table .col-key{text-align:left;width:130px}@media (width<=720px){.setlist-table,.setlist-table tbody{display:block}.setlist-table thead{display:none}.setlist-table tr{border-bottom:1px solid var(--border);grid-template-columns:22px 3.1em 8.2em minmax(0,1fr) auto 34px 26px;grid-template-areas:"grip title title title dur play remove""grip bpm pitch key key key key";align-items:center;gap:4px 6px;padding:10px 0;display:grid}.track-table.setlist-table td{text-align:left;border:0;width:auto;min-width:0;padding:0;display:block}.track-table.setlist-table td.col-pos{display:none}.setlist-table .col-grip{grid-area:grip}.track-table.setlist-table td.col-title{grid-area:title}.setlist-table .col-bpm{grid-area:bpm}.setlist-table .col-mix{grid-area:pitch}.setlist-table .col-key{grid-area:key}.track-table.setlist-table .col-dur{text-align:right;grid-area:dur;display:block}.setlist-table .col-play{grid-area:play}.setlist-table .col-remove{grid-area:remove}.setlist-table .col-bpm,.setlist-table .col-mix,.setlist-table .col-key{font-size:14px}.setlist-table .grip,.setlist-table .remove-track{width:24px}.track-table.setlist-table .track-sub{white-space:normal;max-width:none}.setlist-table tr.lifted{background:var(--surface-2);box-shadow:inset 3px 0 0 var(--accent)}.setlist-table tr.lifted td{box-shadow:none;background:0 0}}.chips.styles{align-items:center}.edited-note{font-size:12px}.pending-email{border-radius:var(--radius-sm);background:var(--accent-soft);overflow-wrap:anywhere;flex-direction:column;gap:6px;padding:12px 14px;font-size:14px;display:flex}.pending-email-actions{gap:16px;display:flex}.pending-email .text-link{font:inherit;cursor:pointer;background:0 0;border:none;padding:0;font-weight:600}.pending-email .text-link:disabled{color:var(--muted);cursor:default;text-decoration:none}.updates{text-align:center;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);flex-direction:column;align-items:center;gap:8px;width:fit-content;max-width:100%;margin:56px auto 0;padding:28px 32px;display:flex}.updates h2{font-size:20px}.updates-form{justify-content:center;align-items:stretch;width:min(100%,400px);margin-top:8px;display:flex}.updates-form input{border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--bg);min-width:0;color:var(--text);font:inherit;flex:auto;padding:10px 12px}.updates-form input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft);outline:none}.updates-form input{border-right:none;border-top-right-radius:0;border-bottom-right-radius:0}.updates-form .button{border-top-left-radius:0;border-bottom-left-radius:0;flex:none}.waitlist{margin:0;padding:0;font-size:14px;list-style:none}.waitlist li{border-top:1px solid var(--border);align-items:center;gap:12px;padding:10px 0;display:flex}.waitlist li:first-child{border-top:none;padding-top:0}.waitlist .waitlist-email{overflow-wrap:anywhere;flex:1;min-width:0}.match-filters{flex-direction:column;gap:12px;display:flex}.filter-switch{white-space:nowrap;cursor:pointer;align-items:center;gap:10px;font-size:14px;display:inline-flex}.filter-switch.disabled{color:var(--faint);cursor:not-allowed}.filter-switch.disabled .switch{opacity:.5;cursor:not-allowed}.style-picks{flex-wrap:wrap;align-items:center;gap:6px;margin:-4px 0 14px;font-size:13px;display:flex}.chip.pick{font:inherit;cursor:pointer;color:var(--faint);background:0 0;font-size:12px;text-decoration:line-through}.chip.pick.on{color:var(--text);background:var(--accent-soft);border-color:color-mix(in srgb, var(--accent) 50%, var(--border));text-decoration:none}@media (width<=720px){.match-filters{flex-flow:wrap;gap:12px 24px;padding-top:4px}}.matches-header{flex-wrap:nowrap;align-items:flex-start}.matches-summary{flex:280px;min-width:0}.matches-summary p{min-height:3em;transition:opacity .15s}.matches-summary p.stale{opacity:.55}@media (width<=720px){.matches-header{flex-wrap:wrap}.matches-summary{flex-basis:100%}}.collection-tabs{margin:4px 0 20px}.segmented a{border-radius:var(--radius-sm);color:var(--muted);padding:6px 12px;font-size:14px}.segmented a:hover{color:var(--text)}.segmented a.active{background:var(--surface-2);color:var(--text);font-weight:600}.artist-list{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:10px;margin:0;padding:0;list-style:none;display:grid}.artist-item{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);align-items:center;gap:12px;padding:10px;transition:border-color .15s;display:flex}.artist-item:hover{border-color:var(--accent)}.artist-item .cover{flex:none;width:48px;height:48px}.artist-text{flex-direction:column;gap:2px;min-width:0;font-size:14px;display:flex}.artist-text strong{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.artist-starred{color:var(--star);font-variant-numeric:tabular-nums;align-items:center;gap:4px;margin-left:auto;font-size:13px;display:inline-flex}.find-preview-search{gap:8px;margin:12px 0 16px;display:flex}.find-preview-search .field{flex:1;min-width:0}.found-previews{flex-direction:column;gap:8px;max-height:min(55vh,520px);margin:0;padding:0;list-style:none;display:flex;overflow-y:auto}.found-preview{border:1px solid var(--border);border-radius:var(--radius);grid-template-columns:48px minmax(0,1fr) auto auto;align-items:center;gap:12px;padding:8px;display:grid}.found-preview-text{flex-direction:column;gap:2px;min-width:0;font-size:14px;display:flex}.found-preview-text>*{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}@media (width<=480px){.found-preview{grid-template-columns:40px minmax(0,1fr) auto}.found-preview .button{grid-column:2/-1;justify-self:start}}.album-previews-album{grid-template-columns:48px minmax(0,1fr);align-items:center;gap:12px;margin-bottom:12px;display:grid}.album-previews-tracks{flex-direction:column;gap:8px;max-height:min(50vh,480px);margin:0;padding:0;list-style:none;display:flex;overflow-y:auto}.album-previews-tracks li{border:1px solid var(--border);border-radius:var(--radius);grid-template-columns:minmax(0,1fr) minmax(0,1.2fr) 36px;align-items:center;gap:12px;padding:8px;display:grid}.album-previews-tracks select{width:100%}.album-previews-album.shop{grid-template-columns:minmax(0,1fr)}.album-previews-tracks.shop li{grid-template-columns:minmax(0,1fr) minmax(0,1.2fr)}@media (width<=480px){.album-previews-tracks.shop li{grid-template-columns:minmax(0,1fr)}}.album-previews-album.shop a{align-items:center;gap:4px;display:inline-flex}@media (width<=480px){.album-previews-tracks li{grid-template-columns:minmax(0,1fr) 36px}.album-previews-tracks .form-field{grid-area:2/1}}@media (pointer:coarse){.favourite,.add-to-setlist,.play:not(.large){position:relative}.favourite:before,.add-to-setlist:before,.play:not(.large):before{content:"";position:absolute;inset:-6px}}.title-cell{grid-template-columns:auto minmax(0,1fr) auto;align-items:center;display:grid}.title-cell .favourite{margin:0 6px 0 -6px}.title-cell:has(.track-sub) .favourite{grid-row:1/span 2}.title-cell .track-title,.title-cell .track-sub{grid-column:2}.unsure-preview{color:var(--accent-text);font:inherit;cursor:pointer;background:0 0;border:none;align-items:center;gap:6px;padding:0;display:inline-flex}.unsure-mark{background:var(--accent);width:18px;height:18px;color:var(--bg);border-radius:50%;flex:none;place-items:center;font-size:12px;font-weight:700;line-height:1;display:inline-grid;position:relative}.unsure-mark:before{content:"";position:absolute;inset:-10px}.unsure-preview:hover .unsure-mark{box-shadow:0 0 0 3px color-mix(in srgb, var(--accent) 30%, transparent)}.title-cell .unsure-preview{grid-area:1/3;margin-left:10px}.stat .unsure-preview.labelled{font-size:12px}.bpm-key{flex-direction:column;align-items:center;gap:4px;display:flex}.bpm-key-key{align-items:center;font-size:13px;display:inline-flex}.track-table .col-bpm .bpm-key{min-width:72px}.setlist-picker-where{color:var(--accent-text);font-size:12px}.add-to-setlist.added{border-color:var(--accent);background:var(--accent-soft);font-weight:700}.chip.genre{color:oklch(var(--tag-l) var(--tag-c) var(--h));background:oklch(.65 .15 var(--h) / var(--tag-bg-a));border-color:oklch(.65 .08 var(--h) / .3)}.bpm-key-delta{font-size:12px;display:none}@media (width<=720px){.track-table.matches .col-delta{display:none}.bpm-key-delta{display:inline}.track-table .col-bpm .bpm-key{min-width:0}.track-table .col-add{width:34px}.track-table .col-bpm{width:64px}.track-table td.col-title{min-width:130px}}.setlist-header{grid-template-columns:auto minmax(0,1fr) auto;align-items:end;gap:20px;display:grid}.setlist-art{aspect-ratio:1;border-radius:var(--radius-sm);width:132px;max-width:220px;box-shadow:var(--shadow);background:var(--surface-2);position:relative;overflow:hidden}.setlist-art .cover{opacity:0;width:100%;height:100%;transition:opacity .9s;position:absolute;inset:0}.setlist-art .cover.shown,.setlist-art .cover.placeholder{opacity:1}@media (width<=720px){.setlist-header{grid-template-columns:auto minmax(0,1fr);align-items:center;gap:14px 16px}.setlist-art{width:88px;max-width:132px}.setlist-header .header-actions{grid-column:1/-1}}.home{flex-direction:column;gap:36px;display:flex}.home>.eyebrow{margin-bottom:-24px}.home-top{grid-template-columns:minmax(0,2fr) minmax(0,1fr);align-items:start;gap:20px;display:grid}.now-playing,.home-card{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);flex-direction:column;gap:8px;padding:24px;display:flex}.now-playing h2{letter-spacing:-.02em;font-size:26px}.home-card h2,.home-heading{letter-spacing:.08em;text-transform:uppercase;color:var(--muted);font-size:13px;font-weight:600}.home-card{align-items:flex-start}.now-playing-search{margin-top:8px;position:relative}.now-playing-results{border:1px solid var(--border);border-radius:var(--radius);background:var(--bg);margin:8px 0 0;padding:4px;list-style:none}.now-playing-results li{border-radius:var(--radius-sm);cursor:pointer;grid-template-columns:40px minmax(0,1fr) auto;align-items:center;gap:12px;padding:6px 8px;display:grid}.now-playing-results li.active{background:var(--surface-2)}.now-playing-results li.empty{cursor:default;display:block}.now-playing-text{flex-direction:column;min-width:0;font-size:14px;display:flex}.now-playing-text .muted{text-overflow:ellipsis;white-space:nowrap;font-size:12px;overflow:hidden}.now-playing-meta{align-items:center;gap:10px;font-size:14px;display:inline-flex}.continue-setlist{align-items:center;gap:16px;width:100%;display:flex}.continue-setlist .setlist-art{flex:none;width:96px;max-width:160px}.continue-text{flex-direction:column;align-items:flex-start;gap:2px;min-width:0;font-size:14px;display:flex}.continue-text strong{font-size:17px}.continue-text .button{margin-top:8px}.continue-setlist:hover strong{color:var(--accent-text)}.home-heading-row{align-items:center;gap:6px 14px;display:flex}.home-heading-text{flex-wrap:wrap;align-items:baseline;gap:2px 14px;min-width:0;display:flex}@media (width<=560px){.home-heading-text{flex-direction:column}}.home-heading-row .muted{font-size:13px}.home-heading-row .text-link{font:inherit;cursor:pointer;background:0 0;border:none;margin-left:auto;padding:0;font-size:14px}.recent-row{scroll-snap-type:x proximity;scrollbar-width:none;gap:16px;margin:12px 0 0;padding:0 0 8px;list-style:none;display:flex;overflow-x:auto}.recent-row::-webkit-scrollbar{display:none}.row-arrows{gap:6px;display:none}@media (hover:hover) and (pointer:fine){.row-arrows{display:inline-flex}}.icon-button:disabled{opacity:.35;cursor:default}.recent-row li{scroll-snap-align:start;flex:none;width:140px}.recent-item{flex-direction:column;gap:2px;font-size:14px;display:flex}.recent-item .cover{margin-bottom:6px;transition:transform .15s}.recent-item:hover .cover{transform:translateY(-2px)}.recent-item strong,.recent-item .muted{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.recent-item .muted{font-size:12px}.missing-list{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:10px;margin:12px 0 0;padding:0;list-style:none;display:grid}.missing-item{grid-template-columns:min(var(--art,56px), 96px) minmax(0, 1fr);border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);align-items:center;gap:12px;height:100%;padding:10px;transition:border-color .15s;display:grid}.missing-item:hover{border-color:var(--accent)}.missing-text{flex-direction:column;gap:2px;min-width:0;font-size:14px;display:flex}.missing-text strong,.missing-text>.muted{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.missing-text>.muted{font-size:12px}.missing-chips{flex-wrap:wrap;gap:4px;margin-top:4px;display:flex}.missing-chips .chip{color:var(--accent-text);border-color:color-mix(in srgb, var(--accent) 40%, var(--border));padding:1px 8px;font-size:11px}@media (width<=720px){.home{gap:28px}.home-top{grid-template-columns:1fr}.now-playing,.home-card{padding:18px}.now-playing h2{font-size:22px}.now-playing-results li{grid-template-columns:36px minmax(0,1fr) auto;gap:10px}.recent-row li{width:112px}.updates{padding:24px 16px}}.not-found{text-align:center;flex-direction:column;align-items:center;gap:12px;padding-top:48px;display:flex}.not-found h1{margin-top:12px;font-size:28px}.not-found .button{margin-top:8px}.broken-record{--size:min(220px, 60vw);width:var(--size);height:var(--size);margin-bottom:48px;position:relative}.broken-spin{animation:1.6s cubic-bezier(.2,.6,.4,1) forwards wind-down;position:absolute;inset:0}.broken-record .half{background:repeating-radial-gradient(circle,#151412 0 1.1%,#24221f 1.3% 1.9%),#151412;border-radius:50%;place-items:center;display:grid;position:absolute;inset:0;box-shadow:inset 0 0 0 2px #2a2824}.broken-record .half .label{background:var(--accent);border-radius:50%;width:36%;height:36%}.broken-record .half.left{clip-path:polygon(0 0,52% 0,46% 18%,55% 34%,47% 50%,56% 66%,48% 82%,53% 100%,0 100%);animation:1.1s cubic-bezier(.5,0,.75,.4) 1.6s forwards fall-left}.broken-record .half.right{clip-path:polygon(52% 0,100% 0,100% 100%,53% 100%,48% 82%,56% 66%,47% 50%,55% 34%,46% 18%);animation:1.1s cubic-bezier(.5,0,.75,.4) 1.7s forwards fall-right}@keyframes wind-down{0%{transform:rotate(0)}to{transform:rotate(720deg)}}@keyframes fall-left{to{transform:translate(-18%,22%)rotate(-24deg)}}@keyframes fall-right{to{transform:translate(16%,28%)rotate(19deg)}}@media (prefers-reduced-motion:reduce){.broken-spin{animation:none}.broken-record .half.left{animation:none;transform:translate(-18%,22%)rotate(-24deg)}.broken-record .half.right{animation:none;transform:translate(16%,28%)rotate(19deg)}}.puff-record{--size:min(170px, 50vw);width:var(--size);height:var(--size);perspective:700px;margin-bottom:28px;position:relative}.puff-flip{animation:1.9s cubic-bezier(.25,.6,.35,1) forwards coin-flip;position:absolute;inset:0}.puff-disc{background:repeating-radial-gradient(circle,#151412 0 1.1%,#24221f 1.3% 1.9%),#151412;border-radius:50%;place-items:center;animation:.35s ease-in 1.9s forwards puff-out;display:grid;position:absolute;inset:0;box-shadow:inset 0 0 0 2px #2a2824}.puff-disc .label{background:var(--accent);border-radius:50%;width:36%;height:36%}.puff i{background:radial-gradient(circle, color-mix(in srgb, var(--muted) 55%, transparent), transparent 70%);opacity:0;border-radius:50%;width:34%;height:34%;margin:-17% 0 0 -17%;animation:.9s ease-out 1.95s forwards wisp;position:absolute;top:50%;left:50%}@keyframes coin-flip{0%{transform:rotateY(0)}to{transform:rotateY(1080deg)}}@keyframes puff-out{to{opacity:0;transform:scale(.15)}}@keyframes wisp{0%{opacity:.9;transform:rotate(var(--a)) translateY(0) scale(.6)}to{opacity:0;transform:rotate(var(--a)) translateY(-70%) scale(2.2)}}@media (prefers-reduced-motion:reduce){.puff-flip,.puff-disc,.puff i{animation:none}.puff-disc{opacity:.35}}.home-heading-actions{align-items:center;gap:12px;margin-left:auto;display:inline-flex}.home-heading-actions .text-link{font-size:14px}.icon-button{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);width:30px;height:30px;color:var(--muted);cursor:pointer;justify-content:center;align-items:center;padding:0;display:inline-flex}.icon-button:hover{color:var(--accent-text);border-color:var(--accent)}.icon-button:not(.still):active svg{transition:transform .2s;transform:rotate(120deg)}.icon-button.active{border-color:var(--accent);color:var(--accent-text)}.missing-toggles{flex-wrap:wrap;gap:8px;margin:12px 0 0;display:flex}.toggle-chip{border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--muted);font:inherit;cursor:pointer;background:0 0;align-items:center;gap:8px;padding:5px 10px;font-size:13px;transition:background-color .15s,border-color .15s,color .15s;display:inline-flex}.toggle-chip[aria-pressed=true]{border-color:var(--accent);background:var(--accent-soft);color:var(--accent-text)}.toggle-chip .count{font-variant-numeric:tabular-nums;opacity:.8}.missing-filter{margin-bottom:4px}.setlist-card{flex-direction:row;align-items:center;gap:14px}.setlist-card .setlist-art{width:64px;box-shadow:none;flex:none}.setlist-card-text{flex-direction:column;gap:4px;min-width:0;display:flex}.duplicate-warning{flex-direction:column;gap:14px;font-size:15px;display:flex}.site-footer{max-width:var(--page);padding:18px 24px max(18px, env(safe-area-inset-bottom));border-top:1px solid var(--border);color:var(--faint);text-align:center;margin:auto auto 0;font-size:12px;line-height:1.4}.site-footer p{margin:0}.site-footer a{color:var(--muted);text-underline-offset:2px;text-decoration:underline}.site-footer a:hover{color:var(--accent-text)}.site-footer-name{color:var(--muted);font-weight:700}.about .panel p+p{margin-top:10px}.reported-clips{margin:0;padding:0;list-style:none}.reported-clip{border-top:1px solid var(--border);grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:6px 14px;padding:12px 0;display:grid}.reported-clip:first-child{border-top:none;padding-top:0}.reported-clip-text{flex-direction:column;gap:2px;min-width:0;font-size:14px;display:flex}.reported-clip-text .muted{font-size:12px}.review-clips{flex-direction:column;grid-column:1/-1;gap:6px;margin:4px 0 0;padding:0;list-style:none;display:flex}.review-clips li{grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:12px;font-size:13px;display:grid}.reported-clip.combined{grid-template-columns:minmax(0,1fr) auto}.review-kind{border-radius:var(--radius-sm);letter-spacing:.04em;text-transform:uppercase;align-self:flex-start;margin-bottom:2px;padding:1px 6px;font-size:11px;font-weight:600}.review-kind.reported{background:color-mix(in srgb, var(--danger) 16%, transparent);color:var(--danger)}.review-kind.picked{background:var(--accent-soft);color:var(--accent-text)}.reported-clip-actions{flex-wrap:wrap;justify-content:flex-end;gap:8px;display:flex}.reported-clip>.form-error{grid-column:2/-1}@media (width<=720px){.reported-clip{grid-template-columns:auto minmax(0,1fr)}.reported-clip-actions{grid-column:1/-1;justify-content:flex-start}.reported-clip>.form-error{grid-column:1/-1}}.analysis-status-head{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.analysis-status-head h2{margin:0}.analysis-status.warn{box-shadow:inset 3px 0 0 var(--accent)}.analysis-status.down{border-color:color-mix(in srgb, var(--danger) 55%, var(--border));box-shadow:inset 3px 0 0 var(--danger)}.status-pill{background:var(--surface-2);border-radius:999px;align-items:center;gap:6px;padding:2px 10px;font-size:12px;font-weight:600;display:inline-flex}.status-pill:before{content:"";background:currentColor;border-radius:50%;width:7px;height:7px}.status-pill.ok{color:var(--ok);background:color-mix(in srgb, var(--ok) 14%, transparent)}.status-pill.warn{color:var(--accent-text);background:var(--accent-soft)}.status-pill.down{color:var(--danger);background:color-mix(in srgb, var(--danger) 14%, transparent)}.analysis-status-detail{overflow-wrap:anywhere;margin:8px 0 0;font-size:14px}.analysis-facts{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:10px 20px;margin:14px 0 0;display:grid}.analysis-facts div{min-width:0}.analysis-facts .wide{grid-column:1/-1}.analysis-facts dt{color:var(--muted);font-size:12px}.analysis-facts dd{overflow-wrap:anywhere;margin:2px 0 0;font-size:14px}.inbound-mail{margin:12px 0 0;padding:0;list-style:none}.inbound-mail li{border-top:1px solid var(--border);grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px;padding:10px 0;font-size:14px;display:grid}.inbound-mail-text{overflow-wrap:anywhere;flex-direction:column;gap:2px;min-width:0;display:flex}.inbound-mail-text .muted,.inbound-mail-meta{font-size:12px}.inbound-mail-meta{text-align:right;white-space:nowrap}main.page{animation:.22s ease-out fade-in}.record-grid,.track-table,.result-grid,.missing-list,.setlist-cards,.tiles,.reported-clips,.inbound-mail,.events,.recent-row,.release-tracks,.now-playing-results,.track-results,.data-table{animation:.2s ease-out fade-in}@keyframes fade-in{0%{opacity:0}}.modal[open]{animation:.18s ease-out modal-in}.modal[open]::backdrop{animation:.18s ease-out fade-in}@keyframes modal-in{0%{opacity:0;transform:translateY(8px)scale(.98)}}.modal-ghost{z-index:1000;pointer-events:none;background:#0000008c;place-items:center;animation:.18s ease-in forwards ghost-out;display:grid;position:fixed;inset:0}.modal-ghost>.modal{overflow:hidden}@keyframes ghost-out{to{opacity:0}}@media (prefers-reduced-motion:reduce){main.page,.record-grid,.track-table,.result-grid,.missing-list,.setlist-cards,.tiles,.reported-clips,.inbound-mail,.events,.recent-row,.release-tracks,.now-playing-results,.track-results,.data-table,.modal[open],.modal[open]::backdrop,.form-field.highlight input,.rec-dot{animation:none}.modal-ghost{display:none}}.perform-header{align-items:center}.perform-header .button{gap:8px}.perform-header .perform-status{flex:1;width:auto;min-width:0;margin-bottom:0}.perform-status{border:1px solid var(--border);background:var(--surface);border-radius:999px;align-items:center;width:100%;height:30px;margin-bottom:16px;display:flex;position:relative;overflow:hidden}.perform-status-text{color:var(--text);white-space:nowrap;text-overflow:ellipsis;padding:0 14px;font-size:13px;font-weight:600;position:relative;overflow:hidden}.perform-block{background:var(--accent-soft);border-right:2px solid var(--accent);transform-origin:0;animation:linear forwards perform-fill;position:absolute;inset:0}@keyframes perform-fill{0%{transform:scaleX(0)}to{transform:scaleX(1)}}@media (prefers-reduced-motion:reduce){.perform-block{border-right:0;animation:none;transform:none}}.perform-tabs{display:none}.perform-grid{grid-template-columns:minmax(0,1.3fr) minmax(0,1.4fr) minmax(0,1fr);align-items:start;gap:20px;display:grid}.perform-panel{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);flex-direction:column;gap:12px;min-width:0;padding:20px;display:flex}.perform-heading{letter-spacing:.08em;text-transform:uppercase;color:var(--muted);font-size:13px;font-weight:600}.perform-heading .num{margin-left:4px}.perform-reading{flex-wrap:wrap;align-items:flex-start;gap:12px 32px;animation:.4s ease-out perform-reading-in;display:flex}@keyframes perform-reading-in{0%{opacity:0;transform:translateY(4px)}}@media (prefers-reduced-motion:reduce){.perform-reading{animation:none}}.perform-reading .stat{align-items:flex-start}.perform-reading .listen-unsure{align-self:center;margin-left:-8px}.perform-now-head{margin-top:16px}.perform-now-head:first-child{margin-top:0}.perform-now-head .perform-find{margin-left:auto}.perform-big{letter-spacing:-.02em;color:var(--text);font-size:clamp(32px,3vw,48px);font-weight:700;line-height:1}.perform-hint{line-height:1.5}.perform-list{flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.perform-track{border-bottom:1px solid var(--border);grid-template-columns:40px minmax(0,1fr) auto auto auto;align-items:center;gap:10px;padding:8px 0;display:grid}.perform-track:last-child{border-bottom:0}.perform-track .cover{width:40px}.perform-track-text{min-width:0;color:inherit;flex-direction:column;text-decoration:none;display:flex}.perform-track-text span{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.perform-track-text strong{-webkit-line-clamp:2;-webkit-box-orient:vertical;line-height:1.3;display:-webkit-box;overflow:hidden}.perform-track-text span{font-size:13px}.perform-track-text:hover strong{text-decoration:underline}.perform-track-tempo{flex-direction:column;align-items:flex-end;font-weight:600;display:flex}.perform-key{opacity:.55}.perform-key.compatible{opacity:1}.perform-key{flex-direction:column;align-items:center;gap:2px;line-height:1.2;display:inline-flex}.moved-key{color:var(--muted);white-space:nowrap;align-items:center;gap:1px;font-size:12px;display:inline-flex}.perform-track-tempo .played-at{color:var(--muted);font-weight:400}.perform-track-tempo .beyond{color:var(--danger)}.perform-room-hint{border:1px solid color-mix(in srgb, var(--accent) 50%, var(--border));border-radius:var(--radius-sm);background:var(--accent-soft);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px 12px;margin-bottom:10px;padding:8px 12px;font-size:14px;display:flex}.perform-room-hint-actions{gap:8px;display:flex}.perform-tempo{flex-wrap:wrap;align-items:center;gap:8px;font-size:14px;display:flex}.perform-tempo label{font-weight:600}.perform-tempo input{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg);width:84px;color:inherit;font:inherit;text-align:right;padding:6px 8px}.chip.tempo-sync{cursor:pointer}.chip.tempo-sync.on{color:var(--text);background:var(--accent-soft);border-color:color-mix(in srgb, var(--accent) 60%, var(--border))}.perform-genres{flex-direction:column;gap:8px;display:flex}.perform-genres-head{justify-content:space-between;align-items:center;gap:12px;display:flex}.perform-chips{flex-wrap:wrap;gap:6px;display:flex}.perform-chips .num{opacity:.6;margin-left:6px}.perform-panel .fader{max-width:360px}@media (width<=1100px){.perform-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr);grid-template-areas:"now next""set next"}.perform-now{grid-area:now}.perform-next{grid-area:next}.perform-set{grid-area:set}}@media (width<=720px){.perform-tabs{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);gap:4px;margin-bottom:12px;padding:4px;display:flex}.perform-tabs button{border-radius:var(--radius-sm);color:var(--muted);font:inherit;cursor:pointer;background:0 0;border:0;flex:1;padding:8px;font-weight:600}.perform-tabs button.active{background:var(--surface-2);color:var(--text)}.perform-grid{display:block}.perform-panel{padding:16px}.perform[data-tab=now] .perform-next,.perform[data-tab=now] .perform-set,.perform[data-tab=next] .perform-now,.perform[data-tab=next] .perform-set,.perform[data-tab=set] .perform-now,.perform[data-tab=set] .perform-next{display:none}.perform-header{flex-wrap:wrap}.perform-header .perform-status{flex-basis:100%;order:3}.perform-track{grid-template-columns:36px minmax(0,1fr) auto auto auto;gap:8px}.perform-track .cover{width:36px}}.chip.recognised{border-color:color-mix(in srgb, var(--accent) 50%, var(--border));background:var(--accent-soft);color:var(--accent-text);letter-spacing:normal;text-transform:none;vertical-align:middle;white-space:nowrap;margin-left:8px;padding:1px 8px;font-size:11px;font-weight:600}.perform-track-text .chip.heard{align-self:flex-start;margin:2px 0}.arrive,.arriving{align-items:center;gap:inherit;display:inline-flex}.arrive{animation:.5s ease-out fade-in}.bpm-key>*{min-height:22px}@media (prefers-reduced-motion:reduce){.arrive{animation:none}}.perform-controls{grid-template-columns:auto 0;align-items:stretch;column-gap:0;transition:grid-template-columns .35s,column-gap .35s;display:grid}.perform-controls.on{grid-template-columns:auto 180px;column-gap:10px}.perform-controls .button{white-space:nowrap;gap:8px}.vu{--vu-leds:linear-gradient(90deg, #3ccf5c 0 70%, #f1b42f 70% 85%, #ef4a3a 85%);--vu-segments:repeating-linear-gradient(90deg, transparent 0 2px, #000 2px calc(100% / 20));border-radius:var(--radius-sm);opacity:0;background:#0d0d0c;border:1px solid #2a2925;flex-direction:column;gap:3px;min-width:0;padding:5px 6px;transition:opacity .3s .1s;display:flex;overflow:hidden}.perform-controls.on .vu{opacity:1}.vu-band{min-height:4px;-webkit-mask:var(--vu-segments);-webkit-mask:var(--vu-segments);mask:var(--vu-segments);flex:1;position:relative}.vu-band:before,.vu-band:after{content:"";background:var(--vu-leds);position:absolute;inset:0}.vu-band:before{opacity:.16}.vu-band.level:after{clip-path:inset(0 calc((1 - var(--level,0)) * 100%) 0 0)}.vu-band.peak:after{clip-path:inset(0 calc((1 - var(--peak,0)) * 100%) 0 0)}@media (prefers-reduced-motion:reduce){.perform-controls,.vu{transition:none}}@media (width<=720px){.perform-controls{grid-template-columns:minmax(min-content,1fr) 0fr;width:100%}.perform-controls.on{grid-template-columns:minmax(min-content,0fr) 1fr}.perform-controls .button{border-radius:var(--radius);justify-content:center;width:100%;min-height:64px}.perform-controls:not(.on){display:flex}.perform-controls:not(.on) .vu{display:none}.perform-mini{min-height:64px}}.fingerprint-status{border-top:1px solid var(--border);margin-top:18px;padding-top:14px}.fingerprint-status h3{letter-spacing:.08em;text-transform:uppercase;color:var(--muted);font-size:13px;font-weight:600}.fingerprint-status p{margin:6px 0 0;font-size:14px}.perform-big .skeleton{border-radius:.12em;width:2.2em;height:.72em}.perform-big .skeleton.wide{width:2.6em}.perform-key-heard{align-items:center;gap:.22em;display:inline-flex}.perform-key-heard .key-code{border-radius:.14em;min-width:0;padding:.1em .28em;font-size:.62em;line-height:1.15}.perform-mini{display:none}.perform-find{gap:6px}.perform-find-track .find-preview-search{display:flex}.perform-found{max-height:min(55vh,520px);overflow-y:auto}@media (width<=480px){.perform-found .perform-queued-actions{grid-column:2/-1}}@media (width<=720px){.perform-mini{justify-content:flex-end;align-items:stretch;gap:8px;margin-bottom:12px;display:flex}.perform-reading{gap:18px;display:flex}.perform-reading .perform-big{font-size:26px}.perform-reading .label{font-size:10px}.perform-mini-reading{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);flex:1;align-items:center;min-width:0;padding:10px 14px;display:flex}.perform-mini .button:only-child{flex:1;justify-content:center;padding:14px 16px}.perform-mini .button{border-radius:var(--radius);background:var(--surface);flex:none;gap:6px;height:auto;padding:0 16px}.perform-next .perform-find,.perform-now-head .perform-find,.perform-now>.perform-reading{display:none}.perform-now-head{margin-top:0}}.perform-reading .perform-big{align-items:center;height:1.05em;display:flex}.chip.genre-pick{font:inherit;color:var(--text);cursor:pointer;white-space:nowrap;background:0 0;align-items:center;font-size:12px;display:inline-flex}.chip.genre-pick.on{color:var(--text);background:var(--accent-soft);border-color:color-mix(in srgb, var(--accent) 60%, var(--border))}.chip.genre-pick.none{color:var(--faint)}@media (width<=720px){.perform-chips{overscroll-behavior-x:contain;scroll-snap-type:x proximity;scrollbar-width:none;grid-template-rows:repeat(2,auto);grid-auto-columns:max-content;grid-auto-flow:column;gap:6px;margin-right:-16px;padding-right:32px;display:grid;overflow-x:auto;-webkit-mask-image:linear-gradient(90deg,#000 calc(100% - 40px),#0000);mask-image:linear-gradient(90deg,#000 calc(100% - 40px),#0000)}.perform-chips::-webkit-scrollbar{display:none}.perform-chips .chip{scroll-snap-align:start}}.settings-page{max-width:920px}.settings-layout{grid-template-columns:180px minmax(0,1fr);align-items:start;gap:32px;display:grid}.settings-nav{flex-direction:column;gap:2px;display:flex;position:sticky;top:84px}.settings-nav a{border-radius:var(--radius-sm);color:var(--muted);padding:8px 12px;font-weight:500}.settings-nav a:hover,.settings-nav a.active{color:var(--text);background:var(--surface-2)}@media (width<=720px){.settings-layout{grid-template-columns:minmax(0,1fr);gap:20px}.settings-nav{flex-flow:wrap;position:static}.settings-nav a{white-space:nowrap;padding:6px 10px}}.infotip-bubble:has(.review-help){max-width:min(320px,85vw)}.groove-map{margin-bottom:36px}.groove-map-header{align-items:center}.groove-map-header h2{align-items:center;display:inline-flex}.groove-map-wait{border-radius:var(--radius);width:100%;margin:0 auto}.groove-map-box{position:relative}.groove-map-size{z-index:2;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-2);width:30px;height:30px;color:var(--muted);cursor:pointer;place-items:center;display:none;position:absolute;bottom:8px;right:8px}.groove-map-size:hover{color:var(--text);border-color:var(--muted)}@media (width>=1000px){.groove-map-size{display:grid}.track-page{grid-template-columns:minmax(0,1fr) auto;align-items:start;column-gap:32px;display:grid}.track-page>.track-hero{grid-area:1/1}.track-page>.groove-map{grid-area:1/2;width:264px;margin-bottom:24px}.track-page>.track-matches{grid-area:2/1/auto/-1;min-width:0}.track-page.map-wide>.track-hero{grid-column:1/-1}.track-page.map-wide>.groove-map{grid-row:2;width:400px;position:sticky;top:80px}.track-page.map-wide>.track-matches{grid-column:1}}.groove-map-plot{border:1px solid var(--border);border-radius:var(--radius);background:radial-gradient(circle at center, var(--surface) 0%, var(--bg) 75%);margin:0 auto;position:relative;overflow:hidden}.groove-map-plot svg{display:block}.sl-ring{fill:none;stroke:var(--border);stroke-dasharray:2 5}.sl-point{cursor:pointer;outline:none;transition:transform .65s cubic-bezier(.2,.8,.2,1),opacity .4s}.sl-disc{fill:var(--surface-2)}.sl-label{fill:var(--accent)}.sl-edge{fill:none;stroke:var(--border);stroke-width:1.5px;transition:stroke .15s,stroke-width .15s}.sl-point:hover .sl-edge,.sl-point:focus-visible .sl-edge,.sl-point.lit .sl-edge{stroke:var(--accent);stroke-width:3px}.perform-track.flash{border-radius:var(--radius-sm);animation:.9s ease-out queued-pulse}@keyframes queued-pulse{0%{background:var(--accent-soft);box-shadow:0 0 0 0 color-mix(in srgb, var(--accent) 70%, transparent);transform:scale(1)}25%{background:var(--accent-soft);transform:scale(1.03)}to{background:0 0;transform:scale(1);box-shadow:0 0 0 14px #0000}}@media (prefers-reduced-motion:reduce){.perform-track.flash{animation:.9s ease-out queued-flash}@keyframes queued-flash{0%{background:var(--accent-soft)}to{background:0 0}}}.sl-point.picked .sl-edge{stroke:var(--accent);stroke-width:3px;stroke-dasharray:4 3}.sl-centre-ring{fill:none;stroke:var(--accent);stroke-width:2px}.sl-centre .sl-edge{stroke:var(--accent)}.sl-backdrop{fill:#0000}.sl-spin{transform-box:fill-box;transform-origin:50%;animation:8s linear infinite sl-spin}.sl-spin-arc{fill:none;stroke:var(--accent);stroke-width:2px;stroke-linecap:round;stroke-dasharray:18 82;opacity:.8}@keyframes sl-spin{to{transform:rotate(360deg)}}.sl-processing{text-align:center;color:var(--muted);margin:0;font-size:13px;position:absolute;left:0;right:0}.sl-tip{z-index:2;cursor:pointer;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);max-width:220px;box-shadow:var(--shadow);flex-direction:column;gap:2px;padding:8px 10px;font-size:13px;line-height:1.35;display:flex;position:absolute;transform:translate(-50%,-100%)}.sl-tip.below{transform:translate(-50%)}.sl-tip strong,.sl-tip .muted{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.sl-tip-facts{color:var(--muted);font-variant-numeric:tabular-nums}.sl-tip-hint{color:var(--accent-text);margin-top:2px;font-size:12px}.sl-tip-hint.touch{display:none}@media (hover:none){.sl-tip-hint.mouse{display:none}.sl-tip-hint.touch{display:block}}@media (prefers-reduced-motion:reduce){.sl-point{transition:none}.sl-spin{animation:none}}.perform-groove-map{margin-top:28px}.perform-queued-actions{align-items:center;gap:6px;display:inline-flex}.perform-queued-label{color:var(--muted);letter-spacing:.06em;text-transform:uppercase;margin:4px 0 -4px;font-size:12px;font-weight:600}.perform-queued{border-bottom:1px solid var(--border);margin-bottom:12px;padding-bottom:12px}.other-track{flex-direction:column;gap:12px;margin-top:12px;display:flex}.other-track .form-field input{width:100%}.other-track-row{grid-template-columns:minmax(0,1fr) minmax(0,1.4fr);gap:12px;display:grid}.other-track-actions{justify-content:flex-end;gap:8px;display:flex}.other-track-open,.other-track-back{align-self:flex-start;margin-top:12px}.chip.other-track-chip{letter-spacing:normal;text-transform:none;vertical-align:middle;white-space:nowrap;margin-left:8px;padding:1px 8px;font-size:11px;font-weight:600}.button.hidden-track{color:var(--muted)}.release-card .modal-actions{flex-wrap:nowrap}@media (width<=480px){.release-card .modal-actions>*{white-space:nowrap;flex:1;justify-content:center;padding-left:10px;padding-right:10px}}.hidden-mark{vertical-align:-.1em;color:var(--faint);margin-right:6px;display:inline-flex}.hidden-row .track-title,.hidden-row .track-sub,.hidden-title{color:var(--faint)}.hidden-summary{justify-content:space-between;align-items:center;gap:12px;display:flex}.hidden-summary p{margin:0}.hidden-intro{margin:0 0 12px;font-size:14px}.hidden-tracks{margin:0;padding:0;list-style:none}.hidden-tracks li{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:12px;padding:8px 0;display:flex}.hidden-tracks li:last-child{border-bottom:0}.hidden-tracks a{flex-direction:column;min-width:0;font-size:14px;display:flex}.hidden-tracks a>*{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.forgot-link{text-align:center;align-self:center}.segmented .count-badge{margin-left:6px}.pager{justify-content:center;align-items:center;gap:12px;margin-top:12px;font-size:14px;display:flex}
