.touch-target{min-height:44px;min-width:44px;touch-action:manipulation}.touch-target-sm{min-height:40px;min-width:40px;touch-action:manipulation}.touch-target-lg{min-height:48px;min-width:48px}.touch-target-lg,[role=button]:not(.touch-target-override),a[role=button]:not(.touch-target-override),button:not(.touch-target-override){touch-action:manipulation}[role=button][aria-label]:not([aria-label=""]):not(:has(span)):not(:has(div)),button[aria-label]:not([aria-label=""]):not(:has(span)):not(:has(div)){min-width:44px}a:not(.touch-target-override){display:inline-flex;align-items:center}[role=tab],a:not(.touch-target-override){min-height:44px;touch-action:manipulation}[role=tab]{min-width:44px}input[type=checkbox],input[type=radio]{min-height:24px;min-width:24px;touch-action:manipulation}label:has(input[type=checkbox]),label:has(input[type=radio]){min-height:44px;display:inline-flex;align-items:center;gap:.5rem;cursor:pointer;touch-action:manipulation}*{-webkit-overflow-scrolling:touch}.overflow-auto,.overflow-scroll,.overflow-x-auto,.overflow-y-auto,.scroll-container{-webkit-overflow-scrolling:touch;overscroll-behavior:contain}html{scroll-behavior:smooth}.drawer,.modal,[role=alertdialog],[role=dialog]{overscroll-behavior:contain;-webkit-overflow-scrolling:touch}.touch-feedback{transition:transform .1s ease-out,background-color .1s ease-out}.touch-feedback:active{transform:scale(.97);background-color:hsl(var(--accent))}[role=button]:not(.no-touch-feedback):active,button:not(.no-touch-feedback):active{transform:scale(.97);transition:transform .1s ease-out}a:not(.no-touch-feedback):active{opacity:.7;transition:opacity .1s ease-out}.card-interactive:active,.container-interactive:active{transform:scale(.99);transition:transform .1s ease-out}.touch-ripple{position:relative;overflow:hidden}[role=tab]:active{transform:scale(.97);transition:transform .1s ease-out}@media (max-width:768px){.mobile-padding-sm{padding:.75rem}.mobile-padding-md{padding:1rem}.mobile-padding-lg{padding:1.5rem}.container-padding-md{padding:1rem}.container-padding-lg{padding:1.5rem}.container-padding-xl{padding:2rem}.mobile-stack{flex-direction:column;gap:1rem}.mobile-full-width{width:100%}.mobile-hidden{display:none}.mobile-only{display:block}.text-display-hero{font-size:2rem;line-height:1.2}.text-display-large{font-size:1.75rem;line-height:1.3}.mobile-touch-spacing{gap:.75rem}.mobile-primary-action{min-height:48px;font-size:1rem;padding:.75rem 1.5rem}}@media (min-width:769px){.mobile-only{display:none}}input[type=email],input[type=number],input[type=password],input[type=search],input[type=tel],input[type=text],input[type=url],select,textarea{min-height:44px;font-size:16px;touch-action:manipulation}select{min-height:44px;padding:.5rem 2rem .5rem .75rem}[role=switch],input[type=range],select{touch-action:manipulation}input[type=range]{min-height:44px}[role=button],[role=switch],[role=tab],button{-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent}[role=button],a,button{-webkit-touch-callout:none}[role=button],button{touch-action:manipulation}@media (hover:hover) and (pointer:fine){.hover-lift:hover{transform:translateY(-2px)}.hover-scale:hover{transform:scale(1.02)}}@media (hover:none) and (pointer:coarse){.hover-lift:hover,.hover-scale:hover{transform:none}.hover-lift:active,.hover-scale:active{transform:scale(.98)}}[role=button]:focus-visible,[role=tab]:focus-visible,a:focus-visible,button:focus-visible{outline:2px solid hsl(var(--ring));outline-offset:2px}[role=button]:focus:not(:focus-visible),[role=tab]:focus:not(:focus-visible),a:focus:not(:focus-visible),button:focus:not(:focus-visible){outline:none}.touch-feedback,.touch-ripple,[role=button],button{transform:translateZ(0);backface-visibility:hidden;will-change:transform}@media (hover:none) and (pointer:coarse){*{animation-duration:.2s!important;transition-duration:.2s!important}.animate-gradient-shift,.animate-shimmer,.shimmer-gradient{animation:none!important}}.touch-manipulation{touch-action:manipulation}.touch-none{touch-action:none}.touch-pan-x{touch-action:pan-x}.touch-pan-y{touch-action:pan-y}.momentum-scroll{-webkit-overflow-scrolling:touch;overscroll-behavior:contain}.no-overscroll{overscroll-behavior:none}.safe-area-top{padding-top:env(safe-area-inset-top)}.safe-area-bottom{padding-bottom:env(safe-area-inset-bottom)}.safe-area-left{padding-left:env(safe-area-inset-left)}.safe-area-right{padding-right:env(safe-area-inset-right)}.safe-area-inset{padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left)}.animate-fade-in-fast{animation:fade-in var(--transition-fast) cubic-bezier(.4,0,.2,1);will-change:opacity}.animate-fade-in-base{animation:fade-in var(--transition-base) cubic-bezier(.4,0,.2,1);will-change:opacity}.animate-fade-in-slow{animation:fade-in var(--transition-slow) cubic-bezier(.4,0,.2,1);will-change:opacity}.animate-fade-out-fast{animation:fade-out var(--transition-fast) cubic-bezier(.4,0,.2,1);will-change:opacity}.animate-fade-out-base{animation:fade-out var(--transition-base) cubic-bezier(.4,0,.2,1);will-change:opacity}.animate-slide-up-fast{animation:fade-in-up var(--transition-fast) cubic-bezier(.4,0,.2,1)}.animate-slide-up-base,.animate-slide-up-fast{will-change:opacity,transform;backface-visibility:hidden}.animate-slide-up-base{animation:fade-in-up var(--transition-base) cubic-bezier(.4,0,.2,1)}.animate-slide-up-slow{animation:fade-in-up var(--transition-slow) cubic-bezier(.4,0,.2,1)}.animate-slide-down-fast,.animate-slide-up-slow{will-change:opacity,transform;backface-visibility:hidden}.animate-slide-down-fast{animation:slide-down var(--transition-fast) cubic-bezier(.4,0,.2,1)}.animate-slide-down-base{animation:slide-down var(--transition-base) cubic-bezier(.4,0,.2,1)}.animate-slide-down-base,.animate-slide-left-fast{will-change:opacity,transform;backface-visibility:hidden}.animate-slide-left-fast{animation:slide-in-left var(--transition-fast) cubic-bezier(.4,0,.2,1)}.animate-slide-left-base{animation:slide-in-left var(--transition-base) cubic-bezier(.4,0,.2,1)}.animate-slide-left-base,.animate-slide-right-fast{will-change:opacity,transform;backface-visibility:hidden}.animate-slide-right-fast{animation:slide-in-right var(--transition-fast) cubic-bezier(.4,0,.2,1)}.animate-slide-right-base{animation:slide-in-right var(--transition-base) cubic-bezier(.4,0,.2,1)}.animate-scale-in-fast,.animate-slide-right-base{will-change:opacity,transform;backface-visibility:hidden}.animate-scale-in-fast{animation:scale-in var(--transition-fast) cubic-bezier(.4,0,.2,1)}.animate-scale-in-base{animation:scale-in var(--transition-base) cubic-bezier(.4,0,.2,1)}.animate-scale-in-base,.animate-scale-in-slow{will-change:opacity,transform;backface-visibility:hidden}.animate-scale-in-slow{animation:scale-in var(--transition-slow) cubic-bezier(.4,0,.2,1)}.animate-bounce-in-fast{animation:bounce-in .4s var(--transition-bounce)}.animate-bounce-in-base,.animate-bounce-in-fast{will-change:opacity,transform;backface-visibility:hidden}.animate-bounce-in-base{animation:bounce-in .6s var(--transition-bounce)}.animate-bounce-in-slow{animation:bounce-in .8s var(--transition-bounce)}.animate-bounce-in-slow,.animate-elastic-fast{will-change:opacity,transform;backface-visibility:hidden}.animate-elastic-fast{animation:elastic-bounce .6s var(--transition-elastic)}.animate-elastic-base{animation:elastic-bounce .8s var(--transition-elastic)}.animate-elastic-base,.animate-rotate-in-fast{will-change:opacity,transform;backface-visibility:hidden}.animate-rotate-in-fast{animation:rotate-in var(--transition-fast) cubic-bezier(.4,0,.2,1)}.animate-rotate-in-base{animation:rotate-in var(--transition-base) cubic-bezier(.4,0,.2,1);will-change:opacity,transform;backface-visibility:hidden}.duration-fast{animation-duration:var(--transition-fast);transition-duration:var(--transition-fast)}.duration-base{animation-duration:var(--transition-base);transition-duration:var(--transition-base)}.duration-slow{animation-duration:var(--transition-slow);transition-duration:var(--transition-slow)}.duration-smooth{animation-duration:var(--transition-smooth);transition-duration:var(--transition-smooth)}.ease-default{animation-timing-function:cubic-bezier(.4,0,.2,1);transition-timing-function:cubic-bezier(.4,0,.2,1)}.ease-bounce{animation-timing-function:var(--transition-bounce);transition-timing-function:var(--transition-bounce)}.ease-elastic{animation-timing-function:var(--transition-elastic);transition-timing-function:var(--transition-elastic)}.ease-spring{animation-timing-function:var(--transition-spring);transition-timing-function:var(--transition-spring)}.delay-0{animation-delay:0s;transition-delay:0s}.delay-75{animation-delay:75ms;transition-delay:75ms}.delay-150{animation-delay:.15s;transition-delay:.15s}.delay-300{animation-delay:.3s;transition-delay:.3s}.delay-500{animation-delay:.5s;transition-delay:.5s}.delay-700{animation-delay:.7s;transition-delay:.7s}.delay-1000{animation-delay:1s;transition-delay:1s}.stagger-children>*{animation:stagger-fade-in .4s cubic-bezier(.4,0,.2,1) backwards;will-change:opacity,transform;backface-visibility:hidden}.stagger-children>:first-child{animation-delay:50ms}.stagger-children>:nth-child(2){animation-delay:.1s}.stagger-children>:nth-child(3){animation-delay:.15s}.stagger-children>:nth-child(4){animation-delay:.2s}.stagger-children>:nth-child(5){animation-delay:.25s}.stagger-children>:nth-child(6){animation-delay:.3s}.stagger-children>:nth-child(7){animation-delay:.35s}.stagger-children>:nth-child(8){animation-delay:.4s}.stagger-children>:nth-child(9){animation-delay:.45s}.stagger-children>:nth-child(10){animation-delay:.5s}.hover-lift{transition:transform var(--transition-base),box-shadow var(--transition-base);will-change:transform,box-shadow}.hover-lift:hover{transform:translateY(-2px);box-shadow:var(--shadow-md)}.hover-lift-lg{transition:transform var(--transition-base),box-shadow var(--transition-base);will-change:transform,box-shadow}.hover-lift-lg:hover{transform:translateY(-4px);box-shadow:var(--shadow-lg)}.hover-scale{transition:transform var(--transition-base);will-change:transform;backface-visibility:hidden}.hover-scale:hover{transform:scale(1.02)}.hover-scale-lg{transition:transform var(--transition-base);will-change:transform;backface-visibility:hidden}.hover-scale-lg:hover{transform:scale(1.05)}.hover-glow{transition:box-shadow var(--transition-base);will-change:box-shadow}.hover-glow:hover{box-shadow:0 0 20px hsl(var(--primary)/.3)}.focus-ring{transition:box-shadow var(--transition-fast)}.focus-ring:focus-visible{outline:none;box-shadow:0 0 0 3px hsl(var(--ring)/.5)}.focus-ring-animated:focus-visible{outline:none;animation:focus-ring-expand .3s ease-out}.active-press{transition:transform var(--transition-fast);will-change:transform;backface-visibility:hidden}.active-press:active{transform:scale(.95)}.active-press-lg{transition:transform var(--transition-fast);will-change:transform;backface-visibility:hidden}.active-press-lg:active{transform:scale(.9)}.animate-pulse-slow{animation:pulse-success 2s cubic-bezier(.4,0,.6,1) infinite;will-change:opacity,transform}.animate-pulse-base{animation:pulse-success 1.5s cubic-bezier(.4,0,.6,1) infinite;will-change:opacity,transform}.animate-pulse-fast{animation:pulse-success 1s cubic-bezier(.4,0,.6,1) infinite;will-change:opacity,transform}.animate-spin-slow{animation:light-ray-rotate 2s linear infinite}.animate-spin-base,.animate-spin-slow{will-change:transform;backface-visibility:hidden}.animate-spin-base{animation:light-ray-rotate 1s linear infinite}.animate-spin-fast{animation:light-ray-rotate .5s linear infinite;will-change:transform;backface-visibility:hidden}@media (prefers-reduced-motion:reduce){*,:after,:before{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}.animate-bounce-in,.animate-bounce-in-base,.animate-bounce-in-fast,.animate-bounce-in-slow,.animate-elastic-base,.animate-elastic-bounce,.animate-elastic-fast,.animate-fade-in,.animate-fade-in-base,.animate-fade-in-fast,.animate-fade-in-slow,.animate-fade-in-up,.animate-page-transition,.animate-rotate-in,.animate-rotate-in-base,.animate-rotate-in-fast,.animate-scale-in,.animate-scale-in-base,.animate-scale-in-fast,.animate-scale-in-slow,.animate-slide-down,.animate-slide-down-base,.animate-slide-down-fast,.animate-slide-in-left,.animate-slide-in-right,.animate-slide-left-base,.animate-slide-left-fast,.animate-slide-right-base,.animate-slide-right-fast,.animate-slide-up-base,.animate-slide-up-fast,.animate-slide-up-slow{animation:none!important;opacity:1;transform:none}.active-press-lg:active,.active-press:active,.hover-lift-lg:hover,.hover-lift:hover,.hover-scale-lg:hover,.hover-scale:hover{transform:none}.focus-ring:focus-visible{box-shadow:0 0 0 3px hsl(var(--ring)/.5)}.focus-ring-animated:focus-visible{animation:none;box-shadow:0 0 0 3px hsl(var(--ring)/.5)}.animate-pulse-base,.animate-pulse-fast,.animate-pulse-slow{animation:none!important;opacity:.7}.animate-spin-base,.animate-spin-fast,.animate-spin-slow,.stagger-children>*{animation:none!important}.stagger-children>*{opacity:1;transform:none}}