@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}@keyframes zoomIn{0%{opacity:0;transform:scale(.8)}to{opacity:1;transform:scale(1)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}@keyframes bounce{0%,20%,53%,80%,to{transform:translateZ(0)}40%,43%{transform:translate3d(0,-8px,0)}70%{transform:translate3d(0,-4px,0)}90%{transform:translate3d(0,-2px,0)}}.animate-fadeIn{animation:fadeIn .3s ease-out}.animate-slideUp{animation:slideUp .4s ease-out}.animate-zoomIn{animation:zoomIn .3s ease-out}.animate-pulse{animation:pulse 2s infinite}.animate-bounce{animation:bounce 1s infinite}.backdrop-blur-sm{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.backdrop-blur-md{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.hover-lift{transition:all .3s ease}.hover-lift:hover{transform:translateY(-4px);box-shadow:0 10px 25px rgba(0,0,0,.15)}.glass{background:rgba(255,255,255,.95);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.2)}.custom-scrollbar::-webkit-scrollbar{width:6px}.custom-scrollbar::-webkit-scrollbar-track{background:#f1f1f1;border-radius:3px}.custom-scrollbar::-webkit-scrollbar-thumb{background:#c1c1c1;border-radius:3px}.custom-scrollbar::-webkit-scrollbar-thumb:hover{background:#a8a8a8}@keyframes shimmer{0%{background-position:-200px 0}to{background-position:calc(200px + 100%) 0}}.shimmer{background:linear-gradient(90deg,#f0f0f0 25%,#e0e0e0,#f0f0f0 75%);background-size:200px 100%;animation:shimmer 1.5s infinite}.line-clamp-4{display:-webkit-box;-webkit-line-clamp:4;line-clamp:4;-webkit-box-orient:vertical;overflow:hidden}.focus-ring:focus{outline:2px solid #3b82f6;outline-offset:2px;border-radius:4px}.aspect-square{aspect-ratio:1 / 1}.aspect-video{aspect-ratio:16 / 9}.aspect-photo{aspect-ratio:4 / 3}.iframe-container{position:relative;overflow:hidden;border-radius:8px;background:#f8fafc}.iframe-container iframe{transition:transform .3s ease}.iframe-container:hover iframe{transform:scale(1.02)}@media (max-width: 768px){.iframe-container iframe{height:400px!important}}@media (max-width: 480px){.iframe-container iframe{height:350px!important}}.iframe-loading{display:flex;align-items:center;justify-content:center;min-height:300px;background:linear-gradient(90deg,#f0f0f0 25%,#e0e0e0,#f0f0f0 75%);background-size:200% 100%;animation:loading 1.5s infinite}@keyframes loading{0%{background-position:200% 0}to{background-position:-200% 0}}.line-clamp-2{display:-webkit-box;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.line-clamp-3{display:-webkit-box;-webkit-line-clamp:3;line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.prose{max-width:none}.prose h2{font-size:1.5rem;font-weight:600;margin-top:2rem;margin-bottom:1rem;color:#1f2937}.prose h3{font-size:1.25rem;font-weight:600;margin-top:1.5rem;margin-bottom:.75rem;color:#374151}.prose p{margin-bottom:1.5rem;line-height:1.7}.prose ul{margin-bottom:1.5rem;padding-left:1.5rem}.prose li{margin-bottom:.5rem}.article-card-hover{transition:all .3s ease}.article-card-hover:hover{transform:translateY(-4px);box-shadow:0 20px 25px -5px rgba(0,0,0,.1),0 10px 10px -5px rgba(0,0,0,.04)}
