/* The same WhatsApp-style voice-note layout used by Socialyze. */
.flow.voice-screen{max-width:550px;padding-top:26px;min-height:0}
.flow.voice-screen>.voice-stage{min-height:0;display:block}
.voice-stage>.stage-heading{margin-bottom:25px}
.voice-stage>.stage-heading h1{font-size:32px;line-height:1.15;letter-spacing:-1px}
.voice-stage>.stage-heading .eyebrow{margin-bottom:15px}
.voice-note{width:100%;max-width:470px;margin:0 auto 20px;text-align:left}
.voice-intro{font-size:15px;line-height:1.6;color:#666;margin-bottom:20px}
.voice-author{display:flex;align-items:center;gap:12px;margin-bottom:14px}
.voice-avatar{position:relative;display:grid;place-items:center;width:44px;height:44px;background:#111;color:#fff;border-radius:50%;flex-shrink:0}
.voice-avatar-photo{width:60px;height:60px;border:2px solid #111;overflow:hidden;background:#fff}
.voice-avatar-photo>img{display:block;width:100%;height:100%;object-fit:cover;object-position:50% 35%;transform:scale(1.6);transform-origin:50% 35%}
.voice-author h2{font-size:14px;line-height:1.5;letter-spacing:-.15px;font-weight:650}
.voice-author p{font-size:11px;color:#888;margin-top:3px}
.voice-bubble{position:relative;display:flex;align-items:center;gap:14px;padding:18px 17px 16px;background:#f5f5f5;border:1px solid #e5e5e5;border-radius:12px 12px 12px 3px}
.voice-bubble::before{content:'';position:absolute;left:-8px;bottom:0;width:9px;height:16px;background:#e5e5e5;clip-path:polygon(100% 0,100% 100%,0 100%)}
.voice-play{display:grid;place-items:center;width:48px;height:48px;border:0;border-radius:50%;background:#111;color:#fff;flex-shrink:0;transition:background 200ms,transform 200ms}
.voice-play:hover{background:#333}
.voice-play:active{transform:scale(.96)}
.voice-play svg{width:21px;height:21px}
.voice-timeline{flex:1;min-width:0}
.voice-waveform{position:relative;width:100%;height:44px}
.voice-waveform>svg{display:block;width:100%;height:44px}
.voice-wave-track{fill:#c8c8c8}
.voice-wave-progress{fill:#111}
.voice-progress-clip{transition:width 150ms linear}
.voice-waveform:focus-within{outline:2px solid #111;outline-offset:4px;border-radius:2px}
.voice-waveform input[type=range]{position:absolute;inset:0;width:100%;height:44px;opacity:0;margin:0;padding:0;cursor:pointer}
.voice-times{display:flex;justify-content:space-between;gap:12px;font-size:11px;line-height:1.4;color:#777;font-variant-numeric:tabular-nums;margin-top:2px}
.voice-rate{min-width:44px;min-height:44px;padding:4px 6px;border:0;border-radius:4px;background:transparent;color:#444;font-size:12px;font-weight:650;flex-shrink:0}
.voice-rate:hover{background:#e9e9e9}
.voice-fallback{margin:11px 0 0;font-size:11px;line-height:1.55;color:#888}
.voice-fallback[data-status=blocked],.voice-fallback[data-status=error]{color:#444}
.voice-transcript{margin-top:23px;padding-top:21px;border-top:1px solid #e7e7e7}
.voice-transcript[hidden]{display:none!important}
.voice-transcript-label{font-size:9px;font-weight:650;letter-spacing:1.2px;color:#888;margin-bottom:13px}
.voice-transcript-window{min-height:122px}
.voice-transcript-cue{font-size:19px;line-height:1.6;font-weight:500;color:#111}
.voice-transcript-word{display:inline;transition:opacity 160ms,color 160ms}
.voice-transcript-word.pending{color:#777;opacity:.43}
.voice-transcript-word.spoken{color:#111;opacity:1}
.voice-transcript-word.current{color:#111;opacity:1;text-decoration:underline;text-decoration-color:#c9c9c9;text-underline-offset:4px}
.voice-transcript-full{margin-top:5px;color:#777;font-size:11px}
.voice-transcript-full summary{cursor:pointer;width:fit-content;min-height:44px;display:flex;align-items:center;text-decoration:underline;text-underline-offset:3px}
.voice-transcript-full>p{color:#555;font-size:14px;line-height:1.65;margin:0 0 16px}
@property --voice-border-angle{syntax:'<angle>';initial-value:0deg;inherits:false}
.voice-continue-cta{position:relative;width:100%;max-width:470px;margin:16px auto 0;border-radius:6px;animation:voice-action-enter 700ms var(--ease) both,voice-action-pulse 2.4s ease-in-out 700ms infinite}
.voice-continue-cta[hidden]{display:none!important}
/* Forward actions share the audio button's pulse and travelling green border. */
.btn.advance-cta:not(:disabled){overflow:visible;isolation:isolate;animation:voice-action-pulse 2.4s ease-in-out 700ms infinite}
:is(.voice-continue-cta,.btn.advance-cta:not(:disabled))::before{content:'';position:absolute;inset:-3px;width:auto;height:auto;padding:3px;border-radius:9px;transform:none;transition:none;background:conic-gradient(from var(--voice-border-angle),#43883f40 0deg 240deg,#43883f 285deg,#9bea79 320deg,#43883f 350deg,#43883f40 360deg);-webkit-mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);-webkit-mask-composite:xor;mask-composite:exclude;pointer-events:none;z-index:1;animation:voice-border-travel 3s linear infinite}
.btn.advance-cta::after,.btn.advance-cta:disabled::before{content:none}
.btn.advance-cta .ripple{display:none}
.voice-continue-cta .btn{width:100%;font-size:15px}
.voice-continue-cta .btn::before,.voice-continue-cta .btn::after{content:none}
.voice-stage :is(button,summary):focus-visible{outline:2px solid #111;outline-offset:4px}
@keyframes voice-action-enter{from{opacity:0;transform:translateY(36px)}to{opacity:1;transform:translateY(0)}}
@keyframes voice-action-pulse{0%,100%{box-shadow:0 0 0 0 #43883f00}50%{box-shadow:0 0 0 7px #43883f22}}
@keyframes voice-border-travel{to{--voice-border-angle:360deg}}
@media(max-width:680px){.flow.voice-screen{padding:20px 20px 22px}.voice-stage>.stage-heading h1{font-size:28px}.voice-stage>.stage-heading{margin-bottom:22px}.voice-stage>.stage-heading .eyebrow{font-size:9px}}
@media(max-width:360px){.flow.voice-screen{padding:18px 18px 20px}.voice-stage>.stage-heading h1{font-size:25px}.voice-transcript-cue{font-size:17px}.voice-avatar-photo{width:54px;height:54px}.voice-author h2{font-size:13px}.voice-intro{font-size:14px}.voice-bubble{gap:10px;padding:15px 12px}.voice-play{width:44px;height:44px}.voice-rate{min-width:36px}}
@media(prefers-reduced-motion:reduce){:is(.voice-continue-cta,.btn.advance-cta:not(:disabled)),:is(.voice-continue-cta,.btn.advance-cta:not(:disabled))::before{animation:none}.voice-transcript-word,.voice-play,.voice-progress-clip{transition:none}}
