/* M PLUS Rounded 1c フォント適用 */
body {
    font-family: 'M PLUS Rounded 1c', sans-serif;
}

/* アクティブタブスタイル */
.active-tab {
    background-color: #ff6b6b;
    color: #ffffff !important;
    box-shadow: 0 4px 12px rgba(255, 107, 107, 0.35);
}

/* タイマーバウンスアニメーション */
@keyframes bounce-gentle {
    0%, 100% { transform: translateY(0) scale(1); }
    50% { transform: translateY(-6px) scale(1.02); }
}
.timer-bounce {
    animation: bounce-gentle 0.8s infinite ease-in-out;
}

/* ポップインアニメーション */
@keyframes pop-in {
    0% { transform: scale(0.6); opacity: 0; }
    70% { transform: scale(1.1); }
    100% { transform: scale(1); opacity: 1; }
}
.pop-anim {
    animation: pop-in 0.35s cubic-bezier(0.175, 0.885, 0.32, 1.275) forwards;
}

/* ラスト追い込みパルスアニメーション */
@keyframes pulse-intense {
    0%, 100% { box-shadow: 0 0 0 0 rgba(244, 63, 94, 0.4); border-color: rgba(244, 63, 94, 0.8); }
    50% { box-shadow: 0 0 20px 8px rgba(244, 63, 94, 0.6); border-color: rgba(225, 29, 72, 1); }
}
.intense-pulse {
    animation: pulse-intense 1s infinite ease-in-out;
}

/* 円形プログレスリング SVG */
.progress-ring__circle {
    transition: stroke-dashoffset 0.35s linear, stroke 0.35s ease;
    transform: rotate(-90deg);
    transform-origin: 50% 50%;
}

/* カスタムスクロールバー */
::-webkit-scrollbar {
    width: 8px;
}
::-webkit-scrollbar-track {
    background: #f1f5f9;
}
::-webkit-scrollbar-thumb {
    background: #cbd5e1;
    border-radius: 9999px;
}
