:root{
  --emsh-accent:#38e07b;
  --emsh-title:#ffffff;
  --emsh-desc:#c7d7cf;
  --emsh-maxw:900px;
}
.emsh-heading{ padding: 24px 16px; color: var(--emsh-title); }
.emsh-wrap{ max-width: var(--emsh-maxw); margin: 0 auto; text-align: center; }
.emsh-left .emsh-wrap{ text-align:left; } .emsh-right .emsh-wrap{ text-align:right; }
.emsh-over{ color: var(--emsh-accent); font-weight: 800; letter-spacing: .08em; text-transform: uppercase; font-size: clamp(12px, 1.2vw, 14px); }
.emsh-title{ font-weight: 900; letter-spacing: -0.015em; font-size: clamp(28px, 5vw, 56px); color: var(--emsh-title); }
.emsh-desc{ color: var(--emsh-desc); font-size: clamp(16px, 2vw, 20px); max-width: 950px; margin-left:auto; margin-right:auto; }
/* Fade-up */
.emsh-anim{ opacity:0; transform: translateY(18px); }
.emsh-in .emsh-anim{ animation: emshUp .6s cubic-bezier(.22,.9,.22,1) forwards; }
.emsh-in .emsh-title{ animation-delay:.05s; }
.emsh-in .emsh-desc{ animation-delay:.1s; }
@keyframes emshUp{ to{ opacity:1; transform: translateY(0); } }