.voice-home { position:absolute; right:47px; top:50%; transform:translateY(-50%); width:40px; height:40px; padding:10px; color:inherit; border:0; border-radius:8px; background:transparent; }
.voice-home:hover { background:rgba(255,255,255,.2); }
.voice-home-cancel { position:absolute; right:3px; top:50%; transform:translateY(-50%); width:44px; height:44px; display:grid; place-items:center; color:#77634f; }
.voice-home-cancel svg { width:18px; height:18px; stroke-width:1.6; }
.voice-home-cancel:hover { color:#943e31; }
.voice-home-cancel[hidden] { display:none; }
.voice-home-status:not(.sr-only) { position:absolute; left:64px; right:94px; top:50%; transform:translateY(-50%); font-size:13px; line-height:1.5; color:#77634f; }
.question-form.is-recording input,.question-form.is-recording .question-submit { visibility:hidden; }
.question-form.is-recording .voice-home { color:#943e31; background:rgba(148,62,49,.08); }
.voice-home:disabled { opacity:.55; }
.voice-home .voice-stop { fill:currentColor; stroke:none; }
.voice-home svg,.voice-record svg { width:19px; height:21px; fill:none; stroke:currentColor; stroke-width:1.6; stroke-linecap:round; }
.question-form.has-voice input { width:calc(100% - 160px); }
.voice-home[hidden],.voice-controls [hidden] { display:none; }
.voice-controls { break-inside:avoid; display:flex; flex-wrap:wrap; align-items:center; gap:8px; }
.voice-input { margin-top:10px; }
.voice-controls .soft-btn { min-width:0; padding:7px 11px; font-size:13px; letter-spacing:.3px; }
.voice-status { color:#77634f; font-size:13px; }
.dialog-body .voice-disclosure { margin:8px 0 0; font-size:12px!important; }
.voice-controls button:disabled { opacity:.55; cursor:wait; }
@media(max-width:600px) { .question-form.has-voice input { width:calc(100% - 144px); } .voice-home-status:not(.sr-only) { left:52px; } }
.fortune-audio { position:absolute; left:85%; top:calc(83.39% + max(22px, 5.37cqw)); transform:translateY(-50%); width:clamp(36px,8cqw,56px); height:clamp(44px,9cqw,62px); padding:6px 3px; border:1px solid currentColor; border-radius:3px 2px 4px 2px; color:#943e31; background:#f4e9dc; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:2px; }
.fortune-audio::after { content:""; position:absolute; inset:3px; border:1px solid currentColor; border-radius:1px; opacity:.45; pointer-events:none; }
.fortune-audio span { font-family:inherit; font-size:clamp(11px,2.4cqw,15px); line-height:1.2; letter-spacing:1px; padding-left:1px; }
.fortune-audio:hover:not(:disabled) { color:#762c23; background:#fff3e5; }
.fortune-audio:focus-visible { outline:2px solid #943e31; outline-offset:4px; }
.fortune-audio:disabled { color:#846b5c; background:#e9e0d4; opacity:.8; cursor:default; }
.fortune-audio svg { width:clamp(14px,2.8cqw,18px); height:clamp(14px,2.8cqw,18px); fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
.fortune-character { color:inherit; }
.fortune-character.is-reading { color:#f4e9dc; background-color:#312a23; }
.fortune-poem.is-dissolving { visibility:hidden; }
.fortune-dust, .fortune-arrival { position:absolute; inset:0; width:100%; height:100%; pointer-events:none; z-index:3; }
.enso-thinking { animation:enso-turn 2.4s linear infinite; }
.question-submit .enso-thinking path { stroke-width:2; stroke-linecap:round; }
.fortune-audio.is-loading svg { animation:enso-turn 2.4s linear infinite; }
@keyframes enso-turn { to { transform:rotate(360deg); } }
@media(max-width:600px) { .fortune-audio { top:calc(82% + max(22px, 5.37cqw)); } }
@media(prefers-reduced-motion:reduce) { .enso-thinking,.fortune-audio.is-loading svg { animation:none; } }
