@import url('https://fonts.googleapis.com/css2?family=Orbitron:wght@400..900&family=Pixelify+Sans:wght@400..700&display=swap');

:root {
    --bg: #0b0b12;
    --card: #0f1220;
    --accent: #ff4d8a;
    --muted: #9aa3bf;
    --glass: rgba(255, 255, 255, 0.04)
}

* {
    box-sizing: border-box
}

body {
    font-family: 'Orbitron', 'Pixelify Sans', system-ui, Segoe UI, Roboto, Helvetica, Arial, sans-serif;
    font-weight: 300;
    background: linear-gradient(180deg, #071021 0%, #0b0b12 100%);
    color: #e6eef8;
    margin: 0;
    min-height: 100vh;
    display: flex;
    align-items: center;
    justify-content: center
}

.container {
    width: 100%;
    max-width: 760px;
    padding: 28px;
    border-radius: 12px;
    background: linear-gradient(180deg, rgba(255, 255, 255, 0.02), rgba(255, 255, 255, 0.01));
    box-shadow: 0 6px 30px rgba(2, 6, 23, 0.6)
}

h1 {
    font-weight: 600;
    margin: 0 0 6px;
    font-size: 28px
}

.lede {
    color: var(--muted);
    margin: 0 0 18px
}

.file {
    display: block;
    margin-bottom: 16px
}

.file input[type=file] {
    display: block;
    margin-top: 8px;
    font-family: "Orbitron", "Pixelify Sans", system-ui, Segoe UI, Roboto, Helvetica, Arial, sans-serif;
    padding: 8px;
}

.controls {
    display: grid;
    grid-template-columns: 1fr;
    gap: 10px;
    margin-bottom: 16px
}

label {
    font-size: 13px;
    color: var(--muted)
}

input[type=range] {
    width: 100%
}

.actions {
    display: flex;
    gap: 10px;
    align-items: center
}

button {
    background: var(--accent);
    border: none;
    color: white;
    padding: 10px 14px;
    border-radius: 8px;
    cursor: pointer
}

button:disabled {
    opacity: .5;
    cursor: default
}

a {
    color: var(--accent);
    padding: 8px 12px;
    border-radius: 8px;
    background: transparent;
    border: 1px solid rgba(255, 255, 255, 0.04);
    text-decoration: none
}

.hidden {
    display: none
}

.help {
    margin-top: 18px;
    color: var(--muted)
}

footer {
    margin-top: 18px;
    color: var(--muted);
    font-size: 12px
}

@media(min-width:640px) {
    .controls {
        grid-template-columns: repeat(2, 1fr)
    }
}

/* VHS / Neon hover effect for buttons and links */
button, a {
    position: relative;
    transition: transform .12s ease, box-shadow .12s ease, color .12s ease;
    will-change: transform, box-shadow;
}

button {
    overflow: visible;
}

button, a {
    color: #fff;
}

button:hover, a:hover {
    transform: translateY(-2px);
    box-shadow:
        0 0 8px rgba(255,77,138,0.35),
        0 0 18px rgba(122,92,255,0.18),
        0 0 30px rgba(122,252,255,0.12),
        0 8px 30px rgba(2,6,23,0.6);
    color: #fff;
    text-shadow:
        0 0 6px rgba(255,255,255,0.9),
        0 0 12px rgba(255,77,138,0.9),
        0 0 24px rgba(122,92,255,0.8),
        0 0 48px rgba(122,252,255,0.6);
}

/* scanline overlay for the VHS look */
button::after, a::after {
    content: '';
    position: absolute;
    left: -8%; right: -8%; top: -8%; bottom: -8%;
    background-image: linear-gradient(rgba(255,255,255,0.02) 1px, transparent 1px);
    background-size: 100% 4px;
    pointer-events: none;
    opacity: 0;
    transition: opacity .2s ease;
    mix-blend-mode: overlay;
    border-radius: inherit;
}
button:hover::after, a:hover::after {
    opacity: 0.6;
    animation: vhs-scan 0.8s linear infinite;
}

/* subtle neon glow layer */
button::before, a::before {
    content: '';
    position: absolute;
    inset: 0;
    border-radius: inherit;
    pointer-events: none;
    mix-blend-mode: screen;
    opacity: 0;
    transition: opacity .12s ease;
}
button:hover::before, a:hover::before {
    opacity: 1;
    box-shadow:
        0 0 18px rgba(255,77,138,0.18),
        0 0 28px rgba(122,92,255,0.12);
}

@keyframes vhs-scan {
    0% { transform: translateY(0) skewY(0); opacity: 0.65; }
    25% { transform: translateY(1px) skewY(-0.15deg); opacity: 0.6; }
    50% { transform: translateY(2px) skewY(-0.3deg); opacity: 0.55; }
    75% { transform: translateY(1px) skewY(0.15deg); opacity: 0.6; }
    100% { transform: translateY(0) skewY(0); opacity: 0.65; }
}

/* Progress bar styles */
.progress-container{display:flex;align-items:center;gap:12px;margin-top:14px}
.progress-bar{flex:1;height:12px;background:linear-gradient(180deg,rgba(255,255,255,0.03),rgba(0,0,0,0.06));border-radius:999px;overflow:hidden;box-shadow:inset 0 1px 0 rgba(255,255,255,0.02)}
.progress-fill{height:100%;background:linear-gradient(90deg,#ff4d8a 0%, #7a5cff 40%, #7afcff 100%);box-shadow:0 6px 18px rgba(122,92,255,0.08);transition:width .18s linear}
.progress-label{min-width:46px;color:var(--muted);font-size:13px;text-align:right}
.progress-container.hidden{display:none}

/* audio player styling */
.player{width:100%;margin-top:12px;border-radius:8px;background:transparent}

/* toast */
.toast{position:fixed;left:50%;transform:translateX(-50%);bottom:28px;background:linear-gradient(90deg, rgba(122,92,255,0.14), rgba(255,77,138,0.12));color:#fff;padding:10px 14px;border-radius:10px;box-shadow:0 8px 38px rgba(2,6,23,0.6);font-size:14px;z-index:9999;min-width:220px;text-align:center;opacity:0;transition:opacity .18s ease, transform .18s ease}
.toast.hidden{display:none;opacity:0}
.toast.show{display:block;opacity:1;transform:translateX(-50%) translateY(-4px)}

