@layer reset,base,tokens,recipes,utilities;@layer base{:root{--made-with-panda: "🐼"}*,:before,:after,::backdrop{--blur: ;--brightness: ;--contrast: ;--grayscale: ;--hue-rotate: ;--invert: ;--saturate: ;--sepia: ;--drop-shadow: ;--backdrop-blur: ;--backdrop-brightness: ;--backdrop-contrast: ;--backdrop-grayscale: ;--backdrop-hue-rotate: ;--backdrop-invert: ;--backdrop-opacity: ;--backdrop-saturate: ;--backdrop-sepia: ;--gradient-from-position: ;--gradient-to-position: ;--gradient-via-position: ;--scroll-snap-strictness: proximity;--border-spacing-x: 0;--border-spacing-y: 0;--translate-x: 0;--translate-y: 0;--rotate: 0;--rotate-x: 0;--rotate-y: 0;--skew-x: 0;--skew-y: 0;--scale-x: 1;--scale-y: 1}}@layer tokens{:where(:root,:host){--colors-bg: var(--bg);--colors-surface-2: var(--surface-2);--colors-surface: var(--surface);--colors-border: var(--border);--colors-border-strong: var(--border-strong);--colors-text-2: var(--text-2);--colors-text-3: var(--text-3);--colors-text: var(--text);--colors-accent: var(--accent);--colors-accent-contrast: var(--accent-contrast);--colors-accent-light: var(--accent-light);--colors-tag-div-bg: var(--tag-div-bg);--colors-tag-div-fg: var(--tag-div-fg);--colors-tag-comp-bg: var(--tag-comp-bg);--colors-tag-comp-fg: var(--tag-comp-fg);--colors-tag-place-bg: var(--tag-place-bg);--colors-tag-place-fg: var(--tag-place-fg);--colors-tag-placement-bg: var(--tag-placement-bg);--colors-tag-placement-fg: var(--tag-placement-fg);--colors-tag-gold-bg: var(--tag-gold-bg);--colors-tag-gold-fg: var(--tag-gold-fg);--colors-tag-silver-bg: var(--tag-silver-bg);--colors-tag-silver-fg: var(--tag-silver-fg);--colors-tag-bronze-bg: var(--tag-bronze-bg);--colors-tag-bronze-fg: var(--tag-bronze-fg);--colors-tag-muted-bg: var(--tag-muted-bg);--colors-tag-muted-fg: var(--tag-muted-fg);--colors-tag-event-bg: var(--tag-event-bg);--colors-tag-event-fg: var(--tag-event-fg);--colors-tag-leader-bg: var(--tag-leader-bg);--colors-tag-leader-fg: var(--tag-leader-fg);--colors-tag-follower-bg: var(--tag-follower-bg);--colors-tag-follower-fg: var(--tag-follower-fg);--colors-tag-year-bg: var(--tag-year-bg);--colors-tag-year-fg: var(--tag-year-fg);--colors-error-bg: #3a1d1d;--colors-error-border: #7f3b3b;--colors-error-fg: #f0a8a8;--colors-spotify: #1db954;--radii-sm: var(--radius-sm);--radii-md: var(--radius);--fonts-display: var(--font-display);--fonts-body: var(--font-body);--fonts-mono: var(--font-mono)}}@layer utilities{.bg_none{background:none}.bd_none{border:none}.p_0{padding:0}.font_inherit{font:inherit}.bd_1px_solid{border:1px solid}.p_10px_12px{padding:10px 12px}.bg_surface\.2{background:var(--colors-surface-2)}.p_12px{padding:12px}.p_0_2px{padding:0 2px}.p_4px{padding:4px}.bg_surface{background:var(--colors-surface)}.p_0_8px{padding:0 8px}.bg_transparent{background:transparent}.bg_bg{background:var(--colors-bg)}.p_8px_12px{padding:8px 12px}.p_2px_8px{padding:2px 8px}.bg_tag\.div\.bg{background:var(--colors-tag-div-bg)}.bg_tag\.comp\.bg{background:var(--colors-tag-comp-bg)}.bg_tag\.place\.bg{background:var(--colors-tag-place-bg)}.bg_tag\.placement\.bg{background:var(--colors-tag-placement-bg)}.bg_tag\.gold\.bg{background:var(--colors-tag-gold-bg)}.bg_tag\.silver\.bg{background:var(--colors-tag-silver-bg)}.bg_tag\.bronze\.bg{background:var(--colors-tag-bronze-bg)}.bg_tag\.muted\.bg{background:var(--colors-tag-muted-bg)}.bg_tag\.event\.bg{background:var(--colors-tag-event-bg)}.bg_tag\.leader\.bg{background:var(--colors-tag-leader-bg)}.bg_tag\.follower\.bg{background:var(--colors-tag-follower-bg)}.bg_tag\.year\.bg{background:var(--colors-tag-year-bg)}.p_7px_10px{padding:7px 10px}.p_0_10px{padding:0 10px}.bg_accent{background:var(--colors-accent)}.p_0_4px{padding:0 4px}.p_6px_8px{padding:6px 8px}.bg_error\.bg{background:var(--colors-error-bg)}.p_0_4px_0_8px{padding:0 4px 0 8px}.ov_hidden{overflow:hidden}.bd-c_border\.strong{border-color:var(--colors-border-strong)}.bdr_sm{border-radius:var(--radii-sm)}.trs_border-color_0\.15s{transition:border-color .15s}.gap_8px{gap:8px}.bdr_calc\(token\(radii\.sm\)_-_1px\)_calc\(token\(radii\.sm\)_-_1px\)_0_0{border-radius:calc(var(--radii-sm) - 1px) calc(var(--radii-sm) - 1px) 0 0}.trs_color_0\.15s\,_border-color_0\.15s{transition:color .15s,border-color .15s}.bdr_calc\(token\(radii\.sm\)_-_1px\){border-radius:calc(var(--radii-sm) - 1px)}.trs_transform_0\.15s_ease{transition:transform .15s ease}.gap_10px{gap:10px}.bd-c_border{border-color:var(--colors-border)}.ring_none{outline:2px solid transparent;outline-offset:2px}.gap_4px{gap:4px}.flex_1{flex:1 1 0%}.td_none{text-decoration:none}.gap_12px{gap:12px}.bdr_inherit{border-radius:inherit}.bdr_50\%{border-radius:50%}.bd-c_error\.border{border-color:var(--colors-error-border)}.li-s_none{list-style:none}.c_inherit{color:inherit}.cursor_pointer{cursor:pointer}.tov_ellipsis{text-overflow:ellipsis}.white-space_nowrap{white-space:nowrap}.min-w-is_0{min-inline-size:0}.d_flex{display:flex}.ai_center{align-items:center}.jc_center{justify-content:center}.ff_inherit{font-family:inherit}.fs_12px{font-size:12px}.tt_uppercase{text-transform:uppercase}.ls_0\.08em{letter-spacing:.08em}.fw_700{font-weight:700}.c_text\.2{color:var(--colors-text-2)}.fs_10px{font-size:10px}.trf_rotate\(180deg\){transform:rotate(180deg)}.flex-wrap_wrap{flex-wrap:wrap}.ai_flex-start{align-items:flex-start}.c_text\.3{color:var(--colors-text-3)}.fs_13px{font-size:13px}.lh_22px{line-height:22px}.bx-sh_0_8px_24px_rgba\(0\,_0\,_0\,_0\.3\){box-shadow:0 8px 24px #0000004d}.z_95{z-index:95}.fw_600{font-weight:600}.ls_0\.05em{letter-spacing:.05em}.ta_right{text-align:right}.fv-num_tabular-nums{font-variant-numeric:tabular-nums}.flex-sh_0{flex-shrink:0}.flex-d_column{flex-direction:column}.pos_relative{position:relative}.d_inline-flex{display:inline-flex}.c_accent{color:var(--colors-accent)}.cursor_default{cursor:default}.jc_space-between{justify-content:space-between}.ff_body{font-family:var(--fonts-body)}.c_text{color:var(--colors-text)}.ls_0\.02em{letter-spacing:.02em}.c_tag\.div\.fg{color:var(--colors-tag-div-fg)}.c_tag\.comp\.fg{color:var(--colors-tag-comp-fg)}.c_tag\.place\.fg{color:var(--colors-tag-place-fg)}.c_tag\.placement\.fg{color:var(--colors-tag-placement-fg)}.c_tag\.gold\.fg{color:var(--colors-tag-gold-fg)}.c_tag\.silver\.fg{color:var(--colors-tag-silver-fg)}.c_tag\.bronze\.fg{color:var(--colors-tag-bronze-fg)}.c_tag\.muted\.fg{color:var(--colors-tag-muted-fg)}.c_tag\.event\.fg{color:var(--colors-tag-event-fg)}.c_tag\.leader\.fg{color:var(--colors-tag-leader-fg)}.c_tag\.follower\.fg{color:var(--colors-tag-follower-fg)}.c_tag\.year\.fg{color:var(--colors-tag-year-fg)}.ff_mono{font-family:var(--fonts-mono)}.fw_500{font-weight:500}.as_stretch{align-self:stretch}.fs_11px{font-size:11px}.lh_1{line-height:1}.ac_flex-start{align-content:flex-start}.cursor_text{cursor:text}.cursor_not-allowed{cursor:not-allowed}.c_error\.fg{color:var(--colors-error-fg)}.pos_absolute{position:absolute}.z_20{z-index:20}.bx-sh_0_8px_24px_rgba\(0\,_0\,_0\,_0\.12\){box-shadow:0 8px 24px #0000001f}.lh_1\.4{line-height:1.4}.c_transparent{color:transparent}.min-w_0{min-width:0}.w_100\%{width:100%}.min-w_var\(--anchor-width\){min-width:var(--anchor-width)}.max-h_min\(280px\,_var\(--available-height\)\){max-height:min(280px,var(--available-height))}.ov-y_auto{overflow-y:auto}.pl_22px{padding-left:22px}.min-w_150px{min-width:150px}.h_22px{height:22px}.min-w_36px{min-width:36px}.min-w_60px{min-width:60px}.h_36px{height:36px}.min-w_70px{min-width:70px}.min-w_190px{min-width:190px}.max-w_320px{max-width:320px}.h_4px{height:4px}.w_14px{width:14px}.h_14px{height:14px}.min-h_36px{min-height:36px}.max-w_100\%{max-width:100%}.ml_auto{margin-left:auto}.top_100\%{top:100%}.left_0{left:0}.mt_4px{margin-top:4px}.max-h_280px{max-height:280px}.right_0{right:0}.min-w_100\%{min-width:100%}.left_auto{left:auto}.\[\&\:not\(\:first-child\)\:\:before\]\:bg_border:not(:first-child):before{background:var(--colors-border)}.\[\&\[data-highlighted\]\]\:bg_bg[data-highlighted]{background:var(--colors-bg)}.\[\&\:not\(\:first-child\)\]\:bd-t_1px_solid:not(:first-child){border-top:1px solid}.\[\&\:not\(\:first-child\)\]\:bd-c_border:not(:first-child){border-color:var(--colors-border)}.\[\&\:not\(\:first-child\)\:\:before\]\:content_\"\":not(:first-child):before{content:""}.\[\&\:not\(\:first-child\)\:\:before\]\:pos_absolute:not(:first-child):before{position:absolute}.\[\&\:not\(\:first-child\)\:\:before\]\:trf_translateY\(-50\%\):not(:first-child):before{transform:translateY(-50%)}.disabled\:cursor_not-allowed:is(:disabled,[disabled],[data-disabled],[aria-disabled=true]){cursor:not-allowed}.\[\&\[data-highlighted\]\]\:c_text[data-highlighted]{color:var(--colors-text)}.group[data-highlighted] .\[\.group\[data-highlighted\]_\&\]\:c_text\.3{color:var(--colors-text-3)}.\[\&\:not\(\:first-child\)\]\:mt_4px:not(:first-child){margin-top:4px}.\[\&\:not\(\:first-child\)\]\:pt_4px:not(:first-child){padding-top:4px}.\[\&\:not\(\:first-child\)\:\:before\]\:left_0:not(:first-child):before{left:0}.\[\&\:not\(\:first-child\)\:\:before\]\:top_50\%:not(:first-child):before{top:50%}.\[\&\:not\(\:first-child\)\:\:before\]\:h_12px:not(:first-child):before{height:12px}.\[\&\:not\(\:first-child\)\:\:before\]\:w_1px:not(:first-child):before{width:1px}.focusVisible\:ring_2px_solid:is(:focus-visible,[data-focus-visible]){outline:2px solid}.focus\:bd-c_border\.strong:is(:focus,[data-focus]){border-color:var(--colors-border-strong)}.focusVisible\:ring-c_accent:is(:focus-visible,[data-focus-visible]){outline-color:var(--colors-accent)}.focusVisible\:ring-o_-2px:is(:focus-visible,[data-focus-visible]){outline-offset:-2px}.focusVisible\:ring-c_text:is(:focus-visible,[data-focus-visible]){outline-color:var(--colors-text)}.focusVisible\:ring-o_2px:is(:focus-visible,[data-focus-visible]){outline-offset:2px}.hover\:bg_bg:is(:hover,[data-hover]){background:var(--colors-bg)}.hover\:bd-c_text\.3:is(:hover,[data-hover]){border-color:var(--colors-text-3)}.hover\:bd-c_accent:is(:hover,[data-hover]){border-color:var(--colors-accent)}.hover\:bd-c_border\.strong:is(:hover,[data-hover]){border-color:var(--colors-border-strong)}.hover\:bd-c_error\.fg:is(:hover,[data-hover]){border-color:var(--colors-error-fg)}.hover\:c_text:is(:hover,[data-hover]){color:var(--colors-text)}.hover\:c_accent:is(:hover,[data-hover]){color:var(--colors-accent)}.hover\:filter_brightness\(1\.3\):is(:hover,[data-hover]){filter:brightness(1.3)}.hover\:c_error\.fg:is(:hover,[data-hover]){color:var(--colors-error-fg)}.group:is(:hover,[data-hover]) .groupHover\:c_text\.3{color:var(--colors-text-3)}}@layer reset{*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}}:root{color-scheme:dark;--bg: #1a1320;--surface: #241a2c;--surface-2: #30243a;--border: #3a2f44;--border-strong: #594a66;--text: #f4eef3;--text-2: #cabdcf;--text-3: #a294a8;--accent: #ff7a9c;--accent-contrast: #1a1320;--accent-light: #3a1f2c;--tag-div-bg: #1d2c4f;--tag-div-fg: #a3bdf2;--tag-comp-bg: #1c3526;--tag-comp-fg: #93d3a9;--tag-place-bg: #3a1f2c;--tag-place-fg: #f59db6;--tag-gold-bg: #42340e;--tag-gold-fg: #f2cd5c;--tag-silver-bg: #2d3238;--tag-silver-fg: #c9d1db;--tag-bronze-bg: #392619;--tag-bronze-fg: #d69e75;--tag-placement-bg: #2f2839;--tag-placement-fg: #b3a8c2;--tag-muted-bg: #2b2823;--tag-muted-fg: #8d8679;--tag-event-bg: lightgray;--tag-event-fg: black;--tag-leader-bg: #2c1f47;--tag-leader-fg: #c3aaee;--tag-follower-bg: #123a3f;--tag-follower-fg: #82cfdc;--tag-year-bg: gray;--tag-year-fg: black;--radius: 10px;--radius-sm: 6px;--font-display: "Syne", sans-serif;--font-mono: "Manrope", system-ui, sans-serif;--font-body: "Manrope", system-ui, sans-serif}@property --accent{syntax: "<color>"; inherits: true; initial-value: #ff7a9c;}body{font-family:var(--font-body);background:var(--bg);color:var(--text);min-height:100vh;-webkit-font-smoothing:antialiased}.app{max-width:1200px;margin:0 auto;padding:0 24px 64px}.app-shell{--accent-light: color-mix(in srgb, var(--accent) 16%, var(--bg));--colors-accent: var(--accent);--colors-accent-light: var(--accent-light)}.app-shell.accent-ready{transition:--accent .45s ease}.app-shell[data-route="/"]{--accent: var(--tag-div-fg)}.app-shell[data-route="/shuffle"]{--accent: var(--tag-gold-fg)}.app-shell[data-route="/calendars"]{--accent: var(--tag-comp-fg)}.app-shell[data-route="/djs"]{--accent: var(--tag-leader-fg)}.app-shell[data-route="/lessons"]{--accent: var(--tag-follower-fg)}.app-header{display:flex;justify-content:center;border-bottom:1px solid var(--border);padding:32px 0 24px;margin-bottom:18px}.header-inner{display:flex;align-items:flex-end;justify-content:flex-start;gap:16px;flex-wrap:wrap}.header-brand{display:flex;flex-direction:column;align-items:center}.app-title-link{text-decoration:none;display:inline-block;-webkit-tap-highlight-color:transparent}.app-title{font-family:var(--font-display);font-size:36px;font-weight:800;letter-spacing:-.04em;line-height:1;color:var(--text);white-space:nowrap;transition:letter-spacing .25s ease,color .2s ease,transform .15s ease}.title-slash{display:inline-block;color:var(--accent);will-change:transform;transition:color .2s ease,rotate .2s ease}.app-title-link:hover .title-slash{color:#fff;-webkit-text-fill-color:#fff;rotate:-40deg}.app-title-link:hover .app-title{color:var(--accent)}@keyframes title-shimmer{0%{background-position:100% 0}to{background-position:0% 0}}.app-title-link:active .app-title{transform:scale(.97)}@media (prefers-reduced-motion: reduce){.app-title-link:active .app-title{transform:none}.app-title-link:hover .title-slash{rotate:none}.app-title-link:hover .app-title{animation:none}}.beta-badge{display:inline-block;vertical-align:super;margin-left:8px;padding:2px 7px;border-radius:999px;background:var(--accent);color:var(--bg);-webkit-text-fill-color:var(--bg);font-family:var(--font-display);font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;line-height:1}.title-accent{color:var(--accent)}.app-subtitle{font-size:13px;color:var(--text-2);margin-top:4px;letter-spacing:.02em}.loaded-badge{display:flex;align-items:center;gap:12px;font-size:13px;color:var(--text-2);font-family:var(--font-mono)}.load-more-inline{font-family:var(--font-mono);font-size:12px;background:none;border:1px solid var(--border-strong);border-radius:20px;padding:4px 12px;color:var(--accent);cursor:pointer;transition:all .15s}.load-more-inline:hover{background:var(--accent-light);border-color:var(--accent)}.load-more-inline:disabled{opacity:.5;cursor:not-allowed}.error-bar{background:#3a1d1d;border:1px solid #7f3b3b;border-radius:var(--radius-sm);padding:10px 14px;font-size:13px;color:#f0a8a8;margin-bottom:16px}.filter-bar{display:flex;flex-direction:column;gap:20px;margin-bottom:20px}.browse-layout{display:flex;align-items:flex-start;gap:24px}.browse-main{flex:1;min-width:0}.filter-sidebar{flex:0 0 264px;min-width:0;display:flex;flex-direction:column;gap:20px}.filter-sidebar.closed{display:none}.filter-sidebar .filter-set-body{flex-direction:column;align-items:stretch}.filter-sidebar .typeahead,.filter-sidebar .typeahead-wide{min-width:0;max-width:100%}.filter-sidebar .multiselect{min-width:0}.filter-drawer-head{display:none;align-items:center;justify-content:center;position:relative;font-family:var(--font-mono);font-size:16px;text-transform:uppercase;letter-spacing:.08em;font-weight:700;color:var(--text)}.filter-drawer-count{position:absolute;right:0;font-size:12px;font-weight:400;color:var(--text-3)}.filter-drawer-close{position:absolute;left:0;background:none;border:none;color:var(--text-2);font-size:16px;line-height:1;padding:4px 6px;cursor:pointer;transition:color .15s}.filter-drawer-close:hover{color:var(--text)}.filters-toggle{display:inline-flex;align-items:center;gap:6px;font-family:var(--font-mono);font-size:13px;background:none;border:1px solid var(--border-strong);border-radius:20px;height:36px;padding:0 16px;color:var(--text-2);cursor:pointer;white-space:nowrap;transition:all .15s}.filters-toggle:hover{color:var(--accent);border-color:var(--accent)}.filters-toggle[aria-expanded=true]{color:var(--text)}.filters-count{padding:2px 6px;border-radius:999px;background:var(--accent);color:var(--accent-contrast);font-size:10px;font-weight:700;line-height:1}@media (max-width: 600px){.filter-sidebar{position:fixed;top:0;right:0;bottom:0;left:0;z-index:90;width:auto;padding:16px;background:var(--bg);overflow-y:auto}.filter-sidebar .filter-set-body .filter-group,.filter-sidebar .filter-set-body .typeahead,.filter-sidebar .filter-set-body .typeahead-wide{flex:none}.filter-drawer-head{display:flex;padding:14px}body.filters-drawer-open{overflow:hidden}}.filter-clear-all{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;padding:10px 12px;background:none;border:1px solid #7f3b3b;border-radius:var(--radius-sm);font-family:inherit;font-size:12px;text-transform:uppercase;letter-spacing:.08em;font-weight:700;color:#f0a8a8;cursor:pointer;transition:background .15s,color .15s}.filter-clear-all:hover{background:#3a1d1d}.typeahead-wide{min-width:380px;max-width:640px}.typeahead-song-title,.typeahead-song-artist{display:block;overflow:hidden;text-overflow:ellipsis}.typeahead-song-title{color:var(--text)}.typeahead-song-artist{color:var(--text-3);font-size:12px}.results-bar{display:flex;align-items:center;flex-wrap:wrap;gap:18px 14px;font-size:12px;color:var(--text-3);margin-bottom:18px;font-family:var(--font-mono)}.results-bar-end{justify-content:flex-end}.results-left{display:flex;align-items:center;flex-wrap:wrap;gap:6px 14px}.results-left>span,.export-btn{white-space:nowrap}.results-sort{display:flex;align-items:center;gap:8px;margin-left:auto;white-space:nowrap;letter-spacing:.08em;font-size:12px}@media (max-width: 600px){.results-left{order:1;flex-basis:100%}.results-left .export-btn{margin-left:auto}}.video-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:14px;margin-bottom:32px}.video-rows{position:relative;margin-bottom:32px}.video-row{position:absolute;top:0;left:0;width:100%;padding-bottom:14px}.video-row .video-grid{margin-bottom:0}.video-grid-probe{height:0;margin-bottom:0;overflow:hidden}.video-card{display:flex;flex-direction:column;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;transition:border-color .15s,transform .15s}.video-card:hover{border-color:var(--border-strong);transform:translateY(-2px)}.thumb-wrap{position:relative;aspect-ratio:16/9;background:var(--surface-2);overflow:hidden;flex-shrink:0}.thumb-wrap img{width:100%;height:100%;object-fit:cover;display:block}.thumb-empty{width:100%;height:100%;display:flex;align-items:center;justify-content:center;color:var(--text-3);font-size:24px}.play-overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:#0000004d;display:flex;align-items:center;justify-content:center;color:#fff;font-size:22px;opacity:0;transition:opacity .15s}.video-card:hover .play-overlay{opacity:1}.thumb-stats{position:absolute;right:6px;bottom:6px;display:flex;gap:6px;opacity:0;transition:opacity .15s}.video-card:hover .thumb-stats{opacity:1}.thumb-duration{position:absolute;left:6px;bottom:6px;padding:2px 6px;border-radius:4px;background:#000000a6;color:#fff;font-size:11px;font-variant-numeric:tabular-nums}.thumb-stat{display:inline-flex;align-items:center;gap:4px;padding:2px 6px;border-radius:4px;background:#000000a6;color:#fff;font-size:11px;font-variant-numeric:tabular-nums}.card-link{display:block;text-decoration:none;color:inherit;flex-shrink:0}.card-body{padding:10px 12px 12px}.card-tabs{display:flex;flex:1 1 auto;min-height:0;max-height:206px;border-top:1px solid var(--border)}.card-tab-rail{display:flex;flex-direction:column;flex-shrink:0;background:var(--surface-2);border-right:1px solid var(--border)}.card-tab-btn{display:flex;align-items:center;justify-content:center;width:38px;height:34px;flex-shrink:0;background:none;border:none;border-left:2px solid transparent;color:var(--tab-color);font-size:13px;cursor:pointer;transition:filter .15s,background .15s}.card-tab-btn:hover:not(:disabled){filter:brightness(1.2)}.card-tab-btn:disabled{color:var(--text-3);opacity:.3;cursor:default}.card-tab-btn.active{background:var(--surface);border-left-color:var(--tab-color)}.card-tab-panel{flex:1;min-width:0;overflow-y:auto;padding:8px 12px}.credit-people{display:flex;flex-direction:column;gap:18px}.credit-partners{display:flex;gap:12px}.credit-partners>.credit-subsection{flex:1 1 0;min-width:0;max-width:max-content}.card-tab-subtitle{margin-bottom:3px;font-size:11px;font-weight:600;color:var(--text-3)}.credit-list{display:flex;flex-direction:column;gap:2px;font-size:12px;line-height:16px;color:var(--text-2)}.credit-value{display:inline-flex;align-items:baseline;gap:5px;max-width:100%;min-width:0}.credit-name{min-width:0;text-align:left;background:none;border:none;padding:0;font:inherit;color:var(--text);cursor:pointer;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.credit-name:hover{color:var(--accent);text-decoration:underline}.credit-spotify{flex-shrink:0;font-size:12px;color:#1db954;text-decoration:none}.credit-spotify:hover{filter:brightness(1.25)}.credit-music{display:flex;flex-direction:column;gap:2px}.song-line{display:flex;align-items:flex-start;gap:8px;padding:4px 6px;margin:0 -6px;border-radius:var(--radius-sm);font-size:12px;line-height:16px;color:var(--text-2)}.song-line:hover{background:var(--surface-2)}.song-time{flex-shrink:0;align-self:stretch;width:20px;display:inline-flex;align-items:center;justify-content:center;line-height:1;color:var(--text-3);background:none;border:none;padding:0;cursor:pointer}.song-time:hover{color:var(--accent)}.song-body{flex:1;min-width:0;display:flex;flex-direction:column}.song-row{display:flex;align-items:center;gap:8px}.song-name{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;background:none;border:none;padding:0;font:inherit;text-align:left;cursor:pointer}.song-name:hover{color:var(--accent)}.song-title,.song-artist{min-width:0;flex:0 1 auto}.song-title{color:var(--text)}.song-artist{color:var(--text-3);font-size:12px}.song-spotify{flex-shrink:0;align-self:stretch;display:inline-flex;align-items:center;margin-left:auto;font-size:16px;color:var(--text-3);text-decoration:none;transition:color .15s}.song-spotify:hover{color:var(--accent)}.title-row{display:flex;justify-content:space-between;align-items:baseline;gap:8px;margin-bottom:6px}.card-title-link,.card-year-link{background:none;border:none;padding:0;font-family:inherit;cursor:pointer;text-align:left}.card-title-link{font-size:13px;font-weight:600;color:var(--text);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.card-year-link{flex-shrink:0;font-size:12px;font-weight:500;color:var(--text-3)}.card-title-link:hover,.card-year-link:hover{color:var(--accent);text-decoration:underline}.tag-row{display:flex;flex-wrap:wrap;gap:4px;margin-bottom:8px}.tag-row:last-child{margin-bottom:0}.scroll-sentinel{display:flex;justify-content:center;padding:32px 0}.scroll-sentinel .spinner{margin:0}.empty-state,.loading-state{text-align:center;padding:80px 0;color:var(--text-2)}.empty-icon{font-size:40px;opacity:.25;margin-bottom:16px}.empty-state p{font-size:15px;margin-bottom:6px}.empty-hint{font-size:13px;color:var(--text-3)}.empty-hint a{color:var(--accent)}.spinner{width:28px;height:28px;border:2px solid var(--border);border-top-color:var(--text);border-radius:50%;margin:0 auto 16px;animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;background:#000000e0;display:flex;align-items:center;justify-content:center;padding:24px}.modal-frame{position:relative;width:min(1400px,100%,calc((100vh - 100px) * 16 / 9));aspect-ratio:16 / 9}.modal-frame iframe{width:100%;height:100%;border:0;display:block;border-radius:var(--radius);background:#000;box-shadow:0 24px 80px #000000b3}.modal-close{position:absolute;top:-38px;right:0;background:none;border:none;color:var(--text-2);font-size:26px;line-height:1;cursor:pointer;padding:4px 8px}.modal-close:hover{color:var(--text)}.header-menu{position:relative;margin-top:20px}.header-menu-toggle{display:inline-flex;align-items:center;gap:7px;background:none;border:1px solid transparent;border-radius:var(--radius-sm);padding:5px 10px;cursor:pointer;color:var(--text-2);transition:background .15s ease,border-color .15s ease,color .15s ease}.header-menu-toggle:hover,.header-menu-toggle.open{background:var(--surface);border-color:var(--border-strong);color:var(--text)}.header-menu-toggle .app-subtitle{margin-top:0;font-size:14px}.header-menu-icon{font-size:12px;color:var(--accent)}.header-menu-caret{font-size:12px;color:var(--text-3);transition:transform .15s ease}.header-menu-toggle.open .header-menu-caret{transform:rotate(180deg)}.header-menu-list{position:absolute;top:100%;left:50%;transform:translate(-50%);margin-top:6px;padding:4px;min-width:210px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);box-shadow:0 8px 24px #0000004d;z-index:20}.header-menu-item{display:flex;align-items:center;gap:8px;padding:7px 10px;font-family:var(--font-mono);font-size:13px;white-space:nowrap;border-radius:var(--radius-sm);color:var(--text-2);text-decoration:none}.header-menu-item:hover{background:var(--bg);color:var(--text)}.header-menu-item.active{color:var(--accent)}.shuffle-back{font-family:var(--font-mono);font-size:12px;color:var(--accent);text-decoration:none}.shuffle-back:hover{text-decoration:underline}.calendar-embed-wrap{margin-top:4px}.calendar-embed-frame{border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;background:var(--surface)}.calendar-embed{display:block;width:100%;height:72vh;min-height:480px;border:0;filter:invert(.92) hue-rotate(180deg)}.calendar-source{margin-top:10px;font-size:12px;color:var(--text-3)}.calendar-source a{color:var(--accent);text-decoration:none}.calendar-source a:hover{text-decoration:underline}.dj-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:16px}.dj-card{display:flex;flex-direction:column;gap:12px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:16px;color:inherit;text-decoration:none;transition:border-color .15s,background .15s,transform .15s}.dj-card:hover,.dj-card:focus-visible{border-color:var(--accent);background:var(--accent-light);transform:translateY(-2px)}.dj-card:focus-visible{outline:none}.dj-head{display:flex;align-items:center;gap:12px}.dj-avatar{width:64px;height:64px;border-radius:50%;object-fit:cover;flex-shrink:0;background:var(--surface-2);transition:transform .15s}.dj-card:hover .dj-avatar,.dj-card:focus-visible .dj-avatar{transform:scale(1.08)}.dj-avatar-empty{display:flex;align-items:center;justify-content:center;color:var(--text-3);font-size:24px}.dj-info{min-width:0}.dj-name{display:inline-flex;align-items:center;gap:6px;font-size:16px;font-weight:700;color:var(--text);text-decoration:none}.dj-name-icon{font-size:13px;color:#1db954}.dj-followers{font-size:12px;color:var(--text-3);margin-top:2px}.dj-playlists{display:flex;flex-direction:column;gap:4px;max-height:240px;overflow-y:auto;border-top:1px solid var(--border);padding-top:10px}.dj-playlists-empty{font-size:12px;color:var(--text-3)}.dj-playlist{display:flex;align-items:center;gap:10px;padding:6px;border-radius:var(--radius-sm);color:var(--text-2);text-decoration:none}.dj-playlist:hover{background:var(--bg);color:var(--text)}.dj-playlist-img{width:40px;height:40px;border-radius:4px;object-fit:cover;flex-shrink:0;background:var(--surface-2)}.dj-playlist-img-empty{display:flex;align-items:center;justify-content:center;color:var(--text-3);font-size:14px}.dj-playlist-text{display:flex;flex-direction:column;min-width:0}.dj-playlist-name{font-size:13px;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.dj-playlist-count{font-size:12px;color:var(--text-3)}.shuffle-card{max-width:560px;margin:32px auto 0;padding:24px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);text-align:center;min-height:243px}.shuffle-song{font-size:20px;font-weight:600;color:var(--text);line-height:1.3}.shuffle-meta{font-family:var(--font-mono);font-size:12px;color:var(--text-3);margin-top:6px;margin-bottom:20px}.shuffle-meta-link{color:var(--accent);text-decoration:none}.shuffle-meta-link:hover{text-decoration:underline}.shuffle-embed-wrap{position:relative;height:152px;border-radius:12px;overflow:hidden;background:var(--surface-2)}.shuffle-embed{display:block;border:0;opacity:0;transition:opacity .25s ease}.shuffle-embed.ready{opacity:1}.shuffle-embed-spinner{position:absolute;top:0;right:0;bottom:0;left:0;margin:auto}.shuffle-loading{min-height:234.5px;display:flex;flex-direction:column;align-items:center;justify-content:center;color:var(--text-2)}.shuffle-loading .spinner{margin-bottom:12px}.shuffle-open{margin-top:12px;font-size:12px;color:var(--text-3)}.shuffle-open a{color:var(--accent);text-decoration:none}.shuffle-open a:hover{text-decoration:underline}.shuffle-actions{display:flex;flex-direction:row;align-items:center;justify-content:center;gap:14px;margin-top:20px}.shuffle-actions>*{margin-top:0}.shuffle-login{display:inline-flex;align-items:center;gap:8px;font-family:var(--font-body);font-size:14px;font-weight:600;color:#000;background:#1db954;border:none;border-radius:24px;padding:10px 22px;cursor:pointer;transition:filter .15s}.shuffle-login:hover{filter:brightness(1.3)}.shuffle-auth{margin-top:14px;font-size:12px;color:var(--text-3);text-align:right}.link-btn{background:none;border:none;padding:0;font:inherit;color:var(--accent);cursor:pointer;text-decoration:underline}.shuffle-note{font-size:13px;color:var(--text-2);background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-sm);padding:14px}.shuffle-btn{font-family:var(--font-body);font-size:14px;font-weight:600;background:var(--accent);color:var(--accent-contrast);border:none;border-radius:24px;padding:10px 22px;cursor:pointer;transition:filter .15s}.shuffle-btn:hover{filter:brightness(1.1)}.shuffle-btn:disabled{opacity:.5;cursor:not-allowed}@media (max-width: 600px){.app{padding:0 16px 48px}.app-title{font-size:20px}.beta-badge{margin-left:6px;padding:2px 6px;font-size:9px}.filter-set-body .filter-group{min-width:0;flex:1 1 calc(50% - 5px)}.filter-set-body .typeahead,.filter-set-body .typeahead-wide{min-width:0;max-width:none;flex:1 1 100%}.video-grid{grid-template-columns:1fr;gap:10px}.video-row{padding-bottom:10px}.modal-backdrop{padding:0}.modal-frame{width:100%;height:100%;aspect-ratio:auto}.modal-frame iframe{border-radius:0;box-shadow:none}.modal-close{top:8px;right:8px;z-index:1;color:#fff;background:#00000080;border-radius:50%;width:36px;height:36px;padding:0}}.export-btn{display:inline-flex;align-items:center;gap:3px;font-family:var(--font-mono);font-size:12px;background:none;border:none;color:var(--text);cursor:pointer;padding:0;text-decoration:underline}.export-panel{position:relative;width:min(440px,100%);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:24px;box-shadow:0 24px 80px #0009}.export-close{top:10px;right:10px;font-size:22px}.export-cover-wrap{position:relative;width:160px;margin:0 auto 16px}.export-cover{display:block;width:160px;height:160px;border-radius:var(--radius-sm);border:1px solid var(--border)}.export-title{font-family:var(--font-display);font-size:18px;margin:16px 0;color:var(--text)}.export-loading{display:flex;flex-direction:column;align-items:center;gap:8px;padding:16px 0}.export-row{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px}.export-stats{font-size:12px;color:var(--text-2);margin:0;text-align:right;white-space:nowrap}.export-stats strong{color:var(--text)}.export-note{font-size:12px;color:var(--text-3);margin:0 0 14px}.export-error{font-size:13px;color:var(--accent);margin:0 0 12px}.export-field{display:block;font-size:12px;color:var(--text-3);margin:4px 0 12px}.export-input{display:block;width:100%;margin-top:6px;padding:8px 10px;font:inherit;font-size:14px;color:var(--text);background:var(--surface-2);border:1px solid var(--border-strong);border-radius:var(--radius-sm);box-sizing:border-box}.export-check{display:flex;align-items:center;gap:6px;font-size:13px;color:var(--text-2)}.export-spotify-btn{display:inline-flex;align-items:center;gap:8px;font-family:var(--font-body);font-size:13px;font-weight:600;color:#fff;background:#1db954;border:none;border-radius:24px;padding:9px 18px;cursor:pointer;transition:filter .15s}.export-spotify-btn:hover{filter:brightness(1.08)}.export-progress{font-size:13px;color:var(--text-2);margin:0}.export-actions{display:flex;justify-content:center;margin-top:4px}.export-connect{margin-top:4px;text-align:center}.export-done{display:flex;flex-direction:column;align-items:center;gap:20px;padding:12px 0;text-align:center}.export-done p{margin:0;font-family:var(--font-display);font-size:26px;font-weight:700;color:var(--text)}.export-open{text-decoration:none}
