.recipe-card-visual{display:block;text-decoration:none;color:inherit;border-radius:8px;overflow:hidden;-moz-column-break-inside:avoid;break-inside:avoid-column;page-break-inside:avoid;margin-bottom:6px;position:relative;transition:transform .2s ease,box-shadow .2s ease}.recipe-card-visual:hover{transform:translateY(-2px);box-shadow:0 8px 24px rgba(0,0,0,.15)}.recipe-card-visual:active{transform:scale(.98)}.card-visual-container{position:relative;width:100%;aspect-ratio:1/1;overflow:hidden;background-color:#f3f4f6}.card-visual-image{width:100%;height:100%;-o-object-fit:cover;object-fit:cover;display:block;transition:transform .3s ease}.recipe-card-visual:hover .card-visual-image{transform:scale(1.05)}.card-visual-placeholder{width:100%;height:100%;background:linear-gradient(135deg,#fed7aa,#fb923c);display:flex;align-items:center;justify-content:center}.placeholder-emoji{font-size:48px;opacity:.8}.card-visual-gradient{position:absolute;bottom:0;left:0;right:0;height:60%;background:linear-gradient(0deg,rgba(0,0,0,.7) 0,rgba(0,0,0,.4) 40%,transparent);pointer-events:none}.card-visual-title{position:absolute;bottom:10px;left:10px;right:10px;color:#fff;font-size:14px;font-weight:700;line-height:1.3;text-shadow:0 1px 3px rgba(0,0,0,.5);display:-webkit-box;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;z-index:2}.card-visual-actions{position:absolute;top:8px;right:8px;display:flex;gap:6px;z-index:3}.card-action-btn{width:32px;height:32px;border-radius:50%;background:hsla(0,0%,100%,.9);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;color:#6b7280;border:none;cursor:pointer;transition:all .2s ease;box-shadow:0 2px 6px rgba(0,0,0,.15)}.card-action-btn:hover{transform:scale(1.1);background:#fff}.card-action-btn:active{transform:scale(.95)}.card-action-btn.active-like{color:#f43f5e;background:#fff1f2}.card-action-btn.active-save{color:#f97316;background:#fff7ed}.card-action-btn.active-like{animation:heartPop .3s ease}@keyframes heartPop{0%{transform:scale(1)}50%{transform:scale(1.3)}to{transform:scale(1)}}.card-pro-badge{position:absolute;top:8px;left:8px;z-index:3;display:inline-flex;align-items:center;gap:3px;background:linear-gradient(135deg,gold,orange);color:#fff;padding:3px 8px;border-radius:9999px;font-size:10px;font-weight:700;text-shadow:0 1px 2px rgba(0,0,0,.2);box-shadow:0 2px 6px rgba(255,165,0,.4)}