.lami-card {
  flex: none;
  margin: 12px 0;
  padding: 12px;
  border: 1px solid rgba(231, 199, 109, .34);
  border-radius: 10px;
  background: var(--panel2);
}
.lami-top { display: flex; align-items: center; gap: 10px; }
.lami-portrait { position: relative; width: 53px; height: 53px; flex: none; }
.lami-portrait img, .lami-dialog-portrait { width: 100%; height: 100%; object-fit: cover; border-radius: 9px; image-rendering: pixelated; }
.lami-portrait span { position: absolute; right: -5px; top: -7px; color: var(--accent); font: bold 14px "Pixelify Sans", sans-serif; text-shadow: 0 1px 4px #10192a; }
.lami-identity { flex: 1; min-width: 0; line-height: 1.3; }
.lami-identity > div { display: flex; align-items: center; justify-content: space-between; }
.lami-identity strong { font: 600 20px "Pixelify Sans", sans-serif; }
.lami-identity span { display: block; color: var(--muted); font-size: 11px; }
#lamiAbout { border: 0; background: none; color: var(--muted); font-size: 16px; padding: 3px 5px; }
#lamiMessage { color: var(--ink); font-size: 12px; line-height: 1.4; min-height: 17px; margin: 10px 0; }
.lami-actions { display: flex; gap: 6px; }
.lami-actions button { flex: 1; min-height: 34px; padding: 5px; border: 1px solid var(--line); border-radius: 6px; background: var(--field); font-size: 11px; }
.lami-actions button:first-child { border-color: rgba(231,199,109,.45); color: var(--accent); }
.lami-actions button:disabled { opacity: .5; cursor: wait; }
.lami-card.is-happy .lami-portrait img { animation: lami-bounce 2.4s ease-in-out infinite; }
.lami-card.is-hungry .lami-portrait img { filter: saturate(.65); transform: rotate(-4deg); }
.lami-card.is-sleeping .lami-portrait img { filter: brightness(.65) saturate(.7); animation: lami-rest 3s ease-in-out infinite; }
.lami-card.is-sleeping .lami-portrait span { color: #b8d6ff; }
.lami-dialog-portrait { display: block; width: 86px; height: 86px; margin: 4px auto 14px; }
@keyframes lami-bounce { 0%, 80%, 100% { transform: translateY(0); } 90% { transform: translateY(-3px); } }
@keyframes lami-rest { 0%, 100% { transform: scale(.98); } 50% { transform: scale(1); } }
@media (prefers-reduced-motion: reduce) { .lami-card .lami-portrait img { animation: none !important; } }

.lami-portrait, .lami-room-art { background: url("/assets/lami-moods.png") left center / 300% 100% no-repeat; image-rendering: pixelated; border-radius: 9px; }
.lami-portrait img { visibility: hidden; }
.lami-card.is-hungry .lami-portrait, .lami-room-art.is-hungry { background-position: center; }
.lami-card.is-sleeping .lami-portrait, .lami-room-art.is-sleeping { background-position: right; }
.lami-enter { width: 100%; display: flex; align-items: center; justify-content: space-between; margin: 0 0 7px; padding: 7px 9px; border: 1px solid rgba(231,199,109,.4); border-radius: 6px; background: rgba(231,199,109,.12); color: var(--ink); font-size: 12px; font-weight: 700; }
.lami-enter:hover { background: rgba(231,199,109,.2); }
.lami-room { min-height: 0; height: 100%; display: flex; flex-direction: column; overflow-y: auto; }
.lami-room-heading { display:flex; justify-content:space-between; gap:12px; padding:18px clamp(18px,4vw,54px); border-bottom:1px solid var(--line); }
.lami-room-heading button { border:0; background:transparent; color:var(--muted); font-size:13px; padding:7px 0; }
.lami-room-heading button:hover { color:var(--accent); }
.lami-room-content { width:min(920px,100%); margin:0 auto; padding:clamp(20px,4vw,48px); }
.lami-world-header { display:grid; grid-template-columns:clamp(130px,20vw,210px) 1fr; gap:clamp(18px,4vw,42px); align-items:center; padding-bottom:30px; border-bottom:1px solid var(--line); }
.lami-room-art { aspect-ratio:1; width:100%; border:1px solid rgba(231,199,109,.35); }
.lami-world-label { color:var(--accent); font:11px "Courier New",monospace; letter-spacing:.16em; }
.lami-world-header h1 { font:600 clamp(28px,4vw,42px) "Pixelify Sans",sans-serif; line-height:1.1; margin:8px 0 12px; }
.lami-world-header p:not(.lami-world-label) { color:var(--ink); line-height:1.6; max-width:58ch; margin:0 0 10px; }
.lami-room-mood { font-size:13px; font-weight:700; }
.lami-room-actions { display:flex; flex-wrap:wrap; gap:8px; }
.lami-room-actions button, .lami-chat-form button { padding:9px 14px; border:1px solid rgba(231,199,109,.45); border-radius:7px; background:var(--panel2); color:var(--ink); }
.lami-room-actions button:first-child, .lami-chat-form button { background:var(--accent); color:var(--accent-ink); font-weight:700; }
.lami-conversation { padding:28px 0 0; }
.lami-conversation-title h2 { font:600 26px "Pixelify Sans",sans-serif; margin:0; }
.lami-conversation-title p, .lami-chat-form small { color:var(--muted); font-size:12px; }
.lami-messages { min-height:130px; max-height:420px; overflow-y:auto; display:flex; flex-direction:column; gap:12px; margin:20px 0; }
.lami-chat-message { max-width:85%; padding:11px 14px; border:1px solid var(--line); border-radius:10px; white-space:pre-wrap; overflow-wrap:anywhere; background:var(--panel2); }
.lami-chat-message.user { align-self:flex-end; background:var(--user); }
.lami-chat-message.assistant { align-self:flex-start; }
.lami-chat-form label { display:block; color:var(--muted); font-size:12px; margin-bottom:5px; }
.lami-chat-form > div { display:flex; gap:8px; align-items:stretch; }
.lami-chat-form textarea { min-width:0; flex:1; resize:vertical; border:1px solid var(--line); border-radius:8px; background:var(--field); color:var(--ink); padding:10px; }
.lami-chat-form textarea, .lami-chat-form button, .lami-chat-message { font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif; font-size:16px; line-height:1.6; }
.lami-chat-form small { display:block; margin-top:8px; }
@media(max-width:600px) {
  .lami-world-header { grid-template-columns:100px 1fr; align-items:start; gap:15px; }
  .lami-world-header h1 { font-size:27px; }
  .lami-world-header p:not(.lami-world-label) { font-size:13px; }
  .lami-room-content { padding:20px 16px 30px; }
  .lami-chat-message { max-width:95%; }
  .lami-chat-form > div { flex-direction:column; }
}

/* Лами остаётся рядом, пока пользователь читает её разговор. */
.lami-room-heading {
  position: sticky;
  top: 0;
  z-index: 3;
  align-items: center;
  padding-top: 10px;
  padding-bottom: 10px;
  background: var(--panel-solid);
}
.lami-chat-identity { display: flex; align-items: center; gap: 9px; min-width: 0; margin-right: auto; }
.lami-chat-identity strong, .lami-chat-identity small { display: block; line-height: 1.25; }
.lami-chat-identity strong { font: 600 18px "Pixelify Sans", sans-serif; }
.lami-chat-identity small { color: var(--muted); font-size: 11px; }
.lami-mini-portrait, .lami-chat-message.assistant::before {
  background: url("/assets/lami-moods.png") left center / 300% 100% no-repeat;
  image-rendering: pixelated;
  border: 1px solid rgba(231,199,109,.45);
  border-radius: 9px;
}
.lami-mini-portrait { width: 42px; height: 42px; flex: none; animation: lami-avatar-idle 3.5s ease-in-out infinite; }
.lami-chat-message.assistant { position: relative; margin-left: 48px; max-width: calc(85% - 48px); }
.lami-chat-message.assistant::before {
  content: "";
  position: absolute;
  left: -48px;
  top: 0;
  width: 36px;
  height: 36px;
  animation: lami-avatar-idle 3.5s ease-in-out infinite;
}
.lami-room.is-hungry .lami-mini-portrait, .lami-room.is-hungry .lami-chat-message.assistant::before { background-position: center; }
.lami-room.is-sleeping .lami-mini-portrait, .lami-room.is-sleeping .lami-chat-message.assistant::before { background-position: right; animation: lami-avatar-rest 3s ease-in-out infinite; }
.lami-room.is-hungry .lami-mini-portrait { animation: lami-avatar-sad 4s ease-in-out infinite; }
.lami-card.is-happy .lami-portrait, .lami-room-art.is-happy { animation: lami-avatar-idle 3.5s ease-in-out infinite; }
.lami-card.is-sleeping .lami-portrait, .lami-room-art.is-sleeping { animation: lami-avatar-rest 3s ease-in-out infinite; }
@keyframes lami-avatar-idle { 0%, 82%, 100% { transform: translateY(0) rotate(0); } 88% { transform: translateY(-2px) rotate(-2deg); } 94% { transform: translateY(0) rotate(2deg); } }
@keyframes lami-avatar-sad { 0%, 100% { transform: rotate(-3deg); } 50% { transform: rotate(0); } }
@keyframes lami-avatar-rest { 0%, 100% { transform: scale(.98); } 50% { transform: scale(1); } }
@media(max-width:600px) {
  .lami-room-heading { gap: 8px; padding: 8px 12px; }
  .lami-room-heading button { font-size: 11px; }
  .lami-chat-identity small { max-width: 100px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
  .lami-mini-portrait { width: 36px; height: 36px; }
  .lami-chat-message.assistant { max-width: calc(100% - 48px); }
}
@media (prefers-reduced-motion: reduce) {
  .lami-mini-portrait, .lami-chat-message.assistant::before, .lami-portrait, .lami-room-art { animation: none !important; }
}
