:root{--bg-color: #0f172a;--panel-bg: rgba(30, 41, 59, .7);--primary-color: #8b5cf6;--secondary-color: #6366f1;--text-primary: #f8fafc;--text-secondary: #94a3b8;--glass-border: rgba(255, 255, 255, .1)}*{box-sizing:border-box;margin:0;padding:0}body{font-family:Noto Sans KR,sans-serif;background-color:var(--bg-color);color:var(--text-primary);min-height:100vh;display:flex;flex-direction:column;background-image:radial-gradient(circle at 15% 50%,rgba(139,92,246,.15),transparent 25%),radial-gradient(circle at 85% 30%,rgba(99,102,241,.15),transparent 25%)}.app-container{max-width:600px;margin:0 auto;padding:2rem 1rem;width:100%;display:flex;flex-direction:column;flex-grow:1}header{text-align:center;margin-bottom:2.5rem}header h1{font-size:2rem;font-weight:700;margin-bottom:.5rem;text-shadow:0 2px 10px rgba(0,0,0,.3)}header h1 span{background:linear-gradient(135deg,#a78bfa,#818cf8);-webkit-background-clip:text;-webkit-text-fill-color:transparent}header p{color:var(--text-secondary);font-size:.95rem}.upload-section{background:var(--panel-bg);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid var(--glass-border);border-radius:24px;padding:2rem;box-shadow:0 20px 40px #0003;text-align:center;position:relative;overflow:hidden}.upload-box{border:2px dashed rgba(139,92,246,.5);border-radius:16px;padding:3rem 1rem;cursor:pointer;transition:all .3s ease;position:relative}.upload-box:hover{background:#8b5cf60d;border-color:var(--primary-color);transform:translateY(-2px)}.upload-icon{font-size:3rem;margin-bottom:1rem;display:inline-block;animation:bounce 2s infinite ease-in-out}.file-input{position:absolute;top:0;left:0;width:100%;height:100%;opacity:0;cursor:pointer}@keyframes bounce{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}.image-preview-wrapper{position:relative;width:100%;max-width:300px;margin:0 auto 2rem;border-radius:16px;overflow:hidden;box-shadow:0 10px 20px #0000004d}#image-preview{width:100%;height:auto;border-radius:16px;display:block}.scanning-bar{position:absolute;top:0;left:0;width:100%;height:4px;background:var(--primary-color);box-shadow:0 0 15px var(--primary-color),0 0 30px var(--primary-color);animation:scan 1.5s infinite linear alternate;z-index:10}@keyframes scan{0%{top:0}to{top:100%}}.results-layout{display:flex;flex-direction:column;gap:1rem;margin-bottom:2rem}.result-item{background:#0003;border-radius:12px;padding:1rem;display:flex;flex-direction:column;gap:.5rem}.result-header{display:flex;justify-content:space-between;font-weight:700;font-size:1.1rem}.result-bar-bg{width:100%;height:8px;background:#ffffff1a;border-radius:4px;overflow:hidden}.result-bar-fill{height:100%;background:linear-gradient(90deg,var(--primary-color),var(--secondary-color));border-radius:4px;width:0%;transition:width 1s cubic-bezier(.4,0,.2,1)}.result-item.top-match{background:#8b5cf633;border:1px solid rgba(139,92,246,.4);transform:scale(1.02)}.result-item.top-match .result-header{color:#c4b5fd;font-size:1.3rem}.btn-primary{background:linear-gradient(135deg,var(--primary-color),var(--secondary-color));color:#fff;border:none;padding:14px 32px;font-size:1.1rem;font-weight:700;border-radius:12px;cursor:pointer;transition:all .3s ease;box-shadow:0 4px 15px #8b5cf666;width:100%}.btn-primary:hover{transform:translateY(-2px);box-shadow:0 8px 25px #8b5cf699}.hidden{display:none!important}.spinner{width:40px;height:40px;border:4px solid rgba(255,255,255,.1);border-radius:50%;border-top-color:var(--primary-color);animation:spin 1s ease-in-out infinite;margin:0 auto 1rem}@keyframes spin{to{transform:rotate(360deg)}}footer{margin-top:auto;text-align:center;padding:2rem 0;color:var(--text-secondary);font-size:.8rem}
