/* 2026-10-24 「想看看你」 (call-see.js): Ian may ask to see her during a call;
   a small glass slip rises in just above the typing row (same flex order,
   earlier in the DOM). Only her tap opens the camera.
   A video call he places shows a camera on the chat card and the ring banner. */
.ian-call-see{
  order:6;width:100%;margin-top:16px;
  display:none;align-items:center;gap:10px;padding:10px 10px 10px 16px;
  border-radius:22px;border:1px solid color-mix(in srgb,#fff 46%,transparent);
  background-color:color-mix(in srgb,var(--card) 74%,transparent);
  background-image:linear-gradient(to bottom,color-mix(in srgb,#fff 36%,transparent),transparent 70%);
  box-shadow:inset 0 1px 0 color-mix(in srgb,#fff 66%,transparent),0 14px 34px color-mix(in srgb,var(--text) 14%,transparent);
  -webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);
  transform:translateY(10px);opacity:0;
  transition:opacity .28s ease,transform .32s cubic-bezier(.2,.8,.2,1);
}
.ian-call-see.show{display:flex}
.ian-call-see.in{opacity:1;transform:none}
.ian-call-see-text{flex:1;min-width:0;font:500 14px/1.35 var(--ui-font);color:var(--text)}
.ian-call-see-text small{display:block;margin-top:2px;font:11px/1.3 var(--ui-font);letter-spacing:.04em;color:var(--textL)}
.ian-call-see button{
  flex:none;border:0;border-radius:999px;padding:9px 13px;cursor:pointer;
  font:600 13px/1 var(--ui-font);display:inline-flex;align-items:center;gap:6px;
}
.ian-call-see .no{background:color-mix(in srgb,var(--textL) 12%,transparent);color:var(--text)}
.ian-call-see .yes{background:var(--accent);color:#fff}
/* while he is asking, the camera button breathes once in a while */
.ian-call-overlay.see-asked:not(.video-on) .ian-call-control.video{animation:ianCallSeeNudge 2.6s ease-in-out infinite}
@keyframes ianCallSeeNudge{0%,70%,100%{transform:scale(1)}80%{transform:scale(1.07)}90%{transform:scale(.98)}}
@media(prefers-reduced-motion:reduce){
  .ian-call-see{transition:none}
  .ian-call-overlay.see-asked .ian-call-control.video{animation:none}
}
body:is([data-theme="fjord"],[data-theme="snow"]) .ian-call-see .yes{
  background:transparent;color:var(--text);border:1px solid var(--mono-line-strong);
}

/* video call card + ring banner */
.chat-call-card.video .chat-call-card-icon svg{display:block}
.ian-incoming-call.video .ian-incoming-title:after{
  content:'';display:inline-block;width:17px;height:17px;margin-left:7px;vertical-align:-2px;
  background:currentColor;opacity:.72;
  -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.9' stroke-linejoin='round'%3E%3Crect x='2.5' y='6' width='13' height='12' rx='2.5'/%3E%3Cpath d='M15.5 10.2 21.5 7v10l-6-3.2z'/%3E%3C/svg%3E") center/contain no-repeat;
          mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.9' stroke-linejoin='round'%3E%3Crect x='2.5' y='6' width='13' height='12' rx='2.5'/%3E%3Cpath d='M15.5 10.2 21.5 7v10l-6-3.2z'/%3E%3C/svg%3E") center/contain no-repeat;
}

/* 10-24: in the iOS shell the WebView camera stops the native call audio;
   no camera there until a new shell is installed (call-see.js). */
.ian-call-overlay.native-audio .ian-call-control.video{display:none}
.ian-call-overlay.native-audio .ian-call-controls{gap:38px}
