*{margin:0;padding:0;box-sizing:border-box;touch-action:manipulation}html{overflow:hidden;position:fixed;width:100%;height:100%}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-webkit-user-select:none;-webkit-touch-callout:none;user-select:none;overflow:hidden;position:fixed;width:100%;height:100%;font-size:16px;line-height:1.5}#root{width:100%;height:100vh;height:100dvh;overflow:hidden;position:relative}:root{--safe-area-inset-top: env(safe-area-inset-top, 0px);--safe-area-inset-right: env(safe-area-inset-right, 0px);--safe-area-inset-bottom: env(safe-area-inset-bottom, 0px);--safe-area-inset-left: env(safe-area-inset-left, 0px);--min-touch-target: 44px;--font-size-xs: clamp(10px, 2.5vw, 12px);--font-size-sm: clamp(12px, 3vw, 14px);--font-size-base: clamp(14px, 3.5vw, 16px);--font-size-lg: clamp(16px, 4vw, 18px)}button{min-height:var(--min-touch-target);min-width:var(--min-touch-target);touch-action:manipulation;-webkit-tap-highlight-color:transparent}input[type=range]{height:40px;touch-action:manipulation;-webkit-appearance:none;appearance:none;background:transparent;cursor:pointer}input[type=range]::-webkit-slider-track{height:8px;background:#e5e7eb;border-radius:4px}input[type=range]::-moz-range-track{height:8px;background:#e5e7eb;border-radius:4px}input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:24px;height:24px;background:#3b82f6;border-radius:50%;border:3px solid white;box-shadow:0 2px 6px #0003;margin-top:-8px;cursor:pointer;transition:transform .15s ease,box-shadow .15s ease}input[type=range]::-moz-range-thumb{width:24px;height:24px;background:#3b82f6;border-radius:50%;border:3px solid white;box-shadow:0 2px 6px #0003;cursor:pointer}input[type=range]::-webkit-slider-thumb:active{transform:scale(1.15);box-shadow:0 3px 10px #3b82f666}input[type=range]:focus{outline:none}input[type=range]:focus::-webkit-slider-thumb{box-shadow:0 0 0 4px #3b82f633}::-webkit-scrollbar{width:4px;height:4px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:#0003;border-radius:2px}@media(max-width:768px){button{min-height:48px;min-width:48px}input[type=range]{height:48px}input[type=range]::-webkit-slider-thumb{width:32px;height:32px;margin-top:-12px}input[type=range]::-moz-range-thumb{width:32px;height:32px}input[type=range]::-webkit-slider-track{height:10px}input[type=range]::-moz-range-track{height:10px}}@media(orientation:landscape)and (max-height:500px){#root{padding-left:env(safe-area-inset-left);padding-right:env(safe-area-inset-right)}}.transform-gpu{transform:translateZ(0);will-change:transform}.touch-feedback:active{transform:scale(.94);opacity:.85}.touch-manipulation{touch-action:manipulation;-webkit-tap-highlight-color:transparent}@media(max-width:768px){button:active:not(:disabled){transform:scale(.92);transition:transform .1s ease-out}}canvas{touch-action:none;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none}@media(prefers-reduced-motion:no-preference){*{scroll-behavior:smooth}}.gpu-accelerated{transform:translateZ(0);will-change:transform,opacity;backface-visibility:hidden}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeOut{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(10px)}}@keyframes slideUp{0%{opacity:0;transform:translateY(100%)}to{opacity:1;transform:translateY(0)}}@keyframes slideDown{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(100%)}}.animate-fade-in{animation:fadeIn .3s ease-out forwards}.animate-fade-out{animation:fadeOut .2s ease-in forwards}.animate-slide-up{animation:slideUp .35s cubic-bezier(.16,1,.3,1) forwards}.animate-slide-down{animation:slideDown .25s ease-in forwards}@keyframes bounceIn{0%{opacity:0;transform:scale(.3)}50%{transform:scale(1.05)}70%{transform:scale(.9)}to{opacity:1;transform:scale(1)}}.animate-bounce-in{animation:bounceIn .4s cubic-bezier(.68,-.55,.265,1.55) forwards}@keyframes expandUp{0%{max-height:0;opacity:0}to{max-height:600px;opacity:1}}@keyframes collapseDown{0%{max-height:600px;opacity:1}to{max-height:0;opacity:0}}.animate-expand{animation:expandUp .3s ease-out forwards;overflow:hidden}.animate-collapse{animation:collapseDown .2s ease-in forwards;overflow:hidden}@keyframes menuOpen{0%{opacity:0;transform:scale(.95) translateY(-10px)}to{opacity:1;transform:scale(1) translateY(0)}}.animate-menu-open{animation:menuOpen .2s ease-out forwards}
