canvas {
    display: block; /* Ensures canvases stack vertically without extra space */
    margin: 0 auto; /* Center the canvas if it's narrower than the body */
    width: 100%; /* Make canvas take full width of its parent */
    height: auto; /* Maintain aspect ratio based on width */
    /* The internal canvas.width and canvas.height attributes (set in JS) define the resolution.
       These CSS properties define the display size, allowing for responsive scaling. */
}
/* Basic styling for loading message, without fancy animations or colors */
#loading-message {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 20px;
    font-size: 1em;
    color: #333;
}
#loading-message div { /* Simple placeholder for spinner */
    border: 2px solid rgba(0, 0, 0, 0.1);
    border-left-color: #333;
    border-radius: 50%;
    width: 20px;
    height: 20px;
    animation: spin 1s linear infinite;
    margin-bottom: 10px;
}
@keyframes spin {
    0% { transform: rotate(0deg); }
    100% { transform: rotate(360deg); }
}