.feed-sticky{position: sticky;top: 61px;z-index: 100}.feed-toolbar{display: flex;align-items: center;justify-content: space-between;gap: 8px;touch-action: pan-x;padding: 16px 20px;background: var(--bg-color);border-bottom: var(--border-width) solid var(--border-color)}@media (max-width: 768px){.feed-sticky{top: 57px}.feed-toolbar{padding: 12px 16px;gap: 14px;flex-direction: column;align-items: stretch}.feed-toolbar-right{justify-content: center}.feed-chips{justify-content: center;justify-content: safe center}}.feed-chips{display: flex;align-items: center;gap: 6px;overflow-x: auto;touch-action: pan-x;flex-wrap: nowrap;-webkit-overflow-scrolling: touch;scrollbar-width: none;padding: 6px;margin: -6px}.feed-chips::-webkit-scrollbar{display: none}.feed-chip{display: inline-flex;align-items: center;gap: 6px;white-space: nowrap;padding: 8px 14px;border-radius: var(--radius-sm);font-size: 14px;font-weight: 700;color: var(--text-color);background: var(--color-white);border: var(--border-width) solid var(--border-color);cursor: pointer;transition: all var(--transition-fast);box-shadow: var(--shadow-sm)}.feed-chip img{width: 18px;height: 18px;flex-shrink: 0}.feed-chip:hover{transform: translate(-2px,-2px);box-shadow: var(--shadow);background: var(--color-cream)}.feed-chip.active{transform: translate(-2px,-2px);box-shadow: var(--shadow);background: var(--primary-color)}.feed-chip.active[data-craft="all"]{background: var(--text-color,#1a1a1a);color: var(--color-white,#fff)}.feed-chip.active[data-craft="block2d"]{background: var(--craft-2d,#F4EE8E)}.feed-chip.active[data-craft="block3d"]{background: var(--craft-3d,#CDB9F6)}.feed-chip.active[data-craft="bead"]{background: var(--craft-bead,#92D4E2)}.feed-toolbar-right{display: flex;align-items: center;gap: 8px;flex-shrink: 0}.feed-sort-wrap{position: relative}.feed-sort-btn{display: inline-flex;align-items: center;gap: 4px;padding: 8px 12px;border-radius: var(--radius-sm);font-size: 14px;font-weight: 700;color: var(--text-color);background: var(--color-white);border: var(--border-width) solid var(--border-color);cursor: pointer;transition: all var(--transition-fast);box-shadow: var(--shadow-sm);white-space: nowrap}.feed-sort-btn:hover{transform: translate(-2px,-2px);box-shadow: var(--shadow);background: var(--color-cream)}.feed-sort-caret{font-size: 11px;line-height: 1}.feed-sort-menu{position: absolute;top: 100%;right: 0;margin-top: 8px;background: var(--color-white);border: var(--border-width) solid var(--border-color);border-radius: var(--radius-sm);box-shadow: var(--shadow);min-width: 140px;padding: 6px;z-index: 110;display: none}.feed-sort-menu.show{display: block}.feed-sort-item{padding: 10px 14px;font-size: 14px;font-weight: 600;color: var(--text-color);cursor: pointer;border-radius: var(--radius-xs);white-space: nowrap;transition: background var(--transition-fast)}.feed-sort-item:hover{background: var(--color-cream)}.feed-sort-item.active{background: var(--primary-color)}.feed-search-btn{display: inline-flex;align-items: center;justify-content: center;width: 38px;height: 38px;padding: 0;border-radius: var(--radius-sm);background: var(--color-white);border: var(--border-width) solid var(--border-color);cursor: pointer;transition: all var(--transition-fast);box-shadow: var(--shadow-sm)}.feed-search-btn img{width: 18px;height: 18px}.feed-search-btn:hover{transform: translate(-2px,-2px);box-shadow: var(--shadow);background: var(--color-cream)}.feed-search-row{display: flex;align-items: center;gap: 6px;padding: 12px 20px;background: var(--color-cream);border-bottom: var(--border-width) solid var(--border-color)}.feed-search-row[hidden]{display: none}@media (max-width: 768px){.feed-search-row{padding: 10px 16px}}.feed-search-input{flex: 1;min-width: 0;padding: 9px 12px;font-size: 14px;border: var(--border-width) solid var(--border-color);border-radius: var(--radius-sm);background: var(--color-white);color: var(--text-color)}.feed-search-submit,.feed-search-cancel{display: inline-flex;align-items: center;justify-content: center;width: 38px;height: 38px;flex-shrink: 0;padding: 0;font-size: 15px;font-weight: 700;color: var(--text-color);border-radius: var(--radius-sm);background: var(--color-white);border: var(--border-width) solid var(--border-color);cursor: pointer;transition: all var(--transition-fast);box-shadow: var(--shadow-sm)}.feed-search-submit img{width: 16px;height: 16px}.feed-search-submit:hover,.feed-search-cancel:hover{transform: translate(-2px,-2px);box-shadow: var(--shadow);background: var(--color-cream)}.search-result-header{padding: 16px 20px;background: var(--color-cream);border-bottom: var(--border-width) solid var(--border-color);display: flex;align-items: center;justify-content: center;gap: 12px}.search-result-text{font-size: 14px;color: var(--text-light);font-weight: 600}.search-result-text strong{color: var(--text-color);font-weight: 700}.search-clear{padding: 6px 14px;background: var(--color-white);border: var(--border-width) solid var(--border-color);border-radius: var(--radius-xs);color: var(--text-color);cursor: pointer;font-size: 13px;font-weight: 700;box-shadow: 2px 2px 0 var(--border-color);transition: all var(--transition-fast)}.search-clear:hover{transform: translate(-1px,-1px);box-shadow: 3px 3px 0 var(--border-color);background: var(--color-peach);text-decoration: none}.feed-container{max-width: 1200px;margin: 0 auto;padding: 24px 16px;background: var(--bg-color);position: relative}@media (min-width: 769px){.feed-container{padding: 32px 24px}}@media (max-width: 768px){.feed-container{padding: 16px}}.feed-grid{display: grid;grid-template-columns: repeat(2,1fr);gap: 12px;min-height: 100vh;align-content: start}@media (min-width: 769px){.feed-grid{grid-template-columns: repeat(auto-fill,minmax(220px,1fr));gap: 20px}}.feed-grid > .loading-spinner{grid-column: 1 / -1;padding: 80px 20px}.feed-card{position: relative;background: var(--color-white);border: var(--border-width) solid var(--border-color);border-radius: var(--radius);box-shadow: var(--shadow);overflow: hidden;transition: all var(--transition-fast);width: 100%;content-visibility: auto;contain-intrinsic-size: auto 320px}.feed-card:hover{transform: translate(-4px,-4px);box-shadow: var(--shadow-lg)}@media (hover: none) and (pointer: coarse){.feed-card:hover{transform: none;box-shadow: var(--shadow)}}.feed-card-thumb{position: relative;aspect-ratio: 1;background: var(--color-cream);cursor: pointer;overflow: hidden;width: 100%;border-bottom: var(--border-width) solid var(--border-color);display: flex;align-items: center;justify-content: center}.feed-card-thumb img{width: 100%;height: 100%;object-fit: contain;background: #f8f6f0}.feed-card-thumb img.lazy-img:not(.lazy-loaded){background: #ece8e0}.feed-card-thumb:has(> img.lazy-img:not(.lazy-loaded))::after{content: "";position: absolute;inset: 0;z-index: 1;pointer-events: none;background: linear-gradient(90deg,rgba(255,255,255,0) 0%,rgba(255,255,255,0.55) 50%,rgba(255,255,255,0) 100%);transform: translateX(-100%);animation: skeleton-shimmer 1.4s ease-in-out infinite;will-change: transform}.feed-card-thumb img.lazy-loaded{animation: lazy-fade-in 0.3s ease}@keyframes skeleton-shimmer{100%{transform: translateX(100%)}}@media (prefers-reduced-motion: reduce){.feed-card-thumb::after,.feed-card-thumb img.lazy-loaded{animation: none}}@keyframes lazy-fade-in{from{opacity: 0}to{opacity: 1}}.feed-card-thumb .placeholder{width: 100%;height: 100%;display: flex;align-items: center;justify-content: center;background: var(--color-cream)}.feed-card-thumb .placeholder img{width: 48px !important;height: 48px !important;opacity: 0.5}.feed-card-thumb canvas{position: absolute;top: 0;left: 0;width: 100% !important;height: 100% !important;object-fit: cover;pointer-events: none;z-index: 1;background: var(--color-cream)}.feed-badge-row{position: absolute;bottom: 8px;right: 8px;display: flex;align-items: center;gap: 4px;flex-wrap: wrap;justify-content: flex-end;max-width: calc(100% - 16px);z-index: 2}.feed-badge{display: inline-flex;align-items: center;padding: 2px 6px;border-radius: 4px;font-size: 10px;font-weight: 700;line-height: 1.4;text-decoration: none;white-space: nowrap;box-shadow: 0 1px 3px rgba(0,0,0,0.15)}.feed-badge.b-2d{background: var(--craft-2d,#F4EE8E);color: var(--text-color,#1a1a1a);border: 1px solid var(--border-color)}.feed-badge.b-3d{background: var(--craft-3d,#CDB9F6);color: var(--text-color,#1a1a1a);border: 1px solid var(--border-color)}.feed-badge.b-bead{background: var(--craft-bead,#92D4E2);color: var(--text-color,#1a1a1a);border: 1px solid var(--border-color)}.card-sub{display: flex;align-items: center;justify-content: space-between;gap: 6px;margin-bottom: 8px;flex-wrap: wrap}.card-sub{margin-bottom: 6px}.feed-badge-inline{box-shadow: none}.feed-badge.b-taste{background: linear-gradient(135deg,#f59e0b,#d97706);color: white}.feed-badge.b-trend{background: linear-gradient(135deg,#ef4444,#dc2626);color: white}.feed-card-info{padding: 10px 16px}@media (max-width: 768px){.feed-card-info{padding: 8px 12px}.feed-card-title-row{margin-bottom: 6px;gap: 4px}.feed-card-title{font-size: 13px}.feed-card-meta{gap: 4px}.feed-card-actions{gap: 10px}.feed-card-like{min-height: 38px;padding: 6px;font-size: 11px}.feed-card-like img{width: 18px;height: 18px}.like-count-btn,.review-count-btn{min-height: 38px;font-size: 11px;padding: 6px 2px}.feed-card-more{padding: 4px;font-size: 14px}}.feed-card-title-row{display: flex;align-items: center;justify-content: space-between;gap: 8px;margin-bottom: 5px}.feed-card-title-row .feed-badge{flex-shrink: 0}.feed-card-title{font-size: 15px;font-weight: 700;color: var(--text-color);cursor: pointer;line-height: 1.4;white-space: nowrap;overflow: hidden;text-overflow: ellipsis;flex: 1;min-width: 0}.feed-card-title:hover{color: var(--accent-color)}.feed-card > .feed-card-more-wrap{position: absolute;top: 8px;right: 8px;z-index: 3}.feed-card > .feed-card-more-wrap .feed-card-more{width: 24px;height: 24px;font-size: 13px;background: rgba(255,255,255,0.85);border: 1px solid var(--border-color);box-shadow: 0 1px 3px rgba(0,0,0,0.15)}.feed-card > .feed-card-more-wrap .feed-card-more{transition: transform var(--transition-fast),background var(--transition-fast)}.feed-card > .feed-card-more-wrap .feed-card-more:hover{background: var(--color-white);transform: scale(1.1)}.feed-card > .feed-card-more-wrap .feed-card-more:active{transform: scale(0.95)}.feed-card > .feed-card-more-wrap .feed-card-menu{bottom: auto;top: 100%;margin-bottom: 0;margin-top: 8px}.feed-card > .feed-card-author-badge{position: absolute;top: 8px;left: 8px;z-index: 3;width: 24px;height: 24px;padding: 0;border: none;background: none;line-height: 0;border-radius: var(--radius-xs);box-shadow: 0 1px 3px rgba(0,0,0,0.15);cursor: pointer;transition: transform var(--transition-fast),box-shadow var(--transition-fast)}.feed-card > .feed-card-author-badge:hover{transform: scale(1.1);box-shadow: 0 2px 7px rgba(0,0,0,0.3)}.feed-card > .feed-card-author-badge:active{transform: scale(0.95)}.feed-author-menu{position: fixed;z-index: 1000;min-width: 150px;max-width: 240px;background: var(--color-white);border: 2px solid var(--border-color);border-radius: 10px;box-shadow: 3px 3px 0 rgba(0,0,0,0.15);padding: 6px;display: flex;flex-direction: column;gap: 2px}.feed-author-menu-name{font-weight: 800;font-size: 13px;color: var(--text-color);padding: 6px 10px 8px;border-bottom: 1px solid var(--border-color);margin-bottom: 4px;overflow: hidden;text-overflow: ellipsis;white-space: nowrap}.feed-author-menu-item{text-align: left;background: none;border: none;padding: 9px 10px;border-radius: 6px;font-size: 13px;font-weight: 600;color: var(--text-color);cursor: pointer;white-space: nowrap;transition: background var(--transition-fast)}.feed-author-menu-item:hover{background: var(--color-cream)}.feed-author-menu-item.danger{color: var(--danger-color)}.feed-author-menu-item.danger:hover{background: var(--color-peach)}.feed-card-meta{display: flex;align-items: center;justify-content: space-between;gap: 8px}.feed-card-actions{display: flex;align-items: center;gap: 12px}.feed-card-stat{display: inline-flex;align-items: center;gap: 4px}.feed-card-stat > img{width: 18px;height: 18px;flex-shrink: 0}.feed-card-stat-views{color: var(--text-color);font-size: 13px;font-weight: 700;padding: 6px 0}.feed-card-stat-views > img{opacity: 0.7}.feed-card-stat .feed-card-like,.feed-card-stat .like-count-btn,.feed-card-stat .review-count-btn{padding-left: 0;padding-right: 0}.feed-card-like{display: flex;align-items: center;justify-content: center;padding: 6px;min-height: 30px;box-sizing: border-box;border: none;background: transparent;color: var(--text-color);font-size: 13px;font-weight: 600;cursor: pointer;border-radius: var(--radius-xs);transition: all var(--transition-fast)}.feed-card-like:hover{background: var(--color-peach)}.feed-card-like.liked{color: var(--accent-color)}.feed-card-like img{width: 18px;height: 18px;flex-shrink: 0}.like-count-btn,.review-count-btn{display: inline-flex;align-items: center;justify-content: center;min-height: 30px;box-sizing: border-box;font-size: 13px;font-weight: 700;cursor: pointer;padding: 6px 4px;border-radius: var(--radius-xs);transition: all var(--transition-fast);color: var(--text-color)}.like-count-btn:hover,.review-count-btn:hover{background: var(--color-peach)}.like-count-btn.liked{color: var(--accent-color)}.feed-card-more-wrap{position: relative}.feed-card-more{display: flex;align-items: center;justify-content: center;width: 32px;height: 32px;padding: 0;border: none;background: transparent;color: var(--text-muted);font-size: 16px;cursor: pointer;border-radius: var(--radius-xs);transition: all var(--transition-fast)}.feed-card-more:hover{background: var(--color-cream);color: var(--text-color)}.feed-card-menu{position: absolute;bottom: 100%;right: 0;margin-bottom: 8px;background: var(--color-white);border: var(--border-width) solid var(--border-color);border-radius: var(--radius-sm);box-shadow: var(--shadow);min-width: 140px;padding: 6px;z-index: 100;display: none}.feed-card-menu.show{display: block}.feed-card-menu-item{display: flex;align-items: center;gap: 10px;padding: 10px 14px;font-size: 14px;font-weight: 600;color: var(--text-color);cursor: pointer;border-radius: var(--radius-xs);transition: background var(--transition-fast)}.feed-card-menu-item:hover{background: var(--color-cream)}.feed-card-menu-item.danger{color: var(--danger-color)}.feed-card-menu-item.danger:hover{background: var(--color-peach)}.feed-card-menu-item img{width: 16px;height: 16px}.feed-empty{text-align: center;padding: 80px 20px;background: var(--color-white);border: var(--border-width) solid var(--border-color);border-radius: var(--radius);box-shadow: var(--shadow);grid-column: 1 / -1;column-span: all;break-inside: avoid}.feed-empty-icon{font-size: 64px;margin-bottom: 16px}.feed-empty-title{font-size: 1.25rem;font-weight: 700;color: var(--text-color);margin-bottom: 8px}.feed-empty-text{font-size: 14px;color: var(--text-muted);margin-bottom: 24px}.load-more-btn{display: block;width: 100%;max-width: 300px;margin: 32px auto;padding: 14px 24px;background: var(--color-white);border: var(--border-width) solid var(--border-color);border-radius: var(--radius-sm);font-size: 15px;font-weight: 700;color: var(--text-color);cursor: pointer;transition: all var(--transition-fast);box-shadow: var(--shadow)}.load-more-btn:hover{transform: translate(-2px,-2px);box-shadow: var(--shadow-lg);background: var(--color-cream)}.load-more-btn:disabled{opacity: 0.5;cursor: not-allowed;transform: none !important}.feed-end{text-align: center;padding: 40px 20px;color: var(--text-muted);font-size: 14px;font-weight: 600}.load-more-wrap{display: flex;justify-content: center;padding: 30px 20px 40px}.load-more-btn{display: inline-flex;align-items: center;justify-content: center;gap: 8px;padding: 14px 48px;font-size: 15px;font-weight: 700;color: var(--text-color);background: white;border: var(--border-width) solid var(--border-color);border-radius: var(--radius-sm);box-shadow: var(--shadow-sm);cursor: pointer;transition: all var(--transition-fast);min-width: 200px}.load-more-btn:hover{transform: translate(-2px,-2px);box-shadow: var(--shadow)}.load-more-btn:active{transform: translate(2px,2px);box-shadow: none}.load-more-btn:disabled{opacity: 0.6;cursor: not-allowed;transform: none;box-shadow: var(--shadow-sm)}.load-more-spinner{width: 18px;height: 18px;border: 3px solid var(--border-color);border-top-color: var(--primary);border-radius: 50%;animation: spin 0.6s linear infinite}@keyframes spin{to{transform: rotate(360deg)}}