/* ============================================================
   CYBER RUNNER v2.0 — ESTILO COMPLETO
   ============================================================ */

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

:root {
    --cyan:    #00f2ff;
    --purple:  #bc13fe;
    --pink:    #ff0055;
    --gold:    #ffd700;
    --green:   #00ff88;
    --dark:    #030305;
    --dark2:   #06060f;
    --glass:   rgba(3, 3, 10, 0.92);
    --font-hud: 'Share Tech Mono', monospace;
    --font-ui:  'Orbitron', sans-serif;
    --player-color: #00f2ff;
}

/* ── Reset ── */
*, *::before, *::after { margin: 0; padding: 0; box-sizing: border-box; }

/* ── Utilitário global — ESSENCIAL para o jogo funcionar ── */
/* O JavaScript usa classList.add('hidden') em overlays, HUD items e botões.  */
/* Sem esta regra nenhum elemento some ao receber a classe.                   */
.hidden { display: none !important; }

body {
    background: var(--dark);
    background-image:
        radial-gradient(ellipse at 20% 50%, rgba(188,19,254,.12) 0%, transparent 55%),
        radial-gradient(ellipse at 80% 50%, rgba(0,242,255,.08) 0%, transparent 55%);
    display: flex;
    justify-content: center;
    align-items: center;
    min-height: 100vh;
    overflow: hidden;
    font-family: var(--font-ui);
    color: #fff;
}

/* ── Contêiner ── */
#game-container {
    position: relative;
    width: 900px;
    height: 450px;
    background: #000;
    border: 2px solid var(--purple);
    border-radius: 14px;
    box-shadow:
        0 0 40px rgba(188,19,254,.35),
        0 0 80px rgba(188,19,254,.12),
        inset 0 0 60px rgba(0,0,0,.9);
    overflow: hidden;
    user-select: none;
}

canvas {
    display: block;
    position: absolute;
    top: 0; left: 0;
    width: 100%; height: 100%;
    z-index: 10;
}

/* ── Shake ── */
@keyframes shake {
    0%,100%{transform:translate(0,0)}
    15%{transform:translate(-6px,4px)}
    30%{transform:translate(5px,-4px)}
    45%{transform:translate(-4px,3px)}
    60%{transform:translate(4px,-2px)}
    75%{transform:translate(-2px,2px)}
    90%{transform:translate(2px,-1px)}
}
#game-container.shaking { animation: shake .35s cubic-bezier(.36,.07,.19,.97); }

/* ── Glitch flash ── */
@keyframes glitch-flash {
    0%{opacity:1}20%{opacity:0}21%{opacity:1}40%{opacity:0}41%{opacity:1}
    60%{opacity:0}61%{opacity:1}80%{opacity:0}81%,100%{opacity:1}
}
#game-container.glitch-effect::after {
    content:'';
    position:absolute;inset:0;
    background: rgba(255,0,85,.07);
    z-index:50;
    pointer-events:none;
    animation: glitch-flash .3s steps(1) forwards;
}

/* ============================================================
   CAMADAS PARALLAX
   ============================================================ */
.parallax-layer {
    position: absolute;
    top: 0; left: 0;
    width: 200%; height: 100%;
    pointer-events: none;
    will-change: transform;
}

.layer-stars {
    background-image:
        radial-gradient(circle, rgba(255,255,255,.9) 1px, transparent 1px),
        radial-gradient(circle, rgba(255,255,255,.6) 1px, transparent 1px),
        radial-gradient(circle, rgba(0,242,255,.7) 1px, transparent 1px);
    background-size: 300px 200px, 200px 150px, 400px 250px;
    background-position: 0 0, 150px 80px, 50px 120px;
    z-index: 1;
    opacity: .4;
}

