:root {
    --neon-yellow: #f0ff00; 
    --black: #050505;
}

* { margin: 0; padding: 0; box-sizing: border-box; }

body { background-color: var(--black); color: var(--neon-yellow); font-family: 'Space Mono', monospace; height: 100vh; overflow: hidden; }

#canvas-container { position: fixed; top: 0; left: 0; width: 100%; height: 100%; z-index: 1; }

body::after {
    content: ""; position: fixed; top: 0; left: 0; width: 100%; height: 100%;
    background: linear-gradient(rgba(18, 16, 16, 0) 50%, rgba(0, 0, 0, 0.1) 50%);
    background-size: 100% 4px; z-index: 2; pointer-events: none;
}

/* UI SECTIONS */
.overlay-section {
    position: fixed; top: 0; left: 0; width: 100%; height: 100%;
    background: rgba(5, 5, 5, 0.97);
    z-index: 200; display: none; flex-direction: column; padding: 100px 40px;
    overflow-y: auto;
}
.overlay-section.active { display: flex; animation: scanFade 0.5s ease-in-out; }
.content-box { max-width: 800px; margin: 0 auto; width: 100%; }
.content-box h2 { font-size: 2rem; margin-bottom: 30px; border-bottom: 1px solid var(--neon-yellow); padding-bottom: 10px; }

/* HEADER */
.terminal-header { position: fixed; top: 30px; left: 40px; z-index: 10; cursor: pointer; }
.logo-text { font-size: clamp(2rem, 10vw, 5rem); border-bottom: 2px solid var(--neon-yellow); display: inline-block; padding-bottom: 5px; letter-spacing: -2px; }

/* BEAT CONTROL */
.volcano-sound-container.right-axis {
    position: fixed; right: 40px; top: 50%; transform: translateY(-50%);
    z-index: 20; display: flex; flex-direction: column; align-items: flex-end; gap: 10px;
}
.beat-btn {
    padding: 12px 30px; min-width: 200px; background: transparent!important; border: 2px solid var(--neon-yellow)!important;
    color: var(--neon-yellow)!important; font-family: inherit; font-size: 1rem; cursor: pointer; pointer-events: auto;
}
.beat-btn.playing { animation: pulse 2s infinite; background: rgba(240, 255, 0, 0.1)!important; }
@keyframes pulse { 50% { box-shadow: 0 0 20px var(--neon-yellow); } }

/* FOOTER MODERNO */
footer {
    position: fixed; bottom: 0; left: 0; width: 100%;
    background: rgba(5, 5, 5, 0.85);
    backdrop-filter: blur(8px);
    z-index: 50;
    padding: 30px 40px 15px 40px;
    display: flex;
    flex-direction: column;
    gap: 20px;
    border-top: 1px solid rgba(240, 255, 0, 0.1);
}

.footer-main {
    display: flex;
    justify-content: space-between;
    align-items: flex-end;
}

.footer-block { display: flex; flex-direction: column; gap: 10px; }
.footer-block.center { align-items: center; flex: 1; }

/* LOGO FOOTER */
.footer-logo {
    height: 60px;
    width: auto;
    filter: drop-shadow(0 0 10px rgba(240, 255, 0, 0.3));
    transition: 0.4s ease;
}
.footer-logo:hover { transform: scale(1.08); filter: drop-shadow(0 0 15px var(--neon-yellow)); }

.command-menu { display: flex; flex-direction: column; gap: 8px; }
.cmd-link { text-decoration: none; color: var(--neon-yellow); font-size: 1.1rem; font-weight: 700; opacity: 0.4; transition: 0.3s; }
.cmd-link:hover { opacity: 1; transform: translateX(5px); }

.footer-link { color: var(--neon-yellow); text-decoration: none; font-size: 0.85rem; display: flex; align-items: center; gap: 10px; opacity: 0.6; transition: 0.3s; }
.footer-link:hover { opacity: 1; }

/* FASCIA LEGALE */
.footer-legal {
    border-top: 1px solid rgba(240, 255, 0, 0.05);
    padding-top: 15px;
    text-align: center;
}
.legal-wrap {
    display: flex;
    justify-content: center;
    gap: 20px;
    font-size: 0.65rem;
    color: var(--neon-yellow);
    opacity: 0.4;
    letter-spacing: 2px;
}
.legal-sep { opacity: 0.2; }

/* MOBILE RESPONSIVE */
@media (max-width: 768px) {
    footer { padding: 20px; position: relative; background: var(--black); }
    .footer-main { flex-direction: column; align-items: center; gap: 30px; }
    .footer-logo { height: 45px; }
    .legal-wrap { flex-direction: column; gap: 5px; }
    .legal-sep { display: none; }
    .volcano-sound-container.right-axis {
        position: relative; right: auto; top: auto; transform: none;
        margin: 30px 0; align-items: center;
    }
}
