*{margin:0;padding:0;box-sizing:border-box;-webkit-tap-highlight-color:transparent}:root{--primary: #9333EA;--primary-dark: #7C3AED;--primary-light: #2D1B69;--accent: #F59E0B;--accent-dark: #D97706;--bg: #0D0B1E;--card: #16142E;--text: #E2E8F0;--text-muted: #94A3B8;--border: #2D2B4E;--success: #10B981;--shadow: 0 4px 20px rgba(124, 58, 237, .25);--shadow-sm: 0 2px 10px rgba(0,0,0,.4)}body{font-family:-apple-system,Noto Sans KR,BlinkMacSystemFont,sans-serif;background:var(--bg);color:var(--text);min-height:100vh;display:flex;justify-content:center}#root{width:100%;max-width:430px;min-height:100vh;background:var(--card);position:relative;overflow:hidden}::-webkit-scrollbar{display:none}*{-ms-overflow-style:none;scrollbar-width:none}.btn-primary{background:linear-gradient(135deg,var(--primary),var(--primary-dark));color:#fff;border:none;border-radius:16px;padding:16px;font-size:16px;font-weight:700;width:100%;cursor:pointer;transition:all .2s;letter-spacing:-.3px}.btn-primary:hover{transform:translateY(-1px);box-shadow:var(--shadow)}.btn-primary:active{transform:translateY(0)}.btn-primary:disabled{opacity:.5;cursor:not-allowed;transform:none}.btn-secondary{background:var(--primary-light);color:#c4b5fd;border:none;border-radius:16px;padding:14px;font-size:15px;font-weight:600;width:100%;cursor:pointer;transition:all .2s}.card{background:var(--card);border-radius:20px;box-shadow:var(--shadow-sm);padding:20px}.tag{background:var(--primary-light);color:#c4b5fd;border-radius:20px;padding:6px 14px;font-size:13px;font-weight:600;display:inline-block}.input-field{width:100%;padding:16px;border:2px solid var(--border);border-radius:14px;font-size:15px;color:var(--text);background:#1A1838;outline:none;transition:border-color .2s;font-family:inherit}.input-field::placeholder{color:var(--text-muted)}.input-field:focus{border-color:var(--primary);background:#1E1C3E}@keyframes fadeInUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideInRight{0%{opacity:0;transform:translate(30px)}to{opacity:1;transform:translate(0)}}@keyframes pointPop{0%{transform:scale(.5) translateY(0);opacity:1}to{transform:scale(1.4) translateY(-80px);opacity:0}}@keyframes typing{0%,60%,to{transform:translateY(0);opacity:.4}30%{transform:translateY(-6px);opacity:1}}@keyframes confetti{0%{transform:translateY(0) rotate(0);opacity:1}to{transform:translateY(100px) rotate(360deg);opacity:0}}.animate-fade-up{animation:fadeInUp .4s ease forwards}.animate-fade{animation:fadeIn .3s ease forwards}.animate-slide{animation:slideInRight .3s ease forwards}
