img{max-width:100%;height:auto;transition:opacity 0.3s ease,filter 0.3s ease;image-rendering:-webkit-optimize-contrast;image-rendering:crisp-edges}img[data-src]{background:linear-gradient(90deg,#f0f0f0 25%,#e0e0e0 50%,#f0f0f0 75%);background-size:200% 100%;animation:loading 1.5s infinite;filter:blur(5px);opacity:0.7}img.loaded{filter:none !important;opacity:1 !important}img.webp-optimized{border:none}@keyframes loading{0%{background-position:200% 0}100%{background-position:-200% 0}}@media (max-width:576px){.project-image img,.about-image img{image-rendering:auto}}@media (min-width:577px) and (max-width:768px){.project-image img,.about-image img{image-rendering:-webkit-optimize-contrast}}@media (min-width:769px){.project-image img,.about-image img{image-rendering:crisp-edges}}.project-image{position:relative;overflow:hidden;border-radius:var(--border-radius-lg,8px)}.project-image img{width:100%;height:250px;object-fit:cover;object-position:center;transition:transform 0.3s ease,filter 0.3s ease}.project-image:hover img{transform:scale(1.05)}.about-image img{width:100%;height:auto;border-radius:var(--border-radius-lg,8px);box-shadow:var(--box-shadow,0 5px 15px rgba(0,0,0,0.08))}.critical-image{loading:eager}.lazy-image{loading:lazy}.no-webp img[data-webp]{opacity:1}.preload-hint{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}img[data-error="true"]{background:#f5f5f5;border:2px dashed #ccc;min-height:200px;display:flex;align-items:center;justify-content:center}img[data-error="true"]:before{content:"Image non disponible";color:#666;font-size:14px}@media (prefers-reduced-motion:reduce){img{transition:none;animation:none}.project-image:hover img{transform:none}}