/* Gallery + audio viewer.

   The main area has NO height of its own: every child is absolutely
   positioned, and the height comes from the thumbnail rail next to it. With
   audio only there is no rail, hence the --sin-thumbs variant. */

.trabajo-media-wrapper {
	--tmv-black: #000000;
	--tmv-white: #ffffff;
	--tmv-gap: 8px;
	--tmv-ease: cubic-bezier(0.16, 1, 0.3, 1);

	display: flex;
	align-items: stretch;
	gap: var(--tmv-gap);
	background: var(--tmv-black);
	font-family: -apple-system, BlinkMacSystemFont, "Helvetica Neue", Arial, sans-serif;
}

.trabajo-media-wrapper,
.trabajo-media-wrapper *,
.trabajo-media-wrapper *::before,
.trabajo-media-wrapper *::after {
	box-sizing: border-box !important;
}

.trabajo-media-wrapper button {
	border: none !important;
	background-color: transparent !important;
	margin: 0 !important;
	padding: 0 !important;
	font: inherit !important;
	color: inherit !important;
	cursor: pointer !important;
	box-sizing: border-box !important;
	-webkit-appearance: none !important;
	appearance: none !important;
	outline: none;
}

.trabajo-media-main {
	position: relative;
	flex: 1 1 auto;
	min-width: 0;
	overflow: hidden;
	background: #0a0a0a;
}

.trabajo-media-wrapper--sin-thumbs .trabajo-media-main {
	width: 100%;
	aspect-ratio: 16 / 9;
	max-height: 70vh;
}

.trabajo-media-main__image {
	position: absolute !important;
	inset: 0 !important;
	width: 100% !important;
	height: 100% !important;
	object-fit: cover !important;
	margin: 0 !important;
	opacity: 0;
	transition: opacity 0.35s var(--tmv-ease);
	pointer-events: none;
}

.trabajo-media-main__image.is-active {
	opacity: 1;
	pointer-events: auto;
}

.trabajo-media-main__audio {
	position: absolute;
	inset: 0;
	opacity: 0;
	pointer-events: none;
	transition: opacity 0.35s var(--tmv-ease);
}
.trabajo-media-main__audio.is-active {
	opacity: 1;
	pointer-events: auto;
}

.trabajo-media-main__audio-bg {
	position: absolute;
	inset: 0;
	background-size: cover;
	background-position: center;
	filter: blur(3px) brightness(0.45);
	transform: scale(1.08);
}

.trabajo-media-main__audio-overlay {
	position: absolute;
	inset: 0;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 22px;
	color: var(--tmv-white);
}

.trabajo-media-main__play-toggle {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 22px;
	background: transparent;
	border: none;
	cursor: pointer;
	color: inherit;
	transition: transform 0.2s var(--tmv-ease);
}

.trabajo-media-main__play-toggle:hover .trabajo-media-main__mic-icon {
	transform: scale(1.08);
}

.trabajo-media-main__volume {
	display: flex;
	align-items: center;
	gap: 8px;
	width: 140px;
}

.trabajo-media-main__volume-icon {
	width: 16px;
	height: 16px;
	flex: 0 0 auto;
	color: rgba(255, 255, 255, 0.75);
}

.trabajo-media-main__volume-slider {
	-webkit-appearance: none;
	appearance: none;
	flex: 1 1 auto;
	height: 3px;
	border-radius: 3px;
	background: rgba(255, 255, 255, 0.3);
	cursor: pointer;
	outline: none;
}

.trabajo-media-main__volume-slider::-webkit-slider-thumb {
	-webkit-appearance: none;
	appearance: none;
	width: 11px;
	height: 11px;
	border-radius: 50%;
	background: var(--tmv-white);
	cursor: pointer;
	transition: transform 0.15s var(--tmv-ease);
}
.trabajo-media-main__volume-slider::-webkit-slider-thumb:hover {
	transform: scale(1.2);
}

.trabajo-media-main__volume-slider::-moz-range-thumb {
	width: 11px;
	height: 11px;
	border: none;
	border-radius: 50%;
	background: var(--tmv-white);
	cursor: pointer;
}
.trabajo-media-main__volume-slider::-moz-range-track {
	height: 3px;
	border-radius: 3px;
	background: rgba(255, 255, 255, 0.3);
}

.trabajo-media-main__mic-icon {
	width: 42px;
	height: 42px;
	transition: transform 0.2s var(--tmv-ease), color 0.25s var(--tmv-ease);
}

