/* Voices theme 7.17: the helper window */
.v-as-dock{position:fixed;right:max(16px,env(safe-area-inset-right));bottom:max(18px,env(safe-area-inset-bottom));z-index:1150;display:flex;flex-direction:column;align-items:flex-end;gap:10px;pointer-events:none}
.v-as-dock[hidden]{display:none}
.v-as-dock>*{pointer-events:auto}
.v-as-open{display:inline-flex;align-items:center;gap:8px;min-height:60px;padding:6px 22px 6px 8px;border:0;border-radius:999px;background:var(--v-navy);color:var(--v-white);font-family:var(--font-head);font-weight:800;font-size:17px;cursor:pointer;box-shadow:0 12px 34px rgba(8,16,36,.32)}
.v-as-open:hover{background:var(--v-navy-hover)}
.v-as-open:focus-visible{outline:3px solid var(--v-gold);outline-offset:3px}
.v-as-tease{position:relative;display:flex;align-items:flex-start;gap:4px;max-width:270px;margin:0;padding:4px 4px 4px 0;border-radius:18px 18px 6px 18px;background:var(--v-bg);border:1.5px solid var(--v-rule);box-shadow:0 14px 40px rgba(8,16,36,.2)}
.v-as-tease[hidden]{display:none}
.v-as-tease-t{flex:1;padding:10px 6px 10px 14px;border:0;background:transparent;color:var(--v-ink);font:inherit;font-size:15px;line-height:1.4;text-align:left;cursor:pointer;border-radius:14px}
.v-as-tease-x{flex:none;width:36px;height:36px;border:0;border-radius:50%;background:transparent;color:var(--v-muted);font-size:22px;line-height:1;cursor:pointer}
.v-as-tease-t:focus-visible,.v-as-tease-x:focus-visible{outline:3px solid var(--v-focus);outline-offset:1px}

