  body { font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Hiragino Sans", "Yu Gothic", sans-serif; }
  .meter-fill { transition: width 0.6s cubic-bezier(0.22, 1, 0.36, 1), background 0.6s; }
  .pulse-ring { animation: pulse-ring 1.2s ease-out infinite; }
  @keyframes pulse-ring {
    0% { transform: scale(0.95); opacity: 0.8; }
    100% { transform: scale(1.4); opacity: 0; }
  }
  .shake { animation: shake 0.18s ease-in-out; }
  @keyframes shake {
    0%, 100% { transform: translate(0, 0); }
    25% { transform: translate(-4px, 2px); }
    75% { transform: translate(4px, -2px); }
  }
  .crack { position: absolute; pointer-events: none; opacity: 0; }
  .crack.show { animation: crack-show 0.5s forwards; }
  @keyframes crack-show {
    0% { opacity: 0; transform: scale(0.6); }
    50% { opacity: 1; }
    100% { opacity: 0.85; transform: scale(1); }
  }
  .flame { display: inline-block; animation: flame-flicker 0.4s ease-in-out infinite alternate; }
  @keyframes flame-flicker {
    from { transform: translateY(0) scale(1); }
    to { transform: translateY(-3px) scale(1.08); }
  }
  .ash-fall { animation: ash-fall 2s forwards; }
  @keyframes ash-fall {
    0% { opacity: 1; transform: translateY(0); filter: blur(0); }
    100% { opacity: 0; transform: translateY(60px); filter: blur(4px); }
  }
  .breath-circle {
    transition: transform 4s ease-in-out, background 0.4s;
  }
  .fade-in { animation: fade-in 0.3s ease-out; }
  @keyframes fade-in { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: translateY(0); } }
  .celebrate { animation: celebrate 0.6s ease-out; }
  @keyframes celebrate { 0% { transform: scale(0.5); opacity: 0; } 50% { transform: scale(1.2); } 100% { transform: scale(1); opacity: 1; } }
  .confetti { position: fixed; top: -10px; width: 8px; height: 14px; opacity: 0.9; pointer-events: none; }
