html, body { margin: 0; height: 100vh; overflow: hidden; background: linear-gradient(-45deg, #0f172a, #1e293b, #0ea5e9, #22c55e); background-size: 400% 400%; animation: gradientShift 12s ease infinite; color: white; font-family: Arial; } #problem { position: absolute; top: 10%; left: 50%; transform: translateX(-50%); font-size: 76px; text-align: center; } #equation { position: absolute; top: 30%; left: 50%; transform: translateX(-50%); font-size: 32px; font-family: "Comic Sans MS", cursive; /* surprisingly effective */ text-shadow: 0 0 2px rgba(255,255,255,0.8), 0 0 6px rgba(255,255,255,0.4); transition: opacity 0.5s ease, transform 0.5s ease; } #explanation { position: absolute; top: 45%; left: 50%; transform: translateX(-50%); font-size: 24px; opacity: 0.8; } 28px; #steps { position: absolute; top: 27%; /* below the problem */ left: 50%; transform: translateX(-50%); width: 800px; text-align: center; font-size: 28px; } #waveCanvas { position: fixed; top: 0; left: 0; width: 100%; height: 100%; z-index: 0; } #particleCanvas { position: fixed; top: 0; left: 0; width: 100%; height: 100%; z-index: 0; } .fade-out { opacity: 0; transform: translateX(-50%) scale(0.95); } .fade-in { opacity: 1; transform: translateX(-50%) scale(1); } .chalk-in { opacity: 0; transform: scale(1.05); filter: blur(6px); } .chalk-in-active { opacity: 1; transform: scale(1); filter: blur(0px); transition: all 0.4s ease; } @keyframes gradientShift { 0% { background-position: 0% 50%; } 50% { background-position: 100% 50%; } 100% { background-position: 0% 50%; } }