html{scroll-behavior:smooth;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*{-webkit-tap-highlight-color:transparent;-webkit-touch-callout:none}body{text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.transform-gpu{will-change:transform;-webkit-backface-visibility:hidden;backface-visibility:hidden;transform:translateZ(0)}.overflow-scroll{-webkit-overflow-scrolling:touch;overflow-y:scroll}@media screen and (max-width:768px){html{-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%}}img{image-rendering:-webkit-optimize-contrast;image-rendering:crisp-edges}@media (max-width:768px){button,a[role=button],input[type=button],input[type=submit]{min-width:44px;min-height:44px}}.loading-skeleton{animation:1.5s ease-in-out infinite pulse}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}:focus-visible{outline-offset:2px;outline:2px solid #ec4899}:focus:not(:focus-visible){outline:none}@media (max-width:768px){.fixed,.sticky{transform:translateZ(0)}}body{position:relative;overflow-x:hidden}@viewport{width:device-width;zoom:1}@supports (-webkit-touch-callout:none){body{padding-bottom:env(safe-area-inset-bottom)}.min-h-screen{min-height:-webkit-fill-available}}@media screen and (-webkit-min-device-pixel-ratio:0){select,textarea,input{font-size:16px}}@media (max-width:768px){a{margin:-2px;padding:2px}button,input,select,textarea{margin:4px 0}}a,button,input,select,textarea{touch-action:manipulation}.will-change-transform{will-change:transform}.will-change-opacity{will-change:opacity}.animation-complete{will-change:auto}.scroll-container{-webkit-overflow-scrolling:touch;overscroll-behavior:contain;overflow:auto}.touch-active:active{opacity:.7;transition:all .1s;transform:scale(.98)}@media (hover:none) and (pointer:coarse){.hover-card{transition:transform .2s}.hover-card:active{transform:scale(.98)}}@media (-webkit-min-device-pixel-ratio:2),(min-resolution:192dpi){img{image-rendering:-webkit-optimize-contrast}}.loading-overlay{pointer-events:none;opacity:.6;filter:grayscale()}.skeleton-loader{background:linear-gradient(90deg,#f0f0f0 25%,#e0e0e0 50%,#f0f0f0 75%) 0 0/200% 100%;animation:1.5s ease-in-out infinite loading}@keyframes loading{0%{background-position:200% 0}to{background-position:-200% 0}}
