.outer-shell {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: top;
    width: 576px;
    height: 672px;
    padding-top: 18px;
    padding-bottom: 16px;
    margin-top: 8px;
    background-color: red;
    border: 2px solid black;
    border-radius: 32px;
    --shake-intensity: 1;
}

.top-bar {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 10px; /* Adds some spacing */
}

.gridlines-checkbox {
    margin-left: 32px;
}

.logo {
    font-size: 32px;
    font-style: italic;
    font-weight: bold;
    font-family: cursive;
}

.base-container {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
}

.squares-container {
    display: flex;
    flex-wrap: wrap;
    width: 512px;
    height: 512px;
    align-items: center; 
    justify-content: center;
    margin-top: 8px;
    border: 1px solid black;
}

.shake-effect {
    animation: shake 0.82s cubic-bezier(.36,.07,.19,.97) both;
    transform: translate3d(0, 0, 0);
    backface-visibility: hidden;
    perspective: 1000px;
}

.grid-square {
    background-color: white;
    border: 1px solid black;
    box-sizing: border-box;
}

.grid-square-borderless {
    border: none;
}

.circle-container {
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: space-between;
    width: 80%;
    gap: 12px;
    margin-top: 16px;
} 

.circle-button {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 64px;
    height: 64px;
    background-color: grey;
    color: white;
    border: 4px solid black;
    border-radius: 50%;
    font-size: 16px;
    font-weight: bold;
    text-shadow: 
        -1px -1px 0 #000,  
         1px -1px 0 #000,
        -1px  1px 0 #000,
         1px  1px 0 #000;
    transition: all 0.2s;
}

.circle-button:hover {
    background-color: lightgrey;
    transform: translateY(-2px);
    box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
}

.custom-color-button {
    opacity: 0;
    pointer-events: none;
    transition: all 0.5s ease-in-out;
}

.custom-color-button.visible {
    opacity: 1;
    pointer-events: auto;
}

.custom-color-button.hidden {
    pointer-events: none;
}

@keyframes shake {
    10%, 90% {
        transform: translate3d(-2x, -1px, 0);
    }
    20%, 80% {
        transform: translate3d(4px, 2px, 0);
    }
    30%, 50%, 70% {
        transform: translate3d(-8px, -4px, 0);
    }
    40%, 60% {
        transform: translate3d(8px, 4px, 0);
    }
}

