/* HopOnTheBeats — style.css v9 */
:root{--bg:#050507;--bg2:#0a0a0f;--accent:#c8ff00;--accent2:#ff003c;--accent3:#7b2fff;--text:#f0f0f0;--muted:#555566;--card:#0e0e14;--border:#1a1a2a;}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0;}
html{scroll-behavior:smooth;}
body{background:var(--bg);color:var(--text);font-family:'Syne',sans-serif;overflow-x:hidden;}

/* noise overlay — MUST be z-index below everything interactive */
body::after{content:'';position:fixed;inset:0;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.65' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");opacity:.025;pointer-events:none;z-index:1;}

::-webkit-scrollbar{width:5px;}::-webkit-scrollbar-track{background:var(--bg);}::-webkit-scrollbar-thumb{background:var(--accent3);border-radius:2px;}::-webkit-scrollbar-thumb:hover{background:var(--accent);}

/* ═══ MINIMAL CUSTOM CURSOR ═══ */
#cursor-dot,#cursor-ring{ display:none !important; }
body{
  cursor: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="28" height="28" viewBox="0 0 28 28"><path d="M2 2l16 12-16 9V2z" fill="%23c8ff00" stroke="%23ffffff" stroke-width="0.5" stroke-linejoin="round"/></svg>') 2 2, auto;
}
a, button, input, select, textarea, .track-card, .album-card, .gallery-item, .filter-btn, .social-link, .play-btn, label, .modal-box button {
  cursor: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="28" height="28" viewBox="0 0 28 28"><path d="M2 2l16 12-16 9V2z" fill="%23ff003c" stroke="%23ffffff" stroke-width="0.5" stroke-linejoin="round"/></svg>') 2 2, auto;
}

#particles{position:fixed;inset:0;pointer-events:none;z-index:0;}

/* ══ NAVBAR ══ */
nav{position:fixed;top:0;left:0;right:0;z-index:500;display:flex;align-items:center;justify-content:space-between;padding:1.1rem 3rem;background:rgba(5,5,7,.9);backdrop-filter:blur(18px);border-bottom:1px solid rgba(200,255,0,.08);}
.nav-logo{font-family:'Bebas Neue',sans-serif;font-size:1.55rem;letter-spacing:4px;text-decoration:none;background:linear-gradient(90deg,var(--accent),#fff,var(--accent3));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;filter:drop-shadow(0 0 18px rgba(200,255,0,.4));}
.nav-logo span{background:linear-gradient(90deg,var(--accent2),#ff6b6b);-webkit-background-clip:text;background-clip:text;}
.nav-links{display:flex;gap:2rem;list-style:none;}
.nav-links a{color:var(--muted);text-decoration:none;font-size:.78rem;letter-spacing:2.5px;text-transform:uppercase;font-weight:700;transition:color .2s;position:relative;}
.nav-links a::after{content:'';position:absolute;bottom:-4px;left:0;width:0;height:1px;background:var(--accent);transition:width .3s;}
.nav-links a:hover{color:var(--accent);}
.nav-links a:hover::after{width:100%;}
.nav-right{display:flex;align-items:center;gap:1rem;}
.nav-cta{background:var(--accent);color:#000;padding:.5rem 1.4rem;font-size:.75rem;font-weight:800;letter-spacing:2px;text-transform:uppercase;text-decoration:none;border-radius:2px;transition:all .2s;}
.nav-cta:hover{background:var(--accent2);color:#fff;}
.nav-login-btn{background:transparent;border:1px solid rgba(200,255,0,.3);color:var(--accent);padding:.45rem 1.2rem;font-size:.75rem;font-weight:700;letter-spacing:2px;text-transform:uppercase;border-radius:2px;transition:all .2s;font-family:'Syne',sans-serif;}
.nav-login-btn:hover{background:rgba(200,255,0,.1);}
.nav-user{display:flex;align-items:center;gap:.7rem;}
.nav-avatar{width:32px;height:32px;border-radius:50%;border:2px solid var(--accent);object-fit:cover;}
.nav-avatar-ph{width:32px;height:32px;border-radius:50%;background:var(--accent3);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:800;font-size:.85rem;}
.nav-username{font-size:.75rem;color:var(--text);font-weight:600;max-width:100px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.nav-logout-btn{background:transparent;border:1px solid var(--border);color:var(--muted);padding:.35rem .8rem;font-size:.68rem;font-weight:700;letter-spacing:1px;text-transform:uppercase;border-radius:2px;transition:all .2s;font-family:'Syne',sans-serif;}
.nav-logout-btn:hover{border-color:var(--accent2);color:var(--accent2);}
.nav-admin-open-btn{background:var(--accent);color:#000;border:none;width:32px;height:32px;border-radius:50%;font-size:.9rem;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:all .2s;}
.nav-admin-open-btn:hover{background:#fff;transform:rotate(90deg);}
.admin-indicator{font-size:.55rem;letter-spacing:2px;color:#000;background:var(--accent);padding:.15rem .5rem;border-radius:2px;font-family:'Space Mono',monospace;font-weight:700;}
.nav-hamburger{display:none;flex-direction:column;gap:5px;background:none;border:none;padding:4px;z-index:600;}
.nav-hamburger span{display:block;width:24px;height:2px;background:var(--text);border-radius:2px;transition:all .3s;}
.nav-hamburger.open span:nth-child(1){transform:rotate(45deg) translate(5px,5px);}
.nav-hamburger.open span:nth-child(2){opacity:0;}
.nav-hamburger.open span:nth-child(3){transform:rotate(-45deg) translate(5px,-5px);}

/* ══ MODAL ══ */
.modal-overlay{position:fixed;inset:0;background:rgba(0,0,0,.88);z-index:9000;display:flex;align-items:center;justify-content:center;backdrop-filter:blur(12px);}
.modal-box{background:#0c0c14;border:1px solid rgba(200,255,0,.18);border-radius:12px;padding:2.5rem;width:100%;max-width:420px;position:relative;box-shadow:0 0 80px rgba(200,255,0,.07);z-index:9001;}
.modal-close{position:absolute;top:1rem;right:1rem;background:none;border:none;color:var(--muted);font-size:1.1rem;transition:color .2s;}
.modal-close:hover{color:var(--accent2);}
.modal-logo-wrap{text-align:center;margin-bottom:1.2rem;}
.modal-logo-text{font-family:'Bebas Neue',sans-serif;font-size:1.8rem;letter-spacing:4px;background:linear-gradient(90deg,var(--accent),#fff,var(--accent3));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;}
.modal-logo-text span{background:linear-gradient(90deg,var(--accent2),#ff6b6b);-webkit-background-clip:text;background-clip:text;}
.modal-title{font-family:'Bebas Neue',sans-serif;font-size:2rem;letter-spacing:3px;text-align:center;color:var(--text);margin-bottom:.3rem;}
.modal-sub{font-size:.72rem;color:var(--muted);letter-spacing:1.5px;text-align:center;margin-bottom:1.8rem;font-family:'Space Mono',monospace;line-height:1.5;}
.google-btn{width:100%;display:flex;align-items:center;justify-content:center;gap:.75rem;background:#fff;color:#111;border:none;padding:.9rem 1.5rem;border-radius:6px;font-size:.88rem;font-weight:700;transition:all .2s;font-family:'Syne',sans-serif;margin-bottom:1.2rem;}
.google-btn:hover{background:#f0f0f0;box-shadow:0 4px 16px rgba(0,0,0,.2);}
.modal-divider{display:flex;align-items:center;gap:1rem;margin-bottom:1.2rem;}
.modal-divider::before,.modal-divider::after{content:'';flex:1;height:1px;background:var(--border);}
.modal-divider span{font-size:.7rem;color:var(--muted);font-family:'Space Mono',monospace;letter-spacing:2px;}
.login-error{color:var(--accent2);font-size:.75rem;margin:.5rem 0;font-family:'Space Mono',monospace;padding:.5rem;background:rgba(255,0,60,.06);border-radius:3px;border-left:2px solid var(--accent2);}
.modal-note{font-size:.68rem;color:var(--muted);text-align:center;margin-top:1.2rem;font-family:'Space Mono',monospace;line-height:1.5;border-top:1px solid var(--border);padding-top:1rem;}

/* FORMS */
.form-group{display:flex;flex-direction:column;gap:.4rem;flex:1;}
.form-group label,.admin-form label{font-size:.68rem;letter-spacing:2px;text-transform:uppercase;color:var(--muted);font-family:'Space Mono',monospace;}
.form-group input,.form-group select,.admin-form input,.admin-form select{background:#131320;border:1px solid var(--border);color:var(--text);padding:.7rem 1rem;font-family:'Syne',sans-serif;font-size:.9rem;border-radius:4px;transition:border-color .2s;outline:none;width:100%;}
.form-group input:focus,.admin-form input:focus,.admin-form select:focus{border-color:rgba(200,255,0,.4);}
.form-row{display:flex;gap:1rem;margin-bottom:1rem;}
.btn-primary{background:var(--accent);color:#000;padding:.85rem 2rem;font-weight:800;font-size:.8rem;letter-spacing:2px;text-transform:uppercase;border:none;border-radius:4px;text-decoration:none;transition:all .2s;display:inline-flex;align-items:center;justify-content:center;}
.btn-primary:hover{background:#fff;}
.btn-outline{border:1px solid var(--muted);color:var(--text);padding:.85rem 2rem;font-weight:700;font-size:.8rem;letter-spacing:2px;text-transform:uppercase;background:none;border-radius:4px;text-decoration:none;transition:all .2s;display:inline-flex;align-items:center;justify-content:center;}
.btn-outline:hover{border-color:var(--accent);color:var(--accent);}
.checkbox-label{display:flex;align-items:center;gap:.5rem;color:var(--muted);font-size:.78rem;margin-bottom:.8rem;font-family:'Space Mono',monospace;}
.checkbox-label input{width:auto;accent-color:var(--accent);}

/* ADMIN PANEL */
.admin-panel{position:fixed;inset:0;background:#08080f;z-index:800;overflow-y:auto;}
.admin-header{display:flex;align-items:center;gap:1rem;padding:1rem 2rem;background:#0c0c18;border-bottom:1px solid var(--border);position:sticky;top:0;z-index:810;flex-wrap:wrap;}
.admin-title{font-family:'Bebas Neue',sans-serif;font-size:1.2rem;letter-spacing:2px;color:var(--accent);flex:1;min-width:120px;}
.admin-tabs{display:flex;gap:.4rem;flex-wrap:wrap;}
.atab{background:transparent;border:1px solid var(--border);color:var(--muted);padding:.45rem 1rem;font-size:.72rem;font-weight:700;letter-spacing:1px;text-transform:uppercase;border-radius:2px;transition:all .2s;font-family:'Syne',sans-serif;}
.atab:hover,.atab.active{border-color:var(--accent);color:var(--accent);background:rgba(200,255,0,.05);}
.admin-close-btn{background:var(--accent2);color:#fff;border:none;padding:.5rem 1rem;font-size:.72rem;font-weight:700;letter-spacing:1px;text-transform:uppercase;border-radius:2px;font-family:'Syne',sans-serif;margin-left:auto;}
.admin-close-btn:hover{background:#ff3355;}
.admin-tab-content{display:none;padding:2rem;}
.admin-tab-content.active{display:block;}
.admin-section-title{font-family:'Bebas Neue',sans-serif;font-size:1.4rem;letter-spacing:2px;color:var(--accent);margin-bottom:1.2rem;padding-bottom:.5rem;border-bottom:1px solid var(--border);}
.admin-form{background:#0c0c18;border:1px solid var(--border);border-radius:6px;padding:1.5rem;margin-bottom:1.5rem;}
.btn-admin-submit{background:var(--accent);color:#000;border:none;padding:.75rem 2rem;font-size:.8rem;font-weight:800;letter-spacing:2px;text-transform:uppercase;border-radius:3px;transition:all .2s;font-family:'Syne',sans-serif;}
.btn-admin-submit:hover{background:#fff;}
.file-drop{position:relative;border:1.5px dashed var(--border);border-radius:4px;padding:1rem;text-align:center;transition:all .3s;overflow:hidden;}
.file-drop:hover{border-color:var(--accent);background:rgba(200,255,0,.02);}
.file-drop span{font-size:.72rem;color:var(--muted);font-family:'Space Mono',monospace;pointer-events:none;display:block;}
.file-drop input{position:absolute;inset:0;opacity:0;width:100%;height:100%;}
.img-preview{width:100%;max-height:110px;object-fit:cover;border-radius:3px;margin-top:.5rem;}
.audio-name{font-size:.7rem;color:var(--accent);font-family:'Space Mono',monospace;margin-top:.4rem;padding:.3rem .6rem;background:rgba(200,255,0,.06);border-radius:2px;}
.upload-progress{margin-top:1rem;}
.progress-bar-upload{height:4px;background:var(--border);border-radius:2px;overflow:hidden;margin-bottom:.3rem;}
.progress-fill-upload{height:100%;background:linear-gradient(90deg,var(--accent3),var(--accent));width:0%;transition:width .3s;}
.upload-progress span{font-size:.68rem;color:var(--muted);font-family:'Space Mono',monospace;}
.admin-list{display:flex;flex-direction:column;gap:.5rem;margin-top:1rem;}
.admin-list-row{display:flex;align-items:center;gap:1rem;background:#0c0c18;border:1px solid var(--border);border-radius:4px;padding:.7rem 1rem;}
.admin-list-row:hover{border-color:rgba(200,255,0,.2);}
.admin-thumb{width:44px;height:44px;object-fit:cover;border-radius:3px;flex-shrink:0;}
.admin-thumb-ph{width:44px;height:44px;background:#1a1a2e;border-radius:3px;display:flex;align-items:center;justify-content:center;font-size:1.2rem;flex-shrink:0;}
.admin-row-info{flex:1;min-width:0;}
.admin-row-title{font-weight:700;font-size:.9rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.admin-row-sub{font-size:.68rem;color:var(--muted);font-family:'Space Mono',monospace;margin-top:.2rem;}
.admin-del-btn{background:rgba(255,0,60,.08);border:1px solid rgba(255,0,60,.25);color:var(--accent2);padding:.3rem .6rem;border-radius:2px;font-size:.85rem;transition:all .2s;flex-shrink:0;}
.admin-del-btn:hover{background:var(--accent2);color:#fff;}
.empty-list{color:var(--muted);font-size:.8rem;font-family:'Space Mono',monospace;padding:1rem;text-align:center;}
.admin-gallery-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:1rem;margin-top:1rem;}
.admin-gal-item{position:relative;border-radius:4px;overflow:hidden;border:1px solid var(--border);}
.admin-gal-item img{width:100%;height:100px;object-fit:cover;display:block;}
.admin-gal-item span{display:block;padding:.3rem .5rem;font-size:.65rem;color:var(--muted);font-family:'Space Mono',monospace;background:#0c0c18;}
.admin-gal-item button{position:absolute;top:.3rem;right:.3rem;background:rgba(0,0,0,.7);border:none;color:var(--accent2);padding:.2rem .4rem;border-radius:2px;font-size:.75rem;}
.admin-gal-item button:hover{background:var(--accent2);color:#fff;}
.admin-save-msg{color:var(--accent);font-family:'Space Mono',monospace;font-size:.75rem;margin-top:.8rem;}

/* HERO */
#hero{min-height:100vh;min-height:100svh;display:flex;align-items:center;padding:0 4rem;position:relative;overflow:hidden;}
.hero-bg{position:absolute;inset:0;background:radial-gradient(ellipse 80% 50% at 70% 50%,rgba(123,47,255,.18) 0%,transparent 70%),radial-gradient(ellipse 40% 40% at 20% 80%,rgba(200,255,0,.08) 0%,transparent 60%);animation:bgPulse 8s ease-in-out infinite alternate;}
.hero-bg-img{position:absolute;inset:0;background-size:cover;background-position:center;opacity:0;transition:opacity 1s;z-index:1;}
.hero-bg-img::after{content:'';position:absolute;inset:0;background:rgba(5,5,7,.65);}
@keyframes bgPulse{0%{opacity:.7}100%{opacity:1}}
.grid-lines{position:absolute;inset:0;background-image:linear-gradient(rgba(200,255,0,.03) 1px,transparent 1px),linear-gradient(90deg,rgba(200,255,0,.03) 1px,transparent 1px);background-size:60px 60px;}
.hero-content{position:relative;z-index:3;max-width:900px;}
.hero-tag{display:inline-block;font-size:.7rem;letter-spacing:4px;text-transform:uppercase;color:var(--accent);font-family:'Space Mono',monospace;border:1px solid rgba(200,255,0,.3);padding:.3rem 1rem;margin-bottom:2rem;animation:fadeUp 1s .2s both;}
.hero-title{font-family:'Bebas Neue',sans-serif;font-size:clamp(4rem,12vw,11rem);line-height:.88;letter-spacing:-2px;margin-bottom:2rem;animation:fadeUp 1s .4s both;background:linear-gradient(135deg,#fff 0%,var(--accent) 50%,#fff 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;}
.hero-title .line2{background:linear-gradient(135deg,var(--accent2) 0%,#ff6b6b 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;display:block;margin-left:3rem;}
.hero-subtitle{font-size:.95rem;color:var(--muted);max-width:480px;line-height:1.7;margin-bottom:3rem;animation:fadeUp 1s .6s both;font-family:'Space Mono',monospace;}
.hero-btns{display:flex;gap:1.2rem;animation:fadeUp 1s .8s both;}
.hero-waveform{position:absolute;right:4rem;top:50%;transform:translateY(-50%);display:flex;align-items:center;gap:4px;height:180px;animation:fadeUp 1s 1s both;z-index:2;}
.wave-bar{width:4px;border-radius:2px;background:linear-gradient(to top,var(--accent3),var(--accent));animation:waveDance var(--dur,1.2s) ease-in-out infinite alternate;}
@keyframes waveDance{from{height:var(--min-h,10px);opacity:.4}to{height:var(--max-h,80px);opacity:1}}
@keyframes fadeUp{from{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}
.scroll-hint{position:absolute;bottom:2.5rem;left:50%;transform:translateX(-50%);display:flex;flex-direction:column;align-items:center;gap:.5rem;color:var(--muted);font-size:.65rem;letter-spacing:3px;text-transform:uppercase;font-family:'Space Mono',monospace;animation:fadeUp 1s 1.4s both;z-index:2;}
.scroll-line{width:1px;height:50px;background:linear-gradient(var(--accent),transparent);animation:scrollLine 1.8s ease-in-out infinite;}
@keyframes scrollLine{0%{transform:scaleY(0);transform-origin:top}50%{transform:scaleY(1);transform-origin:top}51%{transform:scaleY(1);transform-origin:bottom}100%{transform:scaleY(0);transform-origin:bottom}}

/* MARQUEE */
.marquee-wrap{background:var(--accent);padding:1.2rem 0;overflow:hidden;}
.marquee-inner{display:flex;gap:3rem;animation:marqueeScroll 18s linear infinite;white-space:nowrap;}
.marquee-inner span{font-family:'Bebas Neue',sans-serif;font-size:1.1rem;letter-spacing:3px;color:#000;}
.marquee-inner .dot{color:rgba(0,0,0,.4);}
@keyframes marqueeScroll{from{transform:translateX(0)}to{transform:translateX(-50%)}}

/* SECTIONS */
section{padding:7rem 4rem;}
.section-label{font-family:'Space Mono',monospace;font-size:.65rem;letter-spacing:4px;text-transform:uppercase;color:var(--accent);margin-bottom:1rem;}
.section-title{font-family:'Bebas Neue',sans-serif;font-size:clamp(2.5rem,6vw,5rem);line-height:1;margin-bottom:1rem;}
.reveal{opacity:0;transform:translateY(40px);transition:opacity .8s ease,transform .8s ease;}
.reveal.visible{opacity:1;transform:translateY(0);}

/* FILTER */
.filter-bar{display:flex;flex-wrap:wrap;gap:.6rem;margin-bottom:2.5rem;margin-top:1.5rem;}
.filter-btn{background:transparent;border:1px solid var(--border);color:var(--muted);padding:.45rem 1.1rem;font-size:.72rem;font-weight:700;letter-spacing:1.5px;text-transform:uppercase;border-radius:2px;transition:all .2s;font-family:'Syne',sans-serif;}
.filter-btn:hover,.filter-btn.active{border-color:var(--accent);color:var(--accent);background:rgba(200,255,0,.06);}
.filter-album{border-color:rgba(123,47,255,.4);color:rgba(123,47,255,.8);}
.filter-album.active{border-color:var(--accent3);color:var(--accent3);background:rgba(123,47,255,.08);}

/* MUSIC */
.music-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:1.5rem;}
.no-tracks-msg{grid-column:1/-1;display:flex;flex-direction:column;align-items:center;gap:1rem;padding:4rem;color:var(--muted);font-family:'Space Mono',monospace;font-size:.85rem;text-align:center;}
.no-tracks-msg span{font-size:3rem;}
.track-card{background:var(--card);border:1px solid var(--border);border-radius:8px;padding:1.2rem;position:relative;overflow:hidden;transition:border-color .3s,transform .3s;}
.track-card:hover{border-color:rgba(200,255,0,.2);transform:translateY(-4px);}
.track-cover{width:100%;aspect-ratio:1;border-radius:6px;overflow:hidden;position:relative;margin-bottom:1rem;}
.track-cover-img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .4s;}
.track-card:hover .track-cover-img{transform:scale(1.05);}
.track-cover-placeholder{display:flex;align-items:center;justify-content:center;width:100%;height:100%;background:linear-gradient(135deg,var(--card),#16213e);font-size:3.5rem;}
.vinyl-overlay{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity .3s;}
.track-card.playing .vinyl-overlay{opacity:1;}
.vinyl{width:70px;height:70px;border-radius:50%;background:conic-gradient(#111 0deg,#222 45deg,#111 90deg,#222 135deg,#111 180deg,#222 225deg,#111 270deg,#222 315deg);border:3px solid rgba(200,255,0,.3);animation:spin 3s linear infinite;}
@keyframes spin{to{transform:rotate(360deg)}}
.track-name{font-weight:800;font-size:1rem;margin-bottom:.3rem;}
.track-genre{font-size:.7rem;color:var(--accent);letter-spacing:2px;text-transform:uppercase;font-family:'Space Mono',monospace;margin-bottom:.4rem;}
.track-album-tag{font-size:.65rem;color:var(--accent3);letter-spacing:1.5px;font-family:'Space Mono',monospace;margin-bottom:.4rem;}
.track-desc{font-size:.73rem;color:var(--muted);line-height:1.5;margin-bottom:.5rem;}
.track-controls{display:flex;align-items:center;gap:.8rem;margin-top:.8rem;}
.play-btn{width:40px;height:40px;background:var(--accent);color:#000;border:none;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:1rem;transition:all .2s;flex-shrink:0;animation:playPulse 2.5s ease-out infinite;}
.play-btn:hover{background:#fff;transform:scale(1.1);}
.track-card.playing .play-btn{background:var(--accent2);color:#fff;animation:none;box-shadow:0 0 20px rgba(255,0,60,.5);}
@keyframes playPulse{0%{box-shadow:0 0 0 0 rgba(200,255,0,.4)}70%{box-shadow:0 0 0 10px rgba(200,255,0,0)}100%{box-shadow:0 0 0 0 rgba(200,255,0,0)}}
.progress-bar{flex:1;height:4px;background:var(--border);border-radius:2px;overflow:hidden;}
.progress-fill{height:100%;background:linear-gradient(90deg,var(--accent3),var(--accent));width:0%;transition:width .3s;border-radius:2px;}
.track-time{font-size:.65rem;color:var(--muted);font-family:'Space Mono',monospace;flex-shrink:0;}
.mini-wave{display:flex;align-items:center;gap:2px;height:20px;opacity:0;transition:opacity .3s;}
.track-card.playing .mini-wave{opacity:1;}
.mini-bar{width:3px;background:var(--accent);border-radius:2px;animation:miniWave var(--d,.8s) ease-in-out infinite alternate;}
@keyframes miniWave{from{height:3px}to{height:var(--h,16px)}}
.track-purchase{margin-top:.8rem;}
.buy-btn{width:100%;background:linear-gradient(135deg,var(--accent3),#5533ff);color:#fff;border:none;padding:.65rem 1rem;font-size:.75rem;font-weight:800;letter-spacing:1.5px;text-transform:uppercase;border-radius:4px;transition:all .2s;font-family:'Syne',sans-serif;}
.buy-btn:hover{opacity:.85;transform:translateY(-1px);}
.buy-login-prompt{background:linear-gradient(135deg,#1a1a2e,#2a1a3e);color:rgba(123,47,255,.8);border:1px solid rgba(123,47,255,.3);}
.buy-login-prompt:hover{border-color:var(--accent3);color:var(--accent3);}
.free-tag{display:inline-block;background:rgba(200,255,0,.1);border:1px solid rgba(200,255,0,.3);color:var(--accent);font-size:.65rem;letter-spacing:2px;text-transform:uppercase;padding:.3rem .7rem;border-radius:2px;font-family:'Space Mono',monospace;}

/* ALBUMS */
#albums{background:var(--bg2);}
.albums-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:1.5rem;margin-top:2rem;}
.album-card{background:var(--card);border:1px solid var(--border);border-radius:8px;overflow:hidden;transition:transform .3s,border-color .3s;}
.album-card:hover{transform:translateY(-6px);border-color:rgba(200,255,0,.25);}
.album-cover{position:relative;aspect-ratio:1;overflow:hidden;}
.album-cover-img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .4s;}
.album-card:hover .album-cover-img{transform:scale(1.06);}
.album-cover-placeholder{width:100%;height:100%;display:flex;align-items:center;justify-content:center;font-size:4rem;background:linear-gradient(135deg,#0e0e14,#1a1a2e);}
.album-overlay{position:absolute;inset:0;background:linear-gradient(to top,rgba(0,0,0,.7),transparent);display:flex;align-items:flex-end;padding:1rem;opacity:0;transition:opacity .3s;}
.album-card:hover .album-overlay{opacity:1;}
.album-track-count{font-size:.68rem;letter-spacing:2px;color:var(--accent);font-family:'Space Mono',monospace;text-transform:uppercase;}
.album-info{padding:1rem;}
.album-name{font-weight:800;font-size:1rem;font-family:'Bebas Neue',sans-serif;letter-spacing:2px;}
.album-desc{font-size:.72rem;color:var(--muted);margin-top:.3rem;font-family:'Space Mono',monospace;}

/* ABOUT */
#about{position:relative;overflow:hidden;background:linear-gradient(135deg,rgba(123,47,255,.05) 0%,transparent 50%,rgba(200,255,0,.02) 100%);padding:7rem 4rem !important;border-top:1px solid rgba(200,255,0,.1);}
.about-grid{display:grid;grid-template-columns:1fr 1fr;gap:6rem;align-items:center;margin-top:4rem;}
.about-img-wrap{position:relative;}
.about-img-placeholder{width:100%;aspect-ratio:4/5;background:linear-gradient(135deg,#1a1a2e 0%,#0f3460 50%,#16213e 100%);border-radius:3px;display:flex;align-items:center;justify-content:center;font-size:6rem;position:relative;overflow:hidden;}
.about-img-placeholder::after{content:'';position:absolute;inset:0;background:linear-gradient(to top,rgba(200,255,0,.15),transparent);}
.about-story-img{width:100%;aspect-ratio:4/5;object-fit:cover;border-radius:3px;display:block;}
.about-frame{position:absolute;top:-12px;right:-12px;bottom:12px;left:12px;border:1px solid rgba(200,255,0,.2);border-radius:3px;pointer-events:none;}
.about-badge{position:absolute;bottom:2rem;left:-2rem;background:var(--accent);color:#000;padding:1rem 1.5rem;font-family:'Bebas Neue',sans-serif;font-size:1.6rem;line-height:1;border-radius:2px;}
.about-badge small{display:block;font-family:'Space Mono',monospace;font-size:.55rem;letter-spacing:2px;text-transform:uppercase;margin-top:.2rem;}
.about-text .section-label{margin-bottom:1rem;}
.about-text h2{margin-bottom:2rem;}
.about-text p{color:var(--muted);line-height:1.9;margin-bottom:1.8rem;font-size:.95rem;letter-spacing:.3px;background:rgba(200,255,0,.02);padding:1.2rem 1.5rem;border-left:3px solid var(--accent3);border-radius:2px;transition:all .3s ease;}
.about-text p:hover{background:rgba(200,255,0,.05);border-left-color:var(--accent);transform:translateX(5px);}
.stats-row{display:flex;gap:3rem;margin-top:3rem;padding-top:2rem;border-top:1px solid var(--border);}
.stat-num{font-family:'Bebas Neue',sans-serif;font-size:3.5rem;color:var(--accent);line-height:1;}
.stat-label{font-size:.7rem;letter-spacing:2px;text-transform:uppercase;color:var(--muted);font-family:'Space Mono',monospace;}

/* GALLERY */
#gallery{background:var(--bg2);}
.gallery-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1rem;margin-top:2rem;}
.gallery-item{border-radius:8px;overflow:hidden;position:relative;background:var(--card);aspect-ratio:4/3;}
.gallery-img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .5s;}
.gallery-item:hover .gallery-img{transform:scale(1.06);}
.gallery-overlay{position:absolute;inset:0;background:linear-gradient(to top,rgba(0,0,0,.7) 0%,transparent 60%);opacity:0;transition:opacity .3s;display:flex;align-items:flex-end;padding:1.5rem;}
.gallery-item:hover .gallery-overlay{opacity:1;}
.gallery-caption{font-size:.75rem;letter-spacing:2px;text-transform:uppercase;color:var(--accent);font-family:'Space Mono',monospace;}
.no-gallery-msg{display:flex;flex-direction:column;align-items:center;gap:1rem;padding:4rem;color:var(--muted);font-family:'Space Mono',monospace;font-size:.85rem;text-align:center;}
.no-gallery-msg span{font-size:3rem;}

/* CONTACT */
#contact{text-align:center;position:relative;overflow:hidden;}
.contact-glow{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:600px;height:600px;background:radial-gradient(circle,rgba(123,47,255,.15) 0%,transparent 70%);pointer-events:none;}
#contact .section-title{font-size:clamp(3rem,8vw,7rem);margin-bottom:1.5rem;}
#contact p{color:var(--muted);max-width:500px;margin:0 auto 3rem;line-height:1.7;font-family:'Space Mono',monospace;font-size:.85rem;}
.contact-links{display:flex;justify-content:center;gap:1.5rem;flex-wrap:wrap;}
.social-link{border:1px solid var(--border);color:var(--muted);padding:.9rem 2rem;font-size:.75rem;letter-spacing:2px;text-transform:uppercase;text-decoration:none;font-family:'Space Mono',monospace;border-radius:2px;transition:all .2s;display:flex;align-items:center;gap:.7rem;}
.social-link:hover{border-color:var(--accent);color:var(--accent);}

/* FOOTER */
footer{border-top:1px solid var(--border);padding:2rem 4rem;display:flex;align-items:center;justify-content:space-between;font-size:.7rem;color:var(--muted);font-family:'Space Mono',monospace;}
footer .logo{font-family:'Bebas Neue',sans-serif;font-size:1.4rem;letter-spacing:3px;background:linear-gradient(90deg,var(--accent),var(--accent3));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;}

/* ══ MOBILE ══ */
@media(max-width:768px){

  /* ── NAVBAR ── */
  nav{
    padding:.75rem 0.8rem;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:.3rem;
    flex-wrap:nowrap;
  }
  .nav-logo{font-size:1.05rem;letter-spacing:2px;flex-shrink:0;}
  .nav-links{
    display:none;
    position:fixed;
    inset:0;
    background:rgba(5,5,7,.98);
    backdrop-filter:blur(20px);
    flex-direction:column;
    align-items:center;
    justify-content:center;
    gap:2rem;
    z-index:555;
    list-style:none;
  }
  .nav-links.open{display:flex;}
  .nav-links li a{
    font-size:1.8rem !important;
    letter-spacing:4px;
    color:var(--text) !important;
    text-decoration:none;
  }
  /* Hamburger always visible, on top of overlay */
  .nav-hamburger{
    display:flex;
    z-index:600;
    flex-shrink:0;
    order:2;
  }
  .nav-right{
    display:flex;
    align-items:center;
    gap:.4rem;
    flex-shrink:0;
    order:3;
  }
  /* Hide text items that cause overflow */
  .nav-username,
  .admin-indicator,
  .nav-logout-btn{display:none;}
  /* Keep Book Now but smaller */
  .nav-cta{
    padding:.35rem .65rem;
    font-size:.6rem;
    letter-spacing:1px;
    white-space:nowrap;
  }
  .nav-avatar,.nav-avatar-ph{width:26px;height:26px;font-size:.7rem;}
  .nav-admin-open-btn{width:26px;height:26px;font-size:.75rem;}
  .nav-login-btn{padding:.35rem .7rem;font-size:.65rem;letter-spacing:1px;}

  /* ── HERO ── */
  #hero{padding:5rem 1rem 3rem;min-height:100svh;}
  .hero-content{word-break:break-word;}
  .hero-waveform{display:none;}
  .hero-title{font-size:clamp(2.8rem,14vw,4.5rem);letter-spacing:-1px;word-break:break-word;}
  .hero-title .line2{margin-left:0.5rem;}
  .hero-subtitle{font-size:.75rem;max-width:100%;word-wrap:break-word;}
  .hero-tag{word-break:break-word;}
  .hero-btns{
    flex-direction:column;
    gap:.8rem;
    align-items:stretch;
    width:100%;
    max-width:300px;
  }
  .btn-primary,.btn-outline{
    width:100%;
    text-align:center;
    padding:.85rem 1rem;
    font-size:.78rem;
    word-break:break-word;
  }

  /* ── SECTIONS ── */
  section{padding:3.5rem 1rem;word-break:break-word;}
  .section-title{font-size:clamp(1.8rem,9vw,3rem);word-wrap:break-word;}
  .section-label{font-size:.6rem;letter-spacing:2px;}

  /* ── MUSIC ── */
  .music-grid{grid-template-columns:repeat(2,1fr);gap:.7rem;}
  .track-card{padding:.7rem;border-radius:6px;}
  .track-cover{margin-bottom:.7rem;}
  .track-name{font-size:.78rem;word-break:break-word;}
  .track-genre{font-size:.55rem;}
  .track-desc{font-size:.68rem;display:none;}
  .play-btn{width:32px;height:32px;font-size:.75rem;}
  .track-time,.mini-wave{display:none;}
  .filter-bar{gap:.3rem;margin-bottom:1.5rem;flex-wrap:wrap;}
  .filter-btn{padding:.25rem .5rem;font-size:.55rem;white-space:nowrap;}

  /* ── ALBUMS ── */
  .albums-grid{grid-template-columns:repeat(2,1fr);gap:.7rem;}
  .album-name{font-size:.85rem;}

  /* ── ABOUT ── */
  #about{padding:3.5rem 1rem !important;}
  .about-grid{grid-template-columns:1fr;gap:2rem;}
  .about-img-wrap{margin-bottom:1.5rem;}
  .about-badge{left:0;bottom:1rem;font-size:1.2rem;padding:.7rem 1rem;}
  .stats-row{gap:1.2rem;flex-wrap:wrap;}
  .stat-num{font-size:2rem;}
  .about-text p{padding:.8rem 1rem;margin-bottom:1.2rem;font-size:.85rem;}

  /* ── GALLERY ── */
  .gallery-grid{grid-template-columns:repeat(2,1fr);gap:.4rem;}
  .gallery-item{aspect-ratio:3/3;}
  .gallery-caption{font-size:.68rem;}

  /* ── CONTACT ── */
  #contact{padding:3.5rem 1rem !important;}
  #contact p{font-size:.78rem;word-break:break-word;}
  #contact .section-title{word-break:break-word;}
  .contact-links{
    flex-direction:column;
    align-items:center;
    gap:.6rem;
  }
  .social-link{
    width:100%;
    max-width:260px;
    justify-content:center;
    padding:.65rem 1rem;
    font-size:.68rem;
    word-break:break-word;
  }

  /* ── FOOTER ── */
  footer{
    flex-direction:column;
    gap:.6rem;
    text-align:center;
    padding:1.2rem 0.8rem;
    font-size:.65rem;
  }

  /* ── MODAL ── */
  .modal-box{
    margin:.5rem;
    padding:1.5rem 1rem;
    border-radius:10px;
    max-width:calc(100vw - 1rem);
  }
  .modal-title{font-size:1.6rem;}
  .google-btn{padding:.8rem 1rem;font-size:.82rem;}

  /* ── ADMIN ── */
  .admin-header{padding:.6rem .8rem;gap:.4rem;flex-wrap:wrap;}
  .admin-title{font-size:.85rem;width:100%;order:-1;}
  .admin-tabs{overflow-x:auto;width:100%;padding-bottom:.2rem;}
  .atab{white-space:nowrap;padding:.3rem .6rem;font-size:.6rem;}
  .admin-tab-content{padding:.8rem;}
  .form-row{flex-direction:column;}
}

/* ── TINY PHONES ── */
@media(max-width:380px){
  .music-grid,.albums-grid{grid-template-columns:1fr;gap:.5rem;}
  .gallery-grid{grid-template-columns:1fr;}
  .hero-title{font-size:clamp(2.4rem,15vw,3.5rem);}
  nav{padding:.65rem .6rem;}
  .nav-logo{font-size:.9rem;letter-spacing:1px;}
  section{padding:2.5rem 0.8rem;}
  .section-title{font-size:clamp(1.5rem,8vw,2.2rem);}
  .about-grid{gap:1.5rem;}
  .about-text p{padding:.6rem .8rem;margin-bottom:1rem;}
  .track-card{padding:.6rem;}
  .modal-box{padding:1rem 0.8rem;}
}

/* ── LANDSCAPE MOBILE ── */
@media(max-width:768px)and(orientation:landscape){
  #hero{min-height:auto;padding:4.5rem 1.5rem 2rem;}
  .hero-title{font-size:clamp(2rem,8vw,3rem);}
  .nav-links{gap:1.2rem;}
  .nav-links li a{font-size:1.3rem !important;}
  section{padding:3rem 1.5rem;}
}

/* ── TABLET ── */
@media(min-width:769px)and(max-width:1024px){
  nav{padding:1rem 2rem;}
  section{padding:5rem 2.5rem;}
  .about-grid{gap:3rem;}
  .music-grid{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));}
}
