:root{--bg-primary: #0F1217;--bg-secondary: #1a1f2e;--text-primary: #ffffff;--text-secondary: #a0aec0;--border-color: #2d3748;--card-bg: #1a1f2e;--hover-bg: #2d3748;--input-bg: #2d3748;--modal-bg: #1a1f2e;--gradient-start: #7C3AED;--gradient-end: #DB2777;--primary: #4a35e8;--dark-bg: #121620;--card-hover: #232939}[data-theme=light]{--bg-primary: #ffffff;--bg-secondary: #f7fafc;--text-primary: #1a202c;--text-secondary: #4a5568;--border-color: #e2e8f0;--card-bg: #ffffff;--hover-bg: #edf2f7;--input-bg: #f7fafc;--modal-bg: #ffffff}body{font-family:Noto Sans KR,sans-serif;background-color:var(--bg-primary);color:var(--text-primary);transition:background-color .3s,color .3s;margin:0;padding:0;box-sizing:border-box}.header{background-color:var(--bg-primary);border-bottom:1px solid var(--border-color);position:sticky;top:0;z-index:1000;transition:all .3s ease}.header-container{max-width:1200px;margin:0 auto;padding:0 2rem;display:flex;justify-content:space-between;align-items:center;height:60px}.logo{font-size:1.5rem;font-weight:700;color:var(--text-primary);text-decoration:none;transition:all .3s ease;display:flex;align-items:center;gap:.5rem;min-width:160px}.logo:hover{color:#3b82f6}.logo i{font-size:1.75rem}.tool-card,.category-card,.method-card{background:var(--card-bg);border:1px solid var(--border-color);border-radius:1rem;overflow:hidden;transition:all .3s ease;min-height:400px;display:flex;flex-direction:column}.tool-card:hover,.category-card:hover,.method-card:hover{transform:translateY(-5px);box-shadow:0 10px 25px -5px rgba(124,58,237,.3)}.tool-thumbnail{aspect-ratio:16/9;overflow:hidden;flex-shrink:0;height:100px}.tool-thumbnail img{width:100%;height:100%;object-fit:cover}.tool-thumbnail.no-image{background:linear-gradient(135deg,var(--gradient-start),var(--gradient-end));display:flex;align-items:center;justify-content:center;color:#fff;font-size:2rem}.tool-content{padding:1.5rem;flex-grow:1;display:flex;flex-direction:column;justify-content:space-between;min-height:200px}.tool-content h3{font-size:1.125rem;font-weight:600;margin-bottom:.5rem;color:var(--text-primary);line-height:1.4;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.tool-description{margin:1rem 0;line-height:1.5;flex-grow:1;color:var(--text-secondary);font-size:.875rem;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.tag-container{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:1rem}.tag{background:var(--hover-bg);color:var(--text-secondary);padding:.25rem .75rem;border-radius:9999px;font-size:.875rem;white-space:nowrap}.btn-primary{background:linear-gradient(90deg,var(--gradient-start),var(--gradient-end));color:#fff;padding:.75rem 1.5rem;border-radius:9999px;font-weight:500;transition:opacity .3s ease;border:none;cursor:pointer;text-decoration:none;display:inline-block}.btn-primary:hover{opacity:.9}.btn-secondary{background:var(--hover-bg);color:var(--text-primary);padding:.75rem 1.5rem;border-radius:9999px;font-weight:500;transition:all .3s ease;border:none;cursor:pointer;text-decoration:none;display:inline-block}.btn-secondary:hover{background:var(--border-color)}.input-field{background:var(--input-bg);border:1px solid var(--border-color);color:var(--text-primary);padding:.75rem;border-radius:.5rem;width:100%;transition:all .3s ease;outline:none}.input-field:focus{border-color:var(--gradient-start);box-shadow:0 0 0 3px rgba(124,58,237,.1)}.search-input{background:var(--input-bg);border:1px solid var(--border-color);color:var(--text-primary);padding:1rem;border-radius:.5rem;width:100%;transition:all .3s ease}.search-input:focus{border-color:var(--gradient-start);outline:none;box-shadow:0 0 0 3px rgba(124,58,237,.1)}.modal-overlay{position:fixed;z-index:9999;left:0;top:0;width:100vw;height:100vh;background:rgba(0,0,0,.6);display:none;align-items:center;justify-content:center}.modal-overlay.show{display:flex!important}.modal{background:var(--modal-bg);padding:2rem;border-radius:1rem;min-width:320px;max-width:90vw;position:relative;margin:auto}.modal-close{position:absolute;right:1.5rem;top:1.5rem;font-size:2rem;color:#888;background:none;border:none;cursor:pointer}.modal-close:hover{color:var(--text-primary)}.theme-toggle{background:none;border:none;color:var(--text-primary);cursor:pointer;padding:.5rem;display:flex;align-items:center;gap:.5rem;transition:color .3s ease}.theme-toggle:hover{color:var(--gradient-start)}.theme-toggle i{font-size:1.25rem}.loading-spinner{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:2rem}.spinner{width:40px;height:40px;border:3px solid rgba(255,255,255,.1);border-radius:50%;border-top-color:var(--primary);animation:spin 1s ease-in-out infinite}@keyframes spin{to{transform:rotate(360deg)}}.fade-in{opacity:0;transform:translateY(20px);animation:fadeInUp .6s ease forwards}@keyframes fadeInUp{to{opacity:1;transform:translateY(0)}}.gradient-text{background:linear-gradient(90deg,var(--gradient-start),var(--gradient-end));-webkit-background-clip:text;background-clip:text;color:transparent}.text-gray-300{color:#d1d5db!important}.text-gray-400{color:#9ca3af!important}.hover\:bg-gray-800:hover{background-color:#1f2937!important}.bg-blue-600{background-color:#2563eb!important}.text-blue-100{color:#dbeafe!important}.bg-green-600{background-color:#16a34a!important}.text-green-100{color:#dcfce7!important}.bg-purple-600{background-color:#9333ea!important}.text-purple-100{color:#f3e8ff!important}.bg-pink-600{background-color:#db2777!important}.text-pink-100{color:#fce7f3!important}.bg-yellow-600{background-color:#d97706!important}.text-yellow-100{color:#fef9c3!important}.bg-red-600{background-color:#dc2626!important}.text-red-100{color:#fee2e2!important}.bg-indigo-600{background-color:#4f46e5!important}.text-indigo-100{color:#e0e7ff!important}.bg-teal-600{background-color:#0d9488!important}.text-teal-100{color:#ccfbf1!important}.bg-orange-600{background-color:#ea580c!important}.text-orange-100{color:#ffedd5!important}@media (max-width: 768px){.header-container{padding:0 1rem}.tool-card,.category-card,.method-card{min-height:350px}.tool-thumbnail{height:80px}.tool-content h3{font-size:1rem}.tool-description{font-size:.8rem}.tag{font-size:.75rem;padding:.2rem .6rem}}@media (max-width: 640px){.tool-card,.category-card,.method-card{margin-bottom:1rem}.tool-thumbnail{height:60px}.tool-content h3{font-size:.9rem}.tool-description{font-size:.75rem}.tag{font-size:.7rem;padding:.15rem .5rem}}
