/* Crossword Styles */
.cw-layout {
  display: grid;
  grid-template-columns: 2fr 1fr;
  gap: 20px;
  align-items: start;
}
@media (max-width: 768px) {
  .cw-layout {
    grid-template-columns: 1fr;
  }
}
.cw-cell {
  width: 100%;
  height: 100%;
  text-align: center;
  font-size: 1.2rem;
  font-weight: bold;
  text-transform: uppercase;
  border: 1px solid rgba(56, 189, 248, 0.4);
  border-radius: 8px;
  background: rgba(15, 23, 41, 0.9);
  color: #f8fafc;
  transition: all 0.2s;
  box-shadow: inset 0 2px 5px rgba(0,0,0,0.5);
}
.cw-cell.revealed {
  background: rgba(56, 189, 248, 0.15);
  color: #38bdf8;
  border-color: rgba(56, 189, 248, 0.6);
  cursor: default;
  box-shadow: none;
}
.cw-cell.input {
  background: rgba(30, 41, 59, 0.9);
}
.cw-cell.input:focus {
  outline: none;
  border-color: #38bdf8;
  background: rgba(30, 41, 59, 1);
  box-shadow: 0 0 10px rgba(56, 189, 248, 0.5), inset 0 2px 5px rgba(0,0,0,0.5);
  transform: scale(1.05);
  z-index: 10;
}
.cw-cell.error {
  border-color: #f43f5e !important;
  background: rgba(244, 63, 94, 0.1) !important;
  color: #f43f5e !important;
  box-shadow: 0 0 10px rgba(244, 63, 94, 0.3) !important;
}
.cw-cell.correct-input {
  border-color: #10b981 !important;
  background: rgba(16, 185, 129, 0.15) !important;
  color: #10b981 !important;
  box-shadow: 0 0 10px rgba(16, 185, 129, 0.3) !important;
}

@keyframes shake {
  0%, 100% { transform: translateX(0); }
  10%, 30%, 50%, 70%, 90% { transform: translateX(-5px); }
  20%, 40%, 60%, 80% { transform: translateX(5px); }
}
.shake {
  animation: shake 0.5s cubic-bezier(.36,.07,.19,.97) both;
}
@keyframes popCorrect {
  0% { transform: scale(1); }
  50% { transform: scale(1.15); box-shadow: 0 0 15px rgba(16, 185, 129, 0.8); }
  100% { transform: scale(1); box-shadow: 0 0 10px rgba(16, 185, 129, 0.3); }
}
.pop-correct {
  animation: popCorrect 0.4s cubic-bezier(0.34, 1.56, 0.64, 1) forwards !important;
}
