.scrollbar-hide{-ms-overflow-style:none;scrollbar-width:none}.scrollbar-hide::-webkit-scrollbar{display:none}html,body{overflow:hidden;height:100%;margin:0}body{background-color:var(--color-bg);font-family:Pretendard Variable,Pretendard,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;color:var(--color-text);-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none}input,textarea{-webkit-user-select:text;user-select:text}:root,.theme-warm{--color-primary: #8B5E3C;--color-primary-light: #A1887F;--color-primary-dark: #5D4037;--color-primary-alpha: rgba(139, 94, 60, .1);--color-bg: #FFFBF0;--color-bg-card: #FFFEF9;--color-bg-card-alt: #FFF8E1;--color-text: #4A403A;--color-text-muted: #A1887F;--color-text-secondary: #5D4037;--color-border: #EFEBE9;--color-border-dark: #D7CCC8;--color-accent: #FFD700;--color-danger: #F44336;--color-warning: #FF9800;--color-success: #4CAF50;--color-info: #2196F3;--color-hero-from: #FFFEF9;--color-hero-to: #FFF8E1;--color-cta-shadow: rgba(139, 94, 60, .2);--color-highlight-bg: #FFF3E0;--color-streak-bg: rgba(255, 243, 224, 1);--color-streak-border: rgba(255, 224, 178, 1);--heatmap-empty: #EFEBE9;--heatmap-level-1: #D7CCC8;--heatmap-level-2: #BCAAA4;--heatmap-level-3: #8D6E63;--heatmap-level-4: #4CAF50}.theme-cobalt{--color-primary: #3746B0;--color-primary-light: #6A79DD;--color-primary-dark: #222C75;--color-primary-alpha: rgba(55, 70, 176, .1);--color-bg: #F5F7FA;--color-bg-card: #FFFFFF;--color-bg-card-alt: #EEF1F8;--color-text: #212529;--color-text-muted: #868E96;--color-text-secondary: #495057;--color-border: #E9ECEF;--color-border-dark: #CED4DA;--color-accent: #FF6B6B;--color-danger: #FF6B6B;--color-warning: #FFA94D;--color-success: #40C057;--color-info: #339AF0;--color-hero-from: #F0F2FA;--color-hero-to: #E8EBFA;--color-cta-shadow: rgba(55, 70, 176, .2);--color-highlight-bg: #EEF1F8;--color-streak-bg: rgba(238, 241, 248, 1);--color-streak-border: rgba(200, 210, 240, 1);--heatmap-empty: #E9ECEF;--heatmap-level-1: #C5CAE9;--heatmap-level-2: #7986CB;--heatmap-level-3: #3F51B5;--heatmap-level-4: #40C057}.theme-forest{--color-primary: #2D6A4F;--color-primary-light: #52B788;--color-primary-dark: #1B4332;--color-primary-alpha: rgba(45, 106, 79, .1);--color-bg: #F5FFF7;--color-bg-card: #FFFFFF;--color-bg-card-alt: #E8F5E9;--color-text: #1B4332;--color-text-muted: #74A38A;--color-text-secondary: #2D6A4F;--color-border: #D8F3DC;--color-border-dark: #B7E4C7;--color-accent: #FFD166;--color-danger: #EF476F;--color-warning: #F9844A;--color-success: #06D6A0;--color-info: #118AB2;--color-hero-from: #F0FFF4;--color-hero-to: #E8F5E9;--color-cta-shadow: rgba(45, 106, 79, .2);--color-highlight-bg: #E8F5E9;--color-streak-bg: rgba(232, 245, 233, 1);--color-streak-border: rgba(200, 230, 201, 1);--heatmap-empty: #D8F3DC;--heatmap-level-1: #B7E4C7;--heatmap-level-2: #74C69D;--heatmap-level-3: #40916C;--heatmap-level-4: #06D6A0}.bg-theme{background-color:var(--color-bg)}.bg-theme-card{background-color:var(--color-bg-card)}.bg-theme-card-alt{background-color:var(--color-bg-card-alt)}.bg-theme-primary{background-color:var(--color-primary)}.bg-theme-hero{background:linear-gradient(to bottom right,var(--color-hero-from),var(--color-hero-to))}.bg-theme-highlight{background-color:var(--color-highlight-bg)}.text-theme{color:var(--color-text)}.text-theme-muted{color:var(--color-text-muted)}.text-theme-secondary{color:var(--color-text-secondary)}.text-theme-primary{color:var(--color-primary)}.border-theme{border-color:var(--color-border)}.border-theme-dark{border-color:var(--color-border-dark)}.border-theme-primary{border-color:var(--color-primary)}.divide-theme>:not([hidden])~:not([hidden]){border-color:var(--color-border)}.focus\:ring-theme-primary:focus{--tw-ring-color: var(--color-primary)}.focus\:border-theme-primary:focus{border-color:var(--color-primary)}.no-scrollbar::-webkit-scrollbar{display:none}.no-scrollbar{-ms-overflow-style:none;scrollbar-width:none}.safe-area-pt{padding-top:0}.safe-area-pb{padding-bottom:0}.btn-touch{min-height:44px;min-width:44px}.tap-scale{transition:transform .15s ease}.tap-scale:active{transform:scale(.97)}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}.skeleton{background:linear-gradient(90deg,#efebe9 25%,#f5f0eb,#efebe9 75%);background-size:200% 100%;animation:shimmer 1.5s ease-in-out infinite;border-radius:12px}.skeleton-text{background:linear-gradient(90deg,#efebe9 25%,#f5f0eb,#efebe9 75%);background-size:200% 100%;animation:shimmer 1.5s ease-in-out infinite;border-radius:6px;height:14px}.skeleton-circle{background:linear-gradient(90deg,#efebe9 25%,#f5f0eb,#efebe9 75%);background-size:200% 100%;animation:shimmer 1.5s ease-in-out infinite;border-radius:50%}@keyframes fadeInUp{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes login-slide-up{0%{transform:translateY(100%);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes login-fade-in{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.login-panel{animation:login-slide-up .6s cubic-bezier(.16,1,.3,1) forwards}.login-content{opacity:0;animation:login-fade-in .5s ease-out .3s forwards}@keyframes heartPop{0%{transform:scale(1)}30%{transform:scale(1.3)}60%{transform:scale(.95)}to{transform:scale(1)}}@keyframes countUp{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.animate-fade-in-up{animation:fadeInUp .4s ease-out both}.animate-heart-pop{animation:heartPop .4s ease-out}@keyframes floatingHeart{0%{opacity:0;transform:scale(.6)}15%{opacity:1;transform:scale(1.15)}30%{opacity:1;transform:scale(.95)}45%{opacity:1;transform:scale(1)}70%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(1.3)}}.animate-floating-heart{animation:floatingHeart .8s cubic-bezier(.175,.885,.32,1.275) forwards;pointer-events:none}@keyframes slide-in-from-left{0%{transform:translate(-100%);opacity:.6}to{transform:translate(0);opacity:1}}@keyframes slide-in-from-right{0%{transform:translate(100%);opacity:.6}to{transform:translate(0);opacity:1}}.animate-count-up{animation:countUp .5s ease-out both}.stagger-children>*:nth-child(1){animation-delay:0ms}.stagger-children>*:nth-child(2){animation-delay:60ms}.stagger-children>*:nth-child(3){animation-delay:.12s}.stagger-children>*:nth-child(4){animation-delay:.18s}.stagger-children>*:nth-child(5){animation-delay:.24s}.stagger-children>*:nth-child(6){animation-delay:.3s}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:2.5rem 1.5rem;text-align:center}.empty-state-icon{width:48px;height:48px;margin-bottom:12px;opacity:.4}.empty-state-text{color:var(--color-text-muted);font-size:13px;line-height:1.5}.pixel-speech-bubble-flow{position:relative;margin:0 auto;background:#fffef9;padding:10px 16px;font-size:13px;line-height:1.4;font-weight:700;color:#4a403a;text-align:center;word-break:keep-all;max-width:85%;height:56px;overflow:hidden;box-shadow:-3px 0 #4a403a,3px 0 #4a403a,0 -3px #4a403a,0 3px #4a403a,-2px -2px #4a403a,2px -2px #4a403a,-2px 2px #4a403a,2px 2px #4a403a}.pixel-speech-bubble-flow:after{content:"";position:absolute;bottom:-8px;left:50%;transform:translate(-50%);width:0;height:0;border-left:6px solid transparent;border-right:6px solid transparent;border-top:8px solid #4A403A}.pixel-speech-bubble-flow:before{content:"";position:absolute;bottom:-6px;left:50%;transform:translate(-50%);width:0;height:0;border-left:5px solid transparent;border-right:5px solid transparent;border-top:7px solid #FFFEF9;z-index:1}@keyframes expBlink{0%,to{opacity:1}50%{opacity:.4}}.exp-blink{animation:expBlink 1.2s ease-in-out infinite}@keyframes heartGlow{0%,to{text-shadow:0 0 4px #FF69B4,0 0 8px #FF1493}50%{text-shadow:0 0 8px #FF69B4,0 0 16px #FF1493,0 0 24px #FF69B480}}.heart-glow{animation:heartGlow 2s ease-in-out infinite}@keyframes cursorBlink{0%,to{opacity:1}50%{opacity:0}}@keyframes float-food-1{0%,to{transform:translateY(0) rotate(0)}50%{transform:translateY(-12px) rotate(8deg)}}@keyframes float-food-2{0%,to{transform:translateY(0) rotate(0)}50%{transform:translateY(-8px) rotate(-6deg)}}@keyframes float-food-3{0%,to{transform:translateY(0) rotate(0)}50%{transform:translateY(-15px) rotate(12deg)}}.float-food-1{animation:float-food-1 4s ease-in-out infinite}.float-food-2{animation:float-food-2 3.5s ease-in-out infinite .5s}.float-food-3{animation:float-food-3 5s ease-in-out infinite 1s}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideInFromBottom2{0%{transform:translateY(10px);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes slideInFromRight{0%{transform:translate(100%)}to{transform:translate(0)}}.animate-in{animation-duration:.3s;animation-timing-function:cubic-bezier(.16,1,.3,1);animation-fill-mode:both}.fade-in{animation-name:fadeIn}.slide-in-from-bottom-2{animation-name:slideInFromBottom2}.slide-in-from-right{animation-name:slideInFromRight}.content-bg-pattern{background-image:radial-gradient(var(--color-primary-light-alpha) 1px,transparent 1px);background-size:20px 20px}@keyframes fireBounce{0%,to{transform:translateY(0) scale(1) rotate(0)}25%{transform:translateY(-2px) scale(1.1) rotate(-3deg)}50%{transform:translateY(-8px) scale(1.2) rotate(3deg);filter:drop-shadow(0 4px 6px rgba(239,68,68,.4))}75%{transform:translateY(-4px) scale(1.1) rotate(-2deg)}}.animate-fire-bounce{animation:fireBounce 1.2s ease-in-out infinite;display:inline-block;transform-origin:center bottom}.sprite-container{overflow:hidden;position:relative;background-color:transparent;margin:0 auto}.sprite-sheet{position:absolute;top:0;left:0;width:600%;height:600%;background-size:100% 100%;background-repeat:no-repeat;image-rendering:pixelated;image-rendering:-webkit-optimize-contrast;image-rendering:-moz-crisp-edges;image-rendering:crisp-edges;transform-origin:top left;will-change:transform;animation:sprite-animation 1.8s steps(1) infinite}@keyframes sprite-animation{0%{transform:translate(0)}2.78%{transform:translate(-16.66667%)}5.56%{transform:translate(-33.33333%)}8.33%{transform:translate(-50%)}11.11%{transform:translate(-66.66667%)}13.89%{transform:translate(-83.33333%)}16.67%{transform:translateY(-16.66667%)}19.44%{transform:translate(-16.66667%,-16.66667%)}22.22%{transform:translate(-33.33333%,-16.66667%)}25%{transform:translate(-50%,-16.66667%)}27.78%{transform:translate(-66.66667%,-16.66667%)}30.56%{transform:translate(-83.33333%,-16.66667%)}33.33%{transform:translateY(-33.33333%)}36.11%{transform:translate(-16.66667%,-33.33333%)}38.89%{transform:translate(-33.33333%,-33.33333%)}41.67%{transform:translate(-50%,-33.33333%)}44.44%{transform:translate(-66.66667%,-33.33333%)}47.22%{transform:translate(-83.33333%,-33.33333%)}50%{transform:translateY(-50%)}52.78%{transform:translate(-16.66667%,-50%)}55.56%{transform:translate(-33.33333%,-50%)}58.33%{transform:translate(-50%,-50%)}61.11%{transform:translate(-66.66667%,-50%)}63.89%{transform:translate(-83.33333%,-50%)}66.67%{transform:translateY(-66.66667%)}69.44%{transform:translate(-16.66667%,-66.66667%)}72.22%{transform:translate(-33.33333%,-66.66667%)}75%{transform:translate(-50%,-66.66667%)}77.78%{transform:translate(-66.66667%,-66.66667%)}80.56%{transform:translate(-83.33333%,-66.66667%)}83.33%{transform:translateY(-83.33333%)}86.11%{transform:translate(-16.66667%,-83.33333%)}88.89%{transform:translate(-33.33333%,-83.33333%)}91.67%{transform:translate(-50%,-83.33333%)}94.44%{transform:translate(-66.66667%,-83.33333%)}97.22%{transform:translate(-83.33333%,-83.33333%)}to{transform:translate(0)}}.sprite-sheet-5x5{width:500%;height:500%;animation-name:sprite-animation-5x5}@keyframes sprite-animation-5x5{0%{transform:translate(0)}4%{transform:translate(-20%)}8%{transform:translate(-40%)}12%{transform:translate(-60%)}16%{transform:translate(-80%)}20%{transform:translateY(-20%)}24%{transform:translate(-20%,-20%)}28%{transform:translate(-40%,-20%)}32%{transform:translate(-60%,-20%)}36%{transform:translate(-80%,-20%)}40%{transform:translateY(-40%)}44%{transform:translate(-20%,-40%)}48%{transform:translate(-40%,-40%)}52%{transform:translate(-60%,-40%)}56%{transform:translate(-80%,-40%)}60%{transform:translateY(-60%)}64%{transform:translate(-20%,-60%)}68%{transform:translate(-40%,-60%)}72%{transform:translate(-60%,-60%)}76%{transform:translate(-80%,-60%)}80%{transform:translateY(-80%)}84%{transform:translate(-20%,-80%)}88%{transform:translate(-40%,-80%)}92%{transform:translate(-60%,-80%)}96%{transform:translate(-80%,-80%)}to{transform:translate(0)}}
