/* Minecraft Font */
@font-face {
    font-family: 'Minecraft';
    src: url('../fonts/Minecraft.ttf') format('truetype');
    font-weight: normal;
    font-style: normal;
}

* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
    font-family: 'Minecraft', Arial, sans-serif;
    image-rendering: pixelated;
    image-rendering: -moz-crisp-edges;
    image-rendering: crisp-edges;
}

body {
    background: linear-gradient(to top, #71aec7 0%, #c7e5f1 100%);
    overflow: hidden;
    height: 100vh;
    width: 100vw;
    position: relative;
}

/* Loading screen */
#loading {
    position: fixed;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    text-align: center;
    color: white;
    font-size: 24px;
}

#loading-message {
    display: flex;
    align-items: center;
    gap: 10px;
    font-size: 24px;
    text-shadow: 0 1px 1px rgba(0,0,0,0.5);
}

#game-container {
    position: relative;
    width: 100%;
    height: 100%;
    display: none;
}

/* Blocks container */
#blocks-container {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    display: flex;
    align-items: center;
    justify-content: center;
}

/* Block base styles */
.block {
    position: absolute;
    background-size: cover !important;
    background-position: center !important;
    cursor: pointer;
    user-select: none;
    -webkit-user-select: none;
    -webkit-touch-callout: none;
    transition: transform 0.1s;
    /* box-shadow: inset -4px -4px 0 rgba(0,0,0,0.3), inset 4px 4px 0 rgba(255,255,255,0.3); */
    transform: translate(-50%, -50%);
}

.block:not(.center) {
    pointer-events: none !important;
    cursor: default !important;
}

.block.center {
    z-index: 100;
    box-shadow: 0 8px 16px rgba(0,0,0,0.4);
    cursor: crosshair;
}

.block.center:active {
    transform: translate(-50%, -50%) scale(0.98);
}

/* .block.mining {
    animation: shake 0.1s 1;
} */

@keyframes shake {
    0%, 100% { transform: translate(0, 0); }
    25% { transform: translate(-1px, 1px); }
    50% { transform: translate(1px, -1px); }
    75% { transform: translate(-1px, -1px); }
}

/* Block textures */
.block-g { background-image: url('../blocks/grass_block_top.png'); }
.block-d { background-image: url('../blocks/dirt.png'); }
.block-s { background-image: url('../blocks/stone.png'); }
.block-c { background-image: url('../blocks/coal_ore.png'); }
.block-i { background-image: url('../blocks/iron_ore.png'); }
.block-o { background-image: url('../blocks/gold_ore.png'); }
.block-x { background-image: url('../blocks/diamond_ore.png'); }
.block-b { background-image: url('../blocks/bedrock.png'); }
.block-a { background-image: url('../blocks/sand.png'); }
.block-t { background-image: url('../blocks/sandstone_top.png'); }
.block-r { background-image: url('../blocks/gravel.png'); }
.block-n { background-image: url('../blocks/snow.png'); }
.block-e { background-image: url('../blocks/ice.png'); }
.block-v { background: transparent; box-shadow: none; }

/* Destroy stages */
.destroy-stage {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-size: cover;
    background-position: center;
    pointer-events: none;
    mix-blend-mode: multiply;
    z-index: 10;
}

.destroy-stage-0 { background-image: url('../blocks/destroy_stage_0.png'); }
.destroy-stage-1 { background-image: url('../blocks/destroy_stage_1.png'); }
.destroy-stage-2 { background-image: url('../blocks/destroy_stage_2.png'); }
.destroy-stage-3 { background-image: url('../blocks/destroy_stage_3.png'); }
.destroy-stage-4 { background-image: url('../blocks/destroy_stage_4.png'); }
.destroy-stage-5 { background-image: url('../blocks/destroy_stage_5.png'); }
.destroy-stage-6 { background-image: url('../blocks/destroy_stage_6.png'); }
.destroy-stage-7 { background-image: url('../blocks/destroy_stage_7.png'); }
.destroy-stage-8 { background-image: url('../blocks/destroy_stage_8.png'); }
.destroy-stage-9 { background-image: url('../blocks/destroy_stage_9.png'); }

/* Mining progress bar - REMOVED */

/* Particles */
@keyframes particle-explode {
    0% {
        transform: translate(0, 0) scale(1) rotate(0deg);
        opacity: 1;
    }
    100% {
        transform: translate(var(--tx), var(--ty)) scale(0.3) rotate(var(--rot));
        opacity: 0;
    }
}

.block-particle {
    position: fixed;
    width: 10px;
    height: 10px;
    pointer-events: none;
    z-index: 9999;
    background-size: cover;
    animation: particle-explode 0.8s cubic-bezier(0.25, 0.46, 0.45, 0.94) forwards;
}

/* Error message */
.error-message {
    position: fixed;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    background: rgba(0,0,0,0.8);
    color: #ff5555;
    padding: 20px 30px;
    border: 2px solid #ff5555;
    border-radius: 5px;
    text-align: center;
    max-width: 80vw;
    font-size: 16px;
    z-index: 10000;
    box-shadow: 0 4px 8px rgba(0,0,0,0.5);
    animation: error-appear 0.3s ease-out;
}

@keyframes error-appear {
    from {
        opacity: 0;
        transform: translate(-50%, -50%) scale(0.8);
    }
    to {
        opacity: 1;
        transform: translate(-50%, -50%) scale(1);
    }
}
