/* 이야기방(화롯가 이야기) 화면 — body.aiTalk 일 때만 적용 (js/ai-talk.js가 붙임). 다른 스토리에는 영향이 없다. */
body.aiTalk .storyCard{background:none;border:0;box-shadow:none;overflow:visible;border-radius:0;padding:0}
body.aiTalk #visual,body.aiTalk .storyBody,body.aiTalk #continuity,body.aiTalk #timerBox,body.aiTalk #diceBox,
body.aiTalk #outcomePanel,body.aiTalk #choiceBox,body.aiTalk #customArea,body.aiTalk #aiRoutePanel,body.aiTalk #variantText{display:none!important}
#talkView{--ember:#ffb36b;--ember2:#ff7a45;--warm:#f6e3c6;--hearth:#1a120c;--hearth2:#24180f;padding:4px 2px 0;color:var(--warm)}
@media (max-width:760px){#talkView{padding:4px 12px 0}}

/* 화롯가 머리 */
.talkHearth{position:relative;text-align:center;padding:30px 16px 22px;margin:0 0 14px;border-radius:16px;overflow:hidden;
 background:radial-gradient(120% 90% at 50% 120%,#ff8a3d55,transparent 60%),linear-gradient(180deg,#120c08,#1d140d);border:1px solid #ffb36b33}
.talkHearth h1{font-family:'Nanum Myeongjo',serif;font-weight:800;font-size:34px;letter-spacing:.08em;margin:6px 0 0;color:#ffe9c9}
.talkFire{position:relative;width:64px;height:56px;margin:0 auto 10px}
.talkFire i{position:absolute;bottom:0;left:50%;width:26px;height:44px;margin-left:-13px;border-radius:50% 50% 45% 45%/60% 60% 40% 40%;
 background:radial-gradient(circle at 50% 75%,#fff3c4,#ffb347 45%,#ff6a2b 75%,transparent 76%);filter:blur(.4px);transform-origin:50% 100%;animation:talkFlame 1.6s ease-in-out infinite}
.talkFire i:nth-child(2){width:18px;height:32px;margin-left:-22px;animation-duration:1.25s;opacity:.85}
.talkFire i:nth-child(3){width:18px;height:30px;margin-left:4px;animation-duration:1.9s;opacity:.8}
@keyframes talkFlame{0%,100%{transform:scale(1,1) rotate(-2deg)}50%{transform:scale(.92,1.08) rotate(2deg)}}
@media (prefers-reduced-motion:reduce){.talkFire i,.talkEmber,.talkWave,.talkDots,.talkCaret{animation:none!important}}

.talkEyebrow{font-family:ui-monospace,monospace;font-size:11px;letter-spacing:.14em;color:var(--ember);text-transform:uppercase}

/* 대화 말풍선 */
.talkChat{display:flex;flex-direction:column;gap:10px;margin:0 0 12px}
.talkMsg{max-width:86%;padding:12px 15px;border-radius:14px;line-height:1.8}
.talkMsg p{margin:0;font-family:'Nanum Myeongjo',serif;font-size:17px}
.talkMsg.g{align-self:flex-start;background:var(--hearth2);border:1px solid #ffb36b2e;border-top-left-radius:4px}
.talkMsg.me{align-self:flex-end;background:#2b3a46;border:1px solid #9ec6e033;border-top-right-radius:4px;color:#e6f2fa}
.talkMsg.me p{font-family:inherit;font-size:15px}
.talkWho{display:block;font-size:11px;color:var(--ember);margin-bottom:2px;letter-spacing:.08em}
.talkAnswers{display:flex;flex-wrap:wrap;gap:8px;margin:4px 0 10px}
.talkAns{padding:11px 16px;border-radius:999px;border:1px solid #ffb36b66;background:#2a1b10;color:#ffe3c2;font:inherit;cursor:pointer}
.talkAns:hover,.talkAns:focus-visible{border-color:var(--ember);background:#3a2615}
.talkLink{background:none;border:0;color:#c9a888;font:inherit;font-size:13px;text-decoration:underline;cursor:pointer;padding:6px 0}

/* 이야기 카드 */
.talkCard{padding:22px 22px 16px;margin:0 0 14px;border-radius:16px;background:linear-gradient(180deg,#1b130d,#150f0a);border:1px solid #ffb36b2e}
.talkCard h2{font-family:'Nanum Myeongjo',serif;font-weight:800;font-size:24px;margin:6px 0 12px;color:#ffe9c9}
.talkProse{font-family:'Nanum Myeongjo',serif;font-size:18px;line-height:2;color:#f3e2c8;word-break:keep-all}
.talkCaret{display:inline-block;width:8px;height:1.1em;margin-left:2px;vertical-align:-3px;background:var(--ember);animation:talkBlink 1s steps(2) infinite}
@keyframes talkBlink{50%{opacity:0}}
.talkEnd{border-color:#ffb36b66;box-shadow:0 0 40px #ff8a3d1a inset}

/* 목소리 막대 */
.talkVoice{display:flex;align-items:center;flex-wrap:wrap;gap:8px 12px;margin-top:14px;padding-top:12px;border-top:1px dashed #ffb36b2e}
.talkVBtn{padding:9px 14px;border-radius:999px;border:1px solid #ffb36b66;background:#2a1b10;color:#ffe3c2;font:inherit;font-size:14px;cursor:pointer}
.talkVBtn.hot{border-color:var(--ember);background:#4a2a12;animation:talkPulse 1.6s ease-in-out infinite}
@keyframes talkPulse{50%{box-shadow:0 0 0 6px #ffb36b22}}
.talkVState{font-size:13px;color:#d8b996;display:flex;align-items:center;gap:6px}
.talkVErr{font-size:13px;color:#ffb0a0}
.talkVToggle{margin-left:auto;background:none;border:1px solid #ffffff22;border-radius:8px;color:#bfa58a;font:inherit;font-size:12px;padding:5px 9px;cursor:pointer}
.talkWave{display:inline-block;width:18px;height:12px;background:linear-gradient(90deg,var(--ember) 0 3px,transparent 3px 5px,var(--ember) 5px 8px,transparent 8px 10px,var(--ember) 10px 13px,transparent 13px 15px,var(--ember) 15px 18px); animation:talkWave .9s ease-in-out infinite;transform-origin:50% 50%}
@keyframes talkWave{50%{transform:scaleY(.4)}}
.talkDots{display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--ember);animation:talkBlink 1s infinite}

/* 행동 */
.talkPrimary{display:block;width:100%;padding:16px;border-radius:14px;border:1px solid #ffb36b88;background:linear-gradient(180deg,#5a3315,#3a2010);color:#fff1de;font:inherit;font-weight:700;font-size:16px;cursor:pointer}
.talkPrimary:hover{border-color:var(--ember)}
.talkChoices{display:grid;gap:9px}
.talkChoice{text-align:left;padding:14px 16px;border-radius:12px;border:1px solid #ffb36b55;background:#22170f;color:#ffe9cf;font:inherit;font-size:16px;line-height:1.6;cursor:pointer}
.talkChoice:hover,.talkChoice:focus-visible{border-color:var(--ember);background:#2f1f12}
.talkFree{display:grid;grid-template-columns:1fr auto;gap:8px;margin:12px 0 0}
.talkFree input{min-width:0;padding:12px 14px;border-radius:10px;border:1px solid #ffffff26;background:#0f0b08;color:#f6e3c6;font:inherit}
.talkGo{padding:0 16px;border-radius:10px;border:1px solid #ffb36b66;background:#2a1b10;color:#ffe3c2;font:inherit;cursor:pointer}
.talkSub{display:flex;flex-wrap:wrap;gap:8px;margin:12px 0 20px}
.talkGhost{background:transparent;border:1px solid #ffffff2a;color:#e3cdb2;border-radius:9px;padding:9px 12px;font:inherit;font-size:14px;cursor:pointer}
.talkEndActions .talkPrimary{flex:1 1 100%}

/* 진행·안내 */
.talkLoading{display:flex;gap:14px;align-items:center;padding:16px;margin:0 0 14px;border-radius:14px;background:#1a120c;border:1px solid #ffb36b33;color:#e8cfb0;font-size:14px;line-height:1.6}
.talkLoading span{color:#b99a7b;font-size:13px}
.talkEmber{flex:none;width:18px;height:18px;border-radius:50%;background:radial-gradient(circle,#ffe0a0,#ff8a3d 60%,transparent 70%);animation:talkPulse 1.4s ease-in-out infinite,talkGlow 1.4s ease-in-out infinite}
@keyframes talkGlow{50%{opacity:.5}}
.talkError{padding:14px 16px;margin:0 0 14px;border-radius:12px;background:#3a1414;border:1px solid #ff8a8a55;color:#ffd6d6;line-height:1.6}
.talkError .talkGhost{margin-top:10px}
.talkCare{padding:14px 16px;margin:0 0 14px;border-radius:12px;background:#132430;border:1px solid #8fd0ff44;color:#d9eefc;line-height:1.75;font-size:15px}
.talkPast{margin:0 0 12px;padding:10px 14px;border-radius:12px;background:#140e0a;border:1px solid #ffffff14;color:#cdb79c}
.talkPast summary{cursor:pointer;font-size:13px;color:#d8b996}
.talkPast p{font-family:'Nanum Myeongjo',serif;line-height:1.9;font-size:15px;margin:10px 0}
.talkPastAct{font-size:13px;color:var(--ember);margin-top:12px}
@media (max-width:520px){.talkHearth h1{font-size:28px}.talkProse{font-size:17px}.talkMsg{max-width:94%}}

/* 목소리 바꾸기 */
.talkVoiceSet{margin-top:10px;border:1px solid #ffb36b2e;border-radius:12px;background:#140e0a;padding:0 12px}
.talkVoiceSet summary{cursor:pointer;padding:10px 0;font-size:13px;color:#e3c8a6;list-style-position:inside}
.talkVoiceSet[open]{padding-bottom:12px}
.talkVoiceGrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(132px,1fr));gap:7px;margin:4px 0 10px}
.talkVoiceOpt{display:flex;flex-direction:column;align-items:flex-start;gap:2px;padding:9px 11px;border-radius:10px;border:1px solid #ffffff22;background:#1d140d;color:#f0dcc0;font:inherit;font-size:13px;text-align:left;cursor:pointer}
.talkVoiceOpt small{color:#a88d70;font-family:ui-monospace,monospace;font-size:11px}
.talkVoiceOpt.on{border-color:var(--ember);background:#3a2615;box-shadow:0 0 0 1px #ffb36b55 inset}
.talkSpeedRow{display:flex;flex-wrap:wrap;align-items:center;gap:7px;margin:0 0 10px;font-size:13px;color:#d8b996}
.talkSpeedOpt{padding:7px 12px;border-radius:999px;border:1px solid #ffffff22;background:#1d140d;color:#f0dcc0;font:inherit;font-size:13px;cursor:pointer}
.talkSpeedOpt.on{border-color:var(--ember);background:#3a2615}
.talkVoiceNote{margin:8px 0 0;font-size:12px;color:#a88d70;line-height:1.6}

/* 질문 v3: 지난번 대답 표시, 바탕 이야기 표시 */
.talkAns small{display:inline-block;margin-left:6px;padding:1px 6px;border-radius:999px;background:#ffb36b2e;color:#ffcf9e;font-size:11px;vertical-align:1px}
.talkAns.last{border-color:#ffb36baa}
.talkSource{margin:4px 0 0;font-size:12px;color:#c9a888}

/* 목소리 조작은 선택지와 헷갈리지 않게: 작고 각진 회색 도구 모양, 질문 화면에서는 맨 위에 둔다 */
.talkVoiceTop{margin:-4px 0 14px;padding:8px 12px;border:1px solid #ffffff14;border-radius:10px;background:#0c0907}
.talkVoiceTop .talkVoice{margin:0;padding:0;border:0}
.talkVoiceTop .talkVoiceSet{margin-top:8px;background:transparent;border-color:#ffffff14}
.talkVoice .talkVBtn{border-radius:7px;border:1px solid #ffffff24;background:transparent;color:#bfa58a;font-size:13px;padding:6px 10px}
.talkVoice .talkVBtn:hover{border-color:#ffffff44;color:#e8d3b8}
.talkVoice .talkVBtn.hot{border-color:#ffb36b88;color:#ffd2a4;background:#2a1b10}
.talkVoiceSet .talkVBtn{border-radius:7px;background:transparent;border:1px solid #ffffff24;color:#bfa58a;font-size:13px;padding:6px 10px}
.talkVoiceSet summary{font-size:12px;color:#a88d70}
.talkAnswerHead{margin:6px 0 8px;font-size:12px;letter-spacing:.06em;color:#ffb36b}