.layer-bg {
    background:
        radial-gradient(ellipse at 30% 30%, rgba(188,19,254,.18) 0%, transparent 45%),
        radial-gradient(ellipse at 70% 70%, rgba(0,242,255,.12) 0%, transparent 45%),
        linear-gradient(180deg, #02020a 0%, #08080e 100%);
    z-index: 2;
}

.layer-far {
    background-image:
        linear-gradient(transparent 55%, rgba(8,8,18,.95) 100%),
        repeating-linear-gradient(90deg,
            #07070d 0px, #07070d 30px, transparent 30px, transparent 90px),
        repeating-linear-gradient(90deg,
            transparent 0px, transparent 60px,
            #060610 60px, #060610 100px, transparent 100px, transparent 200px);
    background-size: 400px 100%, 400px 100%, 400px 100%;
    z-index: 3;
    opacity: .6;
}

.layer-mid {
    background-image:
        linear-gradient(transparent 40%, rgba(6,6,16,.98) 100%),
        repeating-linear-gradient(90deg,
            #0a0a18 0px, #0a0a18 55px, transparent 55px, transparent 160px),
        repeating-linear-gradient(90deg,
            transparent 0, transparent 80px,
            #0c0c20 80px, #0c0c20 130px, transparent 130px, transparent 300px);
    background-size: 500px 100%, 500px 100%, 500px 100%;
    z-index: 4;
    filter: drop-shadow(0 -8px 20px rgba(188,19,254,.25));
}

.layer-near {
    background-image:
        linear-gradient(transparent 30%, #000 100%),
        repeating-linear-gradient(90deg,
            #0d0d1e 0px, #0d0d1e 80px, transparent 80px, transparent 230px),
        repeating-linear-gradient(90deg,
            transparent 0, transparent 120px,
            #101025 120px, #101025 200px, transparent 200px, transparent 420px);
    background-size: 600px 100%, 600px 100%, 600px 100%;
    z-index: 5;
    filter: drop-shadow(0 -12px 25px rgba(0,242,255,.15));
}

.layer-rain {
    background:
        repeating-linear-gradient(93deg,
            transparent 0%, transparent 97%,
            rgba(0,242,255,.06) 97%, rgba(0,242,255,.06) 100%),
        repeating-linear-gradient(93deg,
            transparent 0%, transparent 91%,
            rgba(188,19,254,.04) 91%, rgba(188,19,254,.04) 100%);
    background-size: 120px 100%, 80px 100%;
    z-index: 12;
    opacity: .4;
    mix-blend-mode: color-dodge;
    transform: skewX(-18deg);
}

.layer-scanline {
    background: repeating-linear-gradient(
        0deg,
        rgba(0,0,0,.0) 0px,
        rgba(0,0,0,.0) 3px,
        rgba(0,0,0,.08) 3px,
        rgba(0,0,0,.08) 4px
    );
    z-index: 20;
    pointer-events: none;
    opacity: .6;
}

#game-container::before {
    content:'';
    position:absolute;inset:0;
    background:
        radial-gradient(ellipse at 50% 50%, transparent 50%, rgba(0,0,0,.65) 100%),
        linear-gradient(rgba(18,16,16,0) 50%, rgba(0,0,0,.06) 50%);
    background-size: 100% 100%, 100% 4px;
    pointer-events:none;
    z-index:22;
}

/* ============================================================
   HUD
   ============================================================ */
#hud {
    position: absolute;
    top: 0; left: 0; right: 0;
    height: 52px;
    display: flex;
    align-items: stretch;
    justify-content: space-between;
    z-index: 25;
    background: linear-gradient(180deg, rgba(0,0,0,.8) 0%, transparent 100%);
    border-bottom: 1px solid rgba(188,19,254,.3);
    padding: 0 16px;
    gap: 12px;
}

#hud-left, #hud-center, #hud-right {
    display: flex;
    align-items: center;
    gap: 16px;
    flex: 1;
}
#hud-center { justify-content: center; flex: 1.5; }
#hud-right  { justify-content: flex-end; }

.hud-label {
    font-family: var(--font-hud);
    font-size: 9px;
    letter-spacing: 3px;
    color: rgba(255,255,255,.4);
    text-transform: uppercase;
    display: block;
}

#score-display, #record-display, #lives-display,
#speed-display, #combo-display {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 1px;
}

#score-value {
    font-family: var(--font-hud);
    font-size: 22px;
    color: var(--cyan);
    text-shadow: 0 0 12px var(--cyan), 0 0 25px rgba(0,242,255,.5);
    letter-spacing: 3px;
    line-height: 1;
}

#record-value {
    font-family: var(--font-hud);
    font-size: 13px;
    color: var(--gold);
    text-shadow: 0 0 8px var(--gold);
    letter-spacing: 2px;
}

#lives-icons {
    display: flex;
    gap: 5px;
}
.life-icon {
    width: 14px; height: 14px;
    background: var(--pink);
    clip-path: polygon(50% 0%, 100% 38%, 82% 100%, 18% 100%, 0% 38%);
    box-shadow: 0 0 8px var(--pink);
    transition: all .3s;
}
.life-icon.empty { background: rgba(255,0,85,.2); box-shadow: none; }

#speed-value {
    font-family: var(--font-hud);
    font-size: 14px;
    color: var(--purple);
    text-shadow: 0 0 10px var(--purple);
    letter-spacing: 2px;
}

