@import url('https://fonts.googleapis.com/css2?family=Aref+Ruqaa:wght@400;700&family=Tajawal:wght@400;700;900&display=swap');

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

/* ===== CHALKBOARD BACKGROUND ===== */
body {
  font-family: 'Tajawal', sans-serif;
  background: #2d4a3e;
  background-image:
    linear-gradient(rgba(255,255,255,0.02) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,0.02) 1px, transparent 1px);
  background-size: 30px 30px;
  color: #2c2c2c;
  min-height: 100vh;
  direction: rtl;
  position: relative;
}

/* Chalk dust smudges */
body::before {
  content: '';
  position: fixed;
  top: 0; left: 0; right: 0; bottom: 0;
  background:
    radial-gradient(ellipse at 15% 25%, rgba(255,255,255,0.015) 0%, transparent 40%),
    radial-gradient(ellipse at 75% 60%, rgba(255,255,255,0.02) 0%, transparent 35%),
    radial-gradient(ellipse at 50% 85%, rgba(255,255,255,0.01) 0%, transparent 30%);
  pointer-events: none;
}

body > * { position: relative; z-index: 1; }

/* ===== CHALK TEXT ===== */
.chalk {
  color: #e8e0d0;
  text-shadow: 0 0 4px rgba(232,224,208,0.1);
  font-family: 'Aref Ruqaa', serif;
}

.chalk-dim {
  color: rgba(232,224,208,0.5);
  text-shadow: 0 0 4px rgba(232,224,208,0.08);
}

/* ===== STICKERS ===== */
.sticker {
  display: inline-block;
  padding: 10px 26px;
  border-radius: 6px;
  font-size: 1.3rem;
  font-weight: 700;
  font-family: 'Aref Ruqaa', serif;
  box-shadow: 1px 2px 5px rgba(0,0,0,0.25);
}

.sticker.pink {
  background: #ffc0cb;
  color: #8b2252;
  transform: rotate(-2deg);
}

.sticker.mint {
  background: #b5ead7;
  color: #2d6a4f;
  transform: rotate(1.5deg);
}

.sticker.coral {
  background: #ff6b6b;
  color: #fff;
  transform: rotate(-1deg);
}

.sticker.lavender {
  background: #c3aed6;
  color: #4a2d6b;
  transform: rotate(1deg);
}

/* ===== PAPER CARDS ===== */
.paper-card {
  background: #faf6f0;
  padding: 28px 80px 28px 32px;
  border-radius: 2px;
  box-shadow:
    2px 3px 10px rgba(0,0,0,0.3),
    0 0 0 1px rgba(0,0,0,0.04);
  position: relative;
  width: 100%;
  max-width: 600px;
  margin: 10px 0;
  /* Lined paper */
  background-image:
    repeating-linear-gradient(
      transparent,
      transparent 29px,
      #c9d4e0 29px,
      #c9d4e0 30px
    );
  background-position: 0 20px;
  background-color: #faf6f0;
}

.paper-card.tilted-1 { transform: rotate(-0.7deg); }
.paper-card.tilted-2 { transform: rotate(0.9deg); }
.paper-card.tilted-3 { transform: rotate(-1.1deg); }
.paper-card.tilted-4 { transform: rotate(0.5deg); }

