D.h. im "Leerlauf" liegen 5V an, beim Drücken des Tasters wird der Pin auf Masse gezogen.
Im Programm ist die Abfrage aber genau andersrum:
if (PIND & (1 << PIND3)) ist dann wahr, wenn der auf 5V liegt; bei dir also, wenn der Taster _nicht_ gedrückt ist.

Du müsstest also abfragen, ob der Pin 0 ist. Auch hier gibts wieder 2 Möglichkeiten:

Code:
if (!(PIND & (1 << PIND3)))
if ((PIND & (1 << PIND3)) == 0)