#combo-value {
    font-family: var(--font-hud);
    font-size: 18px;
    color: var(--gold);
    text-shadow: 0 0 15px var(--gold);
    letter-spacing: 2px;
}

#powerup-display {
    display: flex;
    align-items: center;
    gap: 6px;
}
#powerup-icon { font-size: 16px; }
#powerup-bar-container {
    width: 60px; height: 6px;
    background: rgba(255,255,255,.15);
    border-radius: 3px;
    overflow: hidden;
}
#powerup-bar {
    height: 100%;
    width: 100%;
    background: linear-gradient(90deg, var(--cyan), var(--purple));
    box-shadow: 0 0 8px var(--cyan);
    transition: width .1s linear;
    border-radius: 3px;
}

/* ============================================================
   BOTÕES FLUTUANTES (MUDO / PAUSE)
   ============================================================ */
#mute-btn, #pause-btn {
    position: absolute;
    width: 40px; height: 40px;
    border: 1.5px solid rgba(0,242,255,.5);
    border-radius: 8px;
    background: rgba(0,0,0,.6);
    color: var(--cyan);
    font-size: 18px;
    cursor: pointer;
    display: flex; align-items: center; justify-content: center;
    transition: .25s ease;
    z-index: 30;
    box-shadow: 0 0 10px rgba(0,242,255,.2);
    clip-path: none;
    padding: 0;
    letter-spacing: 0;
    text-transform: none;
}
#mute-btn  { bottom: 14px; left: 14px; }
#pause-btn { bottom: 14px; left: 62px; }
#mute-btn:hover, #pause-btn:hover {
    background: rgba(0,242,255,.15);
    box-shadow: 0 0 18px rgba(0,242,255,.4);
    transform: scale(1.08);
    color: #fff;
}

/* ============================================================
   OVERLAYS BASE (PAUSE / GAME OVER)
   ============================================================ */
.overlay {
    position: absolute; inset: 0;
    background: rgba(2,2,8,.93);
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    z-index: 30;
    backdrop-filter: blur(10px);
    overflow: hidden;
}
.overlay.hidden { display: none; }

.overlay-glitch-lines {
    position: absolute; inset: 0;
    background:
        repeating-linear-gradient(0deg,
            transparent 0px, transparent 29px,
            rgba(0,242,255,.03) 29px, rgba(0,242,255,.03) 30px),
        repeating-linear-gradient(90deg,
            transparent 0px, transparent 99px,
            rgba(188,19,254,.04) 99px, rgba(188,19,254,.04) 100px);
    pointer-events: none;
    z-index: 0;
}

.overlay-content {
    position: relative;
    z-index: 1;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 14px;
    width: 100%;
    padding: 18px 20px;
}

/* ============================================================
   TELA INICIAL — LAYOUT PREMIUM
   ============================================================ */
