@keyframes glow-gentle{0%,to{box-shadow:0 0 4px rgba(147,51,234,.3),0 0 8px rgba(147,51,234,.2)}50%{box-shadow:0 0 8px rgba(147,51,234,.4),0 0 16px rgba(147,51,234,.3)}}.animate-pulse-subtle{animation:glow-gentle 3s ease-in-out infinite;border:2px solid rgba(147,51,234,.5)}.learning-highlight{position:relative}.learning-highlight:before{content:"";position:absolute;inset:-2px;border:2px solid #9333ea;border-radius:.5rem;opacity:.5;pointer-events:none;animation:pulse-subtle 2s infinite}.learning-cursor-hint{cursor:help}.learning-transition{transition:all .3s ease-in-out}@keyframes bounce-once{0%,to{transform:translateY(0)}25%{transform:translateY(-10px)}50%{transform:translateY(-5px)}75%{transform:translateY(-8px)}}@keyframes pulse-once{0%{opacity:1}50%{opacity:.7}to{opacity:1}}.animate-bounce-once{animation:bounce-once .8s ease-in-out}.animate-pulse-once{animation:pulse-once 1.5s ease-in-out}.file-new-highlight{position:relative;overflow:hidden}.file-new-highlight:before{content:"";position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(34,197,94,.2),transparent);animation:shimmer 2s ease-in-out}@keyframes shimmer{0%{left:-100%}to{left:100%}}@keyframes highlight-row{0%{background-color:rgba(34,197,94,.25)}to{background-color:transparent}}.animate-highlight-row{animation:highlight-row 2.5s ease-out}