* { box-sizing: border-box; } html, body { margin: 0; width: 100%; min-height: 100%; } body { background: #0b0d12; color: #ffffff; font-family: Arial, Helvetica, sans-serif; } #app { min-height: 100vh; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 24px; padding: 24px; } /* Animation stage */ #stage { width: min(900px, 100%); aspect-ratio: 1 / 1; display: flex; align-items: center; justify-content: center; background: #11151d; border: 1px solid #252b36; border-radius: 12px; overflow: hidden; } #animation-canvas { width: 100%; height: 100%; display: block; image-rendering: pixelated; } /* Animation controls */ #controls { width: min(900px, 100%); display: flex; justify-content: center; flex-wrap: wrap; gap: 10px; } #controls button { appearance: none; padding: 10px 18px; background: #171c25; color: #ffffff; border: 1px solid #303744; border-radius: 6px; font: inherit; cursor: pointer; transition: background 120ms ease, border-color 120ms ease, transform 120ms ease; } #controls button:hover { background: #202733; border-color: #4b5565; } #controls button:active { transform: translateY(1px); } #controls button.active { background: #ffffff; color: #0b0d12; border-color: #ffffff; } /* Mobile */ @media (max-width: 600px) { #app { padding: 12px; gap: 16px; } #controls { justify-content: flex-start; } #controls button { flex: 1 1 auto; } } #engine-error { width: min(900px, 100%); margin: 0; padding: 12px 16px; color: #ffb4b4; background: #2a1518; border: 1px solid #70343b; border-radius: 6px; text-align: center; }