#start-screen {
    position: absolute;
    inset: 0;
    background:
        radial-gradient(ellipse at 50% 0%,   rgba(188,19,254,.22) 0%, transparent 60%),
        radial-gradient(ellipse at 50% 100%, rgba(0,242,255,.12)  0%, transparent 55%),
        rgba(2, 2, 10, 0.97);
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: flex-start;
    z-index: 30;
    backdrop-filter: blur(12px);
    overflow: hidden;
}

/* Linhas decorativas de canto */
#start-screen::before,
#start-screen::after {
    content: '';
    position: absolute;
    pointer-events: none;
    z-index: 0;
}
#start-screen::before {
    top: 0; left: 0;
    width: 120px; height: 120px;
    border-top: 2px solid rgba(0,242,255,.35);
    border-left: 2px solid rgba(0,242,255,.35);
    border-radius: 0 0 12px 0;
}
#start-screen::after {
    bottom: 0; right: 0;
    width: 120px; height: 120px;
    border-bottom: 2px solid rgba(188,19,254,.35);
    border-right: 2px solid rgba(188,19,254,.35);
    border-radius: 12px 0 0 0;
}

#start-screen .overlay-glitch-lines { z-index: 0; }

#start-screen .overlay-content {
    position: relative;
    z-index: 1;
    display: grid;
    grid-template-rows: auto auto auto;
    grid-template-columns: 1fr 1fr;
    grid-template-areas:
        "title   title"
        "menu    menu"
        "achiev  achiev";
    align-items: start;
    justify-items: center;
    gap: 10px;
    width: 100%;
    max-width: 860px;
    padding: 14px 28px 12px;
    height: 100%;
    overflow: hidden;
}

/* ── Título ── */
#start-screen .title-container {
    grid-area: title;
    text-align: center;
    margin-bottom: 0;
    padding: 2px 0 0;
    width: 100%;
}

@keyframes title-flicker {
    0%,94%,96%,98%,100% { opacity: 1; }
    95%,97%,99% { opacity: 0.85; }
}
@keyframes subtitle-glow {
    0%,100% { text-shadow: 0 0 12px var(--purple), 0 0 28px rgba(188,19,254,.4); }
    50%      { text-shadow: 0 0 20px var(--purple), 0 0 50px rgba(188,19,254,.6), 0 0 80px rgba(188,19,254,.2); }
}

/* ── Glitch title ── */
.title-container { text-align: center; margin-bottom: 4px; }

@keyframes glitch-anim {
    0%   { clip-path: inset(0 0 95% 0); transform: translate(-4px,0); }
    10%  { clip-path: inset(30% 0 50% 0); transform: translate(4px,0); }
    20%  { clip-path: inset(70% 0 10% 0); transform: translate(-2px,0); }
    30%  { clip-path: inset(5% 0 80% 0); transform: translate(3px,0); }
    40%  { clip-path: inset(50% 0 30% 0); transform: translate(-3px,0); }
    50%,100% { clip-path: inset(0 0 100% 0); transform: translate(0,0); }
}

.glitch-title {
    font-size: 3.4rem;
    font-weight: 900;
    letter-spacing: 6px;
    color: #fff;
    text-shadow:
        3px 0 var(--pink),
        -3px 0 var(--cyan);
    position: relative;
    display: inline-block;
    line-height: 1;
    animation: title-flicker 6s infinite;
    white-space: nowrap;
}
.glitch-title.small { font-size: 2.2rem; letter-spacing: 4px; }

.glitch-title::before,
.glitch-title::after {
    content: attr(data-text);
    position: absolute; left: 0; top: 0;
    width: 100%; height: 100%;
    overflow: hidden;
}
.glitch-title::before {
    color: var(--pink);
    text-shadow: none;
    animation: glitch-anim 3s infinite steps(1);
    left: 3px;
}
.glitch-title::after {
    color: var(--cyan);
    text-shadow: none;
    animation: glitch-anim 3s infinite steps(1) .15s;
    left: -3px;
}

.title-sub {
    font-family: var(--font-hud);
    font-size: 10px;
    letter-spacing: 9px;
    color: var(--purple);
    animation: subtitle-glow 3s ease-in-out infinite;
    margin-top: 4px;
    display: block;
}

