.avatar-study {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  color: #16231b;
  background: radial-gradient(ellipse at 72% 46%, #b4bfae, #a1ad9e 55%, #97a393);
}
.avatar-stage {
  position: relative;
  max-width: 1536px;
  margin-inline: auto;
  min-height: clamp(530px, 48vw, 690px);
  display: flex;
  align-items: center;
}
.avatar-portrait {
  position: absolute;
  right: 0;
  bottom: 0;
  width: min(67%, clamp(530px, 48vw, 690px));
  aspect-ratio: 1;
  -webkit-mask-image: radial-gradient(ellipse 67% 81% at 54% 59%, #000 46%, #000e 57%, transparent 91%);
  mask-image: radial-gradient(ellipse 67% 81% at 54% 59%, #000 46%, #000e 57%, transparent 91%);
}
.avatar-portrait img, .avatar-portrait canvas {
  position: absolute;
  inset: 0;
  display: block;
  height: 100%;
  width: 100%;
  object-fit: contain;
}
.avatar-intro {
  position: relative;
  width: 43%;
  padding: 52px 0;
  margin-left: clamp(32px, 5vw, 80px);
}
.avatar-intro h2 {
  font: 400 clamp(58px, 6.6vw, 98px)/.94 var(--sans);
  letter-spacing: -.065em;
  margin: 0;
}
.avatar-intro h2 em {
  display: block;
  font-family: var(--serif);
  font-weight: 400;
  color: #354c3b;
}
.avatar-intro > p {
  font: 15px/1.65 var(--sans);
  max-width: 29ch;
  margin: 24px 0 0;
  color: #304336;
}
@media (max-width: 650px) {
  .avatar-stage { display: flex; flex-direction: column; min-height: 0; }
  .avatar-portrait { position: relative; width: 100%; max-width: 525px; }
  .avatar-intro { width: 100%; margin: 0; padding: 0 22px 44px; }
  .avatar-intro h2 { font-size: clamp(42px, 8.5vw, 55px); }
  .avatar-intro h2 em { display: inline; }
  .avatar-intro > p { font-size: 14px; margin-top: 14px; max-width: 36ch; }
}
