.elevation-drawing{display:block;width:100%;height:auto}
.elevation-drawing.is-waiting .mountain-outline{stroke-dasharray:1;stroke-dashoffset:1}
.elevation-drawing.is-drawing .mountain-outline{stroke-dasharray:1;animation:mountain-outline-draw 2.6s linear both}
@keyframes mountain-outline-draw{from{stroke-dashoffset:1}to{stroke-dashoffset:0}}
@media(prefers-reduced-motion:reduce){.elevation-drawing.is-waiting .mountain-outline,.elevation-drawing.is-drawing .mountain-outline{animation:none;stroke-dasharray:none;stroke-dashoffset:0}}

.process-drawing{display:block;width:100%;height:auto}
.process-drawing.is-waiting .process-line{stroke-dasharray:1;stroke-dashoffset:1}
.process-drawing.is-waiting .process-stage{opacity:0}
.process-drawing.is-drawing .process-line{stroke-dasharray:1;animation:mountain-outline-draw 2.4s linear both}
.process-drawing.is-drawing .process-stage{animation:process-stage-reveal .45s ease-out both;animation-delay:var(--stage-delay)}
@keyframes process-stage-reveal{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}
@media(prefers-reduced-motion:reduce){.process-drawing.is-waiting .process-line,.process-drawing.is-drawing .process-line{animation:none;stroke-dasharray:none;stroke-dashoffset:0}.process-drawing.is-waiting .process-stage,.process-drawing.is-drawing .process-stage{animation:none;opacity:1;transform:none}}

.tasting-drawing{display:block;width:100%;height:auto}
.tasting-drawing .taste-shape,.tasting-drawing .taste-point{transform-origin:var(--taste-x,320px) var(--taste-y,280px)}
.tasting-drawing.is-waiting .taste-shape,.tasting-drawing.is-waiting .taste-point{transform:scale(0);opacity:0}
.tasting-drawing.is-drawing .taste-shape,.tasting-drawing.is-drawing .taste-point{animation:taste-profile-form 1.6s cubic-bezier(.22,.61,.36,1) both}
@keyframes taste-profile-form{from{transform:scale(0);opacity:0}to{transform:scale(1);opacity:1}}
@media(prefers-reduced-motion:reduce){.tasting-drawing.is-waiting .taste-shape,.tasting-drawing.is-waiting .taste-point,.tasting-drawing.is-drawing .taste-shape,.tasting-drawing.is-drawing .taste-point{animation:none;transform:none;opacity:1}}

/* Wuyi origin rings reveal from the core outward, then mark Zhengyan. */
.region-drawing{display:block;width:100%;height:auto}
.region-drawing .region-selected{stroke:#dce5cc;stroke-width:2.6}
.region-drawing .region-selected-label{fill:#dce5cc;font-weight:bold}
.region-drawing.is-waiting .region-ring{opacity:0;stroke-dasharray:1;stroke-dashoffset:1}
.region-drawing.is-waiting .region-highlight{opacity:0}
.region-drawing.is-drawing .region-ring{transform-origin:340px 134px;animation:region-ring-form .85s ease-out both;animation-delay:var(--ring-delay)}
.region-drawing.is-drawing .region-highlight{animation:region-highlight-in .8s ease-out 2.45s both}
@keyframes region-ring-form{from{opacity:0;transform:scale(.25);stroke-dasharray:1;stroke-dashoffset:1}to{opacity:1;transform:scale(1);stroke-dasharray:1;stroke-dashoffset:0}}
@keyframes region-highlight-in{from{opacity:0}to{opacity:1}}
@media(prefers-reduced-motion:reduce){.region-drawing.is-waiting .region-ring,.region-drawing.is-drawing .region-ring,.region-drawing.is-waiting .region-highlight,.region-drawing.is-drawing .region-highlight{animation:none;opacity:1;transform:none;stroke-dasharray:none;stroke-dashoffset:0}}

/* Vertical elevation lists reveal when the chart itself enters view. */
.elevation-list-drawing{display:block;width:100%;height:auto}
.elevation-list-drawing.is-waiting{clip-path:none}
.elevation-list-drawing.is-drawing{animation:elevation-list-reveal 2.8s linear both}
@keyframes elevation-list-reveal{from{clip-path:inset(0 0 100% 0)}to{clip-path:inset(0 0 0 0)}}
@media(prefers-reduced-motion:reduce){.elevation-list-drawing.is-waiting,.elevation-list-drawing.is-drawing{animation:none;clip-path:none}}