/* Linha separadora decorativa abaixo do título */
.title-container::after {
    content: '';
    display: block;
    width: 60%;
    height: 1px;
    margin: 8px auto 0;
    background: linear-gradient(90deg,
        transparent,
        rgba(0,242,255,.5) 20%,
        rgba(188,19,254,.8) 50%,
        rgba(0,242,255,.5) 80%,
        transparent);
    box-shadow: 0 0 8px rgba(0,242,255,.3);
}

/* ── Menu principal ── */
#start-screen .menu-main {
    grid-area: menu;
    display: grid;
    grid-template-columns: 1fr 1fr;
    grid-template-rows: auto auto auto;
    grid-template-areas:
        "record   record"
        "diff     skin"
        "startbtn startbtn"
        "hints    hints";
    gap: 10px 24px;
    width: 100%;
    max-width: 680px;
    align-items: center;
    justify-items: center;
    padding: 8px 20px;
    background: rgba(0,0,0,.35);
    border: 1px solid rgba(0,242,255,.12);
    border-radius: 10px;
    position: relative;
    overflow: visible;
}

/* Cantos decorativos do painel */
#start-screen .menu-main::before,
#start-screen .menu-main::after {
    content: '';
    position: absolute;
    width: 14px; height: 14px;
    pointer-events: none;
}
#start-screen .menu-main::before {
    top: -1px; left: -1px;
    border-top: 2px solid var(--cyan);
    border-left: 2px solid var(--cyan);
}
#start-screen .menu-main::after {
    bottom: -1px; right: -1px;
    border-bottom: 2px solid var(--purple);
    border-right: 2px solid var(--purple);
}

.menu-record {
    grid-area: record;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 2px;
    padding: 4px 0 2px;
    width: 100%;
    border-bottom: 1px solid rgba(255,215,0,.12);
    padding-bottom: 8px;
}
#menu-best-score {
    font-family: var(--font-hud);
    font-size: 22px;
    color: var(--gold);
    text-shadow: 0 0 15px var(--gold), 0 0 30px rgba(255,215,0,.3);
    letter-spacing: 5px;
}

/* ── Seletor de Dificuldade ── */
.difficulty-select {
    grid-area: diff;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 6px;
    width: 100%;
}

/* ── Seletor de Skin ── */
.skin-select {
    grid-area: skin;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 6px;
    width: 100%;
}

.diff-buttons, .skin-buttons {
    display: flex;
    gap: 6px;
}

.diff-btn {
    padding: 6px 14px;
    font-size: 10px;
    font-family: var(--font-ui);
    font-weight: 700;
    letter-spacing: 2px;
    background: transparent;
    color: rgba(255,255,255,.5);
    border: 1.5px solid rgba(255,255,255,.2);
    cursor: pointer;
    clip-path: polygon(8% 0,100% 0,92% 100%,0 100%);
    transition: .25s;
    border-radius: 0;
    transform: none;
    margin: 0;
}
.diff-btn:hover, .diff-btn.active {
    color: #000;
    border-color: var(--cyan);
    background: var(--cyan);
    box-shadow: 0 0 20px var(--cyan);
    transform: none;
}
.diff-btn[data-diff="hard"].active {
    background: var(--pink);
    border-color: var(--pink);
    box-shadow: 0 0 20px var(--pink);
}
.diff-btn[data-diff="normal"].active {
    background: var(--purple);
    border-color: var(--purple);
    box-shadow: 0 0 20px var(--purple);
}