/* the character */
.v-as-face{display:block;flex:none;overflow:visible}
.v-as-f-body{fill:var(--v-gold)}
.v-as-f-band{stroke:var(--v-white)}
.v-as-f-cup{fill:var(--v-white)}
.v-as-f-eye{fill:#fff}
.v-as-f-pupils{fill:#101828;transform:translate(var(--ex,0),var(--ey,0));transition:transform .12s ease-out}
.v-as-f-mouth rect{fill:#101828;transform-box:fill-box;transform-origin:50% 50%}
.v-as-f-eyes{transform-box:fill-box;transform-origin:50% 50%}
.v-as-ava{flex:none;display:grid;place-items:center;width:52px;height:52px;border-radius:50%;background:rgba(255,255,255,.12)}
.v-as-who{flex:1 1 auto;min-width:0}
@media (prefers-reduced-motion:no-preference){
  .v-as-open .v-as-face{animation:v-as-bob 3.6s ease-in-out infinite}
  .v-as-f-eyes{animation:v-as-blink 5.2s infinite}
  .v-as-open:hover .v-as-f-mouth rect,.v-as.is-talking .v-as-f-mouth rect{animation:v-as-talk .5s ease-in-out infinite}
  .v-as-open:hover .v-as-f-mouth rect:nth-child(2),.v-as.is-talking .v-as-f-mouth rect:nth-child(2){animation-delay:.12s}
  .v-as-open:hover .v-as-f-mouth rect:nth-child(3),.v-as.is-talking .v-as-f-mouth rect:nth-child(3){animation-delay:.24s}
  .v-as.is-waving .v-as-ava .v-as-face{animation:v-as-wave 1.2s ease-in-out}
  .v-as-tease:not([hidden]){animation:v-as-pop .45s cubic-bezier(.2,1.5,.4,1) both;transform-origin:100% 100%}
}
@keyframes v-as-bob{0%,100%{transform:translateY(0) rotate(0)}50%{transform:translateY(-3px) rotate(-4deg)}}
@keyframes v-as-blink{0%,92%,100%{transform:scaleY(1)}95%{transform:scaleY(.1)}}
@keyframes v-as-talk{0%,100%{transform:scaleY(.5)}50%{transform:scaleY(1.5)}}
@keyframes v-as-wave{0%,100%{transform:rotate(0)}20%{transform:rotate(-16deg)}45%{transform:rotate(14deg)}70%{transform:rotate(-8deg)}}
@keyframes v-as-pop{from{opacity:0;transform:scale(.6)}to{opacity:1;transform:scale(1)}}
.v-as{position:fixed;right:max(16px,env(safe-area-inset-right));bottom:max(18px,env(safe-area-inset-bottom));z-index:1160;display:flex;flex-direction:column;width:min(420px,calc(100vw - 24px));height:min(640px,calc(100dvh - 110px));border-radius:24px;background:var(--v-bg);color:var(--v-ink);box-shadow:0 30px 80px rgba(8,16,36,.38);overflow:hidden}
.v-as[hidden]{display:none}
.v-as-top{display:flex;align-items:center;gap:12px;padding:14px 14px 14px 16px;background:var(--v-navy);color:var(--v-white)}
.v-as-top h2{margin:0;font-family:var(--font-head);font-weight:800;font-size:19px;letter-spacing:-.01em;color:inherit}
.v-as-top p{margin:2px 0 0;font-size:13px;color:var(--v-night-soft)}
.v-as-x{flex:none;display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;border:0;border-radius:50%;background:transparent;color:inherit;cursor:pointer}
.v-as-x:hover{background:rgba(255,255,255,.14)}
.v-as-x:focus-visible{outline:3px solid var(--v-gold);outline-offset:1px}
.v-as-log{flex:1 1 auto;min-height:0;overflow-y:auto;display:flex;flex-direction:column;gap:10px;padding:16px;background:var(--v-paper);overscroll-behavior:contain}
.v-as-log:focus-visible{outline:3px solid var(--v-focus);outline-offset:-3px}
.v-as-m{max-width:92%;padding:12px 14px;border-radius:16px;font-size:15.5px;line-height:1.5;overflow-wrap:anywhere}
.v-as-m p{margin:0}
.v-as-m p+p,.v-as-m .v-as-t+p{margin-top:6px}
.v-as-m--bot{align-self:flex-start;background:var(--v-bg);border:1px solid var(--v-rule);border-bottom-left-radius:6px}
.v-as-m--me{align-self:flex-end;background:var(--v-navy);color:var(--v-white);border-bottom-right-radius:6px}
.v-as-t{display:block;font-family:var(--font-head);font-weight:700;color:var(--v-navy)}
.v-as-l{font-size:13px;font-weight:700;color:var(--v-muted);margin:0 0 8px!important}
.v-as-m--list{display:grid;gap:6px;width:92%}
.v-as-q{display:block;width:100%;min-height:44px;padding:9px 12px;border:1.5px solid var(--v-rule);border-radius:12px;background:var(--v-bg);color:var(--v-navy);font:inherit;font-weight:600;font-size:15px;line-height:1.35;text-align:left;cursor:pointer}
.v-as-q:hover{border-color:var(--v-navy)}
.v-as-q:focus-visible{outline:3px solid var(--v-focus);outline-offset:2px}
.v-as-links{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}
.v-as-links--col{flex-direction:column;margin-top:0}
.v-as-links a{display:inline-flex;align-items:center;min-height:40px;padding:6px 14px;border-radius:999px;background:var(--v-navy-tint);color:var(--v-navy);font-weight:700;font-size:14px;text-decoration:none}
.v-as-links--col a{border-radius:12px}
.v-as-links a:hover{background:var(--v-fog)}
.v-as-links a:focus-visible{outline:3px solid var(--v-focus);outline-offset:2px}
.v-as-note{margin-top:10px!important;padding-top:8px;border-top:1px solid var(--v-rule);font-size:12.5px;line-height:1.45;color:var(--v-muted)}
.v-as-topics{flex:none;display:flex;gap:6px;overflow-x:auto;padding:10px 12px;border-top:1px solid var(--v-rule);background:var(--v-bg);scrollbar-width:thin}
.v-as-topics button{flex:none;min-height:40px;padding:0 14px;border:1.5px solid var(--v-rule);border-radius:999px;background:var(--v-bg);color:var(--v-navy);font:inherit;font-weight:700;font-size:14px;white-space:nowrap;cursor:pointer}
.v-as-topics button:hover{border-color:var(--v-navy)}
.v-as-topics button:focus-visible{outline:3px solid var(--v-focus);outline-offset:-2px}
.v-as-form{flex:none;display:flex;gap:8px;padding:10px 12px 12px;background:var(--v-bg)}
.v-as-form input{flex:1 1 auto;min-width:0;min-height:48px;padding:0 16px;border:1.5px solid var(--v-muted);border-radius:999px;font:inherit;font-size:16px;color:var(--v-ink);background:var(--v-bg)}
.v-as-form input:focus{outline:3px solid var(--v-focus);outline-offset:2px}
.v-as-form button{flex:none;display:inline-flex;align-items:center;justify-content:center;width:48px;height:48px;border:0;border-radius:50%;background:var(--v-gold);color:var(--v-on-gold);cursor:pointer}
.v-as-form button:hover{background:var(--v-gold-hover)}
.v-as-form button:focus-visible{outline:3px solid var(--v-navy);outline-offset:2px}
/* typing dots and small effects */
.v-as-typing{display:inline-flex;gap:5px;align-items:center;min-height:44px;padding:12px 16px}
.v-as-typing i{width:8px;height:8px;border-radius:50%;background:var(--v-muted)}
.v-as-fx{position:absolute;inset:0;overflow:hidden;pointer-events:none;z-index:3}
.v-as-fx i{position:absolute;bottom:-24px;font-style:normal;line-height:1;opacity:0}
.v-as-fx-hearts{font-size:22px;color:var(--v-gold-deep)}
.v-as-fx-hearts.is-b{color:var(--v-navy)}
.v-as-fx-flag{width:12px;height:12px;border-radius:3px;background:#0057B7}
.v-as-fx-flag.is-b{background:#FFD700}
@media (prefers-reduced-motion:no-preference){
  .v-as-typing i{animation:v-as-dot 1s ease-in-out infinite}
  .v-as-typing i:nth-child(2){animation-delay:.15s}.v-as-typing i:nth-child(3){animation-delay:.3s}
  .v-as-fx i{animation:v-as-rise 2s ease-out both}
}
@keyframes v-as-dot{0%,60%,100%{transform:translateY(0);opacity:.45}30%{transform:translateY(-5px);opacity:1}}
@keyframes v-as-rise{0%{opacity:0;transform:translateY(0) scale(var(--s,1)) rotate(0)}15%{opacity:1}100%{opacity:0;transform:translateY(-460px) scale(var(--s,1)) rotate(var(--r,0deg))}}
@media (max-width:600px){
  .v-as-dock{bottom:max(14px,env(safe-area-inset-bottom));right:12px}
  .v-as-dock.is-up{bottom:calc(96px + env(safe-area-inset-bottom))}
  .v-as-open{min-height:52px;padding:4px}
  .v-as-open .v-as-face{width:44px;height:44px}
  .v-as-open span{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
  .v-as-tease{max-width:230px}
  .v-as{right:8px;left:8px;bottom:8px;width:auto;height:min(640px,calc(100dvh - 16px))}
}
@media (prefers-reduced-motion:no-preference){.v-as:not([hidden]){animation:v-as-in .22s ease-out both}.v-as-m{animation:v-as-in .2s ease-out both}}
@keyframes v-as-in{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
