.video-uploader{width:100%}.drop-zone{border:3px dashed var(--border-color);border-radius:16px;padding:3rem 2rem;text-align:center;cursor:pointer;transition:all .2s;background:var(--bg-color)}.drop-zone:hover{border-color:var(--primary-color);background:rgba(var(--primary-rgb),.05)}.drop-zone.dragging{border-color:var(--primary-color);background:rgba(var(--primary-rgb),.1);transform:scale(1.02)}.drop-zone-content{pointer-events:none}.upload-icon{font-size:4rem;display:block;margin-bottom:1rem}.drop-zone h3{font-size:1.25rem;margin-bottom:.5rem;color:var(--text-color)}.drop-zone p{color:var(--text-secondary);margin-bottom:.5rem}.file-requirements{font-size:.85rem;color:var(--text-secondary);opacity:.8}.video-preview{background:var(--card-bg);border-radius:16px;overflow:hidden}.preview-header{display:flex;justify-content:space-between;align-items:center;padding:1rem 1.5rem;border-bottom:1px solid var(--border-color)}.preview-header h3{font-size:1rem;margin:0}.remove-btn{background:none;border:none;color:var(--error-color, #ff4757);cursor:pointer;font-size:.9rem;text-decoration:underline}.preview-content{padding:1.5rem}.preview-video{width:100%;max-height:400px;border-radius:8px;background:#000;margin-bottom:1rem}.file-info{padding:1rem;background:var(--bg-color);border-radius:8px}.file-name{font-weight:600;margin-bottom:.25rem;word-break:break-all}.file-details{font-size:.85rem;color:var(--text-secondary)}.file-details span{margin-right:.5rem}.thumbnail-preview{padding:0 1.5rem 1.5rem;display:flex;align-items:center;gap:1rem}.thumbnail-label{font-size:.85rem;color:var(--text-secondary)}.thumbnail-preview img{width:120px;height:auto;border-radius:8px;border:2px solid var(--border-color)}.upload-progress{padding:1.5rem;border-top:1px solid var(--border-color)}.progress-bar{height:8px;background:var(--border-color);border-radius:4px;overflow:hidden;margin-bottom:.75rem}.progress-fill{height:100%;background:linear-gradient(90deg,var(--primary-color),var(--secondary-color));border-radius:4px;transition:width .3s ease}.progress-info{display:flex;justify-content:space-between;font-size:.85rem;margin-bottom:.75rem}.progress-percent{font-weight:600;color:var(--primary-color)}.progress-bytes{color:var(--text-secondary)}.progress-actions{display:flex;gap:.5rem}.pause-btn,.resume-btn{background:none;border:1px solid var(--border-color);padding:.5rem 1rem;border-radius:6px;cursor:pointer;font-size:.85rem;color:var(--text-color);transition:all .2s}.pause-btn:hover,.resume-btn:hover{border-color:var(--primary-color);color:var(--primary-color)}.upload-error{margin:0 1.5rem 1rem;padding:1rem;background:#ff47571a;border:1px solid rgba(255,71,87,.2);border-radius:8px;color:#ff4757;font-size:.9rem;display:flex;align-items:center;gap:.5rem}.error-icon{font-size:1.1rem}.uploader-actions{display:flex;justify-content:flex-end;gap:1rem;padding:1.5rem;border-top:1px solid var(--border-color)}.upload-success{text-align:center;padding:3rem 2rem;background:var(--card-bg);border-radius:16px}.success-icon{font-size:4rem;display:block;margin-bottom:1rem}.upload-success h3{color:#2ed573;margin-bottom:.5rem}.upload-success p{color:var(--text-secondary)}@media (max-width: 768px){.drop-zone{padding:2rem 1.5rem}.upload-icon{font-size:3rem}.preview-video{max-height:300px}.thumbnail-preview{flex-direction:column;align-items:flex-start}.uploader-actions{flex-direction:column}.uploader-actions button{width:100%}}.dance-challenge-page{padding-top:var(--header-height)}.challenge-hero{padding:4rem 0 2rem;text-align:center;background:linear-gradient(135deg,#e03ac126,#9c27b01a)}.challenge-hero h1{font-size:2.5rem;color:#fff;margin-bottom:.5rem}.hero-subtitle{font-size:1.1rem;color:#ffffffb3;margin-bottom:2rem}.challenge-stats-bar{display:flex;justify-content:center;gap:3rem;flex-wrap:wrap}.challenge-stats-bar .stat{display:flex;flex-direction:column;align-items:center}.challenge-stats-bar .stat-number{font-size:2rem;font-weight:700;color:var(--primary-glow, #e03ac1)}.challenge-stats-bar .stat-label{font-size:.85rem;color:#fff9}.challenge-tabs{background:#0003;border-bottom:1px solid rgba(255,255,255,.1);position:sticky;top:var(--header-height);z-index:10}.challenge-tabs .container{display:flex;gap:.5rem;padding:1rem;overflow-x:auto}.tab-btn{background:none;border:none;color:#fff9;padding:.75rem 1.5rem;font-size:.95rem;cursor:pointer;border-radius:8px;transition:all .2s;white-space:nowrap}.tab-btn:hover{background:#ffffff0d;color:#fff}.tab-btn.active{background:var(--primary-glow, #e03ac1);color:#fff}.challenge-content{padding:2rem 1rem}.challenge-card{background:#ffffff0d;border:1px solid rgba(255,255,255,.1);border-radius:16px;overflow:hidden}.challenge-card.featured{border-color:#e03ac14d}.challenge-header{display:flex;justify-content:space-between;align-items:center;padding:1rem 1.5rem;background:#0003}.challenge-status-badge{background:var(--primary-glow, #e03ac1);color:#fff;padding:.35rem .75rem;border-radius:20px;font-size:.75rem;font-weight:600;letter-spacing:.5px}.challenge-timer{color:#fffc;font-size:.9rem;font-weight:500}.challenge-main{display:grid;grid-template-columns:1fr 300px;gap:2rem;padding:1.5rem}@media (max-width: 768px){.challenge-main{grid-template-columns:1fr}}.challenge-info h2{font-size:1.75rem;color:#fff;margin-bottom:.75rem}.song-info{display:flex;flex-direction:column;gap:.25rem;margin-bottom:1rem}.song-title{font-size:1.25rem;color:var(--primary-glow, #e03ac1);font-weight:600}.artist-name{color:#ffffffb3}.challenge-description{color:#fffc;line-height:1.6;margin-bottom:1rem}.difficulty-badge{display:inline-block;padding:.35rem .75rem;border-radius:15px;font-size:.8rem;font-weight:500;text-transform:capitalize;margin-bottom:.75rem}.difficulty-badge[data-difficulty=beginner]{background:#22c55e33;color:#4ade80}.difficulty-badge[data-difficulty=intermediate]{background:#facc1533;color:#fde047}.difficulty-badge[data-difficulty=advanced]{background:#ef444433;color:#f87171}.challenge-hashtag{color:#60a5fa;font-size:1.1rem;font-weight:500}.challenge-cover{width:100%;border-radius:12px;object-fit:cover}.challenge-rules{padding:1.5rem;background:#0003}.challenge-rules h3{color:#fff;font-size:1.1rem;margin-bottom:.75rem}.challenge-rules ul{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:.5rem}.challenge-rules li{color:#fffc;padding-left:1.5rem;position:relative;font-size:.9rem}.challenge-rules li:before{content:"✓";position:absolute;left:0;color:var(--primary-glow, #e03ac1)}.challenge-prizes{padding:1.5rem}.challenge-prizes h3{color:#fff;font-size:1.1rem;margin-bottom:1rem}.prizes-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:1rem}.prize-card{background:#ffffff0d;border-radius:12px;padding:1rem;text-align:center}.prize-card.place-1{background:linear-gradient(135deg,#ffd70033,#ffc1071a);border:1px solid rgba(255,215,0,.3)}.prize-card.place-2{background:linear-gradient(135deg,#c0c0c033,#9ca3af1a);border:1px solid rgba(192,192,192,.3)}.prize-card.place-3{background:linear-gradient(135deg,#cd7f3233,#b453091a);border:1px solid rgba(205,127,50,.3)}.prize-place{display:block;font-size:1.25rem;font-weight:700;color:#fff;margin-bottom:.25rem}.prize-title{display:block;color:var(--primary-glow, #e03ac1);font-weight:500;margin-bottom:.25rem}.prize-desc{display:block;font-size:.85rem;color:#fff9}.challenge-actions{display:flex;gap:1rem;padding:1.5rem;flex-wrap:wrap}.no-challenge{text-align:center;padding:4rem 2rem}.no-challenge h2{color:#fff;margin-bottom:.75rem}.no-challenge p{color:#fff9}.submissions-section{padding:1rem 0}.submissions-header{margin-bottom:1.5rem}.submissions-header h2{color:#fff;margin-bottom:.5rem}.voting-notice{color:var(--primary-glow, #e03ac1);font-weight:500}.submissions-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1.5rem}.no-submissions{text-align:center;padding:3rem;color:#fff9}.submission-card{background:#ffffff0d;border:1px solid rgba(255,255,255,.1);border-radius:12px;overflow:hidden;position:relative;transition:transform .2s,border-color .2s}.submission-card:hover{transform:translateY(-4px);border-color:#e03ac14d}.submission-card.top-three{border-color:#ffd7004d}.submission-rank{position:absolute;top:.75rem;left:.75rem;background:#000000b3;color:#fff;padding:.35rem .6rem;border-radius:8px;font-size:.9rem;font-weight:600;z-index:2}.submission-video{position:relative;aspect-ratio:16/9;background:#0000004d}.submission-video a{display:block;width:100%;height:100%}.submission-video img{width:100%;height:100%;object-fit:cover}.video-placeholder{width:100%;height:100%;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#1a1a2e,#16213e)}.play-icon{font-size:3rem;color:var(--primary-glow, #e03ac1)}.platform-badge{position:absolute;bottom:.5rem;right:.5rem;background:#000c;color:#fff;padding:.25rem .5rem;border-radius:4px;font-size:.7rem;text-transform:uppercase}.submission-info{padding:1rem}.submitter{display:flex;align-items:center;gap:.5rem;margin-bottom:.5rem}.submitter-avatar{width:28px;height:28px;border-radius:50%;object-fit:cover}.submitter-name{color:#fff;font-weight:500}.group-badge{background:#60a5fa33;color:#60a5fa;padding:.15rem .4rem;border-radius:8px;font-size:.7rem}.submission-caption{color:#ffffffb3;font-size:.9rem;margin-bottom:.75rem;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.submission-actions{display:flex;justify-content:space-between;align-items:center}.vote-count{display:flex;align-items:center;gap:.35rem;color:#fff;font-weight:500}.heart-icon{font-size:1.1rem}.voted-badge{color:var(--primary-glow, #e03ac1);font-size:.85rem;font-weight:500}.winners-section h2{color:#fff;margin-bottom:1.5rem}.past-challenges-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:1.5rem}.past-challenge-card{background:#ffffff0d;border:1px solid rgba(255,255,255,.1);border-radius:12px;overflow:hidden;cursor:pointer;transition:transform .2s,border-color .2s}.past-challenge-card:hover{transform:translateY(-4px);border-color:#e03ac14d}.past-challenge-image{aspect-ratio:16/9;background:#0000004d}.past-challenge-image img{width:100%;height:100%;object-fit:cover}.past-challenge-info{padding:1rem}.past-challenge-info h3{color:#fff;font-size:1.1rem;margin-bottom:.25rem}.past-challenge-info p{color:#fff9;font-size:.9rem;margin-bottom:.5rem}.past-challenge-stats{display:flex;gap:1rem;color:var(--primary-glow, #e03ac1);font-size:.85rem}.submit-modal{max-width:500px}.submit-modal h2{color:#fff;margin-bottom:.25rem}.modal-subtitle{color:var(--primary-glow, #e03ac1);margin-bottom:1.5rem}.platform-selector{display:flex;gap:.5rem}.platform-btn{flex:1;padding:.75rem;background:#ffffff0d;border:1px solid rgba(255,255,255,.1);color:#ffffffb3;border-radius:8px;cursor:pointer;transition:all .2s}.platform-btn:hover{background:#ffffff1a;color:#fff}.platform-btn.active{background:var(--primary-glow, #e03ac1);border-color:var(--primary-glow, #e03ac1);color:#fff}.hashtag-display{background:#60a5fa26;border:1px solid rgba(96,165,250,.3);color:#60a5fa;padding:.75rem;border-radius:8px;font-family:monospace;font-size:1.1rem}.submit-modal small{display:block;margin-top:.5rem;color:#ffffff80;font-size:.8rem}.how-it-works{padding:4rem 0;background:#0003}.how-it-works h2{text-align:center;color:#fff;font-size:1.75rem;margin-bottom:2rem}.steps-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:2rem}.step{text-align:center;padding:1.5rem}.step-number{width:48px;height:48px;background:linear-gradient(135deg,var(--primary-glow, #e03ac1),#9c27b0);color:#fff;font-size:1.25rem;font-weight:700;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;margin-bottom:1rem}.step h3{color:#fff;font-size:1.1rem;margin-bottom:.5rem}.step p{color:#fff9;font-size:.9rem}.modal-overlay{position:fixed;inset:0;background:#000c;display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem}.modal-content{background:#1a1a2e;border:1px solid rgba(255,255,255,.1);border-radius:16px;padding:2rem;max-height:90vh;overflow-y:auto;position:relative}.modal-close{position:absolute;top:1rem;right:1rem;background:none;border:none;color:#fff9;font-size:1.5rem;cursor:pointer;padding:.5rem;line-height:1}.modal-close:hover{color:#fff}.form-group{margin-bottom:1.25rem}.form-group label{display:block;color:#fffc;font-size:.9rem;margin-bottom:.5rem}.form-group input,.form-group textarea{width:100%;background:#ffffff0d;border:1px solid rgba(255,255,255,.1);border-radius:8px;padding:.75rem 1rem;color:#fff;font-size:.95rem}.form-group input:focus,.form-group textarea:focus{outline:none;border-color:var(--primary-glow, #e03ac1)}.form-group input::placeholder,.form-group textarea::placeholder{color:#fff6}.modal-actions{display:flex;gap:1rem;justify-content:flex-end;margin-top:1.5rem}.submit-mode-toggle{display:flex;gap:.5rem;margin-bottom:1.5rem;padding:.25rem;background:#ffffff0d;border-radius:10px}.submit-mode-toggle .mode-btn{flex:1;padding:.75rem 1rem;background:transparent;border:none;border-radius:8px;color:#fff9;font-size:.9rem;cursor:pointer;transition:all .2s}.submit-mode-toggle .mode-btn:hover{color:#fff;background:#ffffff0d}.submit-mode-toggle .mode-btn.active{background:var(--primary-glow, #e03ac1);color:#fff}.upload-complete{text-align:center;padding:2rem;background:#2ed5731a;border:1px solid rgba(46,213,115,.2);border-radius:12px}.upload-success-indicator{display:flex;align-items:center;justify-content:center;gap:.5rem;margin-bottom:1rem;color:#2ed573;font-weight:600}.upload-success-indicator .success-icon{font-size:1.25rem}.change-video-btn{background:none;border:1px solid rgba(255,255,255,.2);padding:.5rem 1rem;border-radius:6px;color:#ffffffb3;cursor:pointer;font-size:.85rem;transition:all .2s}.change-video-btn:hover{border-color:#fff6;color:#fff}@media (max-width: 768px){.challenge-hero h1{font-size:1.75rem}.challenge-stats-bar{gap:1.5rem}.challenge-stats-bar .stat-number{font-size:1.5rem}.submissions-grid{grid-template-columns:1fr}.steps-grid{grid-template-columns:repeat(2,1fr);gap:1rem}}
