:root{font-family:Pretendard,Noto Sans KR,Segoe UI,sans-serif;line-height:1.5;font-weight:400;color:#111827;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*{box-sizing:border-box}body{margin:0;min-width:320px}:root{--ink: #1d2140;--muted: #656b94;--brand-a: #00d9ff;--brand-b: #4d78ff;--brand-c: #ff5db1;--panel: rgba(255, 255, 255, .84);--line: rgba(112, 126, 196, .24)}.screen{min-height:100vh;padding:22px;display:grid;place-items:center;background:radial-gradient(55% 50% at 10% 12%,rgba(0,217,255,.28),transparent 66%),radial-gradient(52% 58% at 88% 8%,rgba(255,93,177,.27),transparent 65%),radial-gradient(52% 48% at 90% 94%,rgba(126,86,255,.2),transparent 62%),linear-gradient(140deg,#f4f7ff,#fdf2ff 44%,#f3fdff)}.card{width:min(860px,100%);border-radius:30px;padding:26px;background:var(--panel);border:1px solid var(--line);box-shadow:0 25px 50px #2c377b29;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.app-header{margin-bottom:22px}.brand{display:flex;gap:14px;align-items:center}.brand img{width:62px;height:62px;border-radius:18px;box-shadow:0 12px 24px #4d78ff47}.eyebrow{margin:0;color:var(--brand-b);font-weight:700;font-size:.75rem;letter-spacing:.14em}.brand h1{margin:2px 0 0;font-size:clamp(1.9rem,3.8vw,2.7rem);line-height:1.05;color:var(--ink)}.subtitle{margin:12px 0 0;color:var(--muted);font-size:.98rem}.form{display:grid;gap:16px}.field{display:grid;gap:8px}.field span{color:#323862;font-size:.92rem;font-weight:700}input[type=file],input[type=number]{width:100%;border:1px solid #c8d0f5;border-radius:14px;background:#ffffffeb;padding:12px 13px;color:#21274d;font-size:1rem}input[type=file]:focus,input[type=number]:focus{outline:3px solid rgba(77,120,255,.35);border-color:#6489ff}.photo-preview{position:relative;min-height:246px;border:1.5px dashed #8da6ff;border-radius:18px;overflow:hidden;display:grid;place-items:center;text-align:center;padding:14px;color:#5d6696;background:linear-gradient(145deg,#ffffffd1,#e8f4ffb8);transition:transform .2s ease,border-color .2s ease,background-color .2s ease}.photo-preview.dragging{border-color:#ff5db1;background:#fff2fb;transform:translateY(-2px)}.photo-preview img{width:100%;height:100%;object-fit:cover}.photo-preview .overlay-text{position:absolute;left:12px;right:12px;bottom:12px;background:#1d2140b8;color:#fff;border-radius:11px;padding:8px 10px;font-size:.86rem}button{border:0;border-radius:14px;padding:13px 16px;background:linear-gradient(95deg,var(--brand-b),var(--brand-c));color:#fff;font-size:1rem;font-weight:800;cursor:pointer;box-shadow:0 12px 26px #7249dc42}button:hover{filter:brightness(1.07)}button:disabled{opacity:.72;cursor:wait}.error-text,.warning-text,.notice-text{margin:13px 0 0;font-weight:700;font-size:.94rem}.error-text{color:#cc1247}.warning-text{color:#8c5d00}.notice-text{color:#215bb7}.report-box{margin-top:20px;border:1px solid var(--line);border-radius:18px;padding:16px;background:#ffffffe0}.loading-box{margin-top:16px;border:1px solid var(--line);border-radius:16px;background:linear-gradient(130deg,#f0f7ffeb,#fff4fce6);padding:14px 15px}.loading-title{margin:0;color:#2c386d;font-size:.95rem;font-weight:800}.loading-text{margin:6px 0 10px;color:#405292;font-weight:700}.loading-progress-track{width:100%;height:10px;border-radius:999px;background:#707ec433;overflow:hidden}.loading-progress-fill{height:100%;border-radius:999px;background:linear-gradient(90deg,#00d9ff,#4d78ff 55%,#ff5db1);box-shadow:0 0 12px #4d78ff59;transition:width .45s ease;position:relative}.loading-progress-fill:after{content:"";position:absolute;inset:0;background:linear-gradient(120deg,transparent,rgba(255,255,255,.65),transparent);animation:loading-shine 1.3s linear infinite}.report-box h2{margin:0 0 11px;color:#2a2f58;font-size:1.06rem}.markdown-report{color:#232846;line-height:1.72}.markdown-report>:first-child{margin-top:0}.markdown-report>:last-child{margin-bottom:0}.markdown-report h1,.markdown-report h2,.markdown-report h3,.markdown-report h4{margin:1.05em 0 .4em}.markdown-report ul,.markdown-report ol{margin:.56em 0 .9em;padding-left:1.2em}.markdown-report blockquote{margin:.85em 0;border-left:3px solid #90adff;background:#f5f8ff;color:#3a4a7f;padding:.48em .8em;border-radius:0 9px 9px 0}.markdown-report pre{margin:.8em 0;background:#1f2448;color:#e9edff;border-radius:10px;padding:12px;overflow-x:auto}.markdown-report code{background:#eef1ff;padding:.06em .36em;border-radius:6px}.markdown-report pre code{background:transparent;padding:0}.hairstyle-image{width:100%;border:1px solid #d5dcff;border-radius:14px;display:block}.download-box{margin-top:18px;border:1px solid var(--line);border-radius:18px;background:#ffffffdb;padding:14px}.download-box h2{margin:0 0 10px;color:#2a2f58;font-size:1rem}.download-actions{display:flex;gap:10px;flex-wrap:wrap}.download-link{border:1px solid #c8d0f5;background:#fff;color:#2d3a78;box-shadow:none;padding:10px 14px;font-size:.9rem;font-weight:700}.download-link:hover{filter:none;background:#f2f5ff}@keyframes loading-shine{0%{transform:translate(-100%)}to{transform:translate(100%)}}@media(max-width:700px){.screen{padding:14px}.card{padding:18px;border-radius:22px}.brand img{width:52px;height:52px;border-radius:15px}.photo-preview{min-height:198px}}
