.vozstage { display: flex; flex-direction: column; align-items: center; gap: 20px; }
.vozphone { width: min(100%, 390px); }
.vaviso { margin: 0; max-width: 46ch; text-align: center; font-size: 13px; line-height: 1.6; letter-spacing: .02em; color: var(--ink-dim); text-wrap: balance; }
.vsay { margin-top: 30px; padding-top: 22px; border-top: 1px solid var(--line); max-width: 50ch; }
.vsay .vl { margin: 0 0 14px; font-family: var(--mono, ui-monospace, monospace); font-size: 12.5px; letter-spacing: .12em; text-transform: uppercase; color: var(--ink-dim); }
.vsay ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; }
.vsay li { font-family: var(--serif); font-style: italic; font-size: clamp(19px, 1.7vw, 23px); line-height: 1.3; color: var(--ink); text-wrap: pretty; }
.call {
  --c-bg1: var(--call-1, #2a5a6b); --c-bg2: var(--call-2, #163341); --c-bg3: var(--call-3, #0b1a21);
  --c-ring1: var(--call-ring-1, #ebcb93); --c-ring2: var(--call-ring-2, #d2a35b); --c-fg: 244, 239, 231;
  position: absolute; inset: 0; display: flex; flex-direction: column; color: rgb(var(--c-fg)); font-family: var(--ios);
  background: radial-gradient(130% 58% at 50% -6%, var(--c-bg1) 0%, var(--c-bg2) 46%, var(--c-bg3) 100%);
}
.call .ctop { flex: none; padding: 54px 20px 8px; text-align: center; }
.call .cav {
  --lvl: 0; position: relative; width: 92px; height: 92px; margin: 0 auto 14px; border-radius: 50%; padding: 3px;
  background: conic-gradient(from 200deg, var(--c-ring1), var(--c-ring2), var(--c-ring1));
  box-shadow: 0 0 0 calc(5px + var(--lvl) * 22px) rgba(235, 203, 147, calc(.10 + var(--lvl) * .18)), 0 14px 30px -10px rgba(0, 0, 0, .55);
  transition: box-shadow .12s linear;
}
.call .cav img { width: 100%; height: 100%; border-radius: 50%; object-fit: cover; border: 3px solid var(--c-bg2); }
.call .cav::before { content: ""; position: absolute; inset: -10px; border-radius: 50%; border: 1.5px solid rgba(235, 203, 147, .55); opacity: 0; pointer-events: none; }
.call[data-state="speaking"] .cav::before { animation: callring 1.9s var(--ease) infinite; }
.call[data-state="listening"] .cav::before { animation: callring 2.8s var(--ease) infinite; border-color: rgba(238, 246, 248, .45); }
@keyframes callring { 0% { transform: scale(.94); opacity: .7; } 100% { transform: scale(1.42); opacity: 0; } }
.call .cname { font-family: var(--serif); font-weight: 500; font-size: 31px; line-height: 1.1; letter-spacing: .01em; }
.call .cstate { margin-top: 9px; min-height: 2.9em; font-family: var(--mono, ui-monospace, monospace); font-size: 13px; line-height: 1.55; letter-spacing: .06em; text-transform: uppercase; color: rgba(var(--c-fg), .86); text-wrap: balance; }
.call .cap {
  flex: 1; min-height: 0; overflow-y: auto; padding: 14px 20px 8px; display: flex; flex-direction: column; justify-content: flex-end; gap: 12px; scrollbar-width: none;
  -webkit-mask-image: linear-gradient(180deg, transparent 0, #000 56px); mask-image: linear-gradient(180deg, transparent 0, #000 56px);
}
.call .cap::-webkit-scrollbar { display: none; }
.call .cap p { flex: none; margin: 0; font-size: 17px; line-height: 1.42; animation: pop .34s var(--ease-out); text-wrap: balance; }
.call .cap .ai { color: #fff; }
.call .cap .me { color: rgba(var(--c-fg), .82); font-size: 16.5px; text-align: right; }
.call .cres {
  flex: none; margin: 6px 20px 10px; padding: 14px 16px 13px; border-radius: 18px; color: #1a1612;
  background: linear-gradient(180deg, #fffdfa, #f6f1e8); border: 1px solid #e5ddcf;
  box-shadow: inset 0 1px 0 #fff, 0 1px 2px rgba(0, 0, 0, .25), 0 18px 32px -14px rgba(0, 0, 0, .65); animation: callrise .5s var(--ease-out) both;
}
.call .cres[hidden] { display: none; }
@keyframes callrise { from { opacity: 0; transform: translateY(14px) scale(.98); } to { opacity: 1; transform: none; } }
.call .cres .rh { display: flex; align-items: center; gap: 10px; margin-bottom: 9px; font: 700 15.5px/1.2 var(--ios); color: #1f7a4f; }
.call .cres .rh i { flex: none; width: 24px; height: 24px; border-radius: 50%; display: grid; place-items: center; color: #fff; background: linear-gradient(180deg, #4a9a73, #2f7a56); box-shadow: inset 0 1px 0 rgba(255, 255, 255, .35), 0 1px 2px rgba(20, 70, 45, .35); }
.call .cres .rh svg { width: 14px; height: 14px; }
.call .cres.team .rh { color: var(--c-bg2); }
.call .cres.team .rh i { background: linear-gradient(180deg, var(--c-bg1), var(--c-bg2)); box-shadow: inset 0 1px 0 rgba(255, 255, 255, .3), 0 1px 2px rgba(8, 30, 40, .35); }
.call .cres dl { margin: 0; display: grid; grid-template-columns: auto 1fr; gap: 4px 16px; font-size: 15.5px; line-height: 1.4; }
.call .cres dt { color: #62594f; }
.call .cres dd { margin: 0; text-align: right; font-weight: 600; color: #1a1612; overflow-wrap: anywhere; }
.call .cbtns { flex: none; display: grid; gap: 10px; padding: 8px 20px 22px; }
.call .cbtns .btn { width: 100%; min-height: 50px; font-size: 16px; }
.call .cbtns .btn[hidden] { display: none; }
.call .cbtns .btn.ghost {
  --b1: rgba(255, 255, 255, .2); --b2: rgba(255, 255, 255, .08); --bd: rgba(255, 255, 255, .34); --fg: #fff;
  -webkit-backdrop-filter: none; backdrop-filter: none;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .28), 0 1px 2px rgba(0, 0, 0, .25), 0 8px 18px -8px rgba(0, 0, 0, .5);
}
.call .cbtns .btn.ghost:hover { --b1: rgba(255, 255, 255, .26); --b2: rgba(255, 255, 255, .11); box-shadow: inset 0 1px 0 rgba(255, 255, 255, .32), 0 2px 4px rgba(0, 0, 0, .25), 0 12px 22px -8px rgba(0, 0, 0, .55); }
.call .cbtns .btn.ghost:active { box-shadow: inset 0 2px 4px rgba(0, 0, 0, .4), 0 1px 1px rgba(0, 0, 0, .2); }
.call .cbtns .btn.ghost:disabled { opacity: .45; box-shadow: none; }
.call .btn:focus-visible { outline: 2px solid #fff; outline-offset: 2px; }
.call[data-state="idle"] .cap:empty { flex: 0 0 0; padding: 0; min-height: 0; }
.call[data-state="idle"]:has(.cap:empty) .ctop { margin-block: auto; padding: 0 20px 56px; }
.call[data-state="idle"]:has(.cap:empty) .cav { width: 112px; height: 112px; }
.call[data-state="idle"]:has(.cap:empty) .cname { font-size: 36px; }
@media (max-width: 759px) {
  .vozstage { align-self: stretch; }
  .vozstage .vozphone { width: 100%; }
  .vozphone .call .ctop { padding-top: 26px; }
  .vozphone .call .cav { width: 78px; height: 78px; }
  .vozphone .call[data-state="idle"]:has(.cap:empty) .cav { width: 96px; height: 96px; }
}
@media (prefers-reduced-motion: reduce) { .call[data-state] .cav::before { animation: none; } .call .cav { transition: none; } .call .cres { animation: none; } }
html.ed .vsay { border-top-color: rgba(var(--cream-rgb), .14); }
html.ed .vsay .vl { color: var(--amber); }
html.ed .vsay li { color: var(--cream); }
html.ed .vaviso { color: rgba(var(--cream-rgb), .72); }
html.ed #voz .vozstage::before { content: none; }
