@font-face {
    font-family: 'title';
    src: url('fonts/3dumb.woff2') format('woff2'),
        url('fonts/3dumb.woff') format('woff');
    font-weight: normal;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'symbol';
    src: url('fonts/2Dumb.woff2') format('woff2'),
        url('fonts/2Dumb.woff') format('woff');
    font-weight: normal;
    font-style: normal;
    font-display: swap;
}

:root {
  font-size: 16px;
  --main-color: #012622;
  --grid-lines: #003B36;
  --background-color: #ECE5F0;
  --background-color-muted: #D9CBE1;
  --side-color: #675E51;
  --round-symbol: #2B50AA;
  --cross-symbol: #764248;
  --border: 2px solid var(--grid-lines);
  font-family: "symbol", Arial, Helvetica, sans-serif;
}

* {
  box-sizing: border-box;
  padding: 0;
  margin: 0;
}

input {
  border: none;
  outline: none;
  background: transparent;
  font: inherit;
}

#container {
  min-height: 100vh;
  display: grid;
  grid-template-columns: 5fr 2fr;
  grid-template-rows: 5rem 1fr;
  grid-template-areas: 
    'top-bar buffer'
    'game-section help-section';
}

#top-bar {
  background-color: var(--main-color);
  grid-area: top-bar;
  display: flex;
  align-items: center;
}

#title {
  flex: 1;
  text-align: center;
  font-family: "title", Arial, Helvetica, sans-serif;
  color: var(--background-color);
  font-size: 4rem;
  padding-left: 2rem;
}

#buffer {
  grid-area: buffer;
  background-color: var(--main-color);
}

#game-section {
  display: grid;
  background-color: var(--background-color);
  grid-area: game-section;
  grid-template-columns: repeat(3, 1fr);
  grid-template-rows: 1fr 7fr 2rem;
  grid-template-areas: 
    'player0 . player1'
    'gameboard gameboard gameboard'
    'attribution attribution attribution';
  -webkit-box-shadow: inset 0px 5px 5px 2px #7A7A7A; 
  box-shadow: inset 0px 5px 5px 2px #7A7A7A;  
}

#player0 {
  color: var(--round-symbol);
  grid-area: player0;
}

#player1 {
  color: var(--cross-symbol);
  grid-area: player1;
}

#player0, #player1 {
  font-weight: 700;
  font-size: 2rem;
  text-align: center;
  align-content: center;
}

#attribution {
  grid-area: attribution;
  text-align: center;
  font-size: 1rem;
  color: var(--grid-lines);
} 

#gameboard {
  grid-area: gameboard;
  padding: 2rem;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  grid-template-rows: repeat(3, 1fr);
  place-content: center;
  place-items: stretch;
}

.grid-cell {
  display: flex;
  justify-content: center;
  align-items: center;
  font-size: 8rem;
  cursor: pointer;
}

[data-symbol="x"] {
  color: var(--cross-symbol);
}

[data-symbol="o"] {
  color: var(--round-symbol);
}

.border-top {
  border-top: var(--border);
}

.border-left {
  border-left: var(--border);
}

.border-right {
  border-right: var(--border);
}

.border-bottom {
  border-bottom: var(--border);
}

#help-section {
  background-color: var(--side-color);
  grid-area: help-section;
  display: flex;
  flex-direction: column;
  justify-content: center;
}

#help {
  text-align: center;
  color: var(--background-color);
  font-size: 2rem;
  margin-bottom: 2rem;
}

.name-input {
  display: flex;
  flex-direction: column;
  align-items: center;
}

input[type="text"] {
  font-size: 1rem;
  border: 0;
  border-radius: 25px;
  padding: 5px 10px;
  background-color: var(--background-color);
  margin-bottom: 1rem;
}

input[type="text"]:focus {
  border: 0;
  -webkit-box-shadow: inset 5px 4px 5px 0px #C1C1C1; 
  box-shadow: inset 5px 4px 5px 0px #C1C1C1;
}

button {
  color: var(--main-color);
  background-color: var(--background-color);
  border-radius: 25px;
  border: 0;
  cursor: pointer;
  font-size: 1.2rem;
  padding: 0.6rem 2rem;
  margin: 1rem;
}

button:active {
  background-color: var(--background-color-muted);
}

#first-buttons {
  display: none;
  justify-content: center;
}

#again-buttons {
  display: none;
  justify-content: center;
}