/* Approved single-specimen treatment. Inherits native scroll ranges and drift.
   All poses are static transforms; only the photographic boundary is scrubbed. */
.gateway {
  --specimen-reveal:clamp(0,calc((var(--drain,1) - .32)/.34),1);
  --t:var(--specimen-reveal);
}
.gateway__stage { --front:calc(var(--specimen-reveal)*124% - 24%); --front-soft:24%; }
.gateway__specimen--fresh {transform:translate(0,-1%) scale(1.04);
  -webkit-mask-image:linear-gradient(0deg,transparent var(--front),#000 calc(var(--front) + var(--front-soft)));
  mask-image:linear-gradient(0deg,transparent var(--front),#000 calc(var(--front) + var(--front-soft)));
}
.gateway__specimen--fresh img {transform:rotate(-11deg)}
.gateway__specimen--dried {transform:translate(0,1%) scale(.82);
  -webkit-mask-image:linear-gradient(0deg,#000 var(--front),transparent calc(var(--front) + var(--front-soft)));
  mask-image:linear-gradient(0deg,#000 var(--front),transparent calc(var(--front) + var(--front-soft)));
}
.gateway__state--in .gateway__figure {transform:none;filter:none;opacity:calc(.85 - var(--specimen-reveal)*.32)}
.gateway__state--out .gateway__figure {transform:none;opacity:calc(.35 + var(--specimen-reveal)*.65);text-shadow:none}
.gateway__label {transform:none!important}
.gateway__state--in .gateway__label {opacity:calc(.85 - var(--specimen-reveal)*.25)}
.gateway__state--out .gateway__label {opacity:calc(.35 + var(--specimen-reveal)*.65)}
.gateway__axis-fill {width:calc(var(--specimen-reveal)*100%);box-shadow:none}
@media(prefers-reduced-motion:reduce){.gateway .gateway__figure,.gateway .gateway__label{opacity:1}}
