:root{
  --bg1:#0f172a;
  --bg2:#111827;
  --panel: rgba(255,255,255,0.06);
  --line: rgba(255,255,255,0.12);
  --text: rgba(255,255,255,0.92);
  --muted: rgba(255,255,255,0.65);

  --mouth-x: 55%;
  --mouth-y: 62%;
  --mouth-scale: 1.0;
}

*{ box-sizing:border-box; }
html,body{ height:100%; }
body{
  margin:0;
  font-family: ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Arial, "Noto Sans", "Liberation Sans", sans-serif;
  color:var(--text);
  background: radial-gradient(1200px 900px at 20% 30%, #1f2937 0%, var(--bg2) 40%, #0b1020 100%);
  overflow:hidden;
}

.stage{
  height:100%;
  display:grid;
  grid-template-columns: 1.05fr 1.4fr;
  gap:18px;
  padding:22px;
}

.left,.right{
  background: var(--panel);
  border:1px solid var(--line);
  border-radius: 18px;
  overflow:hidden;
  backdrop-filter: blur(6px);
}

.left{
  display:grid;
  grid-template-rows: 1fr auto;
  min-width: 320px;
}

.portrait-wrap{
  position:relative;
  height:100%;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:18px;
}

.portrait{
  width:100%;
  height:100%;
  max-height: 78vh;
  object-fit: contain;      /* показываем целиком */
  object-position: center;  /* по центру */
  background: rgba(0,0,0,0.18);
  border-radius: 14px;
  border:1px solid var(--line);
  filter: contrast(1.05) saturate(0.95) brightness(0.95);
}


}

.meta{
  padding:14px 16px 18px;
  border-top: 1px solid var(--line);
}
.name{
  font-size: 20px;
  font-weight: 650;
  letter-spacing: 0.2px;
}
.tagline{
  margin-top:6px;
  color: var(--muted);
  font-size: 14px;
}

.right{
  padding:18px;
  display:flex;
  align-items:center;
  justify-content:center;
}

.bubble{
  width:100%;
  height: 86vh;
  max-height: 86vh;
  background: rgba(255,255,255,0.04);
  border:1px solid var(--line);
  border-radius: 18px;
  overflow:hidden;
  position:relative;
}

.bubble::before{
  content:"";
  position:absolute;
  left:-14px;
  top: 22%;
  width:26px;
  height:26px;
  background: rgba(255,255,255,0.04);
  border-left:1px solid var(--line);
  border-bottom:1px solid var(--line);
  transform: rotate(45deg);
}

.bubble-title{
  padding:14px 16px;
  border-bottom:1px solid var(--line);
  color: var(--muted);
  font-size: 13px;
  letter-spacing: 0.4px;
  text-transform: uppercase;
}

.bubble-viewport{
  height: calc(100% - 48px);
  overflow:hidden;
  position:relative;
  padding: 18px 18px 24px;
}

.bubble-text{
  white-space: pre-wrap;
  line-height: 1.55;
  font-size: 16px;
  color: rgba(255,255,255,0.92);
  transform: translateY(0);
  will-change: transform;
}

.audio-toggle{
  position:fixed;
  right:18px;
  bottom:18px;
  border-radius: 999px;
  padding: 10px 14px;
  background: rgba(0,0,0,0.45);
  border:1px solid var(--line);
  color: var(--text);
  cursor:pointer;
  font-size: 14px;
}
.audio-toggle:hover{
  background: rgba(0,0,0,0.60);
}
