/* 나만의 독백 — 브랜드 정본(brand/DESIGN.md): 블루 #0A79FB, 밝은 중성 배경, Pretendard */
:root{
  --blue:#0A79FB;
  --blue-dark:#0355F1;
  --blue-light:#44C0FD;
  --ink:#111827;
  --ink-2:#4B5563;
  --ink-3:#9CA3AF;
  --bg:#F7F8FA;
  --surface:#FFFFFF;
  --line:#E5E7EB;
  --radius:18px;
}
*{box-sizing:border-box;margin:0;padding:0}
html,body{height:100%}
body{
  background:var(--bg);
  color:var(--ink);
  font-family:'Pretendard Variable',Pretendard,-apple-system,BlinkMacSystemFont,system-ui,sans-serif;
  -webkit-font-smoothing:antialiased;
  line-height:1.6;
}
#app{min-height:100dvh;display:flex;align-items:center;justify-content:center;padding:24px}
.screen{width:100%}
.wrap{max-width:560px;margin:0 auto;width:100%}
.wrap.center{text-align:center}

.brand{
  font-size:14px;font-weight:700;letter-spacing:-.01em;
  background:linear-gradient(90deg,var(--blue-light),var(--blue-dark));
  -webkit-background-clip:text;background-clip:text;color:transparent;
  margin-bottom:20px;
}
.tagline{font-size:32px;font-weight:800;letter-spacing:-.03em;line-height:1.3;margin-bottom:14px}
.sub{color:var(--ink-2);font-size:16px;margin-bottom:36px}

.btn{
  display:inline-flex;align-items:center;justify-content:center;
  border:0;border-radius:14px;cursor:pointer;
  font-family:inherit;font-size:16px;font-weight:700;letter-spacing:-.01em;
  padding:16px 28px;transition:transform .12s ease,opacity .12s ease;
  text-decoration:none;
}
.btn:active{transform:scale(.985)}
.btn-primary{background:var(--blue);color:#fff;width:100%}
.btn-primary:hover{background:var(--blue-dark)}
.btn-ghost{background:var(--surface);color:var(--ink);border:1px solid var(--line);flex:1}
.btn-ghost:hover{border-color:var(--ink-3)}
.btn-back{
  background:none;border:0;color:var(--ink-3);font-family:inherit;font-size:14px;
  cursor:pointer;margin-top:28px;padding:8px 0;
}

.fine{color:var(--ink-3);font-size:13px;margin-top:18px}
.fine.notice{margin-top:24px;padding-top:18px;border-top:1px solid var(--line)}

/* 선택 */
.progress{height:3px;background:var(--line);border-radius:99px;margin-bottom:36px;overflow:hidden}
.progress span{display:block;height:100%;background:var(--blue);border-radius:99px;transition:width .3s ease;width:0}
.question{font-size:26px;font-weight:800;letter-spacing:-.02em;margin-bottom:24px}
.options{display:flex;flex-direction:column;gap:10px}
.opt{
  background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);
  padding:18px 20px;cursor:pointer;text-align:left;font-family:inherit;
  display:flex;align-items:baseline;gap:10px;transition:border-color .12s ease,transform .12s ease;
}
.opt:hover{border-color:var(--blue)}
.opt:active{transform:scale(.99)}
.opt-label{font-size:17px;font-weight:700;color:var(--ink)}
.opt-hint{font-size:13px;color:var(--ink-3)}

/* 생성 중 */
.pulse{
  width:52px;height:52px;border-radius:50%;margin:0 auto 26px;
  background:linear-gradient(135deg,var(--blue-light),var(--blue-dark));
  animation:breathe 1.6s ease-in-out infinite;
}
@keyframes breathe{0%,100%{transform:scale(.82);opacity:.5}50%{transform:scale(1);opacity:1}}
.loading-title{font-size:20px;font-weight:700}

/* 결과 */
.coord{
  display:inline-block;font-size:13px;font-weight:700;color:var(--blue);
  background:rgba(10,121,251,.08);padding:6px 12px;border-radius:99px;margin-bottom:18px;
}
.r-title{font-size:30px;font-weight:800;letter-spacing:-.03em;line-height:1.3;margin-bottom:12px}
.r-stage{color:var(--ink-2);font-size:15px;font-style:italic;margin-bottom:26px}
.r-body{
  background:var(--surface);border-radius:var(--radius);padding:28px 26px;
  font-size:17px;line-height:2;white-space:pre-wrap;word-break:keep-all;
}
.actions{display:flex;gap:10px;margin-top:22px}

.bridge{margin-top:40px;padding-top:32px;border-top:1px solid var(--line)}
.bridge-lead{font-size:16px;color:var(--ink-2);margin-bottom:6px}
.bridge-ask{font-size:19px;font-weight:700;letter-spacing:-.02em;line-height:1.5;margin-bottom:22px}

@media (max-width:480px){
  .tagline{font-size:27px}
  .question{font-size:23px}
  .r-title{font-size:25px}
  .r-body{padding:22px 20px;font-size:16px}
}

/* 결과 — 큐레이션 전환분 */
.r-situation{
  color:var(--ink-2);font-size:15px;line-height:1.7;margin-bottom:22px;
  padding-left:14px;border-left:3px solid var(--blue);
}
.r-source{
  display:block;margin-top:14px;color:var(--ink-3);font-size:13px;text-decoration:none;
}
.r-source:hover{color:var(--blue);text-decoration:underline}

.r-len{
  display:inline-block;font-size:12px;font-weight:700;color:var(--blue);
  background:rgba(10,121,251,.08);padding:5px 11px;border-radius:99px;margin-bottom:20px;
}

/* 질문 — 자유 입력 */
.answer{display:flex;flex-direction:column}
.input{
  width:100%;background:var(--surface);border:1px solid var(--line);border-radius:14px;
  padding:18px 20px;font-family:inherit;font-size:18px;color:var(--ink);
  transition:border-color .12s ease;
}
.input:focus{outline:none;border-color:var(--blue)}
.hint{color:var(--ink-3);font-size:13px;margin:12px 2px 24px;line-height:1.6}

/* 결과 */
.r-lead{color:var(--ink-3);font-size:13px;font-weight:700;margin-bottom:14px}
.r-source{display:block;margin-top:14px;color:var(--ink-3);font-size:13px;text-decoration:none}
.r-source:hover{color:var(--blue);text-decoration:underline}

/* 위기 안내 — 차분하게. 놀라게 하지 않는다 */
.c-title{font-size:26px;font-weight:800;letter-spacing:-.02em;margin-bottom:16px}
.c-body{color:var(--ink-2);font-size:16px;line-height:1.8;margin-bottom:28px}
.c-lines{list-style:none;margin-bottom:32px}
.c-lines li{
  background:var(--surface);border:1px solid var(--line);border-radius:14px;
  padding:16px 20px;font-size:16px;font-weight:700;margin-bottom:10px;
}
