:root{--primary: #e94560;--secondary: #0f3460;--accent: #f5a623;--bg-dark: #1a1a2e;--bg-card: #16213e;--bg-panel: #0f3460;--text: #eaeaea;--text-dim: #99a8b8;--success: #4ecdc4;--warning: #f5a623;--danger: #e94560;--glass-bg: rgba(255, 255, 255, .04);--glass-border: rgba(255, 255, 255, .08);--glass-blur: 12px}*{margin:0;padding:0;box-sizing:border-box}html,body,#root{width:100%;height:100%;overflow:hidden;overscroll-behavior:none;-webkit-overflow-scrolling:touch;font-family:-apple-system,BlinkMacSystemFont,Apple SD Gothic Neo,Pretendard,Malgun Gothic,Noto Sans KR,sans-serif;background:var(--bg-dark);color:var(--text);-webkit-user-select:none;user-select:none;position:fixed;top:0;right:0;bottom:0;left:0}#root{padding-top:env(safe-area-inset-top);padding-bottom:env(safe-area-inset-bottom)}button{border:none;cursor:pointer;font-family:inherit;touch-action:manipulation;transition:transform .15s cubic-bezier(.34,1.56,.64,1);min-height:44px}button:active{transform:scale(.93)}input,textarea{-webkit-user-select:text;user-select:text}.glass,.glass-strong{will-change:transform,opacity}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important}.glass,.glass-strong,.glass-card{backdrop-filter:none!important;-webkit-backdrop-filter:none!important}}.glass{background:var(--glass-bg);backdrop-filter:blur(var(--glass-blur));-webkit-backdrop-filter:blur(var(--glass-blur));border:1px solid var(--glass-border);box-shadow:0 4px 16px #00000026,inset 0 1px #ffffff0d}.glass-strong{background:#ffffff0f;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border:1px solid rgba(255,255,255,.12);box-shadow:0 8px 32px #0003,inset 0 1px #ffffff14}@keyframes scalePunch{0%{transform:scale(1)}50%{transform:scale(1.06)}to{transform:scale(1)}}@keyframes errorShake{0%,to{transform:translate(0)}20%{transform:translate(-3px)}40%{transform:translate(3px)}60%{transform:translate(-2px)}80%{transform:translate(2px)}}@keyframes numberPop{0%{transform:scale(1)}40%{transform:scale(1.25)}to{transform:scale(1)}}@keyframes rewardBurst{0%{transform:scale(0);opacity:1}to{transform:scale(2.5);opacity:0}}@keyframes iconBounce{0%{transform:translateY(0)}40%{transform:translateY(-4px)}70%{transform:translateY(1px)}to{transform:translateY(0)}}@keyframes glowPulse{0%,to{box-shadow:0 0 4px #4ecdc44d}50%{box-shadow:0 0 12px #4ecdc499}}@keyframes cardFlip{0%{transform:perspective(600px) rotateY(180deg);opacity:0}50%{transform:perspective(600px) rotateY(90deg);opacity:.5}to{transform:perspective(600px) rotateY(0);opacity:1}}@keyframes slideInUp{0%{transform:translateY(20px);opacity:0}to{transform:translateY(0);opacity:1}}.punch{animation:scalePunch .3s ease-out}.shake{animation:errorShake .4s ease-out}.pop{animation:numberPop .4s ease-out}.flip{animation:cardFlip .6s ease-out}.slide-up{animation:slideInUp .3s ease-out}.glow{animation:glowPulse 2s ease-in-out infinite}
