\usepackage{tikz}
\usepackage{xcolor}

\usepackage{amsmath}
\definecolor{image}{HTML}{0f86b6}   % hex color
\definecolor{continuous}{HTML}{37cae5}   % hex color
\definecolor{discrete}{HTML}{f5db37}   % hex color
\definecolor{reverse}{HTML}{eeff00}   % hex color

\usetikzlibrary{calc,scopes}
\usetikzlibrary{positioning}
\usetikzlibrary{shapes.geometric}
\usetikzlibrary{fit}
\usetikzlibrary{arrows.meta}

\tikzset{
    inputbox/.style={
        draw=none,
        minimum width=1cm,
        minimum height=1cm,
        align=center
    }
}

\tikzset{
    encoder/.style={
        draw=black,             % black border
        thick,                  % border thickness (optional)
        minimum width=3.3cm,
        minimum height=1cm,
        align=center,
        fill opacity=0.5,       % transparency (can be overridden)
        text opacity=1          % text is fully opaque
    }
}

\tikzset{
    attention/.style={
        draw=black,             % black border
        thick,                  % border thickness (optional)
        minimum width=0.5cm,
        minimum height=0.5cm,
        align=center,
        fill opacity=0.5,       % transparency (can be overridden)
        text opacity=1          % text is fully opaque
    }
}

% Define trapezoid shape with vertical parallel sides

\tikzset{
  unet_encoder/.style={
    draw=black,
    thick,
    trapezium,
    trapezium stretches=true,        % let min width/height 
    trapezium left angle=50,         % symmetric angles → 
    trapezium right angle=50,
    shape border rotate=90,          % rotate so parallel sides are vertical
    minimum width=2cm,             % total height after rotation
    minimum height=2.5cm,              % total width after rotation
    align=center,
    fill opacity=0.5,
    text opacity=1
  }
}

\tikzset{
  unet_decoder/.style={
    draw=black,
    thick,
    trapezium,
    trapezium stretches=true,        % let min width/height 
    trapezium left angle=50,         % symmetric angles → 
    trapezium right angle=50,
    shape border rotate=270,          % rotate so parallel sides are vertical
    minimum width=2cm,             % total height after rotation
    minimum height=2.5cm,              % total width after rotation
    align=center,
    fill opacity=0.5,
    text opacity=1
  }
}

\tikzset{
  mlp/.style={
    draw=black,
    thick,
    trapezium,
    trapezium stretches=true,        % let min width/height 
    trapezium left angle=50,         % symmetric angles → 
    trapezium right angle=50,
    shape border rotate=90,          % rotate so parallel sides are vertical
    minimum width=0.8cm,             % total height after rotation
    minimum height=2.5cm,              % total width after rotation
    align=center,
    fill opacity=0.5,
    text opacity=1
  }
}