/* Estilos Básicos */
* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

body {
    background-color: #000;
    display: flex;
    justify-content: center;
    align-items: center;
    height: 100vh;
    overflow: hidden;
    cursor: none !important; /* Força a ocultação em todos os elementos */
}

/* Garante que botões e outros elementos interativos também não mostrem o cursor padrão */
button, .menu-button, .save-slot, .letter-btn, a {
    cursor: none !important;
}

/* Container do Jogo (Mantém proporção) */
#game-container {
    position: relative;
    width: 100vw;
    height: 100vh;
    background-color: #000;
    overflow: hidden;
    image-rendering: pixelated; /* Crucial para pixel art */
}

/* Overlay de Fade para transições */
#fade-overlay {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: black;
    z-index: 3000; /* Acima de tudo, inclusive da carta (150) */
    opacity: 0;
    pointer-events: none;
    transition: opacity 1.5s ease-in-out;
}

/* Tela de Senha - Estilo Stardew Valley */
#password-screen {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: radial-gradient(circle, rgba(0,0,0,0.7) 0%, rgba(0,0,0,0.9) 100%);
    display: flex;
    justify-content: center;
    align-items: center;
    z-index: 2000;
    transition: opacity 0.8s ease-out;
}

#password-box {
    background-color: #fcd080; /* Cor de pergaminho/madeira clara do SV */
    border: 6px solid #5d311b; /* Borda marrom escura */
    box-shadow: 0 0 0 4px #b87b38, 10px 10px 20px rgba(0,0,0,0.5); /* Efeito de borda dupla */
    padding: 40px;
    text-align: center;
    width: 450px;
    font-family: 'Courier New', Courier, monospace;
    image-rendering: pixelated;
    position: relative;
}

#password-box::before {
    content: '';
    position: absolute;
    top: -10px; left: -10px; right: -10px; bottom: -10px;
    border: 2px solid #fff;
    pointer-events: none;
    opacity: 0.3;
}

#password-box h2 {
    color: #5d311b;
    margin-bottom: 20px;
    font-size: 24px;
    letter-spacing: 2px;
}

#password-box p {
    color: #7d4a2d;
    font-size: 14px;
    margin-bottom: 20px;
}

#password-input {
    width: 100%;
    padding: 15px;
    background-color: #fff;
    border: 4px solid #5d311b;
    color: #5d311b;
    font-size: 18px;
    outline: none;
    margin-bottom: 20px;
    text-align: center;
}

#password-btn {
    background-color: #e8b059;
    border: 4px solid #5d311b;
    color: #5d311b;
    padding: 10px 30px;
    font-size: 18px;
    font-weight: bold;
    cursor: pointer;
    transition: transform 0.1s, background-color 0.2s;
}

#password-btn:hover {
    background-color: #f4b970;
    transform: scale(1.05);
}

#password-btn:active {
    transform: scale(0.95);
}

#password-error {
    color: #a00;
    margin-top: 15px;
    font-weight: bold;
    font-size: 12px;
}

.screen {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    transition: opacity 1s ease-in-out;
}

.hidden {
    opacity: 0;
    pointer-events: none;
}

/* Cursor Customizado */
.custom-cursor {
    position: absolute;
    width: 16px;
    height: 16px;
    background-image: url('stardew_assets/Cursors.png');
    background-position: 0 0;
    background-repeat: no-repeat;
    pointer-events: none;
    z-index: 9999;
    image-rendering: pixelated;
    transform: scale(3);
    transform-origin: top left;
}

.custom-cursor.pointer {
    background-position: 0 -16px; /* Ajustado para a mão que aparece abaixo da seta no spritesheet */
}

/* --- TELA DO CONCERNED APE --- */
#concerned-ape-screen {
    background-color: #fff;
    display: flex;
    justify-content: center;
    align-items: center;
    z-index: 100;
}

#ape-logo-container {
    display: flex;
    align-items: center;
    gap: 40px;
    transform: scale(3);
}

