*,*:before,*:after{box-sizing:border-box}body{margin:0}*{box-sizing:border-box;margin:0;padding:0}body{min-height:100vh;background:linear-gradient(135deg,#1a1a2e,#16213e,#0f3460);display:flex;align-items:center;justify-content:center;font-family:Pretendard,Apple SD Gothic Neo,system-ui,sans-serif;padding:24px}.container{width:100%;max-width:480px}.header{text-align:center;margin-bottom:40px}.title{font-size:2rem;font-weight:700;color:#fff;letter-spacing:-.5px;margin-bottom:8px}.subtitle{color:#ffffff80;font-size:.95rem}.form{background:#ffffff0d;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border:1px solid rgba(255,255,255,.1);border-radius:24px;padding:32px;display:flex;flex-direction:column;gap:32px}.section{display:flex;flex-direction:column;gap:12px}.section-label{font-size:.8rem;font-weight:600;color:#ffffff80;text-transform:uppercase;letter-spacing:1px}.photo-upload{border:2px dashed rgba(255,255,255,.2);border-radius:16px;overflow:hidden;cursor:pointer;transition:border-color .2s,background .2s;aspect-ratio:3 / 4;display:flex;align-items:center;justify-content:center;background:#ffffff08;max-height:320px}.photo-upload:hover{border-color:#e94560;background:#e945600d}.photo-upload.dragging{border-color:#e94560;background:#e945601f;transform:scale(1.01)}.photo-preview{width:100%;height:100%;object-fit:cover}.photo-placeholder{display:flex;flex-direction:column;align-items:center;gap:10px;color:#ffffff4d}.photo-placeholder span{font-size:.95rem}.photo-hint{font-size:.8rem!important;color:#fff3!important}.change-photo-btn{background:none;border:1px solid rgba(255,255,255,.2);color:#fff9;border-radius:8px;padding:8px 16px;font-size:.85rem;cursor:pointer;transition:all .2s;align-self:center}.change-photo-btn:hover{border-color:#e94560;color:#e94560}.input-group{display:grid;grid-template-columns:1fr 1fr;gap:16px}.input-wrapper{display:flex;flex-direction:column;gap:8px}.input-label{font-size:.875rem;color:#ffffffb3;font-weight:500}.input-with-unit{position:relative;display:flex;align-items:center}.input{width:100%;background:#ffffff14;border:1px solid rgba(255,255,255,.15);border-radius:12px;padding:14px 44px 14px 16px;font-size:1.1rem;font-weight:600;color:#fff;outline:none;transition:border-color .2s,background .2s;-moz-appearance:textfield}.input::-webkit-outer-spin-button,.input::-webkit-inner-spin-button{-webkit-appearance:none}.input::placeholder{color:#fff3;font-weight:400}.input:focus{border-color:#e94560;background:#e9456014}.unit{position:absolute;right:14px;color:#fff6;font-size:.85rem;font-weight:500;pointer-events:none}.submit-btn{background:linear-gradient(135deg,#e94560,#c62a47);color:#fff;border:none;border-radius:14px;padding:16px;font-size:1rem;font-weight:600;cursor:pointer;transition:opacity .2s,transform .1s;letter-spacing:.3px}.submit-btn:hover{opacity:.9;transform:translateY(-1px)}.submit-btn:active{transform:translateY(0)}.submit-btn:disabled{opacity:.4;cursor:not-allowed;transform:none}.error-msg{color:#ff6b6b;font-size:.875rem;text-align:center;background:#ff6b6b1a;border:1px solid rgba(255,107,107,.3);border-radius:10px;padding:12px}.container.center{display:flex;align-items:center;justify-content:center;min-height:60vh}.loading-box{text-align:center;display:flex;flex-direction:column;align-items:center;gap:16px}.spinner{width:52px;height:52px;border:3px solid rgba(255,255,255,.1);border-top-color:#e94560;border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.loading-text{color:#fff;font-size:1.1rem;font-weight:600}.loading-sub{color:#fff6;font-size:.875rem}.loading-steps{display:flex;flex-direction:column;gap:10px;margin-top:8px;text-align:left}.loading-step{display:flex;align-items:center;gap:10px;font-size:.875rem;color:#ffffff4d;transition:color .3s}.loading-step.active{color:#fff}.loading-step.done{color:#ffffff80}.step-dot{width:8px;height:8px;border-radius:50%;background:#fff3;flex-shrink:0;transition:background .3s}.loading-step.active .step-dot{background:#e94560;box-shadow:0 0 8px #e94560}.loading-step.done .step-dot{background:#fff6}.report-card{background:#ffffff0d;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border:1px solid rgba(255,255,255,.1);border-radius:24px;padding:32px;color:#ffffffd9;line-height:1.8;margin-bottom:24px}.report-h2{font-size:1.1rem;font-weight:700;color:#e94560;margin-bottom:8px;margin-top:8px}.report-h3{font-size:1rem;font-weight:700;color:#fff;margin-top:16px;margin-bottom:4px}.report-section{font-size:.95rem;margin:12px 0 4px}.report-section-title{font-weight:700;color:#fff}.report-p{font-size:.95rem;color:#ffffffbf}.report-li{font-size:.95rem;color:#ffffffbf;margin-left:20px}.report-spacer{height:8px}.hair-section{background:#ffffff0d;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border:1px solid rgba(255,255,255,.1);border-radius:24px;padding:28px;margin-bottom:24px;display:flex;flex-direction:column;gap:16px}.hair-header{display:flex;flex-direction:column;gap:6px}.hair-desc{font-size:.875rem;color:#ffffff80}.hair-grid-img{width:100%;border-radius:14px;display:block}.download-btn{display:block;text-align:center;background:#ffffff14;border:1px solid rgba(255,255,255,.15);color:#ffffffb3;border-radius:10px;padding:10px;font-size:.875rem;font-weight:500;text-decoration:none;transition:all .2s}.download-btn:hover{border-color:#e94560;color:#e94560}