/* ── Skins ── */
.skin-btn {
    width: 30px; height: 30px;
    background: rgba(255,255,255,.05);
    border: 2px solid rgba(255,255,255,.15);
    border-radius: 6px;
    color: var(--c, #fff);
    font-size: 17px;
    cursor: pointer;
    transition: .2s;
    clip-path: none;
    padding: 0;
    letter-spacing: 0;
    text-transform: none;
    display: flex; align-items: center; justify-content: center;
    text-shadow: 0 0 8px var(--c, #fff);
    transform: none;
}
.skin-btn:hover, .skin-btn.active {
    border-color: var(--c, #fff);
    background: rgba(255,255,255,.1);
    box-shadow: 0 0 12px var(--c, #fff);
    transform: scale(1.12);
}

/* ── Botão iniciar ── */
#start-btn {
    grid-area: startbtn;
    padding: 13px 60px;
    font-size: 15px;
    font-weight: 900;
    letter-spacing: 6px;
    background: transparent;
    color: #fff;
    border: 2px solid var(--cyan);
    cursor: pointer;
    text-transform: uppercase;
    clip-path: polygon(8% 0,100% 0,92% 100%,0 100%);
    transition: .35s cubic-bezier(.19,1,.22,1);
    position: relative;
    overflow: hidden;
    font-family: var(--font-ui);
    border-radius: 0;
    width: fit-content;
    box-shadow: 0 0 20px rgba(0,242,255,.15), inset 0 0 20px rgba(0,242,255,.05);
}
#start-btn::before {
    content:'';
    position:absolute; inset:0;
    background: linear-gradient(135deg, var(--cyan), var(--purple));
    transform: scaleX(0);
    transform-origin: left;
    transition: transform .35s cubic-bezier(.19,1,.22,1);
    z-index: -1;
}
#start-btn:hover {
    color: #000;
    box-shadow: 0 0 40px var(--cyan), 0 0 80px rgba(0,242,255,.2);
    transform: skewX(-3deg) scale(1.03);
}
#start-btn:hover::before { transform: scaleX(1); }

/* ── Dicas de controles ── */
.controls-hint {
    grid-area: hints;
    font-family: var(--font-hud);
    font-size: 9px;
    letter-spacing: 1.5px;
    color: rgba(255,255,255,.28);
    display: flex;
    gap: 14px;
    flex-wrap: wrap;
    justify-content: center;
    padding-top: 2px;
    border-top: 1px solid rgba(255,255,255,.06);
    width: 100%;
}
.controls-hint span {
    padding: 2px 6px;
    background: rgba(255,255,255,.04);
    border-radius: 3px;
    border: 1px solid rgba(255,255,255,.07);
}

/* ── Botão de ação genérico ── */
.action-btn {
    padding: 14px 50px;
    font-size: 16px;
    font-weight: 700;
    letter-spacing: 5px;
    background: transparent;
    color: #fff;
    border: 2px solid var(--cyan);
    cursor: pointer;
    text-transform: uppercase;
    clip-path: polygon(8% 0,100% 0,92% 100%,0 100%);
    transition: .35s cubic-bezier(.19,1,.22,1);
    position: relative;
    overflow: hidden;
    font-family: var(--font-ui);
    border-radius: 0;
}
.action-btn::before {
    content:'';
    position:absolute; inset:0;
    background: var(--cyan);
    transform: scaleX(0);
    transform-origin: left;
    transition: transform .35s cubic-bezier(.19,1,.22,1);
    z-index: -1;
}
.action-btn:hover { color: #000; box-shadow: 0 0 30px var(--cyan); transform: skewX(-3deg); }
.action-btn:hover::before { transform: scaleX(1); }
.action-btn.secondary {
    border-color: rgba(255,255,255,.25);
    font-size: 13px;
    padding: 10px 35px;
    letter-spacing: 4px;
}
.action-btn.secondary::before { background: rgba(255,255,255,.1); }
.action-btn.secondary:hover { color: #fff; box-shadow: none; }

/* ── Conquistas no menu inicial ── */
#achievements-panel {
    grid-area: achiev;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 5px;
    width: 100%;
    max-width: 680px;
    padding: 0 20px;
}
#achievements-panel > .hud-label {
    border-bottom: 1px solid rgba(188,19,254,.2);
    width: 100%;
    text-align: center;
    padding-bottom: 4px;
    margin-bottom: 2px;
    letter-spacing: 5px;
}
#achievements-list {
    display: flex;
    gap: 6px;
    flex-wrap: wrap;
    justify-content: center;
    max-height: 58px;
    overflow: hidden;
}