#concerned-ape-logo {
    width: 85px;
    height: 72px;
    background-image: url('stardew_assets/urso1.png');
    background-repeat: no-repeat;
    background-size: contain;
    image-rendering: pixelated;
}

#developed-by {
    width: 154px;
    height: 60px;
    background-image: url('stardew_assets/desenvolvido1.png');
    background-repeat: no-repeat;
    background-size: contain;
    image-rendering: pixelated;
}

/* --- TELA PRINCIPAL (INTRO PANNING) --- */
#title-screen {
    z-index: 50;
    background-color: #000;
}

#parallax-container {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%; /* Ajustado para tela cheia estática */
    background: #78c0ff;
}

/* Removida lógica de panning */

.bg-layer {
    position: absolute;
    left: 0;
    width: 100%;
    background-repeat: repeat-x;
    background-size: 100% auto;
    image-rendering: pixelated;
}

#sky {
    height: 100vh;
    background: linear-gradient(to bottom, #004d99 0%, #78c0ff 100%);
    z-index: 1;
}

#montanhas-azul {
    top: 0;
    height: 100vh;
    background-image: url('stardew_assets/montanhas_azul.png');
    background-position: bottom center;
    z-index: 2;
}

#montanhas-far {
    top: 0;
    height: 100vh;
    background-image: url('stardew_assets/montanhas_longe.png');
    background-position: bottom center;
    z-index: 3;
}

#montanhas-near {
    top: 0;
    height: 100vh;
    background-image: url('stardew_assets/montanhas_perto.png');
    background-position: bottom center;
    z-index: 4;
}

#bushes {
    top: 0;
    height: 100vh; 
    background-image: url('stardew_assets/arbustos.png');
    background-size: 100% auto;
    background-position: bottom center;
    background-repeat: no-repeat;
    z-index: 10;
}

#clouds-container {
    top: 0;
    height: 100vh; /* Nuvens apenas na tela final (céu) */
    z-index: 5;
    pointer-events: none;
}

.cloud {
    position: absolute;
    background-repeat: no-repeat;
    background-size: contain;
    image-rendering: pixelated;
    animation: moveClouds linear infinite;
}

@keyframes moveClouds {
    from { left: 110%; }
    to { left: -20%; }
}

/* Pássaros */
.bird {
    position: absolute;
    width: 64px; /* Dobrado o tamanho */
    height: 64px; /* Dobrado o tamanho */
    background-size: contain;
    background-repeat: no-repeat;
    z-index: 8; /* Voando entre as nuvens (5) e os arbustos de primeiro plano (10) */
    image-rendering: pixelated;
    pointer-events: none;
}

/* Logo Principal */
#main-logo-container {
    position: absolute;
    top: 10vh;
    left: 50%;
    transform: translateX(-50%);
    z-index: 60;
    opacity: 0;
    transition: opacity 2s ease-in-out;
}

#main-logo {
    transform: scale(2.5); /* Diminuindo um pouco para não estourar a tela */
    transform-origin: top center; /* Para crescer para baixo e não cortar o topo */
    image-rendering: pixelated;
    animation: float 4s ease-in-out infinite;
}

@keyframes float {
    0%, 100% { transform: scale(2.5) translateY(0px); }
    50% { transform: scale(2.5) translateY(-10px); }
}

/* Menu Principal */
#main-menu {
    position: absolute;
    bottom: 100px; /* Subindo um pouco mais na tela */
    left: 50%;
    transform: translateX(-50%);
    display: flex;
    gap: 40px; /* Mais espaço entre os botões */
    z-index: 60;
}

.menu-button {
    width: 100px;
    height: 58px;
    background-repeat: no-repeat;
    background-size: contain;
    transform: scale(2);
    cursor: pointer;
    image-rendering: pixelated;
    transition: transform 0.1s;
}

.menu-button:active {
    transform: scale(1.9);
}

