#include <bits/stdc++.h>
using namespace std;
typedef vector<vector<int> > VVI;
typedef priority_queue<int, vector<int>, greater<int> > PQ;
int n;
int Dx[] = {-1, 0, 1, 0};
int Dy[] = {0, 1, 0, -1};
string grid[105];
bool vs[105][105];
bool valid(int x, int y) { return x >= 0 && x < n && y >= 0 && y < n; }
void F(int x, int y) {
  vs[x][y] = 1;
  for (int i = 0; i < 4; i++) {
    int xx = x + Dx[i];
    int yy = y + Dy[i];
    vs[xx][yy] = 1;
  }
}
int main() {
  cin >> n;
  for (int i = 0; i < n; i++) cin >> grid[i];
  for (int i = 0; i < n; i++) {
    for (int j = 0; j < n; j++) {
      if (grid[i][j] == '#')
        vs[i][j] = 1;
      else if (grid[i][j] == '.' && vs[i][j] == 0) {
        int c = 1;
        for (int k = 0; k < 4; k++) {
          int xx = i + Dx[k];
          int yy = j + Dy[k];
          if (valid(xx, yy) == 1 && grid[xx][yy] == '.' && vs[xx][yy] == 0) c++;
        }
        if (c == 5) {
          F(i, j);
        }
      }
    }
  }
  for (int i = 0; i < n; i++) {
    for (int j = 0; j < n; j++) {
      if (vs[i][j] == 0) {
        cout << "NO";
        return 0;
      }
    }
  }
  cout << "YES";
  return 0;
}
