/* FELLO — Felli Live voice stage */
html.fv-lock,html.fv-lock body{overflow:hidden;}
.fv{position:fixed;inset:0;z-index:400;display:grid;grid-template-rows:auto minmax(0,1fr) auto auto auto auto;justify-items:center;padding:max(14px,env(safe-area-inset-top)) 16px max(18px,env(safe-area-inset-bottom));color:var(--text-primary);opacity:0;visibility:hidden;pointer-events:none;transition:opacity .45s var(--ease),visibility 0s linear .45s;overflow:hidden;}
.fv.on{opacity:1;visibility:visible;pointer-events:auto;transition:opacity .45s var(--ease);}
.fv-bg{position:absolute;inset:0;z-index:-1;background:radial-gradient(120% 80% at 50% 38%,#FFF8F0 0%,#FFEBD6 46%,#FFD9B5 100%);}
.fv-bg i{position:absolute;width:70vmax;height:70vmax;border-radius:50%;filter:blur(60px);opacity:.55;background:radial-gradient(closest-side,rgba(255,150,70,.55),rgba(255,150,70,0));animation:fvDrift 16s var(--ease) infinite alternate;}
.fv-bg i:first-child{left:-25vmax;top:-30vmax;}
.fv-bg i:last-child{right:-30vmax;bottom:-35vmax;animation-delay:-8s;background:radial-gradient(closest-side,rgba(255,200,140,.7),rgba(255,200,140,0));}
@keyframes fvDrift{to{transform:translate(8vmax,6vmax) scale(1.12);}}
.fv-top{width:100%;max-width:720px;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:10px;transform:translateY(-10px);opacity:0;transition:transform .6s var(--ease) .1s,opacity .6s var(--ease) .1s;}
.fv.on .fv-top{transform:none;opacity:1;}
.fv-mode{justify-self:start;display:flex;padding:3px;border-radius:999px;background:rgba(255,255,255,.55);box-shadow:0 0 0 .5px rgba(120,50,0,.12);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);}
.fv-mode button{height:32px;padding:0 12px;border:0;border-radius:999px;background:none;font:600 12.5px var(--font-sans);color:var(--text-secondary);cursor:pointer;white-space:nowrap;transition:background .3s,color .3s,box-shadow .3s;}
.fv-mode button.on{background:#fff;color:var(--accent-deep);box-shadow:0 1px 3px rgba(0,0,0,.1);}
.fv-status{display:flex;align-items:center;gap:8px;height:34px;padding:0 14px;border-radius:999px;background:rgba(255,255,255,.62);box-shadow:0 0 0 .5px rgba(120,50,0,.12);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);font:500 11px var(--font-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--accent-deep);white-space:nowrap;}
.fv-status i{width:7px;height:7px;border-radius:50%;background:var(--accent);box-shadow:0 0 0 0 rgba(255,122,24,.5);animation:fvLive 1.6s var(--ease) infinite;}
.fv[data-state="connecting"] .fv-status i{background:#C9B8A6;animation:none;}
.fv[data-state="error"] .fv-status i{background:#B24A1A;animation:none;}
.fv[data-state="paused"] .fv-status i{background:#9A8C80;animation:none;}
@keyframes fvLive{0%{box-shadow:0 0 0 0 rgba(255,122,24,.55)}100%{box-shadow:0 0 0 10px rgba(255,122,24,0)}}
.fv-timer{color:var(--text-tertiary);letter-spacing:.08em;}
.fv-timer:empty{display:none;}
.fv-late .fv-timer{color:#B24A1A;}
.fv-x{justify-self:end;width:40px;height:40px;border-radius:50%;border:0;display:grid;place-items:center;cursor:pointer;background:rgba(255,255,255,.62);color:var(--text-secondary);box-shadow:0 0 0 .5px rgba(120,50,0,.12);transition:background .3s,color .3s,transform .3s var(--ease);}
.fv-x:hover{background:#fff;color:var(--text-primary);transform:rotate(90deg);}
.fv-x svg{width:18px;height:18px;}

.fv-stage{position:relative;height:100%;max-height:min(440px,84vw);min-height:0;width:auto;aspect-ratio:1;align-self:center;display:grid;place-items:center;transform:scale(.7);opacity:0;transition:transform .8s cubic-bezier(.2,1.4,.4,1),opacity .5s var(--ease);}
.fv.on .fv-stage{transform:none;opacity:1;}
.fv-glow{position:absolute;inset:6%;border-radius:50%;background:radial-gradient(closest-side,rgba(255,140,50,.5),rgba(255,140,50,.18) 55%,rgba(255,140,50,0));will-change:transform,opacity;}
.fv[data-mode="kind"] .fv-glow{background:radial-gradient(closest-side,rgba(255,120,90,.5),rgba(255,170,90,.2) 55%,rgba(255,170,90,0));}
.fv-rings i{position:absolute;inset:14%;border-radius:50%;border:1.5px solid rgba(255,122,24,.45);will-change:transform,opacity;}
.fv-rings i:nth-child(2){inset:8%;border-color:rgba(255,122,24,.3);}
.fv-rings i:nth-child(3){inset:2%;border-color:rgba(255,122,24,.18);}
.fv[data-state="error"] .fv-rings i,.fv[data-state="paused"] .fv-rings i{border-color:rgba(140,110,90,.25);}
.fv-orbit{position:absolute;inset:4%;opacity:0;transition:opacity .4s;animation:fvSpin 2.4s linear infinite;}
.fv-orbit b{position:absolute;inset:0;}
.fv-orbit b::before{content:"";position:absolute;left:50%;top:0;width:12px;height:12px;margin-left:-6px;border-radius:50%;background:var(--accent);box-shadow:0 0 14px rgba(255,122,24,.7);}
.fv-orbit b:nth-child(2){transform:rotate(120deg);opacity:.7;}
.fv-orbit b:nth-child(3){transform:rotate(240deg);opacity:.45;}
.fv[data-state="thinking"] .fv-orbit{opacity:1;}
@keyframes fvSpin{to{transform:rotate(360deg);}}
.fv-owl{position:relative;width:74%;aspect-ratio:140/112;padding:0;border:0;background:none;cursor:pointer;-webkit-tap-highlight-color:transparent;filter:drop-shadow(0 30px 34px rgba(150,60,5,.3));}
.fv-owl:focus-visible{outline:2px solid var(--accent);outline-offset:8px;border-radius:40%;}
.fv-owl-in{width:100%;height:100%;will-change:transform;}
.fv-owl-in .owl{width:100%;height:100%;overflow:visible;}
.fv-owl .beak{transform-box:fill-box;transform-origin:50% 0;}
.fv-owl .wing{transition:none;}
.fv-owl.poked{animation:fvPoke .7s cubic-bezier(.3,1.6,.5,1);}
.fv-owl.oops{animation:fvOops .5s var(--ease);}
@keyframes fvPoke{0%{transform:scale(1)}25%{transform:scale(1.12,.86) translateY(6%)}55%{transform:scale(.94,1.1) translateY(-8%) rotate(-6deg)}100%{transform:none}}
@keyframes fvOops{0%,100%{transform:none}25%{transform:translateX(-4%) rotate(-4deg)}50%{transform:translateX(4%) rotate(4deg)}75%{transform:translateX(-2%)}}
.fv[data-state="listening"] .owl .pupils .pl{r:6.6;}
.fv[data-state="error"] .fv-owl-in{filter:saturate(.5);opacity:.85;}
.fv-sparks{position:absolute;left:50%;top:46%;width:0;height:0;pointer-events:none;}
.fv-sparks .sp{position:absolute;left:-6px;top:-6px;width:12px;height:12px;border-radius:50%;background:var(--accent-btn-lt);animation:fvSpark 1s cubic-bezier(.2,.8,.3,1) forwards;}
.fv-sparks .sp.st{width:16px;height:16px;left:-8px;top:-8px;border-radius:2px;background:#FFC46B;clip-path:polygon(50% 0,62% 38%,100% 50%,62% 62%,50% 100%,38% 62%,0 50%,38% 38%);}
@keyframes fvSpark{0%{transform:translate(0,0) scale(.4) rotate(0);opacity:1}70%{opacity:1}100%{transform:translate(var(--dx),var(--dy)) scale(1) rotate(var(--r));opacity:0}}

.fv-caps{width:100%;max-width:640px;min-height:5.2em;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;gap:8px;text-align:center;padding:0 8px;}
.fv-caps p{margin:0;text-wrap:balance;}
.fv-cap-u{font:500 14.5px/1.4 var(--font-sans);color:var(--text-secondary);max-width:44ch;}
.fv-cap-u:not(:empty)::before{content:"Du: ";color:var(--accent-deep);font-weight:650;}
.fv-cap-f{font-family:var(--font-display);font-size:clamp(22px,3.4vw,32px);line-height:1.18;letter-spacing:-0.015em;color:var(--text-primary);max-width:28ch;}
.fv-err{max-width:420px;text-align:center;display:flex;flex-direction:column;align-items:center;gap:14px;margin-bottom:10px;}
.fv-err[hidden]{display:none;}
.fv-err p{margin:0;font-family:var(--font-display);font-size:clamp(20px,3vw,26px);line-height:1.2;text-wrap:balance;}
.fv-err-acts{display:flex;gap:8px;flex-wrap:wrap;justify-content:center;}
.fv-err-acts button{height:44px;padding:0 18px;border-radius:999px;border:0;font:650 14px var(--font-sans);cursor:pointer;}
.fv-retry{color:#fff;background:linear-gradient(180deg,var(--accent-btn-lt),var(--accent-btn));}
.fv-retry[hidden]{display:none;}
.fv-tochat{background:#fff;color:var(--text-primary);box-shadow:0 0 0 .5px var(--hairline-strong);}
.fv-chips{width:100%;max-width:640px;display:flex;gap:6px;justify-content:center;flex-wrap:wrap;padding:12px 0 4px;transition:opacity .4s,max-height .4s;max-height:120px;}
.fv-chip{height:34px;padding:0 14px;border-radius:999px;border:0;background:rgba(255,255,255,.72);box-shadow:0 0 0 .5px rgba(120,50,0,.14);font:600 13px var(--font-sans);color:var(--text-primary);cursor:pointer;transition:background .25s,transform .25s var(--ease);}
.fv-chip:hover{background:#fff;transform:translateY(-1px);}
.fv-talked .fv-chips,.fv:not(.fv-ready) .fv-chips{opacity:0;max-height:0;padding:0;pointer-events:none;overflow:hidden;}
.fv-ctrl{display:flex;align-items:center;gap:14px;padding-top:14px;transform:translateY(16px);opacity:0;transition:transform .6s var(--ease) .15s,opacity .6s var(--ease) .15s;}
.fv.on .fv-ctrl{transform:none;opacity:1;}
.fv-btn{width:54px;height:54px;border-radius:50%;border:0;display:grid;place-items:center;cursor:pointer;background:rgba(255,255,255,.75);color:var(--text-primary);box-shadow:0 0 0 .5px rgba(120,50,0,.14),0 10px 24px -14px rgba(90,30,0,.4);transition:background .3s,color .3s,transform .3s var(--ease);}
.fv-btn:hover{background:#fff;transform:translateY(-2px);}
.fv-btn svg{width:22px;height:22px;}
.fv-mute .sl{opacity:0;transition:opacity .2s;}
.fv-mute[aria-pressed="true"]{background:#2A2E31;color:#fff;}
.fv-mute[aria-pressed="true"] .sl{opacity:1;}
.fv-end{height:58px;display:flex;align-items:center;gap:10px;padding:0 24px 0 20px;border-radius:999px;border:0;cursor:pointer;color:#fff;background:#2A2E31;font:650 15px var(--font-sans);box-shadow:0 14px 30px -14px rgba(0,0,0,.5);transition:transform .3s var(--ease),background .3s;}
.fv-end:hover{transform:translateY(-2px);background:#111;}
.fv-end svg{width:24px;height:24px;}
.fv button:focus-visible{outline:2px solid var(--accent);outline-offset:3px;}
.fp-live{display:inline-flex;align-items:center;gap:6px;height:30px;padding:0 12px 0 10px;border-radius:999px;border:0;cursor:pointer;font:650 12px var(--font-sans);color:#fff;background:linear-gradient(180deg,var(--accent-btn-lt),var(--accent-btn));box-shadow:0 8px 18px -10px var(--accent-glow);white-space:nowrap;}
.fp-live i{width:6px;height:6px;border-radius:50%;background:#fff;animation:fvLive 1.6s var(--ease) infinite;}
@media (max-width:520px){
.fv-top{grid-template-columns:auto 1fr auto;}
.fv-status{justify-self:center;padding:0 10px;font-size:10px;letter-spacing:.1em;}
.fv-mode button{padding:0 9px;font-size:12px;}
.fv-stage{max-height:min(88vw,440px);}
.fv-caps{min-height:4.6em;}
.fv-btn{width:50px;height:50px;}
.fv-end{height:54px;}
}
@media (max-width:360px){.fv-mode button{padding:0 7px;font-size:11px;}.fv-status .fv-st{display:none;}}
@media (prefers-reduced-motion:reduce){.fv-bg i,.fv-orbit,.fv-status i{animation:none!important;}.fv-owl.poked,.fv-owl.oops{animation:none;}}
.fv[data-state="error"] .fv-caps,.fv[data-state="connecting"] .fv-caps{display:none;}
.fv-top{position:relative;z-index:2;}
.fv-stage{z-index:1;}
@media (max-height:620px){.fv-caps{min-height:0;}.fv-cap-f{font-size:20px;}.fv-chips{padding-top:6px;}.fv-ctrl{padding-top:8px;}.fv-btn{width:46px;height:46px;}.fv-end{height:48px;}}
