.chat-screen .composer{
  transition:margin-right .3s cubic-bezier(.22,.8,.25,1),padding-right .3s cubic-bezier(.22,.8,.25,1);
}
.chat-screen .composer.is-writing{
  margin-right:calc(-10cqw - 6px);
  padding-right:calc(10cqw + 13px);
}
.chat-screen .composer .composer-gift{
  width:29px;flex:0 0 29px;transform-origin:center;
  transition:margin-left .3s cubic-bezier(.22,.8,.25,1),opacity .22s,transform .3s cubic-bezier(.22,.8,.25,1);
}
.chat-screen .composer.is-writing .composer-gift{
  margin-left:-33px;opacity:0;transform:scale(.25);pointer-events:none;
}
.chat-screen .composer-wrap>.send-button{
  transform-origin:center;
  transition:transform .2s cubic-bezier(.23,1,.32,1),background-color .15s,color .15s,box-shadow .15s;
}
.chat-screen .composer-wrap>.send-button.has-text{
  transform:scale(.82);box-shadow:none;
}
.composer-icon-stack{display:grid;position:relative;place-items:center;flex:none;width:21px;height:21px;pointer-events:none;}
.composer-icon-layer{grid-area:1/1;display:grid;place-items:center;width:100%;height:100%;}
.chat-screen .composer-wrap>.send-button,
.chat-screen .composer-wrap>.send-button.has-text{
  /* The expanded input glass overlaps this slot; keep the real button above it. */
  position:relative;z-index:1;
  background:transparent!important;box-shadow:none!important;
  backdrop-filter:none!important;-webkit-backdrop-filter:none!important;
  transform:none;transition:none;
}
/* Sending disables repeat clicks, but must not dim the returning microphone.
   The global button:disabled opacity would jump with the network response. */
.chat-screen .composer-wrap>.send-button:disabled{opacity:1;cursor:default;}
/* Include the capsule's 3px left inset in its actual touch target. */
.chat-screen .composer-wrap>.send-button::after{
 content:'';position:absolute;inset:-4px 0 -4px -6px;pointer-events:auto;
}
.send-button .composer-icon-layer{position:relative;}
.chat-screen .composer-wrap>.send-button::before{
  content:'';position:absolute;z-index:-1;left:50%;top:50%;transform:translate(-50%,-50%);
  width:10cqw;height:10cqw;border-radius:50%;background:var(--glass);
  backdrop-filter:blur(15px);-webkit-backdrop-filter:blur(15px);
  box-shadow:inset 0 0 0 .5px #ffffff4d,0 1px 3px #0000000e;
  pointer-events:none;
  transition:width .3s cubic-bezier(.22,.8,.25,1),height .3s cubic-bezier(.22,.8,.25,1),left .3s cubic-bezier(.22,.8,.25,1),background-color .3s,box-shadow .3s;
}
.send-button .composer-icon-layer[data-icon="mic"]{color:var(--text);}
.send-button .composer-icon-layer[data-icon="send"]{color:white;}
.chat-screen .composer-wrap>.send-button.has-text::before{
  /* Original video: 58 × 48 px, a short capsule rather than a circle. */
  width:9.9cqw;height:8.2cqw;border-radius:999px;background:var(--accent);box-shadow:none;
  left:calc(50% - 3px);
}
.composer-wrap>.send-button .composer-icon-stack{width:25px;height:25px;}
.composer-wrap>.send-button .composer-icon-stack{transition:transform .3s cubic-bezier(.22,.8,.25,1);}
.composer-wrap>.send-button.has-text .composer-icon-stack{transform:translateX(-3px);}
.composer-icon-stack .telegram-input-icon{width:100%;height:100%;}
.telegram-input-icon--emoji{--input-icon:url('/assets/telegram-input/emoji.svg');--input-icon-size:24px;}
.telegram-input-icon--send{--input-icon:url('/assets/telegram-input/send.png');--input-icon-size:30px;}
.composer-wrap>.send-button .telegram-input-icon--send{width:25px;height:25px;}
.message-flight-glyphs{position:absolute;left:11px;top:6px;white-space:pre-wrap;overflow-wrap:anywhere;pointer-events:none;}
.sending-preview{pointer-events:none;}
.sending-preview .checks{opacity:.35;}
@media(prefers-reduced-motion:reduce){
 .chat-screen .composer,.chat-screen .composer-wrap>.send-button{transition:none;}
 .chat-screen .composer .composer-gift{transition:none;}
 .chat-screen .composer-wrap>.send-button::before,.composer-wrap>.send-button .composer-icon-stack{transition:none;}
}
