/* Motion has a purpose: progress, acknowledgement and optional profile identity. */
.avatar[class*="effect-"]{isolation:isolate}.avatar.effect-aura{animation:profile-aura 3.8s ease-in-out infinite}.avatar.effect-orbit:before,.avatar.effect-shimmer:before{content:'';position:absolute;inset:-4px;border-radius:inherit;padding:2px;background:conic-gradient(from 0deg,transparent 25%,var(--accent,#b9a6ff),transparent 65%);mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);mask-composite:exclude;pointer-events:none;animation:profile-orbit 5s linear infinite}.avatar.effect-shimmer:before{background:linear-gradient(120deg,transparent 20%,#fff9 45%,var(--accent,#b9a6ff) 55%,transparent 80%);background-size:250% 250%;animation:profile-shimmer 4s ease-in-out infinite}.avatar:not(.large)[class*="effect-"]{animation-play-state:paused}.avatar:not(.large):before{animation-play-state:paused}button:hover>.avatar:before,button:hover .avatar:before{animation-play-state:running}.avatar-status{position:absolute;right:-5px;bottom:-3px;display:flex;align-items:center;justify-content:center;min-width:21px;height:21px;padding:2px;background:var(--panel,#13141f);border:2px solid var(--panel);border-radius:50%;font-size:12px;line-height:1;z-index:3;box-shadow:0 2px 8px #0002}.avatar.large>.avatar-status{width:29px;height:29px;font-size:17px;right:-3px;bottom:-2px}.message-avatar .avatar-status{display:none}
@keyframes profile-aura{0%,100%{box-shadow:0 0 0 3px var(--soft-accent),0 0 15px var(--soft-accent)}50%{box-shadow:0 0 0 7px var(--soft-accent),0 0 35px color-mix(in srgb,var(--accent) 22%,transparent)}}
@keyframes profile-orbit{to{transform:rotate(360deg)}}@keyframes profile-shimmer{0%,100%{background-position:0 50%}50%{background-position:100% 50%}}
.profile-personality{padding:23px 0 7px;border-top:1px solid var(--line);margin-top:26px}.profile-personality h3{font-size:.9375rem;margin:0 0 8px;font-weight:600}.profile-personality>p{font-size:.75rem;color:var(--muted);line-height:1.8;margin:0 0 22px}.profile-effects{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:0 0 25px}.effect-option{display:flex;align-items:center;flex-direction:column;gap:15px;min-width:0;padding:23px 9px 15px;background:var(--panel);border:1px solid var(--line);border-radius:14px;color:var(--text);transition:background .2s,border-color .2s,transform .2s}.effect-option:hover{transform:translateY(-2px);border-color:var(--edge)}.effect-option.selected{background:var(--soft-accent);border-color:var(--accent)}.effect-option>.avatar.large{width:51px!important;height:51px!important;font-size:1.4rem!important}.effect-option b{font-size:.6875rem;font-weight:600}.effect-option .avatar-status{display:none}.profile-personality select{width:100%;max-width:300px;padding:12px 14px;background:var(--panel);color:var(--text);border:1px solid var(--edge);border-radius:10px;font:inherit;font-size:.8125rem}
.identity-card{animation:profile-reveal .32s cubic-bezier(.2,.7,.3,1)}@keyframes profile-reveal{from{opacity:0;transform:translateY(10px) scale(.975)}to{opacity:1;transform:none}}dialog[open]{animation:dialog-enter .2s ease-out}dialog::backdrop{animation:backdrop-enter .2s ease-out}@keyframes dialog-enter{from{opacity:0;transform:translateY(12px) scale(.98)}to{opacity:1;transform:none}}@keyframes backdrop-enter{from{opacity:0}to{opacity:1}}
.workspace .message{animation:none}.workspace .message-arriving{animation:message-arrive .28s cubic-bezier(.18,.72,.3,1)}.workspace .message-arriving.mine{transform-origin:bottom right}.workspace .message-arriving:not(.mine){transform-origin:bottom left}@keyframes message-arrive{from{opacity:0;transform:translateY(13px) scale(.975)}to{opacity:1;transform:none}}.reaction{transition:transform .15s,background .15s}.reaction:active{transform:scale(.87)}.send-button{position:relative;overflow:hidden;transition:transform .16s,filter .16s}.send-button:not(:disabled):active{transform:scale(.9)}.send-button.sending>.icon{opacity:0}.send-button.sending:after{content:'';position:absolute;left:calc(50% - 9px);top:calc(50% - 9px);height:18px;width:18px;border-radius:50%;border:2px solid currentColor;border-right-color:transparent;animation:transfer-spin .8s linear infinite}.send-button.sent>.icon{animation:send-flight .45s ease-out}@keyframes send-flight{0%{transform:translate(0,0);opacity:1}45%{transform:translate(18px,-18px);opacity:0}46%{transform:translate(-14px,14px);opacity:0}100%{transform:none;opacity:1}}@keyframes transfer-spin{to{transform:rotate(360deg)}}
#transfers{position:fixed;right:25px;bottom:25px;width:340px;max-width:calc(100vw - 30px);z-index:90;background:var(--panel);border:1px solid var(--edge);border-radius:17px;box-shadow:0 15px 55px #0005;overflow:hidden;animation:dialog-enter .22s ease-out}#transfers>header{display:flex;justify-content:space-between;align-items:center;padding:11px 13px 11px 18px;border-bottom:1px solid var(--line)}#transfers>header>span{display:flex;gap:9px;align-items:center}#transfers header .icon{width:17px;height:17px;color:var(--accent)}#transfers header b{font-size:.8125rem;font-weight:600}#transfers header small{padding:2px 6px;border-radius:5px;background:var(--soft-accent);color:var(--accent);font-size:.6875rem}#transfers .icon-btn{height:28px;width:28px;min-width:28px;border:0;background:transparent}.transfer-list{max-height:360px;overflow:auto}.transfer-item{padding:15px 18px;border-bottom:1px solid var(--line)}.transfer-item:last-child{border:0}.transfer-title{display:flex;align-items:center;gap:9px}.transfer-title>b{flex:1;min-width:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;font-size:.75rem;font-weight:600}.transfer-title>.icon{width:16px;height:16px;color:var(--muted);flex-shrink:0}.transfer-item p{font-size:.6875rem;line-height:1.7;color:var(--muted);margin:8px 0 9px;overflow-wrap:anywhere}.transfer-item.done p{color:var(--accent)}.transfer-item.error p{color:#e78596}.transfer-item>small{display:block;font-size:.625rem;color:var(--muted);line-height:1.7}.transfer-item progress{display:block;width:100%;height:5px;appearance:none;border:0;border-radius:4px;background:var(--panel2);accent-color:var(--accent);overflow:hidden}.transfer-item progress::-webkit-progress-bar{background:var(--panel2)}.transfer-item progress::-webkit-progress-value{background:var(--accent);transition:width .12s linear}.transfer-item progress:indeterminate{background:linear-gradient(90deg,var(--panel2) 20%,var(--accent) 50%,var(--panel2) 80%);background-size:250% 100%;animation:transfer-wait 1.5s linear infinite}.transfer-item .text-btn{font-size:.6875rem;margin-top:5px}@keyframes transfer-wait{to{background-position:250% 0}}
[data-motion=off] *,[data-motion=off] *:before,[data-motion=off] *:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}[data-motion=off] .effect-aura{box-shadow:0 0 0 3px var(--soft-accent)}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
@media(max-width:780px){.profile-effects{gap:8px}.effect-option{padding:20px 4px 13px;gap:14px;border-radius:11px}.effect-option>.avatar.large{width:42px!important;height:42px!important;font-size:1.2rem!important}.effect-option b{font-size:.625rem}.profile-personality>p{font-size:.75rem}.profile-personality select{font-size:1rem;max-width:none}#transfers{right:12px;bottom:calc(85px + env(safe-area-inset-bottom));width:315px;max-width:calc(100vw - 24px)}.transfer-list{max-height:230px}.transfer-item{padding:12px 15px}#transfers>header{padding:8px 10px 8px 15px}.workspace.chat-open~#transfers{bottom:90px}}
/* Conversation and appearance transitions */
.expression-tabs{display:flex;gap:8px;overflow-x:auto;padding-bottom:16px}.expression-tabs .btn{white-space:nowrap;font-size:.75rem;padding:9px 12px}.expression-tabs .selected{background:var(--accent,#b9a6ff);color:#181323}
#expression-grid{max-height:55dvh;overflow:auto}.character-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;padding:5px}.character-grid article{text-align:center;border:1px solid var(--line,#39333f);border-radius:18px;padding:8px 5px 12px}.character-pick{display:block;border:0;background:none;color:inherit;width:100%;cursor:pointer}.character-pick svg{display:block;width:100%;height:94px;transition:transform .25s}.character-pick:hover svg{transform:rotate(-8deg) scale(1.12)}.character-pick b{font-size:.75rem}.character-grid .text-btn{font-size:.65rem;margin-top:9px}.emoji-picker.expanded{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:6px}.emoji-picker.expanded button{width:auto;min-width:0}
.custom-emoji{display:inline-block;width:2.2em;height:2.2em;vertical-align:middle}.custom-emoji svg{width:100%;height:100%;overflow:visible;animation:linkfy-bob 3s ease-in-out infinite}.custom-emoji:nth-of-type(2n) svg{animation-delay:-1.5s}
@keyframes linkfy-bob{0%,100%{transform:translateY(0) rotate(-4deg)}50%{transform:translateY(-3px) rotate(4deg)}}
[data-bubbles=square] .workspace .bubble{border-radius:6px}
[data-bubbles=outline] .workspace .bubble{background:transparent;border:1px solid var(--accent,#b9a6ff)}
[data-chat-width=wide] .workspace .message{max-width:92%}
.message-area{animation:panel-reveal .4s cubic-bezier(.2,.8,.2,1) both}
@keyframes panel-reveal{from{opacity:0;transform:translateY(12px) scale(.988)}to{opacity:1;transform:none}}
@keyframes row-reveal{from{opacity:0;transform:translateX(-12px)}to{opacity:1;transform:none}}
@keyframes cover-drift{0%,100%{background-position:0% 50%}50%{background-position:100% 50%}}
.chat-header,.composer-shell,.settings-content,.profile-top,.conversation-search:not(.hidden){animation:panel-reveal .35s cubic-bezier(.2,.8,.2,1) both}
.chat-item{animation:row-reveal .3s ease both;transition:background .25s,transform .25s,box-shadow .25s}
.chat-item:nth-of-type(2n){animation-delay:25ms}.chat-item:nth-of-type(3n){animation-delay:50ms}
.chat-item:hover{transform:translateX(3px)}
.filter-tab,.modal-action,.preset-card,.btn,.icon-btn{transition:background .25s,color .25s,transform .25s,box-shadow .25s,border-color .25s}
.modal-action:active,.icon-btn:active,.filter-tab:active{transform:scale(.96)}
.workspace,.main-pane,.chat-sidebar,.bubble{transition:background-color .45s,color .35s,border-color .35s}
.preset-card:hover{transform:translateY(-5px)}
.preset-card.sakura .preset-art{background:linear-gradient(135deg,#211323,#9f316d)}
.preset-card.citrus .preset-art{background:linear-gradient(135deg,#121d19,#607b2f)}
.preset-card.sunset .preset-art{background:linear-gradient(135deg,#291325,#ad6138)}
.preset-card.ocean .preset-art{background:linear-gradient(135deg,#e4f4ff,#80b8f0)}
.preset-card.rose .preset-art{background:linear-gradient(135deg,#fff0f7,#e59cc4)}
.preset-card.paper .preset-art{background:linear-gradient(135deg,#fff8e9,#e7c59f)}
.preset-art{background-size:180% 180%!important;animation:cover-drift 10s ease infinite}
.forward-list{max-height:55vh;overflow:auto}.forward-list .modal-action{display:flex;gap:14px;align-items:center}
#main-pane.drop-ready{outline:2px dashed var(--accent,#aa8cff);outline-offset:-10px;position:relative}
#main-pane.drop-ready:after{content:'Отпустите файл — добавим его к сообщению';position:absolute;inset:20%;display:grid;place-items:center;text-align:center;padding:25px;border-radius:24px;background:var(--panel,#191923);box-shadow:0 20px 90px #0008;pointer-events:none;z-index:20}
.filter-tabs{overflow-x:auto}.filter-tab{flex-shrink:0}
@media(max-width:600px){.composer{gap:4px}.composer>.icon-btn{width:34px;min-width:34px}.preset-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}}