/* Torn bottom edge */
.paper-card.torn::after {
  content: '';
  position: absolute;
  bottom: -8px;
  left: 5%;
  right: 5%;
  height: 8px;
  background:
    linear-gradient(135deg, #faf6f0 33.33%, transparent 33.33%) 0 0,
    linear-gradient(225deg, #faf6f0 33.33%, transparent 33.33%) 0 0;
  background-size: 12px 8px;
  background-repeat: repeat-x;
}

/* Red margin line */
.paper-card.with-margin::before {
  content: '';
  position: absolute;
  top: 0;
  right: 55px;
  bottom: 0;
  width: 2px;
  background: #e8a0a0;
  opacity: 0.6;
}

/* ===== GRID PAPER (for scoreboard) ===== */
.grid-paper {
  background: #fffef5;
  background-image:
    linear-gradient(rgba(180,200,220,0.25) 1px, transparent 1px),
    linear-gradient(90deg, rgba(180,200,220,0.25) 1px, transparent 1px);
  background-size: 24px 24px;
  background-color: #fffef5;
  border-radius: 2px;
  box-shadow: 2px 3px 10px rgba(0,0,0,0.3);
  position: relative;
}

/* ===== PUSH PINS ===== */
.pin {
  width: 14px;
  height: 14px;
  border-radius: 50%;
  position: absolute;
  top: -5px;
  box-shadow: 0 2px 4px rgba(0,0,0,0.35);
  z-index: 2;
}

.pin.red { background: radial-gradient(circle at 40% 40%, #ff6b6b, #cc3333); right: 18px; }
.pin.blue { background: radial-gradient(circle at 40% 40%, #6b9fff, #3366cc); left: 18px; }
.pin.green { background: radial-gradient(circle at 40% 40%, #6bff9f, #33cc66); right: 25px; }
.pin.yellow { background: radial-gradient(circle at 40% 40%, #fff06b, #ccaa33); left: 22px; }

/* ===== WASHI TAPE ===== */
.washi {
  width: 90%;
  max-width: 600px;
  height: 10px;
  margin: 18px 0;
  background: repeating-linear-gradient(
    90deg,
    #ffb3ba 0px, #ffb3ba 10px,
    #bae1ff 10px, #bae1ff 20px,
    #baffc9 20px, #baffc9 30px,
    #ffffba 30px, #ffffba 40px
  );
  opacity: 0.5;
  border-radius: 1px;
}

/* ===== STAMPS ===== */
.stamp {
  display: inline-block;
  font-family: 'Tajawal', sans-serif;
  font-weight: 900;
  font-size: 1rem;
  padding: 4px 16px;
  border: 3px solid;
  border-radius: 4px;
  transform: rotate(-4deg);
  margin-top: 8px;
}

.stamp.correct { border-color: #2d8a4e; color: #2d8a4e; }
.stamp.wrong { border-color: #c0392b; color: #c0392b; }
.stamp.duplicate { border-color: #d4880f; color: #d4880f; }

/* ===== COLORS ===== */
.color-correct { color: #2d8a4e; }
.color-wrong { color: #c0392b; }
.color-duplicate { color: #d4880f; }
.color-ink { color: #1a3a6a; }

/* ===== TYPOGRAPHY ===== */
.font-handwritten {
  font-family: 'Aref Ruqaa', serif;
}

/* ===== BUTTONS ===== */
.btn {
  padding: 14px 50px;
  border-radius: 6px;
  font-size: 1.2rem;
  font-weight: 700;
  font-family: 'Tajawal', sans-serif;
  cursor: pointer;
  border: none;
  transition: all 0.2s;
}

.btn-coral {
  background: #ff6b6b;
  color: #fff;
  box-shadow: 2px 3px 8px rgba(0,0,0,0.3);
  transform: rotate(-0.5deg);
}

.btn-coral:hover {
  transform: rotate(0deg) scale(1.03);
  box-shadow: 2px 4px 12px rgba(0,0,0,0.35);
}

.btn-mint {
  background: #b5ead7;
  color: #2d6a4f;
  box-shadow: 2px 3px 8px rgba(0,0,0,0.3);
  transform: rotate(0.5deg);
}

.btn-mint:hover {
  transform: rotate(0deg) scale(1.03);
}

/* ===== ANIMATIONS ===== */
@keyframes cardSlide {
  0% { opacity: 0; transform: translateY(20px); }
  100% { opacity: 1; }
}

@keyframes pinDrop {
  0% { transform: scale(0); opacity: 0; }
  60% { transform: scale(1.2); }
  100% { transform: scale(1); opacity: 1; }
}

@keyframes fadeIn {
  0% { opacity: 0; }
  100% { opacity: 1; }
}

/* ===== LAYOUT HELPERS ===== */
.centered {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
}

.full-height {
  min-height: 100vh;
}

.gap-sm { gap: 10px; }
.gap-md { gap: 20px; }
.gap-lg { gap: 30px; }
