#include <bits/stdc++.h>
using namespace std;
void input(long long int n, long long int arr[]) {
  for (__typeof(n) i = (0) - ((0) > (n)); i != (n) - ((0) > (n));
       i += 1 - 2 * ((0) > (n)))
    cin >> arr[i];
}
long long int n;
vector<string> v;
bool valid(long long int i, long long int j) {
  return (i - 1 >= 0 && i + 1 < n && j - 1 >= 0 && j + 1 < n &&
          v[i][j] == '.' && v[i + 1][j] == '.' && v[i - 1][j] == '.' &&
          v[i][j - 1] == '.' && v[i][j + 1] == '.');
}
void mark(long long int i, long long int j) {
  v[i][j] = '#';
  v[i - 1][j] = '#', v[i][j - 1] = '#';
  v[i + 1][j] = '#';
  v[i][j + 1] = '#';
}
int main() {
  ios_base::sync_with_stdio(false);
  cin.tie(NULL);
  cout.tie(NULL);
  cin >> n;
  v.clear();
  for (__typeof(n) i = (0) - ((0) > (n)); i != (n) - ((0) > (n));
       i += 1 - 2 * ((0) > (n))) {
    string str;
    cin >> str;
    v.push_back(str);
  }
  for (__typeof(n) i = (0) - ((0) > (n)); i != (n) - ((0) > (n));
       i += 1 - 2 * ((0) > (n))) {
    for (__typeof(n) j = (0) - ((0) > (n)); j != (n) - ((0) > (n));
         j += 1 - 2 * ((0) > (n))) {
      if (v[i][j] == '.') {
        if (valid(i, j)) mark(i, j);
      }
    }
  }
  bool empty = false;
  for (__typeof(n) i = (0) - ((0) > (n)); i != (n) - ((0) > (n));
       i += 1 - 2 * ((0) > (n)))
    for (__typeof(n) j = (0) - ((0) > (n)); j != (n) - ((0) > (n));
         j += 1 - 2 * ((0) > (n)))
      if (v[i][j] == '.') empty = true;
  if (empty)
    cout << "NO";
  else
    cout << "YES";
}
