.campaign-page{padding:20px 0 60px}.campaign-page-inner{width:1100px;max-width:100%;margin:0 auto;padding:0 16px;box-sizing:border-box}.campaign-list-header{padding:8px 4px 24px}.campaign-list-title{font-size:26px;font-weight:var(--font-weight-bold);color:var(--color-text,#1f2329)}.campaign-list-sub{margin-top:8px;font-size:14px;color:var(--color-text-muted,#909399)}.campaign-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.campaign-card{display:block;background:var(--color-bg-white,#fff);border:1px solid var(--color-border,#e6e8eb);border-radius:var(--radius-lg);overflow:hidden;transition:transform .2s ease,box-shadow .2s ease}.campaign-card:hover{transform:translateY(-3px);box-shadow:0 8px 24px rgba(0,0,0,.08)}.campaign-card-cover{width:100%;height:150px;overflow:hidden;background:var(--color-bg-muted,#f5f6f8)}.campaign-card-cover img{width:100%;height:100%;object-fit:cover;display:block}.campaign-card-body{padding:14px 16px 16px}.campaign-card-title{font-size:16px;font-weight:var(--font-weight-semibold);color:var(--color-text,#1f2329);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.campaign-card-subtitle{margin-top:6px;font-size:13px;color:var(--color-text-muted,#909399);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.campaign-card-meta{display:flex;gap:14px;margin-top:10px;font-size:12px;color:var(--color-text-muted,#909399)}.campaign-hero{position:relative;padding:48px 0;background-color:#f7f1ea;background-size:cover;background-position:center;text-align:center}.campaign-hero::before{content:'';position:absolute;inset:0;background:rgba(31,35,41,.45)}.campaign-hero-inner{position:relative;width:1100px;max-width:100%;margin:0 auto;padding:0 16px;box-sizing:border-box}.campaign-hero-title{font-size:30px;font-weight:var(--font-weight-bold);color:var(--color-white)}.campaign-hero-subtitle{margin-top:12px;font-size:15px;color:rgba(255,255,255,.88)}.campaign-hero-meta{display:flex;justify-content:center;gap:20px;margin-top:18px;font-size:13px;color:rgba(255,255,255,.78)}.campaign-post-list{margin-top:24px}.campaign-post-card{background:var(--color-bg-white,#fff);border:1px solid var(--color-border,#e6e8eb);border-radius:var(--radius-lg);padding:16px;margin-bottom:16px;transition:box-shadow .2s ease}.campaign-post-card:hover{box-shadow:0 6px 18px rgba(0,0,0,.06)}.campaign-post-main{display:flex;gap:16px}.campaign-post-cover{width:150px;height:92px;flex-shrink:0;border-radius:var(--radius-md);overflow:hidden;background:var(--color-bg-muted,#f5f6f8)}.campaign-post-cover img{width:100%;height:100%;object-fit:cover;display:block}.campaign-post-body{flex:1;min-width:0}.campaign-post-title{font-size:16px;font-weight:var(--font-weight-semibold);color:var(--color-text,#1f2329);line-height:var(--line-height-normal);overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.campaign-post-desc{margin-top:6px;font-size:13px;color:var(--color-text-muted,#909399);line-height:var(--line-height-relaxed);overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.campaign-post-meta{display:flex;align-items:center;justify-content:space-between;margin-top:10px}.campaign-post-author{display:inline-flex;align-items:center;gap:6px}.campaign-post-avatar{width:24px;height:24px;border-radius:50%;object-fit:cover;display:inline-block}.campaign-post-avatar-ph{display:inline-flex;align-items:center;justify-content:center;background:var(--color-bg-muted,#f0f1f3);color:var(--color-text-muted,#909399);font-size:12px}.campaign-post-author-name{font-size:13px;color:var(--color-text-muted,#909399)}.campaign-post-time{font-size:12px;color:var(--color-text-muted,#b0b3b8)}.campaign-post-stats{display:flex;gap:16px;padding-top:12px;margin-top:12px;border-top:1px dashed var(--color-border,#eef0f2);font-size:13px;color:var(--color-text-muted,#909399)}.campaign-post-stats span{display:inline-flex;align-items:center;gap:4px}.campaign-empty{color:var(--color-text-muted,#909399);font-size:30px}.campaign-notfound-icon{font-size:48px;color:var(--color-text-muted,#b0b3b8)}.campaign-notfound h2{font-size:20px;color:var(--color-text,#1f2329)}@media (max-width:900px){.campaign-grid{grid-template-columns:repeat(2,1fr)}}@media (max-width:640px){.campaign-grid{grid-template-columns:1fr}.campaign-hero{padding:36px 0}.campaign-hero-title{font-size:22px}.campaign-post-main{flex-direction:column}.campaign-post-cover{width:100%;height:160px}}