/* TOEIC Trainer カスタムスタイル */

* {
  -webkit-tap-highlight-color: transparent;
}

body {
  font-family: -apple-system, BlinkMacSystemFont, 'Hiragino Sans', 'Noto Sans JP', 'Segoe UI', sans-serif;
  -webkit-font-smoothing: antialiased;
}

/* iOS セーフエリア */
.pt-safe {
  padding-top: max(1.25rem, env(safe-area-inset-top));
}

/* 紙吹雪 */
.confetti-piece {
  position: fixed;
  top: -12px;
  width: 8px;
  height: 14px;
  border-radius: 2px;
  z-index: 9999;
  pointer-events: none;
  animation: confetti-fall 2.4s cubic-bezier(0.25, 0.6, 0.5, 1) forwards;
}

@keyframes confetti-fall {
  0% {
    transform: translateY(0) rotate(0deg);
    opacity: 1;
  }
  100% {
    transform: translateY(105vh) rotate(720deg);
    opacity: 0;
  }
}

/* カード切り替えアニメーション */
#card-container > article {
  animation: card-in 0.25s ease-out;
}

@keyframes card-in {
  from {
    opacity: 0;
    transform: translateY(10px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

/* スクロールバー（管理画面） */
::-webkit-scrollbar {
  width: 10px;
  height: 10px;
}
::-webkit-scrollbar-track {
  background: transparent;
}
::-webkit-scrollbar-thumb {
  background: rgba(100, 116, 139, 0.4);
  border-radius: 5px;
}
::-webkit-scrollbar-thumb:hover {
  background: rgba(100, 116, 139, 0.6);
}

/* ヒートマップグリッド */
#heatmap {
  grid-template-rows: repeat(7, minmax(0, 1fr));
}

/* 数字を等幅に */
.tabular-nums {
  font-variant-numeric: tabular-nums;
}
