.line-clamp-1{-webkit-line-clamp:1}.line-clamp-1,.line-clamp-2{display:-webkit-box;-webkit-box-orient:vertical;overflow:hidden}.line-clamp-2{-webkit-line-clamp:2}.line-clamp-3{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.scroll-smooth{scroll-behavior:smooth}.focus-visible{outline:2px solid #3b82f6;outline-offset:2px}.scrollbar-hide{-ms-overflow-style:none;scrollbar-width:none}.scrollbar-hide::-webkit-scrollbar{display:none}.card-hover{transition:all .3s cubic-bezier(.4,0,.2,1)}.card-hover:hover{transform:translateY(-8px);box-shadow:0 25px 50px -12px rgba(0,0,0,.25)}@keyframes shimmer{0%{background-position:-468px 0}to{background-position:468px 0}}.shimmer{animation:shimmer 1.5s ease-in-out infinite;background:linear-gradient(90deg,#f0f0f0 25%,#e0e0e0 50%,#f0f0f0 75%);background-size:1000px 100%}.btn-interactive{transition:all .2s ease-in-out;-webkit-user-select:none;-moz-user-select:none;user-select:none}.btn-interactive:active{transform:scale(.98)}.btn-interactive:disabled{opacity:.6;cursor:not-allowed;transform:none}.glass-effect{background:hsla(0,0%,100%,.9);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid hsla(0,0%,100%,.2)}@media (prefers-color-scheme:dark){.glass-effect{background:rgba(17,24,39,.9);border:1px solid hsla(0,0%,100%,.1)}}.safe-area-inset{padding-left:env(safe-area-inset-left);padding-right:env(safe-area-inset-right)}.gradient-text{background:linear-gradient(135deg,#667eea,#764ba2);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.image-loading{background:linear-gradient(90deg,#f0f0f0 25%,#e0e0e0 50%,#f0f0f0 75%);background-size:200% 100%;animation:loading 1.5s infinite}@keyframes loading{0%{background-position:200% 0}to{background-position:-200% 0}}@media (pointer:coarse){.touch-target{min-height:44px;min-width:44px}}@container (min-width: 768px){.container-md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}}@container (min-width: 1024px){.container-lg\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}}@media print{.no-print{display:none!important}.print-block{display:block!important}}@media (prefers-reduced-motion:reduce){.motion-reduce\:animate-none{animation:none!important}.motion-reduce\:transition-none{transition:none!important}.motion-reduce\:transform-none{transform:none!important}}