/*
Theme Name: SoundBattle
Theme URI: https://soundbattle.com
Author: SoundBattle
Author URI: https://soundbattle.com
Description: Dark futuristic theme for the SoundBattle AI Song Competition. Integrates with the Suno Competition plugin for OAuth, uploads, ratings, leaderboard, and payments.
Version: 1.0.0
Requires at least: 6.0
Requires PHP: 8.0
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: soundbattle
Tags: music, competition, dark, custom-menu, custom-logo
*/

/* ============ RESET & VARIABLES ============ */
*,*::before,*::after{margin:0;padding:0;box-sizing:border-box}
:root{
    --bg-deep:#06020f;--bg-surface:#0c0618;--bg-card:#120a24;--bg-card-hover:#1a0f33;
    --neon-pink:#ff2d78;--neon-cyan:#00f0ff;--neon-purple:#b44aff;--neon-gold:#ffb800;
    --text-primary:#f0eaf8;--text-secondary:#8a7da8;--text-muted:#5a4f73;
    --gradient-fire:linear-gradient(135deg,#ff2d78 0%,#ffb800 100%);
    --gradient-ocean:linear-gradient(135deg,#00f0ff 0%,#b44aff 100%);
    --glow-pink:0 0 40px rgba(255,45,120,.3);--glow-cyan:0 0 40px rgba(0,240,255,.3);
    --font-display:'Bebas Neue',cursive;--font-heading:'Syne',sans-serif;
    --font-body:'Outfit',sans-serif;--font-mono:'Space Mono',monospace;
}
html{scroll-behavior:smooth}
body{background:var(--bg-deep);color:var(--text-primary);font-family:var(--font-body);overflow-x:hidden;line-height:1.6}
body::before{content:'';position:fixed;inset:0;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.04'/%3E%3C/svg%3E");pointer-events:none;z-index:9999}
::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:var(--bg-deep)}::-webkit-scrollbar-thumb{background:var(--neon-purple);border-radius:3px}
a{color:inherit;text-decoration:none}
img{max-width:100%;height:auto}

/* ============ NAV ============ */
.sb-nav{position:fixed;top:0;left:0;right:0;z-index:1000;padding:20px 50px;display:flex;align-items:center;justify-content:space-between;background:rgba(6,2,15,.5);backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);border-bottom:1px solid rgba(180,74,255,.06);transition:all .4s}
.sb-nav.scrolled{padding:14px 50px;background:rgba(6,2,15,.94)}
.nav-logo{font-family:var(--font-display);font-size:30px;letter-spacing:4px;background:var(--gradient-fire);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;text-decoration:none}
.sb-nav .menu{display:flex;align-items:center;gap:36px;list-style:none}
.sb-nav .menu li a{color:var(--text-secondary);text-decoration:none;font-size:14px;font-weight:500;letter-spacing:.3px;transition:color .3s;position:relative}
.sb-nav .menu li a:hover{color:var(--text-primary)}
.sb-nav .menu li a::after{content:'';position:absolute;bottom:-4px;left:0;width:0;height:2px;background:var(--gradient-fire);transition:width .3s}
.sb-nav .menu li a:hover::after{width:100%}
.sb-nav .menu li.menu-cta a{padding:10px 28px;background:var(--gradient-fire);color:#fff;border-radius:50px;font-weight:700;box-shadow:0 4px 20px rgba(255,45,120,.25);transition:all .3s}
.sb-nav .menu li.menu-cta a:hover{transform:translateY(-2px);box-shadow:0 8px 30px rgba(255,45,120,.4)}
.sb-nav .menu li.menu-cta a::after{display:none}
.sb-nav .current-menu-item a{color:var(--neon-cyan)!important}

/* ============ BUTTONS ============ */
.btn-primary{display:inline-flex;align-items:center;justify-content:center;gap:10px;padding:18px 48px;background:var(--gradient-fire);color:#fff;border:none;border-radius:60px;font-family:var(--font-body);font-size:17px;font-weight:700;cursor:pointer;transition:all .3s;text-decoration:none;box-shadow:0 8px 40px rgba(255,45,120,.3);position:relative;overflow:hidden}
.btn-primary::before{content:'';position:absolute;inset:0;background:linear-gradient(135deg,rgba(255,255,255,.2) 0%,transparent 60%);opacity:0;transition:opacity .3s}
.btn-primary:hover{transform:translateY(-3px);box-shadow:0 14px 50px rgba(255,45,120,.45);color:#fff}
.btn-primary:hover::before{opacity:1}
.btn-primary:disabled{opacity:.5;pointer-events:none}
.btn-secondary{display:inline-flex;align-items:center;justify-content:center;gap:10px;padding:18px 44px;background:transparent;color:var(--text-primary);border:1px solid rgba(255,255,255,.12);border-radius:60px;font-family:var(--font-body);font-size:17px;font-weight:500;cursor:pointer;transition:all .3s;text-decoration:none;backdrop-filter:blur(8px)}
.btn-secondary:hover{border-color:var(--neon-cyan);color:var(--neon-cyan)}
.btn-small{padding:12px 28px;font-size:14px}
.btn-back{padding:16px 24px;background:transparent;border:1px solid rgba(255,255,255,.08);border-radius:14px;color:var(--text-secondary);font-family:var(--font-body);font-size:14px;cursor:pointer;transition:all .3s}
.btn-back:hover{border-color:var(--text-primary);color:var(--text-primary)}
.btn-row{display:flex;gap:14px;justify-content:space-between;margin-top:36px}
.btn-row .btn-primary{flex:1}

/* ============ SECTIONS ============ */
.section{padding:120px 50px;position:relative}
.section-label{font-family:var(--font-mono);font-size:12px;color:var(--neon-cyan);letter-spacing:4px;text-transform:uppercase;margin-bottom:14px}
.section-title{font-family:var(--font-display);font-size:clamp(42px,6vw,76px);letter-spacing:3px;line-height:1;margin-bottom:18px}
.section-desc{font-size:17px;color:var(--text-secondary);max-width:540px;font-weight:300}

/* ============ PAGE HEADER (shared) ============ */
.page-hero{text-align:center;margin-bottom:56px;position:relative}
.page-hero::before{content:'';position:absolute;top:-100px;left:50%;transform:translateX(-50%);width:600px;height:300px;background:radial-gradient(ellipse,rgba(180,74,255,.08) 0%,transparent 70%);pointer-events:none}
.page-label{font-family:var(--font-mono);font-size:12px;color:var(--neon-cyan);letter-spacing:4px;text-transform:uppercase;margin-bottom:14px}
.page-title{font-family:var(--font-display);font-size:clamp(42px,6vw,68px);letter-spacing:3px;line-height:1;margin-bottom:14px}
.page-desc{font-size:17px;color:var(--text-secondary);max-width:500px;margin:0 auto}

/* ============ FORM FIELDS ============ */
.form-field{margin-bottom:20px}
.form-label{display:block;font-size:13px;font-weight:500;color:var(--text-secondary);margin-bottom:8px;letter-spacing:.3px}
.form-label .req{color:var(--neon-pink)}
.form-input,.form-textarea,.form-select{width:100%;padding:14px 16px;background:rgba(255,255,255,.03);border:1px solid rgba(255,255,255,.08);border-radius:12px;color:var(--text-primary);font-family:var(--font-body);font-size:14px;transition:all .3s;outline:none}
.form-input:focus,.form-textarea:focus,.form-select:focus{border-color:var(--neon-purple);box-shadow:0 0 0 3px rgba(180,74,255,.12)}
.form-input::placeholder,.form-textarea::placeholder{color:var(--text-muted)}
.form-textarea{min-height:100px;resize:vertical;line-height:1.6}
.form-select{cursor:pointer}
.form-select option{background:var(--bg-card);color:var(--text-primary)}
.form-hint{font-size:12px;color:var(--text-muted);margin-top:6px}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}
.form-full{grid-column:1/-1}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.char-count{font-size:11px;color:var(--text-muted);text-align:right;margin-top:4px}

/* ============ CARDS ============ */
.sb-card{background:var(--bg-card);border:1px solid rgba(255,255,255,.04);border-radius:20px;padding:32px;transition:all .3s}
.sb-card:hover{border-color:rgba(255,255,255,.08)}

/* ============ ORBS / BG ============ */
.hero-orb{position:absolute;border-radius:50%;filter:blur(120px);opacity:.35;animation:orbFloat 14s ease-in-out infinite}
.hero-orb-1{width:600px;height:600px;background:var(--neon-pink);top:-200px;right:-100px}
.hero-orb-2{width:500px;height:500px;background:var(--neon-purple);bottom:-150px;left:-100px;animation-delay:-5s}
.hero-orb-3{width:400px;height:400px;background:var(--neon-cyan);top:35%;left:60%;opacity:.18;animation-delay:-9s}
@keyframes orbFloat{0%,100%{transform:translate(0,0) scale(1)}33%{transform:translate(30px,-40px) scale(1.05)}66%{transform:translate(-20px,30px) scale(.95)}}

/* ============ REVEAL ============ */
.reveal{opacity:0;transform:translateY(40px);transition:all .8s cubic-bezier(.16,1,.3,1)}
.reveal.visible{opacity:1;transform:translateY(0)}
.reveal-d1{transition-delay:.1s}.reveal-d2{transition-delay:.2s}.reveal-d3{transition-delay:.3s}.reveal-d4{transition-delay:.35s}

/* ============ PARTICLE ============ */
.particle{position:absolute;border-radius:50%;pointer-events:none;animation:floatP 15s linear infinite}
@keyframes floatP{0%{transform:translateY(100vh) rotate(0);opacity:0}10%{opacity:1}90%{opacity:1}100%{transform:translateY(-100vh) rotate(720deg);opacity:0}}

/* ============ ANIMATIONS ============ */
@keyframes fadeUp{from{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}
@keyframes pulse{0%,100%{opacity:1;transform:scale(1)}50%{opacity:.4;transform:scale(1.6)}}
@keyframes blink{50%{opacity:0}}
@keyframes barPulse{0%,100%{transform:scaleY(.3)}50%{transform:scaleY(1)}}
@keyframes spin{to{transform:rotate(360deg)}}
@keyframes fadeIn{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}
@keyframes popIn{0%{transform:scale(0) rotate(-20deg);opacity:0}100%{transform:scale(1) rotate(0);opacity:1}}

/* ============ FOOTER ============ */
.sb-footer{padding:48px 50px;border-top:1px solid rgba(255,255,255,.04);display:flex;align-items:center;justify-content:space-between;color:var(--text-muted);font-size:13px}
.sb-footer a{color:var(--text-secondary);text-decoration:none}
.sb-footer a:hover{color:var(--neon-cyan)}
.sb-footer .menu{display:flex;gap:28px;list-style:none}
.sb-footer .menu li a{color:var(--text-secondary);text-decoration:none}
.sb-footer .menu li a:hover{color:var(--neon-cyan)}

/* ============ RESPONSIVE ============ */
@media(max-width:1024px){
    .section{padding:80px 28px}
    .sb-nav{padding:16px 24px}
}
@media(max-width:640px){
    .sb-nav .menu{display:none}
    .section{padding:60px 16px}
    .form-grid,.form-row{grid-template-columns:1fr}
    .btn-row{flex-direction:column}
    .sb-footer{flex-direction:column;gap:16px;text-align:center;padding:30px 20px}
}