/* ── Heading neon ── */
.neon-heading {
    font-size: 2.4rem;
    font-weight: 700;
    letter-spacing: 8px;
    color: var(--cyan);
    text-shadow: 0 0 20px var(--cyan), 0 0 50px rgba(0,242,255,.4);
}

/* ============================================================
   OVERLAYS — PAUSE / GAME OVER
   ============================================================ */
#pause-screen .overlay-content,
#game-over-screen .overlay-content {
    gap: 14px;
    padding: 20px;
}

/* ── Resultados ── */
.results-panel {
    background: rgba(0,0,0,.4);
    border: 1px solid rgba(0,242,255,.2);
    border-radius: 8px;
    padding: 14px 28px;
    width: 100%;
    max-width: 380px;
    display: flex;
    flex-direction: column;
    gap: 8px;
}
.result-row {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 12px;
}
.result-value {
    font-family: var(--font-hud);
    font-size: 20px;
    color: var(--cyan);
    text-shadow: 0 0 10px var(--cyan);
    letter-spacing: 3px;
}
.result-value.record { color: var(--gold); text-shadow: 0 0 10px var(--gold); }

@keyframes badge-pulse {
    0%,100%{transform:scale(1); opacity:1}
    50%{transform:scale(1.08); opacity:.8}
}
#new-record-badge {
    font-size: 13px;
    font-weight: 700;
    letter-spacing: 4px;
    color: var(--gold);
    text-shadow: 0 0 15px var(--gold);
    animation: badge-pulse 1s infinite;
    text-align: center;
}
#new-record-badge.hidden { display: none; }

/* ── Badges de conquista ── */
.ach-badge {
    display: flex;
    align-items: center;
    gap: 5px;
    background: rgba(255,255,255,.05);
    border: 1px solid rgba(188,19,254,.3);
    border-radius: 6px;
    padding: 4px 9px;
    font-family: var(--font-hud);
    font-size: 9px;
    letter-spacing: 1px;
    color: rgba(255,255,255,.55);
    transition: .2s;
    white-space: nowrap;
}
.ach-badge.unlocked {
    border-color: var(--gold);
    color: var(--gold);
    text-shadow: 0 0 6px var(--gold);
    background: rgba(255,215,0,.08);
}
.ach-badge .ach-emoji { font-size: 13px; }

/* ── Toast de Conquista ── */
@keyframes toast-in  { from{transform:translateX(120%); opacity:0} to{transform:translateX(0); opacity:1} }
@keyframes toast-out { from{transform:translateX(0); opacity:1}    to{transform:translateX(120%); opacity:0} }

#achievement-toast {
    position: absolute;
    top: 70px; right: 12px;
    background: rgba(0,0,0,.85);
    border: 1.5px solid var(--gold);
    border-radius: 8px;
    padding: 10px 16px;
    display: flex;
    align-items: center;
    gap: 10px;
    z-index: 40;
    box-shadow: 0 0 20px rgba(255,215,0,.3);
    max-width: 240px;
}
#achievement-toast.hidden { display: none; }
#achievement-toast.show { animation: toast-in .4s cubic-bezier(.19,1,.22,1) forwards; }
#achievement-toast.hide { animation: toast-out .4s ease-in forwards; }

#ach-icon { font-size: 22px; }
#ach-title {
    font-family: var(--font-hud);
    font-size: 9px;
    letter-spacing: 3px;
    color: var(--gold);
}
#ach-name {
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 1px;
    color: #fff;
    margin-top: 2px;
}

/* ── Toast de Power-up ── */
@keyframes pu-bounce { 0%{transform:translateX(-50%) scale(.5); opacity:0} 60%{transform:translateX(-50%) scale(1.15)} 100%{transform:translateX(-50%) scale(1); opacity:1} }
@keyframes pu-out    { from{opacity:1} to{opacity:0; transform:translateX(-50%) translateY(-20px)} }

