.journey-intro {
  display:grid;
  grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);
  align-items:center;
  gap:clamp(20px,3vw,44px);
  min-height:0;
  padding-block:32px;
}
.journey-intro-copy { min-width:0; }
.journey-intro h2 { font-size:clamp(42px,4.8vw,72px); }
.journey-intro-copy .section-summary { max-width:32ch; }
.journey-mascot {
  position:relative;
  width:100%;
  height:clamp(340px,35vw,460px);
  min-width:0;
  opacity:1;
  transform:none;
  transition:opacity 700ms ease-out,transform 700ms cubic-bezier(.22,1,.36,1);
  pointer-events:none;
}
.journey-mascot.is-animated { opacity:0;transform:translateY(18px); }
.journey-mascot.is-visible { opacity:1;transform:none; }
.journey-mascot canvas { position:absolute;inset:0;width:100%;height:100%;opacity:0;transition:opacity 400ms ease-out; }
.journey-mascot.is-ready canvas { opacity:1; }
.mascot-fallback { position:absolute;inset:24%;width:52%;height:52%;object-fit:contain;opacity:.85;transition:opacity 250ms ease-out; }
.journey-mascot.is-ready .mascot-fallback { opacity:0; }
@media(max-width:760px) {
  .journey-intro { grid-template-columns:minmax(0,1fr);gap:24px;padding-block:48px 24px; }
  .journey-intro h2 { font-size:clamp(36px,8vw,54px); }
  .journey-mascot { height:300px;width:min(400px,100%);justify-self:center; }
}
@media(prefers-reduced-motion:reduce) {
  .journey-mascot,.journey-mascot.is-animated,.journey-mascot canvas,.mascot-fallback { transition:none;transform:none; }
}