.trabajo-media-main__audio.is-playing .trabajo-media-main__mic-icon {
	color: #ffcc33;
	filter: drop-shadow(0 0 8px rgba(255, 204, 51, 0.55));
}

.trabajo-media-main__audio.is-playing .trabajo-media-main__waveform span {
	background: #ffcc33;
}

.trabajo-media-main__waveform {
	display: flex;
	align-items: center;
	gap: 3px;
	height: 28px;
}

.trabajo-media-main__waveform span {
	display: block;
	width: 2px;
	height: 30%;
	background: var(--tmv-white);
	border-radius: 2px;
	opacity: 0.85;
	animation: tmv-wave 1.1s ease-in-out infinite;
	animation-play-state: paused;
}

.trabajo-media-main__audio.is-playing .trabajo-media-main__waveform span {
	animation-play-state: running;
}

.trabajo-media-main__waveform span:nth-child(3n) { height: 60%; animation-delay: -0.1s; }
.trabajo-media-main__waveform span:nth-child(4n) { height: 90%; animation-delay: -0.3s; }
.trabajo-media-main__waveform span:nth-child(5n) { height: 45%; animation-delay: -0.5s; }
.trabajo-media-main__waveform span:nth-child(7n) { height: 75%; animation-delay: -0.7s; }

@keyframes tmv-wave {
	0%, 100% { transform: scaleY(0.4); }
	50%      { transform: scaleY(1); }
}

.trabajo-media-thumbs {
	--tmv-thumb-size: 115px;

	flex: 0 0 var(--tmv-thumb-size);
	display: flex;
	flex-direction: column;
	gap: var(--tmv-gap);
	max-height: calc( ( var(--tmv-thumb-size) * 5 ) + ( var(--tmv-gap) * 4 ) );
	overflow-y: auto;
	overflow-x: hidden;
	scrollbar-gutter: stable;
	scrollbar-width: thin;
	scrollbar-color: rgba(255, 255, 255, 0.3) transparent;
}

.trabajo-media-thumbs::-webkit-scrollbar {
	width: 4px;
}
.trabajo-media-thumbs::-webkit-scrollbar-track {
	background: transparent;
}
.trabajo-media-thumbs::-webkit-scrollbar-thumb {
	background-color: rgba(255, 255, 255, 0.3);
	border-radius: 4px;
}
.trabajo-media-thumbs::-webkit-scrollbar-thumb:hover {
	background-color: rgba(255, 255, 255, 0.5);
}

.trabajo-media-thumb {
	position: relative;
	flex: 0 0 auto;
	width: 100%;
	height: var(--tmv-thumb-size);
	background-color: #111;
	background-size: cover;
	background-position: center;
	display: flex;
	align-items: center;
	justify-content: center;
	overflow: hidden;
	opacity: 0.55;
	transition: opacity 0.25s var(--tmv-ease), transform 0.25s var(--tmv-ease);
}

.trabajo-media-thumb:hover {
	opacity: 0.85;
}

.trabajo-media-thumb.is-active {
	opacity: 1;
	box-shadow: inset 0 0 0 2px var(--tmv-white);
}

.trabajo-media-thumb--audio {
	background-color: #1a1a1a;
	position: relative;
}
.trabajo-media-thumb--audio::before {
	content: "";
	position: absolute;
	inset: 0;
	background: rgba(0, 0, 0, 0.4);
}
.trabajo-media-thumb--audio svg {
	position: relative;
	z-index: 1;
	width: 22px;
	height: 22px;
	color: var(--tmv-white);
	filter: drop-shadow(0 1px 2px rgba(0, 0, 0, 0.6));
}

@media (max-width: 640px) {
	.trabajo-media-wrapper {
		flex-direction: column;
	}

	.trabajo-media-main {
		width: 100%;
		aspect-ratio: 16 / 9;
	}

	.trabajo-media-thumbs {
		--tmv-thumb-size: 76px;

		flex-direction: row;
		width: 100%;
		height: var(--tmv-thumb-size);
		max-height: none;
		max-width: 100%;
		overflow-x: auto;
		overflow-y: hidden;
		scrollbar-gutter: auto;
	}

	.trabajo-media-thumb {
		flex: 0 0 var(--tmv-thumb-size);
		width: var(--tmv-thumb-size);
		height: 100%;
	}
}
