When you run animate in the way you do it does not affect the CSS properties from the CSS rule - they are excluded (you can see that the inline style created after animate does not contain visibility at all)...
What you can do is setting visibility before animate:
$("#block").css({visibility: "visible"}
).animate({
width: "300px",
opacity: 0.4,
marginLeft: "0.6in",
fontSize: "3em",
borderWidth: "10px"
}, 1500 );