.App{min-height:100vh}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}.animate-float{animation:float 3s ease-in-out infinite}textarea:focus{outline:none;ring:2px;ring-color:#6366F1}.image-placeholder{background:linear-gradient(90deg,#f0f0f0 25%,#e0e0e0 50%,#f0f0f0 75%);background-size:200% 100%;animation:shimmer 1.5s infinite}.dark .image-placeholder{background:linear-gradient(90deg,hsl(240 5% 17%) 25%,hsl(240 5% 22%) 50%,hsl(240 5% 17%) 75%);background-size:200% 100%}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.showcase-row{display:flex;gap:12px;width:-webkit-max-content;width:max-content;will-change:transform}.showcase-row img{border-radius:12px;object-fit:cover;flex-shrink:0;transition:transform .4s ease;background:hsl(var(--muted,240 5% 96%))}.showcase-row a:hover img{transform:scale(1.05)}@keyframes scroll-left{0%{transform:translateX(0)}to{transform:translateX(-50%)}}@keyframes scroll-right{0%{transform:translateX(-50%)}to{transform:translateX(0)}}.showcase-scroll-left{animation:scroll-left var(--scroll-duration,60s) linear infinite}.showcase-scroll-right{animation:scroll-right var(--scroll-duration,60s) linear infinite}.showcase-container:hover .showcase-scroll-left,.showcase-container:hover .showcase-scroll-right{animation-play-state:paused}@media (prefers-reduced-motion:reduce){.showcase-scroll-left,.showcase-scroll-right{animation:none}}