@font-face{font-family:__Outfit_ed3508;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/98848575513c9742-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:__Outfit_ed3508;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/7b0b24f36b1a6d0b-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:__Outfit_Fallback_ed3508;src:local("Arial");ascent-override:100.18%;descent-override:26.05%;line-gap-override:0.00%;size-adjust:99.82%}.__className_ed3508{font-family:__Outfit_ed3508,__Outfit_Fallback_ed3508;font-style:normal}.__variable_ed3508{--font-outfit:"__Outfit_ed3508","__Outfit_Fallback_ed3508"}@font-face{font-family:__Roboto_Mono_5899e0;font-style:normal;font-weight:100 700;font-display:swap;src:url(/_next/static/media/1f160ec2cb9962ef-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:__Roboto_Mono_5899e0;font-style:normal;font-weight:100 700;font-display:swap;src:url(/_next/static/media/ad8a7e2c3c2c120b-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:__Roboto_Mono_5899e0;font-style:normal;font-weight:100 700;font-display:swap;src:url(/_next/static/media/cde148027b808b99-s.woff2) format("woff2");unicode-range:u+0370-0377,u+037a-037f,u+0384-038a,u+038c,u+038e-03a1,u+03a3-03ff}@font-face{font-family:__Roboto_Mono_5899e0;font-style:normal;font-weight:100 700;font-display:swap;src:url(/_next/static/media/e61ae719f7cc4155-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:__Roboto_Mono_5899e0;font-style:normal;font-weight:100 700;font-display:swap;src:url(/_next/static/media/0ea4f4df910e6120-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:__Roboto_Mono_5899e0;font-style:normal;font-weight:100 700;font-display:swap;src:url(/_next/static/media/739c2d8941231bb4-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:__Roboto_Mono_Fallback_5899e0;src:local("Arial");ascent-override:77.84%;descent-override:20.13%;line-gap-override:0.00%;size-adjust:134.61%}.__className_5899e0{font-family:__Roboto_Mono_5899e0,__Roboto_Mono_Fallback_5899e0;font-style:normal}.__variable_5899e0{--font-roboto-mono:"__Roboto_Mono_5899e0","__Roboto_Mono_Fallback_5899e0"}:root{--bg-primary:#0a0b0d;--bg-secondary:#131722;--bg-tertiary:#1b2030;--border-color:hsla(0,0%,100%,.08);--border-hover:hsla(0,0%,100%,.16);--text-primary:#f5f6f9;--text-secondary:#b5c2d9;--text-muted:#626e85;--accent-primary:#e5b35c;--accent-secondary:#00f0ff;--accent-tertiary:#ff007f;--glow-primary:rgba(229,179,92,.15);--glow-secondary:rgba(0,240,255,.2);--glass-bg:rgba(19,23,34,.65);--glass-border:hsla(0,0%,100%,.05);--glass-blur:blur(16px);--shadow-main:0 8px 32px 0 rgba(0,0,0,.37);--shadow-glow:0 0 20px rgba(229,179,92,.1);--font-sans:var(--font-outfit),-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;--font-mono:var(--font-roboto-mono),monospace}[data-theme=light]{--bg-primary:#f4f6f8;--bg-secondary:#fff;--bg-tertiary:#e9ecf2;--border-color:rgba(0,0,0,.08);--border-hover:rgba(0,0,0,.15);--text-primary:#121620;--text-secondary:#4a5568;--text-muted:#828fa6;--accent-primary:#b8860b;--accent-secondary:teal;--accent-tertiary:#c71585;--glow-primary:rgba(184,134,11,.1);--glow-secondary:rgba(0,128,128,.1);--glass-bg:hsla(0,0%,100%,.75);--glass-border:rgba(0,0,0,.04);--glass-blur:blur(16px);--shadow-main:0 8px 32px 0 rgba(0,0,0,.08);--shadow-glow:0 4px 12px rgba(184,134,11,.05)}*{box-sizing:border-box;margin:0;padding:0;transition:background-color .3s ease,border-color .3s ease,color .3s ease,box-shadow .3s ease}body{background-color:var(--bg-primary);color:var(--text-primary);font-family:var(--font-sans);min-height:100vh;overflow-x:hidden}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:var(--bg-primary)}::-webkit-scrollbar-thumb{background:var(--bg-tertiary);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--accent-primary)}.glass{background:var(--glass-bg);backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur);border:1px solid var(--glass-border);box-shadow:var(--shadow-main);border-radius:16px}.app-container{display:grid;grid-template-columns:320px 1fr 360px;min-height:100vh;grid-gap:20px;gap:20px;padding:20px;max-width:1800px;margin:0 auto}@media (max-width:1400px){.app-container{grid-template-columns:300px 1fr}.player-aside{grid-column:1/-1;position:-webkit-sticky;position:sticky;bottom:20px;z-index:100}}@media (max-width:900px){.app-container{grid-template-columns:1fr}.player-aside{position:static}}.header-bar{grid-column:1/-1;justify-content:space-between;padding:16px 24px;margin-bottom:10px}.brand,.header-bar{display:flex;align-items:center}.brand{gap:12px}.brand-icon{color:var(--accent-primary);animation:pulse-glow 2s ease-in-out infinite}.brand-title{font-size:24px;font-weight:800;background:linear-gradient(135deg,var(--text-primary) 30%,var(--accent-primary) 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;letter-spacing:-.5px;text-transform:uppercase}.header-actions{display:flex;align-items:center;gap:16px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:10px 18px;border-radius:12px;font-family:var(--font-sans);font-size:14px;font-weight:600;cursor:pointer;border:1px solid transparent;transition:all .2s cubic-bezier(.4,0,.2,1)}.btn-primary{background:var(--accent-primary);color:#000}.btn-primary:hover{transform:translateY(-2px);box-shadow:0 4px 15px rgba(229,179,92,.4)}.btn-primary:active{transform:translateY(0)}.btn-secondary{background:var(--bg-tertiary);color:var(--text-primary);border-color:var(--border-color)}.btn-secondary:hover{background:var(--border-hover);border-color:var(--accent-primary);color:var(--accent-primary)}.btn-icon{width:42px;height:42px;padding:0;border-radius:50%;background:var(--bg-tertiary);color:var(--text-primary);border:1px solid var(--border-color);cursor:pointer;display:flex;align-items:center;justify-content:center}.btn-icon:hover{border-color:var(--accent-primary);color:var(--accent-primary);box-shadow:0 0 10px rgba(229,179,92,.2)}.key-popover-container{position:relative}.key-popover{position:absolute;top:50px;right:0;width:320px;padding:20px;z-index:110;display:flex;flex-direction:column;gap:12px}.key-input{width:100%;padding:10px 14px;background:var(--bg-primary);border:1px solid var(--border-color);border-radius:8px;color:var(--text-primary);font-family:var(--font-mono);font-size:13px}.key-input:focus{outline:none;border-color:var(--accent-primary);box-shadow:0 0 8px rgba(229,179,92,.3)}.sidebar{gap:20px;height:calc(100vh - 120px);position:-webkit-sticky;position:sticky;top:100px}.sidebar,.upload-zone{display:flex;flex-direction:column}.upload-zone{border:2px dashed var(--border-color);border-radius:16px;padding:30px 20px;text-align:center;cursor:pointer;align-items:center;justify-content:center;gap:12px;transition:all .3s ease;background:hsla(0,0%,100%,.01)}.upload-zone:hover{border-color:var(--accent-primary);background:rgba(229,179,92,.03)}.upload-icon{color:var(--text-muted)}.upload-zone:hover .upload-icon{color:var(--accent-primary);animation:bounce 1s infinite alternate}.test-panel{padding:16px;display:flex;flex-direction:column;gap:12px}.test-poster-preview{width:100%;height:120px;border-radius:8px;object-fit:cover;border:1px solid var(--border-color);opacity:.7}.history-section{flex:1 1;display:flex;flex-direction:column;gap:10px;overflow:hidden}.history-title{font-size:14px;font-weight:700;text-transform:uppercase;color:var(--text-muted);letter-spacing:.5px}.history-list{display:flex;flex-direction:column;gap:8px;overflow-y:auto;padding-right:4px}.history-item{padding:12px;border-radius:10px;background:hsla(0,0%,100%,.02);border:1px solid var(--border-color);cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:8px}.history-item.active,.history-item:hover{background:var(--bg-tertiary);border-color:var(--accent-primary)}.history-item-details{display:flex;flex-direction:column;gap:4px;overflow:hidden}.history-item-name{font-size:14px;font-weight:600;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.history-item-sub{font-size:12px;color:var(--text-muted)}.dashboard,.dashboard-empty{display:flex;flex-direction:column;gap:20px}.dashboard-empty{align-items:center;justify-content:center;text-align:center;padding:80px 40px}.dashboard-empty-title{font-size:28px;font-weight:800;color:var(--text-primary)}.dashboard-empty-subtitle{font-size:16px;color:var(--text-secondary);max-width:500px}.loading-dashboard{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:60px;gap:24px}.scanning-poster-container{position:relative;width:200px;height:280px;border-radius:12px;overflow:hidden;box-shadow:0 0 30px rgba(0,240,255,.2)}.scanning-poster{width:100%;height:100%;object-fit:cover;filter:grayscale(80%) blur(1px)}.scanning-line{position:absolute;top:0;left:0;width:100%;height:4px;background:linear-gradient(90deg,transparent,var(--accent-secondary),transparent);box-shadow:0 0 12px 3px var(--accent-secondary);animation:scan 2s ease-in-out infinite}.loading-text{font-family:var(--font-mono);font-size:14px;color:var(--accent-secondary);animation:blink 1s infinite}.festival-header{padding:24px;display:flex;flex-direction:column;gap:12px;position:relative;overflow:hidden}.festival-info-row{display:flex;justify-content:space-between;align-items:flex-start;flex-wrap:wrap;gap:16px}.festival-title-group{display:flex;flex-direction:column;gap:6px}.festival-name{font-size:32px;font-weight:900;text-transform:uppercase;letter-spacing:-.5px}.festival-meta{display:flex;gap:16px;font-size:14px;color:var(--text-secondary)}.festival-badge{padding:4px 10px;border-radius:20px;background:var(--bg-tertiary);border:1px solid var(--border-color);font-family:var(--font-mono);font-size:12px;color:var(--accent-primary);display:inline-flex;align-items:center;gap:6px}.tab-row{display:flex;border-bottom:1px solid var(--border-color);gap:20px;padding:0 24px}.tab-btn{padding:16px 8px;background:transparent;border:none;border-bottom:2px solid transparent;color:var(--text-muted);font-family:var(--font-sans);font-weight:700;font-size:15px;cursor:pointer;display:flex;align-items:center;gap:8px;transition:all .2s ease}.tab-btn:hover{color:var(--text-primary)}.tab-btn.active{color:var(--accent-primary);border-bottom-color:var(--accent-primary)}.timeline-container{display:flex;flex-direction:column;gap:20px;padding:24px}.day-selector{display:flex;gap:8px;overflow-x:auto;padding-bottom:4px}.day-btn{padding:8px 16px;border-radius:8px;background:var(--bg-tertiary);border:1px solid var(--border-color);color:var(--text-secondary);font-weight:600;font-size:14px;cursor:pointer;white-space:nowrap}.day-btn:hover{color:var(--accent-primary)}.day-btn.active,.day-btn:hover{border-color:var(--accent-primary)}.day-btn.active{background:var(--accent-primary);color:#000}.stages-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));grid-gap:16px;gap:16px;align-items:start}.stage-column{display:flex;flex-direction:column;gap:12px;background:hsla(0,0%,100%,.01);padding:16px;border-radius:12px;border:1px solid var(--border-color)}.stage-name{font-size:14px;font-weight:800;text-transform:uppercase;color:var(--accent-primary);border-left:3px solid var(--accent-primary);padding-left:8px;margin-bottom:4px}.band-card{padding:14px;border-radius:10px;background:var(--bg-secondary);border:1px solid var(--border-color);cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:8px;transition:all .2s ease}.band-card:hover{transform:translateY(-2px);border-color:var(--accent-primary);box-shadow:0 4px 12px rgba(229,179,92,.15)}.band-card.active{border-color:var(--accent-secondary);background:rgba(0,240,255,.03);box-shadow:0 0 15px rgba(0,240,255,.15)}.band-info{display:flex;flex-direction:column;gap:4px;overflow:hidden}.band-name{font-weight:700;font-size:15px}.band-name,.band-song{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.band-song{font-size:12px}.band-badge,.band-song{color:var(--text-muted)}.band-badge{font-size:10px;padding:2px 6px;border-radius:4px;font-weight:700;background:var(--bg-tertiary);text-transform:uppercase}.band-card.active .band-badge{background:var(--accent-secondary);color:#000}.flat-list-container{padding:24px;display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));grid-gap:12px;gap:12px}.player-aside{display:flex;flex-direction:column;gap:20px;height:calc(100vh - 120px);position:-webkit-sticky;position:sticky;top:100px}.player-panel{flex:1 1;overflow:hidden;padding:20px;position:relative}.player-empty,.player-panel{display:flex;flex-direction:column}.player-empty{align-items:center;justify-content:center;height:100%;text-align:center;color:var(--text-muted);gap:16px}.player-title{font-size:18px;font-weight:800;text-transform:uppercase;color:var(--accent-primary);margin-bottom:12px}.video-wrapper{width:100%;aspect-ratio:16/9;border-radius:12px;overflow:hidden;border:1px solid var(--border-color);background:#000;box-shadow:0 0 20px rgba(0,0,0,.5);position:relative}.video-wrapper iframe{width:100%;height:100%;border:none}.track-info{margin-top:16px;display:flex;flex-direction:column;gap:6px}.track-artist{font-size:20px;font-weight:800;text-transform:uppercase;color:var(--text-primary)}.track-name{font-size:14px;color:var(--accent-primary);font-weight:600}.track-meta-pills{display:flex;gap:8px;flex-wrap:wrap;margin-top:4px}.track-meta-pills span{font-size:11px;padding:2px 6px;background:var(--bg-tertiary);border-radius:4px;color:var(--text-secondary)}.controls-row{gap:16px;margin:20px 0}.btn-control-play,.controls-row{display:flex;align-items:center;justify-content:center}.btn-control-play{width:52px;height:52px;border-radius:50%;background:var(--accent-primary);color:#000;border:none;cursor:pointer;transition:all .2s ease}.btn-control-play:hover{transform:scale(1.1);box-shadow:0 0 15px rgba(229,179,92,.4)}.btn-control-play:active{transform:scale(1)}.btn-control{width:38px;height:38px;border-radius:50%;background:var(--bg-tertiary);color:var(--text-primary);border:1px solid var(--border-color);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s ease}.btn-control:hover{border-color:var(--accent-primary);color:var(--accent-primary)}.options-row{justify-content:space-between;padding-top:14px;border-top:1px solid var(--border-color)}.option-toggle,.options-row{display:flex;align-items:center}.option-toggle{gap:8px;font-size:13px;color:var(--text-secondary);cursor:pointer}.option-toggle input{cursor:pointer}.equalizer{display:flex;align-items:flex-end;height:18px;gap:3px}.equalizer-bar{width:3px;height:4px;background-color:var(--accent-primary);border-radius:1px}.equalizer.active .equalizer-bar{animation:bounce-eq .8s ease-in-out infinite alternate}.equalizer.active .equalizer-bar:nth-child(2){animation-duration:.6s;animation-delay:-.2s}.equalizer.active .equalizer-bar:nth-child(3){animation-duration:.9s;animation-delay:-.5s}.equalizer.active .equalizer-bar:nth-child(4){animation-duration:.7s;animation-delay:-.1s}@keyframes pulse-glow{0%,to{text-shadow:0 0 10px rgba(229,179,92,.2);transform:scale(1)}50%{text-shadow:0 0 20px rgba(229,179,92,.6);transform:scale(1.05)}}@keyframes bounce{0%{transform:translateY(0)}to{transform:translateY(-5px)}}@keyframes scan{0%{top:0}50%{top:100%}to{top:0}}@keyframes blink{0%,to{opacity:1}50%{opacity:.4}}@keyframes bounce-eq{0%{height:4px}to{height:18px}}