.post-list-section{margin-bottom:40px}.post-list-title{font-size:20px;font-weight:700;color:#1a1a2e;margin-bottom:20px;letter-spacing:-.3px}.post-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:20px}.post-card{display:flex;flex-direction:column;border-radius:14px;overflow:hidden;background:white;box-shadow:0 1px 12px rgba(124,58,237,.07);text-decoration:none;color:inherit;transition:transform .2s,box-shadow .2s}.post-card:hover{transform:translateY(-3px);box-shadow:0 8px 28px rgba(124,58,237,.14)}.post-card-cover{position:relative;aspect-ratio:16/9;overflow:hidden;background:var(--purple-light)}.post-card-cover-placeholder{width:100%;height:100%;display:flex;align-items:center;justify-content:center;font-size:32px;background:linear-gradient(135deg,#f3f0ff,#ede9fe)}.post-card-body{display:flex;flex-direction:column;gap:8px;padding:14px;flex:1}.post-card-title{font-size:15px;font-weight:600;color:#1a1a2e;line-height:1.4}.post-card-excerpt,.post-card-title{margin:0;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.post-card-excerpt{font-size:13px;color:#6B7280;line-height:1.5}.post-card-footer{display:flex;align-items:center;justify-content:space-between;margin-top:auto;padding-top:8px;border-top:1px solid #f3f4f6}.post-card-author{display:flex;align-items:center;gap:6px}.post-card-author-avatar{width:24px;height:24px;border-radius:50%;background:linear-gradient(135deg,var(--purple),#A78BFA);position:relative;overflow:hidden;display:flex;align-items:center;justify-content:center;color:white;font-size:10px;font-weight:700;flex-shrink:0}.post-card-author-name{font-size:12px;font-weight:500;color:#374151;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100px}.post-card-meta{display:flex;align-items:center;gap:8px;flex-shrink:0}.post-card-time,.post-card-views{font-size:11px;color:#9CA3AF}.post-list-empty,.post-list-error{text-align:center;padding:48px 24px;color:#9CA3AF;font-size:14px;background:white;border-radius:14px;border:1px dashed #e5e7eb}.post-list-count{text-align:center;font-size:12px;color:#9CA3AF;margin-top:16px}@media (max-width:640px){.post-grid{grid-template-columns:1fr}}.post-card-skeleton{pointer-events:none}.skeleton-box,.skeleton-line{background:linear-gradient(90deg,#f3f0ff 25%,#e9e4ff 50%,#f3f0ff 75%);background-size:200% 100%;animation:shimmer 1.4s infinite;border-radius:6px}.skeleton-box{aspect-ratio:16/9;width:100%}.skeleton-line{height:13px;margin-bottom:8px}.w-90{width:90%}.w-60{width:60%}.w-40{width:40%}.w-20{width:20%}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.post-list-end{text-align:center;font-size:12px;color:#C4B5FD;margin-top:32px;letter-spacing:.05em}.post-like-btn{display:flex;align-items:center;gap:8px;padding:10px 20px;border-radius:var(--radius-full);border:1.5px solid #e5e7eb;background:white;font-family:var(--font);font-size:14px;font-weight:600;color:#6B7280;cursor:pointer;position:relative;transition:border-color .2s,color .2s,background .2s;user-select:none;-webkit-tap-highlight-color:transparent}.post-like-btn:hover:not(.loading){border-color:#FDA4AF;color:#F43F5E;background:#FFF1F2}.post-like-btn.liked{border-color:#F43F5E;color:#F43F5E;background:#FFF1F2}.post-like-btn.loading{cursor:wait;opacity:.8}.like-icon-wrap{position:relative;width:24px;height:24px;flex-shrink:0}.like-icon{position:absolute;inset:0;width:100%;height:100%}.like-icon-bg{fill:#E5E7EB;transition:fill .2s}.post-like-btn.liked .like-icon-bg,.post-like-btn:hover .like-icon-bg{fill:#FDA4AF}.like-icon-fg{fill:#F43F5E;transform:scale(0);transition:transform 0s}.post-like-btn.liked .like-icon-fg{animation:heartPop .45s cubic-bezier(.17,.89,.32,1.49) forwards}.post-like-btn:not(.liked) .like-icon-fg{animation:heartShrink .2s ease forwards}@keyframes heartPop{0%{transform:scale(0)}50%{transform:scale(1.35)}75%{transform:scale(.9)}to{transform:scale(1)}}@keyframes heartShrink{0%{transform:scale(1)}to{transform:scale(0)}}.like-count{min-width:16px;transition:transform .2s}.post-like-btn.liked .like-count{animation:countBounce .3s ease}@keyframes countBounce{0%{transform:translateY(0)}40%{transform:translateY(-4px)}to{transform:translateY(0)}}.like-label{font-size:13px}.like-particles{position:absolute;inset:0;pointer-events:none}.like-particle{position:absolute;top:50%;left:50%;width:6px;height:6px;border-radius:50%;background:hsl(calc(var(--i) * 45deg),85%,60%);animation:particleBurst .6s ease forwards;animation-delay:calc(var(--i) * .02s);transform-origin:center}@keyframes particleBurst{0%{transform:translate(-50%,-50%) scale(1) rotate(calc(var(--i) * 45deg)) translateX(0);opacity:1}to{transform:translate(-50%,-50%) scale(0) rotate(calc(var(--i) * 45deg)) translateX(20px);opacity:0}}@media (max-width:480px){.like-label{display:none}.post-like-btn{padding:9px 16px}}