:root {
    /* Color Variables */
    --primary-color: #f8f0de;
    --secondary-color: #ece4d3;
    --background-color: #f9c344;
    --text-color: #111827;
    --secondary-text-color: white;
    --text-stroke-color: white;
    --card-background-color: #e39219;
    --card-border-color: #180090;
    --button-background-color: #ff6f00;
    --button-hover-color: #e65c00;

    /* Animation Variables */
    --animation-duration: 0.5s;
}

/* Custom Fonts */
@font-face {
    font-family: 'Dragon Ball Font';
    src: url('./fonts/Saiyan-Sans.ttf') format('truetype');
    font-weight: thin;
}

/* Animations */
@keyframes cardIn {
    from {
        opacity: 0;
        transform: translateX(100%) scale(0.8);
    }
    to {
        opacity: 1;
        transform: translateX(0) scale(1);
    }
}
@keyframes cardOut {
    from {
        opacity: 1;
        transform: translateX(0) scale(1);
    }
    to {
        opacity: 0;
        transform: translateX(-100%) scale(0.8);
    }
}

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

body {
    text-align: center;
    background-color: var(--background-color, orange);
    header {
        font-family: 'Dragon Ball Font', fantasy;
        -webkit-text-stroke: 0.05rem var(--text-stroke-color);
        font-size: 3rem;
    }
    main {
        background-color: var(--primary-color, lightyellow);
        min-height: 100vh;
        display: flex;
        flex-direction: column;
        align-items: center;
        
        race-display {
            display: flex;
            flex-direction: column;
            align-items: center;
            margin: 1rem;
            border: 0.5rem solid var(--card-border-color);
            border-radius: 1rem;
            background: linear-gradient(315deg, rgba(253, 29, 29, 1) 0%, rgba(252, 176, 69, 1) 72%);
            width: 20vw;
            min-width: 350px;
            height: 50vh;
            #raceName {
                align-self: flex-start;
                color: var(--secondary-text-color);
                background-color: var(--card-border-color);
                padding: 0.3rem;
            }
            #raceImage {
                margin: 0.5rem;
                border: 0.2rem solid white;
                width: 80%;
                height: 70%;
                flex-grow: 1;
            }
            #raceLink {
                display: block;
                align-self: flex-end;
                color: var(--secondary-text-color);
                background-color: var(--card-border-color);
                padding: 0.3rem;
            }
        }
        race-display:hover {
            box-shadow: 0 0 1rem var(--card-border-color);
            transform: scale(1.05);
            transition: transform 0.3s, box-shadow 0.3s;
        }
        race-display[entering] {
            animation: cardIn var(--animation-duration) forwards;
        }
        race-display[exiting] {
            animation: cardOut var(--animation-duration) forwards;
        }
        
        #generateBtn {
            margin: 2rem;
            padding: 1rem 2rem;
            font-size: 1.5rem;
            background-color: var(--button-background-color);
            color: var(--secondary-text-color);
            border: none;
            border-radius: 0.5rem;
            cursor: pointer;
        }
        #generateBtn:hover {
            background-color: var(--button-hover-color);
        }
    }
}