/* Novos estilos para os botões usando arquivos individuais */
#btn-new { background-image: url('stardew_assets/botao_novo.png'); }
#btn-new:hover { background-image: url('stardew_assets/botao_novo_hover.png'); }

#btn-load { background-image: url('stardew_assets/botao_carregar.png'); }
#btn-load:hover { background-image: url('stardew_assets/botao_carregar_hover.png'); }

#btn-coop { background-image: url('stardew_assets/botao_coop.png'); }
#btn-coop:hover { background-image: url('stardew_assets/botao_coop_hover.png'); }

#btn-exit { background-image: url('stardew_assets/botao_sair.png'); }
#btn-exit:hover { background-image: url('stardew_assets/botao_sair_hover.png'); }

/* --- TELA DE SELEÇÃO DE SAVE --- */
#save-selection-screen {
    background-image: url('stardew_assets/selecao.png');
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    z-index: 70;
}

.save-slot {
    position: absolute;
    /* Ajuste as coordenadas abaixo conforme a área do save na imagem selecao.png */
    top: 18%;
    left: 15%;
    width: 70%;
    height: 16%;
    cursor: pointer;
    /* border: 2px solid red; /* Remova o comentário para ver a área clicável se precisar ajustar */
}

/* --- MUNDO DO JOGO (CASA E FAZENDA) --- */
#game-world {
    z-index: 80;
    background-color: black;
    overflow: hidden;
}

.world-scene {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-size: 100% 100%;
    background-position: center;
    background-repeat: no-repeat;
    image-rendering: pixelated;
}

#house-screen {
    background-image: url('stardew_assets/casa.png');
}

#farm-screen {
    background-image: url('stardew_assets/fazenda.png');
}

/* --- PERSONAGEM JOGÁVEL (NAT) --- */
#player {
    position: absolute;
    width: 64px; /* Ajuste se o sprite for maior/menor */
    height: 96px;
    background-size: contain;
    background-repeat: no-repeat;
    image-rendering: pixelated;
    z-index: 100;
    transition: left 0.1s linear, top 0.1s linear; /* Movimento suave */
}

.player-sprite-right { background-image: url('stardew_assets/nat/1.png'); }
.player-sprite-up { background-image: url('stardew_assets/nat/2.png'); }
.player-sprite-left { background-image: url('stardew_assets/nat/3.png'); }
.player-sprite-down { background-image: url('stardew_assets/nat/4.png'); }

/* --- TELA DA CARTA (ROMANTICA) --- */
#letter-screen {
    z-index: 150;
    background-color: rgba(0, 0, 0, 0.5);
    display: flex;
    justify-content: center;
    align-items: center;
}

#letter-paper {
    background-image: url('stardew_assets/carta-stardew-valley.png');
    background-size: 100% 100%;
    background-color: transparent;
    border: none;
    box-shadow: none;
    width: 850px;
    height: 750px;
    padding: 70px 90px; /* Padding vertical e horizontal */
    position: relative;
    /* Efeito de borda pixelada */
    image-rendering: pixelated;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
}

#letter-text {
    font-family: 'VT323', monospace;
    color: #5d311b;
    font-size: 22px; /* Fonte pixelada precisa ser um pouco maior */
    line-height: 1.3;
    text-shadow: 1px 1px 0px rgba(255, 255, 255, 0.4); /* Leve brilho de fundo */
}

#letter-buttons {
    display: flex;
    justify-content: space-around;
    margin-top: 20px;
}

.letter-btn {
    background-color: #e8b059;
    border: 4px solid #5d311b;
    color: #5d311b;
    padding: 10px 20px;
    font-size: 22px;
    font-family: 'VT323', monospace;
    cursor: pointer;
    transition: transform 0.1s, background-color 0.2s;
    pointer-events: auto;
}

.letter-btn:hover {
    background-color: #f4b970;
    transform: scale(1.05);
}

.letter-btn:active {
    transform: scale(0.95);
}

