.skeleton{background-color:#eee;background-image:linear-gradient(90deg,#eee,#f5f5f5 20%,#fafafa 40%,#f5f5f5 60%,#eee);background-size:400% 100%;animation:skeleton-shimmer 1.8s ease-in-out infinite}@keyframes skeleton-shimmer{0%{background-position:100% 50%}to{background-position:0 50%}}.recipe-card-skeleton{background:#fff;border-radius:16px;overflow:hidden;box-shadow:var(--shadow-sm);margin-bottom:12px;-moz-column-break-inside:avoid;break-inside:avoid-column;display:inline-block;width:100%}.skeleton-detail{padding:16px}.skeleton-detail .skeleton-hero{width:100%;aspect-ratio:16/9;border-radius:12px;margin-bottom:16px}.skeleton-detail .skeleton-title{height:28px;width:80%;border-radius:8px;margin-bottom:12px}.skeleton-detail .skeleton-author{display:flex;align-items:center;gap:12px;margin-bottom:16px}.skeleton-detail .skeleton-avatar{width:40px;height:40px;border-radius:50%;flex-shrink:0}.skeleton-detail .skeleton-name{height:16px;width:100px;border-radius:4px}.skeleton-detail .skeleton-section{margin-bottom:24px}.skeleton-detail .skeleton-section-title{height:20px;width:120px;border-radius:4px;margin-bottom:12px}.skeleton-detail .skeleton-text{height:14px;border-radius:4px;margin-bottom:8px}.skeleton-detail .skeleton-text:last-child{width:60%}.skeleton-button{height:48px;border-radius:24px;margin-bottom:12px}.p-3{padding:12px}.mb-2{margin-bottom:8px}.skeleton-pulse{animation:skeleton-pulse 2s cubic-bezier(.4,0,.6,1) infinite}@keyframes skeleton-pulse{0%,to{opacity:1}50%{opacity:.5}}