#powerup-toast {
    position: absolute;
    bottom: 80px;
    left: 50%;
    transform: translateX(-50%);
    font-family: var(--font-hud);
    font-size: 14px;
    letter-spacing: 3px;
    color: #fff;
    background: rgba(0,0,0,.75);
    border: 1.5px solid var(--cyan);
    border-radius: 6px;
    padding: 8px 20px;
    z-index: 35;
    pointer-events: none;
    text-shadow: 0 0 10px var(--cyan);
    box-shadow: 0 0 20px rgba(0,242,255,.2);
}
#powerup-toast.hidden { display: none; }
#powerup-toast.show { animation: pu-bounce .4s cubic-bezier(.19,1,.22,1) forwards; }
#powerup-toast.hide { animation: pu-out .35s ease-in forwards; }

/* ============================================================
   GAMEOVER achievements
   ============================================================ */
#gameover-achievements {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 6px;
    max-width: 500px;
    width: 100%;
}
#gameover-achievements.hidden { display: none; }
#gameover-ach-list {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
    justify-content: center;
}

/* ============================================================
   RESPONSIVIDADE
   ============================================================ */

/* Notebook e telas médias */
@media (max-width: 960px) {
    #game-container {
        width: 100vw;
        height: 56.25vw;
        border-radius: 0;
        border-left: none;
        border-right: none;
    }

    .glitch-title { font-size: 2.8rem; letter-spacing: 4px; }

    #start-screen .menu-main {
        max-width: 96%;
        gap: 8px 16px;
        padding: 8px 14px;
    }

    #achievements-panel { max-width: 96%; padding: 0 14px; }
    #achievements-list  { max-height: 52px; }
}

/* Tablet */
@media (max-width: 720px) {
    .glitch-title { font-size: 2.2rem; letter-spacing: 3px; }
    .title-sub    { font-size: 9px; letter-spacing: 6px; }

    #start-screen .overlay-content {
        grid-template-columns: 1fr;
        grid-template-areas:
            "title"
            "menu"
            "achiev";
        gap: 8px;
        padding: 10px 12px;
    }

    #start-screen .menu-main {
        grid-template-columns: 1fr 1fr;
        grid-template-areas:
            "record   record"
            "diff     skin"
            "startbtn startbtn"
            "hints    hints";
        padding: 8px 12px;
        gap: 8px 12px;
    }

    #menu-best-score { font-size: 18px; }
    #start-btn { padding: 11px 40px; font-size: 13px; letter-spacing: 4px; }
    .controls-hint { gap: 8px; font-size: 8px; }
}

/* Mobile */
@media (max-width: 600px) {
    .glitch-title { font-size: 1.7rem; letter-spacing: 2px; }
    .title-sub    { font-size: 8px; letter-spacing: 5px; }

    #start-screen .overlay-content {
        grid-template-columns: 1fr;
        grid-template-areas:
            "title"
            "menu"
            "achiev";
        gap: 6px;
        padding: 8px 8px;
    }

    #start-screen .menu-main {
        grid-template-columns: 1fr;
        grid-template-areas:
            "record"
            "diff"
            "skin"
            "startbtn"
            "hints";
        padding: 8px 10px;
        gap: 8px;
        max-width: 100%;
    }

    .diff-buttons { gap: 5px; }
    .diff-btn { padding: 5px 10px; font-size: 9px; letter-spacing: 1px; }

    #start-btn { padding: 11px 30px; font-size: 12px; letter-spacing: 3px; }

    .controls-hint { display: none; }
    #achievements-panel { display: none; }

    #menu-best-score { font-size: 16px; }
}

/* Telas muito pequenas / landscape mobile */
@media (max-height: 320px) {
    .glitch-title       { font-size: 1.4rem; }
    .title-sub          { display: none; }
    .title-container::after { display: none; }
    .controls-hint      { display: none; }
    #achievements-panel { display: none; }
    .menu-record        { padding-bottom: 4px; }
    #start-screen .menu-main { gap: 5px; padding: 5px 10px; }
    #start-btn          { padding: 8px 24px; font-size: 11px; }
}