* { box-sizing: border-box; }

body {
  font-family: sans-serif;
  color: #333;
}

.container {
  border: 1px solid;
  margin-bottom: 50px;
}

.container:after {
  content: '';
  display: block;
  clear: both;
}

.container:focus { border: 1px blue dotted; }

.cell {
  width: 100%;
  height: 200px;
  border: 0px solid white;
  background: #CCC;
}

.cell.is-selected {
  outline: 4px solid hsla(0, 0%, 0%, 0.25);
  outline-offset: -4px;
}

.cell:nth-child(6n) { background: hsl(0, 80%, 70%); }
.cell:nth-child(6n+1) { background: hsl(60, 80%, 70%); }
.cell:nth-child(6n+2) { background: hsl(120, 80%, 70%); }
.cell:nth-child(6n+3) { background: hsl(180, 80%, 70%); }
.cell:nth-child(6n+4) { background: hsl(240, 80%, 70%); }
.cell:nth-child(6n+5) { background: hsl(300, 80%, 70%); }

.cell.n1 { background: #D22; background: hsl(0, 80%, 70%); }
.cell.n2 { background: #DD2; background: hsl(60, 80%, 70%); }
.cell.n3 { background: #2D2; background: hsl(120, 80%, 70%); }
.cell.n4 { background: #2DD; background: hsl(180, 80%, 70%); }
.cell.n5 { background: #22D; background: hsl(240, 80%, 70%); }
.cell.n6 { background: #D2D; background: hsl(300, 80%, 70%); }

#half-width .cell {
  width: 48%;
  margin-right: 4%;
}

.variable-width .cell {
  width: 20%;
  margin-right: 3%;
}

.variable-width .cell.w2 { width: 30%; }
.variable-width .cell.w3 { width: 40%; }

.fixed-width .cell {
  width: 200px;
  margin-right: 20px;
}

/* big number */
.cell b {
  display: block;
  font-size: 100px;
  color: white;
  font-weight: bold;
  position: absolute;
  left: 10px;
  top: 10px;
}

/* ---- couning ---- */
.counting {
  counter-reset: cell;
}

.counting .cell:before {
  counter-increment: cell;
  content: counter(cell);
  display: block;
  font-size: 100px;
  color: white;
  font-weight: bold;
  position: absolute;
  left: 10px;
  top: 10px;
}
