/* V15.7 — Animated microphone, states driven by real MediaRecorder, optional input-level metering */
#fieldView .voice-stage{--fee-live-level:0;transition:box-shadow .45s ease!important}
#fieldView .voice-stage-glow{animation:feeAmbient 7s ease-in-out infinite!important;opacity:.8;transition:opacity .3s!important}
#fieldView .voice-orbit{isolation:isolate}
#fieldView .voice-ring{transition:border-color .25s ease, opacity .25s ease}
#fieldView .voice-ring.ring-one{border:2px solid rgba(183,233,0,.27)!important;box-shadow:0 0 27px rgba(183,233,0,.08);animation:feeOrbitBreathe 4.2s ease-in-out infinite!important}
#fieldView .voice-ring.ring-two{border:1.5px solid rgba(183,233,0,.16)!important;animation:feeOrbitBreathe 4.2s ease-in-out infinite reverse!important}
#fieldView .voice-main{isolation:isolate;overflow:hidden;animation:feeButtonFloat 3.5s ease-in-out infinite!important;will-change:transform,box-shadow;box-shadow:0 12px 36px #0004,0 0 0 10px rgba(183,233,0,.13),0 0 34px rgba(183,233,0,.19)!important}
#fieldView .voice-main svg{position:relative;z-index:2;filter:drop-shadow(0 3px 3px rgba(7,62,49,.1));transition:transform .25s ease}
#fieldView .voice-main .fee-mic-shine{position:absolute;inset:-80%;z-index:1;pointer-events:none;background:linear-gradient(105deg,transparent 42%,rgba(255,255,255,.38) 50%,transparent 58%);transform:translateX(-65%) rotate(-15deg);animation:feeShine 6.4s ease-in-out infinite}
#fieldView .voice-main:hover:not(:disabled){animation-play-state:paused!important;transform:translateY(-4px) scale(1.065)!important;box-shadow:0 22px 45px #0005,0 0 0 15px rgba(183,233,0,.19),0 0 52px rgba(183,233,0,.28)!important}
#fieldView .voice-main:active:not(:disabled){animation:none!important;transform:scale(.91)!important;box-shadow:0 8px 19px #0004,0 0 0 24px rgba(183,233,0,.24)!important}
#fieldView .voice-main-label{transition:color .25s ease}
#fieldView .voice-main-label::after{content:'';display:block;height:2px;width:38px;margin:12px auto 0;border-radius:5px;background:#b7e900;opacity:.8;transform:scaleX(.8);animation:feeUnderline 3.5s ease-in-out infinite}
#fieldView .fee-voice-spark{position:absolute;width:7px;height:7px;background:#c5f61a;border-radius:2px;transform:rotate(45deg);pointer-events:none;opacity:.62;box-shadow:0 0 16px rgba(183,233,0,.35);animation:feeSparkle 4.3s ease-in-out infinite}
#fieldView .fee-spark-a{top:34%;left:calc(50% - 116px);animation-delay:.15s}
#fieldView .fee-spark-b{top:40%;right:calc(50% - 121px);width:5px;height:5px;animation-delay:1.5s}
#fieldView .fee-spark-c{bottom:25%;right:calc(50% - 102px);width:4px;height:4px;animation-delay:2.6s}
#fieldView .voice-stage[data-mode="recording"]{box-shadow:0 20px 52px rgba(7,62,49,.26),inset 0 0 68px rgba(183,233,0,.03)!important}
#fieldView .voice-stage[data-mode="recording"] .voice-stage-glow{opacity:1;animation:feeAmbient 3.8s ease-in-out infinite!important}
#fieldView .voice-stage[data-mode="recording"] .voice-main{animation:feeRecordHeartbeat 1.55s ease-in-out infinite!important;box-shadow:0 14px 42px #0004,0 0 0 12px #b7e92a,0 0 0 26px #b7e914!important}
#fieldView .voice-stage[data-mode="recording"] .voice-main svg{animation:feeMicListening 1.55s ease-in-out infinite}
#fieldView .voice-stage[data-mode="recording"] .voice-ring.ring-one{animation:feeRecordRing 1.85s ease-out infinite!important;border-color:rgba(183,233,0,.45)!important}
#fieldView .voice-stage[data-mode="recording"] .voice-ring.ring-two{animation:feeRecordRing 1.85s ease-out .85s infinite!important;border-color:rgba(183,233,0,.33)!important}
#fieldView .voice-stage[data-mode="recording"] .voice-main-label::after{animation:feeUnderline 1s ease-in-out infinite}
#fieldView .voice-stage[data-mode="recording"] .voice-visualizer i{background:#b7e900!important;transform-origin:center;transition:height .07s linear}
#fieldView .voice-stage[data-mode="recording"].fee-live-meter .voice-visualizer i{animation:none!important;height:var(--fee-bar-height,8px)!important;opacity:.96}
#fieldView .voice-stage[data-mode="processing"] .voice-main{animation:feeProcessingGlow 1.55s ease-in-out infinite!important;opacity:.75!important}
#fieldView .voice-stage[data-mode="processing"] .voice-ring.ring-one{animation:feeProcessingRing 1.8s linear infinite!important;border-left-color:#b7e900!important;border-top-color:#b7e900!important}
#fieldView .voice-stage[data-mode="processing"] .voice-ring.ring-two{animation:none!important;opacity:.25}
#fieldView .voice-stage[data-mode="processing"] .voice-main .fee-mic-shine{animation:none!important;opacity:0}
#fieldView .voice-stage[data-mode="processing"] .voice-visualizer i{animation:feeProcessingBars .8s ease-in-out infinite alternate!important;opacity:.72}
#fieldView .voice-stage[data-mode="processing"] .voice-visualizer i:nth-child(2n){animation-delay:.15s!important}
#fieldView .voice-stage[data-mode="processing"] .voice-visualizer i:nth-child(3n){animation-delay:.3s!important}
@keyframes feeButtonFloat{0%,100%{transform:translateY(1px) scale(1);box-shadow:0 12px 35px #0004,0 0 0 9px #b7e912,0 0 26px #b7e91e}50%{transform:translateY(-4px) scale(1.035);box-shadow:0 18px 40px #0004,0 0 0 17px #b7e920,0 0 48px #b7e930}}
@keyframes feeOrbitBreathe{0%,100%{transform:scale(.98);opacity:.48}50%{transform:scale(1.085);opacity:.98}}
@keyframes feeAmbient{0%,100%{transform:scale(.88);opacity:.64}50%{transform:scale(1.1);opacity:1}}
@keyframes feeShine{0%,20%{transform:translateX(-65%) rotate(-15deg)}34%,100%{transform:translateX(65%) rotate(-15deg)}}
@keyframes feeSparkle{0%,100%{opacity:.1;transform:scale(.7) rotate(45deg)}45%{opacity:.8;transform:scale(1.2) rotate(45deg)}60%{opacity:.22;transform:scale(.8) rotate(45deg)}}
@keyframes feeUnderline{0%,100%{transform:scaleX(.65);opacity:.43}50%{transform:scaleX(1.15);opacity:1}}
@keyframes feeRecordHeartbeat{0%,100%{transform:scale(1)}50%{transform:scale(1.045)}}
@keyframes feeMicListening{0%,100%{transform:scale(1)}50%{transform:scale(1.055)}}
@keyframes feeRecordRing{0%{transform:scale(.82);opacity:.85}100%{transform:scale(1.32);opacity:0}}
@keyframes feeProcessingRing{to{transform:rotate(360deg)}}
@keyframes feeProcessingGlow{0%,100%{filter:brightness(.94);transform:scale(.98)}50%{filter:brightness(1.08);transform:scale(1.02)}}
@keyframes feeProcessingBars{from{height:6px}to{height:17px}}
@media(max-width:600px){#fieldView .voice-main{touch-action:manipulation}#fieldView .fee-spark-a{left:calc(50% - 110px)}#fieldView .fee-spark-b{right:calc(50% - 110px)}}
@media(prefers-reduced-motion:reduce){#fieldView .voice-stage-glow,#fieldView .voice-main,#fieldView .voice-main svg,#fieldView .voice-main .fee-mic-shine,#fieldView .voice-ring,#fieldView .voice-visualizer i,#fieldView .fee-voice-spark,#fieldView .voice-main-label::after{animation:none!important;transition:none!important;will-change:auto!important}#fieldView .voice-stage[data-mode="recording"] .voice-ring.ring-one{opacity:.75;transform:none}#fieldView .voice-stage[data-mode="processing"] .voice-ring.ring-one{opacity:1}}
