.friends-root{--grid-gap:18px;--friends-card-paper:color-mix(in srgb,white 68%,var(--color-primary) 32%);--friends-card-paper-deep:color-mix(in srgb,var(--imi-surface) 72%,var(--color-primary) 28%);--friends-card-border:color-mix(in srgb,var(--fg-strong) 12%,var(--color-primary) 88%);--friends-modal-paper:color-mix(in srgb,var(--imi-surface) 74%,var(--color-primary) 26%);--friends-modal-paper-deep:color-mix(in srgb,var(--imi-surface) 84%,var(--color-primary) 16%);--friends-paper-grain:color-mix(in srgb,var(--fg-strong) 3.2%,transparent);--friends-paper-highlight:rgba(255,255,255,0.34)}@media (prefers-color-scheme:dark){.friends-root{--friends-card-paper:color-mix(in srgb,var(--imi-surface) 92%,var(--foreground) 8%);--friends-card-paper-deep:color-mix(in srgb,var(--imi-surface-subtle) 92%,var(--foreground) 8%);--friends-card-border:color-mix(in srgb,var(--foreground) 18%,transparent);--friends-modal-paper:color-mix(in srgb,var(--imi-surface) 94%,var(--foreground) 6%);--friends-modal-paper-deep:color-mix(in srgb,var(--imi-surface) 90%,var(--foreground) 10%);--friends-paper-grain:color-mix(in srgb,var(--foreground) 4%,transparent);--friends-paper-highlight:rgba(255,255,255,0.06)}}.friends-shell{display:grid;gap:20px}.friends-shell>*{min-width:0}.friends-stateCard{display:grid;gap:14px;justify-items:center;text-align:center;padding:42px 24px;border:1px dashed color-mix(in srgb,var(--foreground) 14%,transparent);border-radius:22px;background:color-mix(in srgb,var(--imi-surface) 96%,var(--surface-1) 4%);color:var(--fg-muted)}.char-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(204px,1fr));column-gap:var(--grid-gap);row-gap:20px}.char-card{position:relative;padding:18px 18px 20px;text-align:left;min-height:268px;display:grid;grid-template-rows:112px auto;gap:12px;align-content:start;background:linear-gradient(180deg,var(--friends-card-paper) 0,var(--friends-card-paper-deep) 100%)!important;border-color:var(--friends-card-border)!important;box-shadow:0 18px 42px rgba(16,18,24,.095),0 6px 16px rgba(16,18,24,.06),inset 0 1px 0 rgba(255,255,255,.76)!important;transition:transform .52s cubic-bezier(.16,1,.3,1),box-shadow .62s cubic-bezier(.16,1,.3,1),border-color .3s ease!important;will-change:transform,box-shadow}.char-card:before,.modal-content:before{content:"";position:absolute;inset:0;z-index:0;pointer-events:none;border-radius:inherit;background-image:linear-gradient(180deg,var(--friends-paper-highlight) 0,rgba(255,255,255,0) 24%),radial-gradient(circle at 20% 26%,var(--friends-paper-grain) 0 .55px,transparent .8px),radial-gradient(circle at 76% 68%,var(--friends-paper-grain) 0 .5px,transparent .75px);background-size:100% 100%,12px 12px,17px 17px;opacity:.42}.char-card>*,.modal-content>*{position:relative;z-index:1}.char-card.imi-card.is-interactive:focus-visible,.char-card.imi-card.is-interactive:hover{transform:translateY(-6px)!important;box-shadow:0 24px 56px rgba(16,18,24,.14),0 8px 22px rgba(16,18,24,.08),inset 0 1px 0 rgba(255,255,255,.78)!important}.char-card.imi-card.is-interactive:active{transform:translateY(-1px)!important}.char-card__visual{display:flex;justify-content:center;gap:16px;align-items:center;height:112px}.avatar-container{position:relative;width:108px;height:108px;border-radius:28px;overflow:hidden;flex-shrink:0}.char-card__body{display:grid;grid-template-rows:34px auto;gap:11px;justify-items:stretch;align-content:start;min-width:0}.char-name{font-weight:650;font-size:16px;line-height:1.25;text-align:center;color:var(--fg-strong);align-self:end;-webkit-line-clamp:2}.char-desc,.char-name{margin:0;width:100%;display:-webkit-box;-webkit-box-orient:vertical;overflow:hidden}.char-desc{height:62px;font-size:12.5px;text-align:left;color:var(--fg-muted);line-height:1.6;-webkit-line-clamp:3}.char-profile{width:100%;margin:0;display:grid;gap:6px;align-content:center;min-height:64px}.char-profile__row{display:grid;grid-template-columns:38px minmax(0,1fr);gap:9px;align-items:center;min-width:0}.char-profile__row dd,.char-profile__row dt{margin:0;min-width:0;line-height:1.35}.char-profile__row dt{color:color-mix(in srgb,var(--fg-muted) 78%,transparent);font-size:10.5px;font-weight:700}.char-profile__row dd{color:color-mix(in srgb,var(--fg-strong) 88%,transparent);font-size:13px;font-weight:650;text-align:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.modal-overlay{position:fixed;inset:0;z-index:60;background:rgba(12,14,18,.26);backdrop-filter:blur(6px);display:flex;align-items:center;justify-content:center;padding:20px;overscroll-behavior:contain;touch-action:none;animation:friendsOverlayIn .38s ease-out both}.modal-overlay.is-closing{pointer-events:none;animation:friendsOverlayOut .3s ease-in both}.modal-content{position:relative;width:min(452px,calc(100vw - 40px));aspect-ratio:4/5;max-height:calc(100dvh - 40px);display:flex;background:linear-gradient(180deg,var(--friends-modal-paper) 0,var(--friends-modal-paper-deep) 100%);border-radius:24px;box-shadow:0 34px 96px rgba(12,14,18,.24),0 14px 36px rgba(12,14,18,.16),inset 0 1px 0 rgba(255,255,255,.72);overflow:hidden;transform-origin:center;will-change:transform,opacity;animation:friendsModalIn .62s cubic-bezier(.16,1,.3,1) both;border:1px solid color-mix(in srgb,var(--fg-strong) 22%,transparent)}.modal-overlay.is-closing .modal-content{animation:friendsModalOut .32s cubic-bezier(.7,0,.84,0) both}@keyframes friendsOverlayIn{0%{opacity:0}to{opacity:1}}@keyframes friendsOverlayOut{0%{opacity:1}to{opacity:0}}@keyframes friendsModalIn{0%{transform:translate3d(0,-36px,0) scale(.985);opacity:0}to{transform:translateZ(0) scale(1);opacity:1}}@keyframes friendsModalOut{0%{transform:translateZ(0) scale(1);opacity:1}to{transform:translate3d(0,-34px,0) scale(.985);opacity:0}}.modal-close{position:absolute;top:14px;right:14px;z-index:3}.modal-avatar{width:var(--modal-avatar-size,132px);height:var(--modal-avatar-size,132px);border-radius:var(--modal-avatar-radius,36px)}.modal-title{margin:0;min-height:36px;font-size:32px;line-height:1.1;letter-spacing:0;text-align:center;color:var(--fg-strong);overflow-wrap:anywhere}.modal-body{width:100%;height:100%;padding:34px 30px 28px;min-height:0;display:grid;grid-template-rows:210px 36px 126px 40px;align-items:center;align-content:center;gap:13px;overflow:visible;color:var(--fg)}.modal-copy{margin:0;width:100%;height:126px;max-width:348px;font-size:14px;line-height:1.6;text-align:left;color:color-mix(in srgb,var(--fg-strong) 82%,var(--fg-muted) 18%);white-space:pre-wrap;display:-webkit-box;-webkit-line-clamp:6;-webkit-box-orient:vertical;overflow:hidden}.modal-talk{--modal-avatar-size:132px;--modal-avatar-radius:36px;--modal-speech-gap:12px;--modal-speech-slot:86px;position:relative;align-items:flex-end;width:100%;height:calc(var(--modal-avatar-size) + var(--modal-speech-gap) + var(--modal-speech-slot));margin-bottom:1px}.modal-speech,.modal-talk{display:flex;justify-content:center}.modal-speech{--modal-speech-bg:color-mix(in srgb,var(--fg-strong) 3%,var(--surface-2) 97%);position:absolute;left:50%;bottom:calc(var(--modal-avatar-size) + var(--modal-speech-gap));width:min(100%,318px);margin:0;transform:translateX(-50%)}.modal-speech__body{position:relative;display:inline-block;width:max-content;min-width:74px;max-width:100%;padding:10px 13px;border-radius:var(--card-radius,14px);font-size:13px;line-height:1.6;color:color-mix(in srgb,var(--fg-strong) 70%,var(--fg-muted) 30%);background:var(--modal-speech-bg);white-space:pre-wrap;word-break:auto-phrase;overflow-wrap:break-word}.modal-speech__typed{display:block;min-height:1.6em}.modal-speech__tail{position:absolute;left:calc(50% + 10px);bottom:-7px;width:20px;height:12px;fill:var(--modal-speech-bg);transform:translateX(-50%) scaleX(-1);pointer-events:none}.modal-actions{display:flex;width:100%}.modal-actions,.modal-dialogAction{height:40px;align-items:center;justify-content:center}.modal-dialogAction{display:inline-flex;gap:8px;min-width:86px;padding:0 14px;border:0;border-radius:8px;appearance:none;-webkit-appearance:none;background:transparent;color:var(--fg-muted);cursor:pointer;font:inherit;font-size:13px;font-weight:500;line-height:1;transition:background-color .12s ease,color .12s ease,transform 80ms ease}.modal-dialogAction:hover{background:var(--nav-hover-bg);color:var(--fg)}.modal-dialogAction:active{transform:scale(.98)}.modal-dialogAction:focus-visible{outline:none;box-shadow:var(--focus-ring)}.modal-dialogAction__icon{width:18px;height:18px;flex-shrink:0}@media (prefers-reduced-motion:reduce){.modal-content,.modal-overlay,.modal-overlay.is-closing,.modal-overlay.is-closing .modal-content{animation:none;transform:none;opacity:1}}@media (max-width:720px){.char-grid{grid-template-columns:repeat(auto-fill,minmax(160px,1fr))}.char-card{min-height:250px;padding:16px 15px 19px;grid-template-rows:94px auto;gap:12px}.char-card__visual{height:94px}.avatar-container{width:90px;height:90px;border-radius:24px}.char-card__body{grid-template-rows:32px auto;gap:10px}.char-profile{gap:5px;min-height:62px}.char-profile__row{grid-template-columns:36px minmax(0,1fr);gap:8px}.char-profile__row dd{font-size:12.5px}.modal-content{width:min(100%,calc(100vw - 40px));max-height:calc(100dvh - 28px);border-radius:22px}.modal-body{padding:28px 20px 22px;gap:12px;grid-template-rows:188px 32px 118px 40px}.modal-title{min-height:32px;font-size:29px}.modal-copy{height:118px;font-size:13px;line-height:1.6}.modal-avatar{width:var(--modal-avatar-size);height:var(--modal-avatar-size);border-radius:var(--modal-avatar-radius)}.modal-talk{--modal-avatar-size:112px;--modal-avatar-radius:32px;--modal-speech-slot:80px}.modal-speech{width:min(100%,300px)}.modal-speech__body{min-width:68px;font-size:12.5px}}@media (max-width:380px){.modal-body{padding:24px 18px 20px;gap:10px;grid-template-rows:166px 31px 104px 40px}.modal-title{min-height:31px;font-size:28px}.modal-copy{height:104px;font-size:12.5px;line-height:1.6;-webkit-line-clamp:5}.modal-avatar{width:var(--modal-avatar-size);height:var(--modal-avatar-size);border-radius:var(--modal-avatar-radius)}.modal-talk{--modal-avatar-size:100px;--modal-avatar-radius:30px;--modal-speech-gap:10px;--modal-speech-slot:70px}.modal-speech{width:min(100%,288px)}.modal-speech__body{min-width:62px;padding:9px 12px;font-size:12px}}